Ir para conteúdo

[Encerrado] Npc De Task


loucodemais

Posts Recomendados

galera eu fiz um npc de task no sv do slicer pada sem lavel.

 

a base que usei foi o que ja tem o serve dele ja arrumei tudo la no configuration e tudo certin..

 

mais queria que o premio ficasse no slot da fishing rod fiz assim:

 

 

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 task = {

["Junior"] = {{"Magikarp", 30}, {"Poliwag", 20}, {"Goldeen", 10}, {"Seaking", 5}},

}

 

if msgcontains(msg, 'task') or msgcontains(msg, 'Task') then

if isMyTaskComplete(cid, getNpcCid()) then

selfSay("Wow you have already complete my task! Ok then, take your reward!", cid)

doPlayerAddItem(cid, 2152, 1) --premio

local a = doPlayerAddItem(cid, 2160, 1, false)

table.insert(addedItems, a)

if getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid == addedItems[tries] then

local sto = getMyTaskSto(cid, getNpcCid())

setPlayerStorageValue(cid, sto, -1)

talkState[talkUser] = 0

return true

else

selfSay("Then, is a simple task, i want to you kill {30 Magikarps, 20 Poliwags, 10 Goldeens and 5 Seakings}, you accept the task?", cid)

talkState[talkUser] = 2

end

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'Yes')) and talkState[talkUser] == 2 then

if getMyTaskSto(cid, getNpcCid()) ~= -1 then

selfSay("You are already doing my task! go end it!", cid)

talkState[talkUser] = 0

return true

end

local sto = getFreeTaskStorage(cid)

if sto == -1 then

selfSay("You can't catch more tasks! You are already with the maximum of "..(maxTasks).." tasks!", cid)

talkState[talkUser] = 0

return true

end

 

selfSay("OK then... Go kill your targets!", cid)

setStorageArray(cid, sto, task)

talkState[talkUser] = 0

return true

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

 

a parte q eu editei ta em negrito.

mais n ta pegando... tem como arruma?

Editado por loucodemais
Link para o comentário
Compartilhar em outros sites

ta mano oq tu quer fazer? o.O

table.insert(addedItems, a)
if getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid == addedItems[tries] then

clr q isso n ia funcionar neh.. n ta declarado as variaveis addedItems e nem a tries.. o.O

Link para o comentário
Compartilhar em outros sites

tipo usei seu npc de task mais mudei os pokes e queria bota o pemio pra vim uma nova rod de fishing, pra ir pro slot da rod ai tava testando =]

 

fou pegndo pedaços de outros scritp kkkk e deu nisso kkkkk tem como vc arruma? rep+

Link para o comentário
Compartilhar em outros sites

eu n sei o slot da rod entao...

doTransformItem(getPlayerSlotItem(cid, x).uid, newRodId)

 

em x coloca o num do slot da rod e em newRodId o id q vai virar...

Link para o comentário
Compartilhar em outros sites

a blz vlw vou tenta aki ^^

 

Slicer eu coloquei assim, mais ai não ta dando o premio.. quando eu termino a task pode ir la e falar com o npc denovo e fazer a task denovo e o npc n ta dando o premio

 

 

sera q eu errei algo? oq eu editei ta em negrito \/

 

 

 

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 task = {

["Thorn"] = {{"Magikarp", 30}, {"Poliwag", 20}, {"Goldeen", 10}, {"Seaking", 5}},

}

 

if msgcontains(msg, 'task') or msgcontains(msg, 'Task') then

if isMyTaskComplete(cid, getNpcCid()) then

selfSay("Wow you have already complete my task! Ok then, take your reward!", cid)

doPlayerAddItem(cid, 2152, 1) --premio

doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid, 2160)

local sto = getMyTaskSto(cid, getNpcCid())

setPlayerStorageValue(cid, sto, -1)

talkState[talkUser] = 0

return true

else

selfSay("Then, is a simple task, i want to you kill {30 Magikarps, 20 Poliwags, 10 Goldeens and 5 Seakings}, you accept the task?", cid)

talkState[talkUser] = 2

end

elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'Yes')) and talkState[talkUser] == 2 then

if getMyTaskSto(cid, getNpcCid()) ~= -1 then

selfSay("You are already doing my task! go end it!", cid)

talkState[talkUser] = 0

return true

end

local sto = getFreeTaskStorage(cid)

if sto == -1 then

selfSay("You can't catch more tasks! You are already with the maximum of "..(maxTasks).." tasks!", cid)

talkState[talkUser] = 0

return true

end

 

selfSay("OK then... Go kill your targets!", cid)

setStorageArray(cid, sto, task)

talkState[talkUser] = 0

return true

end

 

return true

end

 

npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)

npcHandler:addModule(FocusModule:new())

Editado por loucodemais
Link para o comentário
Compartilhar em outros sites

slice intao uso esse tag?

 

 

 

 

if doPlayerRemoveItem(cid, 12152, 1) == TRUE then

 

 

ai antes de ele dar o premio ele remove a rod q la la no slot certo?

 

a outra duvida tiro esse if da frente ne?

 

 

 

 

aki tem o nome dos slots ver ai se eu to certo \/

 

http://www.xtibia.co...mero-dos-slots/

Editado por loucodemais
Link para o comentário
Compartilhar em outros sites

oq eu quis perguntar eh se ja tem algum item la no slot da rod... se tu n tiro a rod normal de la...

pq se n tiver item la o script n vai funcionar ms, acredito eu....

e eu sei o numero dos slots... soh n sei qual slot eh qual ali kkk n joguei muito tibia...

Link para o comentário
Compartilhar em outros sites

kkk ata entendi.. basicamente oq eu queria era que o player ao termina a task ira ganhar uma nova fishing rod e ira fica no lugar da antiga e a storage de uma outifit so isso msm. desse jeito q te mandei ta certinho? rules.gif

Editado por loucodemais
Link para o comentário
Compartilhar em outros sites

kkkkk fuuu... vou ver aki se conssigo fazer funfa jaja edito ^^

 

aew slicer fiz uma gabiarra aki kkkkkk deu certo botei mais pra ganha umas storages pra libera pra outras task XD e o item foi pro slot certo ^^

 

 

 

vlw pela dica XD rep+

Link para o comentário
Compartilhar em outros sites

  • 5 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...