[03/01/2013 12:34:26] [Error - CreatureScript Interface] [03/01/2013 12:34:26] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [03/01/2013 12:34:26] Description: [03/01/2013 12:34:26] (luaDoItemSetAttribute) Invalid data type [03/01/2013 12:34:26] [Error - CreatureScript Interface] [03/01/2013 12:34:26] data/creaturescripts/scripts/exp2.0.lua:onStatsChange [03/01/2013 12:34:26] Description: [03/01/2013 12:34:26] data/creaturescripts/scripts/exp2.0.lua:484: attempt to index field '?' (a nil value) [03/01/2013 12:34:26] stack traceback: [03/01/2013 12:34:26] data/creaturescripts/scripts/exp2.0.lua:484: in function <data/creaturescripts/scripts/exp2.0.lua:63>
alguem ajuda por favor não sei daonde vem esse erro pda ultima versao
local combats = { --alterado v1.6 \/[PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC},[GRASSDAMAGE] = {cor = COLOR_GRASS},[POISONEDDAMAGE] = {cor = COLOR_GRASS},[FIREDAMAGE] = {cor = COLOR_FIRE2}, [bURNEDDAMAGE] = {cor = COLOR_BURN},[WATERDAMAGE] = {cor = COLOR_WATER},[iCEDAMAGE] = {cor = COLOR_ICE},[NORMALDAMAGE] = {cor = COLOR_NORMAL},[FLYDAMAGE] = {cor = COLOR_FLYING}, [GHOSTDAMAGE] = {cor = COLOR_GHOST},[GROUNDDAMAGE] = {cor = COLOR_GROUND},[ELECTRICDAMAGE] = {cor = COLOR_ELECTRIC},[ROCKDAMAGE] = {cor = COLOR_ROCK},[bUGDAMAGE] = {cor = COLOR_BUG},[FIGHTDAMAGE] = {cor = COLOR_FIGHTING},[DRAGONDAMAGE] = {cor = COLOR_DRAGON},[POISONDAMAGE] = {cor = COLOR_POISON},[DARKDAMAGE] = {cor = COLOR_DARK}, [sTEELDAMAGE] = {cor = COLOR_STEEL},[MIRACLEDAMAGE] = {cor = COLOR_PSYCHIC}, [DARK_EYEDAMAGE] = {cor = COLOR_GHOST},[sEED_BOMBDAMAGE] = {cor = COLOR_GRASS},[sACREDDAMAGE] = {cor = COLOR_FIRE2},}--alterado v1.5 tabelas agora estao em lib/configuration.lualocal function sendPlayerDmgMsg(cid, text)if not isCreature(cid) then return true enddoPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, text)endlocal 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 = {GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE, DARKDAMAGE, STEELDAMAGE}local fixdmgs = {PSYCHICDAMAGE, COMBAT_PHYSICALDAMAGE, GRASSDAMAGE, FIREDAMAGE, WATERDAMAGE, ICEDAMAGE, NORMALDAMAGE, GHOSTDAMAGE}local ignored = {POISONEDDAMAGE, BURNEDDAMAGE} --alterado v1.6local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}function onStatsChange(cid, attacker, type, combat, value)if combat == FLYSYSTEMDAMAGE then return false endif isPlayer(cid) and getCreatureOutfit(cid).lookType == 814 then return false end -- TVif not isCreature(attacker) then --alterado v1.5 cid == attackerif not isInArray(fixdamages, combat) and combats[combat] thendoSendAnimatedText(getThingPos(cid), value, combats[combat].cor)endreturn trueendlocal damageCombat = combat----------------------------------------------------alterado v1.6 retirado os combats sleep_powder e poison_powder daki!--------------------------------------------------if type == STATSCHANGE_HEALTHGAIN thenif cid == attacker thenreturn trueendif isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" thenreturn falseendreturn trueend--------------------------------------------------if isMonster(cid) thenlocal valor = value if not pokes[getCreatureName(cid)] and damageCombat == COMBAT_PHYSICALDAMAGE then valor = getOffense(attacker) * playerDamageReduction doCreatureAddHealth(cid, -math.abs(valor), 3, races[7].cor) --alterado v1.6 dano nos npcs return false elseif not pokes[getCreatureName(cid)] and damageCombat ~= COMBAT_PHYSICALDAMAGE then doCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) return false endend--------------------------------------------------if isPlayer(attacker) thenlocal valor = valueif valor > getCreatureHealth(cid) thenvalor = getCreatureHealth(cid)endif combat == COMBAT_PHYSICALDAMAGE thenreturn falseendif combat == PHYSICALDAMAGE thendoSendMagicEffect(getThingPos(cid), 3)doSendAnimatedText(getThingPos(cid), valor, races[getMonsterInfo(getCreatureName(cid)).race].cor)endif combats[damageCombat] and not isInArray(fixdmgs, damageCombat) thendoSendAnimatedText(getThingPos(cid), valor, combats[damageCombat].cor)endif #getCreatureSummons(attacker) >= 1 and not isInArray({POISONEDDAMAGE, BURNEDDAMAGE}, combat) thendoPlayerSendTextMessage(attacker, MESSAGE_STATUS_DEFAULT, "Your "..getPokeName(getCreatureSummons(attacker)[1]).." dealt "..valor.." damage to "..getSomeoneDescription(cid)..".")endreturn trueend--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) >= 1 and type == STATSCHANGE_HEALTHLOSS thenreturn false end--------------------------------------------------if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS thenif isSummon(attacker) or isPlayer(attacker) then if canAttackOther(cid, attacker) == "Cant" then return false endendlocal valor = 0if combat == COMBAT_PHYSICALDAMAGE thenvalor = getOffense(attacker)elsevalor = getSpecialAttack(attacker)endvalor = valor * playerDamageReductionvalor = valor * math.random(83, 117) / 100if valor >= getCreatureHealth(cid) thenvalor = getCreatureHealth(cid)endvalor = math.floor(valor) if valor >= getCreatureHealth(cid) then if getPlayerStorageValue(cid, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then setPlayerStorageValue(cid, 6598754, -1) setPlayerStorageValue(cid, 6598755, -1) doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v1.7 doTeleportThing(cid, posBackPVP, false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)) return false --alterado v1.8 end 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 thenif isInArray(pokeballs[btype].all, item.itemid) thendoTransformItem(item.uid, pokeballs[btype].off)doItemSetAttribute(item.uid, "hp", 0)end end end ------------Edited Golden Arena------------------ --alterado v1.7 \/\/ if getPlayerStorageValue(cid, 22545) == 1 then if getGlobalStorageValue(22550) == 1 then doPlayerSendTextMessage(cid, 20, "You are the last survivor of the golden arena! Take your reward!") doPlayerAddItem(cid, 2152, getPlayerStorageValue(cid, 22551)*2) setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, getClosestFreeTile(cid, posBackGolden)), false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) setPlayerRecordWaves(cid) endGoldenArena() return false --alterado v1.8 else setGlobalStorageValue(22550, getGlobalStorageValue(22550)-1) setPlayerStorageValue(cid, 22545, -1) doTeleportThing(cid, getClosestFreeTile(cid, posBackGolden), false) doCreatureAddHealth(cid, getCreatureMaxHealth(cid)-getCreatureHealth(cid)) setPlayerRecordWaves(cid) return true end end ------------------------------------------- /\/\ --- local corpse = doCreateItem(3058, 1, getThingPos(cid)) doDecayItem(corpse) doItemSetAttribute(corpse, "pName", getCreatureName(cid)) --alterado v1.7 coloca corpse quando o player morre! doItemSetAttribute(corpse, "attacker", getCreatureName(attacker)) doItemSetAttribute(corpse, "article", getPlayerSex(cid) == 0 and "She" or "He") --- if getPlayerStorageValue(cid, 98796) >= 1 then setPlayerStorageValue(cid, 98796, -1) setPlayerStorageValue(cid, 98797, -1) --alterado v1.8 doTeleportThing(cid, SafariOut, false) doSendMagicEffect(getThingPos(cid), 21) doPlayerSendTextMessage(cid, 27, "You die in the saffari...") return false --alterado v1.8 end --- enddoCreatureAddHealth(cid, -valor, 3, 180)if not isPlayer(cid) thenaddEvent(sendPlayerDmgMsg, 5, cid, "You lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")endreturn falseend--------------------------------------------------if isMonster(attacker) and getPlayerStorageValue(attacker, 201) ~= -1 thenif isPlayer(cid) thenreturn falseendif getPlayerStorageValue(getCreatureMaster(cid), ginasios[getPlayerStorageValue(attacker, 201)].storage) ~= 1 thenreturn falseendend--------------------------------------------------if isMonster(cid) and getPlayerStorageValue(cid, 201) ~= -1 thenif getPlayerStorageValue(getCreatureMaster(attacker), ginasios[getPlayerStorageValue(cid, 201)].storage) ~= 1 thenreturn falseendend--------------------------------------------------if ehMonstro(cid) and ehMonstro(attacker) thenreturn false --edited monstro nao atacar monstroend----------------------------------------------------------------------REFLECT-----------------------if getPlayerStorageValue(cid, 21099) >= 1 and combat ~= COMBAT_PHYSICALDAMAGE then if not isInArray({"Team Claw", "Team Slice"}, getPlayerStorageValue(attacker, 21102)) then doSendMagicEffect(getThingPosWithDebug(cid), 135) doSendAnimatedText(getThingPosWithDebug(cid), "REFLECT", COLOR_GRASS) addEvent(docastspell, 100, cid, getPlayerStorageValue(attacker, 21102)) if getCreatureName(cid) == "Wobbuffet" then doRemoveCondition(cid, CONDITION_OUTFIT) end setPlayerStorageValue(cid, 21099, -1) --alterado v1.6 setPlayerStorageValue(cid, 21100, 1) setPlayerStorageValue(cid, 21101, attacker) setPlayerStorageValue(cid, 21103, getTableMove(attacker, getPlayerStorageValue(attacker, 21102)).f) setPlayerStorageValue(cid, 21104, getCreatureOutfit(attacker).lookType) return false endend-------------------------------------------------local multiplier = 1 if isCreature(cid) then poketype1 = pokes[getCreatureName(cid)].type --alterado v1.6 poketype2 = pokes[getCreatureName(cid)].type2 end if not poketype1 or not poketype2 then return false end --alterado v1.6 if getCreatureCondition(cid, CONDITION_INVISIBLE) thenreturn falseendif damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) thenif isInArray(effectiveness[damageCombat].super, poketype1) thenmultiplier = multiplier + 0.5endif isInArray(effectiveness[damageCombat].super, poketype2) thenmultiplier = multiplier + 0.5endif isInArray(effectiveness[damageCombat].weak, poketype1) then --Edited effetivenes = pxg... ;pmultiplier = multiplier - 0.25endif isInArray(effectiveness[damageCombat].weak, poketype2) thenmultiplier = multiplier - 0.25endif isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v1.5 multiplier = 0.5 end --alterado v1.6 endelseif combat == COMBAT_PHYSICALDAMAGE thenif isGhostPokemon(cid) then --alterado v1.3 if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --passiva Foresight!! doSendMagicEffect(getThingPos(cid), 3) return false end endlocal cd = getPlayerStorageValue(attacker, conds["Miss"]) local cd2 = getPlayerStorageValue(attacker, conds["Confusion"]) local cd3 = getPlayerStorageValue(attacker, conds["Stun"]) if cd >= 0 or cd2 >= 0 or cd3 >= 0 then if math.random(1, 100) > 50 then --Edited miss system -- 50% chance de da miss no atk fisico doSendMagicEffect(getThingPos(cid), 211) doSendAnimatedText(getThingPos(attacker), "MISS", 215) --alterado v1.5 return false end endend--------------------------------------------------local valor = valueif multiplier == 1.5 and poketype2 == "no type" then multiplier = 2 --alterado v1.6 elseif multiplier == 1.5 and poketype2 ~= "no type" then multiplier = 1.75 elseif multiplier == 1.25 then --edited effetivines = pxgmultiplier = 1 end-------------------------------------------------- if isSummon(cid) and isSummon(attacker) then if getCreatureMaster(cid) == getCreatureMaster(attacker) then return false endif canAttackOther(cid, attacker) == "Cant" then return false endendvalor = valor * multiplierif isSummon(attacker) thenvalor = valor * getHappinessRate(attacker)elsevalor = valor * summonReductionend valor = math.floor(valor) if combat == COMBAT_PHYSICALDAMAGE then --block = 1 - (getDefense(cid) / (getOffense(attacker) + getDefense(cid))) --valor = getOffense(attacker) * block if getOffense(attacker) > 1900 and getDefense(cid) <= 11 then valor = getOffense(attacker) * (1 - (getDefense(cid)/12)) else --alterado v1.8 valor = getOffense(attacker) * (1 - (getDefense(cid)/15)) end if isInArray(specialabilities["counter"], getCreatureName(cid)) then if math.random(1, 100) <= 10 then doCreatureAddHealth(attacker, -valor, 3, 180) --alterado v1.5 valor = 0 doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215) end end else valor = valor / getDefense(cid) end -------------------------Edited CLAN SYSTEM----------------------------------- if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk") --alterado v1.3 elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2)) end ----------------------------------------------------------------------- ---------------------- FEAR / ROAR ------------------------------------ if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then --alterado!! return true end--------------------------------------------------------------------------if damageCombat ~= COMBAT_PHYSICALDAMAGE and not isInArray(ignored, damageCombat) then if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v1.6 valor = valor * 0 --alterado v1.5 end endendif damageCombat == GROUNDDAMAGE then if isInArray(specialabilities["levitate"], getCreatureName(cid)) then valor = 0 --alterado v1.5 endend-----------------------------------------------------------------------------local p = getThingPos(cid) if p.x == 1 and p.y == 1 and p.z == 10 thenreturn false endif getPlayerStorageValue(cid, 9658783) == 1 thenreturn false --imuneend-------------------------------------------------------------------------------------------- FIGHT MODE -----------------------if useOTClient thenif isSummon(cid) then --alterado v1.7 soh funciona com o OTClient q eu disponibilizei... local master = getCreatureMaster(cid) if getPlayerStorageValue(master, 248759) == 1 then valor = valor * 1.1 elseif getPlayerStorageValue(master, 248759) == 3 then valor = valor * 0.9 endendif isSummon(attacker) then local master = getCreatureMaster(attacker) if getPlayerStorageValue(master, 248759) == 1 then valor = valor * 1.1 elseif getPlayerStorageValue(master, 248759) == 3 then valor = valor * 0.9 endendend -----------------------------------------------------------------------------if valor >= getCreatureHealth(cid) thenif isInArray(cannotKill, combat) and isPlayer(cid) thenvalor = getCreatureHealth(cid) - 1elsevalor = getCreatureHealth(cid)endendvalor = math.floor(valor) --alterado v1.6------------------ SKILLs Q CURAM O ATTACKER ---------------------------------local function doHeal(cid, amount)if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))endif getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then --alterado v1.6 doCreatureAddHealth(cid, amount) doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)endend if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then if getPlayerStorageValue(attacker, 95487) >= 1 then doHeal(attacker, valor) setPlayerStorageValue(attacker, 95487, -1) --alterado v1.6 endelseif damageCombat == SEED_BOMBDAMAGE then doHeal(attacker, valor)end------------------------------------------------------SACRED FIRE-----------------------if combat == SACREDDAMAGE and not ehNPC(cid) then --alterado v1.6 local ret = {} ret.id = cid ret.cd = 9 ret.check = getPlayerStorageValue(cid, conds["Silence"]) ret.eff = 39 ret.cond = "Silence" doCondition2(ret)elseif combat == MUDBOMBDAMAGE and not ehNPC(cid) then local ret = {} --alterado v1.8 ret.id = cid ret.cd = 9 ret.eff = 34 ret.check = getPlayerStorageValue(cid, conds["Miss"]) ret.spell = spell ret.cond = "Miss" doCondition2(ret)end-----------------------------------------------------------Passiva Lifesteal Clobat------------if combat == COMBAT_PHYSICALDAMAGE then if getCreatureName(attacker) == "Crobat" then --alterado v1.4 doCreatureAddHealth(attacker, math.floor(valor)) doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30) endend-------------------------------------------- if isSummon(attacker) thenif combat == COMBAT_PHYSICALDAMAGE thendoTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6elsedoTargetCombatHealth(getCreatureMaster(attacker), cid, damageCombat, -valor, -valor, 255)endelseif combat ~= COMBAT_PHYSICALDAMAGE thendoCreatureAddHealth(cid, -math.abs(valor), 3, combats[damageCombat].cor) else doCreatureAddHealth(cid, -math.abs(valor), 3, races[getMonsterInfo(getCreatureName(cid)).race].cor) addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v1.6 endif isSummon(cid) and valor ~= 0 thenaddEvent(sendPlayerDmgMsg, 5, getCreatureMaster(cid), "Your "..getCreatureName(cid).." lost "..valor.." hitpoints due to an attack from "..getSomeoneDescription(attacker)..".")endendif damageCombat == FIREDAMAGE and not isBurning(cid) then local ret = {} ret.id = cid ret.cd = math.random(5, 12) ret.check = getPlayerStorageValue(cid, conds["Burn"]) ret.damage = isSummon(attacker) and getMasterLevel(attacker)+getPokemonBoost(attacker) or getPokemonLevel(attacker) ret.cond = "Burn" doCondition2(ret) elseif damageCombat == POISONDAMAGE and not isPoisoned(cid) then local ret = {} ret.id = cid ret.cd = math.random(6, 15) ret.check = getPlayerStorageValue(cid, conds["Poison"]) local lvl = isSummon(attacker) and getMasterLevel(attacker) or getPokemonLevel(attacker) ret.damage = math.floor((getPokemonLevel(attacker)+lvl)/2) ret.cond = "Poison" doCondition2(ret) end--[[---------------CD BAR-----------------------if isSummon(cid) then doCreatureExecuteTalkAction(getCreatureMaster(cid), "/pokeread")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, 173, -1) --alterado v1.6 doSendAnimatedText(getThingPos(cid), "Lost Heal", 144) end endend----------------------------------------PASSIVAS------------------------------------- --alterado v1.7 \/-------------------------------------------Counter Helix------------------------------------if passivesChances["Helix"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Helix"][getCreatureName(cid)] then docastspell(cid, "Counter Helix")end-------------------------------------------Lava Counter/Electricity----------------------------if passivesChances["Fire_Thunder"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Fire_Thunder"][getCreatureName(cid)] then docastspell(cid, "Lava-Electricity")end---------------------------------------Stunning Confusion-----------------------------------------if passivesChances["Stunning"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Stunning"][getCreatureName(cid)] then docastspell(cid, "Stunning Confusion")end-----------------------------------------Groundshock-----------------------------------if passivesChances["Groundshock"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Groundshock"][getCreatureName(cid)] then docastspell(cid, "Groundshock")end--------------------------------------Electric Charge---------------------------------------------if passivesChances["Electric Charge"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Electric Charge"][getCreatureName(cid)] then docastspell(cid, "Electric Charge", 0, 0)end-------------------------------------Melody------------------------------------if passivesChances["Melody"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Melody"][getCreatureName(cid)] then docastspell(cid, "Melody")end------------------------------------- Dragon Fury / Fury ---------------------------------------if passivesChances["Dragon Fury"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Dragon Fury"][getCreatureName(cid)] then docastspell(cid, "Dragon Fury", 0, 0)end------------------------------------- Mega Drain ---------------------------------------if passivesChances["Mega Drain"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mega Drain"][getCreatureName(cid)] then docastspell(cid, "Mega Drain")end------------------------------------- Spores Reaction ---------------------------------------if passivesChances["Spores Reaction"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Spores Reaction"][getCreatureName(cid)] then docastspell(cid, "Spores Reaction")end------------------------------------ Amnesia ---------------------------------------- if passivesChances["Amnesia"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Amnesia"][getCreatureName(cid)] then docastspell(cid, "Amnesia", 0, 0)end----------------------------------- Zen Mind -----------------------------------------if passivesChances["Zen Mind"][getCreatureName(cid)] and isWithCondition(cid) and math.random(1, 100) <= passivesChances["Zen Mind"][getCreatureName(cid)] then docastspell(cid, "Zen Mind", 0, 0)end---------------------------------- Mirror Coat ---------------------------------------if passivesChances["Mirror Coat"][getCreatureName(cid)] and math.random(1, 100) <= passivesChances["Mirror Coat"][getCreatureName(cid)] then docastspell(cid, "Mirror Coat", 0, 0)end--------------------------------- Illusion -----------------------------------------return false