Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

Tenho este script de NPC Gym (duelo) do meu server de Poketibia!

O problema é que quando o gym mata meu pokémon, ao invés do pokémon do gym continuar no ginásio esperando eu chamar o próximo pokémon!

O gym chama o pokémon dele de volta para a pokebola.

Como faço para o gym não chamar o pokémon dele para a pokebola quando ele mata o meu pokémon?

 

 

 

Spoiler

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 = "Alakazam", level = 93, extralevel = 4, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Hypno", level = 85, extralevel = 5, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Mr. Mime", level = 80, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Porygon", level = 77, extralevel = 8, sex = SEX_FEMALE, 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 Sabrina and I'm Saffron'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 Marsh 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

 

Se viu o GOSTEI aqui em cima?

Então clica =D

Música:

http://www.youtube.com/watch?v=wzqdVJK5rCY&feature=player_detailpage

:D

Aposto que você gostou da que tá tocando guitarra

----------------------------------------------------------------------

Mapper: 80% -aprendendo-

Scripter: 50% -aprendendo-

Spriter: 70% -aprendendo-

Notepad ++: 90% -enceramento-

Hex Editor: 85% -aprendendo-

----------------------------------------------------------------------

Pokemon Friend

pikachu.gif

  • Respostas 15
  • Visualizações 3.7k
  • Created
  • Última resposta

Top Posters In This Topic

Postado

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 = "Alakazam", level = 93, extralevel = 4, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Hypno", level = 85, extralevel = 5, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Mr. Mime", level = 80, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Porygon", level = 77, extralevel = 8, sex = SEX_FEMALE, nick = "", ball = "normal"},

}

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 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 Misty and I'm Cerulean'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 Cascade 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

local change = false

function onThink()

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

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 > #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

é só trocar, manow Daniel ! :D

Editado por karlkalvin (veja o histórico de edições)

                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Assinatura~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                pmnz1.jpg

Postado
  • Autor

Não funcionou :(

Editado por danieuu (veja o histórico de edições)

Se viu o GOSTEI aqui em cima?

Então clica =D

Música:

http://www.youtube.com/watch?v=wzqdVJK5rCY&feature=player_detailpage

:D

Aposto que você gostou da que tá tocando guitarra

----------------------------------------------------------------------

Mapper: 80% -aprendendo-

Scripter: 50% -aprendendo-

Spriter: 70% -aprendendo-

Notepad ++: 90% -enceramento-

Hex Editor: 85% -aprendendo-

----------------------------------------------------------------------

Pokemon Friend

pikachu.gif

Postado

Não funcionou como, deu mesmo erro, ou não funcionou o script ?

Danieuu : Post acima do script, editado pegue e teste novamente !

Editado por karlkalvin (veja o histórico de edições)

                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~Assinatura~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                pmnz1.jpg

Postado
  • Autor

O que você mudou foi o tempo de afk

Tipo o player não batalha com ela(30seg no script original) ela termina por conta dela a batalha. O que você trocou foi aumentar o tempo de afk em 500seg!

Se no novo script você mudou só uma linha ou um pedaço me diz '-'

Que fica mais fácil de eu resolver :D

Se viu o GOSTEI aqui em cima?

Então clica =D

Música:

http://www.youtube.com/watch?v=wzqdVJK5rCY&feature=player_detailpage

:D

Aposto que você gostou da que tá tocando guitarra

----------------------------------------------------------------------

Mapper: 80% -aprendendo-

Scripter: 50% -aprendendo-

Spriter: 70% -aprendendo-

Notepad ++: 90% -enceramento-

Hex Editor: 85% -aprendendo-

----------------------------------------------------------------------

Pokemon Friend

pikachu.gif

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo