Postado Maio 9, 2014 11 anos Fala galera!! A dúvida é bem simples. O script está funcionando bem, só queria complementar ele mesmo e já fica aqui o script para quem quer fazer um npc semelhante a esse. O script funciona assim: tem um npc no mapa ai você vai falar com ele e ele diz que tem missões pra você só que você não pode escolher as missões, tem que fazer a 1, depois a 2 e assim em diante. Ele pede para você trazer itens para ele e em troca ele te dará pontos de experiencia. Eu queria complementar o script fazendo com que depois de cada missão ele dissesse "Obrigado pela ajuda!" e os pontos de experiencia aparececem no tibia, igual quando você mata um monstro, pois não aparece. Quem souber que apareça tanto no jogo quanto no broadcast, eu agradeceria também. É isso, eu sei que não é muito difícil fazer isso mas estou começando agora com programação e não consigo fazer essas coisas simples . Código do 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 if(msgcontains(msg, 'quest')) then selfSay('Para me ajudar diga {mission}.', cid) --This is just an example, In this script added 4 mission for you <img src='http://tibiaking.com/forum/public/style_emoticons/<#EMO_DIR#>/wink.png' class='bbc_emoticon' alt=';)' /> end if(msgcontains(msg, 'mission')) then if(getPlayerStorageValue(cid,700) < 1) then selfSay('Estou precisando de 100 {tarantula egg}. Quando acha-las me avise.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,701) < 1) then selfSay('Your next mission will be to get 150 {strands of medusa hair}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,702) < 0) then selfSay('Your next mission will be to get 300 {red dragon scales}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,703) < 0) then selfSay('Your next mission will be to get 400 {green dragon scales}.', cid) talkState[talkUser] = 1 elseif (getPlayerStorageValue(cid,703) == 1) then -- selfSay('Obrigado por me ajudar!', cid) talkState[talkUser] = 1 end --------------------------------------- elseif(msgcontains(msg, 'tarantula egg') and talkState[talkUser] == 1 and (getPlayerStorageValue(cid,700) < 1)) then if(doPlayerRemoveItem(cid, 11192, 100) == TRUE) then setPlayerStorageValue(cid,700,1) doPlayerAddExperienceLevel(cid,80000) selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('Trouxe-me as 100 {tarantula egg}?', cid) end --------------------------------------- elseif(msgcontains(msg, 'strands of medusa hair') and talkState[talkUser] == 1 and (getPlayerStorageValue (cid,701) < 1) and (getPlayerStorageValue(cid,700) == 1)) then if(doPlayerRemoveItem(cid, 11220, 100) == TRUE) then setPlayerStorageValue(cid,701,1) doPlayerAddExperience(cid,160000) selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('Trouxe-me as 100 {strands of medusa hair}?', cid) end --------------------------------------- elseif(msgcontains(msg, 'red dragon scales') and talkState[talkUser] == 1 and (getPlayerStorageValue (cid,702) < 1) and (getPlayerStorageValue(cid,701) == 1)) then if(doPlayerRemoveItem(cid, 5882, 100) == TRUE) then setPlayerStorageValue(cid,702,1) doPlayerAddExperience(cid,320000) selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('Trouxe-me as 100 {red dragon scales}?', cid) end --------------------------------------- elseif(msgcontains(msg, 'green dragon scales') and talkState[talkUser] == 1 and (getPlayerStorageValue (cid,703) < 1) and (getPlayerStorageValue(cid,702) == 1)) then if(doPlayerRemoveItem(cid, 5920, 100) == TRUE) then setPlayerStorageValue(cid,703,1) doPlayerAddExperienceLevel(cid,6400000) selfSay('Thank you.', cid) talkState[talkUser] = 0 else selfSay('Trouxe-me as 100 {green dragon scales}?', cid) end ------------------------------------------ end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) É isso galera, até a proxima. Rep+ pra quem conseguir ae Edit: em selfSay('Thank you.', cid) não está funcionando, queria que funcionasse. Editado Maio 9, 2014 11 anos por robgreen (veja o histórico de edições)
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.