Ir para conteúdo
  • Cadastre-se

exp [HELP] exp.lua dando erro no distro!


Posts Recomendados

Pessoal me ajudem com esse dois erros no meu distro se puderem :) obrigado!!!

j0pZB0.jpg

 

Aqui vai meu data\creaturescripts\scripts exp.lua

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 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 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)
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

Editado por tcheco1994 (veja o histórico de edições)
Link para o post
Compartilhar em outros sites
  • 1 month later...

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

  • Conteúdo Similar

    • Por 77mateus77
      Olá pessoal estou com um probleminha no meu site gesior! minha exp stage não atualiza la conforme esta em meu ot na pasta stages, meu mapa é um global 10.90 e uso tfs 1.2, ai esta a foto do site
       

      stages.xml
    • Por yHoPs
      Olá pessoas!
       
      Primeiramente, obrigado pela atenção.
      Agora, gostaria de pedir ajuda a vocês!, estou com um problema que o sistema de EXP por STAGES, não funciona! (A exp não muda, é como se não tivesse stages), já tentei de varias maneiras configurar esse script!
      Todas as vezes não funciona, apenas o EXP Rate do Config.lua, que funciona normalmente, mas... quero fazer uma coisa mais detalhada.
      Já tentei pegar o arquivo STAGES de outro servidor baixado e sem sucesso.
      Já tentei adicionar e mudar a linha (World.id), pra tentar sanar isso e sem sucesso.
      Já tentei configurar o "experienceStages = false" para "True" no Config.lua, sem sucesso.
      A base que estou usando é do NTO B&W (Earth), uma boa base, porem com alguns bugs, mas este esta sendo um dos piores...
       
      Se alguém puder ajudar com esse problema, vou estar imensamente agradecido!, Obrigado a todos!.
      (Perdoem-me se não estiver na areá certa, ainda sou novo no fórum)
      Vou deixar aqui o Config.lua e o Stages.xml, mesmo que pra alguns não precise.
       
      Config.lua
       
      Stages
    • Por Vodkart
      08/01/2017
      SISTEMA ATUALIZADO PARA 4.0:
       
       
       
       
      Mods:
    • Por Camper PvP
      Buenos días gente 
      Hoy necesito tu ayuda ya que no sé cómo crear scripts.
       
      Necesito un sistema de reinicio que se ejecute a través de etapas exp.
       
      ejemplo: cuando el jugador tiene menos de 10 reset tiene exp x40 cuando tiene más de 10 reset tiene exp x30 y así sucesivamente. y necesita x elemento para reiniciar.
       
      REP + para la mejor respuesta?
      Tengo TFs.03.6
       
      @Vodkart Te estoy citando ya que veio que vc ajuda mt com scripts. te do REP+ 
    • Por Atiralol Korobeiniki
      É o seguinte galera, vocês vão ter que ir em:
      /data/creaturescripts/pokeexp.lua
       
      PARA EDITAR O EXP QUE O PLAYER GANHA QUANDO MATA POKEMONS:
      procurem por:
      playerAddExp(pk, expTotal)  
      e depois disso do lado da variavel expTotal vocês botam '/' que significa dividir, no caso vai ser expTotal dividido por o numero que você quiser. Vou botar 10 de exemplo
       
      playerAddExp(pk, expTotal / 10)  
      e salvem
      ai no caso se um ratata tiver dando 20k de exp ele agora vai tar dando 2k de exp graças a essa divisão. Mas ai vocês escolhem o numero que vcs querem dividir.
       
      PARA EDITAR EXP QUE SEU POKEMON GANHA AO MATAR POKEMONS:
      procurem por:
       
      givePokemonExp(pk, firstball, expTotal)  
      Vai ter 2 desses o que ta em cima do elseif vai ser o exp que vai ser ganho sem tar em party e o de baixo vai ser o exp q vai ser ganho quando estiver em party
      e agora vamos fazer a mesma coisa de antes vamos dividir o expTotal
      givePokemonExp(pk, firstball, expTotal / 15) No caso o exp que o pokemon irá ganhar vai ser dividido por 15.
       
      CASO VOCES QUEIRAM QUE APAREÇAM NUMEROS INTEIROS E NÃO NUMEROS COM VIRGULA SEGUE AI O TUTORIAL:
      EM CIMA DO local function giveExpToPlayer
      COLOQUEM:
       
       
      E AGORA DEPOIS VOCES IRÃO MODIFICAR O expTotal / 15
      por:
       
      toint(expTotal / 15)  
      e o expTotal / 10 por:
       
      toint(expTotal / 10)  
      ESPERO QUE TENHA AJUDADO VOCES! SOU NOVO AINDA NO TIBIAKING GOSTARIA QUE VOCÊS DEIXEM UM FEEDBACK BOM CASO EU AJUDEI VOCÊS
       
      PRA QUEM NÃO ENTENDEU DEVERÁ FICAR ASSIM:
       
      playerAddExp(pk, toint(expTotal / 10))   givePokemonExp(pk, firstball, toint(expTotal / 15))  
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo