Ir para conteúdo
  • Cadastre-se

Derivado [Problema] NPC Gym {Poketibia}


Posts Recomendados

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

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

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

Link para o post
Compartilhar em outros sites

Ola Usuario,

Tente Utilisar o Meu:


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 = 107, sex = SEX_MALE, nick = "", ball = "normal"},

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

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

{name = "Porygon", level = 77, extralevel = 73, 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 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

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

Caso o 1 Nao Der Tente Esse:

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 = 107, sex = SEX_MALE, nick = "", ball = "normal"},

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

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

{name = "Porygon", level = 77, extralevel = 73, 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 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

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

Espero Ter Ajudado...

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

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord TibiaKing

 

Link para o post
Compartilhar em outros sites

Não funcionou também :unsure:

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

Link para o post
Compartilhar em outros sites

Nenhum Dos Dois Funcionou? Qual Servidor Base Voce Esta Utilisando?!

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord TibiaKing

 

Link para o post
Compartilhar em outros sites

O pokemon dash advanced

Só que com outro nome :PÉ o pokémon XD que tem aqui no fórum

Vou testar uma coisa aqui e já falo se funcionou *-*

Tentei trocar o cliente, mais não funcionou '-'

Tipo eu estava vendo o pokemon dash advanced 1.4_d2

O npc gym é tudo igual!

Nele funciona e no meu server não funciona unica coisa que mudou vou o nome do server =/

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

Link para o post
Compartilhar em outros sites

Vish Se Somente Este GYM Esta Com Problema Faça o Seguinte!

  1. Pegue Um Gym Que Esteja Pegando
  2. Copie Tudo Dele e Jogue No Arquivo.lua Da Sabrina...
  3. Mude Apenas Os Pokemons / Falas e o Premio (Insignia)

Caso Contrario Tente Entrar Em Contato Com o Desenvolvedor Do Pokemon xD e Pessa Support Pois Vc Encontrou Um Bug No Projeto Dele...

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord TibiaKing

 

Link para o post
Compartilhar em outros sites

Não consigo entender porque o NPC chama o pokémon dele para a pokebola depois que ele mata meu pokémon. E o mesmo script em outro server ele deixa o pokémon dele no ginásio esperando eu chamar meu outro pokémon :hum:

Que tipo se tive-se um comando diferente, um script com algo a mais, 1numero que fosse!

Mais não! é o mesmo script numero por numero, letra por letra!

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

Link para o post
Compartilhar em outros sites

Faça Um Pedido De Support Para o Responsavel Creator Do Servidor, Pois Ele Deve Te Ausiliar Com Bugs Encontrados No Percurso Do Servidor!

Como a Sua Base é Dash / xD, Então Nem Me Atrevo a Mecher Por Ser Totalmente Diferente Da Minha Area (Centurion)...

Espero Que Consiga Um Ausilio e Conserte Seu Projeto!

Abraço

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord TibiaKing

 

Link para o post
Compartilhar em outros sites

Na verdade o centurion e o dash é igual em quase tudo!

Só mudou de nome :P

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

Link para o post
Compartilhar em outros sites

Danieu, Não Na Verdade Mudou a Base Enteira.

VI6MDIG.png

 

"O fracasso é a oportunidade de se começar de novo inteligentemente"

Minhas Redes Sociais: Youtube | Página & Grupo | Steam  | Discord TibiaKing

 

Link para o post
Compartilhar em outros sites

Achei onde é o problema ou parte dele '-'

Tipo quando eu crio a conta no pokémon dash

Aparece a badge em cima dai a pokebag

E quando eu crio no xd aparece a pokebag em cima e a badge em baixo :facepalm:

Tipo eu acho que achei +- como resolver(pelo menos fiz o teste e funcionou) :ph34r:

Troquei a pasta lib que está em data/npc/ , troquei a do xd pelo do dash advanced :D

Só agora não sei se não vai dar algum problema nos outros npc :unsure:

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

Link para o post
Compartilhar em outros sites
  • 3 years later...
Em 15/08/2012 at 13:25, danieuu disse:

Não consigo entender porque o NPC chama o pokémon dele para a pokebola depois que ele mata meu pokémon. E o mesmo script em outro server ele deixa o pokémon dele no ginásio esperando eu chamar meu outro pokémon :hum:

 

Que tipo se tive-se um comando diferente, um script com algo a mais, 1numero que fosse!

Mais não! é o mesmo script numero por numero, letra por letra!

 

 

 

 

Não sei se já resolver, e se o problema é esse, mas em alguns Ots, quando vc usa double team, shredder team, u-turn, pursuit e outras spells que fazem o pokemon "sumir' conta como 1 morte, no caso de pursuit e u-turn acho que conta como 2 mortes, talvez seja isso...

 

 

Link para o post
Compartilhar em outros sites

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

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por LeoTK
      Salve galera neste tópico irei postar algumas prints do mapa do servidor para quem queira acompanhar e quem sabe até utilizar de inspiração para mapear o seu NTO.
       
      #Att 11/08/2022

       
       
       
       
      Konoha (Em Desenvolvimento)
       
       
       
       
    • Por DiigooMix
      Como o título já diz, será que alguém possui sprite do hitto e se possível as transformações dele?
    • Por OmegaZero
      Olá gostaria que alguém me ajudasse com uma "scripting" não sei se é pela mesma, seria o seguinte uma determinada arma teria a chance de dar double hit e não sei oque fazer alguem poderia ajudar?

      OBS:não sei se é o local correto se não for mova, desculpe
    • Por Madarasenju
      Olá galera do Tibia King, queria por uns npc's no meu server que não tem função de trade nem nada do tipo, queria que eles só andassem como enfeite, Rep+ Pra quem me ajudar... grato desde já.
    • Por SilenceRoot
      A magia é assim o você usa a a magia e ela ficará ativado por 10 segundos, até que o inimigo lance a primeira magia ou todos de uma vez, quando ele lançar a primeira magia, ele não lhe acertará ou seja esquivando dela, e logo em seguida será teletransportado aleatoriamente ao redor do inimigo que usou.
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo