DU
pedido

Modificar esse script

Por Duuhzinhow, 28 de mar. de 2014 em Scripts

spell
script
13
2.5k
DuuhzinhowD
28 de março de 2014 às 14:43

Galera, eu estou aqui com um script que criei.. mas queria que alguem modifique-o para mim :

 

function onCastSpell(cid, var)

local playerpos = getPlayerPosition(cid)
local pos = getPlayerPosition(getCreatureTarget(cid))
local effectmort = 254 --- Id do efeito que vai ser na target
local effect = 134 ---Id do efeito da morte
local health = getCreatureHealth(getCreatureTarget(cid))
if getCreatureTarget(cid) < 1 then
return 0
end
local position = {x=pos.x, y=pos.y-1, z=pos.z}
doSendMagicEffect(playerpos, effectmort)
doSendMagicEffect(position, effect)
doCreatureAddHealth(getCreatureTarget(cid), -health+5000)
doCreatureAddHealth(cid, -getCreatureHealth(cid)+5000)
return true
end

O que ele faz? Ao usalo no target, a sua life e a life do target irao cair para a life configurada no script...
O que eu quero que faça? Que a life configurada no script, seja uma porcentagem (%) E nao um numero exato.
WiihtopW
28 de março de 2014 às 14:59

vou tentar aqui testo e ja te mando..

28 de março de 2014 às 16:01

ae mano, testa

 

 

 

function onCastSpell(cid, var)

local playerpos = getPlayerPosition(cid)
local pos = getPlayerPosition(getCreatureTarget(cid))
local effectmort = 254 --- Id do efeito que vai ser na target
local effect = 134 ---Id do efeito da morte
local health = 50 -- % de health que vai tirar
local healthPercent = getCreatureMaxHealth(cid) * (health / 100) -- nao meche
if getCreatureTarget(cid) < 1 then
return 0
end
local position = {x=pos.x, y=pos.y-1, z=pos.z}
doSendMagicEffect(playerpos, effectmort)
doSendMagicEffect(position, effect)
doCreatureAddHealth(getCreatureTarget(cid), -healthPercent)
doCreatureAddHealth(cid, -healthPercent)
return true
end

Editado Março 28 por craigmabbit

LordfireL
28 de março de 2014 às 16:20

Talvez algo assim

 

 

local effect = {
    [cid] = 134, ---Id do efeito da morte
    [target]= 254, --- Id do efeito que vai ser na target
}

function onCastSpell(cid, var)
    local target = getCreatureTarget(cid)    
        
    if isPlayer(target) then
        local player_pos, target_pos = getPlayerPosition(cid), getPlayerPosition(target)
    
        doSendMagicEffect(player_pos, effect.cid)
        doSendMagicEffect({x=target_pos.x, y=target_pos.y - 1, z=target_pos.z}, effect.target)
        
        doCreatureAddHealth(cid, -getCreatureHealth(cid) + 5000)
        doCreatureAddHealth(target, -getCreatureHealth(target) + 5000)
        return true
    end
    doPlayerSendCancel(cid, "It is impossible.")
    return false    
end
28 de março de 2014 às 16:22

Lordfire , não faz merda cara , ele pediu pra remover a life em porcentagem oque você fez ai foi por os effect em tabela sendo que não precisa disso

DuuhzinhowD
28 de março de 2014 às 17:13

 

ae mano, testa

 

 

 

function onCastSpell(cid, var)

local playerpos = getPlayerPosition(cid)
local pos = getPlayerPosition(getCreatureTarget(cid))
local effectmort = 254 --- Id do efeito que vai ser na target
local effect = 134 ---Id do efeito da morte
local health = 50 -- % de health que vai tirar
local healthPercent = getCreatureMaxHealth(cid) * (health / 100) -- nao meche
if getCreatureTarget(cid) < 1 then
return 0
end
local position = {x=pos.x, y=pos.y-1, z=pos.z}
doSendMagicEffect(playerpos, effectmort)
doSendMagicEffect(position, effect)
doCreatureAddHealth(getCreatureTarget(cid), -healthPercent)
doCreatureAddHealth(cid, -healthPercent)
return true
end

 

Amigo quase deu certo, pelo q entendi aqui, esse que voce passou, esta tirando a porcentagem da life, de quem utilizou a spell, e dano essa life removida no target, porém nao é isso. Eu quero que o target e o caster fikem apenas com 30% da life após a spell

28 de março de 2014 às 17:23
Melhor resposta


function onCastSpell(cid, var)

local playerpos = getPlayerPosition(cid)

local pos = getPlayerPosition(getCreatureTarget(cid))

local effectmort = 254 --- Id do efeito que vai ser na target

local effect = 134 ---Id do efeito da morte

 

 

local healthCid, healthTarget = getCreatureMaxHealth(cid), getCreatureMaxHealth(getCreatureTarget(cid))

local removeCid, removeTarget = healthCid * 30 / 100, healthTarget * 30 / 100

 

 

if getCreatureTarget(cid) < 1 then

return 0

end

 

 

local position = {x=pos.x, y=pos.y-1, z=pos.z}

doSendMagicEffect(playerpos, effectmort)

doSendMagicEffect(position, effect)

doCreatureAddHealth(getCreatureTarget(cid), -removeTarget)

doCreatureAddHealth(cid, -removeCid)

 

 

return true

end

 

Editado Março 28 por DuuhCarvalho

28 de março de 2014 às 17:37

Você quer que os players fiquem com 30% da vida máxima após o uso da spell, certo? Mas e se eles estiverem com menos de 30% da vida quando utilizarem a spell? Ou você quer que fiquem com 30% da vida atual?

 

Se for 30% da vida atual, a conta é

doCreatureAddHealth(getCreatureTarget(cid), - getCreatureHealth(getCreatureTarget(cid))*0.7)
doCreatureAddHealth(cid, - getCreatureHealth(cid)*0.7)

Faz muito tempo que eu não programo esse tipo de coisa, mas testa ai.

28 de março de 2014 às 17:42

Você quer que os players fiquem com 30% da vida máxima após o uso da spell, certo? Mas e se eles estiverem com menos de 30% da vida quando utilizarem a spell? Ou você quer que fiquem com 30% da vida atual?

 

Se for 30% da vida atual, a conta é

doCreatureAddHealth(getCreatureTarget(cid), - getCreatureHealth(getCreatureTarget(cid))*0.7)
doCreatureAddHealth(cid, - getCreatureHealth(cid)*0.7)

Faz muito tempo que eu não programo esse tipo de coisa, mas testa ai.

 

Creio que de qualquer forma vai remover um porcentagem , se o player tiver menos ele morre.

 

Tópico Movido para Pedidos e dúvidas resolvidos.

28 de março de 2014 às 17:50

 

Você quer que os players fiquem com 30% da vida máxima após o uso da spell, certo? Mas e se eles estiverem com menos de 30% da vida quando utilizarem a spell? Ou você quer que fiquem com 30% da vida atual?

 

Se for 30% da vida atual, a conta é

doCreatureAddHealth(getCreatureTarget(cid), - getCreatureHealth(getCreatureTarget(cid))*0.7)
doCreatureAddHealth(cid, - getCreatureHealth(cid)*0.7)

Faz muito tempo que eu não programo esse tipo de coisa, mas testa ai.

 

Creio que de qualquer forma vai remover um porcentagem , se o player tiver menos ele morre.

 

Tópico Movido para Pedidos e dúvidas resolvidos.

 

 

Sim... é que ele falou "Eu quero que o target e o caster fikem apenas com 30% da life após a spell", por isso que eu perguntei se era 30% da vida atual.

 

Mas se ele confirmou que é como você fez, tudo bem.

28 de março de 2014 às 17:54

 

 

Você quer que os players fiquem com 30% da vida máxima após o uso da spell, certo? Mas e se eles estiverem com menos de 30% da vida quando utilizarem a spell? Ou você quer que fiquem com 30% da vida atual?

 

Se for 30% da vida atual, a conta é

doCreatureAddHealth(getCreatureTarget(cid), - getCreatureHealth(getCreatureTarget(cid))*0.7)
doCreatureAddHealth(cid, - getCreatureHealth(cid)*0.7)

Faz muito tempo que eu não programo esse tipo de coisa, mas testa ai.

 

Creio que de qualquer forma vai remover um porcentagem , se o player tiver menos ele morre.

 

Tópico Movido para Pedidos e dúvidas resolvidos.

 

 

Sim... é que ele falou "Eu quero que o target e o caster fikem apenas com 30% da life após a spell", por isso que eu perguntei se era 30% da vida atual.

 

Mas se ele confirmou que é como você fez, tudo bem.

 

 

Verdade 'rsrs , percebi isso agora.

Mas como você falou se ele confirmou , tudo bem

creio que ele falou errado.

Editado Março 28 por DuuhCarvalho

OmegaO
28 de março de 2014 às 18:02

Lordfire , não faz merda cara , ele pediu pra remover a life em porcentagem oque você fez ai foi por os effect em tabela sendo que não precisa disso

 

Cara, ele tentou ajudar, então pra que desrespeitar? Mesmo que ele tenha errado, foi um acidente, certo?

 

Por favor, evite esse tipo de atitude por aqui.

DuuhzinhowD
28 de março de 2014 às 19:39

 

 

 

Você quer que os players fiquem com 30% da vida máxima após o uso da spell, certo? Mas e se eles estiverem com menos de 30% da vida quando utilizarem a spell? Ou você quer que fiquem com 30% da vida atual?

 

Se for 30% da vida atual, a conta é

doCreatureAddHealth(getCreatureTarget(cid), - getCreatureHealth(getCreatureTarget(cid))*0.7)
doCreatureAddHealth(cid, - getCreatureHealth(cid)*0.7)

Faz muito tempo que eu não programo esse tipo de coisa, mas testa ai.

 

Creio que de qualquer forma vai remover um porcentagem , se o player tiver menos ele morre.

 

Tópico Movido para Pedidos e dúvidas resolvidos.

 

 

Sim... é que ele falou "Eu quero que o target e o caster fikem apenas com 30% da life após a spell", por isso que eu perguntei se era 30% da vida atual.

 

Mas se ele confirmou que é como você fez, tudo bem.

 

 

Verdade 'rsrs , percebi isso agora.

Mas como você falou se ele confirmou , tudo bem

creio que ele falou errado.

 

Na verdade eu nao falei errado.. rsrs, eu queria dakele jeito, mas da forma que voce me mandou ficou ótimo tambem! happy.png