Ir para conteúdo
  • Cadastre-se

(Resolvido)Npc que venda Livro com Texto


Ir para solução Resolvido por Storm,

Posts Recomendados

E ae Galera blz?

Gostaria de saber se é possível criar uma script onde o npc venda um item (Livro) com um texto configurado.

 

Explicando: 
O Npc, vende o item normal por X gold, e quando o player clicar com o direito no livro para ler, ter um texto configurado pela script.

 

Desde já Grato!

Link para o post
Compartilhar em outros sites

Qual TFS?
É fundamental informar o TFS, assim saberemos trabalhar melhor em cima das possíveis distros !

Editado por FlavioHulk (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

@peterson18

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

local item = doPlayerAddItem(cid, id, 1)


	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(item, text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Link para o post
Compartilhar em outros sites
20 horas atrás, Sttorm disse:

@peterson18


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

local item = doPlayerAddItem(cid, id, 1)


	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(item, text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 


Esta com um bug, depois que falo "Hi" ele começa a criar o item 7122, para qualquer coisa que eu fale ele cria o item....

Link para o post
Compartilhar em outros sites
local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(doPlayerAddItem(cid, id, 1), text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end

Vamos ver se isso resolve , você quer que o player compre o item somente uma vez ?

Link para o post
Compartilhar em outros sites
1 hora atrás, Sttorm disse:

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(doPlayerAddItem(cid, id, 1), text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end

Vamos ver se isso resolve , você quer que o player compre o item somente uma vez ?

 

Não, ele pode comprar quantas vezes quiser

 

@Sttorm
Não esta funcionando falo "Hi" e ele não responde

Editado por peterson18 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

XML

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Bookero" script="book.lua" walkinterval="2000" floorchange="0">
	<health now="150" max="150"/>
	<look type="142" head="114" body="0" legs="95" feet="114" corpse="2212"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|. I sell book, say {yes}."/>
	</parameters>
</npc>

Script

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end
	
 	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(doPlayerAddItem(cid, id, 1), text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end

 

Link para o post
Compartilhar em outros sites
21 horas atrás, Sttorm disse:

XML


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Bookero" script="book.lua" walkinterval="2000" floorchange="0">
	<health now="150" max="150"/>
	<look type="142" head="114" body="0" legs="95" feet="114" corpse="2212"/>
	<parameters>
		<parameter key="message_greet" value="Hello |PLAYERNAME|. I sell book, say {yes}."/>
	</parameters>
</npc>

Script


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}

function onCreatureAppear(cid)				npcHandler:onCreatureAppear(cid)			end
function onCreatureDisappear(cid)			npcHandler:onCreatureDisappear(cid)			end
function onCreatureSay(cid, type, msg)			npcHandler:onCreatureSay(cid, type, msg)		end
function onThink()					npcHandler:onThink()					end

function creatureSayCallback(cid, type, msg)
	if(not npcHandler:isFocused(cid)) then
		return false
	end
	
 	local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(doPlayerAddItem(cid, id, 1), text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end

 


Não responde, acho que ela é tímida hueheuheh
 

Spoiler

image.thumb.png.1205b38cb69b397f4969efd204c69c85.png

 

Link para o post
Compartilhar em outros sites

@peterson18Tenta mudar a xml pra essa

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Booker" script="data/npc/scripts/book.lua" walkinterval="2000" speed="100" floorchange="0">
	<health now="100" max="100"/>
	<look type="167" head="38" body="79" legs="107" feet="114"/>
	<parameters>
  <parameter key="message_greet" value="I' have a book for you , say {yes} "/>
    </parameters></npc>

 

Link para o post
Compartilhar em outros sites
15 minutos atrás, Sttorm disse:

@peterson18Tenta mudar a xml pra essa


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Booker" script="data/npc/scripts/book.lua" walkinterval="2000" speed="100" floorchange="0">
	<health now="100" max="100"/>
	<look type="167" head="38" body="79" legs="107" feet="114"/>
	<parameters>
  <parameter key="message_greet" value="I' have a book for you , say {yes} "/>
    </parameters></npc>

 

 

Continua não respondendo...

Link para o post
Compartilhar em outros sites
  • Solução
6 minutos atrás, peterson18 disse:

 

Continua não respondendo...

Tava faltando uns parametros , aqui vai :

local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
 return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(doPlayerAddItem(cid, id, 1), text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

Link para o post
Compartilhar em outros sites
54 minutos atrás, Sttorm disse:

Tava faltando uns parametros , aqui vai :


local keywordHandler = KeywordHandler:new()
local npcHandler = NpcHandler:new(keywordHandler)
NpcSystem.parseParameters(npcHandler)
local talkState = {}
function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end
function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end
function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end
function onThink() npcHandler:onThink() end

function creatureSayCallback(cid, type, msg)
if(not npcHandler:isFocused(cid)) then
 return false
end
 
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid

local money = 1000 -- Custo
local id = 7122 --  id do Book
local text = "Livro misterioso" 

	if(msgcontains(msg, 'yes')) then
	
                        if doPlayerRemoveMoney(cid, money) then
                           doSetItemText(doPlayerAddItem(cid, id, 1), text)
						   selfSay('Obrigado', cid)
                        else
                            selfSay('Você precisa de '.. money ..' de money para comprar esse livro', cid)
                        end


    end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 


Funcionando!!
 

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo