vudi 17 Postado Abril 23, 2012 Share Postado Abril 23, 2012 /\ agora q tu flo.. eu refiz o self sim... soh q eu coloquei pra da dano com o hp maximo do poke q ta usando.. e n o hp atual ^^ vo ate corrigir aki... o problema do duel em grupo eh q eu teria q editar o menu "invite to party"... ;x tpw.. criar outro menu desse soh q com "invite to duel" pra poder mandar a janela la pedindo qnts pessoas vao tar no duel e pah.. e setando a storage q coloquei no sistema de duel aki... ;x e como n sei fazer isso........ e porra de sistema... eu arrumo uma coisa aparece outra coisa dando erro kkkk ta tenso o/ @Slicer Depois que termina de faze os negocio que tu ta fazendo vai postar pra all? Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247102 Compartilhar em outros sites More sharing options...
FlamesAdmin 262 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) galera ta dando um erro ake qnd upa poke shiny [22/04/2012 23:30:31] [Error - CreatureScript Interface] [22/04/2012 23:30:31] data/creaturescripts/scripts/exp.lua:onStatsChange [22/04/2012 23:30:31] Description: [22/04/2012 23:30:31] data/creaturescripts/scripts/exp.lua:340: attempt to index field '?' (a nil value) [22/04/2012 23:30:31] stack traceback: [22/04/2012 23:30:31] data/creaturescripts/scripts/exp.lua:340: in function <data/creaturescripts/scripts/exp.lua:129> script local combats = { [PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC}, [GRASSDAMAGE] = {cor = COLOR_GRASS}, [POISONEDDAMAGE] = {cor = COLOR_GRASS}, [MORTALGASDAMAGE] = {cor = COLOR_POISON}, [FIREDAMAGE] = {cor = COLOR_FIRE2}, [bURNEDDAMAGE] = {cor = COLOR_BURN}, [WATERDAMAGE] = {cor = COLOR_WATER}, [iCEDAMAGE] = {cor = COLOR_ICE}, [NORMALDAMAGE] = {cor = COLOR_NORMAL}, [GUILLOTINEDAMAGE] = {cor = COLOR_NORMAL}, [FLYDAMAGE] = {cor = COLOR_FLYING}, [GHOSTDAMAGE] = {cor = COLOR_GHOST}, [NIGHTMAREDAMAGE] = {cor = COLOR_GHOST}, [GROUNDDAMAGE] = {cor = COLOR_GROUND}, [ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC}, [THUNDERWAVEDAMAGE] = {cor = COLOR_ELECTRIC}, [ROCKDAMAGE] = {cor = COLOR_ROCK}, [bUGDAMAGE] = {cor = COLOR_BUG}, [FIGHTDAMAGE] = {cor = COLOR_FIGHTING}, [sEISMICTOSSDAMAGE] = {cor = COLOR_FIGHTING}, [DRAGONDAMAGE] = {cor = COLOR_DRAGON}, [POISONDAMAGE] = {cor = COLOR_POISON}, [DARKDAMAGE] = {cor = COLOR_DARK}, [sTEELDAMAGE] = {cor = COLOR_STEEL}, } local function doHeal(cid, amount) doCreatureAddHealth(cid, amount) doSendMagicEffect(getThingPos(cid), 12) doSendAnimatedText(getThingPos(cid), "+"..amount.."", 65) end local function sendPlayerDmgMsg(cid, text) if not isCreature(cid) then return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text) end local spcevo = { ["Poliwhirl"] = {"Poliwrath", "Politoed"}, ["Gloom"] = {"Bellossom", "Vileplume"}, ["Tyrogue"] = {"Hitmonchan", "Hitmontop", "Hitmonlee"}} local function doEvolveWild(cid) if not isCreature(cid) or getCreatureHealth(cid) <= 0 then return true end local name = getCreatureName(cid) local evolution = "none" if spcevo[name] then evolution = spcevo[name][math.random(1, #spcevo[name])] elseif poevo[name] then evolution = poevo[name].evolution end local a = getPokemonStatus(name) if not a or evolution == "none" then return true end local pk = {} local players = getSpectators(getThingPos(cid), 7, 7) if players then for pp = 1, #players do local this = players[pp] if isCreature(this) and isPlayer(this) and (getCreatureTarget(this) == cid or getDamageMapPercent(this, cid) > 0) then doSendMagicEffect(getThingPos(this), 173) local expstring = cid.."expEx" pk[this] = getItemAttribute(getPlayerSlotItem(this, 8).uid, expstring) doItemSetAttribute(getPlayerSlotItem(this, 8).uid, expstring, 0) end end end local level = getPokemonLevel(cid) local pos = getThingPos(cid) local gender = getCreatureSkull(cid) local lifepercentage = 1 - ((getCreatureHealth(cid) * 1.3) / getCreatureMaxHealth(cid)) local lookdir = getCreatureLookDir(cid) local status = {} status.offense = getOffense(cid) + a.off * 8 status.defense = getDefense(cid) + a.def * 8 status.agi = getSpeed(cid) + a.agi * 8 status.spatk = getSpecialAttack(cid) + a.spatk * 8 status.vit = getVitality(cid) + a.vit * 4 doRemoveCreature(cid) local evo = doCreateMonster(evolution, pos) setWildPokemonLevel(evo, level, status) doCreatureSetLookDir(evo, lookdir) doCreatureSetSkullType(evo, gender) doCreatureAddHealth(evo, -getCreatureMaxHealth(evo) * lifepercentage) doSendMagicEffect(getThingPos(evo), 18) for attacker, experience in pairs (pk) do doWildAttackPlayer(evo, attacker) local expstring = evo.."expEx" local exp = experience or 0 doItemSetAttribute(getPlayerSlotItem(attacker, 8).uid, expstring, exp) end sendFinishEvolutionEffect(evo, true) addEvent(sendFinishEvolutionEffect, 550, evo, true) addEvent(sendFinishEvolutionEffect, 1050, evo) end local races = { [4] = {cor = COLOR_FIRE2}, [6] = {cor = COLOR_WATER}, [7] = {cor = COLOR_NORMAL}, [8] = {cor = COLOR_FIRE2}, [9] = {cor = COLOR_FIGHTING}, [10] = {cor = COLOR_FLYING}, [11] = {cor = COLOR_GRASS}, [12] = {cor = COLOR_POISON}, [13] = {cor = COLOR_ELECTRIC}, [14] = {cor = COLOR_GROUND}, [15] = {cor = COLOR_PSYCHIC}, [16] = {cor = COLOR_ROCK}, [17] = {cor = COLOR_ICE}, [18] = {cor = COLOR_BUG}, [19] = {cor = COLOR_DRAGON}, [20] = {cor = COLOR_GHOST}, [21] = {cor = COLOR_STEEL}, [22] = {cor = COLOR_DARK}, [1] = {cor = 180}, [2] = {cor = 180}, [3] = {cor = 180}, [5] = {cor = 180}, } local damages = {MORTALGASDAMAGE, GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE, NIGHTMAREDAMAGE, GUILLOTINEDAMAGE, SEISMICTOSSDAMAGE} local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE} local ignored = {NIGHTMAREDAMAGE, GUILLOTINEDAMAGE, MORTALGASDAMAGE, SEISMICTOSSDAMAGE, PSYCHOSHIFTDAMAGE, POISONEDDAMAGE, BURNEDDAMAGE} local ignoremiss = {NIGHTMAREDAMAGE, MORTALGASDAMAGE, BURNEDDAMAGE, POISONEDDAMAGE} local ignorecritical = {MORTALGASDAMAGE, BURNEDDAMAGE, POISONEDDAMAGE, NIGHTMAREDAMAGE} local cannotkill = {MORTALGASDAMAGE, BURNEDDAMAGE, POISONEDDAMAGE, NIGHTMAREDAMAGE} function onStatsChange(cid, attacker, type, combat, value) if combat == FLYSYSTEMDAMAGE then return false end if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV local damageCombat = combat if damageCombat == THUNDERWAVEDAMAGE then damageCombat = ELECTRICDAMAGE elseif damageCombat == PSYCHOSHIFTDAMAGE then damageCombat = PSYCHICDAMAGE end if getPlayerStorageValue(cid, 33) >= 1 then -- funcionamento do self destruction if isCreature(attacker) then return false end return true end if not isCreature(attacker) or cid == attacker then if not isInArray(fixdamages, combat) and combats[combat] then doSendAnimatedText(getThingPos(cid), value, combats[combat].cor) end return true end -------------------------------------------------- if combat == SLEEP_POWDERDAMAGE then if not isSummon(cid) and not isSummon(attacker) and not isPlayer(attacker) then return false end if isPlayer(cid) then return false end if isNpcSummon(cid) and getCreatureTarget(cid) ~= attacker then return false end if isSummon(cid) and isSummon(attacker) then if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then return false end if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end end doSleep(cid, value, true) return false end -------------------------------------------------- if combat == HEALINGDAMAGE then local healing = math.abs(value) if not isSummon(cid) and not isSummon(attacker) and not isPlayer(attacker) then doHeal(cid, healing) return false end if isSummon(cid) and isSummon(attacker) then if getPlayerStorageValue(getCreatureMaster(cid), 990) >= 1 then return false end if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then doHeal(cid, healing) return false end if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then doHeal(cid, healing) return false end end return false end -------------------------------------------------- if combat == POISON_POWDERDAMAGE then if not isSummon(cid) and not isSummon(attacker) and not isPlayer(attacker) then return false end if isNpcSummon(cid) and getCreatureTarget(cid) ~= attacker then return false end if isSummon(cid) and isSummon(attacker) then if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then return false end if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end end local master = attacker if isSummon(attacker) then master = getCreatureMaster(attacker) end addEvent(doAdvancedPoison, 2500, attacker, master, cid, getPlayerStorageValue(attacker, 919231), value, getPlayerStorageValue(cid, 3893)) return false end -------------------------------------------------- if isPlayer(attacker) then local valor = value if valor > getCreatureHealth(cid) then valor = getCreatureHealth(cid) end if combat == COMBAT_PHYSICALDAMAGE then return false end if combat == PHYSICALDAMAGE then doSendMagicEffect(getThingPos(cid), 3) doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor) end if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor) end if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".") end return true end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then return false --muda isso end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then local valor = 0 if combat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) else valor = getSpecialAttack(attacker) end valor = valor * playerDamageReduction valor = valor * math.random(83, 117) / 100 if valor >= getCreatureHealth(cid) then valor = getCreatureHealth(cid) end valor = math.floor(valor) if valor >= getCreatureHealth(cid) then if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, 0) setPlayerStorageValue(cid, 17001, 0) setPlayerStorageValue(cid, 63215, -1) doChangeSpeed(cid, PlayerSpeed) local item = getPlayerSlotItem(cid, 8) local btype = getPokeballType(item.itemid) if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) end end end end doCreatureAddHealth(cid, -valor, 3, 180) if not isPlayer(cid) then addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end return false end -------------------------------------------------- if type == STATSCHANGE_HEALTHGAIN then if cid == attacker then return true end if not isSummon(cid) and isSummon(attacker) then return false end if isSummon(cid) and isSummon(attacker) and getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end return true end -------------------------------------------------- if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then if isPlayer(cid) then return false end if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then return false end end -------------------------------------------------- if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then return false end end -------------------------------------------------- -------------------------------------------------- local multiplier = 1 local miss = (getSpeed(cid) - getSpeed(attacker)) * 0.26 local poketype1 = pokes[getCreatureName(cid)].type local poketype2 = pokes[getCreatureName(cid)].type2 if getCreatureCondition(cid, CONDITION_INVISIBLE) then return false end if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if isInArray(effectiveness[damageCombat].super, poketype1) then multiplier = multiplier * 2 end if isInArray(effectiveness[damageCombat].super, poketype2) then multiplier = multiplier * 2 end if isInArray(effectiveness[damageCombat].weak, poketype1) then multiplier = multiplier * 0.5 end if isInArray(effectiveness[damageCombat].weak, poketype2) then multiplier = multiplier * 0.5 end if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then multiplier = multiplier * 0 end elseif combat == COMBAT_PHYSICALDAMAGE then if isGhostPokemon(cid) and not isGhostPokemon(attacker) then doSendMagicEffect(getThingPos(cid), 3) return false end if getCreatureCondition(attacker, CONDITION_INVISIBLE) and not isGhostPokemon(attacker) then if not isInArray({"Clefable", "Wigglytuff"}, getCreatureName(attacker)) then return false end end if miss > 0 and math.random(1, 100) <= miss and not isSleeping(cid) and not getCreatureCondition(cid, CONDITION_PARALYZE) then doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(cid), "MISS", 215) return false end end -------------------------------------------------- local valor = value if multiplier > 2 then multiplier = 2 elseif multiplier == 0.25 then multiplier = 0.5 end -------------------------------------------------- local function resetMiss(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 88726, -1) end if getPlayerStorageValue(cid, 88726) ~= 1 and miss > 0 and math.random(1, 100) <= miss and damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignoremiss, combat) and not isSleeping(cid) and not getCreatureCondition(cid, CONDITION_PARALYZE) then doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(cid), "MISS", 215) doTeleportThing(cid, getClosestFreeTile(cid, getThingPos(cid)), false) doSendMagicEffect(getThingPos(cid), 211) doFaceCreature(cid, getThingPos(attacker)) setPlayerStorageValue(cid, 88726, 1) addEvent(resetMiss, 2200, cid) return false end if not isSummon(attacker) and not isSummon(cid) then return false end if isSummon(cid) and isSummon(attacker) then if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then return false end --party system if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end end if isSleeping(attacker) then return false end local randomRange = math.random(83, 117) / 100 local block = 0 if combat == COMBAT_PHYSICALDAMAGE then block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) if getPokemonGender(attacker) == SEX_MALE then block = block + 0.2 end if getPokemonGender(cid) == SEX_FEMALE then block = block - 0.2 end valor = getOffense(attacker) * block else block = 1 - (getSpecialDefense(cid) / (getSpecialAttack(attacker) + getSpecialDefense(cid))) valor = valor * block * generalSpecialAttackReduction if isSummon(cid) then valor = valor * summonSpecialDamageReduction - getPokemonLevel(cid) / 2 end end valor = valor * multiplier valor = valor * randomRange if isSummon(attacker) then valor = valor * getHappinessRate(attacker) else valor = valor * summonReduction end valor = math.floor(valor) if combat == NIGHTMAREDAMAGE then local div = 8 if isSummon(attacker) and not isSummon(cid) then div = 4 end valor = math.floor(getCreatureMaxHealth(cid)/div) elseif combat == GUILLOTINEDAMAGE then if isGhostPokemon(cid) then doSendMagicEffect(getThingPos(cid), 3) return false end local gDmg = 0.5 if isSummon(attacker) and not isSummon(cid) then gDmg = 0.7 end valor = getCreatureMaxHealth(cid) * gDmg elseif combat == SEISMICTOSSDAMAGE then valor = getPokemonLevel(attacker) * 10 elseif combat == BURNEDDAMAGE then valor = value * getResistance(cid, FIREDAMAGE) elseif combat == POISONEDDAMAGE then valor = value * getResistance(cid, POISONDAMAGE) end if valor <= 0 then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return false end if math.random(1, 100) == 4 and not isInArray(ignorecritical, combat) then doSendAnimatedText(getThingPos(attacker), "CRITICAL", 215) valor = valor * 2 end if combat == PSYCHOSHIFTDAMAGE and isCreature(cid) then if not isPlayer(cid) then local pos = getThingPos(cid) pos.x = pos.x + math.random(-4,4) pos.y = pos.y + math.random(-4,4) for a = 1, 6 do if not canWalkOnPos(pos, true, true, true, true, false) or not isSightClear(getThingPos(cid), pos, false) then pos = getThingPos(cid) pos.x = pos.x + math.random(-4,4) pos.y = pos.y + math.random(-4,4) end end if not canWalkOnPos(pos, true, true, true, true, false) then pos = getClosestFreeTile(cid, getThingPos(cid)) end if not canWalkOnPos(pos, true, true, true, true, false) then pos = getThingPos(cid) end doTeleportThing(cid, pos, false) end doSendMagicEffect(getThingPos(cid), math.random(12, 14)) end if combat == THUNDERWAVEDAMAGE then doCreatureAddCondition(cid, thunderwavecondition) end if valor >= getCreatureHealth(cid) then if isInArray(cannotKill, combat) and isPlayer(cid) then valor = getCreatureHealth(cid) - 1 else valor = getCreatureHealth(cid) end end --- REFLECT -------------------------------- if not isPlayer(cid) and getPlayerStorageValue(cid, 34) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then doSendMagicEffect(getThingPos(cid), 135) doSendAnimatedText(getThingPos(cid), "REFLECT", COLOR_GRASS) setPlayerStorageValue(cid, 34, -1) return false end -------------------------------------------- if hasMimicWall(cid) then doSendMagicEffect(getThingPos(cid), 135) local dmgText = ""..valor.."" local a = getPlayerStorageValue(cid, 878) setPlayerStorageValue(cid, 878, a - valor) local k = getPlayerStorageValue(cid, 878) if k <= 0 then local b = getTileItemById(getThingPos(cid), 11440) if b.uid > 1 then doRemoveItem(b.uid, 1) end local c = getTileItemById(getThingPos(cid), 11439) if c.uid > 1 then doRemoveItem(c.uid, 1) end dmgText = ""..a.."" doSendMagicEffect(getThingPos(cid), 3) end doSendAnimatedText(getThingPos(cid), dmgText, 215) return false end if isSummon(attacker) and not isSummon(cid) and not isPlayer(cid) then local expstring = cid.."expEx" if getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, expstring) == null then doItemSetAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, expstring, 0) end local exp = valor / getCreatureMaxHealth(cid) local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8).uid doItemSetAttribute(ball, expstring, getItemAttribute(ball, expstring) + exp) if getItemAttribute(ball, expstring) > 1 then doItemSetAttribute(ball, expstring, 1) end end if isSummon(cid) and getCreatureHealth(cid) <= (getCreatureMaxHealth(cid)*0.08) and not exhaustion.get(getCreatureMaster(cid), 88726) then exhaustion.set(getCreatureMaster(cid), 88726, 11) doSendMagicEffect(getThingPos(cid), 178) end if isSummon(attacker) then if combat == COMBAT_PHYSICALDAMAGE then doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255) else doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255) end if not isSummon(cid) and not isPlayer(cid) and math.random(1, wildEvolveChance) == math.random(1, wildEvolveChance) then addEvent(doEvolveWild, math.random(1, 2500), cid) end else if combat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) else doCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor) end if isSummon(cid) then addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end end local percent = 8 + math.ceil(valor / getCreatureMaxHealth(cid) * 100) if getCreatureHealth(cid) == 0 or percent <= 0 then return false end local runCond = false if math.random(100) <= percent then runCond = true end if runCond then local condPos = getThingPos(cid) local color = 215 local text = "" local effect = 2 if damageCombat == FIREDAMAGE and not isBurning(cid) then doAdvancedBurn(attacker, isPlayer(getCreatureMaster(attacker)) and getCreatureMaster(attacker) or 0, cid, getPokemonLevel(attacker) * 2, math.random(5, 12)) color = COLOR_FIRE2 text = "BURNING" effect = 15 elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) and randomCond == checkCond then doAdvancedPoison(attacker, isPlayer(getCreatureMaster(attacker)) and getCreatureMaster(attacker) or 0, cid, getPokemonLevel(attacker) * 2, math.random(4, 20)) color = COLOR_GRASS text = "POISONED" effect = 8 end doSendMagicEffect(getThingPos(cid), effect) addEvent(doSendAnimatedText, 5, condPos, text, color) end ------------------------------------POTIONS------------------------------------------- if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 173) >= 1 then if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then setPlayerStorageValue(cid, 174, 1) doSendAnimatedText(getThingPos(cid), "Lost Heal", 144) end end end ----------------------------------------PASSIVAS----------------------------------------- ------------------------------"Counter Helix" - "Giro Ball"------------------------------ -- [outfit normal] = {out = outfit girando, efeitos} local OutFit = { [366] = {out = 496, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --scyther [912] = {out = 918, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Scizor [1317] = {out = 849, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Shiny Scyther [952] = {out = 1193, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Hitmontop [909] = {out = 1194, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --pineco [910] = {out = 1192, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Forretress } --acima do efeito 255 n aparece -pelo menos aki- entao fica esse por enquanto... ;x --efeito vermelho => {cima = 261, direita = 263, esquerda = 264, baixo = 262} if isSummon(cid) then if OutFit[getCreatureOutfit(cid).lookType] then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local outfitt = OutFit[getCreatureOutfit(cid).lookType] local function doWingAttack(cid, a, damage, min, max) local damagearea = {} local effectpos = getThingPosWithDebug(cid) local effect = 255 if a == 0 then effect = outfitt.cima effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y - 1 damagearea = wingdn elseif a == 1 then effect = outfitt.direita effectpos.x = effectpos.x + 2 effectpos.y = effectpos.y + 1 damagearea = wingde elseif a == 2 then effect = outfitt.baixo effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y + 2 damagearea = wingds elseif a == 3 then effect = outfitt.esquerda effectpos.x = effectpos.x - 1 effectpos.y = effectpos.y + 1 damagearea = wingdw end doSendMagicEffect(effectpos, effect) if damage then local look = getCreatureOutfit(cid).lookType if look == 366 or look == 1317 then --scyther e shiny scyther doAreaCombatHealth(cid, BUGDAMAGE, getThingPosWithDebug(cid), damagearea, -min, -max, CONST_ME_NONE) elseif look == 952 then --hitmontop doAreaCombatHealth(cid, FIGHTINGDAMAGE, getThingPosWithDebug(cid), damagearea, -min, -max, CONST_ME_NONE) else --resto doAreaCombatHealth(cid, STEELDAMAGE, getThingPosWithDebug(cid), damagearea, -min, -max, CONST_ME_NONE) end end end local dire = getCreatureLookDir(cid) local cpos = getThingPosWithDebug(cid) local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... setPlayerStorageValue(cid, 32623, 1) --proteçao doSetCreatureOutfit(cid, {lookType = OutFit[getCreatureOutfit(cid).lookType].out}, -1) local function doDance(cid, dir, damage, min, max) if not isCreature(cid) then return true end doCreatureSetLookDir(cid, dir) doWingAttack(cid, dir, damage, min, max) end for times = 0, 2 do for directions = 0, 3 do addEvent(doDance, times * 300, cid, directions, true, min, max) end end local function doChangeO(cid, dir, pos) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 32623, 0) --proteçao doRemoveCondition(cid, CONDITION_OUTFIT) if getThingPosWithDebug(cid).x == pos.x and getThingPosWithDebug(cid).y == pos.y then doCreatureSetLookDir(cid, dir) end end addEvent(doChangeO, 2 * 300 + 10, cid, dire, cpos) end end end -------------------------------------------Lava Counter / Electricity------------------------------------- local Fire_Thunder = {"Magmar", "Shiny Magmar", "Electabuzz", "Shiny Electabuzz"} --["Nome"] = {effeito, damage} local eff = { ["Magmar"] = {15, FIREDAMAGE}, ["Shiny Magmar"] = {15, FIREDAMAGE}, ["Electabuzz"] = {207, ELECTRICDAMAGE}, ["Shiny Electabuzz"] = {207, ELECTRICDAMAGE}, } if isSummon(cid) then local e = getCreatureMaster(cid) if isInArray(Fire_Thunder, getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke")) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... local function sendFireEff(cid, dir, eff, damage) if not isCreature(cid) then return true end doAreaCombatHealth(cid, damage, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, eff) end local function doSpinFire(cid) if not isCreature(cid) then return true end local t = { [1] = SOUTHWEST, [2] = SOUTH, [3] = SOUTHEAST, [4] = EAST, [5] = NORTHEAST, [6] = NORTH, [7] = NORTHWEST, [8] = WEST, [9] = SOUTHWEST, } for a = 1, 17 do if not t[a] then addEvent(sendFireEff, a * 140, cid, t[a-8], eff[getCreatureName(cid)][1], eff[getCreatureName(cid)][2]) else addEvent(sendFireEff, a * 140, cid, t[a], eff[getCreatureName(cid)][1], eff[getCreatureName(cid)][2]) end end setPlayerStorageValue(cid, 32623, 0) --proteçao end setPlayerStorageValue(cid, 32623, 1) --proteçao doSpinFire(cid, false, cid) end end end ---------------------------------------------Demon Kicker---------------------------------- --[outfit] = outfit chutando, local hitmonlees = { [371] = 652, --hitmonlee [1300] = 652, --shiny hitmonlee [877] = 878, --elite hitmonlee PxG } --DETALHE: shiny hitmonlee n tem a sprite dele chutando.. pelo menos eu n achei.. --entao deixei a sprite do hitmonlee normal atacando... if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Shiny Hitmonlee" or name == "Hitmonlee" then if isCreature(getCreatureTarget(getCreatureMaster(cid))) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if isSleeping(cid) then return true end if getDistanceBetween(getThingPos(cid), getThingPos(getMasterTarget(cid))) > 1 then return false end if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local function doChangeHitmon(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 32623, 0) --proteçao doRemoveCondition(cid, CONDITION_OUTFIT) end local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... setPlayerStorageValue(cid, 32623, 1) --proteçao doSetCreatureOutfit(cid, {lookType = hitmonlees[getCreatureOutfit(cid).lookType]}, -1) doTargetCombatHealth(cid, getMasterTarget(cid), FIGHTINGDAMAGE, -min, -max, 255) addEvent(doChangeHitmon, 700, cid) end end end end -------------------------------------------Demon Puncher------------------------------------- local hitmonchans = { ["Hitmonchan"] = { [0] = {out = 559, eff = 112, type = FIGHTINGDAMAGE}, --outfit normal [1] = {out = 1075, eff = 35, type = FIREDAMAGE}, --outfit fogo [2] = {out = 1077, eff = 48, type = ELECTRICDAMAGE}, --outfit raio [3] = {out = 1078, eff = 43, type = ICEDAMAGE}, --outfit gelo [4] = {out = 1076, eff = 140, type = GHOSTDAMAGE} --outfit ghost }, ["Shiny Hitmonchan"] = { --aconcelho trocar a outfit do shiny hitmonchan pela do elite hitmonchan do PO... [0] = {out = 837, eff = 112, type = FIGHTINGDAMAGE}, --outfit normal [1] = {out = 1080, eff = 35, type = FIREDAMAGE}, --outfit fogo [2] = {out = 1081, eff = 48, type = ELECTRICDAMAGE}, --outfit raio [3] = {out = 1082, eff = 43, type = ICEDAMAGE}, --outfit gelo [4] = {out = 1079, eff = 140, type = GHOSTDAMAGE} --outfit ghost } } local monchanOUT = {837, 1080, 1081, 1082, 1079} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Shiny Hitmonchan" or name == "Hitmonchan" then if isCreature(getCreatureTarget(getCreatureMaster(cid))) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if isSleeping(cid) then return true end if getDistanceBetween(getThingPos(cid), getThingPos(getMasterTarget(cid))) > 1 then return false end if getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") == "Shiny Hitmonchan" and not isInArray(monchanOUT, getCreatureOutfit(cid).lookType) then return false --proteçao pro script n funcionar com o shiny monchan com outfit diferente da do elite... end --script soh funciona com outfit do elite hirmonchan do PO... local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... local hands = getItemAttribute(getPlayerSlotItem(e, 8).uid, "hands") doSendDistanceShoot(getThingPos(cid), getThingPos(getMasterTarget(cid)), 39) doTargetCombatHealth(cid, getMasterTarget(cid), hitmonchans[name][hands].type, -min, -max, 255) local target = getThingPos(getMasterTarget(cid)) target.x = target.x + 1 if hands == 4 then doSendMagicEffect(target, hitmonchans[name][hands].eff) else doSendMagicEffect(getThingPos(getMasterTarget(cid)), hitmonchans[name][hands].eff) end end end end end ---------------------------------------Stunning Confusion------------------------------------------ local ducks = {"Golduck", "Psyduck", "Shiny Golduck", "Shiny Psyduck"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(ducks, name) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local min = getPokemonLevel(cid)*5 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*10 --nao sei como funciona o sistema de dano... local function damage(cid) if isCreature(cid) then setPlayerStorageValue(cid, 32623, 1) --proteçao doAreaCombatHealth(cid, PSYCHICDAMAGE, getThingPosWithDebug(cid), confusion, -min, -max, 136) end end for i = 1, 7 do addEvent(damage, i*500, cid) end setPlayerStorageValue(cid, 32623, 0) --proteçao end end end -----------------------------------------Groundshock----------------------------------- if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Kangaskhan" or name == "Shiny Kangaskhan" then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- local min = getPokemonLevel(cid)*10 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), eshock, -min, -max, 255) local sps = getThingPosWithDebug(cid) sps.x = sps.x+1 sps.y = sps.y+1 doSendMagicEffect(sps, 127) end end end --------------------------------------Electric Charge--------------------------------------------------- arr = { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1} } local charge = {"Pikachu", "Shiny Pikachu", "Raichu", "Shiny Raichu"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") local target = 0 if isInArray(charge, name) then if getPlayerStorageValue(cid, 253) >= 0 then return true end local uid = checkAreaUid(getCreaturePosition(cid), arr, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then if getCreatureTarget(pid) == cid then target = target+1 end end end if target == 0 then return true end if target == (1 or 2) then chance = 15 --15% elseif target == (3 or 4) then chance = 20 --20% elseif target == (5 or 6) then chance = 30 --30% end if math.random(1, 100) <= chance then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- setPlayerStorageValue(cid, 253, 1) doSendAnimatedText(getThingPos(cid), "FOCUS", 144) end end end -------------------------------------Melody------------------------------------ if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Wigglytuff" or name == "Shiny Wigglytuff" then if math.random(1, 100) <= 10 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- doAreaCombatHealth(cid, SLEEP_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -6, -10, 33) end end end ------------------------------------- Dragon Fury / Fury --------------------------------------- local DracoFury = {"Persian", "Shiny Persian", "Gyarados", "Shiny Gyarados", "Dratini", "Shiny Dratini", "Dragonair", "Shiny Dragonair", "Dragonite", "Shiny Dragonite"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(DracoFury, name) then if math.random(1, 100) <= 10 then --Chance 4 = 4% Acho, Mais Fica A Sua Escolha if getPlayerStorageValue(cid, 32623) == 1 then return false end local function effect(params) if isCreature(params.cid) then doSendMagicEffect(getThingPos(params.cid), 12) end end setPlayerStorageValue(cid, 32623, 1) local function doReduceOffenseDefense(cid, qnt) if not isCreature(cid) then return true end local a = getDefense(cid) local A = getOffense(cid) if getCreatureName(cid) ~= "Persian" then setPlayerStorageValue(cid, 1002, a - qnt) end setPlayerStorageValue(cid, 1001, A - qnt) end local function doDoubleOffenseDefense(cid) if not isCreature(cid) then return true end local a = getDefense(cid) local A = getOffense(cid) if getCreatureName(cid) ~= "Persian" then setPlayerStorageValue(cid, 1002, a * 2) end setPlayerStorageValue(cid, 1001, A * 1.5) local b = getDefense(cid) local c = b - a local B = getOffense(cid) local C = B - A if getCreatureName(cid) ~= "Persian" then addEvent(doReduceOffenseDefense, 15 * 1500 + 40, cid, c) end addEvent(doReduceOffenseDefense, 15 * 1500 + 40, cid, C) end setPlayerStorageValue(cid, 32623, 0) doDoubleOffenseDefense(cid) for times = 0, 15 do addEvent(effect, 1500 * times + 40, {cid = cid}) end setPlayerStorageValue(cid, 32623, 1) end end end ------------------------------------- Mega Drain --------------------------------------- arr = { {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 2, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } local mega = {"Oddish", "Gloom", "Vileplume", "Kabuto", "Kabutops", "Parasect", "Tangela", "Shiny Oddish", "Shiny Gloom", "Shiny Vileplume", "Shiny Kabuto", "Shiny Kabutops", "Shiny Parasect", "Shiny Tangela"} local min = getPokemonLevel(cid)*3 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*5 --nao sei como funciona o sistema de dano... if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(mega, name) then if math.random(1, 100) <= 10 then -- Porcentagem de chance pro poke usar a passiva... 20 = 20% local uid = checkAreaUid(getThingPos(cid), arr, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then if getCreatureTarget(pid) == cid then local hp = getCreatureHealth(pid) local drain = choose(min, max) if hp-drain >= 1 then doCreatureAddHealth(pid, -drain) doCreatureAddHealth(cid, drain) doSendAnimatedText(getThingPos(pid), "-"..drain.."", 144) doSendAnimatedText(getThingPos(cid), "+"..drain.."", 32) end end end end end end end ------------------------------------- Spores Reaction --------------------------------------- arr = { {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 2, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } local spores = {"Oddish", "Gloom", "Vileplume", "Shiny Oddish", "Shiny Gloom", "Shiny Vileplume"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(spores, name) then if math.random(1, 100) <= 10 then -- Porcentagem de chance pro poke usar a passiva... 20 = 20% +/- doAreaCombatHealth(cid, SLEEP_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -2, -3, 27) end end end return false end e só mais uma duvida: como faço para por surf para premium? procurei procurei e nao axei rep+ Editado Abril 23, 2012 por FlamesAdmin Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247108 Compartilhar em outros sites More sharing options...
bizao030188 10 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) @All , @Slicer. Começo do nada esse erro pode me ajudar? [22/04/2012 19:19:28] [Error - CreatureScript Interface] [22/04/2012 19:19:28] data/creaturescripts/scripts/login.lua:onLogin [22/04/2012 19:19:28] Description: [22/04/2012 19:19:28] data/creaturescripts/scripts/login.lua:204: attempt to compare number with string [22/04/2012 19:19:28] stack traceback: [22/04/2012 19:19:28] data/creaturescripts/scripts/login.lua:204: in function <data/creaturescripts/scripts/login.lua:121> [22/04/2012 19:19:28] [Error - CreatureScript Interface] [22/04/2012 19:19:28] data/creaturescripts/scripts/goback.lua:onLogout [22/04/2012 19:19:28] Description: [22/04/2012 19:19:28] data/creaturescripts/scripts/goback.lua:24: attempt to compare number with string [22/04/2012 19:19:28] stack traceback: [22/04/2012 19:19:28] data/creaturescripts/scripts/goback.lua:24: in function <data/creaturescripts/scripts/goback.lua:1> Esse do login acontece qdo tem algum player com ball bugada e loga montado no poke, ou em fly, ou em surf...provavelmente antes desse bug no login aparece o nome de alguem logando e depois deslogando...pega o nome vai no player e altera o storage de surf, fly e ride de 1 pra -1...ai o cara vai conseguir logar...Eu poderia arrumar esse negocio pra verificar se o poke q o cara ta montado ta bugado antes de logar, mas melhor era fazer com q os pokes nao bugassem mais =s Editado Abril 23, 2012 por bizao030188 Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247118 Compartilhar em outros sites More sharing options...
tonynamoral 27 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) @FlamesAdmin , Vai na PastadoOt/DATA/CreatureScript/EXP.LUA E mude por esse > local combats = { [PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC}, [GRASSDAMAGE] = {cor = COLOR_GRASS}, [POISONEDDAMAGE] = {cor = COLOR_GRASS}, [MORTALGASDAMAGE] = {cor = COLOR_POISON}, [FIREDAMAGE] = {cor = COLOR_FIRE2}, [bURNEDDAMAGE] = {cor = COLOR_BURN}, [WATERDAMAGE] = {cor = COLOR_WATER}, [iCEDAMAGE] = {cor = COLOR_ICE}, [NORMALDAMAGE] = {cor = COLOR_NORMAL}, [GUILLOTINEDAMAGE] = {cor = COLOR_NORMAL}, [FLYDAMAGE] = {cor = COLOR_FLYING}, [GHOSTDAMAGE] = {cor = COLOR_GHOST}, [NIGHTMAREDAMAGE] = {cor = COLOR_GHOST}, [GROUNDDAMAGE] = {cor = COLOR_GROUND}, [ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC}, [THUNDERWAVEDAMAGE] = {cor = COLOR_ELECTRIC}, [ROCKDAMAGE] = {cor = COLOR_ROCK}, [bUGDAMAGE] = {cor = COLOR_BUG}, [FIGHTDAMAGE] = {cor = COLOR_FIGHTING}, [sEISMICTOSSDAMAGE] = {cor = COLOR_FIGHTING}, [DRAGONDAMAGE] = {cor = COLOR_DRAGON}, [POISONDAMAGE] = {cor = COLOR_POISON}, [DARKDAMAGE] = {cor = COLOR_DARK}, [sTEELDAMAGE] = {cor = COLOR_STEEL}, } local function doHeal(cid, amount) doCreatureAddHealth(cid, amount) doSendMagicEffect(getThingPos(cid), 12) doSendAnimatedText(getThingPos(cid), "+"..amount.."", 65) end local function sendPlayerDmgMsg(cid, text) if not isCreature(cid) then return true end doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text) end local spcevo = { ["Poliwhirl"] = {"Poliwrath", "Politoed"}, ["Gloom"] = {"Bellossom", "Vileplume"}, ["Tyrogue"] = {"Hitmonchan", "Hitmontop", "Hitmonlee"}} local function doEvolveWild(cid) if not isCreature(cid) or getCreatureHealth(cid) <= 0 then return true end local name = getCreatureName(cid) local evolution = "none" if spcevo[name] then evolution = spcevo[name][math.random(1, #spcevo[name])] elseif poevo[name] then evolution = poevo[name].evolution end local a = getPokemonStatus(name) if not a or evolution == "none" then return true end local pk = {} local players = getSpectators(getThingPos(cid), 7, 7) if players then for pp = 1, #players do local this = players[pp] if isCreature(this) and isPlayer(this) and (getCreatureTarget(this) == cid or getDamageMapPercent(this, cid) > 0) then doSendMagicEffect(getThingPos(this), 173) local expstring = cid.."expEx" pk[this] = getItemAttribute(getPlayerSlotItem(this, 8).uid, expstring) doItemSetAttribute(getPlayerSlotItem(this, 8).uid, expstring, 0) end end end local level = getPokemonLevel(cid) local pos = getThingPos(cid) local gender = getCreatureSkull(cid) local lifepercentage = 1 - ((getCreatureHealth(cid) * 1.3) / getCreatureMaxHealth(cid)) local lookdir = getCreatureLookDir(cid) local status = {} status.offense = getOffense(cid) + a.off * 8 status.defense = getDefense(cid) + a.def * 8 status.agi = getSpeed(cid) + a.agi * 8 status.spatk = getSpecialAttack(cid) + a.spatk * 8 status.vit = getVitality(cid) + a.vit * 4 doRemoveCreature(cid) local evo = doCreateMonster(evolution, pos) setWildPokemonLevel(evo, level, status) doCreatureSetLookDir(evo, lookdir) doCreatureSetSkullType(evo, gender) doCreatureAddHealth(evo, -getCreatureMaxHealth(evo) * lifepercentage) doSendMagicEffect(getThingPos(evo), 18) for attacker, experience in pairs (pk) do doWildAttackPlayer(evo, attacker) local expstring = evo.."expEx" local exp = experience or 0 doItemSetAttribute(getPlayerSlotItem(attacker, 8).uid, expstring, exp) end sendFinishEvolutionEffect(evo, true) addEvent(sendFinishEvolutionEffect, 550, evo, true) addEvent(sendFinishEvolutionEffect, 1050, evo) end local races = { [4] = {cor = COLOR_FIRE2}, [6] = {cor = COLOR_WATER}, [7] = {cor = COLOR_NORMAL}, [8] = {cor = COLOR_FIRE2}, [9] = {cor = COLOR_FIGHTING}, [10] = {cor = COLOR_FLYING}, [11] = {cor = COLOR_GRASS}, [12] = {cor = COLOR_POISON}, [13] = {cor = COLOR_ELECTRIC}, [14] = {cor = COLOR_GROUND}, [15] = {cor = COLOR_PSYCHIC}, [16] = {cor = COLOR_ROCK}, [17] = {cor = COLOR_ICE}, [18] = {cor = COLOR_BUG}, [19] = {cor = COLOR_DRAGON}, [20] = {cor = COLOR_GHOST}, [21] = {cor = COLOR_STEEL}, [22] = {cor = COLOR_DARK}, [1] = {cor = 180}, [2] = {cor = 180}, [3] = {cor = 180}, [5] = {cor = 180}, } local damages = {MORTALGASDAMAGE, GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE, NIGHTMAREDAMAGE, GUILLOTINEDAMAGE, SEISMICTOSSDAMAGE} local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE} local ignored = {NIGHTMAREDAMAGE, GUILLOTINEDAMAGE, MORTALGASDAMAGE, SEISMICTOSSDAMAGE, PSYCHOSHIFTDAMAGE, POISONEDDAMAGE, BURNEDDAMAGE} local ignoremiss = {NIGHTMAREDAMAGE, MORTALGASDAMAGE, BURNEDDAMAGE, POISONEDDAMAGE} local ignorecritical = {MORTALGASDAMAGE, BURNEDDAMAGE, POISONEDDAMAGE, NIGHTMAREDAMAGE} local cannotkill = {MORTALGASDAMAGE, BURNEDDAMAGE, POISONEDDAMAGE, NIGHTMAREDAMAGE} function onStatsChange(cid, attacker, type, combat, value) if combat == FLYSYSTEMDAMAGE then return false end if isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TV local damageCombat = combat if damageCombat == THUNDERWAVEDAMAGE then damageCombat = ELECTRICDAMAGE elseif damageCombat == PSYCHOSHIFTDAMAGE then damageCombat = PSYCHICDAMAGE end if getPlayerStorageValue(cid, 33) >= 1 then -- funcionamento do self destruction if isCreature(attacker) then return false end return true end if not isCreature(attacker) or cid == attacker then if not isInArray(fixdamages, combat) and combats[combat] then doSendAnimatedText(getThingPos(cid), value, combats[combat].cor) end return true end -------------------------------------------------- if combat == SLEEP_POWDERDAMAGE then if not isSummon(cid) and not isSummon(attacker) and not isPlayer(attacker) then return false end if isPlayer(cid) then return false end if isNpcSummon(cid) and getCreatureTarget(cid) ~= attacker then return false end if isSummon(cid) and isSummon(attacker) then if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then return false end if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end end doSleep(cid, value, true) return false end -------------------------------------------------- if combat == HEALINGDAMAGE then local healing = math.abs(value) if not isSummon(cid) and not isSummon(attacker) and not isPlayer(attacker) then doHeal(cid, healing) return false end if isSummon(cid) and isSummon(attacker) then if getPlayerStorageValue(getCreatureMaster(cid), 990) >= 1 then return false end if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then doHeal(cid, healing) return false end if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then doHeal(cid, healing) return false end end return false end -------------------------------------------------- if combat == POISON_POWDERDAMAGE then if not isSummon(cid) and not isSummon(attacker) and not isPlayer(attacker) then return false end if isNpcSummon(cid) and getCreatureTarget(cid) ~= attacker then return false end if isSummon(cid) and isSummon(attacker) then if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then return false end if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end end local master = attacker if isSummon(attacker) then master = getCreatureMaster(attacker) end addEvent(doAdvancedPoison, 2500, attacker, master, cid, getPlayerStorageValue(attacker, 919231), value, getPlayerStorageValue(cid, 3893)) return false end -------------------------------------------------- if isPlayer(attacker) then local valor = value if valor > getCreatureHealth(cid) then valor = getCreatureHealth(cid) end if combat == COMBAT_PHYSICALDAMAGE then return false end if combat == PHYSICALDAMAGE then doSendMagicEffect(getThingPos(cid), 3) doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor) end if combats[damageCombat] and not isInArray(fixdmgs, damageCombat) then doSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor) end if #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) then doPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".") end return true end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS then return false --muda isso end -------------------------------------------------- if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then local valor = 0 if combat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) else valor = getSpecialAttack(attacker) end valor = valor * playerDamageReduction valor = valor * math.random(83, 117) / 100 if valor >= getCreatureHealth(cid) then valor = getCreatureHealth(cid) end valor = math.floor(valor) if valor >= getCreatureHealth(cid) then if getPlayerStorageValue(cid, 17001) >= 1 or getPlayerStorageValue(cid, 17000) >= 1 or getPlayerStorageValue(cid, 63215) >= 1 then doRemoveCondition(cid, CONDITION_OUTFIT) setPlayerStorageValue(cid, 17000, 0) setPlayerStorageValue(cid, 17001, 0) setPlayerStorageValue(cid, 63215, -1) doChangeSpeed(cid, PlayerSpeed) local item = getPlayerSlotItem(cid, 8) local btype = getPokeballType(item.itemid) if #getCreatureSummons(cid) <= 0 then if isInArray(pokeballs[btype].all, item.itemid) then doTransformItem(item.uid, pokeballs[btype].off) doItemSetAttribute(item.uid, "hp", 0) end end end end doCreatureAddHealth(cid, -valor, 3, 180) if not isPlayer(cid) then addEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end return false end -------------------------------------------------- if type == STATSCHANGE_HEALTHGAIN then if cid == attacker then return true end if not isSummon(cid) and isSummon(attacker) then return false end if isSummon(cid) and isSummon(attacker) and getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end return true end -------------------------------------------------- if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 then if isPlayer(cid) then return false end if getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 then return false end end -------------------------------------------------- if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 then if getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 then return false end end -------------------------------------------------- -------------------------------------------------- local multiplier = 1 local miss = (getSpeed(cid) - getSpeed(attacker)) * 0.26 local poketype1 = pokes[getCreatureName(cid)].type local poketype2 = pokes[getCreatureName(cid)].type2 if getCreatureCondition(cid, CONDITION_INVISIBLE) then return false end if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if isInArray(effectiveness[damageCombat].super, poketype1) then multiplier = multiplier * 2 end if isInArray(effectiveness[damageCombat].super, poketype2) then multiplier = multiplier * 2 end if isInArray(effectiveness[damageCombat].weak, poketype1) then multiplier = multiplier * 0.5 end if isInArray(effectiveness[damageCombat].weak, poketype2) then multiplier = multiplier * 0.5 end if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then multiplier = multiplier * 0 end elseif combat == COMBAT_PHYSICALDAMAGE then if isGhostPokemon(cid) and not isGhostPokemon(attacker) then doSendMagicEffect(getThingPos(cid), 3) return false end if getCreatureCondition(attacker, CONDITION_INVISIBLE) and not isGhostPokemon(attacker) then if not isInArray({"Clefable", "Wigglytuff"}, getCreatureName(attacker)) then return false end end if miss > 0 and math.random(1, 100) <= miss and not isSleeping(cid) and not getCreatureCondition(cid, CONDITION_PARALYZE) then doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(cid), "MISS", 215) return false end end -------------------------------------------------- local valor = value if multiplier > 2 then multiplier = 2 elseif multiplier == 0.25 then multiplier = 0.5 end -------------------------------------------------- local function resetMiss(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 88726, -1) end if getPlayerStorageValue(cid, 88726) ~= 1 and miss > 0 and math.random(1, 100) <= miss and damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignoremiss, combat) and not isSleeping(cid) and not getCreatureCondition(cid, CONDITION_PARALYZE) then doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(cid), "MISS", 215) doTeleportThing(cid, getClosestFreeTile(cid, getThingPos(cid)), false) doSendMagicEffect(getThingPos(cid), 211) doFaceCreature(cid, getThingPos(attacker)) setPlayerStorageValue(cid, 88726, 1) addEvent(resetMiss, 2200, cid) return false end if not isSummon(attacker) and not isSummon(cid) then return false end if isSummon(cid) and isSummon(attacker) then if not isInParty(getCreatureMaster(cid)) or not isInParty(getCreatureMaster(attacker)) then return false end --party system if not getPlayerParty(getCreatureMaster(cid)) == getPlayerParty(getCreatureMaster(attacker)) then return false end end if isSleeping(attacker) then return false end local randomRange = math.random(83, 117) / 100 local block = 0 if combat == COMBAT_PHYSICALDAMAGE then block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) if getPokemonGender(attacker) == SEX_MALE then block = block + 0.2 end if getPokemonGender(cid) == SEX_FEMALE then block = block - 0.2 end valor = getOffense(attacker) * block else block = 1 - (getSpecialDefense(cid) / (getSpecialAttack(attacker) + getSpecialDefense(cid))) valor = valor * block * generalSpecialAttackReduction if isSummon(cid) then valor = valor * summonSpecialDamageReduction - getPokemonLevel(cid) / 2 end end valor = valor * multiplier valor = valor * randomRange if isSummon(attacker) then valor = valor * getHappinessRate(attacker) else valor = valor * summonReduction end valor = math.floor(valor) if combat == NIGHTMAREDAMAGE then local div = 8 if isSummon(attacker) and not isSummon(cid) then div = 4 end valor = math.floor(getCreatureMaxHealth(cid)/div) elseif combat == GUILLOTINEDAMAGE then if isGhostPokemon(cid) then doSendMagicEffect(getThingPos(cid), 3) return false end local gDmg = 0.5 if isSummon(attacker) and not isSummon(cid) then gDmg = 0.7 end valor = getCreatureMaxHealth(cid) * gDmg elseif combat == SEISMICTOSSDAMAGE then valor = getPokemonLevel(attacker) * 10 elseif combat == BURNEDDAMAGE then valor = value * getResistance(cid, FIREDAMAGE) elseif combat == POISONEDDAMAGE then valor = value * getResistance(cid, POISONDAMAGE) end if valor <= 0 then doSendMagicEffect(getThingPos(cid), CONST_ME_POFF) return false end if math.random(1, 100) == 4 and not isInArray(ignorecritical, combat) then doSendAnimatedText(getThingPos(attacker), "CRITICAL", 215) valor = valor * 2 end if combat == PSYCHOSHIFTDAMAGE and isCreature(cid) then if not isPlayer(cid) then local pos = getThingPos(cid) pos.x = pos.x + math.random(-4,4) pos.y = pos.y + math.random(-4,4) for a = 1, 6 do if not canWalkOnPos(pos, true, true, true, true, false) or not isSightClear(getThingPos(cid), pos, false) then pos = getThingPos(cid) pos.x = pos.x + math.random(-4,4) pos.y = pos.y + math.random(-4,4) end end if not canWalkOnPos(pos, true, true, true, true, false) then pos = getClosestFreeTile(cid, getThingPos(cid)) end if not canWalkOnPos(pos, true, true, true, true, false) then pos = getThingPos(cid) end doTeleportThing(cid, pos, false) end doSendMagicEffect(getThingPos(cid), math.random(12, 14)) end if combat == THUNDERWAVEDAMAGE then doCreatureAddCondition(cid, thunderwavecondition) end if valor >= getCreatureHealth(cid) then if isInArray(cannotKill, combat) and isPlayer(cid) then valor = getCreatureHealth(cid) - 1 else valor = getCreatureHealth(cid) end end --- REFLECT -------------------------------- if not isPlayer(cid) and getPlayerStorageValue(cid, 34) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then doSendMagicEffect(getThingPos(cid), 135) doSendAnimatedText(getThingPos(cid), "REFLECT", COLOR_GRASS) setPlayerStorageValue(cid, 34, -1) return false end -------------------------------------------- if hasMimicWall(cid) then doSendMagicEffect(getThingPos(cid), 135) local dmgText = ""..valor.."" local a = getPlayerStorageValue(cid, 878) setPlayerStorageValue(cid, 878, a - valor) local k = getPlayerStorageValue(cid, 878) if k <= 0 then local b = getTileItemById(getThingPos(cid), 11440) if b.uid > 1 then doRemoveItem(b.uid, 1) end local c = getTileItemById(getThingPos(cid), 11439) if c.uid > 1 then doRemoveItem(c.uid, 1) end dmgText = ""..a.."" doSendMagicEffect(getThingPos(cid), 3) end doSendAnimatedText(getThingPos(cid), dmgText, 215) return false end if isSummon(attacker) and not isSummon(cid) and not isPlayer(cid) then local expstring = cid.."expEx" if getItemAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, expstring) == null then doItemSetAttribute(getPlayerSlotItem(getCreatureMaster(attacker), 8).uid, expstring, 0) end local exp = valor / getCreatureMaxHealth(cid) local ball = getPlayerSlotItem(getCreatureMaster(attacker), 8).uid doItemSetAttribute(ball, expstring, getItemAttribute(ball, expstring) + exp) if getItemAttribute(ball, expstring) > 1 then doItemSetAttribute(ball, expstring, 1) end end if isSummon(cid) and getCreatureHealth(cid) <= (getCreatureMaxHealth(cid)*0.08) and not exhaustion.get(getCreatureMaster(cid), 88726) then exhaustion.set(getCreatureMaster(cid), 88726, 11) doSendMagicEffect(getThingPos(cid), 178) end if isSummon(attacker) then if combat == COMBAT_PHYSICALDAMAGE then doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255) else doTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255) end if not isSummon(cid) and not isPlayer(cid) and math.random(1, wildEvolveChance) == math.random(1, wildEvolveChance) then addEvent(doEvolveWild, math.random(1, 2500), cid) end else if combat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) else doCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor) end if isSummon(cid) then addEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".") end end local percent = 8 + math.ceil(valor / getCreatureMaxHealth(cid) * 100) if getCreatureHealth(cid) == 0 or percent <= 0 then return false end local runCond = false if math.random(100) <= percent then runCond = true end if runCond then local condPos = getThingPos(cid) local color = 215 local text = "" local effect = 2 if damageCombat == FIREDAMAGE and not isBurning(cid) then doAdvancedBurn(attacker, isPlayer(getCreatureMaster(attacker)) and getCreatureMaster(attacker) or 0, cid, getPokemonLevel(attacker) * 2, math.random(5, 12)) color = COLOR_FIRE2 text = "BURNING" effect = 15 elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) and randomCond == checkCond then doAdvancedPoison(attacker, isPlayer(getCreatureMaster(attacker)) and getCreatureMaster(attacker) or 0, cid, getPokemonLevel(attacker) * 2, math.random(4, 20)) color = COLOR_GRASS text = "POISONED" effect = 8 end doSendMagicEffect(getThingPos(cid), effect) addEvent(doSendAnimatedText, 5, condPos, text, color) end ------------------------------------POTIONS------------------------------------------- if isSummon(cid) and type == STATSCHANGE_HEALTHLOSS then if getPlayerStorageValue(cid, 173) >= 1 then if damageCombat ~= BURNEDDAMAGE and damageCombat ~= POISONEDDAMAGE then setPlayerStorageValue(cid, 174, 1) doSendAnimatedText(getThingPos(cid), "Lost Heal", 144) end end end ----------------------------------------PASSIVAS----------------------------------------- ------------------------------"Counter Helix" - "Giro Ball"------------------------------ -- [outfit normal] = {out = outfit girando, efeitos} local OutFit = { [366] = {out = 496, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --scyther [912] = {out = 918, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Scizor [1317] = {out = 849, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Shiny Scyther [952] = {out = 1193, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Hitmontop [909] = {out = 1194, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --pineco [910] = {out = 1192, cima = 128, direita = 129, esquerda = 130, baixo = 131}, --Forretress } --acima do efeito 255 n aparece -pelo menos aki- entao fica esse por enquanto... ;x --efeito vermelho => {cima = 261, direita = 263, esquerda = 264, baixo = 262} if isSummon(cid) then if OutFit[getCreatureOutfit(cid).lookType] then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local outfitt = OutFit[getCreatureOutfit(cid).lookType] local function doWingAttack(cid, a, damage, min, max) local damagearea = {} local effectpos = getThingPosWithDebug(cid) local effect = 255 if a == 0 then effect = outfitt.cima effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y - 1 damagearea = wingdn elseif a == 1 then effect = outfitt.direita effectpos.x = effectpos.x + 2 effectpos.y = effectpos.y + 1 damagearea = wingde elseif a == 2 then effect = outfitt.baixo effectpos.x = effectpos.x + 1 effectpos.y = effectpos.y + 2 damagearea = wingds elseif a == 3 then effect = outfitt.esquerda effectpos.x = effectpos.x - 1 effectpos.y = effectpos.y + 1 damagearea = wingdw end doSendMagicEffect(effectpos, effect) if damage then local look = getCreatureOutfit(cid).lookType if look == 366 or look == 1317 then --scyther e shiny scyther doAreaCombatHealth(cid, BUGDAMAGE, getThingPosWithDebug(cid), damagearea, -min, -max, CONST_ME_NONE) elseif look == 952 then --hitmontop doAreaCombatHealth(cid, FIGHTINGDAMAGE, getThingPosWithDebug(cid), damagearea, -min, -max, CONST_ME_NONE) else --resto doAreaCombatHealth(cid, STEELDAMAGE, getThingPosWithDebug(cid), damagearea, -min, -max, CONST_ME_NONE) end end end local dire = getCreatureLookDir(cid) local cpos = getThingPosWithDebug(cid) local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... setPlayerStorageValue(cid, 32623, 1) --proteçao doSetCreatureOutfit(cid, {lookType = OutFit[getCreatureOutfit(cid).lookType].out}, -1) local function doDance(cid, dir, damage, min, max) if not isCreature(cid) then return true end doCreatureSetLookDir(cid, dir) doWingAttack(cid, dir, damage, min, max) end for times = 0, 2 do for directions = 0, 3 do addEvent(doDance, times * 300, cid, directions, true, min, max) end end local function doChangeO(cid, dir, pos) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 32623, 0) --proteçao doRemoveCondition(cid, CONDITION_OUTFIT) if getThingPosWithDebug(cid).x == pos.x and getThingPosWithDebug(cid).y == pos.y then doCreatureSetLookDir(cid, dir) end end addEvent(doChangeO, 2 * 300 + 10, cid, dire, cpos) end end end -------------------------------------------Lava Counter / Electricity------------------------------------- local Fire_Thunder = {"Magmar", "Shiny Magmar", "Electabuzz", "Shiny Electabuzz"} --["Nome"] = {effeito, damage} local eff = { ["Magmar"] = {15, FIREDAMAGE}, ["Shiny Magmar"] = {15, FIREDAMAGE}, ["Electabuzz"] = {207, ELECTRICDAMAGE}, ["Shiny Electabuzz"] = {207, ELECTRICDAMAGE}, } if isSummon(cid) then local e = getCreatureMaster(cid) if isInArray(Fire_Thunder, getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke")) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... local function sendFireEff(cid, dir, eff, damage) if not isCreature(cid) then return true end doAreaCombatHealth(cid, damage, getPosByDir(getThingPosWithDebug(cid), dir), 0, -min, -max, eff) end local function doSpinFire(cid) if not isCreature(cid) then return true end local t = { [1] = SOUTHWEST, [2] = SOUTH, [3] = SOUTHEAST, [4] = EAST, [5] = NORTHEAST, [6] = NORTH, [7] = NORTHWEST, [8] = WEST, [9] = SOUTHWEST, } for a = 1, 17 do if not t[a] then addEvent(sendFireEff, a * 140, cid, t[a-8], eff[getCreatureName(cid)][1], eff[getCreatureName(cid)][2]) else addEvent(sendFireEff, a * 140, cid, t[a], eff[getCreatureName(cid)][1], eff[getCreatureName(cid)][2]) end end setPlayerStorageValue(cid, 32623, 0) --proteçao end setPlayerStorageValue(cid, 32623, 1) --proteçao doSpinFire(cid, false, cid) end end end ---------------------------------------------Demon Kicker---------------------------------- --[outfit] = outfit chutando, local hitmonlees = { [371] = 652, --hitmonlee [1300] = 652, --shiny hitmonlee [877] = 878, --elite hitmonlee PxG } --DETALHE: shiny hitmonlee n tem a sprite dele chutando.. pelo menos eu n achei.. --entao deixei a sprite do hitmonlee normal atacando... if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Shiny Hitmonlee" or name == "Hitmonlee" then if isCreature(getCreatureTarget(getCreatureMaster(cid))) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if isSleeping(cid) then return true end if getDistanceBetween(getThingPos(cid), getThingPos(getMasterTarget(cid))) > 1 then return false end if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local function doChangeHitmon(cid) if not isCreature(cid) then return true end setPlayerStorageValue(cid, 32623, 0) --proteçao doRemoveCondition(cid, CONDITION_OUTFIT) end local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... setPlayerStorageValue(cid, 32623, 1) --proteçao doSetCreatureOutfit(cid, {lookType = hitmonlees[getCreatureOutfit(cid).lookType]}, -1) doTargetCombatHealth(cid, getMasterTarget(cid), FIGHTINGDAMAGE, -min, -max, 255) addEvent(doChangeHitmon, 700, cid) end end end end -------------------------------------------Demon Puncher------------------------------------- local hitmonchans = { ["Hitmonchan"] = { [0] = {out = 559, eff = 112, type = FIGHTINGDAMAGE}, --outfit normal [1] = {out = 1075, eff = 35, type = FIREDAMAGE}, --outfit fogo [2] = {out = 1077, eff = 48, type = ELECTRICDAMAGE}, --outfit raio [3] = {out = 1078, eff = 43, type = ICEDAMAGE}, --outfit gelo [4] = {out = 1076, eff = 140, type = GHOSTDAMAGE} --outfit ghost }, ["Shiny Hitmonchan"] = { --aconcelho trocar a outfit do shiny hitmonchan pela do elite hitmonchan do PO... [0] = {out = 837, eff = 112, type = FIGHTINGDAMAGE}, --outfit normal [1] = {out = 1080, eff = 35, type = FIREDAMAGE}, --outfit fogo [2] = {out = 1081, eff = 48, type = ELECTRICDAMAGE}, --outfit raio [3] = {out = 1082, eff = 43, type = ICEDAMAGE}, --outfit gelo [4] = {out = 1079, eff = 140, type = GHOSTDAMAGE} --outfit ghost } } local monchanOUT = {837, 1080, 1081, 1082, 1079} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Shiny Hitmonchan" or name == "Hitmonchan" then if isCreature(getCreatureTarget(getCreatureMaster(cid))) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if isSleeping(cid) then return true end if getDistanceBetween(getThingPos(cid), getThingPos(getMasterTarget(cid))) > 1 then return false end if getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") == "Shiny Hitmonchan" and not isInArray(monchanOUT, getCreatureOutfit(cid).lookType) then return false --proteçao pro script n funcionar com o shiny monchan com outfit diferente da do elite... end --script soh funciona com outfit do elite hirmonchan do PO... local min = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*20 --nao sei como funciona o sistema de dano... local hands = getItemAttribute(getPlayerSlotItem(e, 8).uid, "hands") doSendDistanceShoot(getThingPos(cid), getThingPos(getMasterTarget(cid)), 39) doTargetCombatHealth(cid, getMasterTarget(cid), hitmonchans[name][hands].type, -min, -max, 255) local target = getThingPos(getMasterTarget(cid)) target.x = target.x + 1 if hands == 4 then doSendMagicEffect(target, hitmonchans[name][hands].eff) else doSendMagicEffect(getThingPos(getMasterTarget(cid)), hitmonchans[name][hands].eff) end end end end end ---------------------------------------Stunning Confusion------------------------------------------ local ducks = {"Golduck", "Psyduck", "Shiny Golduck", "Shiny Psyduck"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(ducks, name) then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- if getPlayerStorageValue(cid, 32623) == 1 then --proteçao pra n usar a spell 2x seguidas... return false end local min = getPokemonLevel(cid)*5 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*10 --nao sei como funciona o sistema de dano... local function damage(cid) if isCreature(cid) then setPlayerStorageValue(cid, 32623, 1) --proteçao doAreaCombatHealth(cid, PSYCHICDAMAGE, getThingPosWithDebug(cid), confusion, -min, -max, 136) end end for i = 1, 7 do addEvent(damage, i*500, cid) end setPlayerStorageValue(cid, 32623, 0) --proteçao end end end -----------------------------------------Groundshock----------------------------------- if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Kangaskhan" or name == "Shiny Kangaskhan" then if math.random(1, 100) <= 20 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- local min = getPokemonLevel(cid)*10 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*15 --nao sei como funciona o sistema de dano... doAreaCombatHealth(cid, NORMALDAMAGE, getThingPosWithDebug(cid), eshock, -min, -max, 255) local sps = getThingPosWithDebug(cid) sps.x = sps.x+1 sps.y = sps.y+1 doSendMagicEffect(sps, 127) end end end --------------------------------------Electric Charge--------------------------------------------------- arr = { {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 2, 1, 1}, {1, 1, 1, 1, 1}, {1, 1, 1, 1, 1} } local charge = {"Pikachu", "Shiny Pikachu", "Raichu", "Shiny Raichu"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") local target = 0 if isInArray(charge, name) then if getPlayerStorageValue(cid, 253) >= 0 then return true end local uid = checkAreaUid(getCreaturePosition(cid), arr, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then if getCreatureTarget(pid) == cid then target = target+1 end end end if target == 0 then return true end if target == (1 or 2) then chance = 15 --15% elseif target == (3 or 4) then chance = 20 --20% elseif target == (5 or 6) then chance = 30 --30% end if math.random(1, 100) <= chance then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- setPlayerStorageValue(cid, 253, 1) doSendAnimatedText(getThingPos(cid), "FOCUS", 144) end end end -------------------------------------Melody------------------------------------ if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if name == "Wigglytuff" or name == "Shiny Wigglytuff" then if math.random(1, 100) <= 10 then -- Porcentagem de chance pro poke usar a passiva... 10 = 10% +/- doAreaCombatHealth(cid, SLEEP_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -6, -10, 33) end end end ------------------------------------- Dragon Fury / Fury --------------------------------------- local DracoFury = {"Persian", "Shiny Persian", "Gyarados", "Shiny Gyarados", "Dratini", "Shiny Dratini", "Dragonair", "Shiny Dragonair", "Dragonite", "Shiny Dragonite"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(DracoFury, name) then if math.random(1, 100) <= 10 then --Chance 4 = 4% Acho, Mais Fica A Sua Escolha if getPlayerStorageValue(cid, 32623) == 1 then return false end local function effect(params) if isCreature(params.cid) then doSendMagicEffect(getThingPos(params.cid), 12) end end setPlayerStorageValue(cid, 32623, 1) local function doReduceOffenseDefense(cid, qnt) if not isCreature(cid) then return true end local a = getDefense(cid) local A = getOffense(cid) if getCreatureName(cid) ~= "Persian" then setPlayerStorageValue(cid, 1002, a - qnt) end setPlayerStorageValue(cid, 1001, A - qnt) end local function doDoubleOffenseDefense(cid) if not isCreature(cid) then return true end local a = getDefense(cid) local A = getOffense(cid) if getCreatureName(cid) ~= "Persian" then setPlayerStorageValue(cid, 1002, a * 2) end setPlayerStorageValue(cid, 1001, A * 1.5) local b = getDefense(cid) local c = b - a local B = getOffense(cid) local C = B - A if getCreatureName(cid) ~= "Persian" then addEvent(doReduceOffenseDefense, 15 * 1500 + 40, cid, c) end addEvent(doReduceOffenseDefense, 15 * 1500 + 40, cid, C) end setPlayerStorageValue(cid, 32623, 0) doDoubleOffenseDefense(cid) for times = 0, 15 do addEvent(effect, 1500 * times + 40, {cid = cid}) end setPlayerStorageValue(cid, 32623, 1) end end end ------------------------------------- Mega Drain --------------------------------------- arr = { {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 2, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } local mega = {"Oddish", "Gloom", "Vileplume", "Kabuto", "Kabutops", "Parasect", "Tangela", "Shiny Oddish", "Shiny Gloom", "Shiny Vileplume", "Shiny Kabuto", "Shiny Kabutops", "Shiny Parasect", "Shiny Tangela"} local min = getPokemonLevel(cid)*3 --nao sei como funciona o sistema de dano... local max = getPokemonLevel(cid)*5 --nao sei como funciona o sistema de dano... if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(mega, name) then if math.random(1, 100) <= 10 then -- Porcentagem de chance pro poke usar a passiva... 20 = 20% local uid = checkAreaUid(getThingPos(cid), arr, 1, 1) for _,pid in pairs(uid) do if isCreature(pid) then if getCreatureTarget(pid) == cid then local hp = getCreatureHealth(pid) local drain = choose(min, max) if hp-drain >= 1 then doCreatureAddHealth(pid, -drain) doCreatureAddHealth(cid, drain) doSendAnimatedText(getThingPos(pid), "-"..drain.."", 144) doSendAnimatedText(getThingPos(cid), "+"..drain.."", 32) end end end end end end end ------------------------------------- Spores Reaction --------------------------------------- arr = { {0, 0, 0, 0, 0}, {0, 1, 1, 1, 0}, {0, 1, 2, 1, 0}, {0, 1, 1, 1, 0}, {0, 0, 0, 0, 0} } local spores = {"Oddish", "Gloom", "Vileplume", "Shiny Oddish", "Shiny Gloom", "Shiny Vileplume"} if isSummon(cid) then local e = getCreatureMaster(cid) local name = getItemAttribute(getPlayerSlotItem(e, 8).uid, "poke") if isInArray(spores, name) then if math.random(1, 100) <= 10 then -- Porcentagem de chance pro poke usar a passiva... 20 = 20% +/- doAreaCombatHealth(cid, SLEEP_POWDERDAMAGE, getThingPosWithDebug(cid), powders, -2, -3, 27) end end end return false end Já esta adaptado para o Passive do Slincer Algum Entereçado Por Uma Empresa , Séria. Por Favor Veja Esse Topico , Clicando Aqui Editado Abril 23, 2012 por tonynamoral Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247132 Compartilhar em outros sites More sharing options...
BrunooMaciell 85 Postado Abril 23, 2012 Share Postado Abril 23, 2012 Alguem pode mi ajuda os pokemons shinys que veio no meu sv ta tudo fraco parese que os normais ta mais forte que os shinys alguem pode manda um pasta dos pokemons shinys ja configurado tipo forte mais forte que os normais dou rep++ Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247146 Compartilhar em outros sites More sharing options...
MarcosFraga 34 Postado Abril 23, 2012 Share Postado Abril 23, 2012 @All Ae galera alguem poderia mim ajudar por favor... preciso ajeitar o bau da minha fight tower. Tipo, o Soulorishie mim passou o scripter , so nao sei o q tem q colocar na chest(bau) em actionid e uniqueid ... alguem pode mim ajudar pf nao consigo fazer o bau funcionar e dar 1 chan ou lee Cara éra só por o id do bau na action.xml que eu te disse e mais nada ( esse script não é por action nem unique id ) é só por item id. Que no caso é o do bau. <action itemid="12251" event="script" value="lee.lua"/> 12251 É O ID DO BAU QUE TU VAI POR.Só olhar no map editor pra saber o id do teu bau ai pronto vai funcionar. Dúvida: Alguém me ajuda na seguinte questão! Eu queria saber como eu vejo os newtypes do pokemon? Porque quero saber o newtype do Capitao, e do Professor, etc.. Quando eu dou /newtype só aparece outfit de tibia :// Grata. Cara se tu ja tem os npcs ou pokemons no teu servidor basta tu abrir o script deles e olhar o looktype deles pronto mas se tu quer olhar pelo dat editor tu vai na outfit que tu quer e depois olha em itemtype da outfit obs: não tem como usar esses looktypes no comando de god /newtype a não ser que ja tenha mas acho que nesse comando só tem mesmo os de tibia. @all.. oq vcs acham.. atualmente no serv quando um poke toma 2 ou mais hits com efeito de miss, confusion, sleep e afins somase o tempo.. exemplo o efeito de miss aki eu fiz pra durar 9segs.. dai se um poke toma 2 mud shot por exemplo ele vai ficar com efeito de miss por 18segs... mas fiquei sabendo q parece q la no PXG n soma isso... se tu ja tiver sobre algum efeito se tomar outro hit de efeito n vai somar... 2 mud shots vai ficar com efeito de miss soh de 9seg... -lembrando q soh soma efeios iguais, e n vai somar tb soh efeitos iguais, se tomar efeito de miss vai ficar por 9seg, se tomar de confusion tb vai fica por 9seg-.. agora oq vcs acham melhor? somar os efeitos... ou n somar? ;x Não somar não assim estilo pxg ta legal assim ficaria muito facil caçar de mudshot \o/ e no pvp tbm seria quem soltase primeiro o cd ja espancaria de cara o pokemon. @all alguem sabe como ativar a aura bosst por effect de raça? ajudem REP+ Vudi vamo para de flodar eu li 3x a mesma coisa, se tu não leu no log do slicer que ele postou que vai fazer um npc de aura que nem o pxg então espera. Próxima vez será reportado, pois aviso verbal ja foi dado por admins e membros. Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247157 Compartilhar em outros sites More sharing options...
tonynamoral 27 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) Galera , eu criei uma forma do Promote, (POR VOCS) eu adicionei em cada MOVES de agua para checar se o player é vocaçao 5 = Seavell. se for , ele verifica o Clan Force = distance fighters. e adiciona o numero que estiver lá em 10% no atk. Para conseguir a promote , voce precisa fazer Charizard Valey = Dragon Flute Snow Mission = Crystal Flute + 2TD + Snow Outfit 70 Catchs = Pokemon Flute + 70HD Star Flute = Kill 120 Starmie e 60 Staryu depois voce vai em um NPC , e fala Hi , Clan , Yes ai ele duela com voce . se voce ganhar , ele retira os 4 flutes e te adiciona a vocaçao + 3 stones do TIPO... e se voce perder , nao acontece nada.... Se quizerem ajuda com esse script , do modo que eu citei a cima, so pedir. ou adicionar no MSN : tony.plyson@hotmail.com Editado Abril 23, 2012 por tonynamoral Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247163 Compartilhar em outros sites More sharing options...
Al3ss4ndr 1 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) Alguem sabe como fazer uma condiçao para que os npc da tower não duele com player que estejam usando poke tipo ghost e psychic? Porque fica facil derrotar o Chuck Norris comum "exemplo" Hauter ja que lutador nao acerta tipo ghost. help Chuck Norris local focus = 0 local max_distance = 8 local talk_start = 0 local conv = 0 local fighting = false local challenger = 0 local afk_limit_time = 30 -- seconds local afk_time = 0 -- don't change local battle_turn = 1 -- don't change local challenger_turn = 0 -- don't change local pokes = {Abra, Kadabra, Alakazam, Gastly, Gengar, Haunter, Hypno, Espeon} -- whit this pokeballs you CANT enter in the saffari. for i = 1, #pokes do if getPlayerItemCount(cid, pokeball) >= 1 then npcHandler:say('Deposit your pokemons type ghostand psych on the DP!', cid) return true end end local pokemons = { {name = "Machamp", level = 150, extralevel = 200, sex = SEX_MALE, nick = "", ball = "normal"}, } local function doSummonGymPokemon(npc) local this = npc if not isCreature(this) then return true end if #getCreatureSummons(this) >= 1 or focus == 0 then return true end local it = pokemons[battle_turn] doSummonMonster(this, it.name) local summon = getCreatureSummons(this)[1] local balleffect = pokeballs["normal"].effect if it.ball and pokeballs[it.ball] then balleffect = pokeballs[it.ball].effect end doSendMagicEffect(getThingPos(summon), balleffect) setPlayerStorageValue(summon, 10000, balleffect) setPlayerStorageValue(summon, 10001, gobackmsgs[math.random(#gobackmsgs)].back:gsub("doka", it.nick ~= "" and it.nick or it.name)) setPlayerStorageValue(summon, 1007, it.nick ~= "" and it.nick or it.name) doSetMonsterGym(summon, focus) local name = it.nick ~= "" and it.nick or getCreatureName(this).."s "..it.name setWildPokemonLevel(summon, it.level, getPokemonStatus(it.name, (it.extralevel + it.level)), name, 1.5) doCreatureSay(this, gobackmsgs[math.random(#gobackmsgs)].go:gsub("doka", getPlayerStorageValue(summon, 1007)), 1) fighting = true battle_turn = battle_turn + 1 end local function doWinDuel(cid, npc) if not isCreature(cid) then return true end local this = npc doPlayerSetStorageValue(cid, 344487, 1) doPlayerAddItem(cid,11638,1) doTeleportThing(cid, { x=1212, y=1324, z=7 }) doCreatureSay(npc, "You won the duel! Congratulations, choose your prize!", 1) end function onCreatureSay(cid, type, msg) local msg = string.lower(msg) if focus == cid then talk_start = os.clock() end if msgcontains(msg, 'hi') and focus == 0 and getDistanceToCreature(cid) <= 4 then focus = cid talk_start = os.clock() conv = 1 selfSay("Hello "..getCreatureName(cid)..", my name is Chuck Norris and I'm Last's Fight Trainer. How may I help you?") return true end if isDuelMsg(msg) and conv == 1 and focus == cid then if getPlayerStorageValue(cid, 344481) ~= 1 or getPlayerStorageValue(cid, 344482) ~= 1 or getPlayerStorageValue(cid, 344483) ~= 1 or getPlayerStorageValue(cid, 344484) ~= 1 or getPlayerStorageValue(cid, 344485) ~= 1 or getPlayerStorageValue(cid, 344485) ~= 1 then selfSay("You need defeated the first, second, third, fourth, fifth and sixth trainer.") focus = 0 return true end if getPlayerStorageValue(cid, 344487) == 1 then selfSay("You have defeated my, choose your prize!") focus = 0 return true end if not hasPokemon(cid) then selfSay("To battle agains't a gym leader you need pokemons.") return true end selfSay("You are challenging me to a battle. It will be a "..#pokemons.." pokemon limit battle, let's start?") conv = 2 return true end if isConfirmMsg(msg) and conv == 2 and focus == cid then challenger = focus setPlayerStorageValue(cid, 990, 1) selfSay("Yea, let's fight!") talk_start = os.clock() addEvent(doSummonGymPokemon, 850, getThis()) conv = 3 return true end if isNegMsg(msg) and conv == 2 and focus == cid then focus = 0 selfSay("It is better for you to refuse a battle against me!") return true end if msgcontains(msg, 'bye') and focus == cid then selfSay('Bye and do your best trainer!') setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local afk_warning = false local change = false function onThink() if focus == 0 then selfTurn(2) fighting = false challenger = 0 challenger_turn = 0 battle_turn = 1 afk_time = 0 afk_warning = false if #getCreatureSummons(getThis()) >= 1 then setPlayerStorageValue(getCreatureSummons(getThis())[1], 1006, 0) doCreatureAddHealth(getCreatureSummons(getThis())[1], -getCreatureMaxHealth(getCreatureSummons(getThis())[1])) end return true else if not isCreature(focus) then focus = 0 return true end if fighting then talk_start = os.clock() if not isCreature(getCreatureTarget(getThis())) then if #getCreatureSummons(challenger) >= 1 then selfAttackCreature(getCreatureSummons(challenger)[1]) change = true afk_time = 0 else afk_time = afk_time + 0.5 if change then change = false challenger_turn = challenger_turn + 1 end end end if afk_time > afk_limit_time then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("I have waited too long, come back when you are ready!") return true end if not afk_warning and afk_time > afk_limit_time / 2 then selfSay("Where's your pokemon? Let's fight!") afk_warning = true end if #getCreatureSummons(getThis()) == 0 then if battle_turn > #pokemons then addEvent(doWinDuel, 1000, focus, getThis()) setPlayerStorageValue(focus, 990, -1) focus = 0 return true end addEvent(doSummonGymPokemon, 1000, getThis()) end if not hasPokemon(challenger) or challenger_turn >= 7 or challenger_turn > #pokemons then selfSay("You lost our duel! Maybe some other time you'll defeat me.") setPlayerStorageValue(focus, 990, -1) focus = 0 return true end end local npcpos = getThingPos(getThis()) local focpos = getThingPos(focus) if npcpos.z ~= focpos.z then setPlayerStorageValue(focus, 990, -1) focus = 0 selfSay("Bye then.") return true end if (os.clock() - talk_start) > 30 then selfSay("Good bye and keep training!") setPlayerStorageValue(focus, 990, -1) focus = 0 end if getDistanceToCreature(focus) > max_distance then setPlayerStorageValue(focus, 990, -1) focus = 0 return true end local dir = doRedirectDirection(getDirectionTo(npcpos, focpos)) selfTurn(dir) end return true end Slicer sabecomo resolver? Editado Abril 23, 2012 por Aluc4rd Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247171 Compartilhar em outros sites More sharing options...
Hikigaya 37 Postado Abril 23, 2012 Share Postado Abril 23, 2012 Galera , eu criei uma forma do Promote, (POR VOCS) eu adicionei em cada MOVES de agua para checar se o player é vocaçao 5 = Seavell. se for , ele verifica o Clan Force = distance fighters. e adiciona o numero que estiver lá em 10% no atk. Para conseguir a promote , voce precisa fazer Charizard Valey = Dragon Flute Snow Mission = Crystal Flute + 2TD + Snow Outfit 70 Catchs = Pokemon Flute + 70HD Star Flute = Kill 120 Starmie e 60 Staryu depois voce vai em um NPC , e fala Hi , Clan , Yes ai ele duela com voce . se voce ganhar , ele retira os 4 flutes e te adiciona a vocaçao + 3 stones do TIPO... e se voce perder , nao acontece nada.... Se quiz erem ajuda com esse script , do modo que eu citei a cima, so pedir. ou adicionar no MSN : tony.plyson@hotmail.com vc ja tem ele pronto? @Slicer Como Anda os sistemas? Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247191 Compartilhar em outros sites More sharing options...
MarcosFraga 34 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) vc ja tem ele pronto? @Slicer Como Anda os sistemas? Se você quer mesmo saber adicione o tonynamoral no msn que ele passou e se você quer saber sobre o andamento dos system do slicer mande pm não fique criando posts "inuteis" pois essa sessão é para duvidas no servidor PDA. Proxima vez sera reportado. Editado Abril 23, 2012 por SoulOroshie Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247209 Compartilhar em outros sites More sharing options...
tonynamoral 27 Postado Abril 23, 2012 Share Postado Abril 23, 2012 Quero Pedir Um Script (Não bem um script , mais uma modificaçao.) Eu ja tentei de muitas formas , mais nenhuma deu certo. O meu script é o seguinte. a pessoa para pescar ela precisa de 1 isca. tem 4 tipos de isca (Minhoca , Carne , PokeAnzol e MistyAnzol) o de minhoca , Só puxa pokemon fracos carne , ja puxa pokemon +- pokeanzol , puxa um poke fortinho e mistyanzol puxa pokemon forte e se a pessoa nao tiver o certa isca , tem 1 menssagem , pedindo para ela ir comprar a isca é isso ai REP++ para quem ajudar Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247297 Compartilhar em outros sites More sharing options...
Hikigaya 37 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) Alguem sabe arrumar esse erro [23/04/2012 16:59:51] [Error - Action Interface] [23/04/2012 16:59:51] data/actions/scripts/boost.lua:onUse [23/04/2012 16:59:51] Description: [23/04/2012 16:59:51] data/actions/scripts/boost.lua:489: attempt to get length of field '?' (a nil value) [23/04/2012 16:59:51] stack traceback: [23/04/2012 16:59:51] data/actions/scripts/boost.lua:489: in function <data/actions/scripts/boost.lua:455> Boost.lua 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 = { ["Bulbasaur"] = {leaf}, ["Ivysaur"] = {leaf}, ["Venusaur"] = {leaf}, ["Charmander"] = {fire}, ["Charmeleon"] = {fire}, ["Charizard"] = {fire}, ["Squirtle"] = {water}, ["Wartortle"] = {water}, ["Blastoise"] = {water}, ["Caterpie"] = {coccon}, ["Metapod"] = {coccon}, ["Butterfree"] = {coccon}, ["Weedle"] = {coccon}, ["Kakuna"] = {coccon}, ["Beedrill"] = {coccon}, ["Pidgey"] = {heart}, ["Pidgeotto"] = {heart}, ["Pidgeot"] = {heart}, ["Rattata"] = {heart}, ["Raticate"] = {heart}, ["Spearow"] = {heart}, ["Fearow"] = {heart}, ["Ekans"] = {venom}, ["Arbok"] = {venom}, ["Pikachu"] = {thunder}, ["Raichu"] = {thunder}, ["Sandshrew"] = {earth}, ["Sandslash"] = {earth}, ["Nidoran Female"] = {venom}, ["Nidorina"] = {venom}, ["Nidoqueen"] = {venom, earth}, ["Nidoran Male"] = {venom}, ["Nidorino"] = {venom}, ["Nidoking"] = {venom, earth}, ["Clefairy"] = {heart}, ["Clefable"] = {heart}, ["Vulpix"] = {fire}, ["Ninetales"] = {fire}, ["Jigglypuff"] = {heart}, ["Wigglytuff"] = {heart}, ["Zubat"] = {venom}, ["Golbat"] = {venom}, ["Oddish"] = {leaf, venom}, ["Gloom"] = {leaf, venom}, ["Vileplume"] = {leaf, venom}, ["Paras"] = {coccon, leaf}, ["Parasect"] = {coccon, leaf}, ["Venonat"] = {coccon, venom}, ["Venomoth"] = {coccon, venom}, ["Diglett"] = {earth}, ["Dugtrio"] = {earth}, ["Meowth"] = {heart}, ["Persian"] = {heart}, ["Psyduck"] = {water}, ["Golduck"] = {water, enigma}, ["Mankey"] = {punch}, ["Primeape"] = {punch}, ["Growlithe"] = {fire}, ["Arcanine"] = {fire}, ["Poliwag"] = {water}, ["Poliwhirl"] = {water}, ["Poliwrath"] = {water, punch}, ["Abra"] = {enigma}, ["Kadabra"] = {enigma}, ["Alakazam"] = {enigma}, ["Machop"] = {punch}, ["Machoke"] = {punch}, ["Machamp"] = {punch}, ["Bellsprout"] = {leaf, venom}, ["Weepinbell"] = {leaf, venom}, ["Victreebel"] = {leaf, venom}, ["Tentacool"] = {water, venom}, ["Tentacruel"] = {water, venom}, ["Geodude"] = {earth, rock}, ["Graveler"] = {earth, rock}, ["Golem"] = {earth, rock}, ["Ponyta"] = {fire}, ["Rapidash"] = {fire}, ["Slowpoke"] = {water, enigma}, ["Slowbro"] = {water, enigma}, ["Magnemite"] = {thunder, metal}, ["Magneton"] = {thunder, metal}, ["Farfetch'd"] = {heart}, ["Doduo"] = {heart}, ["Dodrio"] = {heart}, ["Seel"] = {water, ice}, ["Dewgong"] = {water, ice}, ["Grimer"] = {venom}, ["Muk"] = {venom}, ["Shellder"] = {water, ice}, ["Cloyster"] = {water, ice}, ["Gastly"] = {dark}, ["Haunter"] = {dark}, ["Gengar"] = {dark}, ["Onix"] = {rock, earth}, ["Drowzee"] = {enigma}, ["Hypno"] = {enigma}, ["Krabby"] = {water}, ["Kingler"] = {water}, ["Voltorb"] = {thunder}, ["Electrode"] = {thunder}, ["Exeggcute"] = {enigma, leaf}, ["Exeggutor"] = {enigma, leaf}, ["Cubone"] = {earth}, ["Marowak"] = {earth}, ["Hitmonlee"] = {punch}, ["Hitmonchan"] = {punch}, ["Lickitung"] = {heart}, ["Koffing"] = {venom}, ["Weezing"] = {venom}, ["Rhyhorn"] = {earth, rock}, ["Rhydon"] = {earth, rock}, ["Chansey"] = {heart}, ["Tangela"] = {leaf}, ["Kangaskhan"] = {heart}, ["Horsea"] = {water}, ["Seadra"] = {water}, ["Goldeen"] = {water}, ["Seaking"] = {water}, ["Staryu"] = {water}, ["Starmie"] = {water}, ["Mr. Mime"] = {enigma}, ["Scyther"] = {coccon}, ["Jynx"] = {enigma, ice}, ["Electabuzz"] = {thunder}, ["Magmar"] = {fire}, ["Pinsir"] = {coccon}, ["Tauros"] = {heart}, ["Magikarp"] = {water}, ["Gyarados"] = {water, crystal}, ["Lapras"] = {water, ice}, ["Ditto"] = {heart}, ["Eevee"] = {heart}, ["Vaporeon"] = {water}, ["Jolteon"] = {thunder}, ["Flareon"] = {fire}, ["Porygon"] = {heart, enigma}, ["Omanyte"] = {rock, water}, ["Omastar"] = {rock, water}, ["Kabuto"] = {rock, water}, ["Kabutops"] = {rock, water}, ["Aerodactyl"] = {rock}, ["Snorlax"] = {heart}, ["Articuno"] = {ice}, ["Zapdos"] = {thunder}, ["Moltres"] = {fire}, ["Dratini"] = {crystal}, ["Dragonair"] = {crystal}, ["Dragonite"] = {crystal}, ["Mewtwo"] = {enigma}, ["Mew"] = {enigma}, ["Shiny Bulbasaur"] = {leaf}, ["Shiny Ivysaur"] = {leaf}, ["Shiny Venusaur"] = {leaf}, ["Shiny Charmander"] = {fire}, ["Shiny Charmeleon"] = {fire}, ["Shiny Charizard"] = {fire}, ["Shiny Squirtle"] = {water}, ["Shiny Wartortle"] = {water}, ["Shiny Blastoise"] = {water}, ["Shiny Caterpie"] = {coccon}, ["Shiny Metapod"] = {coccon}, ["Shiny Butterfree"] = {coccon}, ["Shiny Weedle"] = {coccon}, ["Shiny Kakuna"] = {coccon}, ["Shiny Beedrill"] = {coccon}, ["Shiny Pidgey"] = {heart}, ["Shiny Pidgeotto"] = {heart}, ["Shiny Pidgeot"] = {heart}, ["Shiny Rattata"] = {heart}, ["Shiny Raticate"] = {heart}, ["Shiny Spearow"] = {heart}, ["Shiny Fearow"] = {heart}, ["Shiny Ekans"] = {venom}, ["Shiny Arbok"] = {venom}, ["Shiny Pikachu"] = {thunder}, ["Shiny Raichu"] = {thunder}, ["Shiny Sandshrew"] = {earth}, ["Shiny Sandslash"] = {earth}, ["Shiny Nidoran Female"] = {venom}, ["Shiny Nidorina"] = {venom}, ["Shiny Nidoqueen"] = {venom, earth}, ["Shiny Nidoran Male"] = {venom}, ["Shiny Nidorino"] = {venom}, ["Shiny Nidoking"] = {venom, earth}, ["Shiny Clefairy"] = {heart}, ["Shiny Clefable"] = {heart}, ["Shiny Vulpix"] = {fire}, ["Shiny Ninetales"] = {fire}, ["Shiny Jigglypuff"] = {heart}, ["Shiny Wigglytuff"] = {heart}, ["Shiny Zubat"] = {venom}, ["Shiny Golbat"] = {venom}, ["Shiny Oddish"] = {leaf, venom}, ["Shiny Gloom"] = {leaf, venom}, ["Shiny Vileplume"] = {leaf, venom}, ["Shiny Paras"] = {coccon, leaf}, ["Shiny Parasect"] = {coccon, leaf}, ["Shiny Venonat"] = {coccon, venom}, ["Shiny Venomoth"] = {coccon, venom}, ["Shiny Diglett"] = {earth}, ["Shiny Dugtrio"] = {earth}, ["Shiny Meowth"] = {heart}, ["Shiny Persian"] = {heart}, ["Shiny Psyduck"] = {water}, ["Shiny Golduck"] = {water, enigma}, ["Shiny Mankey"] = {punch}, ["Shiny Primeape"] = {punch}, ["Shiny Growlithe"] = {fire}, ["Shiny Arcanine"] = {fire}, ["Shiny Poliwag"] = {water}, ["Shiny Poliwhirl"] = {water}, ["Shiny Poliwrath"] = {water, punch}, ["Shiny Abra"] = {enigma}, ["Shiny Kadabra"] = {enigma}, ["Shiny Alakazam"] = {enigma}, ["Shiny Machop"] = {punch}, ["Shiny Machoke"] = {punch}, ["Shiny Machamp"] = {punch}, ["Shiny Bellsprout"] = {leaf, venom}, ["Shiny Weepinbell"] = {leaf, venom}, ["Shiny Victreebel"] = {leaf, venom}, ["Shiny Tentacool"] = {water, venom}, ["Shiny Tentacruel"] = {water, venom}, ["Shiny Geodude"] = {earth, rock}, ["Shiny Graveler"] = {earth, rock}, ["Shiny Golem"] = {earth, rock}, ["Shiny Ponyta"] = {fire}, ["Shiny Rapidash"] = {fire}, ["Shiny Slowpoke"] = {water, enigma}, ["Shiny Slowbro"] = {water, enigma}, ["Shiny Magnemite"] = {thunder, metal}, ["Shiny Magneton"] = {thunder, metal}, ["Shiny Farfetch'd"] = {heart}, ["Shiny Doduo"] = {heart}, ["Shiny Dodrio"] = {heart}, ["Shiny Seel"] = {water, ice}, ["Shiny Dewgong"] = {water, ice}, ["Shiny Grimer"] = {venom}, ["Shiny Muk"] = {venom}, ["Shiny Shellder"] = {water, ice}, ["Shiny Cloyster"] = {water, ice}, ["Shiny Gastly"] = {dark}, ["Shiny Haunter"] = {dark}, ["Shiny Gengar"] = {dark}, ["Shiny Onix"] = {rock, earth}, ["Shiny Drowzee"] = {enigma}, ["Shiny Hypno"] = {enigma}, ["Shiny Krabby"] = {water}, ["Shiny Kingler"] = {water}, ["Shiny Voltorb"] = {thunder}, ["Shiny Electrode"] = {thunder}, ["Shiny Exeggcute"] = {enigma, leaf}, ["Shiny Exeggutor"] = {enigma, leaf}, ["Shiny Cubone"] = {earth}, ["Shiny Marowak"] = {earth}, ["Shiny Hitmonlee"] = {punch}, ["Shiny Hitmonchan"] = {punch}, ["Shiny Lickitung"] = {heart}, ["Shiny Koffing"] = {venom}, ["Shiny Weezing"] = {venom}, ["Shiny Rhyhorn"] = {earth, rock}, ["Shiny Rhydon"] = {earth, rock}, ["Shiny Chansey"] = {heart}, ["Shiny Tangela"] = {leaf}, ["Shiny Kangaskhan"] = {heart}, ["Shiny Horsea"] = {water}, ["Shiny Seadra"] = {water}, ["Shiny Goldeen"] = {water}, ["Shiny Seaking"] = {water}, ["Shiny Staryu"] = {water}, ["Shiny Starmie"] = {water}, ["Shiny Mr. Mime"] = {enigma}, ["Shiny Scyther"] = {coccon}, ["Shiny Jynx"] = {enigma, ice}, ["Shiny Electabuzz"] = {thunder}, ["Shiny Magmar"] = {fire}, ["Shiny Pinsir"] = {coccon}, ["Shiny Tauros"] = {heart}, ["Shiny Magikarp"] = {water}, ["Shiny Gyarados"] = {water, crystal}, ["Shiny Lapras"] = {water, ice}, ["Shiny Ditto"] = {heart}, ["Shiny Eevee"] = {heart}, ["Shiny Vaporeon"] = {water}, ["Shiny Jolteon"] = {thunder}, ["Shiny Flareon"] = {fire}, ["Shiny Porygon"] = {heart, enigma}, ["Shiny Omanyte"] = {rock, water}, ["Shiny Omastar"] = {rock, water}, ["Shiny Kabuto"] = {rock, water}, ["Shiny Kabutops"] = {rock, water}, ["Shiny Aerodactyl"] = {rock}, ["Shiny Snorlax"] = {heart}, ["Shiny Articuno"] = {ice}, ["Shiny Zapdos"] = {thunder}, ["Shiny Moltres"] = {fire}, ["Shiny Dratini"] = {crystal}, ["Shiny Dragonair"] = {crystal}, ["Shiny Dragonite"] = {crystal}, ["Shiny Mewtwo"] = {enigma}, ["Shiny Mew"] = {enigma}, ["Chikorita"] = {leaf}, ["Bayleef"] = {leaf}, ["Meganium"] = {leaf}, ["Cyndaquil"] = {fire}, ["Quilava"] = {fire}, ["Typhlosion"] = {fire}, ["Totodile"] = {water}, ["Croconaw"] = {water}, ["Feraligatr"] = {water}, ["Sentret"] = {heart}, ["Furret"] = {heart}, ["Hoothoot"] = {heart, enigma}, ["Noctowl"] = {heart, enigma}, ["Ledyba"] = {coccon}, ["Ledian"] = {coccon}, ["Spinarak"] = {coccon, venom}, ["Ariados"] = {coccon, venom}, ["Crobat"] = {venom}, ["Chinchou"] = {water, thunder}, ["Lanturn"] = {water, thunder}, ["Pichu"] = {thunder}, ["Cleffa"] = {heart}, ["Iglybuff"] = {venom}, ["Natu"] = {enigma}, ["Xatu"] = {enigma}, ["Mareep"] = {thunder}, ["Flaaffy"] = {thunder}, ["Ampharos"] = {thunder}, ["Bellossom"] = {leaf}, ["Marill"] = {water}, ["Azulmarill"] = {water}, ["Sudowoodo"] = {rock, earth}, ["Politoed"] = {water, earth}, ["Hoppip"] = {leaf}, ["Skiploom"] = {leaf}, ["Jumpluff"] = {leaf}, ["Aipom"] = {heart}, ["Sunkern"] = {leaf}, ["Sunflora"] = {leaf}, ["Yanma"] = {venom, coccon}, ["Wooper"] = {water}, ["Quagsire"] = {water, earth}, ["Murkrow"] = {dark}, ["Slowking"] = {water,enigma}, ["Misdreavus"] = {dark}, ["Wobbuffet"] = {enigma}, ["Girafarig"] = {enigma}, ["Pineco"] = {coccon}, ["Forretress"] = {coccon}, ["Gligar"] = {dark, heart}, ["Steelix"] = {earth, rock}, ["Snubbull"] = {heart}, ["Granbull"] = {heart}, ["Qwilfish"] = {water}, ["Shuckle"] = {earth}, ["Heracross"] = {coccon}, ["Teddiursa"] = {heart}, ["Ursaring"] = {heart, dark}, ["Slugma"] = {fire}, ["Magcargo"] = {fire}, ["Swinub"] = {ice, earth}, ["Piloswine"] = {ice, earth}, ["Corsola"] = {water}, ["Remoraid"] = {water}, ["Octillery"] = {water}, ["Delibird"] = {ice, heart}, ["Mantine"] = {water}, ["Skarmory"] = {heart}, ["Houndour"] = {fire, dark}, ["Houndoom"] = {fire, dark}, ["Kingdra"] = {water, crystal}, ["Phanpy"] = {earth}, ["Donphan"] = {earth}, ["porygon2"] = {enigma}, ["Stantler"] = {heart}, ["Smeargle"] = {heart}, ["Tyrogue"] = {punch}, ["Hitmontop"] = {punch}, ["Smoochum"] = {ice, enigma}, ["Elekid"] = {thunder}, ["Magby"] = {fire}, ["Miltank"] = {heart}, ["Blissey"] = {heart}, ["Raikou"] = {thunder}, ["Entei"] = {fire}, ["Suicune"] = {water}, ["Larvitar"] = {earth, dark}, ["Pupitar"] = {earth, dark}, ["Tyranitar"] = {earth, dark}, ["Lugia"] = {enigma, water}, ["Ho-oh"] = {enigma, fire}, ["Celebi"] = {leaf, enigma}, ["Scizor"] = {coccon, leaf}} 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, } local stone_increase = { -- a cada quantos boosts irá aumentar o custo de stones [heart] = 300000000000000, [leaf] = 300000000000000, [water] = 300000000000000, [venom] = 300000000000000, [thunder] = 300000000000000, [rock] = 300000000000000, [punch] = 300000000000000, [fire] = 300000000000000, [coccon] = 300000000000000, [crystal] = 300000000000000, [dark] = 300000000000000, [earth] = 300000000000000, [enigma] = 300000000000000, [ice] = 300000000000000, } function onUse(cid, item, topos, item2, frompos) if isRunning(item.itemid) then doPlayerSendCancel(cid, "Wait until boosting finishes.") 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, "You need to put a pokeball in the ball slot.") return true end local pokemon = getItemAttribute(myball.uid, "poke") local boost = getItemAttribute(myball.uid, "boost") or 0 if boost >= 100 then doPlayerSendCancel(cid, "Your pokemon is already at maximum 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, "You need to put a stone in the stone slot.") return true end if not isStone(stone.itemid) then doPlayerSendCancel(cid, "Please, put only stones in the stone slot.") return true end if not isInArray(boost_stones[pokemon], stone.itemid) then local cancelstr = "Sorry, you are not using the correct stone." if #boost_stones[pokemon] > 1 then local stonesused = "" cancelstr = cancelstr.." This pokemon needs " for su = 1, #boost_stones[pokemon] do local n = doCorrectString(getItemNameById(boost_stones[pokemon][su])) if su == #boost_stones[pokemon] then stonesused = stonesused.." or "..getArticle(n).." "..n.."" elseif su == 1 then stonesused = stonesused..""..getArticle(n).." "..n.."" else stonesused = stonesused..", "..n.."" end end cancelstr = cancelstr..""..stonesused.." to be boosted." else cancelstr = cancelstr.." This pokemon needs a "..doCorrectString(getItemNameById(boost_stones[pokemon][1])).." to be boosted." 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, "Please, put only stones in the stone slot.") return true end if it.itemid ~= stone.itemid then doPlayerSendCancel(cid, "Please, put only one type of stone in the stone slot.") return true end if required_stones > 0 then required_stones = required_stones - 1 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 end end end end if required_stones > 0 and boosts == 0 then doPlayerSendCancel(cid, "You need more stones to boost this pokemon.") return true end for b = 1, removeStones do doRemoveItem(getContainerItem(stone_slot.uid, 0).uid, 1) end 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) local msg = "Your "..getPokeballName(myball.uid).." ["..getItemAttribute(myball.uid, "level").."] has been boosted!" local msg2 = "• Boost: "..(boost + boosts).." (+"..boosts..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."" 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 Editado Abril 23, 2012 por uchiha1madara Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247328 Compartilhar em outros sites More sharing options...
tonynamoral 27 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) Alguem sabe arrumar esse erro [23/04/2012 16:59:51] [Error - Action Interface] [23/04/2012 16:59:51] data/actions/scripts/boost.lua:onUse [23/04/2012 16:59:51] Description: [23/04/2012 16:59:51] data/actions/scripts/boost.lua:489: attempt to get length of field '?' (a nil value) [23/04/2012 16:59:51] stack traceback: [23/04/2012 16:59:51] data/actions/scripts/boost.lua:489: in function <data/actions/scripts/boost.lua:455> Boost.lua 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 = { ["Bulbasaur"] = {leaf}, ["Ivysaur"] = {leaf}, ["Venusaur"] = {leaf}, ["Charmander"] = {fire}, ["Charmeleon"] = {fire}, ["Charizard"] = {fire}, ["Squirtle"] = {water}, ["Wartortle"] = {water}, ["Blastoise"] = {water}, ["Caterpie"] = {coccon}, ["Metapod"] = {coccon}, ["Butterfree"] = {coccon}, ["Weedle"] = {coccon}, ["Kakuna"] = {coccon}, ["Beedrill"] = {coccon}, ["Pidgey"] = {heart}, ["Pidgeotto"] = {heart}, ["Pidgeot"] = {heart}, ["Rattata"] = {heart}, ["Raticate"] = {heart}, ["Spearow"] = {heart}, ["Fearow"] = {heart}, ["Ekans"] = {venom}, ["Arbok"] = {venom}, ["Pikachu"] = {thunder}, ["Raichu"] = {thunder}, ["Sandshrew"] = {earth}, ["Sandslash"] = {earth}, ["Nidoran Female"] = {venom}, ["Nidorina"] = {venom}, ["Nidoqueen"] = {venom, earth}, ["Nidoran Male"] = {venom}, ["Nidorino"] = {venom}, ["Nidoking"] = {venom, earth}, ["Clefairy"] = {heart}, ["Clefable"] = {heart}, ["Vulpix"] = {fire}, ["Ninetales"] = {fire}, ["Jigglypuff"] = {heart}, ["Wigglytuff"] = {heart}, ["Zubat"] = {venom}, ["Golbat"] = {venom}, ["Oddish"] = {leaf, venom}, ["Gloom"] = {leaf, venom}, ["Vileplume"] = {leaf, venom}, ["Paras"] = {coccon, leaf}, ["Parasect"] = {coccon, leaf}, ["Venonat"] = {coccon, venom}, ["Venomoth"] = {coccon, venom}, ["Diglett"] = {earth}, ["Dugtrio"] = {earth}, ["Meowth"] = {heart}, ["Persian"] = {heart}, ["Psyduck"] = {water}, ["Golduck"] = {water, enigma}, ["Mankey"] = {punch}, ["Primeape"] = {punch}, ["Growlithe"] = {fire}, ["Arcanine"] = {fire}, ["Poliwag"] = {water}, ["Poliwhirl"] = {water}, ["Poliwrath"] = {water, punch}, ["Abra"] = {enigma}, ["Kadabra"] = {enigma}, ["Alakazam"] = {enigma}, ["Machop"] = {punch}, ["Machoke"] = {punch}, ["Machamp"] = {punch}, ["Bellsprout"] = {leaf, venom}, ["Weepinbell"] = {leaf, venom}, ["Victreebel"] = {leaf, venom}, ["Tentacool"] = {water, venom}, ["Tentacruel"] = {water, venom}, ["Geodude"] = {earth, rock}, ["Graveler"] = {earth, rock}, ["Golem"] = {earth, rock}, ["Ponyta"] = {fire}, ["Rapidash"] = {fire}, ["Slowpoke"] = {water, enigma}, ["Slowbro"] = {water, enigma}, ["Magnemite"] = {thunder, metal}, ["Magneton"] = {thunder, metal}, ["Farfetch'd"] = {heart}, ["Doduo"] = {heart}, ["Dodrio"] = {heart}, ["Seel"] = {water, ice}, ["Dewgong"] = {water, ice}, ["Grimer"] = {venom}, ["Muk"] = {venom}, ["Shellder"] = {water, ice}, ["Cloyster"] = {water, ice}, ["Gastly"] = {dark}, ["Haunter"] = {dark}, ["Gengar"] = {dark}, ["Onix"] = {rock, earth}, ["Drowzee"] = {enigma}, ["Hypno"] = {enigma}, ["Krabby"] = {water}, ["Kingler"] = {water}, ["Voltorb"] = {thunder}, ["Electrode"] = {thunder}, ["Exeggcute"] = {enigma, leaf}, ["Exeggutor"] = {enigma, leaf}, ["Cubone"] = {earth}, ["Marowak"] = {earth}, ["Hitmonlee"] = {punch}, ["Hitmonchan"] = {punch}, ["Lickitung"] = {heart}, ["Koffing"] = {venom}, ["Weezing"] = {venom}, ["Rhyhorn"] = {earth, rock}, ["Rhydon"] = {earth, rock}, ["Chansey"] = {heart}, ["Tangela"] = {leaf}, ["Kangaskhan"] = {heart}, ["Horsea"] = {water}, ["Seadra"] = {water}, ["Goldeen"] = {water}, ["Seaking"] = {water}, ["Staryu"] = {water}, ["Starmie"] = {water}, ["Mr. Mime"] = {enigma}, ["Scyther"] = {coccon}, ["Jynx"] = {enigma, ice}, ["Electabuzz"] = {thunder}, ["Magmar"] = {fire}, ["Pinsir"] = {coccon}, ["Tauros"] = {heart}, ["Magikarp"] = {water}, ["Gyarados"] = {water, crystal}, ["Lapras"] = {water, ice}, ["Ditto"] = {heart}, ["Eevee"] = {heart}, ["Vaporeon"] = {water}, ["Jolteon"] = {thunder}, ["Flareon"] = {fire}, ["Porygon"] = {heart, enigma}, ["Omanyte"] = {rock, water}, ["Omastar"] = {rock, water}, ["Kabuto"] = {rock, water}, ["Kabutops"] = {rock, water}, ["Aerodactyl"] = {rock}, ["Snorlax"] = {heart}, ["Articuno"] = {ice}, ["Zapdos"] = {thunder}, ["Moltres"] = {fire}, ["Dratini"] = {crystal}, ["Dragonair"] = {crystal}, ["Dragonite"] = {crystal}, ["Mewtwo"] = {enigma}, ["Mew"] = {enigma}, ["Shiny Bulbasaur"] = {leaf}, ["Shiny Ivysaur"] = {leaf}, ["Shiny Venusaur"] = {leaf}, ["Shiny Charmander"] = {fire}, ["Shiny Charmeleon"] = {fire}, ["Shiny Charizard"] = {fire}, ["Shiny Squirtle"] = {water}, ["Shiny Wartortle"] = {water}, ["Shiny Blastoise"] = {water}, ["Shiny Caterpie"] = {coccon}, ["Shiny Metapod"] = {coccon}, ["Shiny Butterfree"] = {coccon}, ["Shiny Weedle"] = {coccon}, ["Shiny Kakuna"] = {coccon}, ["Shiny Beedrill"] = {coccon}, ["Shiny Pidgey"] = {heart}, ["Shiny Pidgeotto"] = {heart}, ["Shiny Pidgeot"] = {heart}, ["Shiny Rattata"] = {heart}, ["Shiny Raticate"] = {heart}, ["Shiny Spearow"] = {heart}, ["Shiny Fearow"] = {heart}, ["Shiny Ekans"] = {venom}, ["Shiny Arbok"] = {venom}, ["Shiny Pikachu"] = {thunder}, ["Shiny Raichu"] = {thunder}, ["Shiny Sandshrew"] = {earth}, ["Shiny Sandslash"] = {earth}, ["Shiny Nidoran Female"] = {venom}, ["Shiny Nidorina"] = {venom}, ["Shiny Nidoqueen"] = {venom, earth}, ["Shiny Nidoran Male"] = {venom}, ["Shiny Nidorino"] = {venom}, ["Shiny Nidoking"] = {venom, earth}, ["Shiny Clefairy"] = {heart}, ["Shiny Clefable"] = {heart}, ["Shiny Vulpix"] = {fire}, ["Shiny Ninetales"] = {fire}, ["Shiny Jigglypuff"] = {heart}, ["Shiny Wigglytuff"] = {heart}, ["Shiny Zubat"] = {venom}, ["Shiny Golbat"] = {venom}, ["Shiny Oddish"] = {leaf, venom}, ["Shiny Gloom"] = {leaf, venom}, ["Shiny Vileplume"] = {leaf, venom}, ["Shiny Paras"] = {coccon, leaf}, ["Shiny Parasect"] = {coccon, leaf}, ["Shiny Venonat"] = {coccon, venom}, ["Shiny Venomoth"] = {coccon, venom}, ["Shiny Diglett"] = {earth}, ["Shiny Dugtrio"] = {earth}, ["Shiny Meowth"] = {heart}, ["Shiny Persian"] = {heart}, ["Shiny Psyduck"] = {water}, ["Shiny Golduck"] = {water, enigma}, ["Shiny Mankey"] = {punch}, ["Shiny Primeape"] = {punch}, ["Shiny Growlithe"] = {fire}, ["Shiny Arcanine"] = {fire}, ["Shiny Poliwag"] = {water}, ["Shiny Poliwhirl"] = {water}, ["Shiny Poliwrath"] = {water, punch}, ["Shiny Abra"] = {enigma}, ["Shiny Kadabra"] = {enigma}, ["Shiny Alakazam"] = {enigma}, ["Shiny Machop"] = {punch}, ["Shiny Machoke"] = {punch}, ["Shiny Machamp"] = {punch}, ["Shiny Bellsprout"] = {leaf, venom}, ["Shiny Weepinbell"] = {leaf, venom}, ["Shiny Victreebel"] = {leaf, venom}, ["Shiny Tentacool"] = {water, venom}, ["Shiny Tentacruel"] = {water, venom}, ["Shiny Geodude"] = {earth, rock}, ["Shiny Graveler"] = {earth, rock}, ["Shiny Golem"] = {earth, rock}, ["Shiny Ponyta"] = {fire}, ["Shiny Rapidash"] = {fire}, ["Shiny Slowpoke"] = {water, enigma}, ["Shiny Slowbro"] = {water, enigma}, ["Shiny Magnemite"] = {thunder, metal}, ["Shiny Magneton"] = {thunder, metal}, ["Shiny Farfetch'd"] = {heart}, ["Shiny Doduo"] = {heart}, ["Shiny Dodrio"] = {heart}, ["Shiny Seel"] = {water, ice}, ["Shiny Dewgong"] = {water, ice}, ["Shiny Grimer"] = {venom}, ["Shiny Muk"] = {venom}, ["Shiny Shellder"] = {water, ice}, ["Shiny Cloyster"] = {water, ice}, ["Shiny Gastly"] = {dark}, ["Shiny Haunter"] = {dark}, ["Shiny Gengar"] = {dark}, ["Shiny Onix"] = {rock, earth}, ["Shiny Drowzee"] = {enigma}, ["Shiny Hypno"] = {enigma}, ["Shiny Krabby"] = {water}, ["Shiny Kingler"] = {water}, ["Shiny Voltorb"] = {thunder}, ["Shiny Electrode"] = {thunder}, ["Shiny Exeggcute"] = {enigma, leaf}, ["Shiny Exeggutor"] = {enigma, leaf}, ["Shiny Cubone"] = {earth}, ["Shiny Marowak"] = {earth}, ["Shiny Hitmonlee"] = {punch}, ["Shiny Hitmonchan"] = {punch}, ["Shiny Lickitung"] = {heart}, ["Shiny Koffing"] = {venom}, ["Shiny Weezing"] = {venom}, ["Shiny Rhyhorn"] = {earth, rock}, ["Shiny Rhydon"] = {earth, rock}, ["Shiny Chansey"] = {heart}, ["Shiny Tangela"] = {leaf}, ["Shiny Kangaskhan"] = {heart}, ["Shiny Horsea"] = {water}, ["Shiny Seadra"] = {water}, ["Shiny Goldeen"] = {water}, ["Shiny Seaking"] = {water}, ["Shiny Staryu"] = {water}, ["Shiny Starmie"] = {water}, ["Shiny Mr. Mime"] = {enigma}, ["Shiny Scyther"] = {coccon}, ["Shiny Jynx"] = {enigma, ice}, ["Shiny Electabuzz"] = {thunder}, ["Shiny Magmar"] = {fire}, ["Shiny Pinsir"] = {coccon}, ["Shiny Tauros"] = {heart}, ["Shiny Magikarp"] = {water}, ["Shiny Gyarados"] = {water, crystal}, ["Shiny Lapras"] = {water, ice}, ["Shiny Ditto"] = {heart}, ["Shiny Eevee"] = {heart}, ["Shiny Vaporeon"] = {water}, ["Shiny Jolteon"] = {thunder}, ["Shiny Flareon"] = {fire}, ["Shiny Porygon"] = {heart, enigma}, ["Shiny Omanyte"] = {rock, water}, ["Shiny Omastar"] = {rock, water}, ["Shiny Kabuto"] = {rock, water}, ["Shiny Kabutops"] = {rock, water}, ["Shiny Aerodactyl"] = {rock}, ["Shiny Snorlax"] = {heart}, ["Shiny Articuno"] = {ice}, ["Shiny Zapdos"] = {thunder}, ["Shiny Moltres"] = {fire}, ["Shiny Dratini"] = {crystal}, ["Shiny Dragonair"] = {crystal}, ["Shiny Dragonite"] = {crystal}, ["Shiny Mewtwo"] = {enigma}, ["Shiny Mew"] = {enigma}, ["Chikorita"] = {leaf}, ["Bayleef"] = {leaf}, ["Meganium"] = {leaf}, ["Cyndaquil"] = {fire}, ["Quilava"] = {fire}, ["Typhlosion"] = {fire}, ["Totodile"] = {water}, ["Croconaw"] = {water}, ["Feraligatr"] = {water}, ["Sentret"] = {heart}, ["Furret"] = {heart}, ["Hoothoot"] = {heart, enigma}, ["Noctowl"] = {heart, enigma}, ["Ledyba"] = {coccon}, ["Ledian"] = {coccon}, ["Spinarak"] = {coccon, venom}, ["Ariados"] = {coccon, venom}, ["Crobat"] = {venom}, ["Chinchou"] = {water, thunder}, ["Lanturn"] = {water, thunder}, ["Pichu"] = {thunder}, ["Cleffa"] = {heart}, ["Iglybuff"] = {venom}, ["Natu"] = {enigma}, ["Xatu"] = {enigma}, ["Mareep"] = {thunder}, ["Flaaffy"] = {thunder}, ["Ampharos"] = {thunder}, ["Bellossom"] = {leaf}, ["Marill"] = {water}, ["Azulmarill"] = {water}, ["Sudowoodo"] = {rock, earth}, ["Politoed"] = {water, earth}, ["Hoppip"] = {leaf}, ["Skiploom"] = {leaf}, ["Jumpluff"] = {leaf}, ["Aipom"] = {heart}, ["Sunkern"] = {leaf}, ["Sunflora"] = {leaf}, ["Yanma"] = {venom, coccon}, ["Wooper"] = {water}, ["Quagsire"] = {water, earth}, ["Murkrow"] = {dark}, ["Slowking"] = {water,enigma}, ["Misdreavus"] = {dark}, ["Wobbuffet"] = {enigma}, ["Girafarig"] = {enigma}, ["Pineco"] = {coccon}, ["Forretress"] = {coccon}, ["Gligar"] = {dark, heart}, ["Steelix"] = {earth, rock}, ["Snubbull"] = {heart}, ["Granbull"] = {heart}, ["Qwilfish"] = {water}, ["Shuckle"] = {earth}, ["Heracross"] = {coccon}, ["Teddiursa"] = {heart}, ["Ursaring"] = {heart, dark}, ["Slugma"] = {fire}, ["Magcargo"] = {fire}, ["Swinub"] = {ice, earth}, ["Piloswine"] = {ice, earth}, ["Corsola"] = {water}, ["Remoraid"] = {water}, ["Octillery"] = {water}, ["Delibird"] = {ice, heart}, ["Mantine"] = {water}, ["Skarmory"] = {heart}, ["Houndour"] = {fire, dark}, ["Houndoom"] = {fire, dark}, ["Kingdra"] = {water, crystal}, ["Phanpy"] = {earth}, ["Donphan"] = {earth}, ["porygon2"] = {enigma}, ["Stantler"] = {heart}, ["Smeargle"] = {heart}, ["Tyrogue"] = {punch}, ["Hitmontop"] = {punch}, ["Smoochum"] = {ice, enigma}, ["Elekid"] = {thunder}, ["Magby"] = {fire}, ["Miltank"] = {heart}, ["Blissey"] = {heart}, ["Raikou"] = {thunder}, ["Entei"] = {fire}, ["Suicune"] = {water}, ["Larvitar"] = {earth, dark}, ["Pupitar"] = {earth, dark}, ["Tyranitar"] = {earth, dark}, ["Lugia"] = {enigma, water}, ["Ho-oh"] = {enigma, fire}, ["Celebi"] = {leaf, enigma}, ["Scizor"] = {coccon, leaf}} 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, } local stone_increase = { -- a cada quantos boosts irá aumentar o custo de stones [heart] = 300000000000000, [leaf] = 300000000000000, [water] = 300000000000000, [venom] = 300000000000000, [thunder] = 300000000000000, [rock] = 300000000000000, [punch] = 300000000000000, [fire] = 300000000000000, [coccon] = 300000000000000, [crystal] = 300000000000000, [dark] = 300000000000000, [earth] = 300000000000000, [enigma] = 300000000000000, [ice] = 300000000000000, } function onUse(cid, item, topos, item2, frompos) if isRunning(item.itemid) then doPlayerSendCancel(cid, "Wait until boosting finishes.") 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, "You need to put a pokeball in the ball slot.") return true end local pokemon = getItemAttribute(myball.uid, "poke") local boost = getItemAttribute(myball.uid, "boost") or 0 if boost >= 100 then doPlayerSendCancel(cid, "Your pokemon is already at maximum 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, "You need to put a stone in the stone slot.") return true end if not isStone(stone.itemid) then doPlayerSendCancel(cid, "Please, put only stones in the stone slot.") return true end if not isInArray(boost_stones[pokemon], stone.itemid) then local cancelstr = "Sorry, you are not using the correct stone." if #boost_stones[pokemon] > 1 then local stonesused = "" cancelstr = cancelstr.." This pokemon needs " for su = 1, #boost_stones[pokemon] do local n = doCorrectString(getItemNameById(boost_stones[pokemon][su])) if su == #boost_stones[pokemon] then stonesused = stonesused.." or "..getArticle(n).." "..n.."" elseif su == 1 then stonesused = stonesused..""..getArticle(n).." "..n.."" else stonesused = stonesused..", "..n.."" end end cancelstr = cancelstr..""..stonesused.." to be boosted." else cancelstr = cancelstr.." This pokemon needs a "..doCorrectString(getItemNameById(boost_stones[pokemon][1])).." to be boosted." 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, "Please, put only stones in the stone slot.") return true end if it.itemid ~= stone.itemid then doPlayerSendCancel(cid, "Please, put only one type of stone in the stone slot.") return true end if required_stones > 0 then required_stones = required_stones - 1 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 end end end end if required_stones > 0 and boosts == 0 then doPlayerSendCancel(cid, "You need more stones to boost this pokemon.") return true end for b = 1, removeStones do doRemoveItem(getContainerItem(stone_slot.uid, 0).uid, 1) end 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) local msg = "Your "..getPokeballName(myball.uid).." ["..getItemAttribute(myball.uid, "level").."] has been boosted!" local msg2 = "• Boost: "..(boost + boosts).." (+"..boosts..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."" 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 Respondendo sua pergunta Primeiro , Vá na PastadoOT/Data/Actions/Actions.xml add iso lá <action itemid="12352-12357" event="script" value="boost.lua"/> depois vá em PastadoOT/Data/Actions/Scripts Procure seu Boost.lua , apague tudo dentro dele e coloque esse \/ 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 = { ["Bulbasaur"] = {leaf}, ["Ivysaur"] = {leaf}, ["Venusaur"] = {leaf}, ["Charmander"] = {fire}, ["Charmeleon"] = {fire}, ["Charizard"] = {fire}, ["Squirtle"] = {water}, ["Wartortle"] = {water}, ["Blastoise"] = {water}, ["Caterpie"] = {coccon}, ["Metapod"] = {coccon}, ["Butterfree"] = {coccon}, ["Weedle"] = {coccon}, ["Kakuna"] = {coccon}, ["Beedrill"] = {coccon}, ["Pidgey"] = {heart}, ["Pidgeotto"] = {heart}, ["Pidgeot"] = {heart}, ["Rattata"] = {heart}, ["Raticate"] = {heart}, ["Spearow"] = {heart}, ["Fearow"] = {heart}, ["Ekans"] = {venom}, ["Arbok"] = {venom}, ["Pikachu"] = {thunder}, ["Raichu"] = {thunder}, ["Sandshrew"] = {earth}, ["Sandslash"] = {earth}, ["Nidoran Female"] = {venom}, ["Nidorina"] = {venom}, ["Nidoqueen"] = {venom, earth}, ["Nidoran Male"] = {venom}, ["Nidorino"] = {venom}, ["Nidoking"] = {venom, earth}, ["Clefairy"] = {heart}, ["Clefable"] = {heart}, ["Vulpix"] = {fire}, ["Ninetales"] = {fire}, ["Jigglypuff"] = {heart}, ["Wigglytuff"] = {heart}, ["Zubat"] = {venom}, ["Golbat"] = {venom}, ["Oddish"] = {leaf, venom}, ["Gloom"] = {leaf, venom}, ["Vileplume"] = {leaf, venom}, ["Paras"] = {coccon, leaf}, ["Parasect"] = {coccon, leaf}, ["Venonat"] = {coccon, venom}, ["Venomoth"] = {coccon, venom}, ["Diglett"] = {earth}, ["Dugtrio"] = {earth}, ["Meowth"] = {heart}, ["Persian"] = {heart}, ["Psyduck"] = {water}, ["Golduck"] = {water, enigma}, ["Mankey"] = {punch}, ["Primeape"] = {punch}, ["Growlithe"] = {fire}, ["Arcanine"] = {fire}, ["Poliwag"] = {water}, ["Poliwhirl"] = {water}, ["Poliwrath"] = {water, punch}, ["Abra"] = {enigma}, ["Kadabra"] = {enigma}, ["Alakazam"] = {enigma}, ["Machop"] = {punch}, ["Machoke"] = {punch}, ["Machamp"] = {punch}, ["Bellsprout"] = {leaf, venom}, ["Weepinbell"] = {leaf, venom}, ["Victreebel"] = {leaf, venom}, ["Tentacool"] = {water, venom}, ["Tentacruel"] = {water, venom}, ["Geodude"] = {earth, rock}, ["Graveler"] = {earth, rock}, ["Golem"] = {earth, rock}, ["Ponyta"] = {fire}, ["Rapidash"] = {fire}, ["Slowpoke"] = {water, enigma}, ["Slowbro"] = {water, enigma}, ["Magnemite"] = {thunder, metal}, ["Magneton"] = {thunder, metal}, ["Farfetch'd"] = {heart}, ["Doduo"] = {heart}, ["Dodrio"] = {heart}, ["Seel"] = {water, ice}, ["Dewgong"] = {water, ice}, ["Grimer"] = {venom}, ["Muk"] = {venom}, ["Shellder"] = {water, ice}, ["Cloyster"] = {water, ice}, ["Gastly"] = {dark}, ["Haunter"] = {dark}, ["Gengar"] = {dark}, ["Onix"] = {rock, earth}, ["Drowzee"] = {enigma}, ["Hypno"] = {enigma}, ["Krabby"] = {water}, ["Kingler"] = {water}, ["Voltorb"] = {thunder}, ["Electrode"] = {thunder}, ["Exeggcute"] = {enigma, leaf}, ["Exeggutor"] = {enigma, leaf}, ["Cubone"] = {earth}, ["Marowak"] = {earth}, ["Hitmonlee"] = {punch}, ["Hitmonchan"] = {punch}, ["Lickitung"] = {heart}, ["Koffing"] = {venom}, ["Weezing"] = {venom}, ["Rhyhorn"] = {earth, rock}, ["Rhydon"] = {earth, rock}, ["Chansey"] = {heart}, ["Tangela"] = {leaf}, ["Kangaskhan"] = {heart}, ["Horsea"] = {water}, ["Seadra"] = {water}, ["Goldeen"] = {water}, ["Seaking"] = {water}, ["Staryu"] = {water}, ["Starmie"] = {water}, ["Mr. Mime"] = {enigma}, ["Scyther"] = {coccon}, ["Jynx"] = {enigma, ice}, ["Electabuzz"] = {thunder}, ["Magmar"] = {fire}, ["Pinsir"] = {coccon}, ["Tauros"] = {heart}, ["Magikarp"] = {water}, ["Gyarados"] = {water, crystal}, ["Lapras"] = {water, ice}, ["Ditto"] = {heart}, ["Eevee"] = {heart}, ["Vaporeon"] = {water}, ["Jolteon"] = {thunder}, ["Flareon"] = {fire}, ["Porygon"] = {heart, enigma}, ["Omanyte"] = {rock, water}, ["Omastar"] = {rock, water}, ["Kabuto"] = {rock, water}, ["Kabutops"] = {rock, water}, ["Aerodactyl"] = {rock}, ["Snorlax"] = {heart}, ["Articuno"] = {ice}, ["Zapdos"] = {thunder}, ["Moltres"] = {fire}, ["Dratini"] = {crystal}, ["Dragonair"] = {crystal}, ["Dragonite"] = {crystal}, ["Mewtwo"] = {enigma}, ["Mew"] = {enigma}, ["Shiny Bulbasaur"] = {leaf}, ["Shiny Ivysaur"] = {leaf}, ["Shiny Venusaur"] = {leaf}, ["Shiny Charmander"] = {fire}, ["Shiny Charmeleon"] = {fire}, ["Shiny Charizard"] = {fire}, ["Shiny Squirtle"] = {water}, ["Shiny Wartortle"] = {water}, ["Shiny Blastoise"] = {water}, ["Shiny Caterpie"] = {coccon}, ["Shiny Metapod"] = {coccon}, ["Shiny Butterfree"] = {coccon}, ["Shiny Weedle"] = {coccon}, ["Shiny Kakuna"] = {coccon}, ["Shiny Beedrill"] = {coccon}, ["Shiny Pidgey"] = {heart}, ["Shiny Pidgeotto"] = {heart}, ["Shiny Pidgeot"] = {heart}, ["Shiny Rattata"] = {heart}, ["Shiny Raticate"] = {heart}, ["Shiny Spearow"] = {heart}, ["Shiny Fearow"] = {heart}, ["Shiny Ekans"] = {venom}, ["Shiny Arbok"] = {venom}, ["Shiny Pikachu"] = {thunder}, ["Shiny Raichu"] = {thunder}, ["Shiny Sandshrew"] = {earth}, ["Shiny Sandslash"] = {earth}, ["Shiny Nidoran Female"] = {venom}, ["Shiny Nidorina"] = {venom}, ["Shiny Nidoqueen"] = {venom, earth}, ["Shiny Nidoran Male"] = {venom}, ["Shiny Nidorino"] = {venom}, ["Shiny Nidoking"] = {venom, earth}, ["Shiny Clefairy"] = {heart}, ["Shiny Clefable"] = {heart}, ["Shiny Vulpix"] = {fire}, ["Shiny Ninetales"] = {fire}, ["Shiny Jigglypuff"] = {heart}, ["Shiny Wigglytuff"] = {heart}, ["Shiny Zubat"] = {venom}, ["Shiny Golbat"] = {venom}, ["Shiny Oddish"] = {leaf, venom}, ["Shiny Gloom"] = {leaf, venom}, ["Shiny Vileplume"] = {leaf, venom}, ["Shiny Paras"] = {coccon, leaf}, ["Shiny Parasect"] = {coccon, leaf}, ["Shiny Venonat"] = {coccon, venom}, ["Shiny Venomoth"] = {coccon, venom}, ["Shiny Diglett"] = {earth}, ["Shiny Dugtrio"] = {earth}, ["Shiny Meowth"] = {heart}, ["Shiny Persian"] = {heart}, ["Shiny Psyduck"] = {water}, ["Shiny Golduck"] = {water, enigma}, ["Shiny Mankey"] = {punch}, ["Shiny Primeape"] = {punch}, ["Shiny Growlithe"] = {fire}, ["Shiny Arcanine"] = {fire}, ["Shiny Poliwag"] = {water}, ["Shiny Poliwhirl"] = {water}, ["Shiny Poliwrath"] = {water, punch}, ["Shiny Abra"] = {enigma}, ["Shiny Kadabra"] = {enigma}, ["Shiny Alakazam"] = {enigma}, ["Shiny Machop"] = {punch}, ["Shiny Machoke"] = {punch}, ["Shiny Machamp"] = {punch}, ["Shiny Bellsprout"] = {leaf, venom}, ["Shiny Weepinbell"] = {leaf, venom}, ["Shiny Victreebel"] = {leaf, venom}, ["Shiny Tentacool"] = {water, venom}, ["Shiny Tentacruel"] = {water, venom}, ["Shiny Geodude"] = {earth, rock}, ["Shiny Graveler"] = {earth, rock}, ["Shiny Golem"] = {earth, rock}, ["Shiny Ponyta"] = {fire}, ["Shiny Rapidash"] = {fire}, ["Shiny Slowpoke"] = {water, enigma}, ["Shiny Slowbro"] = {water, enigma}, ["Shiny Magnemite"] = {thunder, metal}, ["Shiny Magneton"] = {thunder, metal}, ["Shiny Farfetch'd"] = {heart}, ["Shiny Doduo"] = {heart}, ["Shiny Dodrio"] = {heart}, ["Shiny Seel"] = {water, ice}, ["Shiny Dewgong"] = {water, ice}, ["Shiny Grimer"] = {venom}, ["Shiny Muk"] = {venom}, ["Shiny Shellder"] = {water, ice}, ["Shiny Cloyster"] = {water, ice}, ["Shiny Gastly"] = {dark}, ["Shiny Haunter"] = {dark}, ["Shiny Gengar"] = {dark}, ["Shiny Onix"] = {rock, earth}, ["Shiny Drowzee"] = {enigma}, ["Shiny Hypno"] = {enigma}, ["Shiny Krabby"] = {water}, ["Shiny Kingler"] = {water}, ["Shiny Voltorb"] = {thunder}, ["Shiny Electrode"] = {thunder}, ["Shiny Exeggcute"] = {enigma, leaf}, ["Shiny Exeggutor"] = {enigma, leaf}, ["Shiny Cubone"] = {earth}, ["Shiny Marowak"] = {earth}, ["Shiny Hitmonlee"] = {punch}, ["Shiny Hitmonchan"] = {punch}, ["Shiny Lickitung"] = {heart}, ["Shiny Koffing"] = {venom}, ["Shiny Weezing"] = {venom}, ["Shiny Rhyhorn"] = {earth, rock}, ["Shiny Rhydon"] = {earth, rock}, ["Shiny Chansey"] = {heart}, ["Shiny Tangela"] = {leaf}, ["Shiny Kangaskhan"] = {heart}, ["Shiny Horsea"] = {water}, ["Shiny Seadra"] = {water}, ["Shiny Goldeen"] = {water}, ["Shiny Seaking"] = {water}, ["Shiny Staryu"] = {water}, ["Shiny Starmie"] = {water}, ["Shiny Mr. Mime"] = {enigma}, ["Shiny Scyther"] = {coccon}, ["Shiny Jynx"] = {enigma, ice}, ["Shiny Electabuzz"] = {thunder}, ["Shiny Magmar"] = {fire}, ["Shiny Pinsir"] = {coccon}, ["Shiny Tauros"] = {heart}, ["Shiny Magikarp"] = {water}, ["Shiny Gyarados"] = {water, crystal}, ["Shiny Lapras"] = {water, ice}, ["Shiny Ditto"] = {heart}, ["Shiny Eevee"] = {heart}, ["Shiny Vaporeon"] = {water}, ["Shiny Jolteon"] = {thunder}, ["Shiny Flareon"] = {fire}, ["Shiny Porygon"] = {heart, enigma}, ["Shiny Omanyte"] = {rock, water}, ["Shiny Omastar"] = {rock, water}, ["Shiny Kabuto"] = {rock, water}, ["Shiny Kabutops"] = {rock, water}, ["Shiny Aerodactyl"] = {rock}, ["Shiny Snorlax"] = {heart}, ["Shiny Dratini"] = {crystal}, ["Shiny Dragonair"] = {crystal}, ["Shiny Dragonite"] = {crystal}, ["Chikorita"] = {leaf}, ["Bayleef"] = {leaf}, ["Meganium"] = {leaf}, ["Cyndaquil"] = {fire}, ["Quilava"] = {fire}, ["Typhlosion"] = {fire}, ["Totodile"] = {water}, ["Croconaw"] = {water}, ["Feraligatr"] = {water}, ["Sentret"] = {heart}, ["Furret"] = {heart}, ["Hoothoot"] = {heart, enigma}, ["Noctowl"] = {heart, enigma}, ["Ledyba"] = {coccon}, ["Ledian"] = {coccon}, ["Spinarak"] = {coccon, venom}, ["Ariados"] = {coccon, venom}, ["Crobat"] = {venom}, ["Chinchou"] = {water, thunder}, ["Lanturn"] = {water, thunder}, ["Pichu"] = {thunder}, ["Cleffa"] = {heart}, ["Iglybuff"] = {venom}, ["Natu"] = {enigma}, ["Xatu"] = {enigma}, ["Mareep"] = {thunder}, ["Flaaffy"] = {thunder}, ["Ampharos"] = {thunder}, ["Bellossom"] = {leaf}, ["Marill"] = {water}, ["Azulmarill"] = {water}, ["Sudowoodo"] = {rock, earth}, ["Politoed"] = {water, earth}, ["Hoppip"] = {leaf}, ["Skiploom"] = {leaf}, ["Jumpluff"] = {leaf}, ["Aipom"] = {heart}, ["Sunkern"] = {leaf}, ["Sunflora"] = {leaf}, ["Yanma"] = {venom, coccon}, ["Wooper"] = {water}, ["Quagsire"] = {water, earth}, ["Murkrow"] = {dark}, ["Slowking"] = {water,enigma}, ["Misdreavus"] = {dark}, ["Wobbuffet"] = {enigma}, ["Girafarig"] = {enigma}, ["Pineco"] = {coccon}, ["Forretress"] = {coccon}, ["Gligar"] = {dark, heart}, ["Steelix"] = {earth, rock}, ["Snubbull"] = {heart}, ["Granbull"] = {heart}, ["Qwilfish"] = {water}, ["Shuckle"] = {earth}, ["Heracross"] = {coccon}, ["Teddiursa"] = {heart}, ["Ursaring"] = {heart, dark}, ["Slugma"] = {fire}, ["Magcargo"] = {fire}, ["Swinub"] = {ice, earth}, ["Piloswine"] = {ice, earth}, ["Corsola"] = {water}, ["Remoraid"] = {water}, ["Octillery"] = {water}, ["Delibird"] = {ice, heart}, ["Mantine"] = {water}, ["Skarmory"] = {heart}, ["Houndour"] = {fire, dark}, ["Houndoom"] = {fire, dark}, ["Kingdra"] = {water, crystal}, ["Phanpy"] = {earth}, ["Donphan"] = {earth}, ["porygon2"] = {enigma}, ["Stantler"] = {heart}, ["Smeargle"] = {heart}, ["Tyrogue"] = {punch}, ["Hitmontop"] = {punch}, ["Smoochum"] = {ice, enigma}, ["Elekid"] = {thunder}, ["Magby"] = {fire}, ["Miltank"] = {heart}, ["Blissey"] = {heart}, ["Raikou"] = {thunder}, ["Entei"] = {fire}, ["Suicune"] = {water}, ["Larvitar"] = {earth, dark}, ["Pupitar"] = {earth, dark}, ["Tyranitar"] = {earth, dark}, ["Lugia"] = {enigma, water}, ["Ho-oh"] = {enigma, fire}, ["Celebi"] = {leaf, enigma}} 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, } local stone_increase = { -- a cada quantos boosts irá aumentar o custo de stones [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, } function onUse(cid, item, topos, item2, frompos) if isRunning(item.itemid) then doPlayerSendCancel(cid, "Wait until boosting finishes.") 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, "You need to put a pokeball in the ball slot.") return true end local pokemon = getItemAttribute(myball.uid, "poke") local boost = getItemAttribute(myball.uid, "boost") or 0 if boost >= 50 then doPlayerSendCancel(cid, "Your pokemon is already at maximum 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, "You need to put a stone in the stone slot.") return true end if not isStone(stone.itemid) then doPlayerSendCancel(cid, "Please, put only stones in the stone slot.") return true end if not isInArray(boost_stones[pokemon], stone.itemid) then local cancelstr = "Sorry, you are not using the correct stone." if #boost_stones[pokemon] > 1 then local stonesused = "" cancelstr = cancelstr.." This pokemon needs " for su = 1, #boost_stones[pokemon] do local n = doCorrectString(getItemNameById(boost_stones[pokemon][su])) if su == #boost_stones[pokemon] then stonesused = stonesused.." or "..getArticle(n).." "..n.."" elseif su == 1 then stonesused = stonesused..""..getArticle(n).." "..n.."" else stonesused = stonesused..", "..n.."" end end cancelstr = cancelstr..""..stonesused.." to be boosted." else cancelstr = cancelstr.." This pokemon needs a "..doCorrectString(getItemNameById(boost_stones[pokemon][1])).." to be boosted." 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, "Please, put only stones in the stone slot.") return true end if it.itemid ~= stone.itemid then doPlayerSendCancel(cid, "Please, put only one type of stone in the stone slot.") return true end if required_stones > 0 then required_stones = required_stones - 1 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 end end end end if required_stones > 0 and boosts == 0 then doPlayerSendCancel(cid, "You need more stones to boost this pokemon.") return true end for b = 1, removeStones do doRemoveItem(getContainerItem(stone_slot.uid, 0).uid, 1) end 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) local msg = "Your "..getPokeballName(myball.uid).." ["..getItemAttribute(myball.uid, "level").."] has been boosted!" local msg2 = "• Boost: "..(boost + boosts).." (+"..boosts..") • Offense: +"..doMathDecimal(off).." • Defense: +"..doMathDecimal(def).." • Spc. Atk: +"..doMathDecimal(spatk).." • Agility: +"..doMathDecimal(agi).." • Vitality: +"..doMathDecimal(vit).."" 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 Ajudei ?? Então . REP+ Editado Abril 23, 2012 por tonynamoral Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247407 Compartilhar em outros sites More sharing options...
Nu77 81 Postado Abril 23, 2012 Share Postado Abril 23, 2012 (editado) Estou pensando aqui... Fiz o systema de icones igual pxg esta quase perfeito so tem um poblema, como ele troca o "id" do item por outro não tem como usar-lo com o goback... ai fica o poblema pois saum varios mais varios ids e adicionar tudo seria um poblema... tava pensando em um jeito de fazer funcionar sem precisar add varias coisas nos script... pensei em modificar-lo mais axo que vai precisa mexer em praticamente qse todos os script... seria um poblema tb a solução atual que eu axei é ao mover a ball para o slot voltar a virar pokeball... Aceito sugestões para esse pobleminha ^^ Obrigado todos PS:Não irei disponibilizar esse script pois ele estara no server que eu estou criando para voces... @Tonynamoral Poste seu script de fishing que irei modificar para voce. Editado Abril 23, 2012 por SUJA Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247421 Compartilhar em outros sites More sharing options...
Denuvo 71 Postado Abril 23, 2012 Share Postado Abril 23, 2012 eae pessoal to voltando a acompanhar o topico estive umas semanas ai afk trabalhando muito :S @ALL dei uma lida ai numas paginas da 300 prak e tem muita gente perguntando sobre o fishing e tals isso já ée antigo ... na minha sing ou na do Slicer tem só seguir o procedimento e pronto @bizao030188 Boa mlk! http://www.xtibia.com/forum/topic/177592-pokemon-duvidas-no-servidor-pokemon-dash-advanced/page__view__findpost__p__1245913 http://www.xtibia.com/forum/topic/177592-pokemon-duvidas-no-servidor-pokemon-dash-advanced/page__view__findpost__p__1238299 Link para o comentário https://xtibia.com/forum/topic/177592-encerrado-pokemon-d%C3%BAvidas-pda/page/418/#findComment-1247460 Compartilhar em outros sites More sharing options...
Posts Recomendados