Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function pokeHaveReflect(cid)
- if not isCreature(cid) then return false end
- local table = getTableMove(cid, "Reflect")
- if table and table.name then --alterado v1.6
- return true
- end
- return false
- end
- ------------------------------------------------------------------------------------------------------
- function endInviting(cid)
- if isCreature(cid) and getPlayerStorageValue(cid, 52483) == 0 then
- setPlayerStorageValue(cid, 52480, -1) --sto de duelo
- setPlayerStorageValue(cid, 52481, -1) --sto de pokes no duel
- setPlayerStorageValue(cid, 52482, -1) --sto do player q vai duela contigo --alterado v2.6 duel system
- setPlayerStorageValue(cid, 52483, -1) --sto de aceitaçao de duel
- setPlayerStorageValue(cid, 6598754, -1) --sto do canAttackOther
- doCreatureSetSkullType(cid, 0)
- doPlayerSendTextMessage(cid, 20, "The other player don't accepted the duel...")
- end
- end
- function checkDuel(cid)
- if getPlayerStorageValue(cid, 52481) >= 1 then
- setPlayerStorageValue(cid, 52481, getPlayerStorageValue(cid, 52481)-1)
- doSendAnimatedText(getThingPos(cid), "POKE DOWN", 65)
- end
- if getPlayerStorageValue(cid, 52481) == 0 and isInParty(cid) then
- addEvent(doRemoveCreature, 400, cid)
- elseif getPlayerStorageValue(cid, 52481) == 0 and not isInParty(cid) then --alterado v2.6 duel system
- for _, sid in ipairs(getPlayersOnline()) do
- if getPlayerStorageValue(sid, 52482) == getCreatureName(cid) then
- addEvent(doSendAnimatedText, 1000, getThingPosWithDebug(sid), "WIN", COLOR_ELECTRIC)
- setPlayerStorageValue(sid, 52480, -1)
- setPlayerStorageValue(sid, 52481, -1)
- setPlayerStorageValue(sid, 52482, -1)
- setPlayerStorageValue(sid, 52483, -1)
- setPlayerStorageValue(sid, 6598754, -1)
- doCreatureSetSkullType(sid, 0)
- doRemoveCondition(sid, CONDITION_INFIGHT)
- end
- end
- addEvent(doSendAnimatedText, 1000, getThingPosWithDebug(cid), "LOSE", COLOR_BURN)
- setPlayerStorageValue(cid, 52480, -1)
- setPlayerStorageValue(cid, 52481, -1)
- setPlayerStorageValue(cid, 52482, -1)
- setPlayerStorageValue(cid, 52483, -1)
- setPlayerStorageValue(cid, 6598754, -1)
- doCreatureSetSkullType(cid, 0)
- doRemoveCondition(cid, CONDITION_INFIGHT)
- end
- end
- --/////////////////////////////////////////////////////////////////////////////////////////////--
- function nextHorario(cid)
- horarioAtual = os.date("%X")
- horario = string.explode(horarioAtual, ":")
- for i = 1, #horas do
- horarioComparacao = horas[i]
- horarioComp = string.explode(horarioComparacao, ":")
- ---------------
- if tonumber(horarioComp[1]) > tonumber(horario[1]) then
- return horarioComparacao --alterado v2.3
- elseif tonumber(horarioComp[1]) == tonumber(horario[1]) and tonumber(horario[2]) < tonumber(horarioComp[2]) then
- return horarioComparacao
- end
- end
- return horas[1] --alterado v2.3
- end
- function getTimeDiff(timeDiff)
- local dateFormat = {
- {'hour', timeDiff / 60 / 60}, --6%
- {'min', timeDiff / 60 % 60},
- }
- local out = {} --alterado v2.3
- for k, t in ipairs(dateFormat) do
- local v = math.floor(t[2])
- if(v > -1) then
- table.insert(out, (k < #dateFormat and '' or ' and ') .. v .. '' .. (v <= 1 and t[1] or t[1].."s"))
- end
- end
- if tonumber(dateFormat[1][2]) == 0 and tonumber(dateFormat[2][2]) == 0 then
- return "seconds"
- end
- return table.concat(out)
- end
- function showTimeDiff(timeComp)
- local b = string.explode(os.date("%X"), ":")
- local c = string.explode(timeComp, ":")
- ---
- local d, m, y = os.date("%d"), os.date("%m"), os.date("%Y")
- local hAtual, mAtual = tonumber(b[1]), tonumber(b[2])
- local hComp, mComp = tonumber(c[1]), tonumber(c[2])
- ---
- local t = os.time{year= y, month= m, day= d, hour= hAtual, min= mAtual}
- local t1 = os.time{year= y, month= m, day= d, hour= hComp, min= mComp}
- --- --alterado v2.3
- comparacao = t1-t
- if hComp < hAtual then
- v = os.time{year= y, month= m, day= d, hour= 24, min= 0}
- v2 = os.time{year= y, month= m, day= d, hour= 0, min= 0}
- comparacao = (v-t)+(t1-v2)
- end
- return getTimeDiff(comparacao)
- end
- -------------------------------------------------------------------------
- function cleanCMcds(item)
- if item ~= 0 then
- for c = 1, 15 do --alterado v2.5
- local str = "cm_move"..c
- setCD(item, str, 0)
- end
- end
- end
- function ehNPC(cid)
- if isCreature(cid) and not isPlayer(cid) and not isSummon(cid) and not isMonster(cid) then
- return true
- end --alterado v2.5
- return false
- end
- function ehMonstro(cid)
- if not isPlayer(cid) and not isSummon(cid) and not isNpc(cid) then
- return true
- end --function pro exp.lua...
- return false
- end
- function doAppear(cid) --Faz um poke q tava invisivel voltar a ser visivel...
- if not isCreature(cid) then return true end
- doRemoveCondition(cid, CONDITION_INVISIBLE)
- doRemoveCondition(cid, CONDITION_OUTFIT)
- doCreatureSetHideHealth(cid, false)
- end
- function doDisapear(cid) --Faz um pokemon ficar invisivel
- if not isCreature(cid) then return true end
- doCreatureAddCondition(cid, permanentinvisible)
- doCreatureSetHideHealth(cid, true)
- doSetCreatureOutfit(cid, {lookType = 2}, -1)
- end
- function hasTile(pos) --Verifica se tem TILE na pos
- pos.stackpos = 0
- if getTileThingByPos(pos).itemid >= 1 then
- return true
- end
- return false
- end
- function getThingFromPosWithProtect(pos) --Pega uma creatura numa posiçao com proteçoes
- if hasTile(pos) then
- pos.stackpos = 253
- pid = getThingfromPos(pos).uid
- else
- pid = getThingfromPos({x=1,y=1,z=10,stackpos=253}).uid
- end
- return pid
- end
- function getTileThingWithProtect(pos) --Pega um TILE com proteçoes
- if hasTile(pos) then
- pos.stackpos = 0
- pid = getTileThingByPos(pos)
- else
- pid = getTileThingByPos({x=1,y=1,z=10,stackpos=0})
- end
- return pid
- end
- function canAttackOther(cid, pid) --Function q verifica se um poke/player pode atacar outro poke/player
- if not isCreature(cid) or not isCreature(pid) then return "Cant" end
- local master1 = isSummon(cid) and getCreatureMaster(cid) or cid
- local master2 = isSummon(pid) and getCreatureMaster(pid) or pid
- if isInParty(master1) and isInParty(master2) then
- if getPlayerParty(master1) == getPlayerParty(master2) then
- if isSummon(cid) and isPlayer(pid) then
- return "Cant"
- else
- return "Can"
- end
- end
- end
- ---- --alterado v2.6 duel system
- if getPlayerStorageValue(master1, 6598754) >= 5 and getPlayerStorageValue(master2, 6598754) >= 5 then
- if getPlayerStorageValue(master1, 6598754) ~= getPlayerStorageValue(master2, 6598754) then
- if getPlayerStorageValue(master1, 52482) == getCreatureName(master2) and getPlayerStorageValue(master2, 52482) == getCreatureName(master1) then
- if isSummon(cid) and isPlayer(pid) then
- return "Cant"
- else
- return "Can"
- end
- end
- end
- end
- ----
- if getPlayerStorageValue(master1, 6598754) >= 1 and getPlayerStorageValue(master2, 6598755) >= 1 then
- return "Can"
- end
- if getPlayerStorageValue(master1, 6598755) >= 1 and getPlayerStorageValue(master2, 6598754) >= 1 then ---estar em times diferentes
- return "Can"
- end
- ----
- if ehMonstro(cid) or ehMonstro(pid) then
- return "Can"
- end
- return "Cant"
- end
- function stopNow(cid, time) --function q faz o poke/player ficar imovel por um tempo
- if not isCreature(cid) then return true end
- if isSleeping(cid) then return true end
- local speed = getCreatureSpeed(cid)
- if isPlayer(cid) then
- mayNotMove(cid, true) --alterado v2.4
- addEvent(mayNotMove, time, cid, false)
- else
- doChangeSpeed(cid, -speed)
- addEvent(doRegainSpeed, time, cid)
- end
- end
- function doReduceStatus(cid, off, def, agi) --reduz os status
- if not isCreature(cid) then return true end
- local A = getOffense(cid)
- local B = getDefense(cid)
- local C = getSpeed(cid)
- if off > 0 then
- setPlayerStorageValue(cid, 1001, A - off)
- end
- if def > 0 then
- setPlayerStorageValue(cid, 1002, B - def)
- end
- if agi > 0 then
- setPlayerStorageValue(cid, 1003, C - agi)
- if getCreatureSpeed(cid) ~= 0 then
- doRegainSpeed(cid)
- end --alterado v2.5 functions arrumadas...
- end
- end
- function doRaiseStatus(cid, off, def, agi, time)
- if not isCreature(cid) then return true end
- local A = getOffense(cid)
- local B = getDefense(cid)
- local C = getSpeed(cid)
- if off > 0 then
- setPlayerStorageValue(cid, 1001, A * off)
- end
- if def > 0 then
- setPlayerStorageValue(cid, 1002, B * def)
- end
- if agi > 0 then
- setPlayerStorageValue(cid, 1003, C + agi)
- if getCreatureSpeed(cid) ~= 0 then
- doRegainSpeed(cid)
- end
- end
- local D = getOffense(cid)
- local E = getDefense(cid)
- local F = getSpeed(cid)
- ---------------------------
- local G = D - A
- local H = E - B
- local I = F - C
- addEvent(doReduceStatus, time*1000, cid, G, H, I)
- end
- function BackTeam(cid)
- if isCreature(cid) then
- local summon = getCreatureSummons(cid) --alterado v2.6
- for i = 2, #summon do
- doSendMagicEffect(getThingPos(summon[i]), 211)
- doRemoveCreature(summon[i])
- end
- setPlayerStorageValue(cid, 637501, -1)
- end
- end
- function choose(...) -- by mock
- local arg = {...}
- return arg[math.random(1,#arg)]
- end
- function AddPremium(cid, days)
- local function removerPlayer(cid)
- if isCreature(cid) then
- doRemoveCreature(cid)
- end
- end
- db.executeQuery("UPDATE `accounts` SET `premdays` = '"..days.."' WHERE `accounts`.`id` = ".. getPlayerAccountId(cid) ..";")
- doPlayerSendTextMessage(cid,25,"Você será kickado em 5 segundos.")
- addEvent(removerPlayer, 5*1000, cid)
- return TRUE
- end
- function isShiny(cid)
- if not isCreature(cid) then
- return false
- end
- if string.find(tostring(getCreatureName(cid)), "Shiny") then
- return true
- end
- return false
- end
- function isShinyName(name) --verifica se um nome tem a palavra "Shiny" nele...
- if string.find(tostring(name), "Shiny") then
- return true
- end
- return false
- end
- function doConvertTypeToStone(type, string)
- local t = {
- ["fly"] = {heart, "heart"},
- ["flying"] = {heart, "heart"},
- ["normal"] = {heart, "heart"},
- ["fire"] = {fire, "fire"},
- ["grass"] = {leaf, "leaf"},
- ["leaf"] = {leaf, "leaf"},
- ["water"] = {water, "water"},
- ["poison"] = {venom, "venom"},
- ["venom"] = {venom, "venom"},
- ["electric"] = {thunder, "thunder"},
- ["thunder"] = {thunder, "thunder"},
- ["rock"] = {rock, "rock"},
- ["fight"] = {punch, "punch"},
- ["fighting"] = {punch, "punch"},
- ["bug"] = {coccon, "coccon"},
- ["dragon"] = {crystal, "crystal"},
- ["dark"] = {dark, "dark"},
- ["ghost"] = {dark, "dark"},
- ["ground"] = {earth, "earth"},
- ["earth"] = {earth, "earth"},
- ["psychic"] = {enigma, "enigma"},
- ["steel"] = {metal, "metal"},
- ["metal"] = {metal, "metal"},
- ["ice"] = {ice, "ice"},
- }
- if string then
- return t[type][2]
- else
- return t[type][1]
- end
- end
- function doConvertStoneIdToString(stoneID)
- local t = {
- [11453] = "Heart Stone",
- [11441] = "Leaf Stone",
- [11442] = "Water Stone",
- [11443] = "Venom Stone",
- [11444] = "Thunder Stone",
- [11445] = "Rock Stone",
- [11446] = "Punch Stone",
- [11447] = "Fire Stone", --alterado v2.6
- [11448] = "Cocoon Stone",
- [11449] = "Crystal Stone",
- [11450] = "Darkess Stone",
- [11451] = "Earth Stone",
- [11452] = "Enigma Stone",
- [11454] = "Ice Stone",
- [12244] = "King's Rock",
- [12232] = "Metal Stone",
- [12242] = "Sun Stone",
- [12401] = "Shiny Fire Stone",
- [12402] = "Shiny Water Stone",
- [12403] = "Shiny Leaf Stone",
- [12404] = "Shiny Heart Stone",
- [12405] = "Shiny Enigma Stone",
- [12406] = "Shiny Rock Stone",
- [12407] = "Shiny Venom Stone",
- [12408] = "Shiny Ice Stone",
- [12409] = "Shiny Thunder Stone",
- [12410] = "Shiny Crystal Stone",
- [12411] = "Shiny Cocoon Stone",
- [12412] = "Shiny Darkness Stone",
- [12413] = "Shiny Punch Stone",
- [12414] = "Shiny Earth Stone",
- }
- if t[stoneID] then
- return t[stoneID]
- else
- return ""
- end
- end
- function isStone(id)
- if id >= leaf and id <= ice then
- return true
- end
- return false
- end
- function isWater(id)
- if id >= 4820 and id <= 4825 then
- return true
- end
- return false
- end
- function getTopCorpse(position)
- local pos = position
- for n = 1, 255 do
- pos.stackpos = n
- local item = getTileThingByPos(pos)
- if item.itemid >= 2 and (string.find(getItemNameById(item.itemid), "fainted ") or string.find(getItemNameById(item.itemid), "defeated ")) then
- return getTileThingByPos(pos)
- end
- end
- return null
- end
- bpslot = CONST_SLOT_BACKPACK
- function hasPokemon(cid)
- if not isCreature(cid) then return false end
- if getCreatureMana(cid) <= 0 then return false end
- if #getCreatureSummons(cid) >= 1 then return true end
- local item = getPlayerSlotItem(cid, CONST_SLOT_FEET)
- local bp = getPlayerSlotItem(cid, bpslot)
- for a, b in pairs (pokeballs) do
- if item.itemid == b.on or item.itemid == b.use then
- return true --alterado v2.4
- end
- if #getItemsInContainerById(bp.uid, b.on) >= 1 then
- return true
- end
- end
- return false
- end
- function isNpcSummon(cid)
- return isNpc(getCreatureMaster(cid))
- end
- function getPokemonHappinessDescription(cid)
- if not isCreature(cid) then return true end
- local str = ""
- if getPokemonGender(cid) == SEX_MALE then
- str = "He"
- elseif getPokemonGender(cid) == SEX_FEMALE then
- str = "She"
- else
- str = "It"
- end
- local h = getPlayerStorageValue(cid, 1008)
- if h >= tonumber(getConfigValue('PokemonStageVeryHappy')) then
- str = str.." is very happy with you!"
- elseif h >= tonumber(getConfigValue('PokemonStageHappy')) then
- str = str.." is happy."
- elseif h >= tonumber(getConfigValue('PokemonStageOK')) then
- str = str.." is unhappy."
- elseif h >= tonumber(getConfigValue('PokemonStageSad')) then
- str = str.." is sad."
- elseif h >= tonumber(getConfigValue('PokemonStageMad')) then
- str = str.." is mad."
- else
- str = str.." is very mad at you!"
- end
- return str
- end
- function doSetItemAttribute(item, key, value)
- doItemSetAttribute(item, key, value)
- end
- function deTransform(cid, check)
- if not isCreature(cid) then return true end
- local m = getCreatureMaster(cid)
- local p = getPlayerSlotItem(m, 8)
- if getItemAttribute(p.uid, "transTurn") ~= check then return true end
- setPlayerStorageValue(cid, 1010, "Ditto")
- doRemoveCondition(cid, CONDITION_OUTFIT)
- doSendMagicEffect(getThingPos(cid), 184)
- doCreatureSay(cid, "DITTO!", TALKTYPE_MONSTER)
- doItemSetAttribute(p.uid, "transBegin", 0)
- doItemSetAttribute(p.uid, "transLeft", 0)
- doItemEraseAttribute(p.uid, "transName")
- doItemEraseAttribute(p.uid, "boffense")
- doItemEraseAttribute(p.uid, "bdefense")
- doItemEraseAttribute(p.uid, "bsattack")
- doItemEraseAttribute(p.uid, "bagility")
- end
- function isTransformed(cid)
- if getPlayerStorageValue(cid, 1010) == "Ditto" then
- return false
- else
- return true
- end
- end
- function doSendFlareEffect(pos)
- local random = {28, 29, 79}
- doSendMagicEffect(pos, random[math.random(1, 3)])
- end
- function isDay()
- local a = getWorldTime()
- if a >= 360 and a < 1080 then
- return true
- end
- return false
- end
- function doPlayerSendTextWindow(cid, p1, p2)
- if not isCreature(cid) then return true end
- local item = 460
- local text = ""
- if type(p1) == "string" then
- doShowTextDialog(cid, item, p1)
- else
- doShowTextDialog(cid, p1, p2)
- end
- end
- function getClockString(tw)
- local a = getWorldTime()
- local b = a / 60
- local hours = math.floor(b)
- local minut = a - (60 * hours)
- if not tw then
- if hours < 10 then
- hours = "0"..hours..""
- end
- if minut < 10 then
- minut = "0"..minut..""
- end
- return hours..":"..minut
- else
- local sm = "a.m"
- if hours >= 12 then
- hours = hours - 12
- sm = "p.m"
- end
- if hours < 10 then
- hours = "0"..hours..""
- end
- if minut < 10 then
- minut = "0"..minut..""
- end
- return hours..":"..minut.." "..sm
- end
- end
- function doCorrectPokemonName(poke)
- return doCorrectString(poke)
- end
- function doCorrectString(poke)
- local name = ""
- local n = string.explode(poke, " ")
- local str = string.sub(n[1], 1, 1)
- local sta = string.sub(n[1], 2, string.len(n[1]))
- name = ""..string.upper(str)..""..string.lower(sta)..""
- if n[2] then
- str = string.sub(n[2], 1, 1)
- sta = string.sub(n[2], 2, string.len(n[2]))
- name = name.." "..string.upper(str)..""..string.lower(sta)..""
- end
- return name
- end
- function getHappinessRate(cid)
- if not isCreature(cid) then return 1 end
- local a = getPlayerStorageValue(cid, 1008)
- if a == -1 then return 1 end
- if a >= getConfigValue('PokemonStageVeryHappy') then
- return happinessRate[5].rate
- elseif a >= getConfigValue('PokemonStageHappy') then
- return happinessRate[4].rate
- elseif a >= getConfigValue('PokemonStageOK') then
- return happinessRate[3].rate
- elseif a >= getConfigValue('PokemonStageSad') then
- return happinessRate[2].rate
- else
- return happinessRate[1].rate
- end
- return 1
- end
- function doBodyPush(cid, target, go, pos)
- if not isCreature(cid) or not isCreature(target) then
- doRegainSpeed(cid)
- doRegainSpeed(target)
- return true
- end
- if go then
- local a = getThingPos(cid)
- doChangeSpeed(cid, -getCreatureSpeed(cid))
- if not isPlayer(target) then
- doChangeSpeed(target, -getCreatureSpeed(target))
- end
- doChangeSpeed(cid, 800)
- doTeleportThing(cid, getThingPos(target))
- doChangeSpeed(cid, -800)
- addEvent(doBodyPush, 350, cid, target, false, a)
- else
- doChangeSpeed(cid, 800)
- doTeleportThing(cid, pos)
- doRegainSpeed(cid)
- doRegainSpeed(target)
- end
- end
- function doReturnPokemon(cid, pokemon, pokeball, effect, hideeffects, blockevo)
- --////////////////////////////////////////////////////////////////////////////////////////--
- checkDuel(cid) --alterado v2.6 duel system
- --////////////////////////////////////////////////////////////////////////////////////////--
- if #getCreatureSummons(cid) > 1 and getPlayerStorageValue(cid, 212124) <= 0 then --alterado v2.6
- if getPlayerStorageValue(cid, 637501) == -2 or getPlayerStorageValue(cid, 637501) >= 1 then
- BackTeam(cid)
- end
- end
- ----------------------
- local edit = true
- if not pokeball then
- pokeball = getPlayerSlotItem(cid, 8)
- end
- if blockevo then
- edit = false
- doPlayerSendCancel(cid, "Your pokemon couldn't evolve due to server mistakes, please wait until we fix the problem.")
- end
- local happy = getPlayerStorageValue(pokemon, 1008)
- local hunger = getPlayerStorageValue(pokemon, 1009)
- local pokelife = (getCreatureHealth(pokemon) / getCreatureMaxHealth(pokemon))
- if edit then
- doItemSetAttribute(pokeball.uid, "happy", happy)
- doItemSetAttribute(pokeball.uid, "hunger", hunger)
- doItemSetAttribute(pokeball.uid, "hp", pokelife)
- end
- if getCreatureName(pokemon) == "Ditto" then
- if isTransformed(pokemon) then
- local left = getItemAttribute(pokeball.uid, "transLeft") - (os.clock() - getItemAttribute(pokeball.uid, "transBegin"))
- doItemSetAttribute(pokeball.uid, "transLeft", left)
- end
- end
- if hideeffects then
- doRemoveCreature(pokemon)
- return true
- end
- local pokename = getPokeName(pokemon)
- local mbk = gobackmsgs[math.random(1, #gobackmsgs)].back:gsub("doka", pokename)
- if getCreatureCondition(cid, CONDITION_INFIGHT) then
- if isCreature(getCreatureTarget(cid)) then
- doItemSetAttribute(pokeball.uid, "happy", happy - 5)
- else
- doItemSetAttribute(pokeball.uid, "happy", happy - 2)
- end
- end
- doTransformItem(pokeball.uid, pokeball.itemid-1)
- doCreatureSay(cid, mbk, TALKTYPE_SAY)
- doSendMagicEffect(getCreaturePosition(pokemon), effect)
- doRemoveCreature(pokemon)
- if useKpdoDlls then
- doUpdateMoves(cid)
- end
- end
- local EFFECTS = {
- --[OutfitID] = {Effect}
- ["Magmar"] = 35, --magmar --alterado v2.5
- ["Jynx"] = 17, --jynx
- ["Shiny Jynx"] = 17, --shiny jynx
- }
- function doGoPokemon(cid, item)
- if getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then
- return true
- end
- ---------------------------------------------------------------
- local ballName = getItemAttribute(item.uid, "poke")
- btype = getPokeballType(item.itemid)
- local effect = pokeballs[btype].effect
- if not effect then
- effect = 21
- 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
- local thishp = getItemAttribute(item.uid, "hp")
- if thishp <= 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
- ----------------------- Sistema de nao poder carregar mais que 3 pokes lvl baixo e + q 1 poke de lvl medio/alto ---------------------------------
- if not isInArray({5, 6}, getPlayerGroupId(cid)) then
- local bp = getPlayerSlotItem(cid, CONST_SLOT_BACKPACK)
- local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"}
- local low = {}
- local lw = 1
- for e, f in pairs(pokeballs) do
- for times = 1, 3 do
- local items = getItemsInContainerById(bp.uid, pokeballs[e].all[times])
- if #items >= 1 then --alterado v2.6
- for _, uid in pairs(items) do
- local nome1 = getItemAttribute(uid, "poke")
- if not isInArray(lowPokes, pokemon) and nome1 == pokemon then
- return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!")
- elseif isInArray(lowPokes, pokemon) then
- if nome1 == pokemon then
- table.insert(low, lw, nome1)
- lw = lw +1
- end
- end
- end
- end
- end
- end
- if #low >= 3 then
- return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry more than three pokemons equals of low level!")
- end
- end
- ---------------------------------------------------------------------------------------------------------------------------------------------------
- local x = pokes[pokemon]
- local boosts = getItemAttribute(item.uid, "boost") or 0
- if getPlayerLevel(cid) + pokemonMaxLevelAbovePlayer < getItemAttribute(item.uid, "level") then
- doPlayerSendCancel(cid, "Your pokemon's level is much higher than yours, you can't use him.")
- return true
- end
- --------------------------------------------------------------------------------------
- shinysClan = {
- ["Shiny Fearow"] = {4, "Wingeon"},
- ["Shiny Flareon"] = {1, "Volcanic"},
- ["Shiny Vaporeon"] = {2, "Seavel"},
- ["Shiny Jolteon"] = {9, "Raibolt"},
- ["Shiny Hypno"] = {7, "Psycraft"},
- ["Shiny Golem"] = {3, "Orebound"},
- ["Shiny Vileplume"] = {8, "Naturia"},
- ["Shiny Nidoking"] = {5, "Malefic"},
- ["Shiny Hitmontop"] = {6, "Gardestrike"}, --alterado v2.4
- }
- if shinysClan[pokemon] and (getPlayerGroupId(cid) < 3 or getPlayerGroupId(cid) > 6) then
- if getPlayerStorageValue(cid, 86228) ~= shinysClan[pokemon][1] then
- doPlayerSendCancel(cid, "You need be a member of the clan "..shinysClan[pokemon][2].." to use this pokemon!")
- return true
- elseif getPlayerStorageValue(cid, 862281) ~= 5 then
- doPlayerSendCancel(cid, "You need be atleast rank 5 to use this pokemon!")
- return true
- end
- end
- --------------------------------------------------------------------------------------
- doSummonMonster(cid, pokemon)
- local pk = getCreatureSummons(cid)[1]
- if not isCreature(pk) then return true end
- ------------------------passiva hitmonchan------------------------------
- if isSummon(pk) then
- --local e = getCreatureMaster(cid)
- local nameHIT = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "poke")
- local hands = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands")
- if nameHIT == "Shiny Hitmonchan" or nameHIT == "Hitmonchan" then
- if getItemAttribute(getPlayerSlotItem(cid, 8).uid, "hands") then
- doSetCreatureOutfit(pk, {lookType = hitmonchans[nameHIT][hands].out}, -1)
- else
- doPlayerSendTextMessage(cid, 27, "Contact a GameMaster! Error in passive system! Attribute \"hands\" missing")
- end
- end
- end
- -------------------------------------------------------------------------
- ---------movement magmar, jynx-------------
- if EFFECTS[getCreatureName(pk)] then --alterado v2.5
- markPosEff(pk, getThingPos(pk))
- sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) --alterado v2.5
- end
- --------------------------------------------------------------------------
- if getCreatureName(pk) == "Ditto" then
- 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, "Ditto")
- end
- end
- if isGhostPokemon(pk) then doTeleportThing(pk, getPosByDir(getThingPos(cid), math.random(0, 7)), false) end
- doCreatureSetLookDir(pk, 2)
- adjustStatus(pk, item.uid, true, false, true)
- doAddPokemonInOwnList(cid, pokemon)
- doTransformItem(item.uid, item.itemid+1)
- local pokename = getItemAttribute(item.uid, "nick") or getCreatureName(pk)
- local mgo = gobackmsgs[math.random(1, #gobackmsgs)].go:gsub("doka", pokename)
- doCreatureSay(cid, mgo, TALKTYPE_SAY)
- doSendMagicEffect(getCreaturePosition(pk), effect)
- if useKpdoDlls then
- doUpdateMoves(cid)
- end
- end
- function doRegainSpeed(cid)
- if not isCreature(cid) then return 0 end
- if isPlayer(cid) or isNpc(cid) or ehNPC(cid) then --alterado v2.5
- local speed = PlayerSpeed
- if isPlayer(cid) and getPlayerGroupId(cid) >= 4 and getPlayerGroupId(cid) <= 7 then
- speed = 140*getPlayerGroupId(cid)
- end
- if getCreatureCondition(cid, CONDITION_PARALYZE) == true then
- doRemoveCondition(cid, CONDITION_PARALYZE)
- addEvent(doAddCondition, 10, cid, paralizeArea2) --alterado v2.5
- end
- doChangeSpeed(cid, speed)
- return speed
- end
- local speed = getCreatureBaseSpeed(cid) + getSpeed(cid) * speedRate --alterado v2.3
- if speed > 1500 then
- speed = 1500
- end
- doChangeSpeed(cid, -getCreatureSpeed(cid))
- if getCreatureCondition(cid, CONDITION_PARALYZE) == true then
- doRemoveCondition(cid, CONDITION_PARALYZE)
- addEvent(doAddCondition, 10, cid, paralizeArea2) --alterado v2.5
- end
- doChangeSpeed(cid, speed)
- return speed
- end
- function isPosEqualPos(pos1, pos2, checkstackpos)
- if pos1.x ~= pos2.x or pos1.y ~= pos2.y and pos1.z ~= pos2.z then
- return false
- end
- if checkstackpos and pos1.stackpos and pos2.stackpos and pos1.stackpos ~= pos2.stackpos then
- return false
- end
- return true
- end
- function getRandomGenderByName(name)
- local rate = newpokedex[name]
- if not rate then return 0 end
- rate = rate.gender
- if rate == 0 then
- gender = 3
- elseif rate == 1000 then
- gender = 4
- elseif rate == -1 then
- gender = 0
- elseif math.random(1, 1000) <= rate then
- gender = 4
- else
- gender = 3
- end
- return gender
- end
- function getRecorderPlayer(pos, cid)
- local ret = 0
- if cid and getThingPos(cid).x == pos.x and getThingPos(cid).y == pos.y then
- return cid
- end
- local s = {}
- s.x = pos.x
- s.y = pos.y
- s.z = pos.z
- for a = 0, 255 do
- s.stackpos = a
- local b = getTileThingByPos(s).uid
- if b > 1 and isPlayer(b) and getCreatureOutfit(b).lookType ~= 814 then
- ret = b
- end
- end
- return ret
- end
- function getRecorderCreature(pos, cid)
- local ret = 0
- if cid and getThingPos(cid).x == pos.x and getThingPos(cid).y == pos.y then
- return cid
- end
- local s = {}
- s.x = pos.x
- s.y = pos.y
- s.z = pos.z --alterado v2.6
- for a = 0, 255 do
- s.stackpos = a
- local b = getTileThingByPos(s).uid
- if b > 1 and isCreature(b) and getCreatureOutfit(b).lookType ~= 814 then
- ret = b
- end
- end
- return ret
- end
- function doCreatureSetOutfit(cid, outfit, time)
- doSetCreatureOutfit(cid, outfit, time)
- end
- function doMagicalFlower(cid, away)
- if not isCreature(cid) then return true end
- for x = -3, 3 do
- for y = -3, 3 do
- local a = getThingPos(cid)
- a.x = a.x + x
- a.y = a.y + y
- if away then
- doSendDistanceShoot(a, getThingPos(cid), 21)
- else
- doSendDistanceShoot(getThingPos(cid), a, 21)
- end
- end
- end
- end
- function isItemPokeball(item)
- if not item then return false end
- for a, b in pairs (pokeballs) do
- if isInArray(b.all, item) then return true end
- end
- return false
- end
- function isPokeball(item)
- if not item then return false end
- if item >= 11826 and item <= 11837 then
- return true
- end
- if item >= 11737 and item <= 11748 then
- return true
- end
- return false
- end
- function getPokeballType(id)
- for a, b in pairs (pokeballs) do
- if isInArray(b.all, id) then
- return a
- end
- end
- return "none"
- end
- randomdiagonaldir = {
- [NORTHEAST] = {NORTH, EAST},
- [SOUTHEAST] = {SOUTH, EAST},
- [NORTHWEST] = {NORTH, WEST},
- [SOUTHWEST] = {SOUTH, WEST}}
- function doFaceOpposite(cid)
- local a = getCreatureLookDir(cid)
- local d = {
- [NORTH] = SOUTH,
- [SOUTH] = NORTH,
- [EAST] = WEST,
- [WEST] = EAST,
- [NORTHEAST] = SOUTHWEST,
- [NORTHWEST] = SOUTHEAST,
- [SOUTHEAST] = NORTHWEST,
- [SOUTHWEST] = NORTHEAST}
- doCreatureSetLookDir(cid, d[a])
- end
- function doFaceRandom(cid)
- local a = getCreatureLookDir(cid)
- local d = {
- [NORTH] = {SOUTH, WEST, EAST},
- [SOUTH] = {NORTH, WEST, EAST},
- [WEST] = {SOUTH, NORTH, EAST},
- [EAST] = {SOUTH, WEST, NORTH}}
- doChangeSpeed(cid, 1)
- doCreatureSetLookDir(cid, d[a][math.random(1, 3)])
- doChangeSpeed(cid, -1)
- end
- function getFaceOpposite(dir)
- local d = {
- [NORTH] = SOUTH,
- [SOUTH] = NORTH,
- [EAST] = WEST,
- [WEST] = EAST,
- [NORTHEAST] = SOUTHWEST,
- [NORTHWEST] = SOUTHEAST,
- [SOUTHEAST] = NORTHWEST,
- [SOUTHWEST] = NORTHEAST}
- return d[dir]
- end
- function getResistance(cid, combat)
- if isPlayer(cid) then return false end
- local poketype1 = pokes[getCreatureName(cid)].type
- local poketype2 = pokes[getCreatureName(cid)].type2
- local multiplier = 1
- if effectiveness[combat].super and isInArray(effectiveness[combat].super, poketype1) then
- multiplier = multiplier * 2
- end
- if poketype2 and effectiveness[combat].super and isInArray(effectiveness[combat].super, poketype2) then
- multiplier = multiplier * 2
- end
- if effectiveness[combat].weak and isInArray(effectiveness[combat].weak, poketype1) then
- multiplier = multiplier * 0.5
- end
- if poketype2 and effectiveness[combat].weak and isInArray(effectiveness[combat].weak, poketype2) then
- multiplier = multiplier * 0.5
- end
- if effectiveness[combat].non and isInArray(effectiveness[combat].non, poketype1) then
- multiplier = multiplier * 0
- end
- if poketype2 and effectiveness[combat].non and isInArray(effectiveness[combat].non, poketype2) then
- multiplier = multiplier * 0
- end
- if multiplier == 0.25 then
- multiplier = 0.5
- elseif multiplier == 4 then
- multiplier = 2
- end
- return multiplier
- end
- function getCreatureDirectionToTarget(cid, target, ranged)
- if not isCreature(cid) then return true end
- if not isCreature(target) then return getCreatureLookDir(cid) end
- local dirs = {
- [NORTHEAST] = {NORTH, EAST},
- [SOUTHEAST] = {SOUTH, EAST},
- [NORTHWEST] = {NORTH, WEST},
- [SOUTHWEST] = {SOUTH, WEST}}
- local x = getDirectionTo(getThingPos(cid), getThingPos(target), false)
- if x <= 3 then return x
- else
- local xdistance = math.abs(getThingPos(cid).x - getThingPos(target).x)
- local ydistance = math.abs(getThingPos(cid).y - getThingPos(target).y)
- if xdistance > ydistance then
- return dirs[x][2]
- elseif ydistance > xdistance then
- return dirs[x][1]
- elseif isInArray(dirs[x], getCreatureLookDir(cid)) then
- return getCreatureLookDir(cid)
- else
- return dirs[x][math.random(1, 2)]
- end
- end
- end
- function getSomeoneDescription(cid)
- if isPlayer(cid) then return getPlayerNameDescription(cid) end
- return getMonsterInfo(getCreatureName(cid)).description
- end
- function isGhostPokemon(cid)
- if not isCreature(cid) then return false end
- if isInArray({"Gengar", "Haunter", "Gastly", "Misdreavus", "Shiny Gengar"}, getCreatureName(cid)) then
- return true
- end
- return false
- end
- function updateGhostWalk(cid)
- if not isCreature(cid) then return false end
- local pos = getThingPos(cid)
- pos.x = pos.x + 1
- pos.y = pos.y + 1
- local ret = getThingPos(cid)
- doTeleportThing(cid, pos, false)
- doTeleportThing(cid, ret, false)
- return true
- end
- function doRemoveElementFromTable(t, e)
- local ret = {}
- for a = 1, #t do
- if t[a] ~= e then
- table.insert(ret, t[a])
- end
- end
- return ret
- end
- function doFaceCreature(sid, pos)
- if not isCreature(sid) then return true end
- if getThingPos(sid).x == pos.x and getThingPos(sid).y == pos.y then return true end
- local ret = 0
- local ld = getCreatureLookDir(sid)
- local dir = getDirectionTo(getThingPos(sid), pos)
- local al = {
- [NORTHEAST] = {NORTH, EAST},
- [NORTHWEST] = {NORTH, WEST},
- [SOUTHEAST] = {SOUTH, EAST},
- [SOUTHWEST] = {SOUTH, WEST}}
- if dir >= 4 and isInArray(al[dir], ld) then return true end
- doChangeSpeed(sid, 1)
- if dir == 4 then
- ret = math.random(2, 3)
- elseif dir == 5 then
- ret = math.random(1, 2)
- elseif dir == 6 then
- local dirs = {0, 3}
- ret = dirs[math.random(1, 2)]
- elseif dir == 7 then
- ret = math.random(0, 1)
- else
- ret = getDirectionTo(getThingPos(sid), pos)
- end
- doCreatureSetLookDir(sid, ret)
- doChangeSpeed(sid, -1)
- return true
- end
- function doCreatureAddCondition(cid, condition)
- if not isCreature(cid) then return true end
- doAddCondition(cid, condition)
- end
- function doCreatureRemoveCondition(cid, condition)
- if not isCreature(cid) then return true end
- doRemoveCondition(cid, condition)
- end
- function setCD(item, tipo, tempo)
- if not tempo or not tonumber(tempo) then
- doItemEraseAttribute(item, tipo)
- return true
- end
- doItemSetAttribute(item, tipo, "cd:"..(tempo + os.time()).."")
- return tempo + os.time()
- end
- function getCD(item, tipo, limite)
- if not getItemAttribute(item, tipo) then
- return 0
- end
- local string = getItemAttribute(item, tipo):gsub("cd:", "")
- local number = tonumber(string) - os.time()
- if number <= 0 then
- return 0
- end
- if limite and limite < number then
- return 0
- end
- return number
- end
- function doSendMoveEffect(cid, target, effect)
- if not isCreature(cid) or not isCreature(target) then return true end
- doSendDistanceShoot(getThingPos(cid), getThingPos(target), effect)
- return true
- end
- function doSetItemActionId(uid, actionid)
- doItemSetAttribute(uid, "aid", actionid)
- return true
- end
- function threeNumbers(number)
- if number <= 9 then
- return "00"..number..""
- elseif number <= 99 then
- return "0"..number..""
- end
- return ""..number..""
- end
- function isBr(cid)
- if getPlayerStorageValue(cid, 105505) ~= -1 then
- return true
- end
- return false
- end
- function isBeingUsed(ball)
- if isInArray({11827, 11830, 11833, 11836, 11738, 11741, 11744, 11747}, ball) then
- return true
- end
- return false
- end
- function doRemoveTile(pos)-- Script by mock
- pos.stackpos = 0
- local sqm = getTileThingByPos(pos)
- doRemoveItem(sqm.uid,1)
- end
- function doCreateTile(id,pos) -- By mock
- doAreaCombatHealth(0,0,pos,0,0,0,CONST_ME_NONE)
- doCreateItem(id,1,pos)
- end
- function hasSqm(pos)
- local f = getTileThingByPos(pos)
- if f.itemid ~= 0 and f.itemid ~= 1 then
- return true
- end
- return false
- end
- function getPosDirs(p, dir) -- By MatheusMkalo
- return dir == 1 and {x=p.x-1, y=p.y, z=p.z} or dir == 2 and {x=p.x-1, y=p.y+1, z=p.z} or dir == 3 and {x=p.x, y=p.y+1, z=p.z} or dir == 4 and {x=p.x+1, y=p.y+1, z=p.z} or dir == 5 and {x=p.x+1, y=p.y, z=p.z} or dir == 6 and {x=p.x+1, y=p.y-1, z=p.z} or dir == 7 and {x=p.x, y=p.y-1, z=p.z} or dir == 8 and {x=p.x-1, y=p.y-1, z=p.z}
- end
- function canWalkOnPos(pos, creature, pz, water, sqm, proj)
- if not pos then return false end
- if not pos.x then return false end
- if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid <= 1 and sqm then return false end
- if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 919 then return false end
- if isInArray({4820, 4821, 4822, 4823, 4824, 4825}, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false end
- if getTopCreature(pos).uid > 0 and creature then return false end
- if getTileInfo(pos).protection and pz then return false end
- local n = not proj and 3 or 2 --alterado v2.6
- for i = 0, 255 do
- pos.stackpos = i
- local tile = getTileThingByPos(pos)
- if tile.itemid ~= 0 and i ~= 253 and not isCreature(tile.uid) then --edited
- if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
- return false
- end
- end
- end
- return true
- end
- function canWalkOnPos2(pos, creature, pz, water, sqm, proj) --alterado v2.6
- if not pos then return false end
- if not pos.x then return false end
- if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid <= 1 and sqm then return false end
- if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 919 then return false end
- if isInArray({4820, 4821, 4822, 4823, 4824, 4825}, getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false end
- if getTopCreature(pos).uid > 0 and creature then return false end
- if getTileInfo(pos).protection and pz then return false end
- --[[local n = not proj and 3 or 2
- for i = 0, 255 do
- pos.stackpos = i --edited pra retirar um bug.. ;x
- local tile = getTileThingByPos(pos)
- if tile.itemid ~= 0 and i ~= 253 and not isCreature(tile.uid) then --edited
- if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
- return false
- end
- end
- end ]]
- return true
- end
- function getFreeTile(pos, cid)
- if canWalkOnPos(pos, true, false, true, true, false) then
- return pos
- end
- local positions = {}
- for a = 0, 7 do
- if canWalkOnPos(getPosByDir(pos, a), true, false, true, true, false) then
- table.insert(positions, pos)
- end
- end
- if #positions >= 1 then
- if isCreature(cid) then
- local range = 1000
- local ret = getThingPos(cid)
- for b = 1, #positions do
- if getDistanceBetween(getThingPos(cid), positions[b]) < range then
- ret = positions[b]
- range = getDistanceBetween(getThingPos(cid), positions[b])
- end
- end
- return ret
- else
- return positions[math.random(#positions)]
- end
- end
- return getThingPos(cid)
- end
- function isWalkable(pos, creature, proj, pz, water)-- by Nord
- if getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0 then return false end
- if isWater(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid) and water then return false end
- if getTopCreature(pos).uid > 0 and creature then return false end
- if getTileInfo(pos).protection and pz then return false, true end
- local n = not proj and 3 or 2
- for i = 0, 255 do
- pos.stackpos = i
- local tile = getTileThingByPos(pos)
- if tile.itemid ~= 0 and not isCreature(tile.uid) then
- if hasProperty(tile.uid, n) or hasProperty(tile.uid, 7) then
- return false
- end
- end
- end
- return true
- end
- function isPlayerSummon(cid, uid)
- if getCreatureMaster(uid) == cid then
- return TRUE
- end
- return FALSE
- end
- function isSummon(sid)
- if not isCreature(sid) then return false end --alterado v2.5
- --
- if isPlayer(sid) then
- return false
- end
- if isPlayer(getCreatureMaster(sid)) then
- return true
- end
- return false
- end
- function hasSpaceInContainer(container) --alterado v2.6
- if not isContainer(container) then return false end
- if getContainerSize(container) < getContainerCap(container) then return true end
- for slot = 0, (getContainerSize(container)-1) do
- local item = getContainerItem(container, slot)
- if isContainer(item.uid) then
- if hasSpaceInContainer(item.uid) then
- return true
- end
- end
- end
- return false
- end
- function getItemsInContainerById(container, itemid) -- Function By Kydrai
- local items = {}
- if isContainer(container) and getContainerSize(container) > 0 then
- for slot=0, (getContainerSize(container)-1) do
- local item = getContainerItem(container, slot)
- if isContainer(item.uid) then
- local itemsbag = getItemsInContainerById(item.uid, itemid)
- for i=0, #itemsbag do
- table.insert(items, itemsbag[i])
- end
- else
- if itemid == item.itemid then
- table.insert(items, item.uid)
- end
- end
- end
- end
- return items
- end
- function getPokeballsInContainer(container) -- Function By Kydrai
- if not isContainer(container) then return {} end
- local items = {}
- if isContainer(container) and getContainerSize(container) > 0 then
- for slot=0, (getContainerSize(container)-1) do
- local item = getContainerItem(container, slot)
- if isContainer(item.uid) then
- local itemsbag = getPokeballsInContainer(item.uid)
- for i=0, #itemsbag do
- table.insert(items, itemsbag[i])
- end
- elseif isPokeball(item.itemid) then
- table.insert(items, item.uid)
- end
- end
- end
- return items
- end
- function getItensUniquesInContainer(container) --alterado v2.6
- if not isContainer(container) then return {} end
- local items = {}
- if isContainer(container) and getContainerSize(container) > 0 then
- for slot=0, (getContainerSize(container)-1) do
- local item = getContainerItem(container, slot)
- if isContainer(item.uid) then
- local itemsbag = getItensUniquesInContainer(item.uid)
- for i=0, #itemsbag do
- table.insert(items, itemsbag[i])
- end
- elseif getItemAttribute(item.uid, "unique") then
- table.insert(items, item)
- end
- end
- end
- return items
- end
- function addItemInFreeBag(container, item, num)
- if not isContainer(container) or not item then return false end
- if not num or num <= 0 then num = 1 end
- if getContainerSize(container) < getContainerCap(container) then
- return doAddContainerItem(container, item, num)
- else
- for slot = 0, (getContainerSize(container)-1) do
- local container2 = getContainerItem(container, slot)
- if isContainer(container2.uid) and getContainerSize(container2.uid) < getContainerCap(container2.uid) then
- return doAddContainerItem(container2.uid, item, num)
- end
- end
- end
- return false
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement