Ir para conteúdo

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


lucashgas

Posts Recomendados

@Slicer @All

Uma bom script pra galera fazer éra o sistema de Headbutt (sim o mesmo nome do ataque) igual da PxG, que funciona assim

Headbutt é uma abilidade que, se seu pokemon tiver você da order em cima de um giant tree, e quando mais alto o level do player melhor vem o pokemon.

é como se fosse um sistema de fishing, só que em abilidade para pokemon

detalhe: quando vc usa headbutt, a arvore muda de sprite e fica "quebrada" ai tem que esperar em torno de 5 a 10 min pra poder usar dnv, mais uma boa ideia seria usar uma "semente" na arvore pra ela creser mais rapido. ^^

Link para o comentário
Compartilhar em outros sites

@Jan Well

duel.xml

[/b]

[b]<?xml version="1.0" encoding="UTF-8"?>[/b]

[b]<npc name="Duel Example" script="duel.lua" walkinterval="350000" floorchange="0" speed="0" lookdir="2">[/b]

[b]<health now="150" max="150"/>[/b]

[b]<look type="529" head="91" body="114" legs="86" feet="0"/>[/b]

[b]<parameters>[/b]


[b]</parameters>[/b]

[b]</npc>[/b]
[b]

 

duel.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 time_to_fight_again = 15 -- seconds, not ms (so 30 * 60 means 30 minutes)

 

local cooldown_table = {}

local min_pokemons_to_battle = 1-- change to whatever you want

local number_of_pokemons = 0 -- don't change

local prizes = {

[1] = {{itemid = 2393, count = 30}, {itemid = 2392, count = 20}},

[2] = {{itemid = 2393, count = 40}, {itemid = 2392, count = 30}},

[3] = {{itemid = 2393, count = 50}, {itemid = 2392, count = 40}},

[4] = {{itemid = 2393, count = 60}, {itemid = 2392, count = 50}},

[5] = {{itemid = 2393, count = 70}, {itemid = 2392, count = 60}},

[6] = {{itemid = 2393, count = 80}, {itemid = 2392, count = 70}}} --Item que ganha quando vc ganha o duel do npc, se nao quiser retire--

local pokemons = {

{name = "Cloyster", level = 45, extralevel = 15, sex = SEX_MALE, nick = "Crusher", ball = "super"},

{name = "Lapras", level = 49, extralevel = 15, sex = SEX_FEMALE, nick = "Laura", ball = "normal"},

{name = "Electabuzz", level = 43, extralevel = 20, sex = SEX_MALE, nick = "Eletron", ball = "great"},

{name = "Pinsir", level = 48, extralevel = 30, sex = SEX_MALE, nick = "Headcutter", ball = "normal"},

{name = "Dragonair", level = 39, extralevel = 37, sex = SEX_FEMALE, nick = "Dragonix", ball = "ultra"}, --Pokemons que o npc vai usar assim : Nome do poke level extralevel (como se fosse um boost) sexo do pokemon nick do pokemon pokebola

}

 

local function doSummonGymPokemon(npc)

local this = npc

if not isCreature(this) then return true end

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 x = prizes[number_of_pokemons]

for n = 1, #x do

doPlayerAddItem(cid, x[n].itemid, x[n].count)

end

doCreatureSay(npc, "Congratulations! You won, here is your prize.", 1)

cooldown_table[getCreatureName(cid)] = os.clock() + time_to_fight_again

return true

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

if cooldown_table[getCreatureName(cid)] and cooldown_table[getCreatureName(cid)] - os.clock() > 0 then

selfSay("Hello "..getCreatureName(cid)..", I really enjoyed our last battle!")

conv = 10

else

selfSay("Hello "..getCreatureName(cid)..", are you up to a duel? I can give prizes if you win!")

conv = 1

end

focus = cid

talk_start = os.clock()

return true

end

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

if conv == 10 then

selfSay("We have just battled! Please wait for me to recover from out last battle!")

focus = 0

return true

end

if not hasPokemon(cid) then

selfSay("You need pokemons to battle!")

return true

end

selfSay("Ok, tell me how many pokemons will fight.")

conv = 2

return true

end

if conv == 2 and focus == cid then

if not tonumber(msg) then

selfSay("Tell me the number of pokemons that will battle.")

return true

elseif tonumber(msg) > #pokemons then

selfSay("I have only "..#pokemons..", so the maximum is "..#pokemons.."!")

return true

elseif tonumber(msg) < min_pokemons_to_battle or tonumber(msg) < 1 then

selfSay("It has to be more than "..min_pokemons_to_battle..".")

return true

else

number_of_pokemons = tonumber(msg)

selfSay("Ok, the first that defeats "..number_of_pokemons.." wins, let's start!")

challenger = focus

setPlayerStorageValue(cid, 990, 1)

addEvent(doSummonGymPokemon, 850, getThis())

conv = 3

return true

end

 

return true

end

if isNegMsg(msg) and conv == 1 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

local change = false

function onThink()

if focus == 0 then

selfTurn(2)

fighting = false

challenger = 0

change = false

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])

change = true

afk_time = 0

else

afk_time = afk_time + 0.5

if change then

change = false

challenger_turn = challenger_turn + 1

end

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 > number_of_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 > 6 or challenger_turn >= number_of_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

rep+ e.e

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

Onde edita a xp que os player ganha dos poke ?

eu editei a lib\configuration e nos poke.xml, mas os pokes ainda dao muito xp

 

Obrigado Slicer suas edições estão de ótimas + o trabalho do do pach do Nibelis ficaram show de bola!

Parabens para todos da comunidade queestao sempre ajudando :)

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

@All

 

Bom galera, eu coloqei saffari ball no meu serv, existe um pequeno erro q nao consigo acha a causa, quando dou cath no poke vem a ball "used", mas o id no cath ta certo, quando eu coloco o id da "used" vem "dicharched"...

 

a sequencia de id é a seguinte:

 

id1 = ball on -> quando o poke ta vivo dentro da ball

id2 = ball used -> quando vc sumana o poke

id3 = ball off -> ou dicharched, quando o poke morre

 

eu coloquei o id1 no script, e quando dou cath vem o id2, quando eu coloco 1 id a menos pra ver se minha linha de raciocínio tava certa, mas vem o item certo do id... isso eu nem ligo, deixei pra vim dicharched msm... mas o q eu nao consegui acha é pra dar boost com a saffari...

 

Quando eu pego um poke com a saffari e vou tenta dar boost, fala que tem que colocar a ball certa no slot, queria saber onde eu arrumo isso, ou mais simples, onde eu add mais ball pra mim boosta... Como eu add ball na boost machine???

 

Quem me ajuda REP+ bigsmile.gif

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

@Pokemonultimatetwo obrigadao amanha tem seu rep hj ja dei... @Zesy passa ae seu email para nos falarmos por msn queria que me ajudase como colocar balls no server... se poder meu email e ricardao-nice@hotmail.com se quizer add ae ;D

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

#Bruno

não é isso , Eu queru abrir o servidor.. (PBA) Mais quando coloko para abrir fala que esta falando alguma coisa dentro do OT!

e o cliente preciso de ajuda se alguem ajuda repe + !

Link para o comentário
Compartilhar em outros sites

#Bruno

não é isso , Eu queru abrir o servidor.. (PBA) Mais quando coloko para abrir fala que esta falando alguma coisa dentro do OT!

e o cliente preciso de ajuda se alguem ajuda repe + !

baixa as .dlls e cole dentro da pasta do servidor

 

Link

 

Onde edita a xp que os player ganha dos poke ?

eu editei a lib\configuration e nos poke.xml, mas os pokes ainda dao muito xp

 

Obrigado Slicer suas edições estão de ótimas + o trabalho do do pach do Nibelis ficaram show de bola!

Parabens para todos da comunidade queestao sempre ajudando :)

exp do player:

playerExperienceRate = 3

 

exp do pokemon:

pokemonExpPerLevelRate = 25
Editado por FlamesAdmin
Link para o comentário
Compartilhar em outros sites

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