BR

Sistema Npc Gym Para Pokemon

Por brun123, 27 de mai. de 2011 em Mods, funções e outros

script
5.0 (3)
71
23.5k
brun123B
05 de junho de 2011 às 17:35

@Nitrox

essa função é pra colocar só na parte de voltar o pokemon, pra evitar que o pokemon volte...

você deve ter colocado essa parte no lugar de colocar o pokemon pra fora, por isso deu errado.

 

@jeffe000

vê se você configurou o funcpokemon e o bpslot certinho no gymlib.lua

Jeffer000J
05 de junho de 2011 às 18:16

Sim eu programei tudo certinho..no meu server so tem as PB e UB mesmo..

so estou em duvida dessa bpslot, pois como n deu nenhum erro n axei q poderia ser ela..

que tipo de erro ela pode causar? vou tentar trocar aqui e ver se ele n recolhe o pokemon qnd o meu morre

 

Vlw pela resposta ^^

brun123B
05 de junho de 2011 às 19:12

bpslot é o slot em que fica a backpack no inventory.

no pokemon flash, ele fica em outro lugar, no pokemon dash, ele fica no lugar de backpack do tibia.

ai se você não configurar isso certinho, o sistema não vai procurar pokeballs dentro da sua mochila direito, ou seja, vai pensar que você só tem 1 pokebola, que é a que fica no pé. Por isso que quando seu pokemon morria o duelo acabava, pois as funções entendiam que você só tinha um pokemon mesmo

Jeffer000J
05 de junho de 2011 às 22:32

Eu troquei o bpslot de "CONST_SLOT_BACKPACK" para "CONST_SLOT_AMMO". Agora quando meu pokemon morre ele retira o dele e fala a mensagem, antes ele n estava dizendo, mas ainda assim so esta dando para batalha com um pokemon.

 

Obs: quando inicio o server esta dano um erro no goback

erro :

 

[05/06/2011 22:23:03] [Error - CreatureScript Interface]

[05/06/2011 22:23:03] data/creaturescripts/scripts/goback.lua

[05/06/2011 22:23:03] Description:

[05/06/2011 22:23:04] (luaGetCreatureStorage) Creature not found

 

[05/06/2011 22:23:04] [Error - CreatureScript Interface]

[05/06/2011 22:23:04] data/creaturescripts/scripts/goback.lua

[05/06/2011 22:23:04] Description:

[05/06/2011 22:23:04] (luaGetCreatureStorage) Creature not found

 

Sera que teria a ver com esse erro?

 

meu script goback :

 

 

local pokes = {
["Bulbasaur"] = {level = 20, cons = 43, vida = 1200},
["Ivysaur"] = {level = 40, cons = 86, vida = 2600},
["Venusaur"] = {level = 85, cons = 189, vida = 5200},
["Charmander"] = {level = 20, cons = 30, vida = 970},
["Charmeleon"] = {level = 40, cons = 70, vida = 2900},
["Charizard"] = {level = 85, cons = 140, vida = 5200},
["Squirtle"] = {level = 20, cons = 47, vida = 1350},
["Wartortle"] = {level = 40, cons = 93, vida = 2800},
["Blastoise"] = {level = 85, cons = 194, vida = 5900},
["Caterpie"] = {level = 1, cons = 13, vida = 300},
["Metapod"] = {level = 10, cons = 30, vida = 1100},
["Butterfree"] = {level = 30, cons = 56, vida = 2000},
["Weedle"] = {level = 1, cons = 16, vida = 325},
["Kakuna"] = {level = 10, cons = 32, vida = 900},
["Beedrill"] = {level = 30, cons = 64, vida = 1900},
["Pidgey"] = {level = 1, cons = 22, vida = 380},
["Pidgeotto"] = {level = 20, cons = 47, vida = 1400},
["Pidgeot"] = {level = 65, cons = 101, vida = 3800},
["Rattata"] = {level = 1, cons = 19, vida = 350},
["Raticate"] = {level = 20, cons = 68, vida = 900},
["Spearow"] = {level = 5, cons = 22, vida = 450},
["Fearow"] = {level = 50, cons = 95, vida = 3300},
["Ekans"] = {level = 12, cons = 27, vida = 600},
["Arbok"] = {level = 30, cons = 87, vida = 2900},
["Pikachu"] = {level = 20, cons = 32, vida = 900},
["Raichu"] = {level = 50, cons = 99, vida = 3200},
["Sandshrew"] = {level = 18, cons = 30, vida = 700},
["Sandslash"] = {level = 55, cons = 96, vida = 3400},
["Nidoran Female"] = {level = 10, cons = 27, vida = 600},
["Nidorina"] = {level = 25, cons = 58, vida = 2000},
["Nidoqueen"] = {level = 65, cons = 146, vida = 4200},
["Nidoran Male"] = {level = 10, cons = 34, vida = 650},
["Nidorino"] = {level = 25, cons = 74, vida = 2500},
["Nidoking"] = {level = 65, cons = 169, vida = 4800},
["Clefairy"] = {level = 10, cons = 30, vida = 600},
["Clefable"] = {level = 35, cons = 90, vida = 2400},
["Vulpix"] = {level = 20, cons = 32, vida = 680},
["Ninetales"] = {level = 65, cons = 121, vida = 3400},
["Jigglypuff"] = {level = 10, cons = 30, vida = 550},
["Wigglytuff"] = {level = 42, cons = 95, vida = 2900},
["Zubat"] = {level = 5, cons = 28, vida = 450},
["Golbat"] = {level = 30, cons = 70, vida = 1900},
["Oddish"] = {level = 5, cons = 21, vida = 340},
["Gloom"] = {level = 18, cons = 51, vida = 1400},
["Vileplume"] = {level = 50, cons = 96, vida = 3300},
["Paras"] = {level = 1, cons = 40, vida = 850},
["Parasect"] = {level = 50, cons = 110, vida = 3800},
["Venonat"] = {level = 18, cons = 50, vida = 1350},
["Venomoth"] = {level = 50, cons = 125, vida = 3850},
["Diglett"] = {level = 5, cons = 45, vida = 900},
["Dugtrio"] = {level = 35, cons = 110, vida = 3450},
["Meowth"] = {level = 12, cons = 52, vida = 950},
["Persian"] = {level = 25, cons = 85, vida = 2250},
["Psyduck"] = {level = 12, cons = 50, vida = 950},
["Golduck"] = {level = 55, cons = 150, vida = 4000},
["Mankey"] = {level = 10, cons = 60, vida = 1050},
["Primeape"] = {level = 45, cons = 155, vida = 4500},
["Growlithe"] = {level = 20, cons = 60, vida = 1000},
["Arcanine"] = {level = 80, cons = 170, vida = 6800},
["Poliwag"] = {level = 5, cons = 20, vida = 400},
["Poliwhirl"] = {level = 20, cons = 44, vida = 1200},
["Poliwrath"] = {level = 65, cons = 138, vida = 4400},
["Abra"] = {level = 10, cons = 20, vida = 620},
["Kadabra"] = {level = 50, cons = 57, vida = 2500},
["Alakazam"] = {level = 80, cons = 94, vida = 4000},
["Machop"] = {level = 18, cons = 60, vida = 1100},
["Machoke"] = {level = 40, cons = 110, vida = 3500},
["Machamp"] = {level = 65, cons = 185, vida = 7500},
["Bellsprout"] = {level = 5, cons = 24, vida = 420},
["Weepinbell"] = {level = 18, cons = 49, vida = 1100},
["Victreebel"] = {level = 50, cons = 117, vida = 4000},
["Tentacool"] = {level = 12, cons = 52, vida = 1050},
["Tentacruel"] = {level = 70, cons = 165, vida = 7050},
["Geodude"] = {level = 15, cons = 30, vida = 700},
["Graveler"] = {level = 40, cons = 82, vida = 3000},
["Golem"] = {level = 70, cons = 111, vida = 6500},
["Ponyta"] = {level = 20, cons = 60, vida = 1400},
["Rapidash"] = {level = 60, cons = 160, vida = 5500},
["Slowpoke"] = {level = 12, cons = 55, vida = 1200},
["Slowbro"] = {level = 45, cons = 110, vida = 4600},
["Magnemite"] = {level = 15, cons = 27, vida = 450},
["Magneton"] = {level = 40, cons = 67, vida = 1750},
["Farfetchd"] = {level = 40, cons = 95, vida = 3000},
["Doduo"] = {level = 12, cons = 31, vida = 600},
["Dodrio"] = {level = 45, cons = 78, vida = 2650},
["Seel"] = {level = 20, cons = 50, vida = 1000},
["Dewgong"] = {level = 65, cons = 135, vida = 5200},
["Grimer"] = {level = 12, cons = 30, vida = 600},
["Muk"] = {level = 30, cons = 85, vida = 2400},
["Shellder"] = {level = 5, cons = 45, vida = 800},
["Cloyster"] = {level = 65, cons = 155, vida = 5000},
["Gastly"] = {level = 18, cons = 50, vida = 1000},
["Haunter"] = {level = 45, cons = 105, vida = 3000},
["Gengar"] = {level = 80, cons = 175, vida = 7000},
["Onix"] = {level = 50, cons = 150, vida = 5300},
["Drowzee"] = {level = 22, cons = 58, vida = 1150},
["Hypno"] = {level = 50, cons = 100, vida = 4600},
["Krabby"] = {level = 5, cons = 45, vida = 850},
["Kingler"] = {level = 35, cons = 100, vida = 3250},
["Voltorb"] = {level = 14, cons = 30, vida = 620},
["Electrode"] = {level = 38, cons = 76, vida = 2000},
["Exeggcute"] = {level = 8, cons = 42, vida = 800},
["Exeggutor"] = {level = 48, cons = 98, vida = 4000},
["Cubone"] = {level = 18, cons = 58, vida = 1200},
["Marowak"] = {level = 45, cons = 105, vida = 3900},
["Hitmonlee"] = {level = 60, cons = 140, vida = 5500},
["Hitmonchan"] = {level = 60, cons = 140, vida = 5500},
["Lickitung"] = {level = 45, cons = 100, vida = 4800},
["Koffing"] = {level = 15, cons = 60, vida = 900},
["Weezing"] = {level = 30, cons = 100, vida = 2800},
["Rhyhorn"] = {level = 35, cons = 80, vida = 3800},
["Rhydon"] = {level = 65, cons = 175, vida = 7000},
["Chansey"] = {level = 60, cons = 130, vida = 7500},
["Tangela"] = {level = 40, cons = 85, vida = 3500},
["Kangaskhan"] = {level = 60, cons = 160, vida = 7000},
["Horsea"] = {level = 5, cons = 19, vida = 300},
["Seadra"] = {level = 45, cons = 68, vida = 2500},
["Goldeen"] = {level = 10, cons = 50, vida = 950},
["Seaking"] = {level = 25, cons = 80, vida = 2000},
["Staryu"] = {level = 15, cons = 55, vida = 1050},
["Starmie"] = {level = 45, cons = 95, vida = 3800},
["Mr.mime"] = {level = 60, cons = 110, vida = 5500},
["Scyther"] = {level = 70, cons = 145, vida = 6500},
["Jynx"] = {level = 65, cons = 125, vida = 6000},
["Electabuzz"] = {level = 70, cons = 150, vida = 6800},
["Magmar"] = {level = 70, cons = 160, vida = 7200},
["Pinsir"] = {level = 42, cons = 95, vida = 4000},
["Tauros"] = {level = 40, cons = 100, vida = 4200},
["Magikarp"] = {level = 1, cons = 5, vida = 120},
["Gyarados"] = {level = 75, cons = 195, vida = 7800},
["Lapras"] = {level = 70, cons = 140, vida = 7000},
["Ditto"] = {level = 40, cons = 100, vida = 4000},
["Eevee"] = {level = 20, cons = 55, vida = 1500},
["Vaporeon"] = {level = 55, cons = 110, vida = 4500},
["Jolteon"] = {level = 55, cons = 110, vida = 4500},
["Flareon"] = {level = 55, cons = 110, vida = 4500},
["Porygon"] = {level = 45, cons = 10, vida = 100},
["Omanyte"] = {level = 20, cons = 55, vida = 1300},
["Omastar"] = {level = 70, cons = 140, vida = 6000},
["Kabuto"] = {level = 20, cons = 55, vida = 1300},
["Kabutops"] = {level = 70, cons = 150, vida = 6500},
["Aerodactyl"] = {level = 100, cons = 190, vida = 8000},
["Snorlax"] = {level = 85, cons = 200, vida = 9500},
["Articuno"] = {level = 120, cons = 200, vida = 11000},
["Zapdos"] = {level = 120, cons = 200, vida = 11000},
["Moltres"] = {level = 120, cons = 200, vida = 11000},
["Dratini"] = {level = 10, cons = 55, vida = 1200},
["Dragonair"] = {level = 70, cons = 165, vida = 5600},
["Dragonite"] = {level = 100, cons = 250, vida = 10800},
["Mewtwo"] = {level = 100, cons = 175, vida = 8500},
["Mew"] = {level = 100, cons = 125, vida = 7200},
}

for a, b in pairs(ginasios) do
if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM
doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
return true
end
end
function onLogout(cid)
if getPlayerStorageValue(cid, 888) >= 1 then
doPlayerSendCancel(cid, "You cant logout during control mind.")
return false
end
if #getCreatureSummons(cid) == 1 then
if getPlayerStorageValue(cid, 61204) >= 1 and getPlayerStorageValue(cid, 63215) <= 0 and getPlayerStorageValue(cid, 62314) <= 0 then
local summom = getCreatureSummons(cid)
local maxh = (pokes[getCreatureName(summom[1])].vida)
local pct2 = ((getCreatureHealth(summom[1])) / (getCreatureMaxHealth(summom[1])))
local vids = ((getCreatureHealth(summom[1])) - 2)
doCreatureAddHealth(summom[1], -vids)
setCreatureMaxHealth(summom[1], maxh)
doCreatureAddHealth(summom[1], ((maxh) * (pct2)))
local health = getCreatureHealth(summom[1])
local maxhealth = getCreatureMaxHealth(summom[1])
setPlayerStorageValue(cid, 61205, health)
setPlayerStorageValue(cid, 61206, maxhealth)
setPlayerStorageValue(cid, 61204, 0)
setPlayerStorageValue(cid, 61207, 1)
setPlayerStorageValue(cid, 1, 0)
if getPlayerGroupId(cid) == 8 then
setPlayerGroupId(cid, 1)
end
end
end
return TRUE
end

function onDeath(cid, deathList)

local owner = getCreatureMaster(cid)
for x, y in pairs(ginasios) do
if getPlayerStorageValue(owner, y.storage) == 1 then

   if getPlayerStorageValue(owner, 991) == 5 or not hasPokemon(owner) then
   setPlayerStorageValue(owner, 991, -1)
   else
   local number = tonumber(getPlayerStorageValue(owner, 991))
   setPlayerStorageValue(owner, 991, number + 1)
   end
end
end


local owner = getCreatureMaster(cid)
if getPlayerSlotItem(owner, 8).itemid == 2220 or getPlayerSlotItem(owner, 8).itemid == 2221 then
doSendMagicEffect(getCreaturePosition(cid), 191)
elseif getPlayerSlotItem(owner, 8).itemid == 2222 or getPlayerSlotItem(owner, 8).itemid == 2223 then
doSendMagicEffect(getCreaturePosition(cid), 10)
end
doPlayerSendTextMessage(owner, 22, "Your pokemon fainted.")
if getPlayerSlotItem(owner, 8).itemid == 2220 or getPlayerSlotItem(owner, 8).itemid == 2221 then
doTransformItem(getPlayerSlotItem(owner, 8).uid, 2227)
elseif getPlayerSlotItem(owner, 8).itemid == 2222 or getPlayerSlotItem(owner, 8).itemid == 2223 then
doTransformItem(getPlayerSlotItem(owner, 8).uid, 2224)
end
local item = getPlayerSlotItem(owner, 8)
doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = [0/"..getCreatureMaxHealth(cid).."]")
setPlayerStorageValue(owner, 61207, 0)
setPlayerStorageValue(owner, 61204, 0)
if getPlayerGroupId(owner) == 8 then
setPlayerGroupId(owner, 1)
end
doRemoveCreature(cid)
return FALSE
end

 

 

 

obrigado pela ajuda desde ja :)

aguardo resposta ....ty

Editado Junho 6 por Demonbholder

06 de junho de 2011 às 09:55

 

COMO COLCAR MAIS POKES SEM SER ESSE POR FAVOOOOOOOOOOOOR RESPONDEEEEEEEEEEEEEEEEEEEEEEEEE!?

 

Vai em Data/Lib abre gymlib.lua e nessa parte:

               [3] = { msggo = "Crush'em, Golem!",
           msgba = "You did well, Golem!",
           pokem = "Brock Golem",
           nextp = "finishi"}

 

Vc vaj adicionando outras em baixo igual a essa , Lembrando que esse Finishi representa o FIM dos pokes do Npc, entao vc tem que colocar no lugar do finishi o nome do proximo pokemon a ser usado.

ficaria assim se fosse deixar 4:


               [3] = { msggo = "Crush'em, Golem!",
           msgba = "You did well, Golem!",
           pokem = "Brock Golem",
           nextp = "Brock Digglet"},
         [4] = { msggo = "Crush'em, Digglet!",
           msgba = "You did well, Digglet!",
           pokem = "Brock Digglet",
           nextp = "finish"}

 

Olha direito , pq vc tem que colocar virgula em todos os Nextp no final , a NÃO SER no ultimo que vai ser o finish:

do 3° :             nextp = "Brock Digglet"},  < Virgula

Do ultimo :             nextp = "finish" < Sem virgula

 

 

Só para dar um toque, se colocar vírgula no ultimo não tem problema.

brun123B
06 de junho de 2011 às 13:51

@jeffe000

 

mano, essa parte você tem que colocar no goback.lua do ACTIONS, e não no do creature scripts...

 

for a, b in pairs(ginasios) do
if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM
doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
return true
end
end

 

vou pedir novamente pra você ver se você configurou certo o bpslot e o funcpokemon, e é pra configurar, e não sair chutando valores

Jeffer000J
06 de junho de 2011 às 14:58

Eu baixei um server aqui no forum q ja veio com ele programado, tudo no lugar certinho.Quando fui testa funcionou e talz, pokemon n volta durante o duel.

A unica coisa que n quer pegar é que se eu falo battle sem nenhum pokemon, ele joga o geodude e recolhe ao invez de falar que n tenho pokemon para batalhar. O outro e que quando ele derrota o meu 1° pokemon, ele não espera eu jogar o 2° e recolhe o dele, assim tenho q me afastar e voltar pra recomeçar.

 

Não sei se entende mal nas configurações, ams eu preciso trocar algum storage?

se possivel me passa seu msn, precisava terminar ele logo pra criar outros, Obrigado =D

nyuchihaN
06 de junho de 2011 às 16:46

Acho que para resolver esse problema de jogar o poke sem o treinador n ter nenhum Pokemon, ow ate mesmo para deixar igual ao global.

Adiciona 1 função que checa se o player tem "ZERO" de cap , ao estar com ZERO de cap no dash , significa que vc esta com 6 pokes na bag.

eickhoffE
06 de junho de 2011 às 18:55

Boa Brother, eu ja tinha usado outro modo de criar os lideres de ginasio, mas esse seu modo ai vai me ajudar bastante criando pessoas pra duelar pela rua

Jeffer000J
07 de junho de 2011 às 12:54

estou com esses dois problemas, o limite de pokemon q passa de 6 e o brock que quando derrota um dos pokemons encerra a luta

RonaldinR
09 de junho de 2011 às 20:12

O meu problema é que os meus Moves parou e pegar, os meus comandos de attack não funciona depois que adicionei o battle.

 

Help ?

 

hehe :D

 

m1 m2 m3 m4 m5 m6 m7 m8 m9 m10 m11 m12 o.O! nao pega !

Jeffer000J
13 de junho de 2011 às 17:37

Consegui arruma tudo certinho sem nenhum bug agora.

Poderia me dizer como que fasso pra colocar a misty por exemplo?

se eu tenho que so editar esses arquivo e add coisas dela ou quais que eu tenho que criar?

vlw otimo script :D

 

OBS: JA Consegui...vlw...Agora quero fazer npc de duel pra Dojo.Sabe dizer o que tenho que altera ?

Editado Junho 13 por jeffe000

PokeStarsP
13 de junho de 2011 às 17:43

Ae cara,vlw por postar,nice script :thumbsupsmiley:

TiagohellsT
13 de junho de 2011 às 18:53

:smile_positivo: blz kara gostei ta um pouco mais desemvolvido do q o meu Parabens :thumbsupsmiley2: Rep ++

Jeffer000J
18 de junho de 2011 às 18:07

Up..alguem conseguil fazer ele pegar 100%? aqui sempre da erro quando meu pokemon perde pro dele.ele tira o dele e encerra a luta