Ir para conteúdo
  • Cadastre-se

Posts Recomendados

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  :D 

 

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 por robgreen (veja o histórico de edições)
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.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo