Ir para conteúdo
  • 0

Script de Fome :O


BrenoNeto

Pergunta

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 por BrenoNeto
Link para o comentário
Compartilhar em outros sites

  • Respostas 49
  • Created
  • Última resposta

Top Posters For This Question

Top Posters For This Question

Posts Recomendados

  • 0

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'

Link para o comentário
Compartilhar em outros sites

  • 0

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 por notle2012
Link para o comentário
Compartilhar em outros sites

  • 0

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 por notle2012
Link para o comentário
Compartilhar em outros sites

  • 0

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 por OrochiElf
Link para o comentário
Compartilhar em outros sites

  • 0

/\ 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 por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

@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

Link para o comentário
Compartilhar em outros sites

  • 0

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

Link para o comentário
Compartilhar em outros sites

  • 0

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....

Link para o comentário
Compartilhar em outros sites

  • 0

Se você estiver usando o do OrochiElf o erro e porque ele não declarou a tabela, só mudar pra esse.

 

 

local limite = 100
local food = {
[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

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.

×
×
  • Criar Novo...