• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!

Lua Use storage value to restrict the consumption of food

falls13

New Member
Joined
Nov 3, 2015
Messages
29
Reaction score
1
Insufficient Formatting - Always make sure that you use proper QUOTE, CODE, SPOILER or other valid BB code where appropriate to make your message clean and clear.
put storage here, so the player will eat the food every 15 min.

* all foods *

and continue to fill life and mana.

tfs 0.3.6

Lua:
local FOODS =
{
    [2362] = {8, "Crunch."},
    [2666] = {15, "Munch."},
    [2667] = {12, "Munch."},
    [2668] = {10, "Mmmm."},
    [2669] = {17, "Munch."},
    [2670] = {4, "Gulp."},
    [2671] = {30, "Chomp."},
    [2672] = {60, "Chomp."},
    [2673] = {5, "Yum."},
    [2674] = {6, "Yum."},
    [2675] = {13, "Yum."},
    [2676] = {8, "Yum."},
    [2677] = {1, "Yum."},
    [2678] = {18, "Slurp."},
    [2679] = {1, "Yum."},
    [2680] = {2, "Yum."},
    [2681] = {9, "Yum."},
    [2682] = {20, "Yum."},
    [2683] = {17, "Munch."},
    [2684] = {8, "Crunch."},
    [2685] = {6, "Munch."},
    [2686] = {9, "Crunch."},
    [2687] = {2, "Crunch."},
    [2688] = {9, "Munch."},
    [2689] = {10, "Crunch."},
    [2690] = {3, "Crunch."},
    [2691] = {8, "Crunch."},
    [2792] = {6, "Munch."},
    [2793] = {9, "Munch."},
    [2695] = {6, "Gulp."},
    [2696] = {9, "Smack."},
    [2787] = {9, "Munch."},
    [2788] = {4, "Munch."},
    [2789] = {22, "Munch."},
    [2790] = {30, "Munch."},
    [2791] = {30, "Munch."},
    [2792] = {6, "Munch."},
    [2794] = {3, "Munch."},
    [2795] = {36, "Munch."},
    [2796] = {5, "Munch."},
    [2793] = {9, "Munch."},
    [5097] = {4, "Yum."},
    [6125] = {8, "Gulp."},
    [6278] = {10, "Mmmm."},
    [6279] = {15, "Mmmm."},
    [6393] = {12, "Mmmm."},
    [6394] = {15, "Mmmm."},
    [6501] = {20, "Mmmm."},
    [6541] = {6, "Gulp."},
    [6542] = {6, "Gulp."},
    [6543] = {6, "Gulp."},
    [6544] = {6, "Gulp."},
    [6545] = {6, "Gulp."},
    [6569] = {1, "Mmmm."},
    [6574] = {4, "Mmmm."},
    [7158] = {15, "Munch."},
    [7159] = {13, "Munch."},
    [7372] = {7, "Yum."},
    [7373] = {7, "Yum."},
    [7374] = {7, "Yum."},
    [7375] = {7, "Yum."},
    [7376] = {7, "Yum."},
    [7377] = {7, "Yum."},
    [7909] = {4, "Crunch."},
    [8838] = {7, "Gulp."},
    [8839] = {5, "Yum."},
    [8840] = {2, "Yum."},
    [8841] = {3, "Urgh."},
    [8842] = {3, "Munch."},
    [8843] = {3, "Crunch."},
    [8844] = {3, "Gulp."},
    [8845] = {2, "Munch."},
    [8847] = {11, "Yum."}
}

function onUse(cid, item, fromPosition, itemEx, toPosition)
    local food = FOODS[item.itemid]
    if(not food) then
        return false
    end

    if((getPlayerFood(cid) + food[1]) >= 400) then
        doPlayerSendCancel(cid, "You are full.")
        return true
    end

    doPlayerFeed(cid, food[1] * 4)
    doCreatureSay(cid, food[2], TALKTYPE_ORANGE_1)
    doRemoveItem(item.uid, 1)
    return true
end
 
Last edited by a moderator:
@Znote @cbrm @Ninja @Summ - I believe this post should be moved to support

@falls13 Not quite sure if this is how you want it but give it a try.
Tested this on 0.4 rev3777

35822

Lua:
local config = {

    FOOD_TIME_STORAGE = 41213,

    -- 15 * 60seconds == 15 minutes
    FOOD_TIME_DELAY = 15 * 60,

    foods = {
        [2362] = {8, "Crunch."}, [2666] = {15, "Munch."}, [2667] = {12, "Munch."}, [2668] = {10, "Mmmm."}, [2669] = {17, "Munch."},
        [2670] = {4, "Gulp."}, [2671] = {30, "Chomp."}, [2672] = {60, "Chomp."}, [2673] = {5, "Yum."},
        [2674] = {6, "Yum."}, [2675] = {13, "Yum."}, [2676] = {8, "Yum."}, [2677] = {1, "Yum."},
        [2678] = {18, "Slurp."}, [2679] = {1, "Yum."}, [2680] = {2, "Yum."}, [2681] = {9, "Yum."},
        [2682] = {20, "Yum."}, [2683] = {17, "Munch."}, [2684] = {8, "Crunch."}, [2685] = {6, "Munch."},
        [2686] = {9, "Crunch."}, [2687] = {2, "Crunch."}, [2688] = {9, "Munch."}, [2689] = {10, "Crunch."},
        [2690] = {3, "Crunch."}, [2691] = {8, "Crunch."}, [2792] = {6, "Munch."}, [2793] = {9, "Munch."},
        [2695] = {6, "Gulp."}, [2696] = {9, "Smack."}, [2787] = {9, "Munch."}, [2788] = {4, "Munch."},
        [2789] = {22, "Munch."}, [2790] = {30, "Munch."}, [2791] = {30, "Munch."}, [2792] = {6, "Munch."},
        [2794] = {3, "Munch."}, [2795] = {36, "Munch."}, [2796] = {5, "Munch."}, [2793] = {9, "Munch."},
        [5097] = {4, "Yum."}, [6125] = {8, "Gulp."}, [6278] = {10, "Mmmm."}, [6279] = {15, "Mmmm."},
        [6393] = {12, "Mmmm."}, [6394] = {15, "Mmmm."}, [6501] = {20, "Mmmm."}, [6541] = {6, "Gulp."},
        [6542] = {6, "Gulp."}, [6543] = {6, "Gulp."}, [6544] = {6, "Gulp."}, [6545] = {6, "Gulp."},
        [6569] = {1, "Mmmm."}, [6574] = {4, "Mmmm."}, [7158] = {15, "Munch."}, [7159] = {13, "Munch."},
        [7372] = {7, "Yum."}, [7373] = {7, "Yum."}, [7374] = {7, "Yum."}, [7375] = {7, "Yum."},
        [7376] = {7, "Yum."}, [7377] = {7, "Yum."}, [7909] = {4, "Crunch."}, [8838] = {7, "Gulp."},
        [8839] = {5, "Yum."}, [8840] = {2, "Yum."}, [8841] = {3, "Urgh."}, [8842] = {3, "Munch."},
        [8843] = {3, "Crunch."}, [8844] = {3, "Gulp."}, [8845] = {2, "Munch."}, [8847] = {11, "Yum."}
    }
}

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

    -- check time delay
    if(getPlayerStorageValue(cid,  config.FOOD_TIME_STORAGE) ~= -1) then
        if(getPlayerStorageValue(cid, config.FOOD_TIME_STORAGE) - os.time() > 0) then

            local delayTime = getPlayerStorageValue(cid, config.FOOD_TIME_STORAGE) - os.time()
            local min = math.floor(delayTime / 60)
            local sec = delayTime - (min * 60);

            doPlayerSendCancel(cid, string.format("You have to wait %d min(s) %d second(s) before you can eat again.", min, sec))
            return true
        end
    end

    local food = config.foods[item.itemid]
    if(not food) then
        return false
    end

    if(getPlayerFood(cid) + food[1] >= 400) then
        doPlayerSendCancel(cid, "You are full.")
        return true
    end

    doPlayerFeed(cid, food[1] * 4)
    doCreatureSay(cid, food[2], TALKTYPE_ORANGE_1)
    doRemoveItem(item.uid, 1)

    -- Set storage value to (timeNow + 15 minutes)
    doPlayerSetStorageValue(cid, config.FOOD_TIME_STORAGE, os.time() + config.FOOD_TIME_DELAY)

    return true
end
 
It worked ! only one thing, when he enters zone pz and leaves, to recover mana and life, but the time continues.
How can you fix this?
 
It worked ! only one thing, when he enters zone pz and leaves, to recover mana and life, but the time continues.
How can you fix this?

I am not sure how that would be solved. Maybe you should make a new thread in support board and wait for someone else to help with that :S
 
Back
Top