Olá pessoal, estou hoje aqui para postar um sistema que vi em outro Fórum e, que foi criado pelo o mágico dos scripitings o Skyen Hasus. O sistema retrata o suicídio em OtServers. Vamos deixar de falar e vamos ao que interessa:
Como funciona?
O player está andando, por qualquer área, e quando pisa no chão com o id (460) e cai em outro floor. E consequentemente perde life e pode até chegar ao óbito. Dependendo do floor que ele esteja maior será a chance de morte.
O que precisa?
Você precisa, colocar no mapa, no lugar aonde quer que o player caira, o chão com o id(460), pois ele não aparece in-game.
data/movements/scripts/jump.lua
local hit = 500
local function getDownPos(spos, dir)
spos.stackpos = 0
if dir == NORTH then
spos.y = spos.y - 1
elseif dir == WEST then
spos.x = spos.x - 1
end
repeat
spos.z = spos.z + 1
local thing = getThingfromPos(spos, false).uid
if thing > 0 then
return spos
end
until not (spos.z >= 0 and spos.z <= 7)
return false
end
function onStepIn(cid, item, pos, frompos)
local downpos = getDownPos({x=pos.x, y=pos.y, z=pos.z, stackpos=pos.stackpos}, getPlayerLookDir(cid))
if not downpos then
return doTeleportThing(cid, frompos)
end
local floors = downpos.z - pos.z
if floors <= 0 then
return doTeleportThing(cid, frompos)
end
doTeleportThing(cid, downpos)
doCreatureAddHealth(cid, -math.abs(hit*floors))
doSendMagicEffect(downpos, CONST_ME_DRAWBLOOD)
return true
end
Você pode alterar o dano de cada andar na linha: local hit = 500
data/movements/movements.xml
<movevent type="StepIn" itemid="460" event="script" value="jump.lua"/>
Espero que tenham gostado do trabalho do grande Skyen Hasus.