Я делаю игру в Lua - в частности, Corona SDK - и я застрял на бонусе за здоровье (игрок получит бонус здоровья каждые 4 часа), а во второй части игрок будет получите бесплатное вращение игры с колесиком, которое даст им шанс выиграть бесплатные предметы, которые будут использоваться в игре.Как получить приуроченный бонус
Часть, которая меня действительно сбивает с толку, как мне получить точный бонус, чтобы быть точным (например, каждые 4 часа и один раз в день), чтобы погасить функции для бонусов? Я также хочу, чтобы там был таймер обратного отсчета, показывающий часы: минуты: секунды до того, как можно будет получить следующий доступный бонус. Это невозможно сделать?
Вот некоторые из моего кода до сих пор ...
function hourlyBonus()
local date = os.date("*t")
local currentHour = date.hour
lastHourlyBonusClaimedHour =
GameSave.lastHourlyBonusClaimedHour or date.hour
--account for the 24 hour clock
if currentHour > 12 then
currentHour = currentHour - 12
end
if lastHourlyBonusClaimedHour > 12 then
lastHourlyBonusClaimedHour = lastHourlyBonusClaimedHour - 12
end
if currentHour == (lastHourlyBonusClaimedHour + 4) then
lastHourlyBonusClaimedHour = currentHour
-- increase the bonus
print("New 4 hour bonus ThisHour is: " .. thisHourNum)
else
local hoursToWait = (4 - (currentHour - lastHourlyBonusClaimedHour))
--have to wait for hourly bonus
print("Have to wait: "
.. hoursToWait .. "hours, "
.. minutes .. "minutes, and "
.. second .. "seconds to collect hourly Bonus still!"
)
print("CurrentHour is:" .. currentHour)
print("LastHourlyBonusClaimedHour is :" .. lastHourlyBonusClaimedHour)
end
GameSave.lastHourlyBonusClaimedHour = lastHourlyBonusClaimedHour
GameSave:save()
end
Если кто-то имеет некоторые примеры кода я мог бы посмотреть или показать мне, как это сделать, я бы очень признателен!
Последние 4 строки могут быть заменены на 'print (timeleft> 0 и os.date ("! Left% H:% M:% S ", timeleft) или" Бонусное время! ")'. – lhf
Итак, в первой строке «1 час, 2 минуты, 30 секунд назад» есть или должна быть/может быть переменной, когда был заявлен последний бонус? Кроме того, что, если кто-то отрегулирует время на своем устройстве, это даст им несколько бесплатных бонусов за здоровье? Как я буду кодировать эту проблему? с утверждением if? –
«1 час, 2 минуты, 30 секунд» был всего лишь примером для кодирования. Вы хотите, чтобы 'lastbonus' устанавливался на основе того, когда был присвоен этот бонус (или' nil' изначально и некоторая логика для его обработки). Что касается регулировки времени, пусть они это делают; когда они отрегулируют его назад, они потеряют некоторые другие точки здоровья, поэтому в среднем они будут одинаковыми. Если вы хотите запретить это, у вас есть какая-то контрольная точка, где периодически проверяйте время проверки и сбросите все точки здоровья, если вы обнаружите неожиданные изменения времени. –