DE

[Pedido] Uma Action Que Sobe Vida E Life!

Por deeners2, 25 de fev. de 2012 em Scripts

otserv
31
3k
deeners2D
25 de fevereiro de 2012 às 16:54

Gente,eu jogo um otserver , que tem um item que se chama Blood , que quando você clica nele , ele te da uma certa quantidade de vida e de mana e por +- 30 segundos fica healando mana e vida ! alguem poderia me ajudar a fazer uma action como essa? Eu tinha essa action mais eu perdi ela e nao consegui achar denovo! quando usa ele , ele muda de roupa e solta um fogo branco que vai healando vida e mana a cada segundo! Obrigado desde já! =) Queria isso também , quando voce clicar nesse item , ele irá usar o blood e vai tirar 1 de soul!

VodkartV
25 de fevereiro de 2012 às 17:26

function doRefilSecond(cid, mana, hp, delay) -- function by vodka
if isCreature(cid) then
doCreatureAddMana(cid, mana)
doCreatureAddHealth(cid, hp)
doSendMagicEffect(getCreaturePosition(cid), 6)
if delay ~= 1 then
addEvent(doRefilSecond, 1000, cid, mana , hp , delay -1)
end
else
return LUA_ERROR
end
return nil
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local seconds = 10
local outfit = 100
doRefilSecond(cid, 10,20, seconds)
doSetCreatureOutfit(cid, {lookType = outfit}, seconds*1000)
doRemoveItem(item.uid, 1)
return TRUE
end

 

explicação:

 

doRefilSecond(cid, MANA ,HP, SEGUNDOS)

 

por exemplo eu quero que heale 10 de mana e 20 de hp por 30 segundos,logo ficaria:

 

doRefilSecond(cid, 10,20, 30)

deeners2D
25 de fevereiro de 2012 às 18:03

nesse script ele tá removendo 1 de SOUL ? e aonde eu mudo o looktipe que o char vai virar?

VodkartV
25 de fevereiro de 2012 às 18:37

ah esqueci do soul... uhauahauaua

 

o looktype ta aki :

 

local outfit = 100

 

e uma duvida do soul

 

vai remover o 1 de soul por segundo? ou só vai remover 1 de soul?

deeners2D
25 de fevereiro de 2012 às 18:53

não,quando usar o blood ele vai remover1 de soul! cada blood usado remove 1 de soul

VodkartV
25 de fevereiro de 2012 às 18:58

era só adicionar a linha doPlayerAddSoul(cid, -1)

 

function doRefilSecond(cid, mana, hp, delay) -- function by vodka
if isCreature(cid) then
doCreatureAddMana(cid, mana)
doCreatureAddHealth(cid, hp)
doSendMagicEffect(getCreaturePosition(cid), 6)
if delay ~= 1 then
addEvent(doRefilSecond, 1000, cid, mana , hp , delay -1)
end
else
return LUA_ERROR
end
return nil
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local seconds = 10
local outfit = 100
doRefilSecond(cid, 10,20, seconds)
doSetCreatureOutfit(cid, {lookType = outfit}, seconds*1000)
doPlayerAddSoul(cid, -1)
doRemoveItem(item.uid, 1)
return TRUE
end

deeners2D
25 de fevereiro de 2012 às 19:02

e só mais uma pergunta uaehueaheauhea , e onde eu coloco o ID do item que vai gastar? :S e outra tb ! aquele local seconds = 10 é quando de hp e mana vai healar ? no caso 10 segs?

Editado Fevereiro 25 por Deneerziinho

VodkartV
25 de fevereiro de 2012 às 19:08

ok vou deixar o script configuravel para vc...

 

 

nome do seu script.lua

function doRefilSecond(cid, mana, hp, delay) -- function by vodka
if isCreature(cid) then
doCreatureAddMana(cid, mana)
doCreatureAddHealth(cid, hp)
doSendMagicEffect(getCreaturePosition(cid), 6)
if delay ~= 1 then
addEvent(doRefilSecond, 1000, cid, mana , hp , delay -1)
end
else
return LUA_ERROR
end
return nil
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
hp = 10, -- qnto de hp irá ganha por segundo
mana = 5, -- qnto de mana irá ganhar por segundo
seconds = 30, -- por qnto segundos ele irá ganhar o hp e mana
outfit = 100 -- outfit q ele vai virar
}
doRefilSecond(cid, config.mana,config.hp, config.seconds)
doSetCreatureOutfit(cid, {lookType = config.outfit}, config.seconds*1000)
doPlayerAddSoul(cid, -1)
doRemoveItem(item.uid, 1)
return TRUE
end

 

em actions.xml vc adicona a tag:

 

<action itemid="ID DO SEU ITEM" event="script" value="nome do seu script.lua"/>

deeners2D
25 de fevereiro de 2012 às 19:17

Nossa mano, foi mal da esse trampo pra voce ae! brigadão mesmo ! =)

 

não tem como tipo ele virá um outfit diferente? por que no ot que eu jogo ele vira um outfit diferente,são 3 outfits ,uma hora ele vira um coelho e outra hora ele vira um outro outfit!

VodkartV
25 de fevereiro de 2012 às 19:23

sim...

function doRefilSecond(cid, mana, hp, delay) -- function by vodka
if isCreature(cid) then
doCreatureAddMana(cid, mana)
doCreatureAddHealth(cid, hp)
doSendMagicEffect(getCreaturePosition(cid), 6)
if delay ~= 1 then
addEvent(doRefilSecond, 1000, cid, mana , hp , delay -1)
end
else
return LUA_ERROR
end
return nil
end
function onUse(cid, item, fromPosition, itemEx, toPosition)
local config = {
hp = 10, -- qnto de hp irá ganha por segundo
mana = 5, -- qnto de mana irá ganhar por segundo
seconds = 30, -- por qnto segundos ele irá ganhar o hp e mana
outfit = {100,50,120} -- outfit q ele vai virar
}
doRefilSecond(cid, config.mana,config.hp, config.seconds)
doSetCreatureOutfit(cid, {lookType = config.outfit[math.random(#config.outfit)]}, config.seconds*1000)
doPlayerAddSoul(cid, -1)
doRemoveItem(item.uid, 1)
return TRUE
end

 

vc coloca o id das outfit aqui:

 

outfit = {100,50,120}

deeners2D
25 de fevereiro de 2012 às 19:26

Mano brigado mesmo! brigadão, mals dá trabalho pra voce ae! =)

VodkartV
25 de fevereiro de 2012 às 19:31

Não te esquenta,fim do mês vai chegar uma fatura de script no seu correio,ai você paga na lotérica mais próxima da sua casa.

Nesse caso o script foi barato,dependendo no nível de dificuldade...esse é nível iniciante no valor de R$: 100,00.

Abraços

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ishuihUSHIUhsiuHSIUHSIHSIUHuisuIHSuishuUIs

Brincadeira!

vlw abraços =]

ZmovirZ
25 de fevereiro de 2012 às 19:53

Vodkart poderia modificar pra sair esses efeitos do lado do player enroda 28/29

VodkartV
25 de fevereiro de 2012 às 20:15

@UP

 

assim:

local pos = getPlayerPosition(cid)
local effc = {
{x = pos.x, y = pos.y - 1, z = pos.z},
{x = pos.x, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y, z = pos.z},
{x = pos.x + 1, y = pos.y, z = pos.z},
{x = pos.x - 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y - 1, z = pos.z},
{x = pos.x + 1, y = pos.y + 1, z = pos.z},
{x = pos.x - 1, y = pos.y + 1, z = pos.z}
} 
doSendMagicEffect(effc[math.random(#effc)], math.random(28, 30))

 

?

ZmovirZ
25 de fevereiro de 2012 às 20:18

Thanks you rep+