Ir para conteúdo

Ajuda Awe Algum Scripter Xd


marcelvini27

Posts Recomendados

ae desculpa ae o incomodo mais eu já pesquisei muito sobre isso e até agora so axei um topico sobre esse assunto q tinha resposta, a resposta foi dada pelo scripter burn123(so q n a resposta lá n adianto no meu server, guuh torres v3), inclusive se vc ler isso e puder me ajuda eu agradeço, enfim o problema é esse:

 

Pokemons se atacam na pvp zone do map editor, porem, eles não hitam um ao outro, fica só naquela de um corre atras do otro e talz mais hitar que é bom nada, nem com atk fisico nem com os m1 ~ m12, eu n sei se o problema é no exp.lua mas de qlquer jeito vou colocar o meu aki, vlw ae pra quem tenta me ajuda vo dar muito reep pode ter ctz xD

exp.lua:

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

local expcond = createConditionObject(CONDITION_INFIGHT)

setConditionParam(expcond, CONDITION_PARAM_TICKS, 4500)

 

function onStatsChange(cid, attacker, enps, combatee, value)

if getPlayerStorageValue(cid, 33) >= 1 then

if isCreature(attacker) then

return false

end

return true

end

if getPlayerStorageValue(cid, 34) >= 1 then

if combatee ~= COMBAT_PHYSICALDAMAGE then

if isCreature(attacker) then

doSendMagicEffect(getThingPos(cid), 135)

doSendMagicEffect(getThingPos(attacker), 3)

doSendAnimatedText(getThingPos(cid), "REFLECT", 215)

doCreatureAddHealth(attacker, -value)

setPlayerStorageValue(cid, 34, 0)

doSendAnimatedText(getThingPos(attacker), -value, 191)

return false

end

end

end

if getPlayerStorageValue(cid, 35) >= 1 then

if combatee ~= COMBAT_PHYSICALDAMAGE then

if isCreature(attacker) then

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

setPlayerStorageValue(cid, 35, 0)

return false

end

end

end

if not isCreature(attacker) then

return true

end

if isPlayer(attacker) then

return true

end

if enps == STATSCHANGE_HEALTHGAIN then

return true

end

if enps == STATSCHANGE_HEALTHLOSS then

if getCreatureHealth(cid) <= value then

if isPlayer(cid) then

if #getCreatureSummons(cid) == 0 then

return true

end

return false

end

if isPlayer(getCreatureMaster(attacker)) then

doTargetCombatHealth(getCreatureMaster(attacker), cid, combatee, -(getCreatureHealth(cid)), -(getCreatureHealth(cid)), 3)

return false

end

return true

end

if isPlayer(getCreatureMaster(cid)) then

doAddCondition(getCreatureMaster(cid), expcond)

end

if not isPlayer(cid) then

if combatee == ELECTRICDAMAGE then

if isInArray(electric2, getCreatureName(cid)) then

x = 2

elseif isInArray(electric1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(electric0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == WATERDAMAGE then

if isInArray(water2, getCreatureName(cid)) then

x = 2

elseif isInArray(water1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(water0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == GRASSDAMAGE then

if isInArray(grass2, getCreatureName(cid)) then

x = 2

elseif isInArray(grass1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(grass0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == FLYDAMAGE then

if isInArray(flying2, getCreatureName(cid)) then

x = 2

elseif isInArray(flying1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(flying0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == FIREDAMAGE then

if isInArray(fire2, getCreatureName(cid)) then

x = 2

elseif isInArray(fire1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(fire0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == ROCKDAMAGE then

if isInArray(rock2, getCreatureName(cid)) then

x = 2

elseif isInArray(rock1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(rock0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == GROUNDDAMAGE then

if isInArray(ground2, getCreatureName(cid)) then

x = 2

elseif isInArray(ground1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(ground0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == GHOSTDAMAGE then

if isInArray(ghost2, getCreatureName(cid)) then

x = 2

elseif isInArray(ghost1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(ghost0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == BUGDAMAGE then

if isInArray(bug2, getCreatureName(cid)) then

x = 2

elseif isInArray(bug1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(bug0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == NORMALDAMAGE then

if isInArray(normal2, getCreatureName(cid)) then

x = 2

elseif isInArray(normal1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(normal0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == FIGHTDAMAGE then

if isInArray(fighting2, getCreatureName(cid)) then

x = 2

elseif isInArray(fighting1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(fighting0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == POISONDAMAGE then

if isInArray(poison2, getCreatureName(cid)) then

x = 2

elseif isInArray(poison1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(poison0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == PSYCHICDAMAGE then

if isInArray(psychic2, getCreatureName(cid)) then

x = 2

elseif isInArray(psychic1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(psychic0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == ICEDAMAGE then

if isInArray(ice2, getCreatureName(cid)) then

x = 2

elseif isInArray(ice1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(ice0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == DRAGONDAMAGE then

if isInArray(dragon2, getCreatureName(cid)) then

x = 2

elseif isInArray(dragon1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(dragon0, getCreatureName(cid)) then

x = 0

else

x = 1

end

else

x = 1

end

else

x = 1

end

local xx = x

if combatee == PSYCHICDAMAGE then

cor = COLOR_PSYCHIC

elseif combatee == GRASSDAMAGE then

cor = COLOR_GRASS

elseif combatee == FIREDAMAGE then

cor = COLOR_FIRE2

elseif combatee == WATERDAMAGE then

cor = COLOR_WATER

elseif combatee == ICEDAMAGE then

cor = COLOR_ICE

elseif combatee == NORMALDAMAGE then

cor = COLOR_NORMAL

elseif combatee == FLYDAMAGE then

cor = COLOR_FLYING

elseif combatee == GHOSTDAMAGE then

cor = COLOR_GHOST

elseif combatee == GROUNDDAMAGE then

cor = COLOR_GROUND

elseif combatee == ELECTRICDAMAGE then

cor = COLOR_ELECTRIC

elseif combatee == ROCKDAMAGE then

cor = COLOR_ROCK

elseif combatee == BUGDAMAGE then

cor = COLOR_BUG

elseif combatee == FIGHTDAMAGE then

cor = COLOR_FIGHTING

elseif combatee == DRAGONDAMAGE then

cor = COLOR_DRAGON

elseif combatee == POISONDAMAGE then

cor = COLOR_POISON

elseif getCreatureName(cid) == "Kakuna" or getCreatureName(cid) == "Metapod" then

cor = COLOR_BUG

elseif getCreatureName(cid) == "Golem" or getCreatureName(cid) == "Graveler" or getCreatureName(cid) == "Geodude" then

cor = COLOR_ROCK

else

cor = NONE

end

local cores = cor

if not isSummon(attacker) then

if not isPlayer(cid) and not isPlayer(getCreatureMaster(cid)) then

return false

end

if isSummon(cid) and getCreatureHealth(cid) <= (getCreatureMaxHealth(cid)*0.15) and not exhaustion.get(getCreatureMaster(cid), 88726) then

exhaustion.set(getCreatureMaster(cid), 88726, 6)

doSendMagicEffect(getThingPos(cid), 178)

end

if isPlayer(cid) then

if #getCreatureSummons(cid) >= 1 then

return false

end

doCreatureAddHealth(cid, -value)

doSendAnimatedText(getThingPos(cid), value, 180)

doSendMagicEffect(getThingPos(cid), 3)

return false

end

if getPlayerStorageValue(cid, 4) >= 1 then

local damage = value

doSendMagicEffect(getThingPos(cid), 2)

doCreatureAddHealth(cid, -((math.floor(damage/2))*xx))

doSendAnimatedText(getThingPos(cid), (math.floor((damage)/2)*xx), cores)

else

local damage = value

if cor == NONE then

return true

end

doCreatureAddHealth(cid, -((math.floor(damage/1))*xx))

doSendAnimatedText(getThingPos(cid), (math.floor((damage)/1)*xx), cores)

doSendMagicEffect(getThingPos(cid), 3)

return false

end

return false

end

if isSummon(attacker) then

if isSummon(cid) then

return false

end

combatx = combatee

valor = value

if getPlayerStorageValue(cid, 4) >= 1 then

doTargetCombatHealth(getCreatureMaster(attacker), cid, combatx, -((valor / 2)*x), -(((valor / 2)+10)*x), 255)

else

doTargetCombatHealth(getCreatureMaster(attacker), cid, combatx, -((valor)*x), -((valor+10)*x), 255)

end

end

end

end

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

Link para o comentário
Compartilhar em outros sites

Tente esse exp.lua

 

local expcond = createConditionObject(CONDITION_INFIGHT)

setConditionParam(expcond, CONDITION_PARAM_TICKS, 4500)

 

local colors = {

[PSYCHICDAMAGE] = {cor = COLOR_PSYCHIC},

[GRASSDAMAGE] = {cor = COLOR_GRASS},

[FIREDAMAGE] = {cor = COLOR_FIRE2},

[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},

[COMBAT_PHYSICALDAMAGE] = {cor = 0},

}

 

function onStatsChange(cid, attacker, enps, combatee, value)

 

if enps == STATSCHANGE_HEALTHGAIN then

return true

end

 

if isPlayer(cid) then

if #getCreatureSummons(cid) >= 1 then

return false

end

if isPlayer(attacker) or isSummon(attacker) then

return false

end

end

 

local cores = 0

if colors[combatee] then

cores = colors[combatee].cor

end

 

if getPlayerStorageValue(cid, 33) >= 1 then -- funcionamento do self destruction

if isCreature(attacker) then

return false

end

return true

end

 

if getPlayerStorageValue(cid, 34) >= 1 then -- REFLECT

if combatee ~= COMBAT_PHYSICALDAMAGE then

if isCreature(attacker) then

doSendMagicEffect(getThingPos(cid), 135)

doSendMagicEffect(getThingPos(attacker), 3)

doSendAnimatedText(getThingPos(cid), "REFLECT", 215)

doCreatureAddHealth(attacker, -value, 3, 191) -- 3 = efeito do reflect

setPlayerStorageValue(cid, 34, 0)

return false

end

end

end

 

if getPlayerStorageValue(cid, 35) >= 1 then -- MAGIAS DE MISS, STRING SHOT, MUD SHOT ETC

if combatee ~= COMBAT_PHYSICALDAMAGE then

if isCreature(attacker) then

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

setPlayerStorageValue(cid, 35, 0)

return false

end

end

end

 

if not isCreature(attacker) then

return true

end

 

if isPlayer(attacker) then

return true

end

 

if getCreatureHealth(cid) <= value then

if isPlayer(cid) then

if isPlayer(attacker) or isSummon(attacker) then return false end

doCreatureAddHealth(cid, -getCreatureHealth(cid), 3, 180)

return false

end

if isSummon(cid) and (isPlayer(attacker) or 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

 

if isPlayer(getCreatureMaster(attacker)) then

doTargetCombatHealth(getCreatureMaster(attacker), cid, combatee, -(getCreatureHealth(cid)), -(getCreatureHealth(cid)), 3)

if isInArray({GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE}, combatee) then

doSendAnimatedText(getThingPos(cid), value, cores)

end

return false

end

return true

end

 

if isPlayer(cid) then

doCreatureAddHealth(cid, -value, 3, 180)

return false

end

 

if isPlayer(getCreatureMaster(cid)) then

doAddCondition(getCreatureMaster(cid), expcond)

end

 

 

if combatee == ELECTRICDAMAGE then

if isInArray(electric2, getCreatureName(cid)) then

x = 2

elseif isInArray(electric1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(electric0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == WATERDAMAGE then

if isInArray(water2, getCreatureName(cid)) then

x = 2

elseif isInArray(water1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(water0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == GRASSDAMAGE then

if isInArray(grass2, getCreatureName(cid)) then

x = 2

elseif isInArray(grass1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(grass0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == FLYDAMAGE then

if isInArray(flying2, getCreatureName(cid)) then

x = 2

elseif isInArray(flying1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(flying0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == FIREDAMAGE then

if isInArray(fire2, getCreatureName(cid)) then

x = 2

elseif isInArray(fire1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(fire0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == ROCKDAMAGE then

if isInArray(rock2, getCreatureName(cid)) then

x = 2

elseif isInArray(rock1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(rock0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == GROUNDDAMAGE then

if isInArray(ground2, getCreatureName(cid)) then

x = 2

elseif isInArray(ground1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(ground0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == GHOSTDAMAGE then

if isInArray(ghost2, getCreatureName(cid)) then

x = 2

elseif isInArray(ghost1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(ghost0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == BUGDAMAGE then

if isInArray(bug2, getCreatureName(cid)) then

x = 2

elseif isInArray(bug1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(bug0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == NORMALDAMAGE then

if isInArray(normal2, getCreatureName(cid)) then

x = 2

elseif isInArray(normal1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(normal0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == FIGHTDAMAGE then

if isInArray(fighting2, getCreatureName(cid)) then

x = 2

elseif isInArray(fighting1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(fighting0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == POISONDAMAGE then

if isInArray(poison2, getCreatureName(cid)) then

x = 2

elseif isInArray(poison1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(poison0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == PSYCHICDAMAGE then

if isInArray(psychic2, getCreatureName(cid)) then

x = 2

elseif isInArray(psychic1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(psychic0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == ICEDAMAGE then

if isInArray(ice2, getCreatureName(cid)) then

x = 2

elseif isInArray(ice1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(ice0, getCreatureName(cid)) then

x = 0

else

x = 1

end

elseif combatee == DRAGONDAMAGE then

if isInArray(dragon2, getCreatureName(cid)) then

x = 2

elseif isInArray(dragon1, getCreatureName(cid)) then

x = 0.5

elseif isInArray(dragon0, getCreatureName(cid)) then

x = 0

else

x = 1

end

else

x = 1

end

 

local xx = x

 

if not isSummon(attacker) then

 

if not isPlayer(cid) and not isPlayer(getCreatureMaster(cid)) then

return false

end

 

if isSummon(cid) and getCreatureHealth(cid) <= (getCreatureMaxHealth(cid)*0.15) and not exhaustion.get(getCreatureMaster(cid), 88726) then

exhaustion.set(getCreatureMaster(cid), 88726, 6)

doSendMagicEffect(getThingPos(cid), 178)

end

 

local damage = value

 

if getPlayerStorageValue(cid, 4) >= 1 then

doCreatureAddHealth(cid, -math.ceil(damage/2*xx), 2, cores) -- 2 é o efeito que aparece no pokemon quando tem harden e é atacado

return false

else

doCreatureAddHealth(cid, -math.ceil(damage*xx), 3, cores)

return false

end

 

return false

end

 

if isSummon(attacker) then

 

if isPlayer(cid) then

return false

end

 

if isSummon(cid) 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 combatx = combatee

local valor = value

local life = getCreatureHealth(cid)

 

if getPlayerStorageValue(cid, 4) >= 1 then

doTargetCombatHealth(getCreatureMaster(attacker), cid, combatx, -math.ceil(valor/2*xx), -math.ceil(valor/2*xx+10), 255)

life = life - getCreatureHealth(cid)

if isInArray({GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE}, combatee) then

doSendAnimatedText(getThingPos(cid), life, cores)

end

else

doTargetCombatHealth(getCreatureMaster(attacker), cid, combatx, -math.ceil(valor*xx), -math.ceil(valor*xx + 10), 255)

life = life - getCreatureHealth(cid)

if isInArray({GROUNDDAMAGE, ELECTRICDAMAGE, ROCKDAMAGE, FLYDAMAGE, BUGDAMAGE, FIGHTINGDAMAGE, DRAGONDAMAGE, POISONDAMAGE}, combatee) then

doSendAnimatedText(getThingPos(cid), life, cores)

end

end

return false

end

return true

end

 

Se funcionar, REP + :rolleyes:

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...