Ir para conteúdo

Yan Oliveira

Moderador
  • Total de itens

    2187
  • Registro em

  • Última visita

  • Dias Ganhos

    58

Tudo que Yan Oliveira postou

  1. Yan Oliveira

    (Pedido) NPC

    Testa ai, eu testei aqui e funcinou. Mas qualquer problema me fale. E só fazendo um adendo, se você usa a base DXP provavelmente não vai funcionar porque o onKill dela está bugado e as task que fiz nessa base não funcionaram.
  2. Yan Oliveira

    (Pedido) NPC

    Não, para criar outros NPC de task de derrotar pokémon vai ter que repetir o mesmo processo. Pois naquele script eu apenas defini que vai derrotar o pokémon Scyther pois na tabela eu pego a primeira posição da tabela (só para amostra) e defini a storage do onKill do creaturescripts como verificação para o NPC. Então para criar outro é necessário criar outro npc (xml e lua) criar o script de verificação no arquivo lua e em creaturescripts que você faz o script da task.
  3. Yan Oliveira

    (Pedido) NPC

    Você fala a tag do OnKill do creaturescripts.xml?
  4. Yan Oliveira

    (Pedido) NPC

    - Começando pelo NPC de Task de item Vai em Data/NPC e crie o arquivo Breno.xml e adicione o código dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Breno" script="Breno.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="1421" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, em que posso ajudar? Diga {help}, {ajuda} ou {task} para mais informações."/> </parameters> </npc> Agora em Data/NPC/Scripts crie o arquivo Breno.lua (com codificação ANSI) e adicione o código dentro: 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 -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local storage = 150000 local storage_start = 150001 local id_item = 12163 -- ID DO ITEM QUE O NPC PEDE local quantidade_item = 100 -- QUANTIDADE DE ITENS QUE O NPC PEDE local id_item_recebido = 16563 -- ID DO ITEM QUE RECEBE AO COMPLETAR A TASK local quantidade_item_recebido = 1 -- QUANTIDADE DE ITENS QUE RECEBE AO COMPLETAR A TASK ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') or msgcontains(msg, 'task') then if getPlayerStorageValue(cid, storage) == 1 then selfSay("Você já completou minha task.", cid) talkState[talkUser] = 0 return true else selfSay("Preciso que você me traga " ..quantidade_item.. " " ..getItemNameById(id_item).. " Você trouxe?", cid) talkState[talkUser] = 1 return true end elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, storage_start) < 1 then setPlayerStorageValue(cid, storage_start, 1) return true end if getPlayerItemCount(cid, id_item) >= quantidade_item then doPlayerRemoveItem(cid, id_item, quantidade_item) selfSay("Parabéns! Você trouxe " ..quantidade_item.. " " ..getItemNameById(id_item).. " que eu precisava. Receba sua recompensa.", cid) doPlayerAddItem(cid, id_item_recebido, quantidade_item_recebido) doSendMagicEffect(getPlayerPosition(cid), 29) setPlayerStorageValue(cid, storage, 1) talkState[talkUser] = 0 return true else selfSay("Você ainda não trouxe " ..quantidade_item.. " " ..getItemNameById(id_item).. " que eu preciso.", cid) talkState[talkUser] = 0 return true end return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, storage_start) < 1 then selfSay("Ok, fale comigo novamente caso queira fazer minha task.") talkState[talkUser] = 0 return true else selfSay("Então vá buscar os itens que eu pedi.") talkState[talkUser] = 0 return true end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) - Agora é o NPC da Task que derrota Pokémon Vá em Data/NPC e crie o arquivo Brime.xml e adicione o código dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Brime" script="Brime.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="1421" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, eu recompenso jogadores que aceitam meus desafios. Diga {help}, {ajuda} ou {task} para mais informações."/> </parameters> </npc> Agora em Data/NPC/Scripts crie o arquivo Brime.lua (com codificação ANSI) e adicione o código dentro: 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 -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local nome_poke_task = "Scyther" local quantidade_pokemon = 50 local storage_npc = 120000 local storage_task = 110000 local storage_start = 121000 -- RECOMPENSAS -- local id_item = 12545 local quantidade_item = 1 local exp = 500000 ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') or msgcontains(msg, 'task') then if getPlayerStorageValue(cid, storage_task) == 1 then -- VERIFICA SE TERMINOU A TASK selfSay("Você já completou minha missão.", cid) talkState[talkUser] = 0 return true else selfSay("Preciso que você derrote alguns {"..nome_poke_task.."} para mim. Você aceita este desafio?", cid) talkState[talkUser] = 1 return true end elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim') or (msgcontains(msg, 'ok'))) and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, storage_start) < 1 then setPlayerStorageValue(cid, storage_start, 1) return true end if getPlayerStorageValue(cid, storage_npc) == 1 then selfSay("Parabéns! Você completou minha tarefa. Receba sua recompensa.", cid) doPlayerAddExp(cid, exp) doPlayerAddItem(cid, id_item, quantidade_item) doSendAnimatedText(getThingPos(cid), exp, 27) doSendMagicEffect(getPlayerPosition(cid), 29) setPlayerStorageValue(cid, storage_task, 1) talkState[talkUser] = 0 return true else if getPlayerStorageValue(cid, storage_npc) < 0 then selfSay("Vá derrotar todos os " ..quantidade_pokemon.. " " ..nome_poke_task.. " para mim.") setPlayerStorageValue(cid, storage_npc, 0) talkState[talkUser] = 0 return true elseif getPlayerStorageValue(cid, storage_npc) == 0 then selfSay("Você ainda não derrotou todos os " ..quantidade_pokemon.. " " ..nome_poke_task.. ". Vá derrotar os " ..nome_poke_task.. " restante antes de falar comigo.") talkState[talkUser] = 0 return true end return true end return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then if getPlayerStorageValue(cid, storage_start) < 1 then selfSay("Ok, fale comigo novamente caso queira fazer minha task.", cid) talkState[talkUser] = 0 return true else selfSay("Então vá completar sua tarefa.") talkState[talkUser] = 0 return true end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Agora em Data/Creaturescripts/scripts crie o arquivo task_npc.lua (com a codificação ANSI do arquivo pelo fato de ter acentuação no português) e adicione o código dentro: local storage_npc = 120000 local storage_contador = 120001 local pokemon = { [1] = {name = "Scyther", count = 50}, } local restante local nome = pokemon[1].name function onKill(cid, target) for _, t in ipairs(pokemon) do local quantidade = t.count if getCreatureName(target) == nome then if getPlayerStorageValue(cid, storage_npc) == 0 then if getPlayerStorageValue(cid, storage_contador) == quantidade then doPlayerSendTextMessage(cid, 27, "Não há mais " ..nome.. " para derrotar.") setPlayerStorageValue(cid, storage_contador, getPlayerStorageValue(cid, storage_contador) + 1) setPlayerStorageValue(cid, storage_npc, 1) return true elseif getPlayerStorageValue(cid, storage_contador) < quantidade then -- AS STORAGES COMEÇAM COM -1, ENTÃO NESSA PARTE EU APENAS DEFINO COMO 0 PARA NA LINHA SEGUINTE JÁ IR PARA 1. NÃO COLOQUE RETURN NESSE LAÇO PORQUE VAI ENCERRAR O ESCOPO E NÃO VAI CONTAR CORRETAMENTE -- if getPlayerStorageValue(cid, storage_contador) < 0 then setPlayerStorageValue(cid, storage_contador, 0) end setPlayerStorageValue(cid, storage_contador, getPlayerStorageValue(cid, storage_contador) + 1) restante = quantidade - getPlayerStorageValue(cid, storage_contador) doPlayerSendTextMessage(cid, 27, "Faltam " ..restante.. " " ..nome.. " para derrotar.") return true end elseif (getPlayerStorageValue(cid, storage_npc) < 0) or (getPlayerStorageValue(cid, storage_npc) > 0) then return true end return true end return true end end Agora em Data/Creaturescripts abra o creaturescripts.xml e adiciona a tag: <event type="kill" name="task_npc" script="task_npc.lua"/> E por último em Data/Creaturescripts/Scripts abra o Login.lua e adicione a tag na parte de eventos: registerCreatureEvent(cid, "task_npc")
  5. Foi o que eu havia falado para você, você pegou código para adaptar para outro, e alterou errado as coisas. Você deve ter trocado errado o valor das variáveis e colocou o nome do NPC Peter como pokémon. Essa parte é para setar a chave da storage como 0, pois ela começa com -1, e como está incrementando para fazer a contagem da task ela tem que começar do 0, senão o contador ficará com o valor com um a menos.
  6. Eu fiz com NPC, caso queira com item só falar que faço também. Vai em Data/NPC e crie Resetador.xml (crie como codificação ANSI porque usei acentuação, mas caso use inglês, pode deixar no UTF-8 mesmo) e adicione o código dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="Resetador" script="Resetador.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1"> <health now="150" max="150"/> <look type="1421" head="114" body="119" legs="114" feet="114" corpse="2212"/> <parameters> <parameter key="message_greet" value="Olá |PLAYERNAME|, o que você procura aqui? Diga {help} ou {ajuda} para mais informações."/> </parameters> </npc> Agora em Data/NPC/Scripts crie o arquivo Resetador.lua (crie como codificação ANSI porque usei acentuação, mas caso use inglês, pode deixar no UTF-8 mesmo) e adicione o código dentro: 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 -- VARIÁVEIS -- local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local level = 100 local storages = {100008, 100009, 100010} ----------------------------------- [ DIALOGO COM NPC] --------------------------------- if msgcontains(msg, 'help') or msgcontains(msg, 'ajuda') then selfSay("Se você for nível "..level.. " ou mais eu posso resetar todas as quests que você já fez. Gostaria de reseta-lás?", cid) talkState[talkUser] = 1 return true elseif (msgcontains(msg, 'yes') or msgcontains(msg, 'sim')) and talkState[talkUser] == 1 then if getPlayerLevel(cid) >= level then for i = 1, #storages do if getPlayerStorageValue(cid, storages[i]) > 0 then doSendMagicEffect(getPlayerPosition(cid), 28) doPlayerSendTextMessage(cid, 27, "Todas as quests foram resetadas com sucesso. Agora você pode fazê-las novamente.") setPlayerStorageValue(cid, storages[i], 0) return true else selfSay("Todas as quests já foram resetadas.", cid) return true end end talkState[talkUser] = 0 end return true elseif (msgcontains(msg, 'no') or msgcontains(msg, 'não')) and talkState[talkUser] == 1 then selfSay("Ok então.", cid) talkState[talkUser] = 0 return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Eu fiz bem básico mesmo para ver se é assim que quer. Deixei a frase como storage porque não sei se irá adicionar o código em server online e os players não vão saber o que é storage, então deixei como quest a mensagem. Deixei apenas uma verificação para falar com npc se o player possuir nível 100 ou mais. Caso queira o NPC com mais validações só falar. As storages que quiser resetar, adicione na tabela storages, deixei 3 de exemplo lá. Testei aqui e está funcionando, mas qualquer problema me fala.
  7. @Olan trein Substitua seu código por esse: local id_box = 15266 local storage_time = 100001 local storage = 100000 local addons = {14953,14954,14956,14996,14997,14998,14955} local quantidade = 10 function onUse(cid, item, frompos, item2, topos, pos) local randomChance = math.random(1, #addons) if item.itemid == id_box then if (getPlayerStorageValue(cid, storage) <= 10) and (getPlayerStorageValue(cid, storage_time) <= os.time()) then doPlayerAddItem(cid, addons[randomChance], quantidade) doSendMagicEffect(getCreaturePosition(cid), 28) doPlayerSendTextMessage(cid, 19, "Você ganhou " .. quantidade.. " " ..getItemNameById(addons[randomChance])) if getPlayerStorageValue(cid, storage) < 0 then setPlayerStorageValue(cid, storage, 0) end setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) if getPlayerStorageValue(cid, storage) >= 10 then setPlayerStorageValue(cid, storage_time, os.time() + (3*60*60)) end return true else doPlayerSendTextMessage(cid, 27, "Você já abriu todas as 10 boxes possíveis dentro do tempo. Agora é necessário esperar 3 horas.") return true end return true end end Assim como pediu, ele consegue abrir 10 boxes no máximo dentro do período de 3 horas, depois que abrir as 10, é necessário esperar 3 horas. Eu testei aqui e funcionou, testa ai e me fala se der algum problema.
  8. Yan Oliveira

    Erro Distro

    Esse problema parece que o parâmetro de algum método de string está errado. Só tem isso no script do npc?
  9. Torna a outra inútil porque no caso ele está trabalhando com 1 item só por conta da verificação da storage. Mas quantas box iguais no máximo o player pode ter? Isso precisa ser definido.
  10. Então ai é outro caso kkk, não é que o script não funcionou, mas você usou ele como base para fazer uma adaptação, então o problema deve estar no que você mudou, pois esse script funciona porque eu testei antes de postar e testei em duas bases diferentes e funcionou. Irei olhar seu script que mandou por PM.
  11. Você fez o procedimento certo como falei no tutorial ? Adicionou tudo certo? Porque eu testei no meu servidor e deu certo, e na parte da task eu só usei funções genéricas que tem em qualquer base de poketibia. Mas aparece algum erro na distro?
  12. Que chato, mas vamos fazer o seguinte, vamos testar até achar a cor da mensagem pelo privado, assim não fica spammando o tópico, e quando encontrarmos a cor postamos aqui para que se outras pessoas queiram saber tem a resposta.
  13. Vish, geralmente nesse arquivo mostra todas as constantes do servidor (que inclui a cor das mensagens). Mas seu TFS é 1.2 correto? Procurei aqui no fórum a cor das mensagens laranja e uma outra alternativa é com o parâmetro 37, tente esse código: local id_crystal_coin = 3043 -- ID CRYSTAL COIN local id_montaria_donkey = 13 -- ID MONTARIA DONKEY local id_plague_mask = 13925 -- ID PLAGUE MASK local id_plague_bell = 13926 -- ID PLAGUE BELL local id_soft_boots = 6132 -- ID SOFT BOOTS local id_montaria_crystal_wolf = 16 -- ID MONTARIA CRYSTAL WOLF -- TABELA PARA ADDON CITIZEN DE ACORDO COM SEXO DO PLAYER -- local addon_citizen = { [0] = 136, [1] = 128 } function onAdvance(cid, skill, oldlevel, newlevel) if (getPlayerLevel(cid) >= 20) and (getPlayerStorageValue(cid, 99980) < 1) then doPlayerAddItem(cid, id_crystal_coin, 2) -- ADICIONA CRYSTAL COIN doPlayerAddOutfit(cid, addon_citizen[getPlayerSex(cid)], 3) -- ADICIONA ADDON CITIZEN FULL DE ACORDO COM SEXO DO PLAYER doSendMagicEffect(cid, CONST_ME_POFF) -- EFEITO AO UPAR doPlayerSendTextMessage(cid, 37, "You have received 2 Crystal Coin and the addon Citizen Full for advancing to level 20.") -- MENSAGEM setPlayerStorageValue(cid, 99980, 1) -- STORAGE PARA NÃO FICAR UPANDO MAIS ASSIM QUE ESTIVER NO LEVEL OU SUPERIOR end if (getPlayerLevel(cid) >= 50) and (getPlayerStorageValue(cid, 99981) < 1) then doPlayerAddMount(cid, id_montaria_donkey) -- ADICIONA MO0NTARIA DONKEY doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 37, "You have received Donkey mount for advancing to level 50.") setPlayerStorageValue(cid, 99981, 1) end if (getPlayerLevel(cid) >= 80) and (getPlayerStorageValue(cid, 99982) < 1) then doPlayerAddItem(cid, id_plague_mask, 1) -- ADICIONA PLAGUE MASK doPlayerAddItem(cid, id_plague_bell, 1) -- ADICIONA PLAGUE BELL doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 37, "You have received Plague Mask and Plague Bell for advancing to Level 80.") setPlayerStorageValue(cid, 99982, 1) end if (getPlayerLevel(cid) >= 100) and (getPlayerStorageValue(cid, 99983) < 1) then doPlayerAddItem(cid, id_soft_boots, 1) -- ADICIONA SOFT BOOTS doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 37, "You have received Soft Boots for advancing to Level 100.") setPlayerStorageValue(cid, 99983, 1) end if (getPlayerLevel(cid) >= 150) and (getPlayerStorageValue(cid, 99984) < 1) then doPlayerAddMount(cid, id_montaria_crystal_wolf) -- ADICIONA MONTARIA CRYSTAL WOLF doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 37, "You have received the Crystal Wolf mount for advancing to Level 150.") setPlayerStorageValue(cid, 99984, 1) return true end return true end Testa e me fala se deu certo.
  14. Pode ser por conta da cor da mensagem, talvez não exista esse parâmetro no seu server. Mas se funcionou as recompensas menos mal, mas faz o seguinte, vai em Data/Lib e mostra o arquivo 000-constant.lua.
  15. Só mostra esse erro? Qual base você utiliza? Esse erro acontece com move do pokémon selvagem ou seu? E chega a sair o move?
  16. Yan Oliveira

    captura de poke

    Qual base você utiliza? No config.lua tem essa linha? limitPokeballs = 6 Verifique se tem e qual o valor está contido nela.
  17. Estava vendo aqui e no TFS 1x parece que a cor laranja é 36. Testa ai se ficou laranja. Também vi o problema sobre upar vários níveis, é que a condição elseif e os return em cada bloco estava dando problema. Arrumei aqui e testei, deu certo aqui. Substitui o código por: local id_crystal_coin = 3043 -- ID CRYSTAL COIN local id_montaria_donkey = 13 -- ID MONTARIA DONKEY local id_plague_mask = 13925 -- ID PLAGUE MASK local id_plague_bell = 13926 -- ID PLAGUE BELL local id_soft_boots = 6132 -- ID SOFT BOOTS local id_montaria_crystal_wolf = 16 -- ID MONTARIA CRYSTAL WOLF -- TABELA PARA ADDON CITIZEN DE ACORDO COM SEXO DO PLAYER -- local addon_citizen = { [0] = 136, [1] = 128 } function onAdvance(cid, skill, oldlevel, newlevel) if (getPlayerLevel(cid) >= 20) and (getPlayerStorageValue(cid, 99980) < 1) then doPlayerAddItem(cid, id_crystal_coin, 2) -- ADICIONA CRYSTAL COIN doPlayerAddOutfit(cid, addon_citizen[getPlayerSex(cid)], 3) -- ADICIONA ADDON CITIZEN FULL DE ACORDO COM SEXO DO PLAYER doSendMagicEffect(cid, CONST_ME_POFF) -- EFEITO AO UPAR doPlayerSendTextMessage(cid, 36, "You have received 2 Crystal Coin and the addon Citizen Full for advancing to level 20.") -- MENSAGEM setPlayerStorageValue(cid, 99980, 1) -- STORAGE PARA NÃO FICAR UPANDO MAIS ASSIM QUE ESTIVER NO LEVEL OU SUPERIOR end if (getPlayerLevel(cid) >= 50) and (getPlayerStorageValue(cid, 99981) < 1) then doPlayerAddMount(cid, id_montaria_donkey) -- ADICIONA MO0NTARIA DONKEY doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 36, "You have received Donkey mount for advancing to level 50.") setPlayerStorageValue(cid, 99981, 1) end if (getPlayerLevel(cid) >= 80) and (getPlayerStorageValue(cid, 99982) < 1) then doPlayerAddItem(cid, id_plague_mask, 1) -- ADICIONA PLAGUE MASK doPlayerAddItem(cid, id_plague_bell, 1) -- ADICIONA PLAGUE BELL doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 36, "You have received Plague Mask and Plague Bell for advancing to Level 80.") setPlayerStorageValue(cid, 99982, 1) end if (getPlayerLevel(cid) >= 100) and (getPlayerStorageValue(cid, 99983) < 1) then doPlayerAddItem(cid, id_soft_boots, 1) -- ADICIONA SOFT BOOTS doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 36, "You have received Soft Boots for advancing to Level 100.") setPlayerStorageValue(cid, 99983, 1) end if (getPlayerLevel(cid) >= 150) and (getPlayerStorageValue(cid, 99984) < 1) then doPlayerAddMount(cid, id_montaria_crystal_wolf) -- ADICIONA MONTARIA CRYSTAL WOLF doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 36, "You have received the Crystal Wolf mount for advancing to Level 150.") setPlayerStorageValue(cid, 99984, 1) return true end return true end Testa e me fala se deu problema, lembrando que somente o último bloco do nível, tem que ter o return.
  18. Só por curiosidade, testa esse aqui. Substitui todo o código por esse: local id_crystal_coin = 3043 -- ID CRYSTAL COIN local id_montaria_donkey = 13 -- ID MONTARIA DONKEY local id_plague_mask = 13925 -- ID PLAGUE MASK local id_plague_bell = 13926 -- ID PLAGUE BELL local id_soft_boots = 6132 -- ID SOFT BOOTS local id_montaria_crystal_wolf = 16 -- ID MONTARIA CRYSTAL WOLF -- TABELA PARA ADDON CITIZEN DE ACORDO COM SEXO DO PLAYER -- local addon_citizen = { [0] = 136, [1] = 128 } function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerLevel(cid) >= 20 and getPlayerStorageValue(cid, 99980) < 1 then doPlayerAddItem(cid, id_crystal_coin, 2) -- ADICIONA CRYSTAL COIN doPlayerAddOutfit(cid, addon_citizen[getPlayerSex(cid)], 3) -- ADICIONA ADDON CITIZEN FULL DE ACORDO COM SEXO DO PLAYER doSendMagicEffect(cid, CONST_ME_POFF) -- EFEITO AO UPAR doPlayerSendTextMessage(cid, 20, "You have received 2 Crystal Coin and the addon Citizen Full for advancing to level 20.") -- MENSAGEM setPlayerStorageValue(cid, 99980, 1) -- STORAGE PARA NÃO FICAR UPANDO MAIS ASSIM QUE ESTIVER NO LEVEL OU SUPERIOR return true elseif getPlayerLevel(cid) >= 50 and getPlayerStorageValue(cid, 99981) < 1 then doPlayerAddMount(cid, id_montaria_donkey) -- ADICIONA MO0NTARIA DONKEY doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 20, "You have received Donkey mount for advancing to level 50.") setPlayerStorageValue(cid, 99981, 1) return true elseif getPlayerLevel(cid) >= 80 and getPlayerStorageValue(cid, 99982) < 1 then doPlayerAddItem(cid, id_plague_mask, 1) -- ADICIONA PLAGUE MASK doPlayerAddItem(cid, id_plague_bell, 1) -- ADICIONA PLAGUE BELL doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 20, "You have received Plague Mask and Plague Bell for advancing to Level 80.") setPlayerStorageValue(cid, 99982, 1) return true elseif getPlayerLevel(cid) >= 100 and getPlayerStorageValue(cid, 99983) < 1 then doPlayerAddItem(cid, id_soft_boots, 1) -- ADICIONA SOFT BOOTS doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 20, "You have received Soft Boots for advancing to Level 100.") setPlayerStorageValue(cid, 99983, 1) return true elseif getPlayerLevel(cid) >= 150 and getPlayerStorageValue(cid, 99984) < 1 then doPlayerAddMount(cid, id_montaria_crystal_wolf) -- ADICIONA MONTARIA CRYSTAL WOLF doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 20, "You have received the Crystal Wolf mount for advancing to Level 150.") setPlayerStorageValue(cid, 99984, 1) return true end return true end
  19. Mas a laranja não funcionou depois?
  20. Obrigado pelas palavras amigo ! ? Descobriu qual era o problema então? Mas se quiser pegar esse último vai funcionar também.
  21. É porque você já deve estar com a storage por ter testado antes. Vou mudar a storage e testa ai: local id_crystal_coin = 3043 -- ID CRYSTAL COIN local id_montaria_donkey = 13 -- ID MONTARIA DONKEY local id_plague_mask = 13925 -- ID PLAGUE MASK local id_plague_bell = 13926 -- ID PLAGUE BELL local id_soft_boots = 6132 -- ID SOFT BOOTS local id_montaria_crystal_wolf = 16 -- ID MONTARIA CRYSTAL WOLF -- TABELA PARA ADDON CITIZEN DE ACORDO COM SEXO DO PLAYER -- local addon_citizen = { [0] = 136, [1] = 128 } function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerLevel(cid) >= 20 and getPlayerStorageValue(cid, 99973) < 1 then doPlayerAddItem(cid, id_crystal_coin, 2) -- ADICIONA CRYSTAL COIN doPlayerAddOutfit(cid, addon_citizen[getPlayerSex(cid)], 3) -- ADICIONA ADDON CITIZEN FULL DE ACORDO COM SEXO DO PLAYER doSendMagicEffect(cid, CONST_ME_POFF) -- EFEITO AO UPAR doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 2 Crystal Coin and the addon Citizen Full for advancing to level 20.") -- MENSAGEM setPlayerStorageValue(cid, 99973, 1) -- STORAGE PARA NÃO FICAR UPANDO MAIS ASSIM QUE ESTIVER NO LEVEL OU SUPERIOR return true elseif getPlayerLevel(cid) >= 50 and getPlayerStorageValue(cid, 99974) < 1 then doPlayerAddMount(cid, id_montaria_donkey) -- ADICIONA MO0NTARIA DONKEY doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received donkey mount for advancing to level 50.") setPlayerStorageValue(cid, 99974, 1) return true elseif getPlayerLevel(cid) >= 80 and getPlayerStorageValue(cid, 99975) < 1 then doPlayerAddItem(cid, id_plague_mask, 1) -- ADICIONA PLAGUE MASK doPlayerAddItem(cid, id_plague_bell, 1) -- ADICIONA PLAGUE BELL doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 30000 gold in your bank for advancing to Level 50.") setPlayerStorageValue(cid, 99975, 1) return true elseif getPlayerLevel(cid) >= 100 and getPlayerStorageValue(cid, 99976) < 1 then doPlayerAddItem(cid, id_soft_boots, 1) -- ADICIONA SOFT BOOTS doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 60000 gold in your bank for advancing to Level 75.") setPlayerStorageValue(cid, 99976, 1) return true elseif getPlayerLevel(cid) >= 150 and getPlayerStorageValue(cid, 99977) < 1 then doPlayerAddMount(cid, id_montaria_crystal_wolf) -- ADICIONA MONTARIA CRYSTAL WOLF doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 10000 gold in your bank for advancing to Level 100.") setPlayerStorageValue(cid, 99977, 1) return true end return true end @gabneitor Testa agora, tinha esquecido de arrumar a storage do if.
  22. Tem sim, substitua o código por esse: local id_crystal_coin = 3043 -- ID CRYSTAL COIN local id_montaria_donkey = 13 -- ID MONTARIA DONKEY local id_plague_mask = 13925 -- ID PLAGUE MASK local id_plague_bell = 13926 -- ID PLAGUE BELL local id_soft_boots = 6132 -- ID SOFT BOOTS local id_montaria_crystal_wolf = 16 -- ID MONTARIA CRYSTAL WOLF -- TABELA PARA ADDON CITIZEN DE ACORDO COM SEXO DO PLAYER -- local addon_citizen = { [0] = 136, [1] = 128 } function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerLevel(cid) >= 20 and getPlayerStorageValue(cid, 99963) < 1 then doPlayerAddItem(cid, id_crystal_coin, 2) -- ADICIONA CRYSTAL COIN doPlayerAddOutfit(cid, addon_citizen[getPlayerSex(cid)], 3) -- ADICIONA ADDON CITIZEN FULL DE ACORDO COM SEXO DO PLAYER doSendMagicEffect(cid, CONST_ME_POFF) -- EFEITO AO UPAR doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 2 Crystal Coin and the addon Citizen Full for advancing to level 20.") -- MENSAGEM setPlayerStorageValue(cid, 99963, 1) -- STORAGE PARA NÃO FICAR UPANDO MAIS ASSIM QUE ESTIVER NO LEVEL OU SUPERIOR return true elseif getPlayerLevel(cid) >= 50 and getPlayerStorageValue(cid, 99964) < 1 then doPlayerAddMount(cid, id_montaria_donkey) -- ADICIONA MO0NTARIA DONKEY doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received donkey mount for advancing to level 50.") setPlayerStorageValue(cid, 99964, 1) return true elseif getPlayerLevel(cid) >= 80 and getPlayerStorageValue(cid, 99965) < 1 then doPlayerAddItem(cid, id_plague_mask, 1) -- ADICIONA PLAGUE MASK doPlayerAddItem(cid, id_plague_bell, 1) -- ADICIONA PLAGUE BELL doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 30000 gold in your bank for advancing to Level 50.") setPlayerStorageValue(cid, 99965, 1) return true elseif getPlayerLevel(cid) >= 100 and getPlayerStorageValue(cid, 99966) < 1 then doPlayerAddItem(cid, id_soft_boots, 1) -- ADICIONA SOFT BOOTS doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 60000 gold in your bank for advancing to Level 75.") setPlayerStorageValue(cid, 99966, 1) return true elseif getPlayerLevel(cid) >= 150 and getPlayerStorageValue(cid, 99969) < 1 then doPlayerAddMount(cid, id_montaria_crystal_wolf) -- ADICIONA MONTARIA CRYSTAL WOLF doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received 10000 gold in your bank for advancing to Level 100.") setPlayerStorageValue(cid, 99969, 1) return true end return true end Sobre o efeito, é que não sei se era o único arquivo de up kkk. Mas que bom que não deu problema. Mas testa ai e me fala.
  23. De nada! Que bom que funcionou. Eu também coloquei efeito ao alcançar tal nível, mas esqueci que geralmente nos server, já tem no script de up efeito de nível. Vê se achar que está ruim (ou duplicado) e quiser que eu tire, só falar.
  24. Substitui todo seu código por esse: local id_crystal_coin = 3043 -- ID CRYSTAL COIN local id_montaria_donkey = 13 -- ID MONTARIA DONKEY local id_plague_mask = 13925 -- ID PLAGUE MASK local id_plague_bell = 13926 -- ID PLAGUE BELL local id_soft_boots = 6132 -- ID SOFT BOOTS local id_montaria_crystal_wolf = 16 -- ID MONTARIA CRYSTAL WOLF -- TABELA PARA ADDON CITIZEN DE ACORDO COM SEXO DO PLAYER -- local addon_citizen = { [0] = 136, [1] = 128 } function onAdvance(cid, skill, oldlevel, newlevel) if getPlayerLevel(cid) >= 20 and getPlayerStorageValue(cid, 99963) < 1 then doPlayerAddItem(cid, id_crystal_coin, 2) -- ADICIONA CRYSTAL COIN doPlayerAddOutfit(cid, addon_citizen[getPlayerSex(cid)], 3) -- ADICIONA ADDON CITIZEN FULL DE ACORDO COM SEXO DO PLAYER doSendMagicEffect(cid, CONST_ME_POFF) -- EFEITO AO UPAR doPlayerSendTextMessage(cid, 19, "You have received 2 Crystal Coin and the addon Citizen Full for advancing to level 20.") -- MENSAGEM setPlayerStorageValue(cid, 99963, 1) -- STORAGE PARA NÃO FICAR UPANDO MAIS ASSIM QUE ESTIVER NO LEVEL OU SUPERIOR return true elseif getPlayerLevel(cid) >= 50 and getPlayerStorageValue(cid, 99964) < 1 then doPlayerAddMount(cid, id_montaria_donkey) -- ADICIONA MO0NTARIA DONKEY doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 19, "You have received Donkey mount for advancing to level 50.") setPlayerStorageValue(cid, 99964, 1) return true elseif getPlayerLevel(cid) >= 80 and getPlayerStorageValue(cid, 99965) < 1 then doPlayerAddItem(cid, id_plague_mask, 1) -- ADICIONA PLAGUE MASK doPlayerAddItem(cid, id_plague_bell, 1) -- ADICIONA PLAGUE BELL doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 19, "You have received Plague Mask and Plague Bell for advancing to Level 80.") setPlayerStorageValue(cid, 99965, 1) return true elseif getPlayerLevel(cid) >= 100 and getPlayerStorageValue(cid, 99966) < 1 then doPlayerAddItem(cid, id_soft_boots, 1) -- ADICIONA SOFT BOOTS doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 19, "You have received Soft Boots for advancing to Level 100.") setPlayerStorageValue(cid, 99966, 1) return true elseif getPlayerLevel(cid) >= 150 and getPlayerStorageValue(cid, 99969) < 1 then doPlayerAddMount(cid, id_montaria_crystal_wolf) -- ADICIONA MONTARIA CRYSTAL WOLF doSendMagicEffect(cid, CONST_ME_POFF) doPlayerSendTextMessage(cid, 19, "You have received the Crystal Wolf mount for advancing to Level 150.") setPlayerStorageValue(cid, 99967, 1) return true end return true end Eu peguei os ID da montaria, addon citizen e crystal coin em outros scripts porque eu não conheço muito do tibia então não sei qual os id. Mas qualquer coisa, só trocar os id nas variáveis. Também tirei o Balance porque você não comentou dele, então não sei se era para continuar com ele ou não no código, mas se era para ele continuar, só me avisar que coloco novamente. Testa e me fala se der algum problema.
  25. Primeiramente coloque um título intuitivo para o seu problema, títulos assim são incorretos! E fica complicado de alguém ajudar sem especificar. Sobre o problema, me parece que é por conta da acentuação, veja se o arquivo está com a codificação UTF-8 e se tiver, salve o arquivo com a codificação ANSI e veja se o problema persistirá.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...