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

Perdão, aqui está:

 

function onDeath(cid, corpse, killer)
if getPlayerFood(cid) < 1000 then
doPlayerFeed(cid, 1000)
end
return true
end

 

Aonde você quer essa porcentagem?

Link para o comentário
Compartilhar em outros sites

  • 0

@Edit Mentiraaa! e no globalevents ! vo pegar aki

 

 

function onThink(interval, lastExecution)

morre = 400 -- 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 --

if death() then -- não mexe

end

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

return true

end

end

Editado por BrenoNeto
Link para o comentário
Compartilhar em outros sites

  • 0

eu sinceramente achu melhor usar onLogin doq globalevent pra isso.. sei la.. eu fiz um sistema aki n testei mas... sei la..

actions/scripts/other/food.lua

 

local max = 500 --maximo de food
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]) >= max 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

 

 

creaturescripts/scripts/Food.lua

 

local min = 50 --apartir de 50 de fome começa a perde life
local time = 3 --qnts em qnts segs vai checar a fome do player
local percent = 5 --qnts % de life o player vai perder

local function checkFood(cid)
if not isCreature(cid) then return true end
if getPlayerFood(cid) <= min then
  doCreatureAddHealth(cid, -(getCreatureMaxHealth(cid) * (percent/100)))
  doPlayerSendTextMessage(cid, 27, "You need to eat some food or you will die!")
end
addEvent(checkFood, time*1000, cid)
end

function onLogin(cid)
checkFood(cid)
registerCreatureEvent(cid, "Food_Death")
return true
end

 

 

tag:

<event type="login" name="Food" event="script" value="Food.lua"/>

 

creaturescripts/scripts/Food_Death.lua

 

local max = 500 --maximo de food

function onDeath(cid, corpse, killer)
if getPlayerFood(cid) < max then
  doPlayerFeed(cid, max)
end
return true
end

 

 

tag:

<event type="death" name="Food_Death" event="script" value="Food_Death.lua"/>

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

Duas coisas, uma deu error quando dou use no food, mais não aparece nada no console e outra, outra como vou saber em quanto está minha fome ?

 

Se vc puder me adc no skype, breno.ale21

Link para o comentário
Compartilhar em outros sites

  • 0

como q da error se n aparece nd no console o.O oq q deu? eu soh copiei o food q postaram ae...

 

sobre como saber, pode usar a talk q postaram ali na 1** pag..

 

talkactions/scripts/Check_Food.lua

 

local max = 500
function onSay(cid, words, param, channel)  
return doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "His hunger is [".. getPlayerFood(cid).."/"..max.."]")
end

 

 

tag:

<talkaction words="/checkFood" event="script" value="Check_Food.lua"/>

Editado por Slicer
Link para o comentário
Compartilhar em outros sites

  • 0

Estou usando sim uma food da tabela (meat) id 2666, está na tag das actions tbm.

 

Bom vou usar o do notle12 mesmo, o unico que funcionou, só preciso que alguem me ajude numa coisa, quando o player morrer, o tempo para comer voltar :x

Link para o comentário
Compartilhar em outros sites

  • 0

vai em

data\creaturescripts\scripts

cria arquivo com nome

deathfood.lua

coloca isso

death = 200 -- quando morre vai nascer com 200 de fome só edita
function onLogin(cid)
death_food(cid)
registerCreatureEvent(cid, "deathfood")
return 1
end
function death_food(cid)
if isCreature(cid) and getPlayerFood(cid) <= 10 then
doPlayerFeed(cid,death/2.8)
end
end

creaturescripts.xml

<event type="login" name="deathfood" event="script" value="deathfood.lua"/>

espero ter ajudado :)

Link para o comentário
Compartilhar em outros sites

  • 0

Agora sim! 100% resolvido. Valeu Notle12 u.u quando tiver fanbar me passar kkk'

 

Valeu tbm aos outros, Slicer, Roksas e OrochiELF :D

 

Como faço pra script de fome ao inves de perder 25 de life a cada segundo, perder 5% do life total ?

Editado por BrenoNeto
Link para o comentário
Compartilhar em outros sites

  • 0

vai em data\globalevents\scripts\death.lua

troca por esse

só editar

life = 5 -- porcentagens

function onThink(interval, lastExecution)
morre = 600  -- com mas ou menos 600 ja começa a morrer
life = 5 -- porcentagens
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
pc = getCreatureMaxHealth(getPlayerByName(name))/100
doCreatureAddHealth(getPlayerByName(name), -math.floor((pc*life)))
addEvent(death, 2000,getPlayerByName(name))
doSendAnimatedText(getPlayerPosition(getPlayerByName(name)),""..math.floor(pc*life).."", math.random(144,145))
setPlayerStorageValue(getPlayerByName(name), sto, os.time() + time / 1000)
end
end
end
end

Link para o comentário
Compartilhar em outros sites

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

×
×
  • Criar Novo...