BR
pedido

Script de Fome :O

Por BrenoNeto, 13 de mar. de 2013 em Scripts

tibia
script
otserv
50
5.5k
BrenoNetoB
13 de março de 2013 às 02:18

Eai galera do Ekz, bom, estou precisando muito de um sistema de fome, não faço idéia de como fazer, não entendo nada de scripiting, então espero que alguém consiga me ajudar.

Basicamente a script seria, o player tem ou uma barra de fome como uma cool down bar do poketibia [uso OTClient] , ou ele digita !check ou algo assim e aparece sei la Fome : 50/100

dai vai descendo, por tempo EX: 2 mins 1%. e quando chega no 0, o player começa a morrer a não ser que coma.

 

Não faço ideia de como fazer, e não faço ideia se tem como fazer. Mesmo assim obrigado :D caso alguém consiga ctz que será reputado. VLWWW!

Editado Março 13 por BrenoNeto

AlexclusiveA
13 de março de 2013 às 03:04

Vai pegar em Ot tmb? Se alguem conseguir vai ser foda..

BrenoNetoB
13 de março de 2013 às 03:10

Seria legal se tipo, cara digitasse !check, ou a barra ficasse vazia 0/100, o player tipo ficava em status que começava a morrer :p

Logo eu configuraria a script também para sede :p espero que alguem consiga kk'

 

A versão do servidor é 8.6 caso seja importante EHUAUHEA'

notle2012N
13 de março de 2013 às 05:14

criei +ou- uma base check fico bem legal

data\talkactions\scripts\check.lua

function onSay(cid, words, param)
if isPlayer(cid) and doPlayerSendTextMessage(cid, 22,"tempo ["..getPlayerFood(cid).."/1000] para comer") then
return true
end
end  

talkactions.xml

<talkaction words="!check" event="script" value="check.lua"/>

92780664.png

 

data\globalevents\scripts\death.lua

function onThink(interval, lastExecution)
morre = 600  -- com mas ou menos 600 ja começa a morrer
life = 25 -- quanto de life player vai perdendo
time = 1100 -- (tempo 1000 por segundos)
sto = 15725 --
death()   -- não mexe
return 1
end
function death()
for _, name in ipairs(getOnlinePlayers()) do
if getPlayerStorageValue(getPlayerByName(name), sto) >= os.time() then return true end
if isCreature(getPlayerByName(name)) then
if getPlayerFood(getPlayerByName(name)) <= morre then
doCreatureAddHealth(getPlayerByName(name), -life)
addEvent(death, 2000,getPlayerByName(name))
doSendAnimatedText(getPlayerPosition(getPlayerByName(name)),""..life.."", math.random(144,145))
setPlayerStorageValue(getPlayerByName(name), sto, os.time() + time / 1000)
end
end
end
end

globalevents.lua

<globalevent name="death" interval="3" event="script" value="death.lua"/>

Editado Março 14 por notle2012

BrenoNetoB
14 de março de 2013 às 01:42

Ainda não consegui :o, o cara ta tentando me ajudar mais parece que não funcionou ainda!

 

Porfavor galerinha :X

notle2012N
14 de março de 2013 às 02:38

troca food por esse

local limite = 1000 -- limite não passar de 1000
local food =
--[id da comida] = {quanto aumenta no limite ,"palavra."},
{[2362] = {80, "Crunch."},
[2666] = {150, "Munch."},
[2667] = {120, "Munch."},
[2668] = {100, "Mmmm."},
[2669] = {170, "Munch."},
[2670] = {40, "Gulp."},
[2671] = {300, "Chomp."},
[2672] = {400, "Chomp."},
[2673] = {50, "Yum."},
[2674] = {60, "Yum."},
[2675] = {130, "Yum."},
[2676] = {80, "Yum."},
[2677] = {10, "Yum."},
[2678] = {180, "Slurp."},
[2679] = {10, "Yum."},
[2680] = {20, "Yum."},
[2681] = {90, "Yum."},
[2682] = {200, "Yum."},
[2683] = {170, "Munch."},
[2684] = {80, "Crunch."},
[2685] = {60, "Munch."},
[2686] = {90, "Crunch."},
[2687] = {20, "Crunch."},
[2688] = {90, "Munch."},
[2689] = {100, "Crunch."},
[2690] = {30, "Crunch."},
[2691] = {80, "Crunch."},
[2792] = {60, "Munch."},
[2793] = {90, "Munch."},
[2695] = {60, "Gulp."},
[2696] = {90, "Smack."},
[2787] = {90, "Munch."},
[2788] = {40, "Munch."},
[2789] = {220, "Munch."},
[2790] = {300, "Munch."},
[2791] = {300, "Munch."},
[2792] = {60, "Munch."},
[2794] = {30, "Munch."},
[2795] = {360, "Munch."},
[2796] = {50, "Munch."},
[2793] = {90, "Munch."},
[5097] = {40, "Yum."},
[6125] = {80, "Gulp."},
[6278] = {100, "Mmmm."},
[6279] = {150, "Mmmm."},
[6393] = {120, "Mmmm."},
[6394] = {150, "Mmmm."},
[6501] = {200, "Mmmm."},
[6541] = {60, "Gulp."},
[6542] = {60, "Gulp."},
[6543] = {60, "Gulp."},
[6544] = {60, "Gulp."},
[6545] = {60, "Gulp."},
[6569] = {10, "Mmmm."},
[6574] = {40, "Mmmm."},
[7158] = {150, "Munch."},
[7159] = {130, "Munch."},
[7372] = {70, "Yum."},
[7373] = {70, "Yum."},
[7374] = {70, "Yum."},
[7375] = {70, "Yum."},
[7376] = {70, "Yum."},
[7377] = {70, "Yum."},
[7909] = {40, "Crunch."},
[8838] = {70, "Gulp."},
[8839] = {50, "Yum."},
[8840] = {20, "Yum."},
[8841] = {30, "Urgh."},
[8842] = {30, "Munch."},
[8843] = {30, "Crunch."},
[8844] = {30, "Gulp."},
[8845] = {20, "Munch."},
[8847] = {110, "Yum."}
}
function onUse(cid, item, fromPosition, itemEx, toPosition)
if(food[item.itemid] ~= nil) then
 if(getPlayerFood(cid) + food[item.itemid][1]) >= limite then
  doPlayerSendCancel(cid, "You are full.")
 else
  doPlayerFeed(cid, food[item.itemid][1] /2.7)
  doCreatureSay(cid, food[item.itemid][2], TALKTYPE_ORANGE_1)
  doRemoveItem(item.uid, 1)
 end
 return TRUE
end
return FALSE
end

Editado Março 14 por notle2012

Tony AraujoT
14 de março de 2013 às 08:44

Vá em Data/Actions/scripts/food.lua. e altere por esse

 

 

 

 

local limite = 100

--[id da comida] = {quanto aumenta no limite ,"palavra."},

{[2362] = {80, "Crunch."},

[2666] = {50, "Munch."},

[2667] = {100, "Munch."},

[2668] = {100, "Mmmm."},

[2669] = {100, "Munch."},

[2670] = {40, "Gulp."},

[2671] = {100, "Chomp."},

[2672] = {100, "Chomp."},

[2673] = {50, "Yum."},

[2674] = {60, "Yum."},

[2675] = {100, "Yum."},

[2676] = {80, "Yum."},

[2677] = {10, "Yum."},

[2678] = {100, "Slurp."},

[2679] = {10, "Yum."},

[2680] = {20, "Yum."},

[2681] = {90, "Yum."},

[2682] = {100, "Yum."},

[2683] = {100, "Munch."},

[2684] = {80, "Crunch."},

[2685] = {60, "Munch."},

[2686] = {90, "Crunch."},

[2687] = {20, "Crunch."},

[2688] = {90, "Munch."},

[2689] = {100, "Crunch."},

[2690] = {30, "Crunch."},

[2691] = {80, "Crunch."},

[2792] = {60, "Munch."},

[2793] = {90, "Munch."},

[2695] = {60, "Gulp."},

[2696] = {90, "Smack."},

[2787] = {90, "Munch."},

[2788] = {40, "Munch."},

[2789] = {100, "Munch."},

[2790] = {100, "Munch."},

[2791] = {100, "Munch."},

[2792] = {60, "Munch."},

[2794] = {30, "Munch."},

[2795] = {100, "Munch."},

[2796] = {50, "Munch."},

[2793] = {90, "Munch."},

[5097] = {40, "Yum."},

[6125] = {80, "Gulp."},

[6278] = {100, "Mmmm."},

[6279] = {100, "Mmmm."},

[6393] = {100, "Mmmm."},

[6394] = {100, "Mmmm."},

[6501] = {100, "Mmmm."},

[6541] = {60, "Gulp."},

[6542] = {60, "Gulp."},

[6543] = {60, "Gulp."},

[6544] = {60, "Gulp."},

[6545] = {60, "Gulp."},

[6569] = {10, "Mmmm."},

[6574] = {40, "Mmmm."},

[7158] = {100, "Munch."},

[7159] = {100, "Munch."},

[7372] = {70, "Yum."},

[7373] = {70, "Yum."},

[7374] = {70, "Yum."},

[7375] = {70, "Yum."},

[7376] = {70, "Yum."},

[7377] = {70, "Yum."},

[7909] = {40, "Crunch."},

[8838] = {70, "Gulp."},

[8839] = {50, "Yum."},

[8840] = {20, "Yum."},

[8841] = {30, "Urgh."},

[8842] = {30, "Munch."},

[8843] = {30, "Crunch."},

[8844] = {30, "Gulp."},

[8845] = {20, "Munch."},

[8847] = {100, "Yum."}

}

function onUse(cid, item, fromPosition, itemEx, toPosition)

if(food[item.itemid] == true) then

if(getPlayerFood(cid) + food[item.itemid][1]) >= limite then

doPlayerSendCancel(cid, "You are full.")

else

doPlayerFeed(cid, food[item.itemid][1] /2.7)

doCreatureSay(cid, food[item.itemid][2], TALKTYPE_ORANGE_1)

doRemoveItem(item.uid, 1)

end

return TRUE

end

return FALSE

end

 

 

Créditos : Notle2012 / Eu (OrochiElf)

 

Agora vá em Talkactions/scripts , e crie um arquivo e adicione esse script

 

 

 

 

function onSay(cid, words, param, channel)

if isCreature(cid) then

max = 100

doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "His hunger is ["..getPlayerFood(cid).."/"..max.."]")

end

return true

end

 

 

 

para finalizar, vá em creaturescript / login.lua

 

procure por : function onLogin

e adicione embaixo

 

 

 

 

 

function autoEat(cid)

local configs = {

death = 10,

tempo = 3,

}

 

if isCreature(cid) then

if getPlayerFood(cid) <= 0 then

 

doCreatureAddHealth(cid, -configs.death)

doPlayerSendTextMessage(cid, 25, "You are deathing, you need eat food")

end

end

addEvent(autoEat, configs.tempo*1000, cid)

return true

end

 

 

 

Ainda no mesmo arquivo , procure por

 

Registry

e abaixo adicione

 

autoEat(cid)

 

Qualquer duvida só perguntar.

Editado Março 14 por OrochiElf

SlicerS
14 de março de 2013 às 10:18

/\ isso n vai da muito certo...

o addEvent tem q vir depois da checagem da food... se n se o player n tiver com 0 de food o script vai parar e n vai mais verificar...

o correto seria...

 

local function autoEat(cid)
local configs = {
death = 10,
tempo = 3,
}
if not isCreature(cid) then return true end

if getPlayerFood(cid) <= 0 then
  doCreatureAddHealth(cid, -configs.death)
  doPlayerSendTextMessage(cid, 25, "You are deathing, you need eat food")
end
addEvent(autoEat, configs.tempo*1000, cid)
return true
end

 

Editado Março 14 por Slicer

GoombaG
14 de março de 2013 às 10:38

@Slicer sempre detonando os scripts do Orocheca Orochielf huahauahuheh

Vai pegar em Ot tmb? Se alguem conseguir vai ser foda..

To acompanhando o tópico bem por isso kkkk, vamos esperar mdr.gif

Tony AraujoT
14 de março de 2013 às 10:47

@Slicer , obrigado por arrumar '-', irei editar o meu post a cima.

 

@Goomba, axo que ele nao quis detonar, apenas arrumou o meu addEvent '-'.

 

@Off, espero que tenha ajudado ao BrenoNeto

BrenoNetoB
14 de março de 2013 às 12:44

Já está funcionando Vlews ae galeram REP+ :D, Slicer teria como colocar invez do comando !check, colocar uma barra no otclient ? como cool down bar?

AlexclusiveA
14 de março de 2013 às 12:49

Já está funcionando Vlews ae galeram REP+ :D, Slicer teria como colocar invez do comando !check, colocar uma barra no otclient ? como cool down bar?

 

Vo testa no meu 8.6 pra ver se funciona.. hahaha

 

Sobre o cool down bar EU ACHO que so com cliente proprio..pra mim ja nao da kkkkkkkkkk

BrenoNetoB
14 de março de 2013 às 13:21

Uso OTClient, acho que da sim :D, Só colocar onde fica, A HealtBar, ManaBar e ExperienceBar :p

 

Algum erro nas actions :X

errorxn.png

20cm2
14 de março de 2013 às 14:41

Uso OTClient, acho que da sim :D, Só colocar onde fica, A HealtBar, ManaBar e ExperienceBar :p

 

Algum erro nas actions :X

errorxn.png

 

acho q vc editou errado

posta seu food.lua da actions/others....

BrenoNetoB
14 de março de 2013 às 14:45

Não editei nada, só colei la o.O, não substitui nada na script.