Ir para conteúdo
  • Cadastre-se

Scripting Erro ao adicionar sistema de lv no poketibia


Posts Recomendados

.Qual servidor ou website você utiliza como base? 

PokeZR By Kyyah

Qual o motivo deste tópico? 

problema

Está surgindo algum erro? Se sim coloque-o aqui. 

Citar

[28/06/2019 13:44:47] [Error - Action Interface] 
[28/06/2019 13:44:47] datapack/actions/scripts/goback.lua:onUse
[28/06/2019 13:44:47] Description: 
[28/06/2019 13:44:47] datapack/actions/scripts/goback.lua:286: bad argument #2 to 'gsub' (string/function/table expected)
[28/06/2019 13:44:47] stack traceback:
[28/06/2019 13:44:47]     [C]: in function 'gsub'
[28/06/2019 13:44:47]     datapack/actions/scripts/goback.lua:286: in function <datapack/actions/scripts/goback.lua:207>

 

Você tem o código disponível? Se tiver publique-o aqui: 

function onUse(cid, item, frompos, item2, topos)

    if #getCreatureSummons(cid) >= 1 and getPlayerStorageValue(getCreatureSummons(cid)[1], 33) >= 1 then
    return true
    end
local random2 = math.random(1,6)
    if random2 == 1 then
    msgunicaback = msgunicaback1
    elseif random2 == 2 then
    msgunicaback = msgunicaback2
    elseif random2 == 3 then
    msgunicaback = msgunicaback3
    elseif random2 == 4 then
    msgunicaback = msgunicaback4
    elseif random2 == 5 then
    msgunicaback = msgunicaback5
    elseif random2 == 6 then
    msgunicaback = msgunicaback6
    end
local random = math.random(1,6)
    if random == 1 then
    msgunicago = msgunicago1
    elseif random == 2 then
    msgunicago = msgunicago2
    elseif random == 3 then
    msgunicago = msgunicago3
    elseif random == 4 then
    msgunicago = msgunicago4
    elseif random == 5 then
    msgunicago = msgunicago5
    elseif random == 6 then
    msgunicago = msgunicago6
    end

    if item.itemid == 2222 or item.itemid == 2223 then
    gobackeff = 10
    elseif item.itemid == 2239 or item.itemid == 2240 then
    gobackeff = 189
    elseif item.itemid == 2234 or item.itemid == 2235 then
    gobackeff = 190
    elseif item.itemid == 2220 or item.itemid == 2221 then
    gobackeff = 191
    elseif item.itemid == 2242 or item.itemid == 2243 then
    gobackeff = 226
    elseif item.itemid == 2192 or item.itemid == 2193 then
    gobackeff = 223
    elseif item.itemid == 2660 or item.itemid == 2661 then
    gobackeff = 194
    elseif item.itemid == 2663 or item.itemid == 2664 then
    gobackeff = 193
    elseif item.itemid == 2655 or item.itemid == 2656 then
    gobackeff = 195
    end

local effect = gobackeff

    if item.itemid == 2223 or item.itemid == 2240 or item.itemid == 2235 or item.itemid == 2221 or item.itemid == 2243 or item.itemid == 2193 or item.itemid == 2661 or item.itemid == 2664 or item.itemid == 2656 then
        for a, b in pairs(ginasios) do
            if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM
                doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
            return true
            end
        end
    end

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

    if #getCreatureSummons(cid) >= 1 then
        if getPlayerStorageValue(cid, 6547) >= 4 then
        return true
        end
    end

    if getPlayerStorageValue(cid, 4897) >= 7 then
    return true
    end

local z = getCreatureSummons(cid)[1]
local pokename = getCreatureName(z)
local mbk = msgunicaback:gsub("doka", pokename)

    if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then
        doTransformItem(item.uid, item.itemid-1)
        doCreatureSay(cid, mbk, TALKTYPE_SAY)
    return true
    end

local summom = getCreatureSummons(cid)
local maxh = pokes[getCreatureName(summom[1])].vida
local pct2 = ((getCreatureHealth(summom[1])) / (getCreatureMaxHealth(summom[1])))
local vids = ((getCreatureHealth(summom[1])) - 2)

    doCreatureAddHealth(summom[1], -vids)
    setCreatureMaxHealth(summom[1], maxh)
    doCreatureAddHealth(summom[1], ((maxh) * (pct2)))
    doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = ["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]")
    setPlayerStorageValue(cid, 61204, 0)
    setPlayerStorageValue(cid, 2, 0)
    doSendMagicEffect(getCreaturePosition(z), effect)
    doRemoveCreature(z)

    if getPlayerGroupId(cid) == 8 then
        setPlayerGroupId(cid, 1)
    elseif item.itemid == 2222 or item.itemid == 2239 or item.itemid == 2234 or item.itemid == 2220 or item.itemid == 2242 or item.itemid == 2192 or item.itemid == 2660 or item.itemid == 2663 or item.itemid == 2655 then
    return true
    end

    if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
        doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
    return TRUE
    end

    if not canSummon(cid) then
    return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
    end

    if getPlayerStorageValue(cid, 63215) >= 1 then
    return doPlayerSendCancel(cid, "You can't use pokeball while surfing.")
    end

    if getPlayerStorageValue(cid, 62314) >= 1 then
    return doPlayerSendCancel(cid, "You can't use pokeball while flying.")
    end

    if #getCreatureSummons(cid) >= 1 then
    return doPlayerSendCancel(cid, "You have already summoned a pokemon.")
    end

    for i,x in pairs(pokes) do
        if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then

            if getPlayerLevel(cid) < x.level then
                oPlayerSendCancel(cid, "You need level "..x.level.." or higher to use this pokemon.")
            return true
            end
        end
    end

local removed = doCreateItem(1285, 1, getThingPos(cid))

    if getItemAttribute(item.uid, "level") == False then
        doItemSetAttribute(item.uid, "level", 1) ----- aki e o level que o pokemon novo capturado recebe no primeiro goback
    else
        doItemSetAttribute(item.uid, "description", " Contains a "..getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1).." Level : "..getItemAttribute(item.uid, "level").."")
    end

        doSummonMonster(cid, i)

local pk = getCreatureSummons(cid)[1]
    doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), false)
    doRemoveItem(removed, 1)
    doCreatureSetLookDir(pk, 2)
local maxh = pokes[getCreatureName(pk)].vida
local levellife = ((getPlayerLevel(cid)) * (pokes[getCreatureName(pk)].cons))
local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/"))
    doConvinceCreature(cid, pk)
    doCreatureAddHealth(pk, health-maxh)
local pct = ((getCreatureHealth(pk)) / (getCreatureMaxHealth(pk)))
local vidis = (getCreatureHealth(pk))
    setCreatureMaxHealth(pk, ((maxh) + (levellife)))
    doCreatureAddHealth(pk, 2)
    doCreatureAddHealth(pk, -vidis)

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 2 then --- numero do level
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+100) ----- quantida de hp que ganha por level
    end

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 3 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+200)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 4 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+300)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 5 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+400)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 6 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+500)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 7 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+600)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 8 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+700)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 9 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+800)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 10 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+900)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 11 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1000)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 12 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1100)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 13 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1200)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 14 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1300)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 15 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1400)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 16 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1500)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 17 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1600)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 18 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1700)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 19 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1800)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 20 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1900)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 21 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2000)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 22 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2100)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 23 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2200)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 24 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2300)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 25 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2400)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 26 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2500)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 27 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2600)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 28 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2700)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 29 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2800)
    end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
    if getItemAttribute(feet.uid, "level") == 30 then
        setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+3000)
    end

    doCreatureAddHealth(pk, ((getCreatureMaxHealth(pk)) * (pct)) - 2)
    doTransformItem(item.uid, item.itemid+1)

    if getPlayerGroupId(cid) == 1 then
        setPlayerGroupId(cid, 8)
    end

local pokename = getCreatureName(getCreatureSummons(cid)[1])
local mgo = msgunicago:gsub("doka", pokename)
    doCreatureSay(cid, mgo, TALKTYPE_SAY)
    doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")))
    doSendMagicEffect(getCreaturePosition(pk), effect)
    setPlayerStorageValue(cid, 61204, 1)
    registerCreatureEvent(pk, "DiePoke")
    registerCreatureEvent(pk, "Exp")
    if getItemAttribute(item.uid, "levell") == False then
        doItemSetAttribute(item.uid, "levell", 0)
    return TRUE
    end

if getItemText(item.uid) == 3 then
doCreatureSetSkullType(pk, 4)
else
doCreatureSetSkullType(pk, getItemText(item.uid))
end

if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then
return true
end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1
or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1  then    --alterado v1.9 <<
   return true
end

local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use

local effect = pokeballs[btype].effect
    if not effect then
        effect = 21
    end

unLock(item.uid) --alterado v1.8

if item.itemid == usando then

    if getPlayerStorageValue(cid, 990) == 1 then -- GYM
        doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
    return true
    end
    if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then     --alterado v1.6
       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
          BackTeam(cid)
       end
    end
    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
       doPlayerSendCancel(cid, "You can't do that while is controling a mind")
       return true     --alterado v1.5
    end
    if #getCreatureSummons(cid) <= 0 then
        if isInArray(pokeballs[btype].all, item.itemid) then
            doTransformItem(item.uid, pokeballs[btype].off)
            doItemSetAttribute(item.uid, "hp", 0)
            doPlayerSendCancel(cid, "This pokemon is fainted.")
            return true
        end
    end

    local cd = getCD(item.uid, "blink", 30)
    if cd > 0 then
       setCD(item.uid, "blink", 0)
    end

    local z = getCreatureSummons(cid)[1]

    if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
       return true
    end
    doReturnPokemon(cid, z, item, effect)

elseif item.itemid == pokeballs[btype].on then

    if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
        doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
    return TRUE
    end

    local thishp = getItemAttribute(item.uid, "hp")

    if getItemAttribute(item.uid, "hp") == 0 then
        if isInArray(pokeballs[btype].all, item.itemid) then
            doTransformItem(item.uid, pokeballs[btype].off)
            doItemSetAttribute(item.uid, "hp", 0)
            doPlayerSendCancel(cid, "This pokemon is fainted.")
            return true
        end
    end

    local pokemon = getItemAttribute(item.uid, "poke")

    if not pokes[pokemon] then
    return true
    end

    local x = pokes[pokemon]
    local boost = getItemAttribute(item.uid, "boost") or 0

    if getPlayerLevel(cid) < (x.level) then
       doPlayerSendCancel(cid, "You need level "..(x.level).." to use this pokemon.")
       return true
    end

    local pk = getCreatureSummons(cid)[1]

    doSummonMonster(cid, pokemon)
    doItemSetAttribute(item.uid, "pokeballusada", 0)

    local pk = getCreatureSummons(cid)[1]
    if not isCreature(pk) then
    return true
    end


    if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited

        local left = getItemAttribute(item.uid, "transLeft")
        local name = getItemAttribute(item.uid, "transName")

        if left and left > 0 then
            setPlayerStorageValue(pk, 1010, name)
            doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
            addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
            doItemSetAttribute(item.uid, "transBegin", os.clock())
        else
            setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto")     --edited
        end
    end

    if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false)
    end

    doCreatureSetLookDir(pk, 2)
    doCreatureSetNick(pk, nick)
    adjustStatus(pk, item.uid, true, true, true)
    doAddPokemonInOwnList(cid, pokemon)

    doTransformItem(item.uid, item.itemid+1)

    local pokename = getPokeName(pk) --alterado v1.7

    local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
    local mgoen = gobackmsgsen[math.random(1, #gobackmsgsen)].go:gsub("doka", pokename)
    local mgoes = gobackmsgses[math.random(1, #gobackmsgses)].go:gsub("doka", pokename)
    if getPlayerLanguage(cid) == 2 then
    doCreatureSay(cid, mgoen, 19)
    end
    if getPlayerLanguage(cid) == 0 then
    doCreatureSay(cid, mgo, 19)
    end
    if getPlayerLanguage(cid) == 1 then
    doCreatureSay(cid, mgoes, 19)
    end

    -- doItemSetAttribute(item.uid, "gender", math.random(3, 4))
    doSendMagicEffect(getCreaturePosition(pk), effect)

    if useOTClient then
       doPlayerSendCancel(cid, '12//,show') --alterado v1.7
    end

local pk = getCreatureSummons(cid)[1]
                local pb = getPlayerSlotItem(cid, 8).uid
                local look = getItemAttribute(pb,"addon")
                if not getItemAttribute(pb,"addon") then
                                doSetItemAttribute(pb,"addon",0)

                end
                if getItemAttribute(pb,"addon") > 0 then
                                doSetCreatureOutfit(pk, {lookType = look}, -1)

                end

else

    doPlayerSendCancel(cid, "This pokemon is fainted.")

end

    if useKpdoDlls then
        doUpdateMoves(cid)
    end
return true
end
 

 

Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

 

goback.lua

Link para o post
Compartilhar em outros sites

Pelo que eu consegui entender.. a função tem como parâmetro uma string e a váriavel "pokename" está retornando um table de summons(pokemons) e tem que retornar uma string(que é o nome do primeiro pokemon)... eu não tenho ot pokemon,eu fiz a modificação sem testar. Então testa ai!

local EFFECTS = {
	--[OutfitID] = {Effect}
	["Magmar"] = 35,
	["Jynx"] = 17,          --alterado v1.5
	["Shiny Jynx"] = 17,
    ["Piloswine"] = 205,  --alterado v1.8
    ["Swinub"] = 205,
}
local pokes = {

["Bulbasaur"] = {level = 20, cons = 7, vida = 700},
["Ivysaur"] = {level = 40, cons = 10, vida = 3000},
["Venusaur"] = {level = 85, cons = 15, vida = 5200},
["Charmander"] = {level = 20, cons = 7, vida = 970},
["Charmeleon"] = {level = 40, cons = 10, vida = 2900},
["Charizard"] = {level = 85, cons = 15, vida = 5200},
["Squirtle"] = {level = 20, cons = 7, vida = 650},
["Wartortle"] = {level = 40, cons = 10, vida = 2300},
["Blastoise"] = {level = 85, cons = 15, vida = 5200},
["Caterpie"] = {level = 1, cons = 5, vida = 200},
["Metapod"] = {level = 10, cons = 10, vida = 405},
["Butterfree"] = {level = 30, cons = 15, vida = 2500},
["Weedle"] = {level = 1, cons = 5, vida = 325},
["Kakuna"] = {level = 10, cons = 10, vida = 900},
["Beedrill"] = {level = 30, cons = 15, vida = 1900},
["Pidgey"] = {level = 1, cons = 6, vida = 380},
["Pidgeotto"] = {level = 20, cons = 10, vida = 1400},
["Pidgeot"] = {level = 65, cons = 15, vida = 3800},
["Rattata"] = {level = 1, cons = 5, vida = 350},
["Raticate"] = {level = 20, cons = 10, vida = 900},
["Spearow"] = {level = 5, cons = 10, vida = 350},
["Fearow"] = {level = 50, cons = 15, vida = 3300},
["Ekans"] = {level = 12, cons = 10, vida = 600},
["Arbok"] = {level = 30, cons = 15, vida = 2300},
["Pikachu"] = {level = 20, cons = 10, vida = 1250},
["Raichu"] = {level = 50, cons = 15, vida = 3500},
["Sandshrew"] = {level = 18, cons = 10, vida = 700},
["Sandslash"] = {level = 55, cons = 15, vida = 3400},
["Nidoran Female"] = {level = 10, cons = 8, vida = 600},
["Nidorina"] = {level = 25, cons = 12, vida = 2135},
["Nidoqueen"] = {level = 65, cons = 15, vida = 6445},
["Nidoran Male"] = {level = 10, cons = 8, vida = 620},
["Nidorino"] = {level = 25, cons = 12, vida = 2125},
["Nidoking"] = {level = 65, cons = 15, vida = 4200},
["Clefairy"] = {level = 10, cons = 10, vida = 1400},
["Clefable"] = {level = 35, cons = 15, vida = 2400},
["Vulpix"] = {level = 20, cons = 7, vida = 400},
["Ninetales"] = {level = 65, cons = 15, vida = 3400},
["Jigglypuff"] = {level = 10, cons = 10, vida = 500},
["Wigglytuff"] = {level = 42, cons = 15, vida = 2900},
["Zubat"] = {level = 5, cons = 8, vida = 450},
["Golbat"] = {level = 30, cons = 10, vida = 1900},
["Oddish"] = {level = 5, cons = 6, vida = 450},
["Gloom"] = {level = 18, cons = 10, vida = 1400},
["Vileplume"] = {level = 50, cons = 15, vida = 3300},
["Paras"] = {level = 1, cons = 5, vida = 400},
["Parasect"] = {level = 50, cons = 10, vida = 2500},
["Venonat"] = {level = 18, cons = 10, vida = 1350},
["Venomoth"] = {level = 50, cons = 15, vida = 3000},
["Diglett"] = {level = 5, cons = 7, vida = 470},
["Dugtrio"] = {level = 35, cons = 10, vida = 2400},
["Meowth"] = {level = 12, cons = 10, vida = 4000},
["Persian"] = {level = 30, cons = 12, vida = 1000},
["Psyduck"] = {level = 12, cons = 10, vida = 800},
["Golduck"] = {level = 55, cons = 12, vida = 3880},
["Mankey"] = {level = 10, cons = 8, vida = 1050},
["Primeape"] = {level = 45, cons = 10, vida = 3000},
["Growlithe"] = {level = 20, cons = 10, vida = 1000},
["Arcanine"] = {level = 80, cons = 15, vida = 6000},
["Poliwag"] = {level = 5, cons = 5, vida = 200},
["Poliwhirl"] = {level = 20, cons = 10, vida = 1200},
["Poliwrath"] = {level = 65, cons = 15, vida = 4400},
["Abra"] = {level = 15, cons = 8, vida = 620},
["Kadabra"] = {level = 50, cons = 10, vida = 2500},
["Alakazam"] = {level = 80, cons = 15, vida = 4000},
["Machop"] = {level = 18, cons = 8, vida = 1100},
["Machoke"] = {level = 40, cons = 10, vida = 2850},
["Machamp"] = {level = 70, cons = 15, vida = 6100},
["Bellsprout"] = {level = 1, cons = 6, vida = 420},
["Weepinbell"] = {level = 18, cons = 10, vida = 1100},
["Victreebel"] = {level = 50, cons = 15, vida = 4000},
["Tentacool"] = {level = 12, cons = 8, vida = 725},
["Tentacruel"] = {level = 80, cons = 15, vida = 7050},
["Geodude"] = {level = 1, cons = 10, vida = 700},
["Graveler"] = {level = 40, cons = 12, vida = 3000},
["Golem"] = {level = 70, cons = 15, vida = 6500},
["Ponyta"] = {level = 20, cons = 10, vida = 1000},
["Rapidash"] = {level = 60, cons = 15, vida = 3000},
["Slowpoke"] = {level = 12, cons = 10, vida = 600},
["Slowbro"] = {level = 45, cons = 15, vida = 1500},
["Magnemite"] = {level = 15, cons = 10, vida = 450},
["Magneton"] = {level = 40, cons = 15, vida = 1750},
["Farfetchd"] = {level = 40, cons = 15, vida = 3000},
["Doduo"] = {level = 12, cons = 10, vida = 600},
["Dodrio"] = {level = 45, cons = 15, vida = 2650},
["Seel"] = {level = 20, cons = 10, vida = 750},
["Dewgong"] = {level = 65, cons = 15, vida = 5200},
["Grimer"] = {level = 12, cons = 10, vida = 600},
["Muk"] = {level = 30, cons = 15, vida = 2400},
["Shellder"] = {level = 5, cons = 10, vida = 800},
["Cloyster"] = {level = 65, cons = 15, vida = 4000},
["Gastly"] = {level = 18, cons = 10, vida = 850},
["Haunter"] = {level = 45, cons = 12, vida = 2500},
["Gengar"] = {level = 80, cons = 15, vida = 7000},
["Onix"] = {level = 50, cons = 15, vida = 3000},
["Crystal Onix"] = {level = 50, cons = 20, vida = 8300},
["Drowzee"] = {level = 22, cons = 10, vida = 1150},
["Hypno"] = {level = 50, cons = 15, vida = 1500},
["Krabby"] = {level = 5, cons = 45, vida = 500},
["Kingler"] = {level = 35, cons = 15, vida = 2750},
["Voltorb"] = {level = 1, cons = 10, vida = 620},
["Electrode"] = {level = 38, cons = 15, vida = 2000},
["Exeggcute"] = {level = 8, cons = 10, vida = 800},
["Exeggutor"] = {level = 48, cons = 15, vida = 2300},
["Cubone"] = {level = 18, cons = 10, vida = 900},
["Marowak"] = {level = 45, cons = 15, vida = 1400},
["Hitmonlee"] = {level = 60, cons = 15, vida = 5000},
["Hitmonchan"] = {level = 60, cons = 20, vida = 4000},
["Lickitung"] = {level = 45, cons = 10, vida = 3000},
["Koffing"] = {level = 15, cons = 10, vida = 700},
["Weezing"] = {level = 30, cons = 15, vida = 1250},
["Rhyhorn"] = {level = 35, cons = 10, vida = 2900},
["Rhydon"] = {level = 65, cons = 15, vida = 4200},
["Chansey"] = {level = 60, cons = 10, vida = 2500},
["Tangela"] = {level = 40, cons = 8, vida = 800},
["Kangaskhan"] = {level = 60, cons = 12, vida = 5000},
["Horsea"] = {level = 5, cons = 10, vida = 300},
["Seadra"] = {level = 45, cons = 10, vida = 2000},
["Goldeen"] = {level = 10, cons = 10, vida = 800},
["Seaking"] = {level = 25, cons = 12, vida = 1300},
["Staryu"] = {level = 15, cons = 10, vida = 1050},
["Starmie"] = {level = 45, cons = 15, vida = 2000},
["Mr Mime"] = {level = 60, cons = 15, vida = 3500},
["Scyther"] = {level = 70, cons = 15, vida = 5000},
["Jynx"] = {level = 65, cons = 15, vida = 4500},
["Elekid"] = {level = 30, cons = 15, vida = 1500},
["Electabuzz"] = {level = 70, cons = 15, vida = 4000},
["Magmar"] = {level = 70, cons = 15, vida = 4000},
["Pinsir"] = {level = 42, cons = 15, vida = 2000},
["Tauros"] = {level = 40, cons = 10, vida = 2400},
["Magikarp"] = {level = 1, cons = 5, vida = 120},
["Gyarados"] = {level = 75, cons = 15, vida = 3000},
["Lapras"] = {level = 70, cons = 15, vida = 5000},
["Ditto"] = {level = 40, cons = 10, vida = 1500},
["Eevee"] = {level = 20, cons = 15, vida = 1500},
["Vaporeon"] = {level = 55, cons = 15, vida = 3500},
["Jolteon"] = {level = 55, cons = 15, vida = 3500},
["Flareon"] = {level = 55, cons = 15, vida = 3500},
["Porygon"] = {level = 45, cons = 15, vida = 2000},
["Omanyte"] = {level = 20, cons = 15, vida = 1000},
["Omastar"] = {level = 70, cons = 15, vida = 3000},
["Kabuto"] = {level = 20, cons = 10, vida = 1300},
["Kabutops"] = {level = 70, cons = 15, vida = 5000},
["Aerodactyl"] = {level = 100, cons = 15, vida = 5000},
["Snorlax"] = {level = 85, cons = 15, vida = 4000},
["Articuno"] = {level = 120, cons = 15, vida = 11000},
["Zapdos"] = {level = 120, cons = 15, vida = 11000},
["Moltres"] = {level = 120, cons = 15, vida = 11000},
["Dratini"] = {level = 10, cons = 15, vida = 800},
["Dragonair"] = {level = 70, cons = 15, vida = 3000},
["Dragonite"] = {level = 100, cons = 15, vida = 4000},
["Mewtwo"] = {level = 100, cons = 15, vida = 18000},
["Mew"] = {level = 100, cons = 15, vida = 7200},
["Elder Charizard"] = {level = 10, cons = 15, vida = 3000},
["Shiny Abra"] = {level = 14, cons = 15, vida = 1000},
["Shiny Arcanine"] = {level = 70, cons = 15, vida = 10000},
["Shiny Beedrill"] = {level = 24, cons = 15, vida = 3000},
["Shiny Blastoise"] = {level = 70, cons = 15, vida = 8000},
["Shiny Butterfree"] = {level = 34, cons = 15, vida = 485},
["Shiny Dratini"] = {level = 30, cons = 15, vida = 2000},
["Shiny Electabuzz"] = {level = 90, cons = 15, vida = 4200},
["Shiny Electrode"] = {level = 48, cons = 15, vida = 4000},
["Shiny Farfetchd"] = {level = 38, cons = 15, vida = 5000},
["Shiny Grimer"] = {level = 16, cons = 15, vida = 2000},
["Shiny Hitmonchan"] = {level = 70, cons = 15, vida = 8000},
["Shiny Hitmonlee"] = {level = 120, cons = 15, vida = 8000},
["Shiny Horsea"] = {level = 14, cons = 15, vida = 1080},
["Shiny Jynx"] = {level = 70, cons = 15, vida = 5000},
["Shiny Kingler"] = {level = 24, cons = 15, vida = 4000},
["Shiny Krabby"] = {level = 70, cons = 15, vida = 700},
["Shiny Magikarp"] = {level = 34, cons = 15, vida = 180},
["Shiny Muk"] = {level = 30, cons = 15, vida = 3500},
["Shiny Oddish"] = {level = 90, cons = 15, vida = 700},
["Shiny Paras"] = {level = 48, cons = 15, vida = 600},
["Shiny Parasect"] = {level = 38, cons = 15, vida = 3500},
["Shiny Raichu"] = {level = 16, cons = 15, vida = 4500},
["Shiny Rattata"] = {level = 70, cons = 15, vida = 600},
["Shiny Raticate"] = {level = 38, cons = 15, vida = 1200},
["Shiny Scyther"] = {level = 16, cons = 15, vida = 7000},
["Shiny Seadra"] = {level = 70, cons = 15, vida = 2500},
["Shiny Tentacool"] = {level = 120, cons = 15, vida = 1000},
["Shiny Tentacruel"] = {level = 14, cons = 15, vida = 9000},
["Shiny Venomoth"] = {level = 70, cons = 15, vida = 4500},
["Shiny Venusaur"] = {level = 24, cons = 15, vida = 6000},
["Shiny Voltorb"] = {level = 70, cons = 15, vida = 1000},
["Shiny Zubat"] = {level = 34, cons = 15, vida = 990},
}

local msgunica = true
local msgunicago1, msgunicaback1 = "Go, doka!", "Come back, doka!"
local msgunicago2, msgunicaback2 = "Let's do it, doka!", "Thanks for helping, doka!"
local msgunicago3, msgunicaback3 = "I choose you, doka!", "That's enough, come back!"
local msgunicago4, msgunicaback4 = "I need your help, doka!", "You were great, doka!"
local msgunicago5, msgunicaback5 = "Let's fight, doka!", "Excellent work, doka!"
local msgunicago6, msgunicaback6 = "It's battle time, doka!", "Well done, doka!"

function onUse(cid, item, frompos, item2, topos)

	if #getCreatureSummons(cid) >= 1 and getPlayerStorageValue(getCreatureSummons(cid)[1], 33) >= 1 then
	return true
	end
local random2 = math.random(1,6)
	if random2 == 1 then
	msgunicaback = msgunicaback1
	elseif random2 == 2 then
	msgunicaback = msgunicaback2
	elseif random2 == 3 then
	msgunicaback = msgunicaback3
	elseif random2 == 4 then
	msgunicaback = msgunicaback4
	elseif random2 == 5 then
	msgunicaback = msgunicaback5
	elseif random2 == 6 then
	msgunicaback = msgunicaback6
	end
local random = math.random(1,6)
	if random == 1 then
	msgunicago = msgunicago1
	elseif random == 2 then
	msgunicago = msgunicago2
	elseif random == 3 then
	msgunicago = msgunicago3
	elseif random == 4 then
	msgunicago = msgunicago4
	elseif random == 5 then
	msgunicago = msgunicago5
	elseif random == 6 then
	msgunicago = msgunicago6
	end

	if item.itemid == 2222 or item.itemid == 2223 then
	gobackeff = 10
	elseif item.itemid == 2239 or item.itemid == 2240 then
	gobackeff = 189
	elseif item.itemid == 2234 or item.itemid == 2235 then
	gobackeff = 190
	elseif item.itemid == 2220 or item.itemid == 2221 then
	gobackeff = 191
	elseif item.itemid == 2242 or item.itemid == 2243 then
	gobackeff = 226
	elseif item.itemid == 2192 or item.itemid == 2193 then
	gobackeff = 223
	elseif item.itemid == 2660 or item.itemid == 2661 then
	gobackeff = 194
	elseif item.itemid == 2663 or item.itemid == 2664 then
	gobackeff = 193
	elseif item.itemid == 2655 or item.itemid == 2656 then
	gobackeff = 195
	end

local effect = gobackeff

	if item.itemid == 2223 or item.itemid == 2240 or item.itemid == 2235 or item.itemid == 2221 or item.itemid == 2243 or item.itemid == 2193 or item.itemid == 2661 or item.itemid == 2664 or item.itemid == 2656 then
		for a, b in pairs(ginasios) do
			if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM
				doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
			return true
			end
		end
	end

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

	if #getCreatureSummons(cid) >= 1 then
		if getPlayerStorageValue(cid, 6547) >= 4 then
		return true
		end
	end

	if getPlayerStorageValue(cid, 4897) >= 7 then
	return true
	end

local z = getCreatureSummons(cid)[1]
local pokename = getCreatureName(z)[1]
local mbk = msgunicaback:gsub("doka", pokename)

	if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then
		doTransformItem(item.uid, item.itemid-1)
		doCreatureSay(cid, mbk, TALKTYPE_SAY)
	return true
	end

local summom = getCreatureSummons(cid)
local maxh = pokes[getCreatureName(summom[1])].vida
local pct2 = ((getCreatureHealth(summom[1])) / (getCreatureMaxHealth(summom[1])))
local vids = ((getCreatureHealth(summom[1])) - 2)

	doCreatureAddHealth(summom[1], -vids)
	setCreatureMaxHealth(summom[1], maxh)
	doCreatureAddHealth(summom[1], ((maxh) * (pct2)))
	doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = ["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]")
	setPlayerStorageValue(cid, 61204, 0)
	setPlayerStorageValue(cid, 2, 0)
	doSendMagicEffect(getCreaturePosition(z), effect)
	doRemoveCreature(z)

	if getPlayerGroupId(cid) == 8 then
		setPlayerGroupId(cid, 1)
	elseif item.itemid == 2222 or item.itemid == 2239 or item.itemid == 2234 or item.itemid == 2220 or item.itemid == 2242 or item.itemid == 2192 or item.itemid == 2660 or item.itemid == 2663 or item.itemid == 2655 then
	return true
	end

	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
		doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
	return TRUE
	end

	if not canSummon(cid) then
	return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
	end

	if getPlayerStorageValue(cid, 63215) >= 1 then
	return doPlayerSendCancel(cid, "You can't use pokeball while surfing.")
	end

	if getPlayerStorageValue(cid, 62314) >= 1 then
	return doPlayerSendCancel(cid, "You can't use pokeball while flying.")
	end

	if #getCreatureSummons(cid) >= 1 then
	return doPlayerSendCancel(cid, "You have already summoned a pokemon.")
	end

	for i,x in pairs(pokes) do
		if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then

			if getPlayerLevel(cid) < x.level then
				oPlayerSendCancel(cid, "You need level "..x.level.." or higher to use this pokemon.")
			return true
			end
		end
	end

local removed = doCreateItem(1285, 1, getThingPos(cid))

	if getItemAttribute(item.uid, "level") == False then
		doItemSetAttribute(item.uid, "level", 1) ----- aki e o level que o pokemon novo capturado recebe no primeiro goback
	else
		doItemSetAttribute(item.uid, "description", " Contains a "..getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1).." Level : "..getItemAttribute(item.uid, "level").."")
	end

		doSummonMonster(cid, i)

local pk = getCreatureSummons(cid)[1]
	doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), false)
	doRemoveItem(removed, 1)
	doCreatureSetLookDir(pk, 2)
local maxh = pokes[getCreatureName(pk)].vida
local levellife = ((getPlayerLevel(cid)) * (pokes[getCreatureName(pk)].cons))
local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/"))
	doConvinceCreature(cid, pk)
	doCreatureAddHealth(pk, health-maxh)
local pct = ((getCreatureHealth(pk)) / (getCreatureMaxHealth(pk)))
local vidis = (getCreatureHealth(pk))
	setCreatureMaxHealth(pk, ((maxh) + (levellife)))
	doCreatureAddHealth(pk, 2)
	doCreatureAddHealth(pk, -vidis)

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 2 then --- numero do level
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+100) ----- quantida de hp que ganha por level
	end

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 3 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+200)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 4 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+300)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 5 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+400)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 6 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+500)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 7 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+600)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 8 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+700)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 9 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+800)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 10 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+900)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 11 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1000)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 12 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1100)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 13 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1200)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 14 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1300)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 15 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1400)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 16 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1500)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 17 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1600)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 18 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1700)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 19 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1800)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 20 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1900)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 21 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2000)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 22 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2100)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 23 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2200)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 24 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2300)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 25 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2400)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 26 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2500)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 27 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2600)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 28 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2700)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 29 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2800)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 30 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+3000)
	end

	doCreatureAddHealth(pk, ((getCreatureMaxHealth(pk)) * (pct)) - 2)
	doTransformItem(item.uid, item.itemid+1)

	if getPlayerGroupId(cid) == 1 then
		setPlayerGroupId(cid, 8)
	end

local pokename = getCreatureName(getCreatureSummons(cid)[1])
local mgo = msgunicago:gsub("doka", pokename)
	doCreatureSay(cid, mgo, TALKTYPE_SAY)
	doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")))
	doSendMagicEffect(getCreaturePosition(pk), effect)
	setPlayerStorageValue(cid, 61204, 1)
	registerCreatureEvent(pk, "DiePoke")
	registerCreatureEvent(pk, "Exp")
	if getItemAttribute(item.uid, "levell") == False then
		doItemSetAttribute(item.uid, "levell", 0)
	return TRUE
	end

if getItemText(item.uid) == 3 then
doCreatureSetSkullType(pk, 4)
else
doCreatureSetSkullType(pk, getItemText(item.uid))
end

if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then
return true
end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1
or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1  then    --alterado v1.9 <<
   return true
end

local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use

local effect = pokeballs[btype].effect
	if not effect then
		effect = 21
	end

unLock(item.uid) --alterado v1.8

if item.itemid == usando then

	if getPlayerStorageValue(cid, 990) == 1 then -- GYM
		doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
	return true
	end
	if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then     --alterado v1.6
       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
          BackTeam(cid)
       end
    end
    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
       doPlayerSendCancel(cid, "You can't do that while is controling a mind")
       return true     --alterado v1.5
    end
    if #getCreatureSummons(cid) <= 0 then
		if isInArray(pokeballs[btype].all, item.itemid) then
			doTransformItem(item.uid, pokeballs[btype].off)
			doItemSetAttribute(item.uid, "hp", 0)
			doPlayerSendCancel(cid, "This pokemon is fainted.")
		    return true
		end
	end

    local cd = getCD(item.uid, "blink", 30)
    if cd > 0 then
       setCD(item.uid, "blink", 0)
    end

	local z = getCreatureSummons(cid)[1]

	if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
	   return true
	end
	doReturnPokemon(cid, z, item, effect)

elseif item.itemid == pokeballs[btype].on then

	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
		doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
	return TRUE
	end

	local thishp = getItemAttribute(item.uid, "hp")

	if getItemAttribute(item.uid, "hp") == 0 then
		if isInArray(pokeballs[btype].all, item.itemid) then
			doTransformItem(item.uid, pokeballs[btype].off)
			doItemSetAttribute(item.uid, "hp", 0)
			doPlayerSendCancel(cid, "This pokemon is fainted.")
		    return true
		end
	end

	local pokemon = getItemAttribute(item.uid, "poke")

	if not pokes[pokemon] then
	return true
	end

	local x = pokes[pokemon]
	local boost = getItemAttribute(item.uid, "boost") or 0

	if getPlayerLevel(cid) < (x.level) then
	   doPlayerSendCancel(cid, "You need level "..(x.level).." to use this pokemon.")
	   return true
	end

	local pk = getCreatureSummons(cid)[1]

	doSummonMonster(cid, pokemon)
	doItemSetAttribute(item.uid, "pokeballusada", 0)

	local pk = getCreatureSummons(cid)[1]
	if not isCreature(pk) then
	return true
	end


	if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited

		local left = getItemAttribute(item.uid, "transLeft")
		local name = getItemAttribute(item.uid, "transName")

		if left and left > 0 then
			setPlayerStorageValue(pk, 1010, name)
			doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
			addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
			doItemSetAttribute(item.uid, "transBegin", os.clock())
		else
			setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto")     --edited
		end
	end

	if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false)
	end

	doCreatureSetLookDir(pk, 2)
	doCreatureSetNick(pk, nick)
	adjustStatus(pk, item.uid, true, true, true)
	doAddPokemonInOwnList(cid, pokemon)

	doTransformItem(item.uid, item.itemid+1)

	local pokename = getPokeName(pk) --alterado v1.7

	local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
	local mgoen = gobackmsgsen[math.random(1, #gobackmsgsen)].go:gsub("doka", pokename)
	local mgoes = gobackmsgses[math.random(1, #gobackmsgses)].go:gsub("doka", pokename)
	if getPlayerLanguage(cid) == 2 then
	doCreatureSay(cid, mgoen, 19)
	end
	if getPlayerLanguage(cid) == 0 then
	doCreatureSay(cid, mgo, 19)
	end
	if getPlayerLanguage(cid) == 1 then
	doCreatureSay(cid, mgoes, 19)
	end

	-- doItemSetAttribute(item.uid, "gender", math.random(3, 4))
	doSendMagicEffect(getCreaturePosition(pk), effect)

	if useOTClient then
	   doPlayerSendCancel(cid, '12//,show') --alterado v1.7
    end

local pk = getCreatureSummons(cid)[1]
                local pb = getPlayerSlotItem(cid, 8).uid
                local look = getItemAttribute(pb,"addon")
                if not getItemAttribute(pb,"addon") then
                                doSetItemAttribute(pb,"addon",0)

                end
                if getItemAttribute(pb,"addon") > 0 then
                                doSetCreatureOutfit(pk, {lookType = look}, -1)

                end

else

    doPlayerSendCancel(cid, "This pokemon is fainted.")

end

	if useKpdoDlls then
		doUpdateMoves(cid)
	end
return true
end


 

Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +?

Link para o post
Compartilhar em outros sites
Em 28/06/2019 em 18:20, Rayo disse:

Pelo que eu consegui entender.. a função tem como parâmetro uma string e a váriavel "pokename" está retornando um table de summons(pokemons) e tem que retornar uma string(que é o nome do primeiro pokemon)... eu não tenho ot pokemon,eu fiz a modificação sem testar. Então testa ai!


local EFFECTS = {
	--[OutfitID] = {Effect}
	["Magmar"] = 35,
	["Jynx"] = 17,          --alterado v1.5
	["Shiny Jynx"] = 17,
    ["Piloswine"] = 205,  --alterado v1.8
    ["Swinub"] = 205,
}
local pokes = {

["Bulbasaur"] = {level = 20, cons = 7, vida = 700},
["Ivysaur"] = {level = 40, cons = 10, vida = 3000},
["Venusaur"] = {level = 85, cons = 15, vida = 5200},
["Charmander"] = {level = 20, cons = 7, vida = 970},
["Charmeleon"] = {level = 40, cons = 10, vida = 2900},
["Charizard"] = {level = 85, cons = 15, vida = 5200},
["Squirtle"] = {level = 20, cons = 7, vida = 650},
["Wartortle"] = {level = 40, cons = 10, vida = 2300},
["Blastoise"] = {level = 85, cons = 15, vida = 5200},
["Caterpie"] = {level = 1, cons = 5, vida = 200},
["Metapod"] = {level = 10, cons = 10, vida = 405},
["Butterfree"] = {level = 30, cons = 15, vida = 2500},
["Weedle"] = {level = 1, cons = 5, vida = 325},
["Kakuna"] = {level = 10, cons = 10, vida = 900},
["Beedrill"] = {level = 30, cons = 15, vida = 1900},
["Pidgey"] = {level = 1, cons = 6, vida = 380},
["Pidgeotto"] = {level = 20, cons = 10, vida = 1400},
["Pidgeot"] = {level = 65, cons = 15, vida = 3800},
["Rattata"] = {level = 1, cons = 5, vida = 350},
["Raticate"] = {level = 20, cons = 10, vida = 900},
["Spearow"] = {level = 5, cons = 10, vida = 350},
["Fearow"] = {level = 50, cons = 15, vida = 3300},
["Ekans"] = {level = 12, cons = 10, vida = 600},
["Arbok"] = {level = 30, cons = 15, vida = 2300},
["Pikachu"] = {level = 20, cons = 10, vida = 1250},
["Raichu"] = {level = 50, cons = 15, vida = 3500},
["Sandshrew"] = {level = 18, cons = 10, vida = 700},
["Sandslash"] = {level = 55, cons = 15, vida = 3400},
["Nidoran Female"] = {level = 10, cons = 8, vida = 600},
["Nidorina"] = {level = 25, cons = 12, vida = 2135},
["Nidoqueen"] = {level = 65, cons = 15, vida = 6445},
["Nidoran Male"] = {level = 10, cons = 8, vida = 620},
["Nidorino"] = {level = 25, cons = 12, vida = 2125},
["Nidoking"] = {level = 65, cons = 15, vida = 4200},
["Clefairy"] = {level = 10, cons = 10, vida = 1400},
["Clefable"] = {level = 35, cons = 15, vida = 2400},
["Vulpix"] = {level = 20, cons = 7, vida = 400},
["Ninetales"] = {level = 65, cons = 15, vida = 3400},
["Jigglypuff"] = {level = 10, cons = 10, vida = 500},
["Wigglytuff"] = {level = 42, cons = 15, vida = 2900},
["Zubat"] = {level = 5, cons = 8, vida = 450},
["Golbat"] = {level = 30, cons = 10, vida = 1900},
["Oddish"] = {level = 5, cons = 6, vida = 450},
["Gloom"] = {level = 18, cons = 10, vida = 1400},
["Vileplume"] = {level = 50, cons = 15, vida = 3300},
["Paras"] = {level = 1, cons = 5, vida = 400},
["Parasect"] = {level = 50, cons = 10, vida = 2500},
["Venonat"] = {level = 18, cons = 10, vida = 1350},
["Venomoth"] = {level = 50, cons = 15, vida = 3000},
["Diglett"] = {level = 5, cons = 7, vida = 470},
["Dugtrio"] = {level = 35, cons = 10, vida = 2400},
["Meowth"] = {level = 12, cons = 10, vida = 4000},
["Persian"] = {level = 30, cons = 12, vida = 1000},
["Psyduck"] = {level = 12, cons = 10, vida = 800},
["Golduck"] = {level = 55, cons = 12, vida = 3880},
["Mankey"] = {level = 10, cons = 8, vida = 1050},
["Primeape"] = {level = 45, cons = 10, vida = 3000},
["Growlithe"] = {level = 20, cons = 10, vida = 1000},
["Arcanine"] = {level = 80, cons = 15, vida = 6000},
["Poliwag"] = {level = 5, cons = 5, vida = 200},
["Poliwhirl"] = {level = 20, cons = 10, vida = 1200},
["Poliwrath"] = {level = 65, cons = 15, vida = 4400},
["Abra"] = {level = 15, cons = 8, vida = 620},
["Kadabra"] = {level = 50, cons = 10, vida = 2500},
["Alakazam"] = {level = 80, cons = 15, vida = 4000},
["Machop"] = {level = 18, cons = 8, vida = 1100},
["Machoke"] = {level = 40, cons = 10, vida = 2850},
["Machamp"] = {level = 70, cons = 15, vida = 6100},
["Bellsprout"] = {level = 1, cons = 6, vida = 420},
["Weepinbell"] = {level = 18, cons = 10, vida = 1100},
["Victreebel"] = {level = 50, cons = 15, vida = 4000},
["Tentacool"] = {level = 12, cons = 8, vida = 725},
["Tentacruel"] = {level = 80, cons = 15, vida = 7050},
["Geodude"] = {level = 1, cons = 10, vida = 700},
["Graveler"] = {level = 40, cons = 12, vida = 3000},
["Golem"] = {level = 70, cons = 15, vida = 6500},
["Ponyta"] = {level = 20, cons = 10, vida = 1000},
["Rapidash"] = {level = 60, cons = 15, vida = 3000},
["Slowpoke"] = {level = 12, cons = 10, vida = 600},
["Slowbro"] = {level = 45, cons = 15, vida = 1500},
["Magnemite"] = {level = 15, cons = 10, vida = 450},
["Magneton"] = {level = 40, cons = 15, vida = 1750},
["Farfetchd"] = {level = 40, cons = 15, vida = 3000},
["Doduo"] = {level = 12, cons = 10, vida = 600},
["Dodrio"] = {level = 45, cons = 15, vida = 2650},
["Seel"] = {level = 20, cons = 10, vida = 750},
["Dewgong"] = {level = 65, cons = 15, vida = 5200},
["Grimer"] = {level = 12, cons = 10, vida = 600},
["Muk"] = {level = 30, cons = 15, vida = 2400},
["Shellder"] = {level = 5, cons = 10, vida = 800},
["Cloyster"] = {level = 65, cons = 15, vida = 4000},
["Gastly"] = {level = 18, cons = 10, vida = 850},
["Haunter"] = {level = 45, cons = 12, vida = 2500},
["Gengar"] = {level = 80, cons = 15, vida = 7000},
["Onix"] = {level = 50, cons = 15, vida = 3000},
["Crystal Onix"] = {level = 50, cons = 20, vida = 8300},
["Drowzee"] = {level = 22, cons = 10, vida = 1150},
["Hypno"] = {level = 50, cons = 15, vida = 1500},
["Krabby"] = {level = 5, cons = 45, vida = 500},
["Kingler"] = {level = 35, cons = 15, vida = 2750},
["Voltorb"] = {level = 1, cons = 10, vida = 620},
["Electrode"] = {level = 38, cons = 15, vida = 2000},
["Exeggcute"] = {level = 8, cons = 10, vida = 800},
["Exeggutor"] = {level = 48, cons = 15, vida = 2300},
["Cubone"] = {level = 18, cons = 10, vida = 900},
["Marowak"] = {level = 45, cons = 15, vida = 1400},
["Hitmonlee"] = {level = 60, cons = 15, vida = 5000},
["Hitmonchan"] = {level = 60, cons = 20, vida = 4000},
["Lickitung"] = {level = 45, cons = 10, vida = 3000},
["Koffing"] = {level = 15, cons = 10, vida = 700},
["Weezing"] = {level = 30, cons = 15, vida = 1250},
["Rhyhorn"] = {level = 35, cons = 10, vida = 2900},
["Rhydon"] = {level = 65, cons = 15, vida = 4200},
["Chansey"] = {level = 60, cons = 10, vida = 2500},
["Tangela"] = {level = 40, cons = 8, vida = 800},
["Kangaskhan"] = {level = 60, cons = 12, vida = 5000},
["Horsea"] = {level = 5, cons = 10, vida = 300},
["Seadra"] = {level = 45, cons = 10, vida = 2000},
["Goldeen"] = {level = 10, cons = 10, vida = 800},
["Seaking"] = {level = 25, cons = 12, vida = 1300},
["Staryu"] = {level = 15, cons = 10, vida = 1050},
["Starmie"] = {level = 45, cons = 15, vida = 2000},
["Mr Mime"] = {level = 60, cons = 15, vida = 3500},
["Scyther"] = {level = 70, cons = 15, vida = 5000},
["Jynx"] = {level = 65, cons = 15, vida = 4500},
["Elekid"] = {level = 30, cons = 15, vida = 1500},
["Electabuzz"] = {level = 70, cons = 15, vida = 4000},
["Magmar"] = {level = 70, cons = 15, vida = 4000},
["Pinsir"] = {level = 42, cons = 15, vida = 2000},
["Tauros"] = {level = 40, cons = 10, vida = 2400},
["Magikarp"] = {level = 1, cons = 5, vida = 120},
["Gyarados"] = {level = 75, cons = 15, vida = 3000},
["Lapras"] = {level = 70, cons = 15, vida = 5000},
["Ditto"] = {level = 40, cons = 10, vida = 1500},
["Eevee"] = {level = 20, cons = 15, vida = 1500},
["Vaporeon"] = {level = 55, cons = 15, vida = 3500},
["Jolteon"] = {level = 55, cons = 15, vida = 3500},
["Flareon"] = {level = 55, cons = 15, vida = 3500},
["Porygon"] = {level = 45, cons = 15, vida = 2000},
["Omanyte"] = {level = 20, cons = 15, vida = 1000},
["Omastar"] = {level = 70, cons = 15, vida = 3000},
["Kabuto"] = {level = 20, cons = 10, vida = 1300},
["Kabutops"] = {level = 70, cons = 15, vida = 5000},
["Aerodactyl"] = {level = 100, cons = 15, vida = 5000},
["Snorlax"] = {level = 85, cons = 15, vida = 4000},
["Articuno"] = {level = 120, cons = 15, vida = 11000},
["Zapdos"] = {level = 120, cons = 15, vida = 11000},
["Moltres"] = {level = 120, cons = 15, vida = 11000},
["Dratini"] = {level = 10, cons = 15, vida = 800},
["Dragonair"] = {level = 70, cons = 15, vida = 3000},
["Dragonite"] = {level = 100, cons = 15, vida = 4000},
["Mewtwo"] = {level = 100, cons = 15, vida = 18000},
["Mew"] = {level = 100, cons = 15, vida = 7200},
["Elder Charizard"] = {level = 10, cons = 15, vida = 3000},
["Shiny Abra"] = {level = 14, cons = 15, vida = 1000},
["Shiny Arcanine"] = {level = 70, cons = 15, vida = 10000},
["Shiny Beedrill"] = {level = 24, cons = 15, vida = 3000},
["Shiny Blastoise"] = {level = 70, cons = 15, vida = 8000},
["Shiny Butterfree"] = {level = 34, cons = 15, vida = 485},
["Shiny Dratini"] = {level = 30, cons = 15, vida = 2000},
["Shiny Electabuzz"] = {level = 90, cons = 15, vida = 4200},
["Shiny Electrode"] = {level = 48, cons = 15, vida = 4000},
["Shiny Farfetchd"] = {level = 38, cons = 15, vida = 5000},
["Shiny Grimer"] = {level = 16, cons = 15, vida = 2000},
["Shiny Hitmonchan"] = {level = 70, cons = 15, vida = 8000},
["Shiny Hitmonlee"] = {level = 120, cons = 15, vida = 8000},
["Shiny Horsea"] = {level = 14, cons = 15, vida = 1080},
["Shiny Jynx"] = {level = 70, cons = 15, vida = 5000},
["Shiny Kingler"] = {level = 24, cons = 15, vida = 4000},
["Shiny Krabby"] = {level = 70, cons = 15, vida = 700},
["Shiny Magikarp"] = {level = 34, cons = 15, vida = 180},
["Shiny Muk"] = {level = 30, cons = 15, vida = 3500},
["Shiny Oddish"] = {level = 90, cons = 15, vida = 700},
["Shiny Paras"] = {level = 48, cons = 15, vida = 600},
["Shiny Parasect"] = {level = 38, cons = 15, vida = 3500},
["Shiny Raichu"] = {level = 16, cons = 15, vida = 4500},
["Shiny Rattata"] = {level = 70, cons = 15, vida = 600},
["Shiny Raticate"] = {level = 38, cons = 15, vida = 1200},
["Shiny Scyther"] = {level = 16, cons = 15, vida = 7000},
["Shiny Seadra"] = {level = 70, cons = 15, vida = 2500},
["Shiny Tentacool"] = {level = 120, cons = 15, vida = 1000},
["Shiny Tentacruel"] = {level = 14, cons = 15, vida = 9000},
["Shiny Venomoth"] = {level = 70, cons = 15, vida = 4500},
["Shiny Venusaur"] = {level = 24, cons = 15, vida = 6000},
["Shiny Voltorb"] = {level = 70, cons = 15, vida = 1000},
["Shiny Zubat"] = {level = 34, cons = 15, vida = 990},
}

local msgunica = true
local msgunicago1, msgunicaback1 = "Go, doka!", "Come back, doka!"
local msgunicago2, msgunicaback2 = "Let's do it, doka!", "Thanks for helping, doka!"
local msgunicago3, msgunicaback3 = "I choose you, doka!", "That's enough, come back!"
local msgunicago4, msgunicaback4 = "I need your help, doka!", "You were great, doka!"
local msgunicago5, msgunicaback5 = "Let's fight, doka!", "Excellent work, doka!"
local msgunicago6, msgunicaback6 = "It's battle time, doka!", "Well done, doka!"

function onUse(cid, item, frompos, item2, topos)

	if #getCreatureSummons(cid) >= 1 and getPlayerStorageValue(getCreatureSummons(cid)[1], 33) >= 1 then
	return true
	end
local random2 = math.random(1,6)
	if random2 == 1 then
	msgunicaback = msgunicaback1
	elseif random2 == 2 then
	msgunicaback = msgunicaback2
	elseif random2 == 3 then
	msgunicaback = msgunicaback3
	elseif random2 == 4 then
	msgunicaback = msgunicaback4
	elseif random2 == 5 then
	msgunicaback = msgunicaback5
	elseif random2 == 6 then
	msgunicaback = msgunicaback6
	end
local random = math.random(1,6)
	if random == 1 then
	msgunicago = msgunicago1
	elseif random == 2 then
	msgunicago = msgunicago2
	elseif random == 3 then
	msgunicago = msgunicago3
	elseif random == 4 then
	msgunicago = msgunicago4
	elseif random == 5 then
	msgunicago = msgunicago5
	elseif random == 6 then
	msgunicago = msgunicago6
	end

	if item.itemid == 2222 or item.itemid == 2223 then
	gobackeff = 10
	elseif item.itemid == 2239 or item.itemid == 2240 then
	gobackeff = 189
	elseif item.itemid == 2234 or item.itemid == 2235 then
	gobackeff = 190
	elseif item.itemid == 2220 or item.itemid == 2221 then
	gobackeff = 191
	elseif item.itemid == 2242 or item.itemid == 2243 then
	gobackeff = 226
	elseif item.itemid == 2192 or item.itemid == 2193 then
	gobackeff = 223
	elseif item.itemid == 2660 or item.itemid == 2661 then
	gobackeff = 194
	elseif item.itemid == 2663 or item.itemid == 2664 then
	gobackeff = 193
	elseif item.itemid == 2655 or item.itemid == 2656 then
	gobackeff = 195
	end

local effect = gobackeff

	if item.itemid == 2223 or item.itemid == 2240 or item.itemid == 2235 or item.itemid == 2221 or item.itemid == 2243 or item.itemid == 2193 or item.itemid == 2661 or item.itemid == 2664 or item.itemid == 2656 then
		for a, b in pairs(ginasios) do
			if getPlayerStorageValue(cid, b.storage) == 1 then -- GYM
				doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
			return true
			end
		end
	end

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)

	if #getCreatureSummons(cid) >= 1 then
		if getPlayerStorageValue(cid, 6547) >= 4 then
		return true
		end
	end

	if getPlayerStorageValue(cid, 4897) >= 7 then
	return true
	end

local z = getCreatureSummons(cid)[1]
local pokename = getCreatureName(z)[1]
local mbk = msgunicaback:gsub("doka", pokename)

	if getItemAttribute(item.uid, "poke"):find(getCreatureName(z)) then
		doTransformItem(item.uid, item.itemid-1)
		doCreatureSay(cid, mbk, TALKTYPE_SAY)
	return true
	end

local summom = getCreatureSummons(cid)
local maxh = pokes[getCreatureName(summom[1])].vida
local pct2 = ((getCreatureHealth(summom[1])) / (getCreatureMaxHealth(summom[1])))
local vids = ((getCreatureHealth(summom[1])) - 2)

	doCreatureAddHealth(summom[1], -vids)
	setCreatureMaxHealth(summom[1], maxh)
	doCreatureAddHealth(summom[1], ((maxh) * (pct2)))
	doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")) .. " HP = ["..getCreatureHealth(z).."/"..getCreatureMaxHealth(z).."]")
	setPlayerStorageValue(cid, 61204, 0)
	setPlayerStorageValue(cid, 2, 0)
	doSendMagicEffect(getCreaturePosition(z), effect)
	doRemoveCreature(z)

	if getPlayerGroupId(cid) == 8 then
		setPlayerGroupId(cid, 1)
	elseif item.itemid == 2222 or item.itemid == 2239 or item.itemid == 2234 or item.itemid == 2220 or item.itemid == 2242 or item.itemid == 2192 or item.itemid == 2660 or item.itemid == 2663 or item.itemid == 2655 then
	return true
	end

	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
		doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
	return TRUE
	end

	if not canSummon(cid) then
	return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTENOUGHROOM)
	end

	if getPlayerStorageValue(cid, 63215) >= 1 then
	return doPlayerSendCancel(cid, "You can't use pokeball while surfing.")
	end

	if getPlayerStorageValue(cid, 62314) >= 1 then
	return doPlayerSendCancel(cid, "You can't use pokeball while flying.")
	end

	if #getCreatureSummons(cid) >= 1 then
	return doPlayerSendCancel(cid, "You have already summoned a pokemon.")
	end

	for i,x in pairs(pokes) do
		if i == getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1) then

			if getPlayerLevel(cid) < x.level then
				oPlayerSendCancel(cid, "You need level "..x.level.." or higher to use this pokemon.")
			return true
			end
		end
	end

local removed = doCreateItem(1285, 1, getThingPos(cid))

	if getItemAttribute(item.uid, "level") == False then
		doItemSetAttribute(item.uid, "level", 1) ----- aki e o level que o pokemon novo capturado recebe no primeiro goback
	else
		doItemSetAttribute(item.uid, "description", " Contains a "..getItemAttribute(item.uid, "poke"):sub(9, findLetter(getItemAttribute(item.uid, "poke"), "'")-1).." Level : "..getItemAttribute(item.uid, "level").."")
	end

		doSummonMonster(cid, i)

local pk = getCreatureSummons(cid)[1]
	doTeleportThing(pk, getClosestFreeTile(pk, getThingPos(cid)), false)
	doRemoveItem(removed, 1)
	doCreatureSetLookDir(pk, 2)
local maxh = pokes[getCreatureName(pk)].vida
local levellife = ((getPlayerLevel(cid)) * (pokes[getCreatureName(pk)].cons))
local health = tonumber(getItemAttribute(item.uid, "poke"):match("%[(.-)/"))
	doConvinceCreature(cid, pk)
	doCreatureAddHealth(pk, health-maxh)
local pct = ((getCreatureHealth(pk)) / (getCreatureMaxHealth(pk)))
local vidis = (getCreatureHealth(pk))
	setCreatureMaxHealth(pk, ((maxh) + (levellife)))
	doCreatureAddHealth(pk, 2)
	doCreatureAddHealth(pk, -vidis)

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 2 then --- numero do level
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+100) ----- quantida de hp que ganha por level
	end

local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 3 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+200)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 4 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+300)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 5 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+400)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 6 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+500)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 7 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+600)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 8 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+700)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 9 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+800)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 10 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+900)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 11 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1000)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 12 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1100)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 13 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1200)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 14 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1300)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 15 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1400)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 16 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1500)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 17 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1600)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 18 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1700)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 19 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1800)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 20 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+1900)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 21 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2000)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 22 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2100)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 23 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2200)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 24 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2300)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 25 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2400)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 26 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2500)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 27 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2600)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 28 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2700)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 29 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+2800)
	end
local feet = getPlayerSlotItem(cid, CONST_SLOT_FEET)
	if getItemAttribute(feet.uid, "level") == 30 then
		setCreatureMaxHealth(pk, getCreatureMaxHealth(pk)+3000)
	end

	doCreatureAddHealth(pk, ((getCreatureMaxHealth(pk)) * (pct)) - 2)
	doTransformItem(item.uid, item.itemid+1)

	if getPlayerGroupId(cid) == 1 then
		setPlayerGroupId(cid, 8)
	end

local pokename = getCreatureName(getCreatureSummons(cid)[1])
local mgo = msgunicago:gsub("doka", pokename)
	doCreatureSay(cid, mgo, TALKTYPE_SAY)
	doItemSetAttribute(item.uid, "poke", getItemAttribute(item.uid, "poke"):sub(1, findLetter(getItemAttribute(item.uid, "poke"), ".")))
	doSendMagicEffect(getCreaturePosition(pk), effect)
	setPlayerStorageValue(cid, 61204, 1)
	registerCreatureEvent(pk, "DiePoke")
	registerCreatureEvent(pk, "Exp")
	if getItemAttribute(item.uid, "levell") == False then
		doItemSetAttribute(item.uid, "levell", 0)
	return TRUE
	end

if getItemText(item.uid) == 3 then
doCreatureSetSkullType(pk, 4)
else
doCreatureSetSkullType(pk, getItemText(item.uid))
end

if exhaustion.get(cid, 6666) and exhaustion.get(cid, 6666) > 0 then
return true
end

if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1
or getPlayerStorageValue(cid, 75846) >= 1 or getPlayerStorageValue(cid, 5700) >= 1  then    --alterado v1.9 <<
   return true
end

local ballName = getItemAttribute(item.uid, "poke")
local btype = getPokeballType(item.itemid)
local usando = pokeballs[btype].use

local effect = pokeballs[btype].effect
	if not effect then
		effect = 21
	end

unLock(item.uid) --alterado v1.8

if item.itemid == usando then

	if getPlayerStorageValue(cid, 990) == 1 then -- GYM
		doPlayerSendCancel(cid, "You can't return your pokemon during gym battles.")
	return true
	end
	if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then     --alterado v1.6
       if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
          BackTeam(cid)
       end
    end
    if #getCreatureSummons(cid) == 2 and getPlayerStorageValue(cid, 212124) >= 1 then
       doPlayerSendCancel(cid, "You can't do that while is controling a mind")
       return true     --alterado v1.5
    end
    if #getCreatureSummons(cid) <= 0 then
		if isInArray(pokeballs[btype].all, item.itemid) then
			doTransformItem(item.uid, pokeballs[btype].off)
			doItemSetAttribute(item.uid, "hp", 0)
			doPlayerSendCancel(cid, "This pokemon is fainted.")
		    return true
		end
	end

    local cd = getCD(item.uid, "blink", 30)
    if cd > 0 then
       setCD(item.uid, "blink", 0)
    end

	local z = getCreatureSummons(cid)[1]

	if getCreatureCondition(z, CONDITION_INVISIBLE) and not isGhostPokemon(z) then
	   return true
	end
	doReturnPokemon(cid, z, item, effect)

elseif item.itemid == pokeballs[btype].on then

	if item.uid ~= getPlayerSlotItem(cid, CONST_SLOT_FEET).uid then
		doPlayerSendCancel(cid, "You must put your pokeball in the correct place!")
	return TRUE
	end

	local thishp = getItemAttribute(item.uid, "hp")

	if getItemAttribute(item.uid, "hp") == 0 then
		if isInArray(pokeballs[btype].all, item.itemid) then
			doTransformItem(item.uid, pokeballs[btype].off)
			doItemSetAttribute(item.uid, "hp", 0)
			doPlayerSendCancel(cid, "This pokemon is fainted.")
		    return true
		end
	end

	local pokemon = getItemAttribute(item.uid, "poke")

	if not pokes[pokemon] then
	return true
	end

	local x = pokes[pokemon]
	local boost = getItemAttribute(item.uid, "boost") or 0

	if getPlayerLevel(cid) < (x.level) then
	   doPlayerSendCancel(cid, "You need level "..(x.level).." to use this pokemon.")
	   return true
	end

	local pk = getCreatureSummons(cid)[1]

	doSummonMonster(cid, pokemon)
	doItemSetAttribute(item.uid, "pokeballusada", 0)

	local pk = getCreatureSummons(cid)[1]
	if not isCreature(pk) then
	return true
	end


	if getCreatureName(pk) == "Ditto" or getCreatureName(pk) == "Shiny Ditto" then --edited

		local left = getItemAttribute(item.uid, "transLeft")
		local name = getItemAttribute(item.uid, "transName")

		if left and left > 0 then
			setPlayerStorageValue(pk, 1010, name)
			doSetCreatureOutfit(pk, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1)
			addEvent(deTransform, left * 1000, pk, getItemAttribute(item.uid, "transTurn"))
			doItemSetAttribute(item.uid, "transBegin", os.clock())
		else
			setPlayerStorageValue(pk, 1010, getCreatureName(pk) == "Ditto" and "Ditto" or "Shiny Ditto")     --edited
		end
	end

	if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false)
	end

	doCreatureSetLookDir(pk, 2)
	doCreatureSetNick(pk, nick)
	adjustStatus(pk, item.uid, true, true, true)
	doAddPokemonInOwnList(cid, pokemon)

	doTransformItem(item.uid, item.itemid+1)

	local pokename = getPokeName(pk) --alterado v1.7

	local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
	local mgoen = gobackmsgsen[math.random(1, #gobackmsgsen)].go:gsub("doka", pokename)
	local mgoes = gobackmsgses[math.random(1, #gobackmsgses)].go:gsub("doka", pokename)
	if getPlayerLanguage(cid) == 2 then
	doCreatureSay(cid, mgoen, 19)
	end
	if getPlayerLanguage(cid) == 0 then
	doCreatureSay(cid, mgo, 19)
	end
	if getPlayerLanguage(cid) == 1 then
	doCreatureSay(cid, mgoes, 19)
	end

	-- doItemSetAttribute(item.uid, "gender", math.random(3, 4))
	doSendMagicEffect(getCreaturePosition(pk), effect)

	if useOTClient then
	   doPlayerSendCancel(cid, '12//,show') --alterado v1.7
    end

local pk = getCreatureSummons(cid)[1]
                local pb = getPlayerSlotItem(cid, 8).uid
                local look = getItemAttribute(pb,"addon")
                if not getItemAttribute(pb,"addon") then
                                doSetItemAttribute(pb,"addon",0)

                end
                if getItemAttribute(pb,"addon") > 0 then
                                doSetCreatureOutfit(pk, {lookType = look}, -1)

                end

else

    doPlayerSendCancel(cid, "This pokemon is fainted.")

end

	if useKpdoDlls then
		doUpdateMoves(cid)
	end
return true
end


 

 

[01/07/2019 08:37:02] [Error - Action Interface] 
[01/07/2019 08:37:02] datapack/actions/scripts/goback.lua:onUse
[01/07/2019 08:37:02] Description: 
[01/07/2019 08:37:02] datapack/actions/scripts/goback.lua:286: bad argument #2 to 'gsub' (string/function/table expected)
[01/07/2019 08:37:02] stack traceback:
[01/07/2019 08:37:02]     [C]: in function 'gsub'
[01/07/2019 08:37:02]     datapack/actions/scripts/goback.lua:286: in function <datapack/actions/scripts/goback.lua:207>
 

erro continua

Link para o post
Compartilhar em outros sites

Qual distribuição ou base você utiliza?

Contribuições:
 

=> Distribuições/Servidores

  1. [8.60] The Forgotten Server 1.3 (COMPILADO WIN x64)

 

=> Scripts/Códigos/Tutoriais

  1. Pokemon pescado aparece em volta do seu pokemon
  2. [Gesior]Dobrar pontos PagSeguro a partir de x valor doado

 

 Gostou de alguma contribuição? Rep +?

Link para o post
Compartilhar em outros sites
55 minutos atrás, Rayo disse:

Qual distribuição ou base você utiliza?

 

[01/07/2019 08:39:22] otPokemon Diamond, version 0.3.6 (otPokemon Diamond.)
[01/07/2019 08:39:22] Compiled with GNU C++ version 4.4.0 at Jul  7 2018, 17:12:16.
[01/07/2019 08:39:22] Server Sendo Desenvolvido Por JPN.
[01/07/2019 08:39:22] Visite o forum para updates e resource: http://otland.net.

baixe este serviço aqui que foi feito com base no otPokémon Revolution.:
https://www.xtibia.com/forum/topic/248662-pokézr-base-otpokemoncom-2018-serversourcesitenewold-clientlaucher-servidor-completo/

e to querendo implantar o system level aqui do tibia king:

 

Editado por celsokayran (veja o histórico de edições)
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 cloudrun2023
      CloudRun - Sua Melhor Escolha para Hospedagem de OTServer!
      Você está procurando a solução definitiva para hospedar seu OTServer com desempenho imbatível e segurança inigualável? Não procure mais! Apresentamos a CloudRun, sua parceira confiável em serviços de hospedagem na nuvem.
       
      Recursos Exclusivos - Proteção DDoS Avançada:
      Mantenha seu OTServer online e seguro com nossa robusta proteção DDoS, garantindo uma experiência de jogo ininterrupta para seus jogadores.
       
      Servidores Ryzen 7 Poderosos: Desfrute do poder de processamento superior dos servidores Ryzen 7 para garantir um desempenho excepcional do seu OTServer. Velocidade e estabilidade garantidas!
       
      Armazenamento NVMe de Alta Velocidade:
      Reduza o tempo de carregamento do jogo com nosso armazenamento NVMe ultrarrápido. Seus jogadores vão adorar a rapidez com que podem explorar o mundo do seu OTServer.
       
      Uplink de até 1GB:
      Oferecemos uma conexão de alta velocidade com até 1GB de largura de banda, garantindo uma experiência de jogo suave e livre de lag para todos os seus jogadores, mesmo nos momentos de pico.
       
      Suporte 24 Horas:
      Estamos sempre aqui para você! Nossa equipe de suporte está disponível 24 horas por dia, 7 dias por semana, para resolver qualquer problema ou responder a qualquer pergunta que você possa ter. Sua satisfação é a nossa prioridade.
       
      Fácil e Rápido de Começar:
      Configurar seu OTServer na CloudRun é simples e rápido. Concentre-se no desenvolvimento do seu jogo enquanto cuidamos da hospedagem.
       
      Entre em Contato Agora!
      Website: https://central.cloudrun.com.br/index.php?rp=/store/cloud-ryzen-brasil
      Email: [email protected]
      Telefone: (47) 99902-5147

      Não comprometa a qualidade da hospedagem do seu OTServer. Escolha a CloudRun e ofereça aos seus jogadores a melhor experiência de jogo possível. Visite nosso site hoje mesmo para conhecer nossos planos e começar!
       
      https://central.cloudrun.com.br/index.php?rp=/store/cloud-ryzen-brasil
       
      CloudRun - Onde a Velocidade Encontra a Confiabilidade!
       

    • Por FeeTads
      SALVE rapaziada do TK, esses dias vim pensando em novos scripts pro meu OT, e em um deles eu precisava que determinada area não contasse frag pro player que matasse outros, PORÉM eu precisava que os players que morressem nessa area ainda assim tivessem as penalidades da sua morte, procurei por ai, achei alguns scripts que apenas tiravam o SKULL e não realmente o FRAG do player.

      **script atualizado 22/10/2023** - melhorado e otimizado, levei o script pra puxar as infos por .lua / creatureScripts

      vou disponibilizar o code aqui, e o que fazer pra determinada area não contar frag.

      SOURCE OTX 2 / TFS 0.x, Funciona em TFS 1.x mudando as tags e ajeitando as sintaxes.

      vá em creatureevent.cpp

      procure por:
      else if(type == "preparedeath") _type = CREATURE_EVENT_PREPAREDEATH;
      Adiciona abaixo:
      else if(type == "nocountfrag") _type = CREATURE_EVENT_NOCOUNTFRAG;

      procure por:
      case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath";  
      Adicione abaixo: 
      case CREATURE_EVENT_NOCOUNTFRAG: return "noCountFragArea";

      procure por:
      case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList";
      Adicione abaixo:
      case CREATURE_EVENT_NOCOUNTFRAG: return "cid, target";

      agora no mesmo arquivo, vá até o final do arquivo e adicione essa função:
      uint32_t CreatureEvent::executeNoCountFragArea(Creature* creature, Creature* target) { //noCountFragArea(cid, target) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::ostringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; scriptstream << "local target = " << env->addThing(target) << std::endl; if(m_scriptData) scriptstream << *m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ std::ostringstream desc; desc << creature->getName(); env->setEvent(desc.str()); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); lua_pushnumber(L, env->addThing(target)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::clog << "[Error - CreatureEvent::noCountFragArea] Call stack overflow." << std::endl; return 0; } }

      agora vá em creatureevent.h

      procure por:
      CREATURE_EVENT_PREPAREDEATH
      adicione abaixo:
      CREATURE_EVENT_NOCOUNTFRAG

      procure por:
      uint32_t executePrepareDeath(Creature* creature, DeathList deathList);
      Adicione abaixo:
      uint32_t executeNoCountFragArea(Creature* creature, Creature* target);

      agora vá em player.cpp

      procure por:
      bool Player::onKilledCreature(Creature* target, DeathEntry& entry)
      abaixo de:
      War_t enemy; if(targetPlayer->getEnemy(this, enemy)) { if(entry.isLast()) IOGuild::getInstance()->updateWar(enemy); entry.setWar(enemy); }
      Adicione o seguinte código:
      if (targetPlayer){ CreatureEventList killEvents = getCreatureEvents(CREATURE_EVENT_NOCOUNTFRAG); for (const auto &event : killEvents) { if (!event->executeNoCountFragArea(this, target)) { return true; } } }

      //

      Feito isso, tudo completo na sua source, agora é necessário adicionar o creaturescript dentro do servidor

      vá até creaturescripts/scripts
      crie um arquivo chamado, "noCountFragInArea.lua"
      e dentro dele cole o código:
       
      --[[ script feito por feetads / TibiaKing ]]-- --[[ discord: feetads / FeeTads#0246 ]]-- -- Add positions here for which you do not want to count frags local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, -- from = area superior esquerda / to = area inferior direita (formando um quadrado) } local onlyKillerInArea = false -- only killer need to be in area? function noCountFragArea(cid, target) if not isCreature(cid) or not isCreature(target) then return true end local posKiller = getPlayerPosition(cid) local posTarget = getPlayerPosition(target) for i = 1, #areas do local area = areas[i] if isInArea(posKiller, area.from, area.to) then if onlyKillerInArea then return false elseif isInArea(posTarget, area.from, area.to) then return false end end end return true end
      agora em creaturescripts.xml
      <event type="nocountfrag" name="fragarea" event="script" value="noCountFragInArea.lua"/>
      agora em creaturescripts/scripts/login.lua
       procure por OU semelhante a esse:
      registerCreatureEvent(cid, "AdvanceSave")
      e abaixo adicione:
      registerCreatureEvent(cid, "fragarea")

      //


      Agora tudo certo, quando quiser adiciona uma area que não pega frag, vá até o script e apenas coloque a area, igual o demonstrado no script

      Exemplo:
      local areas = { [1] = {from = {x = 91, y = 122, z = 7}, to = {x = 98, y = 127, z = 7}}, [2] = {from = {x = 1000, y = 1000, z = 7}, to = {x = 1100, y = 1100, z = 7}}, }
      assim somente colocando a area no script e abrindo o server ou dando /reload, já funcionará a area como não pegar frag.
      Esse sistema pode ser bom pra areas de pvp ativo, onde você ainda quer que o player que morrer perca os atributos, como se fosse uma morte normal, porém não conta frag pra quem matar.
      Bom pra sistemas tipo castle 48h (guild war), onde há diversas mortes e risco de pegar red, atrapalhando a war.

      Façam bom proveito dos scripts, e deixem os créditos no script rsrs

      **Eu fiz as alterações e o simples código por isso vim disponibilizar, créditos meus**
    • Por Muvuka
      Abri canal a força creaturescript acho que funcione no creaturescript cria script creaturescript
       
      <channel id="9" name="HELP" logged="yes"/>
      <channel id="12" name="Report Bugs" logged="yes"/>
      <channel id="13" name="Loot" logged="yes"/>
      <channel id="14" name="Report Character Rules Tibia Rules" logged="yes"/>
      <channel id="15" name="Death Channel"/>
      <channel id="6548" name="DexSoft" level="1"/>
      <channel id="7" name="Reports" logged="yes"/>
       
      antes de 
              if(lastLogin > 0) then adicione isso:
                      doPlayerOpenChannel(cid, CHANNEL_HELP) doPlayerOpenChannel(cid, 1,  2, 3) = 1,2 ,3 Channels, entendeu? NÃO FUNCIONA EU QUERO UM MEIO DE ABRI SEM USA A SOURCE
       
      EU NÃO CONSEGUI ABRI EU NÃO TENHO SOURCE
       
       
    • Por bolachapancao
      Rapaziada seguinte preciso de um script que ao utilizar uma alavanca para até 4 jogadores.
      Os jogadores serão teleportados para hunt durante uma hora e depois de uma hora os jogadores serão teleportados de volta para o templo.
       
      Observação: caso o jogador morra ou saia da hunt o evento hunt é cancelado.

      Estou a base canary
      GitHub - opentibiabr/canary: Canary Server 13.x for OpenTibia community.
       
    • Por RAJADAO
      .Qual servidor ou website você utiliza como base? 
      Sabrehaven 8.0
      Qual o motivo deste tópico? 
      Ajuda com novos efeitos
       
      Olá amigos, gostaria de ajuda para introduzir os seguintes efeitos no meu servidor (usando o Sabrehaven 8.0 como base), adicionei algumas runas novas (avalanche, icicle, míssil sagrado, stoneshower & Thunderstorm) e alguns novos feitiços (exevo mas san, exori san, exori tera, exori frigo, exevo gran mas frigo, exevo gran mas tera, exevo tera hur, exevo frigo hur) mas nenhum dos efeitos dessas magias parece existir no servidor, alguém tem um link para um tutorial ou algo assim para que eu possa fazer isso funcionar?
      Desculpe pelo mau inglês, sou brasileiro.

      Obrigado!


      AVALANCHE RUNE id:3161 \/
      (COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE)
      (COMBAT_PARAM_EFFECT, CONST_ME_ICEAREA)
      (COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ICE)

      STONESHOWER RUNE id:3175 \/
      (COMBAT_PARAM_TYPE, COMBAT_EARTHDAMAGE)
      (COMBAT_PARAM_EFFECT, CONST_ME_STONES)
      (COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_EARTH)

      THUNDERSTORM RUNE id:3202 \/
      (COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)
      (COMBAT_PARAM_EFFECT, CONST_ME_E NERGYHIT)
      (COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGYBALL)

      ICICLE RUNE id:3158 \/
      COMBAT_ICEDAMAGE
      CONST_ME_ICEAREA
      CONST_ANI_ICE

      SANTO MÍSSIL RUNA id:3182 \/
      (COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
      (COMBAT_PARAM_EFFECT, CONST_ME_HOLYDAMAGE)
      (COMBAT_PARAM_EFFECT, CONST_ME_HOLYAREA)
      (COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_HOLY)

      CONST_ME_PLANTATTACK (exevo gran mas tera)
      CONST_ME_ICETORNADO (exevo gran mas frigo)
      CONST_ME_SMALLPLANTS (exevo tera hur)
      CONST_ME_ICEAREA (exevo frigo hur)
      CONST_ME_ICEATTACK (exori frigo)
      CONST_ME_CARNIPHILA (exori tera)

      EXORI SAN \/
      (COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_SMALLHOLY)
      CONST_ME_HOLYDAM IDADE

      EXEVO MAS SAN \/
      CONST_ME_HOLYAREA
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo