Ir para conteúdo

[Encerrado] NPC DUEL SEM LEVEL POKEMON


planetc

Posts Recomendados

Se eu estiver na area errada por favor movam para a area certa vlw!

 

Bem, eu queria saber se tem como colocar para quando ganhar ser teleportado para tal POSICAO e quando perder tambem, ja tentei de tudo mas nao consigo :S

 

Essa é a Script:

Se alguem souber por favor.

 

Talves se eu adicionar isso na script funcione, mas nao sei onde colocar :S

 

telePosFinal = {x=921, y=963, z=10}
telePos = {x=977, y=946, z=7}

 

 

 

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 masterpos = {}
local time_to_fight_again = 15 -- seconds, not ms (so 30 * 60 means 30 minutes)
local can_walk = true -- true to make this npc walks randomly
local max_distance = 5 -- maximum distance this npc can get far (sqms)
local walk_delay = 7 -- every seconds make this npc walk
local cooldown_table = {}
local min_pokemons_to_battle = 5-- change to whatever you want
local number_of_pokemons = 0 -- don't change
local prizes = {
[5] = {{itemid = 2393, count = 70}, {itemid = 2392, count = 60}}
local pokemons = {
{name = "Dewgong", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "super"},
{name = "Cloyster", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"},
{name = "Piloswine", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "great"},
{name = "Jynx", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"},
{name = "Lapras", optionalLevel = 500, sex = SEX_FEMALE, nick = "", ball = "ultra"},
}
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
addEvent(adjustWildPoke, 15, summon, it.optionalLevel)
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
local walkdelay = 0
function onThink()
if not masterpos.x then
masterpos = getThingPos(getThis())
end
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
walkdelay = walkdelay - 0.5
if walkdelay <= 0 then
walkdelay = walk_delay
local pos = getThingPos(getThis())
local npos = {}
for a = 0, 3 do
if getDistanceBetween(getPosByDir(pos, a), masterpos) <= max_distance and canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then
table.insert(npos, getPosByDir(pos, a))
end
end
if npos and #npos > 0 then
doTeleportThing(getThis(), npos[math.random(#npos)])
end
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
if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6
selfAttackCreature(getCreatureSummons(challenger)[1])
change = true
afk_time = 0
end
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

 

Link para o comentário
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 masterpos = {}

local time_to_fight_again = 15 -- seconds, not ms (so 30 * 60 means 30 minutes)

local can_walk = true -- true to make this npc walks randomly

local max_distance = 5 -- maximum distance this npc can get far (sqms)

local walk_delay = 5 -- every seconds make this npc walk

local cooldown_table = {}

local min_pokemons_to_battle = 1-- change to whatever you want

local number_of_pokemons = 0 -- don't change

local posiloose = {x=1145, y=1411, z=7} --- posiçao que ele sera teleportado ao perder

local posiwin = {x=1180, y=1435, z=6} --- posiçao que ele sera teleportado al ganhar

local prizes = {

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

local pokemons = {

{name = "Dewgong", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "super"},

{name = "Cloyster", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"},

{name = "Piloswine", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "great"},

{name = "Jynx", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"},

{name = "Lapras", optionalLevel = 500, sex = SEX_FEMALE, nick = "", ball = "ultra"},

}

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, "Parabéns! Você ganhou, aqui é o seu prêmio.", 1)

doTeleportThing(cid,posiloose)

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("Olá "..getCreatureName(cid)..", voçê deseja duelar comigo? Eu posso dar prêmios se você ganhar, fale Duel para batalha")

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("Acabamos de lutar! Por favor, espere um tempo para me recuperar da última batalha!")

focus = 0

return true

end

if not hasPokemon(cid) then

selfSay("Você precisa pokemons para a batalha!")

return true

end

selfSay("Ok, me diga com quantos pokemons voçê vai lutar.")

conv = 2

return true

end

if conv == 2 and focus == cid then

if not tonumber(msg) then

selfSay("Diga-me o número de pokemons que que nós vamos batalhar.")

return true

elseif tonumber(msg) > #pokemons then

selfSay("Só tenho "..#pokemons..",de modo que o máximo é de "..#pokemons.."!")

return true

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

selfSay("Tem que ser mais do que "..min_pokemons_to_battle..".")

return true

else

number_of_pokemons = tonumber(msg)

selfSay("Ok, o primeiro que vencer "..number_of_pokemons.." leva-rá a vitória, vamos começar!")

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("É melhor para você recusar uma batalha contra mim!")

return true

end

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

selfSay('Tchau e acredito que fiz de voçê um melhor treinador!')

setPlayerStorageValue(focus, 990, -1)

focus = 0

return true

end

end

local afk_warning = false

local change = false

local walkdelay = 0

function onThink()

if not masterpos.x then

masterpos = getThingPos(getThis())

end

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

walkdelay = walkdelay - 0.5

if walkdelay <= 0 then

walkdelay = walk_delay

local pos = getThingPos(getThis())

local npos = {}

for a = 0, 3 do

if getDistanceBetween(getPosByDir(pos, a), masterpos) <= max_distance and canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then

table.insert(npos, getPosByDir(pos, a))

end

end

if npos and #npos > 0 then

doTeleportThing(getThis(), npos[math.random(#npos)])

end

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("Eu esperei muito tempo, voltar quando estiver pronto!")

return true

end

if not afk_warning and afk_time > afk_limit_time / 2 then

selfSay("Onde está seu pokemon? Vamos lutar!")

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("Você perdeu o nosso duelo! Talvez algum outro momento você vai me derrotar.")

setPlayerStorageValue(focus, 990, -1)

doTeleportThing(cid,posiwin)

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("Flw Parceiro.")

return true

end

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

selfSay("Adeus e mantenha a formação!")

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

aki voce muda a posiçao


local posiloose = {x=1145, y=1411, z=7} --- posiçao que ele sera teleportado ao perder

 

local posiwin = {x=1180, y=1435, z=6} --- posiçao que ele sera teleportado al ganhar

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

Testando, se funfar ou nao funfar edito aki!

 

~~EDIT

Nao funfo kra, o pokemon inimigo fica passivo e nao te ataca e quando vc mata ele o npc nao sumona o outro!

Tem como arrumar isso ? :S

Editado por Christopher Prado Stamboni
Link para o comentário
Compartilhar em outros sites

Olá Amigo, Seu topico se encontra em uma sessão errada.

Estarei reportando para que o mesmo seja movido!

 

(Area Correta é "Servidores e derivados > Pedidos e Duvidas - Servidores e Derivados")

 

Mais atenção da proxima vez.

 

Obrigado!

Link para o comentário
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 masterpos = {}
local time_to_fight_again = 15 -- seconds, not ms (so 30 * 60 means 30 minutes)
 
local can_walk = true -- true to make this npc walks randomly
local max_distance = 5 -- maximum distance this npc can get far (sqms)
local walk_delay = 7 -- every seconds make this npc walk
 
local cooldown_table = {}
 
local min_pokemons_to_battle = 5-- change to whatever you want
local number_of_pokemons = 0 -- don't change
 
local prizes = {
[5] = {{itemid = 2393, count = 70}, {itemid = 2392, count = 60}}
 
telePosFinal = {x =921, y =963, z =10}
telePos = {x =977, y =946, z =7}
 
local pokemons = {
{name = "Dewgong", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "super"},
{name = "Cloyster", optionalLevel = 400, sex = SEX_FEMALE, nick = "", ball = "normal"},
{name = "Piloswine", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "great"},
{name = "Jynx", optionalLevel = 400, sex = SEX_MALE, nick = "", ball = "normal"},
{name = "Lapras", optionalLevel = 500, sex = SEX_FEMALE, nick = "", ball = "ultra"},
}
 
 
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
addEvent(adjustWildPoke, 15, summon, it.optionalLevel)
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)
doTeleportThing(cid, telePos)
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
local walkdelay = 0
 
function onThink()
 
if not masterpos.x then
masterpos = getThingPos(getThis())
end
 
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
 
walkdelay = walkdelay - 0.5
 
if walkdelay <= 0 then
walkdelay = walk_delay
local pos = getThingPos(getThis())
local npos = {}
for a = 0, 3 do
if getDistanceBetween(getPosByDir(pos, a), masterpos) <= max_distance and canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then
table.insert(npos, getPosByDir(pos, a))
end
end
 
if npos and #npos > 0 then
doTeleportThing(getThis(), npos[math.random(#npos)])
end
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
if getCreatureOutfit(getCreatureSummons(challenger)[1]).lookType ~= 2 then --alterado v1.6
selfAttackCreature(getCreatureSummons(challenger)[1])
change = true
afk_time = 0
end
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.")
doTeleportThing(cid, telePosFinal)
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

  • 1 month later...
  • 4 years later...
A questão neste tópico de suporte foi encerrada por falta de respostas. Este tópico está fechado e foi movido para Suporte - Tópicos Sem Resposta.

+ Caso a dúvida não tenha sido resolvida você poderá criar outro tópico solicitando ajuda.
* Lembre-se que é permitido dar UP no tópico a cada 24 horas para assim o destacar e manter movimentado.
Link para o comentário
Compartilhar em outros sites

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