Jump to content

[Encerrado] [Pokemon] Dúvidas? - Pda


lucashgas

Recommended Posts

Slicer o problema tava no pokemon moves da atualização ...

 

Stigal vlw ai agr volto a funcionar ;D rep + pena q ta desatualizado :C com problemas de possiveis erros.

Edited by Dudu08267
Link to comment
Share on other sites

@galhem

se tas usando a versao 1.6/2.6+ party agora eh soh pra upar em conjunto... o duel agora eh por Order! de order na pessoa q tu quer duelar e entao escolha qnts pokes vao ser usados e entao a outra pessoa tem q usar Order em ti tb para aceitar o duel!

 

 

@Slicer

 

VC PODERIA ME ENSINAR A TIRAR ESSE SISTEMA DE DUEL E A COLOCAR O ANTIGO QUE SO PRECISAR DAR PARTY E DUELA SEM TER QUE DAR ORDER É QUE AQUI ELE DA DEBUG TE AGRADEÇO

Link to comment
Share on other sites

@stigal

vc gosta de aumentar a qntdade de post tua neh? ;/ sempre flando oq n sabe ^^

Slicer o problema tava no pokemon moves da atualização ...

 

Stigal vlw ai agr volto a funcionar ;D rep + pena q ta desatualizado :C com problemas de possiveis erros.

Sorry é esse que uso (*base).

 

Slicer não tou aqui para ficar discutindo com você, porque e uma total perca de tempo.

estou aqui para ajudar.

 

Atenciosamente, Stigal.

Link to comment
Share on other sites

aew Slicer tou com um problema com seu npc de police a oficial e o giovanny da rocket

 

 

13:44 [ADM] [121]: hi

13:44 Oficial Janny: Hello, you want partipa team of police?

13:44 [ADM] [121]: join

13:44 Oficial Janny: Then you want to join to the police?

13:44 [ADM] [121]: yes

 

 

 

 

ai ele n fala nada e n da a outifit =/

 

e aparece esse bug no distro:

 

[23/09/2012 13:44:47] [Error - Npc interface]

[23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:onCreatureSay

[23/09/2012 13:44:51] Description:

[23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:27: attempt to call global 'isRocket' (a nil value)

[23/09/2012 13:44:51] stack traceback:

[23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:27: in function 'callback'

[23/09/2012 13:44:51] data/npc/lib/npcsystem/npchandler.lua:390: in function 'onCreatureSay'

[23/09/2012 13:44:51] data/npc/scripts/Oficial Janny.lua:9: in function <data/npc/scripts/Oficial Janny.lua:9>

[23/09/2012 13:45:21] > Broadcasted message: "Para saber mais sobre nossos sistema diga !sistemas.

[23/09/2012 13:45:21] ".

Link to comment
Share on other sites

isso q da n pegar tudo neh... --' as vezes da uma vontade de n responder a esse tpw de duvida... ;/

lib/wild trainer.lua

e ve se ja pega o isOfficer...

Edited by Slicer
Link to comment
Share on other sites

@DanielBadhu

 

Se você abrir o .spr do cliente PDA vai observar que 60% é só coisas de tibia que certamente você não irá usar no seu server, então pense bem. Já que não vou querer usar sprite de tibia, então? Substitui-lo

Então não é bem certo 60%.

E mesmo assim 62.100 sprites para mim é muito pouco onde eu quero colocar todos os 646pokes + 646 shiny = +- 64.500 sprites!!!!

O @Maguito me falou que se tiver sources dá para aumentar o espaço. Que se puder peço que faça um tutorial.

Pois eu tenho todos os pokémons só me falta espaço!

 

 

 

 

 

 

@Daniel. Se você abri o spr existe uma imensa lista de sprit não usado no dat. Eu dei uma olhada por cima e achei uns 3 fearow,2 shiny fearow, 3 pikachu e lá vai uma infinidade de sprite que enfiaram no .spr e não removem...

Se você acha que as coisas de tibia são necessarias, então use-as...lobos, ursos, magos e etc. 64.500 é uma infinidade de sprite. Se você acha que não é suficiente, então você vai sofrer com o limite de 254 efeitos .

Link to comment
Share on other sites

@slicer @all

 

 

[23/09/2012 23:28:34] [Error - Npc interface]

[23/09/2012 23:28:34] In a timer event called from:

[23/09/2012 23:28:34] data/npc/scripts/Rocket.lua:onThink

[23/09/2012 23:28:34] Description:

[23/09/2012 23:28:34] data/npc/scripts/Rocket.lua:13: attempt to call global 'ehNPC' (a nil value)

[23/09/2012 23:28:34] stack traceback:

[23/09/2012 23:28:34] data/npc/scripts/Rocket.lua:13: in function <data/npc/scripts/Rocket.lua:11>

 

 

alguem sabe no serve do slicer qual arquivo pego pra os npc de rocket e police soutar o poke e poder ser atacado?

 

valendo rep+

Link to comment
Share on other sites

@cacaiu

 

Faltando a função (pelo que me parece é uma função) "ehNPC", achei até vergonhoso de sua parte postar esse erro ridiculo ainda mais para uma pessoa que "divulga/posta" o Pokemon Centurion (MINHA opinião: não gosto, acho ridiculo, mas tem gente que gosta)

Link to comment
Share on other sites

ZerefShirou

 

 

é eu sei que é essa funçao que ta faltando. Por isso to perguntando qual arquivo que falta. Como falei em varios topicos não sou script.

 

 

e vc veio fala do centurion que não tem nada a ver com a pergunta ¬¬' (vc tem sua opnião eu respeito)

 

@edit ja conssegui n precisa mais

Link to comment
Share on other sites

@cacaiu

 

Faltando a função (pelo que me parece é uma função) "ehNPC", achei até vergonhoso de sua parte postar esse erro ridiculo ainda mais para uma pessoa que "divulga/posta" o Pokemon Centurion (MINHA opinião: não gosto, acho ridiculo, mas tem gente que gosta)

Pelo erro concordo e muito se vc faz um serve tem que saber esse tipo de erro eu que nem tenho esse ot sei que a maioria das funçoes do slicer estao na lib, e pelo seu ot unica coisa de feio ridiculo mesmo sao algumas spriter so isso.

Link to comment
Share on other sites

@All

 

Alguem puder mi ajudar com esse bug !!

 

Bug

 

 

[24/09/2012 13:41:56] [Error - CreatureScript Interface]

[24/09/2012 13:41:57] data/creaturescripts/scripts/exp.lua:onStatsChange

[24/09/2012 13:41:57] Description:

[24/09/2012 13:41:58] data/creaturescripts/scripts/exp.lua:330: attempt to perform arithmetic on a nil value

[24/09/2012 13:41:58] stack traceback:

[24/09/2012 13:41:59] data/creaturescripts/scripts/exp.lua:330: in function <data/creaturescripts/scripts/exp.lua:129>

 

 

Script Exp

 

 

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

 

 

 

 

Rep+

Link to comment
Share on other sites

@stigal

vc gosta de aumentar a qntdade de post tua neh? ;/ sempre flando oq n sabe ^^

 

Xoquei agr o:/

 

Sinceramente concordo com o @Slicer, @Stigal vc está abusando do seu cargo no Xtibia para almentar seu "posts e reps" com coisas q vc não sabe..Quer ajudar o Xtibia,reporte sobre floods e crie coisas novas. Axu que eu floodei agr o:/ e eu não ligo,pois estou falando a vdd.

 

Pessoal antes de posta um erro, olhe oque vc editou, e porfavor quem for editar ou montar um server.... LEIA E ESTUDE SCRIPT.

Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...