Ir para conteúdo

Problemas Com Pvp


wr1000

Posts Recomendados

Tenho um Servidor Pokemon e quando tento lutar com outros jogadores nós até atacamos (m1,m2 ect.)mas nao tiramos hits uns dos outros mesmo no modo PVp ja utilsei o script !Fight e nada ainda na mesma alguem pode ma judar?

Link para o comentário
Compartilhar em outros sites

abra seu arquivo exp.lua (data/creaturescripts/scripts), apague tudo e coloque isso dentro:

 

 

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) and #getCreatureSummons(cid) >= 1 then
return false
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
       doCreatureAddHealth(cid, -getCreatureHealth(cid), 3, 180)
       return false
       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 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

 

Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...