Jump to content
Close

simahamed

Member
  • Content Count

    27
  • Joined

  • Last visited

About simahamed

  • Rank
    Craftsman

Profile Information

  • Gender
    Masculino
  • I am
    Tibiano

Recent Profile Visitors

834 profile views
  1. quando crio um novo player ele naoconsegue abrir a bag, o player vem sem outfit e da o seguinte erro.... [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoAddContainerItem) Container not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoItemSetAttribute) Item not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoItemSetAttribute) Item not found [Error - CreatureScript Interface] data/creaturescripts/scripts/player/login.lua:onLogin Description: (luaDoItemSetAttribute) Item not found alguem pode explicar detalhadamente se possivel como resolver....desde ja obrigado
  2. mano só vim aqui para te parebenizar..... show de bola me ajudou de ++++ e tenho certeza que vai ajudar mais gente rep +++ pra ti abrax
  3. gente ta dando esse erro, sera que algum de vcs sabem solucionar? [02/08/2014 14:22:11] [Error - Action Interface] [02/08/2014 14:22:11] data/actions/scripts/booststone.lua:onUse [02/08/2014 14:22:11] Description: [02/08/2014 14:22:11] data/actions/scripts/booststone.lua:21: attempt to perform arithmetic on a nil value [02/08/2014 14:22:11] stack traceback: [02/08/2014 14:22:11] data/actions/scripts/booststone.lua:21: in function <data/actions/scripts/booststone.lua:1> esse é o script function onUse(cid, item, topos, item2, frompos) local myball = getPlayerSlotItem(cid, 8) local boost = getItemAttribute(myball.uid, "boost") or 0 local boosts = 0 if boost == 50 then return doPlayerSendCancel(cid, "Sorry, is not possible.") end if #getCreatureSummons(cid) >= 1 then if getPlayerAccess(cid) == 6 then boosts = 10 end boosts = boosts + 1 local pokemon = getItemAttribute(myball.uid, "poke") local off = pokes[pokemon].offense * boost_rate * boosts local def = pokes[pokemon].defense * boost_rate * boosts local agi = pokes[pokemon].agility * boosts local spatk = pokes[pokemon].specialattack * boost_rate * boosts local vit = pokes[pokemon].vitality * boost_rate * boosts doSetItemAttribute(myball.uid, "boost", boost + boosts) doItemSetAttribute(myball.uid, "offense", getItemAttribute(myball.uid, "offense") + off) doItemSetAttribute(myball.uid, "defense", getItemAttribute(myball.uid, "defense") + def) doItemSetAttribute(myball.uid, "speed", getItemAttribute(myball.uid, "speed") + agi) doItemSetAttribute(myball.uid, "specialattack", getItemAttribute(myball.uid, "specialattack") + spatk) doItemSetAttribute(myball.uid, "vitality", getItemAttribute(myball.uid, "vitality") + vit) doRemoveItem(item.uid) doSendMagicEffect(getThingPos(item2.uid), 40) doPlayerSendTextMessage(cid, 27, "Congrulations, your "..pokemon..", as beem boosted +1.") doPlayerSendTextMessage(cid, 27, "Now your "..pokemon.." have a boost +"..boosts + boost..".") doSendAnimatedText(getThingPos(item2.uid), "BOOST!", 71) doPlayerSetVocation(cid,4) else return doPlayerSendCancel(cid, "Only use in yours pokemons.") end return true end a stone náo esta sumindo da bag .... me ajudem por favor abrax a todos
  4. WIN mano pin missile eh exp 2.0 eh
  5. gostaria que os player vips ganhassem mais exp do que os free... sera que tem como vvcs me ajudar? porfavor vlw
  6. ta dando esse erro quando eu carrego o server [26/07/2014 21:37:54] [Error - CreatureScript Interface] [26/07/2014 21:37:54] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [26/07/2014 21:37:54] Description: [26/07/2014 21:37:54] (luaGetThingFromPos) Tile not found [26/07/2014 21:39:21] [Error - Spell Interface] [26/07/2014 21:39:21] data/spells/scripts/ps/Pin Missile.lua:onCastSpell [26/07/2014 21:39:21] Description: [26/07/2014 21:39:21] (luaGetThingFromPos) Tile not found por favor alguem me ajude não sei mais o q fazer ajudou = rep ++++ abrax galera eu descobri o que ta acontecendo, mas naum sei c vou conseguir explicar e ja tentei mas naum consegui arrumar também.... HEEEEEEEEEEEEEEELLLLPPPPP kkkkkkkkk... é assim, se o player estiver em uma montanha, e ele usar um atk do pokemon q atinja alguns tiles na frente dele, (exemplo PIN MISSILE do beedrill) e nessa area q o atk acertar, for o fim da montanha, ai da esse erro no server, e o atk dele demora a sair, e se for varios atks trava o server. observação: fiz vários testes ( exemplo: criei uma montanha quadrada e ataquei no meio dela, e naum deu o erro, ai dei um passo, ataquei e naum deu erro novamente. Fui de passo em passo, so que quando o atk atingiu o fim da montanha, foi batata deu o erro. Tenho certeza que eh como se o atak não tivesse um tile para acertar por isso, a msg Tile not found. obs: naum acontece só com o pin missile, qualquer atk da erro. o erro eh esse: [26/07/2014 21:39:21] [Error - Spell Interface] [26/07/2014 21:39:21] data/spells/scripts/ps/Pin Missile.lua:onCastSpell [26/07/2014 21:39:21] Description: [26/07/2014 21:39:21] (luaGetThingFromPos) Tile not found não sei se entenderam, mas tentem por favor, to empacado aqui a tres dias. desde ja obrigado abraxxxx
  7. quando eu ligo o server aperece os seguintes erros: ( se tiver em area errada por favor movam) [14/07/2014 16:56:33] >> Loading items [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11295 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11296 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11297 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11298 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11299 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11300 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11301 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11302 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11303 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11308 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11317 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11318 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11319 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11320 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11321 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11322 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11323 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11324 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11325 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11326 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11327 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11328 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11329 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11330 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11331 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11349 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11350 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11355 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11360 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11361 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11362 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11363 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11364 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11365 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11366 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11367 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 11368 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 102 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 105 [14/07/2014 16:56:33] [Warning - Items::loadFromXml] Duplicate registered item with id 107 da pra arrumar? rep +++ pra quem ajudar. abrax a todos
  8. anna parabens vc eh d mais ajudou mesmo rep +++++++ pra ti
  9. gente nessa script que é da dropstone: local effect = 173 local function func(cid, position, corpseid, effect) if not isCreature(cid) then return true end local corpse = getTileItemById(position, corpseid).uid if corpse <= 1 then return end if not isContainer(corpse) then return true end for slot = 0, (getContainerSize(corpse)-1) do local item = getContainerItem(corpse, slot) if item.uid <= 1 then return end if isStone(item.itemid) then return doSendMagicEffect(getThingPos(cid), effect) end end end function onKill(cid, target, lastHit) if not ehMonstro(target) then return true end local corpse = getMonsterInfo(getCreatureName(target)).lookCorpse addEvent(func, 5, getCreatureSummons(cid)[1], getThingPos(target), corpse, effect) return true end ta dando esse erro [09/07/2014 14:09:31] [Error - CreatureScript Interface] [09/07/2014 14:09:31] In a timer event called from: [09/07/2014 14:09:31] data/creaturescripts/scripts/dropStone.lua:onKill [09/07/2014 14:09:31] Description: [09/07/2014 14:09:31] data/lib/some functions.lua:547: attempt to compare number with nil [09/07/2014 14:09:31] stack traceback: [09/07/2014 14:09:31] data/lib/some functions.lua:547: in function 'isStone' [09/07/2014 14:09:31] data/creaturescripts/scripts/dropStone.lua:10: in function <data/creaturescripts/scripts/dropStone.lua:2> e no erro tambem fala sobre data/lib/some functions..... a script do some functions é a seguinte: function addPokeToPlayer(cid, pokemon, boost, gender, ball, unique) --alterado v1.9 \/ peguem ele todo... local genders = { ["male"] = 4, ["female"] = 3, [1] = 4, [0] = 3, [4] = 4, [3] = 3, } if not isCreature(cid) then return false end local pokemon = doCorrectString(pokemon) if not pokes[pokemon] then return false end local GENDER = (gender and genders[gender]) and genders[gender] or getRandomGenderByName(pokemon) local btype = (ball and pokeballs[ball]) and ball or isShinyName(pokemon) and "shinynormal" or "normal" local happy = 250 if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then item = doCreateItemEx(11826) else item = addItemInFreeBag(getPlayerSlotItem(cid, 3).uid, 11826, 1) end if not item then return false end doItemSetAttribute(item, "poke", pokemon) doItemSetAttribute(item, "hp", 1) doItemSetAttribute(item, "happy", happy) doItemSetAttribute(item, "gender", GENDER) doSetItemAttribute(item, "hands", 0) doItemSetAttribute(item, "description", "Contains a "..pokemon..".") doItemSetAttribute(item, "fakedesc", "Contains a "..pokemon..".") if boost and tonumber(boost) and tonumber(boost) > 0 and tonumber(boost) <= 50 then doItemSetAttribute(item, "boost", boost) end if unique then doItemSetAttribute(item, "unique", getCreatureName(cid)) end if (getPlayerFreeCap(cid) >= 6 and not isInArray({5, 6}, getPlayerGroupId(cid))) or not hasSpaceInContainer(getPlayerSlotItem(cid, 3).uid) then doPlayerSendMailByName(getCreatureName(cid), item, 1) sendMsgToPlayer(cid, 27, "You are already holding six pokemons, so your new pokemon was sent to your depot.") end if (isShinyName(pokemon) or (boost and tonumber(boost) and tonumber(boost) >= 10)) and pokeballs["shiny"..btype] then doTransformItem(item, pokeballs["shiny"..btype].on) else doTransformItem(item, pokeballs[btype].on) end return true end --------------------------- function unLock(ball) if not ball or ball <= 0 then return false end if getItemAttribute(ball, "lock") and getItemAttribute(ball, "lock") > 0 then local vipTime = getItemAttribute(ball, "lock") local timeNow = os.time() local days = math.ceil((vipTime - timeNow)/(24 * 60 * 60)) if days <= 0 then doItemEraseAttribute(ball, "lock") doItemEraseAttribute(ball, "unique") return true end end return false end function getGuildMembersOnline(GuildId) local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerGuildId(pid) == tonumber(GuildId) then table.insert(players, pid) end end --by Vodkart return #players > 0 and players or false end function getGuildMembers(GuildId) local players,query = {},db.getResult("SELECT `name` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. GuildId .. ");") if (query:getID() ~= -1) then repeat table.insert(players,query:getDataString("name")) until not query:next() --by Vodkart query:free() end return #players > 0 and players or false end --/////////////////////////////////////////////////////////////////////////////////--- function sendMsgToPlayer(cid, tpw, msg) --alterado v1.7 \/\/\/ if not isCreature(cid) or not tpw or not msg then return true end return doPlayerSendTextMessage(cid, tpw, msg) end function getPlayerDesc(cid, thing, TV) if (not isCreature(cid) or not isCreature(thing)) and not TV then return "" end local pos = getThingPos(thing) local ocup = youAre[getPlayerGroupId(thing)] local rank = (getPlayerStorageValue(thing, 86228) <= 0) and "a Pokemon Trainer" or lookClans[getPlayerStorageValue(thing, 86228)][getPlayerStorageValue(thing, 862281)] local name = thing == cid and "yourself" or getCreatureName(thing) local art = thing == cid and "You are" or (getPlayerSex(thing) == 0 and "She is" or "He is") local str = {} table.insert(str, "You see "..name..". "..art.." ") if youAre[getPlayerGroupId(thing)] then table.insert(str, (ocup).." and "..rank.." from ".. getTownName(getPlayerTown(thing))..".") else table.insert(str, (rank).." from ".. getTownName(getPlayerTown(thing))..".") end if getPlayerGuildId(thing) > 0 then table.insert(str, " "..art.." "..getPlayerGuildRank(thing).." from the "..getPlayerGuildName(thing)..".") end if TV then table.insert(str, " "..art.." watching TV.") end table.insert(str, ((isPlayer(cid) and youAre[getPlayerGroupId(cid)]) and "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]" or "")) return table.concat(str) end ------------------------------------------------------------------------------------------------- /\/\ function getLivePokeballs(cid, container, duel) if not isCreature(cid) then return {} end if not isContainer(container) then return {} end local items = {} --- local ballSlot = getPlayerSlotItem(cid, 8) if ballSlot.uid ~= 0 then for a, b in pairs (pokeballs) do if ballSlot.itemid == b.on or ballSlot.itemid == b.use then if duel and getPlayerLevel(cid) >= (pokes[getItemAttribute(ballSlot.uid, "poke")].level + getPokeballBoost(ballSlot)) then table.insert(items, ballSlot.uid) --alterado v1.8 elseif not duel then table.insert(items, ballSlot.uid) end end end end --- 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 if not isInArray(items, itemsbag) then table.insert(items, itemsbag) end end elseif isPokeball(item.itemid) then for a, b in pairs (pokeballs) do if item.itemid == b.on then if duel and getPlayerLevel(cid) >= (pokes[getItemAttribute(item.uid, "poke")].level + getPokeballBoost(item)) then table.insert(items, item.uid) --alterado v1.8 elseif not duel then table.insert(items, item.uid) end end end 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 --alterado v1.6.1 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 ------------------------------------------------------------------------------------------------------ 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 nextHorario(cid) horarioAtual = os.date("%X") horario = string.explode(horarioAtual, ":") for i = 1, #horas do horarioComparacao = horas horarioComp = string.explode(horarioComparacao, ":") --------------- if tonumber(horarioComp[1]) > tonumber(horario[1]) then return horarioComparacao elseif tonumber(horarioComp[1]) == tonumber(horario[1]) and tonumber(horario[2]) < tonumber(horarioComp[2]) then return horarioComparacao end end return horas[1] end function getTimeDiff(timeDiff) local dateFormat = { {'hour', timeDiff / 60 / 60}, --6% {'min', timeDiff / 60 % 60}, } local out = {} 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 getTimeDiff2(timeDiff) local dateFormat = { {'hour', timeDiff / 60 / 60}, --6% {'min', timeDiff / 60 % 60}, {'sec', timeDiff % 60}, } local out = {} for k, t in ipairs(dateFormat) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #dateFormat and ' ' or ' and ') .. v .. '' .. (v <= 1 and t[1] or t[1].."s")) end 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} --- 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 v1.5 local str = "cm_move"..c setCD(item, str, 0) end end end function ehNPC(cid) --alterado v1.9 return isCreature(cid) and not isPlayer(cid) and not isSummon(cid) and not isMonster(cid) end function ehMonstro(cid) --alterado v1.9 return cid and cid >= AUTOID_MONSTERS and cid < AUTOID_NPCS and getCreatureMaster(cid) == cid end --alterado v1.9.1 /\ 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) if getCreatureName(cid) == "Ditto" and pokes[getPlayerStorageValue(cid, 1010)] and getPlayerStorageValue(cid, 1010) ~= "Ditto" then if isSummon(cid) then local item = getPlayerSlotItem(getCreatureMaster(cid), 8) doSetCreatureOutfit(cid, {lookType = getItemAttribute(item.uid, "transOutfit")}, -1) --alterado v1.6.1 end end 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 if isCreature(getRecorderCreature(pos)) then return getRecorderCreature(pos) else pos.stackpos = 253 pid = getThingfromPos(pos).uid end 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 getPlayerStorageValue(master1, 6598754) >= 5 and getPlayerStorageValue(master2, 6598754) >= 5 then if getPlayerStorageValue(master1, 6598754) ~= getPlayerStorageValue(master2, 6598754) then if isDuelingAgainst(master1, master2) then --alterado v1.8 if isSummon(cid) and isPlayer(pid) then return "Cant" else return "Can" end end end end ---- pvp system 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) and ehMonstro(pid) then return "Can" end return "Cant" end function stopNow(cid, time) if not isCreature(cid) or not tonumber(time) or isSleeping(cid) then return true end --alterado v1.9.1 \/ local function podeMover(cid) if isPlayer(cid) then mayNotMove(cid, false) elseif isCreature(cid) then doRegainSpeed(cid) end end if isPlayer(cid) then mayNotMove(cid, true) else doChangeSpeed(cid, -getCreatureSpeed(cid)) end addEvent(podeMover, time, cid) 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 v1.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 v1.6 for i = 2, #summon do doSendMagicEffect(getThingPos(summon), 211) doRemoveCreature(summon) 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) return isCreature(cid) and string.find(getCreatureName(cid), "Shiny") --alterado v1.9 end function isShinyName(name) return tostring(name) and string.find(doCorrectString(name), "Shiny") --alterado v1.9 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"}, ["boost"] = {boostStone, "boost"}, --alterado v1.9 } 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 v1.6 [11448] = "Cocoon Stone", [11449] = "Crystal Stone", [11450] = "Darkess Stone", [11451] = "Earth Stone", [11452] = "Enigma Stone", [11454] = "Ancient 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", [boostStone] = "Boost Stone", --alterado v1.9 } if t[stoneID] then return t[stoneID] else return "" end end function isStone(id) if id >= leaf and id <= ice then return true end if id == boostStone then --alterado v1.9 return true end if id == 12232 or id == 12242 or id == 12244 or id == 12245 then return true end if (id >= sfire and id <= searth) or id == 12417 or id == 12419 then return true end return false end function isWater(id) return tonumber(id) and id >= 4820 and id <= 4825 --alterado v1.9 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 v1.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 table.insert(str, "He") elseif getPokemonGender(cid) == SEX_FEMALE then table.insert(str, "She") else table.insert(str, "It") end local h = getPlayerStorageValue(cid, 1008) if h >= tonumber(getConfigValue('PokemonStageVeryHappy')) then table.insert(str, " is very happy with you!") elseif h >= tonumber(getConfigValue('PokemonStageHappy')) then table.insert(str, " is happy.") elseif h >= tonumber(getConfigValue('PokemonStageOK')) then table.insert(str, " is unhappy.") elseif h >= tonumber(getConfigValue('PokemonStageSad')) then table.insert(str, " is sad.") elseif h >= tonumber(getConfigValue('PokemonStageMad')) then table.insert(str, " is mad.") else table.insert(str, " is very mad at you!") end return table.concat(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, getCreatureName(cid) == "Ditto" and "Ditto" or "Shiny Ditto") --edited 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") adjustStatus(cid, p.uid, true, true, true) end function isTransformed(cid) return isCreature(cid) and not isInArray({-1, "Ditto", "Shiny Ditto"}, getPlayerStorageValue(cid, 1010)) --alterado v1.9 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(str) local name = str:explode(" ") --alterado v1.9 local final = {} for _, s in ipairs(name) do table.insert(final, s:sub(1, 1):upper()..s:sub(2, #s):lower()) end return table.concat(final, (name[2] and " " or "")) 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 v1.6 duel system --////////////////////////////////////////////////////////////////////////////////////////-- if getPlayerStorageValue(cid, 52480) >= 1 and getPlayerStorageValue(cid, 52484) ~= 10 then return sendMsgToPlayer(cid, 27, "You can't do that while the duel don't begins!") --alterado v1.8 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 ----------------- 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) unLock(pokeball.uid) --alterado v1.8 if useOTClient then doPlayerSendCancel(cid, '12//,hide') --alterado v1.7 end if useKpdoDlls then doUpdateMoves(cid) end end local EFFECTS = { --[OutfitID] = {Effect} ["Magmar"] = 35, --alterado v1.5 ["Jynx"] = 17, ["Shiny Jynx"] = 17, ["Piloswine"] = 205, --alterado v1.8 ["Swinub"] = 205, } 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 balls = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid) --alterado v1.9 \/ local low = {} local lowPokes = {"Rattata", "Caterpie", "Weedle", "Oddish", "Pidgey", "Paras", "Poliwag", "Bellsprout", "Magikarp", "Hoppip", "Sunkern"} if #balls >= 1 then for _, uid in ipairs(balls) do local nome = getItemAttribute(uid, "poke") if not isInArray(lowPokes, pokemon) and nome == pokemon then return doPlayerSendTextMessage(cid, 27, "Sorry, but you can't carry two pokemons equals!") else if nome == pokemon then table.insert(low, nome) 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) < (x.level + boosts) then --alterado v1.8 \/ doPlayerSendCancel(cid, "You need level "..(x.level + boosts).." to use this pokemon.") 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"}, } if shinysClan[pokemon] and (getPlayerGroupId(cid) < 4 or getPlayerGroupId(cid) > 6) then --alterado v1.9 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 --alterado v1.8 \/ if pokemon == "Shiny Hitmonchan" or pokemon == "Hitmonchan" then if not getItemAttribute(item.uid, "hands") then doSetItemAttribute(item.uid, "hands", 0) end local hands = getItemAttribute(item.uid, "hands") doSetCreatureOutfit(pk, {lookType = hitmonchans[pokemon][hands].out}, -1) end end ------------------------------------------------------------------------- ---------movement magmar, jynx------------- if EFFECTS[getCreatureName(pk)] then markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) 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, 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) doCreatureSay(cid, mgo, TALKTYPE_SAY) doSendMagicEffect(getCreaturePosition(pk), effect) unLock(item.uid) --alterado v1.8 if useKpdoDlls then doUpdateMoves(cid) end end function doRegainSpeed(cid) --alterado v1.9 \/ if not isCreature(cid) then return true end local speed = PlayerSpeed if isMonster(cid) then speed = getSpeed(cid) elseif isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then speed = 200*getPlayerGroupId(cid) end doChangeSpeed(cid, -getCreatureSpeed(cid)) if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) 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 isPosEqual(getThingPos(cid), pos) then --alterado v1.9 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 isPosEqual(getThingPos(cid), pos) then --alterado v1.9 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 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) --alterado v1.9 \/ 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) return isItemPokeball(item) 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 local ghosts = {"Gastly", "Haunter", "Gengar", "Shiny Gengar", "Misdreavus", "Shiny Abra"} return isInArray(ghosts, getCreatureName(cid)) 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 not ball then return false end for a, b in pairs (pokeballs) do --alterado v1.9 if b.use == ball then return true end 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 v1.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 v1.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) < range then ret = positions range = getDistanceBetween(getThingPos(cid), positions) 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) return getCreatureMaster(uid) == cid --alterado v1.9 end function isSummon(sid) return isCreature(sid) and getCreatureMaster(sid) ~= sid and isPlayer(getCreatureMaster(sid)) --alterado v1.9 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) 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) end elseif isPokeball(item.itemid) then table.insert(items, item.uid) end end end return items end function getItensUniquesInContainer(container) --alterado v1.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) end elseif getItemAttribute(item.uid, "unique") then table.insert(items, item) end end end return items end function hasSpaceInContainer(container) --alterado v1.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 doPlayerAddItemStacking(cid, itemid, quant) -- by mkalo local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end por favor se puderem ver o que pode estar errado pra min ganha um joinha vlw abrax
  10. local ballslot = 12355 local ballslot_run = 12352 local stoneslot = 12354 local stoneslot_run = 12353 local button = 12356 local button_run = 12357 function isRunning(id) if isInArray({button_run, stoneslot_run, ballslot_run}, id) then return true end return false end boost_stones = { --alterado v1.9 \/ ["Bulbasaur"] = {leaf, boostStone}, ["Ivysaur"] = {leaf, boostStone}, ["Venusaur"] = {leaf, boostStone}, ["Charmander"] = {fire, boostStone}, ["Charmeleon"] = {fire, boostStone}, ["Charizard"] = {fire, boostStone}, ["Squirtle"] = {water, boostStone}, ["Wartortle"] = {water, boostStone}, ["Blastoise"] = {water, boostStone}, ["Caterpie"] = {coccon, boostStone}, ["Metapod"] = {coccon, boostStone}, ["Butterfree"] = {coccon, boostStone}, ["Weedle"] = {coccon, boostStone}, ["Kakuna"] = {coccon, boostStone}, ["Beedrill"] = {coccon, boostStone}, ["Pidgey"] = {heart, boostStone}, ["Pidgeotto"] = {heart, boostStone}, ["Pidgeot"] = {heart, boostStone}, ["Rattata"] = {heart, boostStone}, ["Raticate"] = {heart, boostStone}, ["Spearow"] = {heart, boostStone}, ["Fearow"] = {heart, boostStone}, ["Ekans"] = {venom, boostStone}, ["Arbok"] = {venom, boostStone}, ["Pikachu"] = {thunder, boostStone}, ["Raichu"] = {thunder, boostStone}, ["Sandshrew"] = {earth, boostStone}, ["Sandslash"] = {earth, boostStone}, ["Nidoran Female"] = {venom, boostStone}, ["Nidorina"] = {venom, boostStone}, ["Nidoqueen"] = {venom, earth, boostStone}, ["Nidoran Male"] = {venom, boostStone}, ["Nidorino"] = {venom, boostStone}, ["Nidoking"] = {venom, earth, boostStone}, ["Clefairy"] = {heart, boostStone}, ["Clefable"] = {heart, boostStone}, ["Vulpix"] = {fire, boostStone}, ["Ninetales"] = {fire, boostStone}, ["Jigglypuff"] = {heart, boostStone}, ["Wigglytuff"] = {heart, boostStone}, ["Zubat"] = {venom, boostStone}, ["Golbat"] = {venom, boostStone}, ["Oddish"] = {leaf, venom, boostStone}, ["Gloom"] = {leaf, venom, boostStone}, ["Vileplume"] = {leaf, venom, boostStone}, ["Paras"] = {coccon, leaf, boostStone}, ["Parasect"] = {coccon, leaf, boostStone}, ["Venonat"] = {coccon, venom, boostStone}, ["Venomoth"] = {coccon, venom, boostStone}, ["Diglett"] = {earth, boostStone}, ["Dugtrio"] = {earth, boostStone}, ["Meowth"] = {heart, boostStone}, ["Persian"] = {heart, boostStone}, ["Psyduck"] = {water, boostStone}, ["Golduck"] = {water, enigma, boostStone}, ["Mankey"] = {punch, boostStone}, ["Primeape"] = {punch, boostStone}, ["Growlithe"] = {fire, boostStone}, ["Arcanine"] = {fire, boostStone}, ["Poliwag"] = {water, boostStone}, ["Poliwhirl"] = {water, boostStone}, ["Poliwrath"] = {water, punch, boostStone}, ["Abra"] = {enigma, boostStone}, ["Kadabra"] = {enigma, boostStone}, ["Alakazam"] = {enigma, boostStone}, ["Machop"] = {punch, boostStone}, ["Machoke"] = {punch, boostStone}, ["Machamp"] = {punch, boostStone}, ["Bellsprout"] = {leaf, venom, boostStone}, ["Weepinbell"] = {leaf, venom, boostStone}, ["Victreebel"] = {leaf, venom, boostStone}, ["Tentacool"] = {water, venom, boostStone}, ["Tentacruel"] = {water, venom, boostStone}, ["Geodude"] = {earth, rock, boostStone}, ["Graveler"] = {earth, rock, boostStone}, ["Golem"] = {earth, rock, boostStone}, ["Ponyta"] = {fire, boostStone}, ["Rapidash"] = {fire, boostStone}, ["Slowpoke"] = {water, enigma, boostStone}, ["Slowbro"] = {water, enigma, boostStone}, ["Magnemite"] = {thunder, metal, boostStone}, ["Magneton"] = {thunder, metal, boostStone}, ["Farfetch'd"] = {heart, boostStone}, ["Doduo"] = {heart, boostStone}, ["Dodrio"] = {heart, boostStone}, ["Seel"] = {water, ice, boostStone}, ["Dewgong"] = {water, ice, boostStone}, ["Grimer"] = {venom, boostStone}, ["Muk"] = {venom, boostStone}, ["Shellder"] = {water, ice, boostStone}, ["Cloyster"] = {water, ice, boostStone}, ["Gastly"] = {dark, boostStone}, ["Haunter"] = {dark, boostStone}, ["Gengar"] = {dark, boostStone}, ["Onix"] = {rock, earth, boostStone}, ["Drowzee"] = {enigma, boostStone}, ["Hypno"] = {enigma, boostStone}, ["Krabby"] = {water, boostStone}, ["Kingler"] = {water, boostStone}, ["Voltorb"] = {thunder, boostStone}, ["Electrode"] = {thunder, boostStone}, ["Exeggcute"] = {enigma, leaf, boostStone}, ["Exeggutor"] = {enigma, leaf, boostStone}, ["Cubone"] = {earth, boostStone}, ["Marowak"] = {earth, boostStone}, ["Hitmonlee"] = {punch, boostStone}, ["Hitmonchan"] = {punch, boostStone}, ["Lickitung"] = {heart, boostStone}, ["Koffing"] = {venom, boostStone}, ["Weezing"] = {venom, boostStone}, ["Rhyhorn"] = {earth, rock, boostStone}, ["Rhydon"] = {earth, rock, boostStone}, ["Chansey"] = {heart, boostStone}, ["Tangela"] = {leaf, boostStone}, ["Kangaskhan"] = {heart, boostStone}, ["Horsea"] = {water, boostStone}, ["Seadra"] = {water, boostStone}, ["Goldeen"] = {water, boostStone}, ["Seaking"] = {water, boostStone}, ["Staryu"] = {water, boostStone}, ["Starmie"] = {water, boostStone}, ["Mr. Mime"] = {enigma, boostStone}, ["Scyther"] = {coccon, boostStone}, ["Jynx"] = {enigma, ice, boostStone}, ["Electabuzz"] = {thunder, boostStone}, ["Magmar"] = {fire, boostStone}, ["Pinsir"] = {coccon, boostStone}, ["Tauros"] = {heart, boostStone}, ["Magikarp"] = {water, boostStone}, ["Gyarados"] = {water, crystal, boostStone}, ["Lapras"] = {water, ice, boostStone}, ["Ditto"] = {heart, boostStone}, ["Eevee"] = {heart, boostStone}, ["Vaporeon"] = {water, boostStone}, ["Jolteon"] = {thunder, boostStone}, ["Flareon"] = {fire, boostStone}, ["Espeon"] = {enigma, boostStone}, ["Umbreon"] = {dark, boostStone}, ["Porygon"] = {heart, enigma, boostStone}, ["Omanyte"] = {rock, water, boostStone}, ["Omastar"] = {rock, water, boostStone}, ["Kabuto"] = {rock, water, boostStone}, ["Kabutops"] = {rock, water, boostStone}, ["Aerodactyl"] = {rock, boostStone}, ["Snorlax"] = {heart, boostStone}, ["Articuno"] = {ice, boostStone}, ["Zapdos"] = {thunder, boostStone}, ["Moltres"] = {fire, boostStone}, ["Dratini"] = {crystal, boostStone}, ["Dragonair"] = {crystal, boostStone}, ["Dragonite"] = {crystal, boostStone}, ["Mewtwo"] = {enigma, boostStone}, ["Mew"] = {enigma, boostStone}, -- ["Shiny Bulbasaur"] = {leaf, boostStone}, ["Shiny Ivysaur"] = {leaf, boostStone}, ["Shiny Venusaur"] = {leaf, boostStone}, ["Shiny Charmander"] = {fire, boostStone}, ["Shiny Charmeleon"] = {fire, boostStone}, ["Shiny Charizard"] = {fire, boostStone}, ["Shiny Squirtle"] = {water, boostStone}, ["Shiny Wartortle"] = {water, boostStone}, ["Shiny Blastoise"] = {water, boostStone}, ["Shiny Caterpie"] = {coccon, boostStone}, ["Shiny Metapod"] = {coccon, boostStone}, ["Shiny Butterfree"] = {coccon, boostStone}, ["Shiny Weedle"] = {coccon, boostStone}, ["Shiny Kakuna"] = {coccon, boostStone}, ["Shiny Beedrill"] = {coccon, boostStone}, ["Shiny Pidgey"] = {heart, boostStone}, ["Shiny Pidgeotto"] = {heart, boostStone}, ["Shiny Pidgeot"] = {heart, boostStone}, ["Shiny Rattata"] = {heart, boostStone}, ["Shiny Raticate"] = {heart, boostStone}, ["Shiny Spearow"] = {heart, boostStone}, ["Shiny Fearow"] = {heart, boostStone}, ["Shiny Ekans"] = {venom, boostStone}, ["Shiny Arbok"] = {venom, boostStone}, ["Shiny Pikachu"] = {thunder, boostStone}, ["Shiny Raichu"] = {thunder, boostStone}, ["Shiny Sandshrew"] = {earth, boostStone}, ["Shiny Sandslash"] = {earth, boostStone}, ["Shiny Nidoran Female"] = {venom, boostStone}, ["Shiny Nidorina"] = {venom, boostStone}, ["Shiny Nidoqueen"] = {venom, earth, boostStone}, ["Shiny Nidoran Male"] = {venom, boostStone}, ["Shiny Nidorino"] = {venom, boostStone}, ["Shiny Nidoking"] = {venom, earth, boostStone}, ["Shiny Clefairy"] = {heart, boostStone}, ["Shiny Clefable"] = {heart, boostStone}, ["Shiny Vulpix"] = {fire, boostStone}, ["Shiny Ninetales"] = {fire, boostStone}, ["Shiny Jigglypuff"] = {heart, boostStone}, ["Shiny Wigglytuff"] = {heart, boostStone}, ["Shiny Zubat"] = {venom, boostStone}, ["Shiny Golbat"] = {venom, boostStone}, ["Shiny Oddish"] = {leaf, venom, boostStone}, ["Shiny Gloom"] = {leaf, venom, boostStone}, ["Shiny Vileplume"] = {leaf, venom, boostStone}, ["Shiny Paras"] = {coccon, leaf, boostStone}, ["Shiny Parasect"] = {coccon, leaf, boostStone}, ["Shiny Venonat"] = {coccon, venom, boostStone}, ["Shiny Venomoth"] = {coccon, venom, boostStone}, ["Shiny Diglett"] = {earth, boostStone}, ["Shiny Dugtrio"] = {earth, boostStone}, ["Shiny Meowth"] = {heart, boostStone}, ["Shiny Persian"] = {heart, boostStone}, ["Shiny Psyduck"] = {water, boostStone}, ["Shiny Golduck"] = {water, enigma, boostStone}, ["Shiny Mankey"] = {punch, boostStone}, ["Shiny Primeape"] = {punch, boostStone}, ["Shiny Growlithe"] = {fire, boostStone}, ["Shiny Arcanine"] = {fire, boostStone}, ["Shiny Poliwag"] = {water, boostStone}, ["Shiny Poliwhirl"] = {water, boostStone}, ["Shiny Poliwrath"] = {water, punch, boostStone}, ["Shiny Abra"] = {enigma, boostStone}, ["Shiny Kadabra"] = {enigma, boostStone}, ["Shiny Alakazam"] = {enigma, boostStone}, ["Shiny Machop"] = {punch, boostStone}, ["Shiny Machoke"] = {punch, boostStone}, ["Shiny Machamp"] = {punch, boostStone}, ["Shiny Bellsprout"] = {leaf, venom, boostStone}, ["Shiny Weepinbell"] = {leaf, venom, boostStone}, ["Shiny Victreebel"] = {leaf, venom, boostStone}, ["Shiny Tentacool"] = {water, venom, boostStone}, ["Shiny Tentacruel"] = {water, venom, boostStone}, ["Shiny Geodude"] = {earth, rock, boostStone}, ["Shiny Graveler"] = {earth, rock, boostStone}, ["Shiny Golem"] = {earth, rock, boostStone}, ["Shiny Ponyta"] = {fire, boostStone}, ["Shiny Rapidash"] = {fire, boostStone}, ["Shiny Slowpoke"] = {water, enigma, boostStone}, ["Shiny Slowbro"] = {water, enigma, boostStone}, ["Shiny Magnemite"] = {thunder, metal, boostStone}, ["Shiny Magneton"] = {thunder, metal, boostStone}, ["Shiny Farfetch'd"] = {heart, boostStone}, ["Shiny Doduo"] = {heart, boostStone}, ["Shiny Dodrio"] = {heart, boostStone}, ["Shiny Seel"] = {water, ice, boostStone}, ["Shiny Dewgong"] = {water, ice, boostStone}, ["Shiny Grimer"] = {venom, boostStone}, ["Shiny Muk"] = {venom, boostStone}, ["Shiny Shellder"] = {water, ice, boostStone}, ["Shiny Cloyster"] = {water, ice, boostStone}, ["Shiny Gastly"] = {dark, boostStone}, ["Shiny Haunter"] = {dark, boostStone}, ["Shiny Gengar"] = {dark, boostStone}, ["Shiny Onix"] = {rock, earth, boostStone}, ["Shiny Drowzee"] = {enigma, boostStone}, ["Shiny Hypno"] = {enigma, boostStone}, ["Shiny Krabby"] = {water, boostStone}, ["Shiny Kingler"] = {water, boostStone}, ["Shiny Voltorb"] = {thunder, boostStone}, ["Shiny Electrode"] = {thunder, boostStone}, ["Shiny Exeggcute"] = {enigma, leaf, boostStone}, ["Shiny Exeggutor"] = {enigma, leaf, boostStone}, ["Shiny Cubone"] = {earth, boostStone}, ["Shiny Marowak"] = {earth, boostStone}, ["Shiny Hitmonlee"] = {punch, boostStone}, ["Shiny Hitmonchan"] = {punch, boostStone}, ["Shiny Hitmontop"] = {punch, boostStone}, --alterado v1.4 ["Shiny Lickitung"] = {heart, boostStone}, ["Shiny Koffing"] = {venom, boostStone}, ["Shiny Weezing"] = {venom, boostStone}, ["Shiny Rhyhorn"] = {earth, rock, boostStone}, ["Shiny Rhydon"] = {earth, rock, boostStone}, ["Shiny Chansey"] = {heart, boostStone}, ["Shiny Tangela"] = {leaf, boostStone}, ["Shiny Kangaskhan"] = {heart, boostStone}, ["Shiny Horsea"] = {water, boostStone}, ["Shiny Seadra"] = {water, boostStone}, ["Shiny Goldeen"] = {water, boostStone}, ["Shiny Seaking"] = {water, boostStone}, ["Shiny Staryu"] = {water, boostStone}, ["Shiny Starmie"] = {water, boostStone}, ["Shiny Mr. Mime"] = {enigma, boostStone}, ["Shiny Scyther"] = {coccon, boostStone}, ["Shiny Jynx"] = {enigma, ice, boostStone}, ["Shiny Electabuzz"] = {thunder, boostStone}, ["Shiny Magmar"] = {fire, boostStone}, ["Shiny Pinsir"] = {coccon, boostStone}, ["Shiny Tauros"] = {heart, boostStone}, ["Shiny Magikarp"] = {water, boostStone}, ["Shiny Gyarados"] = {water, crystal, boostStone}, ["Shiny Lapras"] = {water, ice, boostStone}, ["Shiny Ditto"] = {heart, boostStone}, ["Shiny Eevee"] = {heart, boostStone}, ["Shiny Vaporeon"] = {water, boostStone}, ["Shiny Jolteon"] = {thunder, boostStone}, ["Shiny Flareon"] = {fire, boostStone}, ["Shiny Porygon"] = {heart, enigma, boostStone}, ["Shiny Omanyte"] = {rock, water, boostStone}, ["Shiny Omastar"] = {rock, water, boostStone}, ["Shiny Kabuto"] = {rock, water, boostStone}, ["Shiny Kabutops"] = {rock, water, boostStone}, ["Shiny Aerodactyl"] = {rock, boostStone}, ["Shiny Snorlax"] = {heart, boostStone}, ["Shiny Articuno"] = {ice, boostStone}, ["Shiny Zapdos"] = {thunder, boostStone}, ["Shiny Moltres"] = {fire, boostStone}, ["Shiny Dratini"] = {crystal, boostStone}, ["Shiny Dragonair"] = {crystal, boostStone}, ["Shiny Dragonite"] = {crystal, boostStone}, ["Shiny Mewtwo"] = {enigma, boostStone}, ["Shiny Mew"] = {enigma, boostStone}, -- ["Chikorita"] = {leaf, boostStone}, ["Bayleef"] = {leaf, boostStone}, ["Meganium"] = {leaf, boostStone}, ["Cyndaquil"] = {fire, boostStone}, ["Quilava"] = {fire, boostStone}, ["Typhlosion"] = {fire, boostStone}, ["Totodile"] = {water, boostStone}, ["Croconaw"] = {water, boostStone}, ["Feraligatr"] = {water, boostStone}, ["Sentret"] = {heart, boostStone}, ["Furret"] = {heart, boostStone}, ["Hoothoot"] = {heart, enigma, boostStone}, ["Noctowl"] = {heart, enigma, boostStone}, ["Ledyba"] = {coccon, boostStone}, ["Ledian"] = {coccon, boostStone}, ["Spinarak"] = {coccon, venom, boostStone}, ["Ariados"] = {coccon, venom, boostStone}, ["Crobat"] = {venom, boostStone}, ["Chinchou"] = {water, thunder, boostStone}, ["Lanturn"] = {water, thunder, boostStone}, ["Pichu"] = {thunder, boostStone}, ["Cleffa"] = {heart, boostStone}, ["Iglybuff"] = {venom, boostStone}, ["Natu"] = {enigma, boostStone}, ["Xatu"] = {enigma, boostStone}, ["Mareep"] = {thunder, boostStone}, ["Flaaffy"] = {thunder, boostStone}, ["Ampharos"] = {thunder, boostStone}, ["Bellossom"] = {leaf, boostStone}, ["Marill"] = {water, boostStone}, ["Azulmarill"] = {water, boostStone}, ["Sudowoodo"] = {rock, earth, boostStone}, ["Politoed"] = {water, earth, boostStone}, ["Hoppip"] = {leaf, boostStone}, ["Skiploom"] = {leaf, boostStone}, ["Jumpluff"] = {leaf, boostStone}, ["Aipom"] = {heart, boostStone}, ["Sunkern"] = {leaf, boostStone}, ["Sunflora"] = {leaf, boostStone}, ["Yanma"] = {venom, coccon, boostStone}, ["Wooper"] = {water, boostStone}, ["Quagsire"] = {water, earth, boostStone}, ["Murkrow"] = {dark, boostStone}, ["Slowking"] = {water,enigma, boostStone}, ["Misdreavus"] = {dark, boostStone}, ["Wobbuffet"] = {enigma, boostStone}, ["Girafarig"] = {enigma, boostStone}, ["Pineco"] = {coccon, boostStone}, ["Forretress"] = {coccon, boostStone}, ["Gligar"] = {dark, heart, boostStone}, ["Steelix"] = {earth, rock, boostStone}, ["Snubbull"] = {heart, boostStone}, ["Granbull"] = {heart, boostStone}, ["Qwilfish"] = {water, boostStone}, ["Shuckle"] = {earth, boostStone}, ["Heracross"] = {coccon, boostStone}, ["Teddiursa"] = {heart, boostStone}, ["Ursaring"] = {heart, dark, boostStone}, ["Slugma"] = {fire, boostStone}, ["Magcargo"] = {fire, boostStone}, ["Swinub"] = {ice, earth, boostStone}, ["Piloswine"] = {ice, earth, boostStone}, ["Corsola"] = {water, boostStone}, ["Remoraid"] = {water, boostStone}, ["Octillery"] = {water, boostStone}, ["Delibird"] = {ice, heart, boostStone}, ["Mantine"] = {water, boostStone}, ["Skarmory"] = {heart, boostStone}, ["Houndour"] = {fire, dark, boostStone}, ["Houndoom"] = {fire, dark, boostStone}, ["Kingdra"] = {water, crystal, boostStone}, ["Phanpy"] = {earth, boostStone}, ["Donphan"] = {earth, boostStone}, ["porygon2"] = {enigma, boostStone}, ["Stantler"] = {heart, boostStone}, ["Smeargle"] = {heart, boostStone}, ["Tyrogue"] = {punch, boostStone}, ["Hitmontop"] = {punch, boostStone}, ["Smoochum"] = {ice, enigma, boostStone}, ["Elekid"] = {thunder, boostStone}, ["Magby"] = {fire, boostStone}, ["Miltank"] = {heart, boostStone}, ["Blissey"] = {heart, boostStone}, ["Raikou"] = {thunder, boostStone}, ["Entei"] = {fire, boostStone}, ["Suicune"] = {water, boostStone}, ["Larvitar"] = {earth, dark, boostStone}, ["Pupitar"] = {earth, dark, boostStone}, ["Tyranitar"] = {earth, dark, boostStone}, ["Lugia"] = {enigma, water, boostStone}, ["Ho-oh"] = {enigma, fire, boostStone}, ["Celebi"] = {leaf, enigma, boostStone}} function doRestoreBoostMachine(cid, b_pos, p_pos, s_pos, msg, msg2) doSendAnimatedText(b_pos, "DONE.", 215) if isCreature(cid) then doCreatureSetNoMove(cid, false) doPlayerSendTextMessage(cid, 27, msg) doPlayerSendTextMessage(cid, 27, msg2) end local ball_s = getTileItemById(p_pos, ballslot_run) doTransformItem(ball_s.uid, ballslot) local stne_s = getTileItemById(s_pos, stoneslot_run) doTransformItem(stne_s.uid, stoneslot) local butn_s = getTileItemById(b_pos, button_run) doTransformItem(butn_s.uid, button) end local stones_required = { -- custo base de stones para boostar [heart] = 1, [leaf] = 1, [water] = 1, [venom] = 1, [thunder] = 1, [rock] = 1, [punch] = 1, [fire] = 1, [coccon] = 1, [crystal] = 1, [dark] = 1, [earth] = 1, [enigma] = 1, [ice] = 1, [boostStone] = 1, --alterado v1.9 } local stone_increase = { -- a cada quantos boosts irá aumentar o custo de stones (aumenta 1 stone a x boosts) [heart] = 3, [leaf] = 3, [water] = 3, [venom] = 4, [thunder] = 4, [rock] = 3, [punch] = 4, [fire] = 3, [coccon] = 2, [crystal] = 15, [dark] = 4, [earth] = 4, [enigma] = 4, [ice] = 4, [boostStone] = 10000, --alterado v1.9 } local pbs = { [11826] = 11737, --normal acessa --alterado v1.9 \/ [11828] = 11739, --normal morto [11832] = 11740, --great acessa [11834] = 11742, --great morto [11835] = 11743, --super acessa [11837] = 11745, --super morto [11829] = 11746, --ultra acessa [11831] = 11748, --ultra morto [10975] = 12621, --saffari acessa [10977] = 12623, --saffari morto } function onUse(cid, item, topos, item2, frompos) if isRunning(item.itemid) then doPlayerSendCancel(cid, "Espere o processo de boost terminar.") return true end if item.itemid == button then local pbpos = topos pbpos.x = pbpos.x + 1 local ball_slot = getTileItemById(pbpos, ballslot) local myball = getContainerItem(ball_slot.uid, 0) if myball.uid <= 0 or getItemWeight(myball.uid) == 0 then doPlayerSendCancel(cid, "Voce precisa colocar uma pokeball contendo um pokemon no slot de bola.") return true end local pokemon = getItemAttribute(myball.uid, "poke") local boost = getItemAttribute(myball.uid, "boost") or 0 if boost >= 50 then doPlayerSendCancel(cid, "Seu pokemon ja chegou ao nivel maximo de boost.") return true end local stnpos = pbpos stnpos.x = stnpos.x - 2 local stone_slot = getTileItemById(stnpos, stoneslot) local stone = getContainerItem(stone_slot.uid, 0) if stone.uid <= 0 then doPlayerSendCancel(cid, "Voce precisa colocar uma stone no slot de stones.") return true end if not isStone(stone.itemid) then doPlayerSendCancel(cid, "Por favor, coloque apenas stones no slot de stones.") return true end if not isInArray(boost_stones[pokemon], stone.itemid) then local cancelstr = "Desculpe, você nao esta usando a stone correta." if #boost_stones[pokemon] > 1 then local stonesused = "" cancelstr = cancelstr.." Você tem que usar " for su = 1, #boost_stones[pokemon] do local n = doCorrectString(getItemNameById(boost_stones[pokemon][su])) if su == #boost_stones[pokemon] then stonesused = stonesused.." "..getArticle(n).." "..n.."" elseif su == 1 then stonesused = stonesused..""..getArticle(n).." "..n.."" else stonesused = stonesused..", "..n.."" end end cancelstr = cancelstr..""..stonesused.."i o boost irá funcionar." else cancelstr = cancelstr.." Você deveria usar "..doCorrectString(getItemNameById(boost_stones[pokemon][1])).."assim o boost vai funcionar." end doPlayerSendCancel(cid, cancelstr) return true end local removeStones = 0 local extraStones = math.floor(boost / stone_increase[stone.itemid]) local required_stones = stones_required[stone.itemid] + extraStones local boosts = 0 for a = 0, getContainerSize(stone_slot.uid) - 1 do local it = getContainerItem(stone_slot.uid, a) if it.uid > 0 then if not isStone(it.itemid) then doPlayerSendCancel(cid, "Por favor, coloque apenas stones no slot de stones.") return true end if it.itemid ~= stone.itemid then doPlayerSendCancel(cid, "Por favor, coloque apenas um tipo de stone no slot de stones.") return true end if required_stones > 0 then required_stones = required_stones - (it.type ~= 0 and it.type or 1) --alterado v1.7 if required_stones <= 0 then boosts = boosts + 1 removeStones = removeStones + stones_required[stone.itemid] + extraStones if boost + boosts <= 49 then extraStones = math.floor((boost + boosts) / stone_increase[stone.itemid]) required_stones = stones_required[stone.itemid] + extraStones end break end end end end if required_stones > 0 and boosts == 0 then doPlayerSendCancel(cid, "Voce precisa de mais stones para o boost funcionar.") return true end for b = 1, removeStones do local i = getContainerItem(stone_slot.uid, 0) if i.type ~= 0 then doChangeTypeItem(i.uid, i.type - 1) --alterado v1.7 else doRemoveItem(i.uid, 1) end end doSetItemAttribute(myball.uid, "boost", boost + boosts) doSetItemAttribute(myball.uid, "boosting", 1) --alterado v1.9.1 if (boost + boosts) >= 10 then if pbs[myball.itemid] then --alterado v1.9 doTransformItem(myball.uid, pbs[myball.itemid]) end end doItemEraseAttribute(myball.uid, "boosting") --alterado v1.9.1 local msg = "Seu "..getPokeballName(myball.uid).." sofreu o efeito do boost com sucesso!" local msg2 = "• Boost: "..(boost + boosts).." (+"..boosts..")" local downpos = getThingPos(cid) downpos.y = downpos.y + 1 local mypos = getThingPos(cid) doTeleportThing(cid, downpos, false) doTeleportThing(cid, mypos, false) doTransformItem(ball_slot.uid, ballslot_run) doTransformItem(stone_slot.uid, stoneslot_run) doTransformItem(item.uid, button_run) doCreatureSetNoMove(cid, true) doCreatureAddCondition(cid, boostcondition) addEvent(doRestoreBoostMachine, 3000, cid, getThingPos(item.uid), getThingPos(ball_slot.uid), getThingPos(stone_slot.uid), msg, msg2) return true end end
  11. Gente to aqui amolando vcs de novo.....kkkkkk bom, quando eu uso um boost no pokemon, ele aumanta hp, atk, def, etc. Eu queria saber c vcs podem me ajudar a fazer o efeito ser apenas no hp, gosta ria que so upasse o hp do pokemon sera q tem como? ajudou rep+ abrax a todos.
  12. escudeiro aconteceu o seguinte: [23/06/2014 11:43:38] [Error - LuaScriptInterface::loadFile] cannot open data/actions/scripts/quests/pokemonbau.lua: No such file or directory [23/06/2014 11:43:38] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/quests/pokemonbau.lua) [23/06/2014 11:43:38] cannot open data/actions/scripts/quests/pokemonbau.lua: No such file or directory resolvi esse problema nao deu mais esse erro so q quando clico no bau nau ganho o poke e nem aparece mensagem nenhuma. alguem tem ideia de qual e o problema? pof favor agora aparece assim: [23/06/2014 12:04:44] data/actions/scripts/quests/pokemonbau.lua:10: attempt to call global 'addPokeToPlayer' (a nil value)
  13. e ai galera blz.....tentei fazer uma quest onde se o player completa - la ele ganhara um pokemon, mas não consegui, sera que vcs podem me ajudar? rep pra quem conseguir
  14. Rusherzin vlw msm ajudo d+++++. (meu poketibia e com level sistem sera q isso atrapalha ou sera as ids das ball msm) se tiver alguem que possa me ajudar com os ids das balls tem o meu rep ai vai os ids do meu itens.xml AJUDEM POR FAVOR <item id="2391" article="a" name="great ball"> <attribute key="weight" value="0" /> <attribute key="description" value="This is a pokeball used to catch fainted pokemon. It has a 2x catch rate." /> </item> <item id="2392" article="a" name="ultra ball"> <attribute key="weight" value="0" /> <attribute key="description" value="This is pokeball used to catch fainted pokemon. It has a 4x catch rate." /> </item> <item id="556" article="a" name="master ball"> <attribute key="weight" value="0" /> <attribute key="description" value="This is pokeball used to catch fainted pokemon. It has a 7x catch rate." /> </item> <item id="2393" article="a" name="super ball"> <attribute key="weight" value="0" /> <attribute key="description" value="This is pokeball used to catch fainted pokemon. It has a 3x catch rate." /> </item> <item id="2394" article="a" name="normal ball"> <attribute key="weight" value="0" /> <attribute key="description" value="This is a pokeball used to catch fainted pokemon. It has a 1x catch rate." />

Open Tibia Server

Quer aprender a criar seu próprio servidor de Tibia? Então está no lugar certo, aqui você encontrará milhares de tutorias, scripts, códigos, mapas e utilitários para que você possa fazer o seu próprio servidor de Tibia começando do zero.

Redes Sociais

Anuncie no Tibia King

Precisa de mais visibilidade em seus projetos? Quer fazer um plano publicitário para o seu servidor? Anuncie no Tibia King e faça sua divulgação, possuímos centenas de acessos simultâneos e milhares diários, com certeza será a sua solução!

×
×
  • Create New...