-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.
-
Conteúdo Similar
-
script alguém pode me ajudar nessa spells aqui, queira que colocassem pro meu personagem ficar inatingível por 6 segundos e podendo atacar livremente
Por lazaroszz,
- 0 respostas
- 492 visualizações
-
- 0 respostas
- 1958 visualizações
-
- 1 resposta
- 2271 visualizações
-
- 0 respostas
- 1072 visualizações
-
- 1 resposta
- 1233 visualizações
-
Pergunta
sickk 0
Olá,
preciso de ajuda com o Reflect System feito pelo Aluccard
Gostaria de saber como usa-lo, já adicionei o reflectsystem.xml na pasta mods do servidor e depois disso como ativo pra refletir ne tal item ?? To precisando muito dele porque no meu servidor com o attribute de reflectpercentall ta bugando!! toda vez que o dano é feito pelo mapa o servidor trava.
Obrigado
Reflect System by Aluccard
Reflect System[0.1]
Função
Ao ser obtido um item que possua o atributo Reflect o player será capaz de refletir danos Fisicos e Mágicos ao mesmo tempo. A idéia geral desse script é bem simples mesmo. Quando o player receber um damage de uma criatura (monstro ou player) esse attack será refletido em uma certa porcentagem.
Exemplo:
22:46 You see a golden amulet. It weighs 8.30 oz. [Reflect: 80%]
Obs¹: Os items pode ser acumulativo. Ou seja, se o amuleto der 10% de reflect e o ring der 35%. O player possuirá um Reflect = 45%.
[MOD]reflectSystem.xml
<?xml version="1.0" encoding="UTF-8"?>
<mod name="Reflect System" version="0.1" author="Aluccard" contact="" enabled="yes">
<description>
Script que funciona para refletir danos para as creatures que o atacar.
</description>
<event type="login" name="regReflectDamage" event="script"><![CDATA[
function onLogin(cid)
registerCreatureEvent(cid,"ReflectDamage")
return true
end
]]></event>
<event type="statschange" name="ReflectDamage" event="script"><![CDATA[
local slotPos = {CONST_SLOT_NECKLACE, CONST_SLOT_FEET, CONST_SLOT_RING}
function onStatsChange(cid, attacker, type, combat, value)
local reflectPercent = 0
local dmg = value
local playerPos = getCreaturePosition(cid)
local attackerPos = getCreaturePosition(attacker)
for i = 1, #slotPos do
if getPlayerSlotItem(cid, slotPos).uid > 1 then
if getItemReflectPercent(getPlayerSlotItem(cid, slotPos).uid) then
reflectPercent = reflectPercent + getItemReflectPercent(getPlayerSlotItem(cid, slotPos).uid)
end
end
end
if reflectPercent > 0 then
dmg = math.ceil(-value*((100-reflectPercent)/100))
if (dmg < 0) then
doCreatureAddHealth(cid, dmg)
doSendAnimatedText(playerPos, -dmg, COLOR_RED)
doSendMagicEffect(playerPos, 0)
else
doSendMagicEffect(playerPos, 3)
end
dmg = math.ceil(-value*(reflectPercent/100))
if (dmg < 0) then
doCreatureAddHealth(attacker, dmg)
doSendAnimatedText(attackerPos, -dmg, COLOR_RED)
doSendDistanceShoot(playerPos, attackerPos, CONST_ANI_SMALLHOLY)
end
else
return true
end
end]]></event>
</mod>
Obs²: O código está meio enferrujado, mas funciona. Como podes ver o sistema está na versão 0.1 e irá ser atualizada com o tempo.
ReflectLib.lua
function getItemReflectPercent(itemuid)
return getItemAttribute(itemuid, "reflectPercent")
end
function doPlayerAddReflectedItem(cid, itemid, percent)
local item = doPlayerAddItem(cid, itemid)
doItemSetAttribute(item, "description", "[Reflect: "..percent.."%]")
doItemSetAttribute(item, "reflectPercent", percent)
end
Obs³: Para adicionarmos novos items com o atributo Reflect usamos o comando doPlayerAddReflectedItem(cid,itemid,percent).
{itemid = id do item escolhido / percent = porcentagem do reflect}
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados