RE

[spells] Condition Damage

Por renatotbreis, 11 de jan. de 2009 em Archived

script
6
867
11 de janeiro de 2009 às 12:07

seguinte: minha spell é um raio simples que, quando acerta um alvo, causa dano normal e depois cria a condição shock, que pode:

 

-se for player: tirar 8% de vida do máx (se não for possível pode ser 'level*2')

-se for monstro: tirar 25hp.

 

eu não sei como colocar essa função com essas condições. por favor, alguém pode postar em um script de 'exevo gran vis lux'?

 

obrigado,

 

braço!

tozinho123T
13 de janeiro de 2009 às 03:46

putz cara ai vc me pego nao sei quase nada sobre spells, posso tentar fazer pra voce em movements, e depois tento fazer por spells, exemplo:

 

function onStepIn(cid, item, tileitem)
if isPlayer == TRUE then
addDamageCondition(energy, [color="#FF0000"]rounds[/color], [color="#FF00FF"]time[/color], [color="#00FF00"]value[/color])
elseif isMonster == TRUE then
addDamageCondition(energy, [color="#FF0000"]rounds[/color], [color="#FF00FF"]time[/color], [color="#00FF00"]value[/color])
end
return TRUE
end

 

 

e em moviments.xml adicione

<movevent event="StepIn" itemid="[color="#0000FF"]xxxx[/color]" script="[color="#FFFF00"]conditiondamage.lua[/color]"/>

 

Em Amarelo: o nome do script que fica em data/movements/scripts

Em Vermelho: a quantia de hits que quer que o player receba

Em Rosa: o tempo que ela vai durar

Em Verde: o dano, deve ser diferente para monsters e players (se voce quiser claro...)

Em Azul: o id do item que o player ou monster pisara pra ganhar a condition

 

OBS: eu fiz o script postando esse topico e obviamente nao testei ;S

Editado Janeiro 13 por Tozao

lucasjockeyL
13 de janeiro de 2009 às 11:32

Também não sei, mas para tirar 8% da vida de alguém é só fazer isso:

 

life = getPlayerHealth(uid)

doPlayerAddHealth(cid,0 - (life * 0.08))

 

simples ;D

Editado Janeiro 13 por lucasjockey

13 de janeiro de 2009 às 15:15
Também não sei, mas para tirar 8% da vida de alguém é só fazer isso:

 

life = getPlayerHealth(uid)

doPlayerAddHealth(cid,0 - (life * 0.08))

 

simples ;D

 

OPA!

 

vou tentar fazer isso com magic effects programados por tempo enquanto dura o efeito de shock!

 

só uma coisa: o getPlayerHealth pega o total de vida ou o máximo de vida do player?

 

vlw, braço!

 

---edit---

 

acabei de me lembrar... esse efeito que você botou aqui tira vida do jogador, mas não de um player da área da spell >.<

não sabe como fazer com que seja do tipo, na própria local condition?

Editado Janeiro 13 por TheTNT

tozinho123T
14 de janeiro de 2009 às 01:13

@up, vc ta falando comigo ou com o lucas? ;S, se for comigo, getCreatureHealth(cid) pega a health que o player esta e NAO a total, pra pegar a total é getPlayerCreatureHealth(cid), e pra fazer o efeito do shock soh bota:

 

pos = getCreaturePosition(cid)

doSendMagicEffect(pos ,CONST_ME_ENERGYHIT)

 

edit:

 

agora entendi oq quis dizer, pra fazer uma area vc tem que bota tipo assim:

 

function onStepIn(cid, tileitem, toPosition, fromPosition)
local life = getCreatureMaxHealth(cid)
pos = getCreaturePosition(cid)
itempos = getThingfromPos(pos)
if isMonster(itempos) == TRUE then
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, pos, 1, 25, 25, CONST_ME_ENERGYHIT)
elseif isPlayer(itempos) == TRUE then
doAreaCombatHealth(cid, COMBAT_PHYSICALDAMAGE, pos, 1, life * 0.08, life * 0.08, CONST_ME_ENERGYHIT)
end
return TRUE
end

 

ta ai achu que funciona(nao sei pq nao testei ;S) e to tentando passar para spell :smile_positivo: (mas como sou um otimo spell maker nun sei se vai sai bom;/)

 

edit2: po cara nun consigu nao velho, meu forte é script de actions/movements... nao consigo fazer uma spell assim malz..

o que eu posso fazer é tipo uma energy bomb, que quando o player pisar em cima tira 8% da vida ou player tira 25, mais que isso só um spell maker ou alguem mais experiente que eu ;S

Editado Janeiro 14 por Tozao

14 de janeiro de 2009 às 02:28

@Tozao

 

putz kra! vo tenta ve aki se consigo alguma coisa com o que você me passou aí. o.O

 

tibiaa4e? colex? dokmos? alguém? :cry:

 

braço...