Ir para conteúdo
  • Cadastre-se

(Resolvido)Npc que dê outfitte por Quest


Ir para solução Resolvido por Storm,

Posts Recomendados

E ae galera blz?

Gostaria de saber se é possível criar um npc que dê  uma Queste depois que completar ela, ganhar exp e um outfitte.

Explicando:
Você fala com o NPC e ele pede para você matar X quantia de monstros e quando você matar ele te dê como recompensa um outfitte (Configurável) e uma quantia em EXP.


Segue um como Modelo que tenho aqui:

 

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

local talkState = {}
local quest = 76669
local reward = 70000

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)
local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid
if(not npcHandler:isFocused(cid)) then
	return false
elseif msgcontains(msg, "") and talkState[talkUser] == 1 then
	npcHandler:say("", cid)
	talkState[talkUser] = 2
elseif msgcontains(msg, "") and talkState[talkUser] == 2 then
	npcHandler:say("!", cid)
	setPlayerStorageValue(cid, quest, 2)
	talkState[talkUser] = 0
elseif msgcontains(msg, ".") then
	local str = getPlayerStorageValue(cid, quest)
	if(str < 2) then
		npcHandler:say(".", cid) 
		talkState[talkUser] = 1
		return true
	elseif(str == 2) then
		npcHandler:say("!", cid)
	elseif(str == 3) then
		npcHandler:say(".", cid)
		doPlayerAddItem(cid, x, x)
		doPlayerAddExp(cid, x)
		doPlayerSendTextMessage(cid, 22, '.')
		setPlayerStorageValue(cid, quest, 4)
	elseif(str == 4) then
		npcHandler:say(".", cid)
	end
	talkState[talkUser] = 0
end
return TRUE
end

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


Desde já grato

Link para o post
Compartilhar em outros sites

Bom , vou compartilhar com você uma gambiarra que fiz aqui a um tempo atras , você vai perceber que é velho pelas gambiarras e identação do código , aqui vamos nós :

NPCS

 

XML

<?xml version="1.0" encoding="UTF-8"?>
<npc name="Tasker" script="data/npc/scripts/task/task.lua" walkinterval="2000" speed="0" 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 task for you. [{accept}] or [{premio}] "/>
    </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 storage = 35678 -- monster kill      |
local sto = 24529 -- don't pick premio     |
                                      --   | Não mecha nessa gambiarra aqui , só certifique que nenhuma dessas storages sejam usadas em outros sistemas
local rage = 24525 -- inicializate contage |
local ok = 45651 -- don't inicializate     |

local exp = 100   -- Quantidade de XP
local monster = 100 -- Quantos monstros terá que matar
local outfit = {

male = 10,  -- ID da outfit male
female = 11 -- ID da outfit female

}


if(msgcontains(msg, 'premio')) then
 if getPlayerStorageValue(cid, sto) == -1 then
  if getPlayerStorageValue(cid, storage) >= 100 then
  
  selfSay("You have finished the task", cid)
  doPlayerAddExp(cid, exp)
  doSendMagicEffect(getCreaturePosition(cid), 5)
  setPlayerStorageValue(cid, rage, -1)
  setPlayerStorageValue(cid, sto, 1)
  setPlayerStorageValue(cid, fuck, 1)
  
                             if getPlayerSex(cid) == 1 then
                                doPlayerAddOutfit(cid, outfit.male, 0)
                             else
                                doPlayerAddOutfit(cid, outfit.female, 0)
                             end 
  
  else
  selfSay("You need kill 100 monsters do finish the task", cid)
  end
 else
 selfSay("back from here nigga", cid)
 end
end

if(msgcontains(msg, 'accept')) then 
 if getPlayerStorageValue(cid, ok) == -1 then
   
   selfSay("You have intialized the task", cid)
   setPlayerStorageValue(cid, ok, 1)
   setPlayerStorageValue(cid, rage, 1)
   
 else
  selfSay("You started the task", cid)
end
end
end


 

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

 

CREATURESCRIPTS

XML

<event type="death" name="task" event="script" value="task.lua"/>

Na XML do monstro

    <script>
    <event name="task"/>
    </script>

Script

local key = 35678
local rage = 24525 -- inicializate contage
local monster = 100 -- Quantos monstros terá que matar
 

function onDeath(cid, corpse, deathList)

local killer = deathList[1]

if not isPlayer(killer) then

return true

end

if getPlayerStorageValue(killer, rage) == -1 then

return true

end  
 

setPlayerStorageValue(killer, key, getPlayerStorageValue(killer, key) + 1)

doPlayerSendTextMessage(killer, 27, "Monster:: [".. getPlayerStorageValue(killer, key) .."//".. monster .."]")

return true

end

 

Link para o post
Compartilhar em outros sites

@Sttorm Tem como colocar pra que quando o player tentar falar de novo, o npc mandar uma frase? Porque tipo, toda vez que o player fala yes, o npc sempre manda a frase "You started the task"

E colocar tamebm que ele ganhe itens, como gold e potion

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

@Sttorm Tem como colocar pra que quando o player tentar falar de novo, o npc mandar uma frase? Porque tipo, toda vez que o player fala yes, o npc sempre manda a frase "You started the task"

E colocar tamebm que ele ganhe itens, como gold e potion


"You started the task" =  Você já iniciou a missão , ou seja, está correto.

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 storage = 35678 -- monster kill      |
local sto = 24529 -- don't pick premio     |
                                      --   | Não mecha nessa gambiarra aqui , só certifique que nenhuma dessas storages sejam usadas em outros sistemas
local rage = 24525 -- inicializate contage |
local ok = 45651 -- don't inicializate     |

local exp = 100   -- Quantidade de XP
local monster = 100 -- Quantos monstros terá que matar
local outfit = {

male = 10,  -- ID da outfit male
female = 11 -- ID da outfit female

}

local potion, count = 2139, 10 -- ID da potion , Count.
local gold = 1000 -- quanto de money irá ganhar 


if(msgcontains(msg, 'premio')) then
 if getPlayerStorageValue(cid, sto) == -1 then
  if getPlayerStorageValue(cid, storage) >= 100 then
  
  selfSay("You have finished the task", cid)
  doPlayerAddItem(cid, potion, count)
  doPlayerAddMoney(cid, gold)
  doPlayerAddExp(cid, exp)
  doSendMagicEffect(getCreaturePosition(cid), 5)
  setPlayerStorageValue(cid, rage, -1)
  setPlayerStorageValue(cid, sto, 1)
  setPlayerStorageValue(cid, fuck, 1)
  
                             if getPlayerSex(cid) == 1 then
                                doPlayerAddOutfit(cid, outfit.male, 0)
                             else
                                doPlayerAddOutfit(cid, outfit.female, 0)
                             end 
  
  else
  selfSay("You need kill 100 monsters do finish the task", cid)
  end
 else
 selfSay("back from here nigga", cid)
 end
end

if(msgcontains(msg, 'accept')) then 
 if getPlayerStorageValue(cid, ok) == -1 then
   
   selfSay("voce iniciou a missao", cid)
   setPlayerStorageValue(cid, ok, 1)
   setPlayerStorageValue(cid, rage, 1)
   
 else
  selfSay("Voce ja iniciou a missao", cid)
end
end
end



 

Link para o post
Compartilhar em outros sites

@Sttorm Ta dando o seguinte erro :                      [22/5/2018 1:32:7] [Error - LuaInterface::loadFile] data/npc/scripts/drunk rat.lua:27: unexpected symbol near 'ï'
                                                                                       [22/5/2018 1:32:7] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/drunk rat.lua
                                                                                       [22/5/2018 1:32:7] data/npc/scripts/drunk rat.lua:27: unexpected symbol near 'ï'"

Link para o post
Compartilhar em outros sites
5 minutos atrás, Zazeros disse:

@Sttorm Ta dando o seguinte erro :                      [22/5/2018 1:32:7] [Error - LuaInterface::loadFile] data/npc/scripts/drunk rat.lua:27: unexpected symbol near 'ï'
                                                                                       [22/5/2018 1:32:7] [Warning - NpcEvents::NpcEvents] Cannot load script: data/npc/scripts/drunk rat.lua
                                                                                       [22/5/2018 1:32:7] data/npc/scripts/drunk rat.lua:27: unexpected symbol near 'ï'"

Tem um simbolo na linha 27 , retire porque você está copiando e colando a script errado , ou se preferir faça o DOWNLOAD da script task.lua

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

Bom , vou compartilhar com você uma gambiarra que fiz aqui a um tempo atras , você vai perceber que é velho pelas gambiarras e identação do código , aqui vamos nós :

NPCS

 

XML


<?xml version="1.0" encoding="UTF-8"?>
<npc name="Tasker" script="data/npc/scripts/task/task.lua" walkinterval="2000" speed="0" 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 task for you. [{accept}] or [{premio}] "/>
    </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 storage = 35678 -- monster kill      |
local sto = 24529 -- don't pick premio     |
                                      --   | Não mecha nessa gambiarra aqui , só certifique que nenhuma dessas storages sejam usadas em outros sistemas
local rage = 24525 -- inicializate contage |
local ok = 45651 -- don't inicializate     |

local exp = 100   -- Quantidade de XP
local monster = 100 -- Quantos monstros terá que matar
local outfit = {

male = 10,  -- ID da outfit male
female = 11 -- ID da outfit female

}


if(msgcontains(msg, 'premio')) then
 if getPlayerStorageValue(cid, sto) == -1 then
  if getPlayerStorageValue(cid, storage) >= 100 then
  
  selfSay("You have finished the task", cid)
  doPlayerAddExp(cid, exp)
  doSendMagicEffect(getCreaturePosition(cid), 5)
  setPlayerStorageValue(cid, rage, -1)
  setPlayerStorageValue(cid, sto, 1)
  setPlayerStorageValue(cid, fuck, 1)
  
                             if getPlayerSex(cid) == 1 then
                                doPlayerAddOutfit(cid, outfit.male, 0)
                             else
                                doPlayerAddOutfit(cid, outfit.female, 0)
                             end 
  
  else
  selfSay("You need kill 100 monsters do finish the task", cid)
  end
 else
 selfSay("back from here nigga", cid)
 end
end

if(msgcontains(msg, 'accept')) then 
 if getPlayerStorageValue(cid, ok) == -1 then
   
   selfSay("You have intialized the task", cid)
   setPlayerStorageValue(cid, ok, 1)
   setPlayerStorageValue(cid, rage, 1)
   
 else
  selfSay("You started the task", cid)
end
end
end


 

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

 

CREATURESCRIPTS

XML


<event type="death" name="task" event="script" value="task.lua"/>

Na XML do monstro


    <script>
    <event name="task"/>
    </script>

Script


local key = 35678
local rage = 24525 -- inicializate contage
local monster = 100 -- Quantos monstros terá que matar
 

function onDeath(cid, corpse, deathList)

local killer = deathList[1]

if not isPlayer(killer) then

return true

end

if getPlayerStorageValue(killer, rage) == -1 then

return true

end  
 

setPlayerStorageValue(killer, key, getPlayerStorageValue(killer, key) + 1)

doPlayerSendTextMessage(killer, 27, "Monster:: [".. getPlayerStorageValue(killer, key) .."//".. monster .."]")

return true

end

 

@Sttorm
Aqui Não esta funcionando, esta crashando o tibia e fechando

Obs: Já tentei mudar de toda as formas na parte

 

Citar

local outfit = {

male = 149, 
female = 145

 

E a Parte:
 

Citar

                             if getPlayerSex(cid) == 1 then
                                doPlayerAddOutfit(cid, outfit.male, 0)
                             else
                                doPlayerAddOutfit(cid, outfit.female, 1)
                             end 


Tentei colocar os ID que esta na pasta do XML Outfit, entre outras tentativas e todas resultaram no crash

Segue o Erro:

 

Spoiler

image.png.0e6bfce917d70b13927b391992573a85.png

 

Link para o post
Compartilhar em outros sites

@peterson18 Se você observar bem , na penúltima linha desse erro , olhe a tradução

Outfit has not all four directions = Outfit não tem todas as quatro direções

Tente colocar outra outfit e veja se funciona. 

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

@peterson18 Se você observar bem , na penúltima linha desse erro , olhe a tradução


Outfit has not all four directions = Outfit não tem todas as quatro direções

Tente colocar outra outfit e veja se funciona. 

Mas, essas são as outfit normal do servidor não tem outfith editada, logo não entendo o motivo do erro/crash...
@Sttorm
Entendi o erro... No XML que você passou você colocou o Loocktype no NPC 167, um Type que não existe no server ou seja, não é a script e sim o NPC que esta crashando.... Irei mudar e testar....

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

@peterson18 Então vamos fazer do jeito classico , XML > OUTFITS.XML , deixei a tag da outfit que você quer que ganhe assim

	<outfit id="2" quest="181654">
		<list gender="0" lookType="137" name="Hunter"/>
		<list gender="1" lookType="129" name="Hunter"/>
	</outfit>

Observe que quest é uma storage , que voce vai colocar respectivamente na script que te passarei :

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 storage = 35678 -- monster kill      |
local sto = 24529 -- don't pick premio     |
  ----   								   | Não mecha nessa gambiarra aqui , só certifique que nenhuma dessas storages sejam usadas em outros sistemas
local rage = 24525 -- inicializate contage |
local ok = 45651 -- don't inicializate     |
  
local exp = 100   -- Quantidade de XP
local monster = 100 -- Quantos monstros terá que matar
local outfit = 181654 -- Storage que está na outfits.xml

if(msgcontains(msg, 'premio')) then
 if getPlayerStorageValue(cid, sto) == -1 then
  if getPlayerStorageValue(cid, storage) >= 100 then
  
  selfSay("You have finished the task", cid)
  doPlayerAddExp(cid, exp)
  doSendMagicEffect(getCreaturePosition(cid), 5)
  setPlayerStorageValue(cid, rage, -1)
  setPlayerStorageValue(cid, sto, 1)
  setPlayerStorageValue(cid, fuck, 1)
  setPlayerStorageValue(cid, outfit, 1)
  
  else
  selfSay("You need kill 100 monsters do finish the task", cid)
  end
 else
 selfSay("back from here nigga", cid)
 end
end

if(msgcontains(msg, 'accept')) then 
 if getPlayerStorageValue(cid, ok) == -1 then
   
   selfSay("You have intialized the task", cid)
   setPlayerStorageValue(cid, ok, 1)
   setPlayerStorageValue(cid, rage, 1)
   
 else
  selfSay("You started the task", cid)
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 

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

@peterson18 Então vamos fazer do jeito classico , XML > OUTFITS.XML , deixei a tag da outfit que você quer que ganhe assim


	<outfit id="2" quest="181654">
		<list gender="0" lookType="137" name="Hunter"/>
		<list gender="1" lookType="129" name="Hunter"/>
	</outfit>

Observe que quest é uma storage , que voce vai colocar respectivamente na script que te passarei :


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 storage = 35678 -- monster kill      |
local sto = 24529 -- don't pick premio     |
  ----   								   | Não mecha nessa gambiarra aqui , só certifique que nenhuma dessas storages sejam usadas em outros sistemas
local rage = 24525 -- inicializate contage |
local ok = 45651 -- don't inicializate     |
  
local exp = 100   -- Quantidade de XP
local monster = 100 -- Quantos monstros terá que matar
local outfit = 181654 -- Storage que está na outfits.xml

if(msgcontains(msg, 'premio')) then
 if getPlayerStorageValue(cid, sto) == -1 then
  if getPlayerStorageValue(cid, storage) >= 100 then
  
  selfSay("You have finished the task", cid)
  doPlayerAddExp(cid, exp)
  doSendMagicEffect(getCreaturePosition(cid), 5)
  setPlayerStorageValue(cid, rage, -1)
  setPlayerStorageValue(cid, sto, 1)
  setPlayerStorageValue(cid, fuck, 1)
  setPlayerStorageValue(cid, outfit, 1)
  
  else
  selfSay("You need kill 100 monsters do finish the task", cid)
  end
 else
 selfSay("back from here nigga", cid)
 end
end

if(msgcontains(msg, 'accept')) then 
 if getPlayerStorageValue(cid, ok) == -1 then
   
   selfSay("You have intialized the task", cid)
   setPlayerStorageValue(cid, ok, 1)
   setPlayerStorageValue(cid, rage, 1)
   
 else
  selfSay("You started the task", cid)
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

 


Desta forma não inicia o server da falha ao carregar o outfht.xml

Da outra forma, não da erro na distro mas também não adiciona a outhft,

 


Pergunta:
Não tem um comando, doPlayerAddOuthft que posso colocar nas recompensas...:7943e5822524b7fb194f46d626fb2fb7:
Não me expressei bem, digo não tem como adicionar a outhft com um comando que já reconheça o sexo, exemplo  colocando os ID do  outfht.XML, Exemplo: "1, 2, 3, ...."


 

 

Editado por peterson18 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
10 minutos atrás, peterson18 disse:


Desta forma não inicia o server da falha ao carregar o outfht.xml

Da outra forma, não da erro na distro mas também não adiciona a outhft,

 


Pergunta:
Não tem um comando, doPlayerAddOuthft que posso colocar nas recompensas...:7943e5822524b7fb194f46d626fb2fb7:
Não me expressei bem, digo não tem como adicionar a outhft com um comando que já reconheça o sexo, exemplo  colocando os ID do  outfht.XML, Exemplo: "1, 2, 3, ...."


 

 

Testei pelo outfits.xml e foi , não seria um problema de configuração seu ?

Link para o post
Compartilhar em outros sites
Agora, Sttorm disse:

Testei pelo outfits.xml e foi , não seria um problema de configuração seu ?

Eu copiei exatamente igual o teu e quando coloquei para rodar deu erro...
Só fiz alguns ajuste pois a outfith seria a ID:10, e nela esta assim:

 

Citar

    <outfit id="10" premium="yes">
        <list gender="0" lookType="149" name="Wizard"/>
        <list gender="1" lookType="145" name="Wizard"/>
    </outfit>


Ae deixei assim, deu erro...

Citar

    <outfit id="10" quest="181654">

        <list gender="0" lookType="149" name="Wizard"/>
        <list gender="1" lookType="145" name="Wizard"/>
    </outfit>


E também tentei assim, e também deu erro...

Citar

    <outfit id="10" premium="yes" quest="181654">
        <list gender="0" lookType="149" name="Wizard"/>
        <list gender="1" lookType="145" name="Wizard"/>
    </outfit>


 

Link para o post
Compartilhar em outros sites
2 minutos atrás, peterson18 disse:

Eu copiei exatamente igual o teu e quando coloquei para rodar deu erro...
Só fiz alguns ajuste pois a outfith seria a ID:10, e nela esta assim:

 


Ae deixei assim, deu erro...


E também tentei assim, e também deu erro...


 

E qual erro que dá ?

Link para o post
Compartilhar em outros sites
Em 22/05/2018 em 20:11, Sttorm disse:

@peterson18 Então vamos fazer do jeito classico , XML > OUTFITS.XML , deixei a tag da outfit que você quer que ganhe assim


	<outfit id="2" quest="181654">
		<list gender="0" lookType="137" name="Hunter"/>
		<list gender="1" lookType="129" name="Hunter"/>
	</outfit>

Observe que quest é uma storage , que voce vai colocar respectivamente na script que te passarei :


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 storage = 35678 -- monster kill      |
local sto = 24529 -- don't pick premio     |
  ----   								   | Não mecha nessa gambiarra aqui , só certifique que nenhuma dessas storages sejam usadas em outros sistemas
local rage = 24525 -- inicializate contage |
local ok = 45651 -- don't inicializate     |
  
local exp = 100   -- Quantidade de XP
local monster = 100 -- Quantos monstros terá que matar
local outfit = 181654 -- Storage que está na outfits.xml

if(msgcontains(msg, 'premio')) then
 if getPlayerStorageValue(cid, sto) == -1 then
  if getPlayerStorageValue(cid, storage) >= 100 then
  
  selfSay("You have finished the task", cid)
  doPlayerAddExp(cid, exp)
  doSendMagicEffect(getCreaturePosition(cid), 5)
  setPlayerStorageValue(cid, rage, -1)
  setPlayerStorageValue(cid, sto, 1)
  setPlayerStorageValue(cid, fuck, 1)
  setPlayerStorageValue(cid, outfit, 1)
  
  else
  selfSay("You need kill 100 monsters do finish the task", cid)
  end
 else
 selfSay("back from here nigga", cid)
 end
end

if(msgcontains(msg, 'accept')) then 
 if getPlayerStorageValue(cid, ok) == -1 then
   
   selfSay("You have intialized the task", cid)
   setPlayerStorageValue(cid, ok, 1)
   setPlayerStorageValue(cid, rage, 1)
   
 else
  selfSay("You started the task", cid)
end
end
end
npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
npcHandler:addModule(FocusModule:new())

  

 

Funcionando!

Muito Obrigado!

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