Ir para conteúdo

Yan Oliveira

Moderador
  • Total de itens

    2221
  • Registro em

  • Última visita

  • Dias Ganhos

    60

Tudo que Yan Oliveira postou

  1. Essa action que você quer é o ID dela?
  2. Esse erro acontece com determinado pokémon? Ou em algum momento específico? Acontece com pokémon do player ou selvagem?
  3. Quando acontece esse ocorrido, aparece algum erro na distro?
  4. De nada! Está funcionando certinho? Era isso que queria?
  5. Vai em data/actions/scripts e crie um arquivo chamado alavanca_hp.lua (ou algum nome que preferir) e adicione o seguinte código dentro: function onUse(cid, item, frompos, item2, topos) local hp_antigo = getCreatureHealth(cid) + 200 -- Pega a vida atual do player antes de clicar na alavanca local hp_alavanca = math.floor(200 - getCreatureHealth(cid)) -- HP que o jogador terá ao clicar na alavanca if item.itemid == 1945 or item.itemid == 1946 then -- Aqui o ID da alavanca que clica para ficar com 200 de vida if getCreatureHealth(cid) > 200 or getCreatureMaxHealth(cid) > 200 then -- Verifica se tem mais de 200 de vida ou se a vida máxima é maior que 200 if getPlayerStorageValue(cid, 45000) == -1 then -- Verifica se o player não tem a storage ao clicar na alavanca doCreatureAddHealth(cid, hp_alavanca) -- Deixa o HP do player com 200 de vida doSendMagicEffect(getThingPos(cid), 27) -- Efeito ao clicar na alavanca setPlayerStorageValue(cid, 45000, 1) -- Adiciona a Storage return true else doPlayerSendTextMessage(cid, 27, "Você não pode usar a alavanca com" ..hp_alavanca.. " ou menos de vida!") return true end else doPlayerSendTextMessage(cid, 27, "Você não pode clicar na alavanca porque tem 200 ou menos de vida.") return true end return true end if item.itemid == 12176 then -- Aqui é o ID da 2º alavanca, que reseta o HP do player como estava antes if getPlayerStorageValue(cid, 45000) == 1 then -- Verifica se tem storage doCreatureAddHealth(cid, hp_antigo) -- adiciona o novo HP ao player doSendMagicEffect(getThingPos(cid), 29) -- efeito doPlayerSendTextMessage(cid, 27, "Seu HP foi restaurado para "..hp_antigo.. " de vida.") setPlayerStorageValue(cid, 45000, -1) -- Remove a storage para voltar a clicar novamente return true end end end Agora vai em data/actions/actions.xml e adicione a tag: <action itemid="1945;12176" script="alavanca_hp.lua" /> <!-- Lembrando que tem que colocar os id das 2 alavancas, só substituir ali pelos seus id --> E vai em data/npc/scripts/heal.lua (ou o arquivo.lua que cura os pokémons ao falar com a Nurse) e adicione o seguinte código dentro da função onCreatureDisappear(cid, pos) if getPlayerStorageValue(cid, 45000) then setPlayerStorageValue(cid, 45000, -1) return true end Lembrando que esse código é para o caso do player clicar na alavanca que tira vida, mas não clicar na que recupera, então ao falar com a Nurse, ele perde a storage para conseguir clicar na alavanca novamente. Eu não consegui testar muito, pois estou com pouco tempo, mas testei e está ficando sempre com 200 de vida ao clicar na alavanca, mas não testei direito se ele recupera a quantidade de vida exata que estava antes de clicar na alavanca que tira vida. Teste e me diga se é isso que quer.
  6. Seu servidor é tibia ou poketibia? E qual a versão do TFS?
  7. Bom, ao que me parece isso é um problema de mapping e não de script, então a seção correta seria na área de Mapping. Mas pelo que vi, o problema é porque não foi criada towns (ctrl+t no remere's) ou as cidades estão diferentes no arquivo de teleport em talkactions.
  8. Se ele usar a alavanca que restaura a vida primeiro é para acontecer algo? E essa ação será sempre, ou somente 1 vez?
  9. Eu comparei aqui e está a mesma coisa do meu 1.9. Minha sugestão para você não perder tempo e ter dor de cabeça, faz um backup do seu server, depois pega o zip (ou rar) do seu pokémon e descompacta e substitui no seu servidor (que está com esse problema da exp) alguns arquivos 1 por 1 (ou todos de uma vez, mas sugiro 1 por 1 para testar e ver o problema) em creaturescripts. Começa pelo pokeexp.lua, se não der certo, substitui o exp2.0.lua e vai olhando pela data os arquivos alterados a partir de quando deu problema e troca, e por precaução troca o creaturescripts.xml também. Faça esse procedimento e me diga se ainda continua que investigamos e tentamos resolver.
  10. Essa quest ai, o player só poderá fazer uma vez? E seria bom postar o seu action também.
  11. Isso, só falei a extensão errada rs. Mas é esse arquivo mesmo.
  12. Qual é a base que você utiliza?
  13. Acontece somente quando você cria pokémon pelo comando de char ADM? Acontece só com o Pikachu? E reparou se começou a acontecer depois de alguma mudança que você fez?
  14. Como não? Se você tem a pasta creaturescripts, tem que ter o creaturescripts.lua para executar os eventos. Todo Poketibia tem que ter. Olhei aqui nesse mesmo arquivo level system.lua no PDA 1.9 que tenho, e está a mesma coisa. Cara eu acho que compensa mais você trocar de base, não sei se criou muita função nova, mas procure usar o Pokémon Mythology 2019 como te indiquei, pois ele tem source e você consegue mexer também. Isso ai é um problema pequeno, mas que é chato de achar e gasta muito tempo para o retorno. Mas se quer continuar beleza, porém tem que olhar arquivo por arquivo que envolve level de pokémon selvagem. Se lembrar as últimas alterações que fez antes do problema, fica muito mais fácil e adianta muita coisa.
  15. Como assim? Data/creaturescripts/creaturescripts.lua
  16. Está igual também, poste o creaturescripts.lua
  17. O que causou esse erro? Qual ação no jogo e em que momento gerou esse erro? Foi quando usou a passiva do Electabuzz? E qual servidor você usa?
  18. Evita spammar e aguarde ser respondido. Acho que é mais fácil você migrar de base do que adaptar tudo de um servidor para o outro, ainda mais a quantidade de sistemas que você quer. Mas qual a base que você utiliza? Sobre o player passar em cima do outro player, pelo que pesquisei nos TFS 0.3.6 é apenas ir no config.lua e colocar o servidor como "pvp", assim: worldType = "pvp" Mas testa ai, e fala se funcionou, caso não dê certo, eu achei esse link que o cara explica como resolver, porém tem que mexer na source.
  19. Yan Oliveira

    OnUse simples

    É Tibia correto? E qual magia você quer que saia do personagem? Coloque o que você fez aqui e vejo se posso te ajudar.
  20. Exatamente, creio que pode ser por causa de versão, e também ele precisa falar a base e se é tibia ou poketibia.
  21. Cara eu analisei todos os arquivos que te pedi para postar aqui com os que tenho ainda do PDA 1.9 do Slicer, e estão idênticos, muda poucas coisas que não é para dar problema em relação ao seu problema. Mas isso de source adaptada é meio problemático, eu recomendo a utilizar o Pokémon Mythology 2019 (o DXP mais recente postado aqui no fórum), eu estou usando ele e estou gostando bastante, e até agora foi um dos poucos que a distro não deu problema com anti-vírus. Mas podemos tentar descobrir, acho que pode ter haver com o que o amigo acima falou, algum evento do death ou kill está gerando esse problema. Poste o seu arquivo data/creaturescripts/goback.lua para eu comparar com o que tenho aqui.
  22. Desculpe pela demora amigo. Bom, eu não sei se seu servidor é Tibia ou Poketibia, mas eu fiz para Poketibia TFS 0.3.6. E eu não sei trabalhar ainda com janelas do OTClient, então não conseguir fazer com janela (igual o Mark) mas fiz um npc que fala o nome dos itens (por enquanto manualmente, se for assim que quer eu adapto para falar o nome dos itens de uma tabela) e da o item que o player escolher pelo nome, e depois é teleportado e exibe a mensagem. Vê se é assim que você quer, se for, avisa que irei melhorar o código e deixar melhor. Crie um arquivo em data/npc/distribuidor.lua e adicione o código dentro: <?xml version="1.0" encoding="UTF-8"?> <npc name="John" script="ganha_item.lua" walkinterval="3000" floorchange="0" speed="150" lookdir="2"> <health now="150" max="150"/> <look type="510" head="115" body="148" legs="39" feet="41"/> <parameters> <parameter key="message_greet" value="Welcome |PLAYERNAME|, say {item} or {trade} to choose item and receive it if you are level 50 or more."/> </parameters> </npc> E depois crie um arquivo em data/npc/scripts/ganha_item.lua 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 local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid msg = string.lower(msg) local level = 50 if msgcontains(msg, 'item') or msgcontains(msg, 'trade') then if getPlayerLevel(cid) < level then -- NÃO EXECUTA SE FOR MENOR QUE LEVEL 50, SÓ TROCAR O LEVEL CASO QUEIRA UM DIFERENTE selfSay("you need to be level "..level.." to receive this item.", cid) talkState[talkUser] = 0 return true end selfSay("What item do you want? You can choose Great Ball e Ultra Ball.", cid) talkState[talkUser] = 2 return true elseif (msgcontains(msg, 'Great Ball')) and talkState[talkUser] == 2 then doTeleportThing(cid, {x= 2560, y= 2520, z= 7}) -- COORDENADA A SER TELEPORTADO doSendMagicEffect(getThingPos(cid), 27) -- EFEITO AO GANHAR O ITEM doPlayerAddItem(cid, 2391, 100) --ID DO ITEM | QUANTIDADE doSendAnimatedText(getThingPos(cid), "Voce ganhou 100 Great Balls!", 10) talkState[talkUser] = 0 elseif (msgcontains(msg, 'Ultra Ball')) and talkState[talkUser] == 2 then doTeleportThing(cid, {x= 2558, y= 2534, z= 7}) -- COORDENADA A SER TELEPORTADO doSendMagicEffect(getThingPos(cid), 27) -- EFEITO AO GANHAR O ITEM doPlayerAddItem(cid, 2392, 100) --ID DO ITEM | QUANTIDADE doSendAnimatedText(getThingPos(cid), "Voce ganhou 100 Ultra Balls!", 10) talkState[talkUser] = 0 return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Se não quiser que tenha validação de nível, remova o "local level = 50" e essa parte do código: if getPlayerLevel(cid) < level then selfSay("you need to be level "..level.." to receive this item.", cid) talkState[talkUser] = 0 return true end A mensagem está saindo com o efeito 10 como pediu, testa e me diga se é isso que quer.
  23. Qual a base que você usa? Nunca vi esse problema antes, estou mexendo na minha base para ver se descubro o problema. E também não muda o valor do pokemonExpPerLevelRate, deixa 0 como te falei, pois como o Pokémon não upa, não tem porque colocar valor ali.
  24. Nessa linha: pokemonExpPerLevelRate = 6 mude o valor para 0, ficando assim: pokemonExpPerLevelRate = 0 Testa ai e me fala se resolveu.
  • Quem Está Navegando   0 membros estão online

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