felmat 0 Postado Abril 14, 2013 Share Postado Abril 14, 2013 Kara aprovado eu vo retira limite de mapa e por mais algumas hunts e houses e varias sistema vip esta funcionando 100%? eu não consegui por vip comprado pelo site ou derivaçao do mesmo com lv de shiny e addicionar elites chan e elite lee, elite poliwrath ,ancients pokes vc pode me passa tipo de arquivo dos pokes que vc incluiu pelo meu email : felipemartins346@gmail.com estou grato bom trabalho Link para o comentário Compartilhar em outros sites More sharing options...
enriquedk 0 Postado Abril 16, 2013 Share Postado Abril 16, 2013 Não haverá mais versões? Link para o comentário Compartilhar em outros sites More sharing options...
eduzika 0 Postado Abril 21, 2013 Share Postado Abril 21, 2013 AE COMO FAÇO PRA LOGA FIZ TD CERTO MAS NAO PASSA DO CHARLIST CLIENT TA BUGADO...SE PUDEREM ME AJUDA Link para o comentário Compartilhar em outros sites More sharing options...
KaboFlow29 26 Postado Abril 27, 2013 Share Postado Abril 27, 2013 StyloMaldoso Master Ball No Da Catch catch.lua local ballcatch = { [2394] = {cr = 3, on = 24, off = 23, ball = 11826, send = 47, typeee = "normal"}, [2391] = {cr = 6, on = 198, off = 197, ball = 11832, send = 48, typeee = "great"}, [2393] = {cr = 10, on = 202, off = 201, ball = 11835, send = 46, typeee = "super"}, [2392] = {cr = 15, on = 200, off = 199, ball = 11829, send = 49, typeee = "ultra"}, [12924] = {cr = 15, on = 200, off = 199, ball = 12923, send = 49, typeee = "master"}, } function onUse(cid, item, frompos, item3, topos) local item2 = getTopCorpse(topos) if item2 == null then return true end if getItemAttribute(item2.uid, "catching") == 1 then return true end if getItemAttribute(item2.uid, "golden") and getItemAttribute(item2.uid, "golden") == 1 then return doPlayerSendCancel(cid, "You can't try to catch a pokemon in the Golden Arena!") --alterado v1.6 end local name = string.lower(getItemNameById(item2.itemid)) name = string.gsub(name, "fainted ", "") name = string.gsub(name, "defeated ", "") local x = pokecatches[doCorrectPokemonName(name)] -------------------------------------------------------------------------------- local storage = newpokedex[doCorrectPokemonName(name)].stoCatch --edited brokes count system if getPlayerStorageValue(cid, storage) == -1 then setPlayerStorageValue(cid, storage, "normal = 0, great = 0, super = 0, ultra = 0, saffari = 0") end -------------------------------------------------------------------------------- if not x then return true end local owner = getItemAttribute(item2.uid, "corpseowner") if owner and isCreature(owner) and isPlayer(owner) and cid ~= owner then --alterado v1.5 doPlayerSendCancel(cid, "You are not allowed to catch this pokemon.") return true end ----------------------------------------------------- newidd = ballcatch[item.itemid].ball typeee = ballcatch[item.itemid].typeee ----------------------------------------------------- local catchinfo = {} catchinfo.rate = ballcatch[item.itemid].cr catchinfo.catch = ballcatch[item.itemid].on catchinfo.fail = ballcatch[item.itemid].off catchinfo.newid = newidd catchinfo.name = doCorrectPokemonName(name) catchinfo.topos = topos catchinfo.chance = x.chance doSendDistanceShoot(getThingPos(cid), topos, ballcatch[item.itemid].send) doRemoveItem(item.uid, 1) local d = getDistanceBetween(getThingPos(cid), topos) ------------------------ --id da saffari if getPlayerStorageValue(cid, 98796) >= 1 and getPlayerItemCount(cid, 2391) <= 0 then setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) --alterado v1.8 doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You spend all your 'saffari balls', good luck in the next time...") end ------------------------- addEvent(doSendPokeBall, d * 70 + 100 - (d * 14) , cid, catchinfo, false, false, typeee) --edited brokes count system addEvent(doSendMagicEffect, (d * 70 + 100 - (d * 14)) - 100, topos, 3) return true end -- GO/BACK E CATCH <action itemid="2391-2394;12924" event="script" value="catch.lua" allowfaruse="1"/> -- Icon System <action itemid="11826-11837;11737-11748;12930-12935;12923-12922-12925" event="script" value="goback.lua"/> <movevent type="Equip" itemid="11826-11837;11737-11748;12930-12935;12923-12922-12925" slot="feet" event="script" value="portrait.lua"/> <movevent type="DeEquip" itemid="11826-11837;11737-11748;12930-12935;12923-12922-12925" slot="feet" event="script" value="portrait.lua"/> pokeballs pokeballs = { ["normal"] = {effect = 188, on = 11826, use = 11827, off = 11828, all = {11826, 11827, 11828}}, ["ultra"] = {effect = 191, on = 11829, use = 11830, off = 11831, all = {11829, 11830, 11831}}, ["super"] = {effect = 190, on = 11835, use = 11836, off = 11837, all = {11835, 11836, 11837}}, ["great"] = {effect = 189, on = 11832, use = 11833, off = 11834, all = {11832, 11833, 11834}}, ["shinynormal"] = {effect = 188, on = 11737, use = 11738, off = 11739, all = {11737, 11738, 11739}}, ["shinygreat"] = {effect = 189, on = 11740, use = 11741, off = 11742, all = {11740, 11741, 11742}}, ["shinysuper"] = {effect = 190, on = 11743, use = 11744, off = 11745, all = {11743, 11744, 11745}}, ["shinyultra"] = {effect = 191, on = 11746, use = 11747, off = 11748, all = {11746, 11747, 11748}}, ["master"] = {effect = 191, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}}, ["shinymaster"] = {effect = 191, on = 12923, use = 12925, off = 12922, all = {12923, 12925, 12922}}, } some functions function unLock(ball) --alterado v1.8 \/\/ peguem ele todo! 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 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) --alterado v1.8 local art = thing == cid and "You are" or (getPlayerSex(thing) == 0 and "She is" or "He is") local str = "You see "..name..". "..art.." " if youAre[getPlayerGroupId(thing)] then str = str..""..(ocup).." and "..rank.." from ".. getTownName(getPlayerTown(thing)).."." else str = str..""..(rank).." from ".. getTownName(getPlayerTown(thing)).."." end if getPlayerGuildId(thing) > 0 then str = str.." "..art.." "..getPlayerGuildRank(thing).." from the "..getPlayerGuildName(thing).."." end if TV then str = str.." "..art.." watching TV." end str = str..""..((isPlayer(cid) and youAre[getPlayerGroupId(cid)]) and "\nPosition: [X: "..pos.x.."][Y: "..pos.y.."][Z: "..pos.z.."]" or "") --alterado v1.8 return 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) then return false end if not item then return false end if not num 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 --alterado v1.3 elseif tonumber(horarioComp[1]) == tonumber(horario[1]) and tonumber(horario[2]) < tonumber(horarioComp[2]) then return horarioComparacao end end return horas[1] --alterado v1.3 end function getTimeDiff(timeDiff) local dateFormat = { {'hour', timeDiff / 60 / 60}, --6% {'min', timeDiff / 60 % 60}, } local out = {} --alterado v1.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 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} --- --alterado v1.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 v1.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 v1.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) 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 --alterado v1.6.1 Party system agora eh simplismente party system kk ---- --alterado v1.6 duel system 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) 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) 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 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) 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 v1.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 if id == 12232 or id == 12242 or id == 12244 or id == 12245 then return true --alterado v1.7 com as stones shinys tb soh pra garantir.. ^^ end if (id >= sfire and id <= searth) or id == 12417 or id == 12419 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 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 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, 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) if getPlayerStorageValue(cid, 1010) == "Ditto" or getPlayerStorageValue(cid, 1010) == "Shiny Ditto" then return false --edited 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 if n[3] then str = string.sub(n[3], 1, 1) sta = string.sub(n[3], 2, string.len(n[3])) 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 v1.6 duel system --////////////////////////////////////////////////////////////////////////////////////////-- 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 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 v1.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 more than 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) < (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"}, --alterado v1.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 v1.5 markPosEff(pk, getThingPos(pk)) sendMovementEffect(pk, EFFECTS[getCreatureName(pk)], getThingPos(pk)) --alterado v1.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, 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) if not isCreature(cid) then return true end if isPlayer(cid) or ehNPC(cid) then --alterado v1.7 \/ doChangeSpeed(cid, -getCreatureSpeed(cid)) local speed = PlayerSpeed if isPlayer(cid) and isInArray({4, 5, 6}, getPlayerGroupId(cid)) then speed = 150*getPlayerGroupId(cid) end if getCreatureCondition(cid, CONDITION_PARALYZE) == true then doRemoveCondition(cid, CONDITION_PARALYZE) addEvent(doAddCondition, 10, cid, paralizeArea2) end doChangeSpeed(cid, speed) return speed end local speed = getSpeed(cid) 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) 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 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 if item >= 12930 and item <= 12932 then return true end if item >= 12933 and item <= 12935 then return true end if item >= 12923 and item <= 12925 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 ghosts = {"Gastly", "Haunter", "Gengar", "Shiny Gengar", "Misdreavus", "Shiny Abra"} if isInArray(ghosts, 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, 12925}, 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 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) if getCreatureMaster(uid) == cid then return TRUE end return FALSE end function isSummon(sid) if not isCreature(sid) then return false end -- if isPlayer(sid) then return false end if isPlayer(getCreatureMaster(sid)) then return true 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) 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 Link para o comentário Compartilhar em outros sites More sharing options...
KiritoEkz 1 Postado Maio 4, 2013 Share Postado Maio 4, 2013 Cara, Como eu faço pra aumentar a rate de caught? É Muito Fácil Amigo , Basta Ir Em Data/Lib/Configuration.lua , De Ctrl+F , Escreva "Chance" (Sem As Aspas) E De Enter , Pronto Basta Alterar o "Chance" Dos Pokemons Que Você Quiser , Só Não Mecha No Corpse , Que São Os Corpos Dos Pokemons . @Topic Tópico Bem Organizado , Não Esperava Menos Do Slicer , Mais Pésso Que Parém De Fazer Flood Neste Tópico , Obrigado! Link para o comentário Compartilhar em outros sites More sharing options...
Porkxy 0 Postado Maio 5, 2013 Share Postado Maio 5, 2013 Muito bom o Mapa .. Mais cara me responde umas pergunta ae ! Tem Outland ? não achei >< Npc que ponha Aura nos pokemons +50 ? também não achei ;3 e a ultima, npc que compre stones ? Obrigado pelo Server Link para o comentário Compartilhar em outros sites More sharing options...
arkadioos 0 Postado Maio 16, 2013 Share Postado Maio 16, 2013 Onde fica o boost system ? Link para o comentário Compartilhar em outros sites More sharing options...
Thetecno 0 Postado Maio 17, 2013 Share Postado Maio 17, 2013 Cara, arruma o link da V 0.2 pf. Link para o comentário Compartilhar em outros sites More sharing options...
pedro0166 0 Postado Maio 18, 2013 Share Postado Maio 18, 2013 Bom Dia galera, eu criei um server de poketibia mais ocorreu um erro, os players consegue entrar em qualquer clan qualquer lvl e podem trocar de clan a hora q quiserem sem precisar fazer task sem nada, somente com esse comando. EX: /clan naturia, 5 /clan vulcanic, 2 Os players fazer isso e entrar no clan, como eu tiro isso ? como eu fasso para eles nao poderem mais fazer isso ? Me ajudem por favor ! Obrigado ! Link para o comentário Compartilhar em outros sites More sharing options...
RemixShadow 0 Postado Maio 26, 2013 Share Postado Maio 26, 2013 ei poderia me dar uma ajuda quando eu vou abrir o client ele abre normal mais quando vou dar enter pra entrar ele apreçe escrito cannot connect to a login server. Error: Server name does not exist. (11001) for more information take a look ate the FAQs in the Support section at 127.0.0.1 pode me ajudar ? Link para o comentário Compartilhar em outros sites More sharing options...
warriorfrog 3 Postado Maio 27, 2013 Share Postado Maio 27, 2013 Seu otpokemon nunca funciona aqui toda vez que eu falo com o npc incial, hi , yes da esse errro aqui [26/05/2013 21:30:19] [Error - Npc interface] [26/05/2013 21:30:19] data/npc/scripts/profrobert.lua:onCreatureSay [26/05/2013 21:30:19] Description: [26/05/2013 21:30:19] data/lib/011-string.lua:16: bad argument #1 to 'find' (string expected, got nil) [26/05/2013 21:30:19] stack traceback: [26/05/2013 21:30:19] [C]: in function 'find' [26/05/2013 21:30:19] data/lib/011-string.lua:16: in function '(for generator)' [26/05/2013 21:30:19] data/lib/011-string.lua:16: in function 'explode' [26/05/2013 21:30:19] data/lib/some functions.lua:682: in function 'doCorrectString' [26/05/2013 21:30:19] data/npc/scripts/profrobert.lua:47: in function 'callback' [26/05/2013 21:30:19] data/npc/lib/npcsystem/npchandler.lua:391: in function 'onCreatureSay' [26/05/2013 21:30:19] data/npc/scripts/profrobert.lua:7: in function <data/npc/scripts/profrobert.lua:7> Link para o comentário Compartilhar em outros sites More sharing options...
myutz 0 Postado Junho 6, 2013 Share Postado Junho 6, 2013 Link do mapa Versão v0.2 esta com nada! Plx, alguem poderia arrumar ou fornecer outro link por favor!, amei tanto esse mapa! Link para o comentário Compartilhar em outros sites More sharing options...
Outhrow 45 Postado Junho 7, 2013 Share Postado Junho 7, 2013 Invalid or Deleted File. The key you provided for file download was invalid. This is usually caused because the file is no longer stored on MediaFire. This occurs when the file is removed by the originating user or MediaFire. Still have questions, or think we've made a mistake? Please contact support for further assistance. Link para o comentário Compartilhar em outros sites More sharing options...
StyloMaldoso 330 Postado Junho 7, 2013 Autor Share Postado Junho 7, 2013 Bom infelizmente eu formatei o PC e não tenho o LINK da versão 0.2 somente a da versão 0.1 no 4shared intão se houver alguem que tenha a versão 0.2 e posta-lo para dowload ficarei grato. Link para o comentário Compartilhar em outros sites More sharing options...
viniciusdrika 26 Postado Junho 8, 2013 Share Postado Junho 8, 2013 (editado) Não é perfeitamente igual mais é qs, so arrumei o sistema de bike e adicionei 1 sistema de tournament mais nao interfere em nada. Link: http://www.mediafire.com/download/8o33mgp99t4wuko/PokemonReturn.rar Editado Junho 8, 2013 por viniciusdrika Link para o comentário Compartilhar em outros sites More sharing options...
Posts Recomendados