Ir para conteúdo

[Encerrado] [Pokemon] Dúvidas? - Pda


lucashgas

Posts Recomendados

@Slicer

Se eu não estou enganado, aquelas bolinhs lah tem msi cds com ela. Eu sei que tem um psyquic que sai 3 bolinha em uma linha reta. E tem aquele do pidgeot que ele vira um tornado, tem o looktype no cliente. E não podemos esquecer daqueles moves de heal, que é o mesmo efeito do self heal.. E se vc não rancou tem os moves do crystal onix tbm. Pelo menos a resitência ao elemento crystal da pra fazer no configuration. AI o negócio de ataque acho que da pra fazer com script. Crunch, ice fang, cross poison, venom gale tem um monte mano e.e E o aurora beam, o mais esperado.

 

Tem all cd do skrmory que possui no cliente, mas é meio dificil eu postar ss deles aqui. Tem que ver com o zereft, ele ja fez acho.

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

Credo, vim com a idéia só, de talvez postar um servidor com sources o cara vem com 10 pedras na mão --'

 

e quando eu coloquei @slicer, acho que era com ele, não com você :D

 

Eu ia perguntar já depois o que seria legal colocar no servidor, se alguem tiver alguma ideia, o servidor ainda tá simples, tem os sistemas básicos, e mais alguns que eu fiz.

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

KK relax bro ;)

Eu já postei bastante coisa, só que primeiro quero terminar isso ;)

Mas tá ficando legal, to usando mesmo estilo do pda nas magias, só que configurando o dano pelas configs, sem atributos, sem level, tá ficando do jeito que eu queria :D

Link para o comentário
Compartilhar em outros sites

@Yaldabaoth

 

surge.xml

 

<?xml version="1.0" encoding="UTF-8"?>

 

<npc name="Surge" script="surge.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">

 

<health now="150" max="150"/>

 

<look type="589" head="91" body="114" legs="86" feet="0"/>

 

<parameters>

 

 

</parameters>

 

</npc>

 

 

surge.lua

 

 

local focus = 0

local max_distance = 8

local talk_start = 0

local conv = 0

local fighting = false

local challenger = 0

local afk_limit_time = 30 -- seconds

local afk_time = 0 -- don't change

local battle_turn = 1 -- don't change

local challenger_turn = 0 -- don't change

 

local pokemons = {

{name = "Electrode", level = 65, extralevel = 4, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Magneton", level = 68, extralevel = 5, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Jolteon", level = 73, extralevel = 8, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Raichu", level = 87, extralevel = 8, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Electabuzz", level = 95, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

}

 

 

local function doSummonGymPokemon(npc)

local this = npc

if #getCreatureSummons(this) >= 1 or focus == 0 then return true end

local it = pokemons[battle_turn]

doSummonMonster(this, it.name)

local summon = getCreatureSummons(this)[1]

local balleffect = pokeballs["normal"].effect

if it.ball and pokeballs[it.ball] then

balleffect = pokeballs[it.ball].effect

end

doSendMagicEffect(getThingPos(summon), balleffect)

setPlayerStorageValue(summon, 10000, balleffect)

setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name))

setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name)

doSetMonsterGym(summon, focus)

local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name

setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, it.extralevel + it.level), name, 1.5)

doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1)

fighting = true

battle_turn = battle_turn + 1

end

 

local function doWinDuel(cid, npc)

if not isCreature(cid) then return true end

local this = npc

local a = gymbadges[getCreatureName(this)] + 8

doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1)

local b = getPlayerItemById(cid, true, a)

if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end

end

 

function onCreatureSay(cid, type, msg)

 

local msg = string.lower(msg)

 

if focus == cid then

talk_start = os.clock()

end

 

if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then

focus = cid

talk_start = os.clock()

conv = 1

selfSay("Hello "..getCreatureName(cid)..", my name is Surge and I'm Vermilion's Gym Leader. How may I help you?")

return true

end

 

if isDuelMsg(msg) and conv == 1 and focus == cid then

 

--if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then

-- selfSay("You have already won my Thunder Badge, maybe some other day we can fight.")

-- focus = 0

--return true

--end

 

if not hasPokemon(cid) then

selfSay("To battle agains't a gym leader you need pokemons.")

return true

end

 

selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?")

conv = 2

 

return true

end

 

if isConfirmMsg(msg) and conv == 2 and focus == cid then

 

challenger = focus

setPlayerStorageValue(cid, 990, 1)

selfSay("Yea, let's fight!")

talk_start = os.clock()

addEvent(doSummonGymPokemon, 850, getThis())

conv = 3

 

return true

end

 

if isNegMsg(msg) and conv == 2 and focus == cid then

 

focus = 0

selfSay("It is better for you to refuse a battle against me!")

 

return true

end

 

if msgcontains(msg, 'bye') and focus == cid then

selfSay('Bye and do your best trainer!')

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

end

 

local afk_warning = false

 

function onThink()

 

--doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215)

 

if focus == 0 then

selfTurn(2)

fighting = false

challenger = 0

challenger_turn = 0

battle_turn = 1

afk_time = 0

afk_warning = false

 

if #getCreatureSummons(getThis()) >= 1 then

setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0)

doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1]))

end

 

return true

else

 

if not isCreature(focus) then

focus = 0

return true

end

 

if fighting then

 

talk_start = os.clock()

 

if not isCreature(getCreatureTarget(getThis())) then

if #getCreatureSummons(challenger) >= 1 then

selfAttackCreature(getCreatureSummons(challenger)[1])

challenger_turn = challenger_turn + 1

afk_time = 0

else

afk_time = afk_time + 0.5

end

end

 

if afk_time > afk_limit_time then

setPlayerStorageValue(focus, 990, -1)

focus = 0

selfSay("I have waited too long, come back when you are ready!")

return true

end

 

if not afk_warning and afk_time > afk_limit_time / 2 then

selfSay("Where's your pokemon? Let's fight!")

afk_warning = true

end

 

 

if #getCreatureSummons(getThis()) == 0 then

if battle_turn > #pokemons then

addEvent(doWinDuel, 1000, focus, getThis())

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

addEvent(doSummonGymPokemon, 1000, getThis())

end

 

if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then

selfSay("You lost our duel! Maybe some other time you'll defeat me.")

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

 

end

 

local npcpos = getThingPos(getThis())

local focpos = getThingPos(focus)

 

if npcpos.z ~= focpos.z then

setPlayerStorageValue(focus, 990, -1)

focus = 0

selfSay("Bye then.")

return true

end

 

if (os.clock() - talk_start) > 30 then

selfSay("Good bye and keep training!")

setPlayerStorageValue(focus, 990, -1)

focus = 0

end

 

if getDistanceToCreature(focus) > max_distance then

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

 

local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))

selfTurn(dir)

end

return true

end

 

 

giovanni.xml

 

 

<?xml version="1.0" encoding="UTF-8"?>

 

<npc name="Giovanni" script="giovanni.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">

 

<health now="150" max="150"/>

 

<look type="603" head="91" body="114" legs="86" feet="0"/>

 

<parameters>

 

 

</parameters>

 

</npc>

 

 

giovanni.lua

 

 

local focus = 0

local max_distance = 8

local talk_start = 0

local conv = 0

local fighting = false

local challenger = 0

local afk_limit_time = 30 -- seconds

local afk_time = 0 -- don't change

local battle_turn = 1 -- don't change

local challenger_turn = 0 -- don't change

 

local pokemons = {

{name = "Rhyhorn", level = 70, extralevel = 4, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Dugtrio", level = 75, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Nidoqueen", level = 80, extralevel = 5, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Nidoking", level = 85, extralevel = 8, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Rhydon", level = 90, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Persian", level = 100, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

}

 

 

local function doSummonGymPokemon(npc)

local this = npc

if #getCreatureSummons(this) >= 1 or focus == 0 then return true end

local it = pokemons[battle_turn]

doSummonMonster(this, it.name)

local summon = getCreatureSummons(this)[1]

local balleffect = pokeballs["normal"].effect

if it.ball and pokeballs[it.ball] then

balleffect = pokeballs[it.ball].effect

end

doSendMagicEffect(getThingPos(summon), balleffect)

setPlayerStorageValue(summon, 10000, balleffect)

setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name))

setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name)

doSetMonsterGym(summon, focus)

local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name

setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, it.extralevel + it.level), name, 1.5)

doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1)

fighting = true

battle_turn = battle_turn + 1

end

 

local function doWinDuel(cid, npc)

if not isCreature(cid) then return true end

local this = npc

local a = gymbadges[getCreatureName(this)] + 8

doCreatureSay(npc, "You won the duel! Congratulations, take this "..getItemNameById(a - 8).." as a prize.", 1)

setPlayerStorageValue(cid, 111111, 1)

local b = getPlayerItemById(cid, true, a)

if b.uid > 0 then doTransformItem(b.uid, b.itemid - 8) end

end

 

function onCreatureSay(cid, type, msg)

 

local msg = string.lower(msg)

 

if focus == cid then

talk_start = os.clock()

end

 

if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then

focus = cid

talk_start = os.clock()

conv = 1

selfSay("Hello "..getCreatureName(cid)..", my name is Giovanni and I'm Viridian's Gym Leader. How may I help you?")

return true

end

 

if isDuelMsg(msg) and conv == 1 and focus == cid then

 

--if getPlayerItemCount(cid, gymbadges[getCreatureName(getThis())]) >= 1 then

-- selfSay("You have already won my Earth Badge, maybe some other day we can fight.")

-- focus = 0

--return true

--end

 

if not hasPokemon(cid) then

selfSay("To battle agains't a gym leader you need pokemons.")

return true

end

 

selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?")

conv = 2

 

return true

end

 

if isConfirmMsg(msg) and conv == 2 and focus == cid then

 

challenger = focus

setPlayerStorageValue(cid, 990, 1)

selfSay("Yea, let's fight!")

talk_start = os.clock()

addEvent(doSummonGymPokemon, 850, getThis())

conv = 3

 

return true

end

 

if isNegMsg(msg) and conv == 2 and focus == cid then

 

focus = 0

selfSay("It is better for you to refuse a battle against me!")

 

return true

end

 

if msgcontains(msg, 'bye') and focus == cid then

selfSay('Bye and do your best trainer!')

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

end

 

local afk_warning = false

 

function onThink()

 

--doSendAnimatedText(getThingPos(getThis()), getCreatureName(getThis()), 215)

 

if focus == 0 then

selfTurn(2)

fighting = false

challenger = 0

challenger_turn = 0

battle_turn = 1

afk_time = 0

afk_warning = false

 

if #getCreatureSummons(getThis()) >= 1 then

setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0)

doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1]))

end

 

return true

else

 

if not isCreature(focus) then

focus = 0

return true

end

 

if fighting then

 

talk_start = os.clock()

 

if not isCreature(getCreatureTarget(getThis())) then

if #getCreatureSummons(challenger) >= 1 then

selfAttackCreature(getCreatureSummons(challenger)[1])

challenger_turn = challenger_turn + 1

afk_time = 0

else

afk_time = afk_time + 0.5

end

end

 

if afk_time > afk_limit_time then

setPlayerStorageValue(focus, 990, -1)

focus = 0

selfSay("I have waited too long, come back when you are ready!")

return true

end

 

if not afk_warning and afk_time > afk_limit_time / 2 then

selfSay("Where's your pokemon? Let's fight!")

afk_warning = true

end

 

 

if #getCreatureSummons(getThis()) == 0 then

if battle_turn > #pokemons then

addEvent(doWinDuel, 1000, focus, getThis())

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

addEvent(doSummonGymPokemon, 1000, getThis())

end

 

if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then

selfSay("You lost our duel! Maybe some other time you'll defeat me.")

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

 

end

 

local npcpos = getThingPos(getThis())

local focpos = getThingPos(focus)

 

if npcpos.z ~= focpos.z then

setPlayerStorageValue(focus, 990, -1)

focus = 0

selfSay("Bye then.")

return true

end

 

if (os.clock() - talk_start) > 30 then

selfSay("Good bye and keep training!")

setPlayerStorageValue(focus, 990, -1)

focus = 0

end

 

if getDistanceToCreature(focus) > max_distance then

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

 

local dir = doRedirectDirection(getDirectionTo(npcpos, focpos))

selfTurn(dir)

end

return true

end

 

Link para o comentário
Compartilhar em outros sites

@Maguito

oia oq eu coloquei..

effs = 222, 230, 231 e 235 - assurance, 228 - scary face e 237 faint attack

distance eff = 5 - draco meteor e 17 - pursuit...

se tiver ideia doq mais der pra tirar.... ;p

 

e o outro fodao do skarmory eu n lembro como eh.. ;x 'Aerial Ace - m8 - level 89 - flying'...

e o efeito do cross poison tb n tem '-'

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

Negócio é espera o hyper bem do zeref, ai libera mais 10 espaços. Vou procurar aqui. Aquele efeito do arca deu pra aproveitr ou ficou acima no limtie de efeitos ?

 

Distance effects: 6,30,31,38,44,52 o 45 e 46 se repetem.

 

Effects:

9,11,29,30,47,49,51,185,192,193,194,195,196,222,226,231,239, ( da uma conferida). Na vdd confere todos.

 

Eu acho que o 230 não podia tirar não hein.( na vdd podia sim, foi um efeito que eu adcionei mas nem sei de qual spell é)

 

O que você substitui pelo scary face não é ataque do cubone ?

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

@Slicer

 

Umas spells que eu fiz e pretendo fazer ainda

 

 

Spells:

- Aromateraphy

- Swift

- Aerial Ace

- Gust

- Protect

- Cyber Pulse

- Cotton Spore

- Cannon Ball

- Focus Blast (Machamp)

- Torment (Venom Gale)

- Magnitude (RINGG)

- Camouflage

- Acid Armor

- Destiny Bond

- Magic Coat

- Wrap

- Metal Claw

- Elemental Hands

- Future Sight (1684)

- Iron Defense (666)

X Hyper Fang

X Cross Chop

X Smookescreen

X Last Resort

X Shadowave

X Muddy Water

X Horn Drill

X Fissure

X Leaf Storm

X Web Shot

X Icy Wind

X Fury Attack

X Blaze Kick

X Wind Blow

X Ice Shards

X U-turn

X X-Scissor

X Bubble Blast (Area)

X Sacred Fire

X Great Love

X Lovely Kiss

X Sweet Kiss

X Venom Gale

X Crunch

X Pin Missile

X Petal Dance

X Magical Leaf

X Whirlpool (Politoed)

X Hyper Voice

X Fury Cutter

X Ancient Power

X Leech Seed

X String Shot

X Hurricane

X Air Cutter

X All Storms

x Air Slash

X Green Slicer

X Red Slicer

X Sand Attack

X Invisible

 

 

 

@RicardoSohnn

O lek chega com 10 pedras, ricardo retorna 15 pra ele hasuushuahusa

 

@OFF

Depois vou ver se termino o hyper beam, e vejo se faço um pequeno video com todas as spells para quem quiser ahushusa

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...