Ir para conteúdo

Gabrielzxzx

Cavaleiro
  • Total de itens

    158
  • Registro em

  • Última visita

Posts postados por Gabrielzxzx

  1. Vá no configuratio.lua e procura isso

     

    ["Charizard"] =  {move1 = {name = "Scratch", level = 5, cd = 10, dist = 1, target = 1},
       move2 = {name = "Ember", level = 11, cd = 12, dist = 4, target = 1},
       move3 = {name = "Fireball", level = 17, cd = 20, dist = 4, target = 1},
       move4 = {name = "Fire Fang", level = 16, cd = 16, dist = 1, target = 1},
       move5 = {name = "Slash", level = 19, cd = 18, dist = 1, target = 1},
       move6 = {name = "Fire Spin", level = 25, cd = 24, dist = 4, target = 0},
       move7 = {name = "Flamethrower", level = 33, cd = 30, dist = 4, target = 0},
       move8 = {name = "Burning Skin", level = 28, cd = 27, dist = 4, target = 0},
       move9 = {name = "Ranging Blast", level = 58, cd = 40, dist = 4, target = 0},
       move10 = {name = "Fire Blast", level = 64, cd = 58, dist = 4, target = 0},
       move11 = {name = "Super fire", level = 70, cd = 58, dist = 4, target = 0}

     

    Depois se quiser colocar qualquer spell so colocar o nome da spell level cd target etc..

  2. @Slicer não ,não 90 dias pra test server que tem que paga e mais 90 dias pra sair normalmente o jogo

     

     

    @all

     

    To usando as outfit que o slicer me passo mas a de orebound da debug a de orebound hero não e a de vampire e outras também não só as normal e algumas

     

    XML

     

    <?xml version="1.0"?>
    <outfits>
    <!-- NORMAL -->
    <outfit id="1">
    <list gender="0" lookType="511" name="Trainer"/>
    <list gender="1" lookType="510" name="Trainer"/>
    </outfit>
    <outfit id="2">
    <list gender="0" lookType="615" name="Elite Trainer"/>
    <list gender="1" lookType="614" name="Elite Trainer"/>
    </outfit>
    <outfit id="3">
    <list gender="0" lookType="512" name="Rapper"/>
    <list gender="1" lookType="545" name="Rapper"/>
    </outfit>
    <outfit id="4">
    <list gender="0" lookType="588" name="Jamaican"/>
    <list gender="1" lookType="587" name="Jamaican"/>
    </outfit>
    <outfit id="5">
    <list gender="0" lookType="586" name="Oriental"/>
    <list gender="1" lookType="585" name="Oriental"/>
    </outfit>
    <outfit id="6">
    <list gender="0" lookType="605" name="Rocket"/>
    <list gender="1" lookType="604" name="Rocket"/>
    </outfit>
    <outfit id="7">
    <list gender="0" lookType="495" name="Adventurer"/>
    <list gender="1" lookType="494" name="Adventurer"/>
    </outfit>
    <outfit id="8">
    <list gender="0" lookType="513" name="Bussiness"/>
    <list gender="1" lookType="514" name="Bussiness"/>
    </outfit>
    <outfit id="9">
    <list gender="0" lookType="517" name="Atletic"/>
    <list gender="1" lookType="516" name="Atletic"/>
    </outfit>
    <outfit id="10">
    <list gender="0" lookType="519" name="Punk"/>
    <list gender="1" lookType="518" name="Punk"/>
    </outfit>
    <outfit id="11">
    <list gender="0" lookType="521" name="Fisher"/>
    <list gender="1" lookType="520" name="Fisher"/>
    </outfit>
    <outfit id="12">
    <list gender="0" lookType="524" name="Mercenary"/>
    <list gender="1" lookType="522" name="Mercenary"/>
    </outfit>
    <outfit id="13">
    <list gender="0" lookType="525" name="Hiker"/>
    <list gender="1" lookType="523" name="Hiker"/>
    </outfit>
    <!-- PROMOTE -->
    <outfit id="14">
    <list gender="0" lookType="1149" name="Naturia"/>
    <list gender="1" lookType="1159" name="Naturia"/>
    </outfit>
    <outfit id="15">
    <list gender="0" lookType="1152" name="Volcanic"/>
    <list gender="1" lookType="1154" name="Volcanic"/>
    </outfit>
    <outfit id="16">
    <list gender="0" lookType="1146" name="Gardestrike"/>
    <list gender="1" lookType="1155" name="Gardestrike"/>
    </outfit>
    <outfit id="17">
    <list gender="0" lookType="1153" name="Malefic"/>
    <list gender="1" lookType="1157" name="Malefic"/>
    </outfit>
    <outfit id="18">
    <list gender="0" lookType="1148" name="Wingeon"/>
    <list gender="1" lookType="1158" name="Wingeon"/>
    </outfit>
    <outfit id="19">
    <list gender="0" lookType="1147" name="Raibolt"/>
    <list gender="1" lookType="1160" name="Raibolt"/>
    </outfit>
    <outfit id="20">
    <list gender="0" lookType="1145" name="Psycraft"/>
    <list gender="1" lookType="1161" name="Psycraft"/>
    </outfit>
    <outfit id="21">
    <list gender="0" lookType="1151" name="Seavell"/>
    <list gender="1" lookType="1162" name="Seavell"/>
    </outfit>
    <outfit id="22">
    <list gender="0" lookType="1150" name="Orebound"/>
    <list gender="1" lookType="1156" name="Orebound"/>
    </outfit>
    <!-- PROMOTE MASTER -->
    <outfit id="23">
    <list gender="0" lookType="1179" name="Raibolt Legend"/>
    <list gender="1" lookType="1164" name="Raibolt Legend"/>
    </outfit>
    <outfit id="24">
    <list gender="0" lookType="1178" name="Seavell Queen"/>
    <list gender="1" lookType="1165" name="Seavell King"/>
    </outfit>
    <outfit id="25">
    <list gender="0" lookType="1177" name="Naturia Keeper"/>
    <list gender="1" lookType="1166" name="Naturia Keeper"/>
    </outfit>
    <outfit id="26">
    <list gender="0" lookType="1176" name="Malefic Lady"/>
    <list gender="1" lookType="1167" name="Malefic Lord"/>
    </outfit>
    <outfit id="27">
    <list gender="0" lookType="1180" name="Volcanic Master"/>
    <list gender="1" lookType="1168" name="Volcanic Master"/>
    </outfit>
    <outfit id="28">
    <list gender="0" lookType="1175" name="Wingeon Dragon"/>
    <list gender="1" lookType="1169" name="Wingeon Dragon"/>
    </outfit>
    <outfit id="29">
    <list gender="0" lookType="1174" name="Orebound Hero"/>
    <list gender="1" lookType="1170" name="Orebound Hero"/>
    </outfit>
    <outfit id="30">
    <list gender="0" lookType="1173" name="Gardestrike Lady"/>
    <list gender="1" lookType="1171" name="Gardestrike Champion"/>
    </outfit>
    <outfit id="31">
    <list gender="0" lookType="1181" name="Psycraft Medium"/>
    <list gender="1" lookType="1172" name="Psycraft Medium"/>
    </outfit>
    <!-- GAMEMASTER -->
    <outfit id="32">
    <list gender="0-3" lookType="664" name="GameMaster"/>
    </outfit>
    
    <!-- NATAL -->
    <outfit id="33">
    <list gender="0" lookType="661" name="Christmas"/>
    <list gender="1" lookType="662" name="Christmas"/>
    </outfit>
    <outfit id="34">
    <list gender="0" lookType="1084" name="Christmas 2"/>
    <list gender="1" lookType="1083" name="Christmas 2"/>
    </outfit>
    <!-- HALLOWEEN -->
    <outfit id="35">
    <list gender="0-3" lookType="1140" name="Mummy"/>
    </outfit>
    <outfit id="36">
    <list gender="0" lookType="1190" name="Bruxa"/>
    <list gender="1" lookType="1191" name="Dracula"/>
    </outfit>
    <outfit id="37">
    <list gender="0" lookType="1188" name="Caveira"/>
    <list gender="1" lookType="1189" name="Diaba"/>
    </outfit>
    </outfits>

     

  3. Gyns Poketibia

    ______________________

     

     

     

    Olá,hoje irei mostrar meus NPC de gym de poketibia

     

    1° NPC Brock

     

    Vá em Data/Npc/scripts e crie um arquivo lua com o nome de "Brock.lua" e cole isto dentro:

     

    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 = "Geodude", level = 28, extralevel = 12, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Rhyhorn", level = 27, extralevel = 17, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Graveler", level = 31, extralevel = 19, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Onix", level = 40, extralevel = 12, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Golem", level = 38, extralevel = 18, sex = SEX_MALE, nick = "Golemniso", 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 Brock and I'm Pewter'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 Boulder 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

     

     

     

    Após ter feito isto vá em data/npc e crie um arquivo xml com o nome "Brock" e cole isto dentro:

     

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

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

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

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

    <parameters>

     

    </parameters>

    </npc>

     

    2°Npc Mysty

     

    Vá em data/npc/scripts e crie um novo arquivo lua com o nome de "misty.lua" e cole isto dentro:

     

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

    {name = "Tentacruel", level = 88, extralevel = 5, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Vaporeon", level = 68, extralevel = 8, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Golduck", level = 73, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Blastoise", level = 83, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Starmie", level = 65, 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 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

    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

     

    Após ter feito isto vá em data/npc e crie um arquivo xml com o nome de "misty.lua" e cole isto dentro:

     

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

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

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

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

    <parameters>

     

    </parameters>

    </npc>

     

    3°Npc Blaine

     

    Vá em data/npc/script crie um novo arquivo lua com o nome de "blaine.lua" e cole isto dentro:

     

    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 = "Rapidash", level = 70, extralevel = 4, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Ninetales", level = 65, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Flareon", level = 68, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Arcanine", level = 80, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Charizard", level = 90, extralevel = 10, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Magmar", level = 84, extralevel = 14, 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 Blaine and I'm Cinnabar'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 Volcano 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

     

    Após ter feito isto vá em data/npc/ e crie um arquivo xml com o nome de "Blaine.xml" e cole isto dentro

     

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

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

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

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

    <parameters>

     

    </parameters>

    </npc>

     

    4°npc koga

     

    Vá em data/npc/scripts/ crie um novo arquivo com o nome de "Koga.lua" e cole isto dentro:

     

    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 = "Arbok", level = 65, extralevel = 4, sex = SEX_FEMALE, nick = "", ball = "normal"},

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

    {name = "Golbat", level = 68, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Muk", level = 73, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Weezing", level = 77, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Nidoking", level = 80, 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 Koga and I'm Fuchsia'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 Soul 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

     

    Após ter feito isto vá em data/npc e crie um novo arquivo xml com o nome "koga.xml" e cole isto dentro:

     

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

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

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

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

    <parameters>

     

    </parameters>

    </npc>

     

    5° npc Lt.Surge (Já ta ficando chato fazer aqui :X)

     

    Vá em data/npc/scripts e crie um arquivo lua com o nome de "surge.lua" e cole isto dentro:

     

    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

     

    Após ter feito isto vá em data/npc e crie um arquivo xml com o nome "Surge" e cole isto dentro:

     

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

     

    6° npc erika

     

    Vá em data/npc/scripts e crie um arquivo lua com o nome de "erika.lua" e cole isto dentro:

     

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

    {name = "Vileplume", level = 68, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Exeggutor", level = 65, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Tangela", level = 75, extralevel = 10, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Venusaur", level = 90, extralevel = 14, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Scyther", level = 85, extralevel = 14, 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 Erika and I'm Celadon'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 Rainbow 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

     

    Vá em data/npc/ e crie um arquivo com o nome... a se ja sabe cole isto dentro:

     

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

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

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

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

    <parameters>

     

    </parameters>

    </npc>

     

    NPC Sabrina

     

    Vá em data/npc/scripts e crie um arquivo lua com o nome "Sabrina" e cole isto dentro:

     

    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

     

    Após ter feito isto vá em data/npc e crie um arquivo xml com o nome sabrina e cole isto dentro:

     

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

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

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

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

    <parameters>

     

    </parameters>

    </npc>

     

    8° NPC Giovanni

     

    Vá em data/npc/scripts crie o arquivo lua com o nome giovanni e cole isto dentro:

    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 = "Clefable", level = 65, extralevel = 4, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Persian", level = 60, extralevel = 5, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Lickitung", level = 67, extralevel = 5, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Chansey", level = 70, extralevel = 8, sex = SEX_FEMALE, nick = "", ball = "normal"},

    {name = "Kangaskhan", level = 80, extralevel = 8, sex = SEX_MALE, nick = "", ball = "normal"},

    {name = "Snorlax", 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

     

     

    Vá em data/npc e crie o seu arquivo xml com o nome de giovanni e cole isto dentro

     

     

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

     

     

    P.S:Também funcionara em um server que não tem lvl system porém irá dar um minimo erro na hora de ligar,até.

  4. Fala galera,fiz uma spell pra vocês não sei se vão gostar mas aí vai ta meio loquinha :D

     

     

    -----Feito Totalmente por gabrielzxzx-----
    local combat = createCombatObject()
    setCombatParam(combat, COMBAT_PARAM_TYPE,COMBAT PHYSICALDAMAGE )
    setCombatParam(combat, COMBAT_PARAM_EFFECT,57 )
    setCombatFormula(combat, -0.3, 0, -0.4, 0)
    local arr = {
    {1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0},
    {0, 1, 1, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
    {0, 0, 1, 0, 0, 0, 0, 2, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 1, 1, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
    {0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0},
    }
    local area = createCombatArea(arr)
    setCombatArea(combat, area)
    function onCastSpell(cid, var)
    return doCombat(cid, combat, var)
    end

     

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...