Ir para conteúdo

[Pokemon] Servidor Gabrieltxu e suas Versões


Gabrieltxu

Posts Recomendados

OS lendarios estao arrumandos sim testei aqui faz um tempo ja, nao tem ninguem que prestou atenção e percebeu que os inicial nao estao no starter?/\ use o molebox ele faz isso pra tu, pokemons evoluindo tao sim caso tentei rever denovo um pokemon normal.

 

Por favor reporta os bugs que acharem :).

Editado por guidark21
Link para o comentário
Compartilhar em outros sites

MOve1 coloca assim:

 

local msgs = {"use ", ""}

 

function doAlertReady(cid, id, movename, n, cd)

if not isCreature(cid) then return true end

local myball = getPlayerSlotItem(cid, 8)

if myball.itemid > 0 and getItemAttribute(myball.uid, cd) == "cd:"..id.."" then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(myball.uid).." - "..movename.." (m"..n..") is ready!")

return true

end

local p = getPokeballsInContainer(getPlayerSlotItem(cid, 3).uid)

if not p or #p <= 0 then return true end

for a = 1, #p do

if getItemAttribute(p[a], cd) == "cd:"..id.."" then

if isInArray({"m1", "m2", "m3"}, n) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (t"..n..") is ready!")

else

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getPokeballName(p[a]).." - "..movename.." (m"..n..") is ready!")

end

return true

end

end

end

 

function onSay(cid, words, param, channel)

 

 

if param ~= "" then return true end

if string.len(words) > 3 then return true end

 

if #getCreatureSummons(cid) == 0 then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You need a pokemon to use moves.")

return 0

end

--alterado v2.5

local mypoke = getCreatureSummons(cid)[1]

 

if getCreatureCondition(cid, CONDITION_EXHAUST) then return true end

if getCreatureName(mypoke) == "Evolution" then return true end

 

local name = getCreatureName(mypoke) == "Ditto" and getPlayerStorageValue(mypoke, 1010) or getCreatureName(mypoke)

 

local it = string.sub(words, 2, 3)

local move = movestable[name].move1

if getPlayerStorageValue(mypoke, 212123) >= 1 then

cdzin = "cm_move"..it..""

else

cdzin = "move"..it.."" --alterado v2.5

end

 

if it == "2" then

move = movestable[name].move2

elseif it == "3" then

move = movestable[name].move3

elseif it == "4" then

move = movestable[name].move4

elseif it == "5" then

move = movestable[name].move5

elseif it == "6" then

move = movestable[name].move6

elseif it == "7" then

move = movestable[name].move7

elseif it == "8" then

move = movestable[name].move8

elseif it == "9" then

move = movestable[name].move9

elseif it == "10" then

move = movestable[name].move10

elseif it == "11" then

move = movestable[name].move11

elseif it == "12" then

move = movestable[name].move12

elseif it == "13" then

move = movestable[name].move13

end

 

if isInArray({1,2,3,4,5,6,7,8,9,10,11,12,13}, it) then

mLevel = move.level

mCD = move.cd

mName = move.name

mTarget = move.target

mDist = move.dist

else

m = getItemAttribute(getPlayerSlotItem(cid, 8).uid, "t"..it.."")

mLevel = tmList[m].level

mCD = tmList[m].cd

mName = m

mTarget = tmList[m].target

mDist = tmList[m].dist

end

 

if not move then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't recognize this move.")

return true

end

 

--if false and getLevel(mypoke) < mLevel then

if getLevel(mypoke) < mLevel then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your pokemon doesn't have enough level to use this move.")

return 0

end

 

if getCD(getPlayerSlotItem(cid, 8).uid, cdzin) > 0 and getCD(getPlayerSlotItem(cid, 8).uid, cdzin) < (mCD + 2) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You have to wait "..getCD(getPlayerSlotItem(cid, 8).uid, cdzin).." seconds to use "..mName.." again.")

return 0

end

 

if getTileInfo(getThingPos(mypoke)).protection then

doPlayerSendCancel(cid, "Your pokemon cannot use moves while in protection zone.")

return 0

end

 

if getPlayerStorageValue(mypoke, 3894) >= 1 then

return doPlayerSendCancel(cid, "You can't attack because you is with fear") --alterado v2.3

end

 

if (mName == "Team Slice" or mName == "Team Claw") and #getCreatureSummons(cid) < 2 then --alterado v2.5

doPlayerSendCancel(cid, "Your pokemon need be in a team for use this move!")

return 0

end

--alterado v2.6

if isCreature(getCreatureTarget(cid)) and isInArray(specialabilities["evasion"], getCreatureName(getCreatureTarget(cid))) and math.random(1, 100) <= 10 then

local target = getCreatureTarget(cid)

 

if isCreature(getMasterTarget(target)) then --alterado v2.6 --alterado v2.5

doSendMagicEffect(getThingPos(target), 211)

doSendAnimatedText(getThingPos(target), "TOO BAD", 215)

doTeleportThing(target, getClosestFreeTile(target, getThingPos(mypoke)), false)

doSendMagicEffect(getThingPos(target), 211)

doFaceCreature(target, getThingPos(mypoke))

return true --alterado v2.6

end

end

 

 

if mTarget == 1 then

 

if not isCreature(getCreatureTarget(cid)) then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You don\'t have any targets.")

return 0

end

 

if getCreatureCondition(getCreatureTarget(cid), CONDITION_INVISIBLE) then

return 0

end

 

if getCreatureHealth(getCreatureTarget(cid)) <= 0 then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Your have already defeated your target.")

return 0

end

 

if not isCreature(getCreatureSummons(cid)[1]) then

return true

end

 

if getDistanceBetween(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid))) > mDist then

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Get closer to the target to use this move.")

return 0

end

 

if not isSightClear(getThingPos(getCreatureSummons(cid)[1]), getThingPos(getCreatureTarget(cid)), false) then

return 0

end

end

 

local newid = 0

 

if isSleeping(mypoke) or isSilence(mypoke) then --alterado v2.5

doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Sorry you can't do that right now.")

return 0

else

newid = setCD(getPlayerSlotItem(cid, 8).uid, cdzin, mCD)

end

 

doCreatureSay(cid, ""..getPokeName(mypoke)..", "..msgs[math.random(#msgs)]..""..mName.."!", TALKTYPE_SAY)

 

local summons = getCreatureSummons(cid) --alterado v2.6

 

addEvent(doAlertReady, mCD * 1000, cid, newid, mName, it, cdzin)

 

for i = 2, #summons do

if isCreature(summons) and getPlayerStorageValue(cid, 637501) >= 1 then

docastspell(summons, mName) --alterado v2.6

end

end

 

docastspell(mypoke, mName)

doCreatureAddCondition(cid, playerexhaust)

 

if useKpdoDlls then

doUpdateCooldowns(cid)

end

 

return 0

end

 

 

No exp coloque:

 

local combats = { --alterado v2.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 v2.5 tabelas agora estao em lib/configuration.lua

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 = {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 v2.6

local cannotkill = {BURNEDDAMAGE, POISONEDDAMAGE}

 

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 not isCreature(attacker) then --alterado v2.5 cid == attacker

if not isInArray(fixdamages, combat) and combats[combat] then

doSendAnimatedText(getThingPos(cid), value, combats[combat].cor)

end

return true

end

 

--------------------------------------------------

--alterado v2.6 retirado os combats sleep_powder e poison_powder daki!

--------------------------------------------------

if isMonster(cid) then

local 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 v2.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

end

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

end

--------------------------------------------------

if isPlayer(cid) and #getCreatureSummons(cid) <= 0 and type == STATSCHANGE_HEALTHLOSS then

 

if isSummon(attacker) or isPlayer(attacker) then

if canAttackOther(cid, attacker) == "Cant" then return false end

end

 

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, 6598754) >= 1 or getPlayerStorageValue(cid, 6598755) >= 1 then

setPlayerStorageValue(cid, 6598754, -1)

setPlayerStorageValue(cid, 6598755, -1)

doRemoveCondition(cid, CONDITION_OUTFIT) --alterado v2.7

doTeleportThing(cid, posBackPVP, false)

doCreatureAddHealth(cid, getCreatureMaxHealth(cid))

return false

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 then

if isInArray(pokeballs[btype].all, item.itemid) then

doTransformItem(item.uid, pokeballs[btype].off)

doItemSetAttribute(item.uid, "hp", 0)

end

end

end

------------Edited Golden Arena------------------ --alterado v2.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

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 false

end

end

------------------------------------------- /\/\

---

local corpse = doCreateItem(3058, 1, getThingPos(cid))

doDecayItem(corpse)

doItemSetAttribute(corpse, "pName", getCreatureName(cid)) --alterado v2.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 v2.8

doTeleportThing(cid, SafariOut, false)

doSendMagicEffect(getThingPos(cid), 21)

doPlayerSendTextMessage(cid, 27, "You die in the saffari...")

return false

end

---

end

doCreatureAddHealth(cid, -valor, 3, 180)

if not isPlayer(cid) and valor > 0 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 isSummon(cid) and isSummon(attacker) and canAttackOther(cid, attacker) == "Cant" 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

--------------------------------------------------

if ehMonstro(cid) and ehMonstro(attacker) then

return false --edited monstro nao atacar monstro

end

---------------------------------------------------

--------------------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 v2.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

end

end

-------------------------------------------------

 

local multiplier = 1

 

if isCreature(cid) then

poketype1 = pokes[getCreatureName(cid)].type --alterado v2.6

poketype2 = pokes[getCreatureName(cid)].type2

end

if not poketype1 or not poketype2 then return false end --alterado v2.6

 

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 + 0.5

end

if isInArray(effectiveness[damageCombat].super, poketype2) then

multiplier = multiplier + 0.5

end

if isInArray(effectiveness[damageCombat].weak, poketype1) then

multiplier = multiplier - 0.25 --alterado v2.3 efetividade q nem na pxg...

end

if isInArray(effectiveness[damageCombat].weak, poketype2) then

multiplier = multiplier - 0.25

end

if isInArray(effectiveness[damageCombat].non, poketype1) or isInArray(effectiveness[damageCombat].non, poketype2) then

if isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v2.5

multiplier = 0.5 --alterado v2.6

end

end

elseif combat == COMBAT_PHYSICALDAMAGE then

if isGhostPokemon(cid) then --alterado v2.3

 

if not isInArray(specialabilities["foresight"], getCreatureName(attacker)) then --alterado v2.5

doSendMagicEffect(getThingPos(cid), 3)

return false

end

end

 

local cd = getPlayerStorageValue(attacker, conds["Miss"])

local cd2 = getPlayerStorageValue(attacker, conds["Confusion"]) --alterado v2.5

local cd3 = getPlayerStorageValue(attacker, conds["Stun"])

if cd >= 0 or cd2 >= 0 or cd3 >= 0 then

if math.random(1, 100) > 50 then --50% chance de da miss no atk fisico

doSendMagicEffect(getThingPos(cid), 211)

doSendAnimatedText(getThingPos(attacker), "MISS", 215)

return false

end

end

end

--------------------------------------------------

local valor = value

 

if multiplier == 1.5 and poketype2 == "no type" then

multiplier = 2 --alterado v2.6

elseif multiplier == 1.5 and poketype2 ~= "no type" then

multiplier = 1.75

elseif multiplier == 1.25 then --edited effetivines = pxg

multiplier = 1

end

 

--------------------------------------------------

if isSummon(cid) and isSummon(attacker) then

if getCreatureMaster(cid) == getCreatureMaster(attacker) then

return false

end

if canAttackOther(cid, attacker) == "Cant" then

return false

end

end

 

local randomRange = math.random(83, 117) / 100

local block = 1

 

if not isPlayer(cid) then

 

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

 

if getOffenseInRage(attacker) >= 1500 then --alterado v2.8

valor = valor * 0.3

end

 

if isInArray(specialabilities["counter"], getCreatureName(cid)) then

if math.random(1, 100) <= 10 then

doCreatureAddHealth(attacker, -valor, 3, 180) --alterado v2.5

valor = 0

doSendAnimatedText(getThingPosWithDebug(cid), "COUNTER", 215)

end

end

else

block = 1 - (getDefense(cid) / (getSpecialAttack(attacker) + getDefense(cid)))

valor = valor * block * generalSpecialAttackReduction

if isSummon(cid) then

valor = valor * summonSpecialDamageReduction - getPokemonLevel(cid) / 2

end

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 == BURNEDDAMAGE then

valor = value * getResistance(cid, FIREDAMAGE)

elseif combat == POISONEDDAMAGE then

valor = value * getResistance(cid, POISONDAMAGE)

end

 

if math.random(1, 100) == 4 and not isInArray(ignorecritical, combat) then

doSendAnimatedText(getThingPos(attacker), "CRITICAL", 215)

valor = valor * 2

end

 

-------------------------Edited CLAN SYSTEM-----------------------------------

if isSummon(attacker) and getPlayerStorageValue(getCreatureMaster(attacker), 86228) >= 1 then

valor = valor*getClanPorcent(getCreatureMaster(attacker), combat, "atk")

elseif isSummon(cid) and getPlayerStorageValue(getCreatureMaster(cid), 86228) >= 1 then --alterado v2.3

valor = valor - (valor*getClanPorcent(getCreatureMaster(cid), combat, "def", pokes[getCreatureName(cid)].type, pokes[getCreatureName(cid)].type2))

end

-----------------------------------------------------------------------

 

---------------------- Edited Proteção --------------------------------

if valor <= 10 then

valor = math.random(15, 25)

end

-----------------------------------------------------------------------

---------------------- FEAR / ROAR ------------------------------------

if getPlayerStorageValue(attacker, conds["Fear"]) >= 1 then --alterado v2.5!!

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)) and getPlayerStorageValue(attacker, 999457) <= 0 then

valor = valor * 0 --alterado v2.5

end

end

end

 

if damageCombat == GROUNDDAMAGE then

if isInArray(specialabilities["levitate"], getCreatureName(cid)) then

valor = 0 --alterado v2.5

end

end

-----------------------------------------------------------------------------

local p = getThingPos(cid) --poke na pos backup

if p.x == 1 and p.y == 1 and p.z == 10 then

return false --alterado v2.2

end

 

if getPlayerStorageValue(cid, 9658783) == 1 then

return false --alterado v2.4 -- skill camuflage/future sight/acid armor e afins

end

-----------------------------------------------------------------------------

 

--------------- FIGHT MODE -----------------------

if useOTClient then

if isSummon(cid) then --alterado v2.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

end

end

if 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

end

end

end

-----------------------------------------------------------------------------

 

if valor >= getCreatureHealth(cid) then

if isInArray(cannotKill, combat) and isPlayer(cid) then

valor = getCreatureHealth(cid) - 1

else

valor = getCreatureHealth(cid)

end

end

valor = math.floor(valor) --alterado v2.5

 

------------------ SKILLs Q CURAM O ATTACKER ---------------------------------

local function doHeal(cid, amount)

if (getCreatureHealth(cid) + amount) >= getCreatureMaxHealth(cid) then

amount = math.abs(getCreatureHealth(cid)-getCreatureMaxHealth(cid))

end

if getCreatureHealth(cid) ~= getCreatureMaxHealth(cid) then --alterado v2.6

doCreatureAddHealth(cid, amount)

doSendAnimatedText(getThingPosWithDebug(cid), "+"..amount.."", 65)

end

end

 

if damageCombat == PSYCHICDAMAGE or damageCombat == MIRACLEDAMAGE then

if getPlayerStorageValue(attacker, 95487) >= 1 then

doHeal(attacker, valor)

setPlayerStorageValue(attacker, 95487, -1) --alterado v2.6

end

elseif damageCombat == SEED_BOMBDAMAGE then

doHeal(attacker, valor)

end

--------------------------------------------

----------SACRED FIRE-----------------------

if combat == SACREDDAMAGE and not ehNPC(cid) then --alterado v2.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 v2.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 v2.4

doCreatureAddHealth(attacker, math.floor(valor))

doSendAnimatedText(getThingPos(attacker), "+ "..math.floor(valor), 30)

end

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(attacker) then

if combat == COMBAT_PHYSICALDAMAGE then

doTargetCombatHealth(getCreatureMaster(attacker), cid, PHYSICALDAMAGE, -valor, -valor, 255)

addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v2.6 agility

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)

addEvent(doDoubleHit, 1000, attacker, cid, valor, races) --alterado v2.6 agility

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

 

if damageCombat == FIREDAMAGE and not isBurning(cid) then

local ret = {}

ret.id = cid

ret.cd = math.random(5, 12) --alterado v2.5

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) --alterado v2.5

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

------------------------------------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 v2.6

doSendAnimatedText(getThingPos(cid), "Lost Heal", 144)

end

end

end

----------------------------------------PASSIVAS------------------------------------- --alterado v2.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

end

 

 

Espero que ajude

Editado por guidark21
Link para o comentário
Compartilhar em outros sites

Revive nao pega o.O vou passa um aqui tenta ai:

 

function onUse(cid, item, frompos, item2, topos)

 

if getPlayerStorageValue(cid, 990) >= 1 then

doPlayerSendCancel(cid, "You can't use revive during gym battles.")

return true

end

 

if getPlayerStorageValue(cid, 52481) >= 1 then

return doPlayerSendCancel(cid, "You can't do that while a duel.") --alterado v3.1

end

--

if item2.itemid <= 0 or not isPokeball(item2.itemid) then

doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")

return true

end

 

for a, b in pairs (pokeballs) do

if item2.itemid == b.on or item2.itemid == b.off then --edited deixei igual ao do PXG

doTransformItem(item2.uid, b.on)

doSetItemAttribute(item2.uid, "hp", 1)

for c = 1, 15 do

local str = "move"..c

setCD(item2.uid, str, 0)

end

doSendMagicEffect(getThingPos(cid), 13)

doRemoveItem(item.uid, 1)

doCureBallStatus(item2.uid, "all")

cleanBuffs2(item2.uid) --alterado v2.5

setCD(item2.uid, "control", 0) --alterado v2.5

setCD(item2.uid, "blink", 0) --alterado v2.6

return true

end

end

 

return true

end

 

 

Caso nao fro pegue de uma versao anterior que nao ta buganda ;)

Editado por guidark21
Link para o comentário
Compartilhar em outros sites

Move1 Outro Bug !!

 

 

[17/02/2013 00:21:27] [Error - TalkAction Interface]

[17/02/2013 00:21:27] data/talkactions/scripts/move1.lua:onSay

[17/02/2013 00:21:27] Description:

[17/02/2013 00:21:27] data/talkactions/scripts/move1.lua:77: attempt to index local 'move' (a nil value)

[17/02/2013 00:21:27] stack traceback:

[17/02/2013 00:21:27] data/talkactions/scripts/move1.lua:77: in function <data/talkactions/scripts/move1.lua:24>

 

Link para o comentário
Compartilhar em outros sites

Nao funciona o.O se nao fro esse nao sei como arruma tenta ai:(da erro no distro se der passe)

 

function onUse(cid, item, frompos, item2, topos)

 

if getPlayerStorageValue(cid, 990) >= 1 then

doPlayerSendCancel(cid, "You can't use revive during gym battles.")

return true

end

 

if getPlayerStorageValue(cid, 52481) >= 1 then

return doPlayerSendCancel(cid, "You can't do that while a duel.") --alterado v2.6

end

--

if item2.itemid <= 0 or not isPokeball(item2.itemid) then

doPlayerSendCancel(cid, "Please, use revive only on pokeballs.")

return true

end

 

for a, b in pairs (pokeballs) do

if item2.itemid == b.on or item2.itemid == b.off then --edited deixei igual ao do PXG

doTransformItem(item2.uid, b.on)

doSetItemAttribute(item2.uid, "hp", 1)

for c = 1, 15 do

local str = "move"..c

setCD(item2.uid, str, 0)

end

setCD(item2.uid, "control", 0)

setCD(item2.uid, "blink", 0) --alterado v1.6

doSendMagicEffect(getThingPos(cid), 13)

doRemoveItem(item.uid, 1)

doCureBallStatus(item2.uid, "all")

cleanBuffs2(item2.uid) --alterado v2.5

return true

end

end

 

return true

end

 

Editado por guidark21
Link para o comentário
Compartilhar em outros sites

Oh serio irei testa aqui(pensei que ia normal o.O) caso nao fro irei procura para resolver(mais algum bug xd?)

 

 

Editando aqui foi nos 3 geração poderia fala em especifico que tu testou?

Editado por guidark21
Link para o comentário
Compartilhar em outros sites

'--' Os mesmos erros que tinha antes ainda tem...

 

N tem como criar regice..

não tem como criar rayquaza..

aqueles erros que citei antes todos ainda estão presentes no server.

 

ai voce vem e me fala "esta no client, quer tudo na mão?"

 

Então amigo voce poderia colocar la no conteudo do server

 

"Possui pokemons ate a 5 geração porem só esta no client, pois no server possui varios erros"

 

Fora os erros no distro.

 

Não estou querendo criticar não eu reporto para voce pois quero que voce arrume isso para que seu servidor cresça cada vez mais

fora isso parabens.

Link para o comentário
Compartilhar em outros sites

/\ EU mesmo cometi um grande erro pensei que tinha colocando tudo mais nao coloque o corpos no lib e nem no level table qualquer coisa eu postga aqui como arruma amanha sobre os erros irem ver oq posso fazer(mais fazer oq se tu quer um serve bom faça por tu mesmo:) por isso tme serve bons na net nao somos nos que vmaos fazer tu fica ocm 100+ player em um dia.)

 

Obrigando pro reporta até amanah eu posto aqui como arruma os erros dos lendarios

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...