Ir para conteúdo

Npc que troca um pokemon por outro pokemon


Marshmello

Posts Recomendados

Fala MelloGang Blz ? Hoje vim trazer um NPC de evento , onde o player precisa trazer um pokemon(configuravel) por outro pokemon entao vamos la

 

Em NPC crie um NPC.xml e cole isso

Spoiler

<?xml version="1.0" encoding="UTF-8"?>
<npc name="NPC NAME" script="EventoNPC.lua" walkinterval="0" floorchange="0" access="5" level="1" maglevel="1">
          <health now="150" max="150"/>
         <look type="2144" head="90" body="97" legs="114" feet="94"/>
      <parameters>
<parameter key="message_greet" value="Ola, |PLAYERNAME|. estou aqui para lhe dar uma missao, eu erei precisar pikachu para completar minha colecao, voce tem esses items? diga {missao}."/>
<!-- <parameter key="message_greet" value="Ola, |PLAYERNAME|. Safari ainda nao esta aberta"/> -->
        </parameters>

       </npc>

 

Dps Vá em npc/script e crie um arquivo.lua e cole isso

Spoiler

-

--Marshmello
local cfg = {
  btype = "Cherish",  --Type Da ball
  pokemonida = "Pikachu",  -- Pokemon que o NPc vai pedir a troca
  pokemonVolta = "Pikachu Fly", -- Pokemon que o player vai ganhar
  palavra = "missao",  -- Palavra para completar
  mensagem = "Preciso que me traga um pikachu.",  -- msg quando n tiver o pokemon
  concluir = "Parabéns você cosegui completar minha missão, receba seus premios.",  -- msg quando completar a quest
  completa = "você ja completou essa missão",  -- msg quanto tentar fazer novamente
  sto = 9876574 , -- STORAGE

  -- OBS: Voce precisa ta com pokemon fora da ball para fazer a troca
}

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 playerHaveItems(cid, itemid)
          local items = type(itemid) == "table" and itemid or {itemid}
          for i = 1, #items do
            if getPlayerItemCount(cid, items) <= 0 then
              return false
            end
          end
          return true
        end

        function doPlayerRemoveItems(cid, itemid, count)
          local items = type(itemid) == "table" and itemid or {itemid}
          for i = 1, #items do
            doPlayerRemoveItem(cid, items, count ~= nil and count or 1)
          end
          return nil
        end

        function creatureSayCallback(cid, type, msg)

          if(not npcHandler:isFocused(cid)) then
            return false
          end

          if msgcontains(msg, cfg.palavra) then
            if  getPlayerStorageValue(cid,cfg.sto) == -1 then
              if getCreatureName(getCreatureSummons(cid)[1]) == cfg.pokemonida then
                setPlayerStorageValue(cid, cfg.sto, 1)
                doRemoveItem(getPlayerSlotItem(cid, 8).uid, 1)
                doRemoveCreature(getCreatureSummons(cid)[1])
                addPokeToPlayer(cid, cfg.pokemonVolta, 0, nil, cfg.btype)
                selfSay(cfg.concluir)
              else
                selfSay(cfg.mensagem)
              end
            else
              selfSay(cfg.completa)
            end
            return true
          end


        end
        npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)
        npcHandler:addModule(FocusModule:new())
        --Marshmello

 

e só configurar e pronto

 

Então e isso galera  gostou deixe seu REP+ :D

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

Em 10/04/2018 at 17:58, DarkWore disse:

Código Perfeito, Mais a indentação ta complicado, haha.

a identação de lua é assim ! 

Link para o comentário
Compartilhar em outros sites

31 minutos atrás, Jair Kevick disse:

a identação de lua é assim ! 

Foi corrigido, oque eu tinha visto antes estava mal organizado, de qualquer forma é um colega meu foi apenas um comentário.

Link para o comentário
Compartilhar em outros sites

  • 2 months later...

deu erro

[Error - LuaScriptInterface::loadFile] data/npc/scripts/EventoNPC.lua:10: '}' expected (to close '{' at line 2) near 'sto'
[Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/EventoNPC.lua
data/npc/scripts/EventoNPC.lua:10: '}' expected (to close '{' at line 2) near 'sto'
 

Link para o comentário
Compartilhar em outros sites

Em 26/06/2018 em 23:49, sidneivascao disse:

deu erro

[Error - LuaScriptInterface::loadFile] data/npc/scripts/EventoNPC.lua:10: '}' expected (to close '{' at line 2) near 'sto'
[Warning - NpcScript::NpcScript] Cannot load script: data/npc/scripts/EventoNPC.lua
data/npc/scripts/EventoNPC.lua:10: '}' expected (to close '{' at line 2) near 'sto'
 

Corrigido topico atualizado

Link para o comentário
Compartilhar em outros sites

23 horas atrás, Marshmello disse:

Corrigido topico atualizado

deu certo , so tem um pequeno problema , se o player nao tiver o pokemon , e ele falar Hi

missao 

e aparecer akela msg 01:33 NPC NAME: Preciso que me traga um Divine Arceus.

da esse erro na distro http://prntscr.com/k0nnxl

Acontece porque o player nao tem o pokemon , se o player tiver , o npc funciona e troca de boa 

e tbm se nao tiver usando pokemon e falar "missao" da erro tbm e fala que precisa do pokemon , fora isso sistema ta perfeito , se puder me ajuda resolver, fico grato hehe

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

10 horas atrás, sidneivascao disse:

deu certo , so tem um pequeno problema , se o player nao tiver o pokemon , e ele falar Hi

missao 

e aparecer akela msg 01:33 NPC NAME: Preciso que me traga um Divine Arceus.

da esse erro na distro http://prntscr.com/k0nnxl

Acontece porque o player nao tem o pokemon , se o player tiver , o npc funciona e troca de boa 

e tbm se nao tiver usando pokemon e falar "missao" da erro tbm e fala que precisa do pokemon , fora isso sistema ta perfeito , se puder me ajuda resolver, fico grato hehe

Isso acontece , pois ele n acha a creatura spawn, ai da esse erro, tipico do PDA

Link para o comentário
Compartilhar em outros sites

  • 4 weeks later...

aqui da o seguinte erro

[22/07/2018 23:08:33] [Error - Npc interface] 
[22/07/2018 23:08:33] data/npc/scripts/safftroca.lua:onCreatureSay
[22/07/2018 23:08:33] Description: 
[22/07/2018 23:08:33] data/npc/scripts/safftroca.lua:55: attempt to call global 'addPokeToPlayer' (a nil value)
[22/07/2018 23:08:33] stack traceback:
[22/07/2018 23:08:33]     data/npc/scripts/safftroca.lua:55: in function 'callback'
[22/07/2018 23:08:33]     data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[22/07/2018 23:08:33]     data/npc/scripts/safftroca.lua:22: in function <data/npc/scripts/safftroca.lua:22>

ele apenas remove o poke do player na hora de entregar da esse erro =/

Link para o comentário
Compartilhar em outros sites

4 horas atrás, caique8921 disse:

aqui da o seguinte erro

[22/07/2018 23:08:33] [Error - Npc interface] 
[22/07/2018 23:08:33] data/npc/scripts/safftroca.lua:onCreatureSay
[22/07/2018 23:08:33] Description: 
[22/07/2018 23:08:33] data/npc/scripts/safftroca.lua:55: attempt to call global 'addPokeToPlayer' (a nil value)
[22/07/2018 23:08:33] stack traceback:
[22/07/2018 23:08:33]     data/npc/scripts/safftroca.lua:55: in function 'callback'
[22/07/2018 23:08:33]     data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'
[22/07/2018 23:08:33]     data/npc/scripts/safftroca.lua:22: in function <data/npc/scripts/safftroca.lua:22>

ele apenas remove o poke do player na hora de entregar da esse erro =/

Sistema funcional apenas para PDA tfs 0.3.6

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...