Npc que troca um pokemon por outro pokemon

Marshmello
em Tutoriais de Scripting

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino

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

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

DarkWore

Ex - Moderador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 23/05/17Posts: 584Gênero: MasculinoChar no Tibia: Não Tenho

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

uHtXRtd.png.3908e825830f508573fee9a45063e737.png

 

Não dou suporte via PM, em caso de duvidas abra um tópico na seção correta e aguarde ser respondido.

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
6 minutos atrás, DarkWore disse:

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

Fiz na express 

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

Sammy

Sam
avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 23/09/17Posts: 97Gênero: MasculinoChar no Tibia: Sam

Curti, se possível traz mais sistemas assim

function onUse(player, words, param)
        player:doCastSpell("Me dá um Rep :v")
end

Dá uma olhada quando possível:

                                                  

 

 

                                  Capa-do-Xtibia.jpg.9708baea84b83414a7e96a7b1f482bed.jpg                                                                         

 

Tungs

avatar
Cavaleiro
Cavaleiro

INFOS

Grupo: CavaleiroRegistrado: 06/10/16Posts: 182Gênero: Masculino
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 ! 

YXikRan.gif

 

Minhas postagens: 

 

 

 

 

 

 


 

 

 

DarkWore

Ex - Moderador
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 23/05/17Posts: 584Gênero: MasculinoChar no Tibia: Não Tenho
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.

uHtXRtd.png.3908e825830f508573fee9a45063e737.png

 

Não dou suporte via PM, em caso de duvidas abra um tópico na seção correta e aguarde ser respondido.

sidneivascao

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/10/15Posts: 82

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'
 

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
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

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

sidneivascao

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/10/15Posts: 82
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

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
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

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

sidneivascao

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 05/10/15Posts: 82
Em 29/06/2018 em 11:59, Marshmello disse:

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

Nao e pda minha distro , mais como resolveria?

caique8921

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/04/18Posts: 28Gênero: Masculino

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 =/

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
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

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end

 

 

 

caique8921

avatar
Campones
Campones

INFOS

Grupo: CamponesRegistrado: 15/04/18Posts: 28Gênero: Masculino
12 horas atrás, Marshmello disse:

Sistema funcional apenas para PDA tfs 0.3.6

Ah entendi... Obg!

Marshmello

Alone ~ [✖‿✖]
avatar
Conde
Conde

INFOS

Grupo: CondeRegistrado: 21/04/16Posts: 831Gênero: Masculino
14 minutos atrás, caique8921 disse:

Ah entendi... Obg!

Qual base você usa?

placa1.png.90a184502351cebe72cd7b69751e551d.png

Meu Facebook

INFOS:

Citar

CIDADE: Rio de janeiro

Idade: 22 anos
SOU: {"Scripter(lua)", "WebMaster", "ProgramadorC++"}
 

local config = {
	delrey = getPlayerCarValue(cid, DELREY),
	cigarro = getPlayerCancer(cid, DERBY),
	prostituta = getPlayerAIDS(cid, cracuda),
	tresOitao = getPlayerRevorvi(cid, 38)
}
if(delrey == "Ligado" and cigarro == "Aceso" and prostituta == "No Colo" and tresOitao == "Carregado") then
	doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Começou o fim de semana. #PAS")
end