Ir para conteúdo

Sistema Npc Gym Para Pokemon


brun123

Posts Recomendados

amigo,

 

MINHA VERSÃO É POKEMON FLASH.

 

Fiz tudo conforme vc postou porem nao tem essa pasta creatureevents, ai eu a criei ela no diretório certo e configurei como você instruiu.

Mas ele diz que não existe o playerattack.lua. da esse erro:

[20/06/2011 14:08:31] [Error - LuaScriptInterface::loadFile] cannot open data/creaturescripts/scripts/playerattack.lua: No such file or directory
[20/06/2011 14:08:31] [Warning - Event::loadScript] Cannot load script (data/creaturescripts/scripts/playerattack.lua)
[20/06/2011 14:08:31] cannot open data/creaturescripts/scripts/playerattack.lua: No such file or directory

 

joguei o playerattack.lua na pasta data/creaturescripts/scripts.

Não deu mais erro no start do server, mas ao falar com o brock:

HI ele responde, em seguida digo battle ou yes, mas ai não acontece mais nada e da esse erro:

(tentei tanto com GOD quanto com player normal)

 

[20/06/2011 14:24:31] Description: 
[20/06/2011 14:24:31] data/lib/gymlib.lua:97: attempt to call global 'getItemsInContainerById' (a nil value)
[20/06/2011 14:24:31] stack traceback:
[20/06/2011 14:24:31] 	data/lib/gymlib.lua:97: in function 'hasPokemon'
[20/06/2011 14:24:31] 	data/npc/scripts/brock.lua:41: in function <data/npc/scripts/brock.lua:29>

 

Linha 97 do gymlib.lua:

if #getItemsInContainerById(bp.uid, funcpokemon[cc]) >= 1 then

 

Linha 41 do brock.lua:

if not hasPokemon(cid) then

 

Linha 29 do brock.lua:

function onCreatureSay(cid, type, msg)

 

 

 

 

segue em anexo uma "compilação" do arquivos configurados no meu pokemon, incluindo os 3 monstros do scrpit, login e goback.

 

não se preocupe com virus por que são só os arquivos lua e xml.

 

tem como vc dar uma olhada? muito obrigado! já dei REP +.

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

 

function getItemsInContainerById(container, itemid) -- Function By Kydrai
local items = {}
if isContainer(container) and getContainerSize(container) > 0 then
for slot=0, (getContainerSize(container)-1) do
local item = getContainerItem(container, slot)
if isContainer(item.uid) then
local itemsbag = getItemsInContainerById(item.uid, itemid)
for i=0, #itemsbag do
table.insert(items, itemsbag[i])
end
else
if itemid == item.itemid then
table.insert(items, item.uid)
end
end
end
end
return items
end

 

 

Coloca essa função em qualquer lib do seu server (qualquer arquivo que fique na pasta data/lib)

Link para o comentário
Compartilhar em outros sites

brun123

function getItemsInContainerById(container, itemid) -- Function By Kydrai

local items = {}

if isContainer(container) and getContainerSize(container) > 0 then

for slot=0, (getContainerSize(container)-1) do

local item = getContainerItem(container, slot)

if isContainer(item.uid) then

local itemsbag = getItemsInContainerById(item.uid, itemid)

for i=0, #itemsbag do

table.insert(items, itemsbag)

end

else

if itemid == item.itemid then

table.insert(items, item.uid)

end

end

end

end

return items

end

 

 

Coloca essa função em qualquer lib do seu server (qualquer arquivo que fique na pasta data/lib)

 

Essa função e pra fazer o que? Arrumar o bug de ele não enfrentar 6 pokemons?

Link para o comentário
Compartilhar em outros sites

@Jeffe ele respondeu minha duvida

 

Coloca essa função em qualquer lib do seu server (qualquer arquivo que fique na pasta data/lib)

brun vlw! funcionou em parte. ele não dá mais o erro, quando falo sem pokemons ele responde certo.

 

Hi

yes

09:02 Brock: You don't have any pokemon to battle me!

 

 

mas quando estou com o pokemon sumonado e falo Hi e yes ou battle não acontece nada, nem erro no "console".

 

Já dei + 1 Rep +

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

vê se você configurou o funcpokemon e o bpslot certinho na gymlib.lua, veja se adicionou os monstros Brock Geodude, Brock Graveler e Brock Golem na pasta monsters, e verifique se o seu npc brock está escrito certinho (digo, abra o xml e vê se o nome do npc é "Brock", com letra maiuscula etc)

Link para o comentário
Compartilhar em outros sites

muito bom mastercraft...

Sistema bom, seria perfeito com badge, alguem sabe o ID da sprit nos clients por ae??

Eu só axei a badge apagada, que não é ganha, queria saber o numero da badge ativada :D

Link para o comentário
Compartilhar em outros sites

  • 2 weeks later...

Amigo, consegui fazer funcionar, vc é o mestre mesmo!

 

 

só tenho uma ultima duvida

 

--local item = getPlayerItemById(killer, true, 2307)
--doTransformItem(item.uid, 2294)

 

Esta parte da premiação, ele troca o item pelo premio, tem como fazer ele só dar o premio?

Link para o comentário
Compartilhar em outros sites

doPlayerAddItem(killer, itemid, 1)

 

no lugar de

 

--doTransformItem(item.uid, 2294)

 

lembrando que esses -- fazem com que a linha não seja lida pelo script

Link para o comentário
Compartilhar em outros sites

 

putz brun, mto obriado, jah dei outro rep.

Olha to com muitas duvidas agora... ele funcionou msmo perfeito.

(sei que jah to enchendo o saco huhu)

 

 

Criei outros npc, da seguinte maneira:

 

O arquivo gymblib.lua, alterei da maneira do seu exemplo. Resumindo ficou assim:

["Brock"] = { storage = 990,
["Misty"] = { storage = 992,
["Sabrina"] = { storage = 993,
["Surge"] = { storage = 994,
["Blaine"] = { storage = 995,
["Erika"] = { storage = 996,
["Giovanni"] = { storage = 997,
["Koga"] = { storage = 998,

O FINAL DO DOCUMENTO:

function doGymBattle(npcname, gympoke, cid, turn)
   doCreatureSay(getCreatureByName(npcname), ginasios[npcname][turn].msggo, 1)
   local x = doSummonCreature(gympoke, getThingPos(getCreatureByName(npcname)))
   registerCreatureEvent(x, "Gym1")
   registerCreatureEvent(x, "Gym2")
   registerCreatureEvent(x, "Gym3")
   registerCreatureEvent(x, "Gym4")
   setPlayerStorageValue(x, 201, ".")
   setPlayerStorageValue(x, 201, npcname)
   setPlayerStorageValue(x, 202, turn)
   doSendMagicEffect(getThingPos(x), 10)
   setPlayerStorageValue(x, ginasios[npcname].storage, 1)
   addEvent(gymChecker, 1000, x, cid, 0, npcname)
end

 

Copiei o arquivo gym.lua 7x e fui renomeando gym2, gym3, gym4, gym5, gym6, gym7, gym8 troquei somente o premio.

 

no arquivo creaturescripts.xml, adicionei o seguinte:

 

<!-- Brock -->

<event type="cast" name="Gym1" event="script" value="gym.lua"/>

<event type="attack" name="Gym2" event="script" value="gym.lua"/>

<event type="direction" name="Gym3" event="script" value="gym.lua"/>

<event type="death" name="Gym4" event="script" value="gym.lua"/>

 

<!-- 2 -->

<event type="cast" name="Gym5" event="script" value="gym2.lua"/>

<event type="attack" name="Gym6" event="script" value="gym2.lua"/>

<event type="direction" name="Gym7" event="script" value="gym2.lua"/>

<event type="death" name="Gym8" event="script" value="gym2.lua"/>

 

<!-- 3 -->

<event type="cast" name="Gym9" event="script" value="gym3.lua"/>

<event type="attack" name="Gym10" event="script" value="gym3.lua"/>

<event type="direction" name="Gym11" event="script" value="gym3.lua"/>

<event type="death" name="Gym12" event="script" value="gym3.lua"/>

 

<!-- 4 -->

<event type="cast" name="Gym13" event="script" value="gym4.lua"/>

<event type="attack" name="Gym14" event="script" value="gym4.lua"/>

<event type="direction" name="Gym15" event="script" value="gym4.lua"/>

<event type="death" name="Gym16" event="script" value="gym4.lua"/>

 

<!-- 5 -->

<event type="cast" name="Gym17" event="script" value="gym5.lua"/>

<event type="attack" name="Gym18" event="script" value="gym5.lua"/>

<event type="direction" name="Gym19" event="script" value="gym5.lua"/>

<event type="death" name="Gym20" event="script" value="gym5.lua"/>

 

<!-- 6 -->

<event type="cast" name="Gym21" event="script" value="gym6.lua"/>

<event type="attack" name="Gym22" event="script" value="gym6.lua"/>

<event type="direction" name="Gym23" event="script" value="gym6.lua"/>

<event type="death" name="Gym24" event="script" value="gym6.lua"/>

 

<!-- 7 -->

<event type="cast" name="Gym25" event="script" value="gym7.lua"/>

<event type="attack" name="Gym26" event="script" value="gym7.lua"/>

<event type="direction" name="Gym27" event="script" value="gym7.lua"/>

<event type="death" name="Gym28" event="script" value="gym7.lua"/>

 

<!-- 8 -->

<event type="cast" name="Gym29" event="script" value="gym8.lua"/>

<event type="attack" name="Gym30" event="script" value="gym8.lua"/>

<event type="direction" name="Gym31" event="script" value="gym8.lua"/>

<event type="death" name="Gym32" event="script" value="gym8.lua"/>

 

 

Ele chega a sumonar o pokemon e começa a batalha, Porem fica dando este erro (ele tenta abrir o gym 2 em vendo do gym, isso aconteceu só depois que eu tentei adicionar os de mais mestres:

(fiz alguma coisa muito errada?)

 

ERRO ATUALIZADO, consegui eliminar alguns erros, era erros de digitacao, mas agora olha esta dando isso, ta certo pq ele troca o item pelo outro como o seu original e deu o erro por que nao tinha o item pra trocar, deixei assim pra aparecer o erro, todos estao pegando o premmy do gym2:

[28/07/2011 23:28:04] [Error - CreatureScript Interface] 
[28/07/2011 23:28:04] data/creaturescripts/scripts/gym2.lua:onDeath
[28/07/2011 23:28:04] Description: 
[28/07/2011 23:28:04] (luaDoTransformItem) Item not found

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

@TeruN, não fez sentido nenhum o que você tentou fazer...

 

coloca isso no lugar de getPlayerItemById / doTransformItem:

 

 

	local badges = {
["Brock"] = {off = 2307, on = 2294},
}

local item = getPlayerItemById(killer, true, badges[npc].off)
doTransformItem(item.uid, badges[npc].on)

 

 

e só configura a tabela, com o nome do NPC entre [], off sendo o item que o player começa o jogo, e on sendo o item da badge depois da vitória, os arquivos que você criou, delete... e as tags que adicionou no creaturescripts.xml também.

 

@Eddie, você usa pokemon dash? só foi testado em pokemon dash, pode ser que o sistema entre em conflito com outro servidor que não seja o das´h

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...