From 0666223787138dd3f3e31a697149423513bf3057 Mon Sep 17 00:00:00 2001 From: ErikasKontenis Date: Sun, 8 Nov 2020 17:08:42 +0200 Subject: [PATCH] finish training statue placeing and payment for offline training --- New Text Document.txt | 2 +- data/actions/actions.xml | 2 +- data/actions/scripts/misc/skill_trainer.lua | 21 +++++++---- .../scripts/offlinetraining.lua | 3 +- data/events/scripts/player.lua | 33 ++++++++++++++++++ data/world792/map.otbm | Bin 79968496 -> 79972500 bytes 6 files changed, 51 insertions(+), 10 deletions(-) diff --git a/New Text Document.txt b/New Text Document.txt index 1dc6e3b..db0efca 100644 --- a/New Text Document.txt +++ b/New Text Document.txt @@ -1 +1 @@ -next: 17723 \ No newline at end of file +next: 17729 \ No newline at end of file diff --git a/data/actions/actions.xml b/data/actions/actions.xml index e05c8ad..1d4936f 100644 --- a/data/actions/actions.xml +++ b/data/actions/actions.xml @@ -239,7 +239,7 @@ - + diff --git a/data/actions/scripts/misc/skill_trainer.lua b/data/actions/scripts/misc/skill_trainer.lua index a35d2c6..a41a360 100644 --- a/data/actions/scripts/misc/skill_trainer.lua +++ b/data/actions/scripts/misc/skill_trainer.lua @@ -1,13 +1,13 @@ local statues = { - [2032] = SKILL_SWORD, - [18489] = SKILL_AXE, - [18490] = SKILL_CLUB, - [18491] = SKILL_DISTANCE, - [18492] = SKILL_MAGLEVEL + [17725] = SKILL_SWORD, + [17724] = SKILL_AXE, + [17726] = SKILL_CLUB, + [17727] = SKILL_DISTANCE, + [17728] = SKILL_MAGLEVEL } function onUse(player, item, fromPosition, target, toPosition, isHotkey) - local skill = statues[item:getId()] + local skill = statues[item:getActionId()] if not player:isPremium() then player:sendCancelMessage(RETURNVALUE_YOUNEEDPREMIUMACCOUNT) return true @@ -16,8 +16,15 @@ function onUse(player, item, fromPosition, target, toPosition, isHotkey) if player:isPzLocked() then return false end - + + local entreePrice = 1000 + if player:getBankBalance() < entreePrice then + player:sendCancelMessage("You do not have 1000 gold coins in your bank account balance to participate in offline training.") + return true + end + player:setOfflineTrainingSkill(skill) + player:setBankBalance(player:getBankBalance() - entreePrice) player:remove() return true end diff --git a/data/creaturescripts/scripts/offlinetraining.lua b/data/creaturescripts/scripts/offlinetraining.lua index 325f6dd..fd651b5 100644 --- a/data/creaturescripts/scripts/offlinetraining.lua +++ b/data/creaturescripts/scripts/offlinetraining.lua @@ -10,7 +10,8 @@ function onLogin(player) player:setOfflineTrainingSkill(-1) if offlineTime < 600 then - player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You must be logged out for more than 10 minutes to start offline training.") + player:setBankBalance(player:getBankBalance() + 1000) + player:sendTextMessage(MESSAGE_EVENT_ADVANCE, "You must be logged out for more than 10 minutes to start offline training. Your 1000 gold coins entree fee were returned to your bank account.") return true end diff --git a/data/events/scripts/player.lua b/data/events/scripts/player.lua index 5f51c2d..4f4089d 100644 --- a/data/events/scripts/player.lua +++ b/data/events/scripts/player.lua @@ -1,5 +1,38 @@ +local trainingStatues = {17724, 17725, 17726, 17727, 17728} + function Player:onLook(thing, position, distance) local description = "You see " .. thing:getDescription(distance) + + if thing:isItem() and thing:getId() == 2028 then + if isInArray(trainingStatues, thing:getActionId()) then + local trainingTime = math.min(43200, self:getOfflineTrainingTime() / 1000) + local text = "You have" + local hours = math.floor(trainingTime / 3600) + if hours > 1 then + text = string.format("%s %d hours", text, hours) + elseif hours == 1 then + text = string.format("%s 1 hour", text) + end + + local minutes = math.floor((trainingTime % 3600) / 60) + if minutes ~= 0 then + if hours ~= 0 then + text = string.format("%s and", text) + end + + if minutes > 1 then + text = string.format("%s %d minutes", text, minutes) + else + text = string.format("%s 1 minute", text) + end + end + + text = string.format(" %s offline training time remaining.", text) + + description = string.format(description .. "%s", text) + end + end + if self:getGroup():getAccess() then if thing:isItem() then description = string.format("%s\nItem ID: %d", description, thing:getId()) diff --git a/data/world792/map.otbm b/data/world792/map.otbm index ee85a5aa7a3cd579fc386ffe79a05a1a75d139ea..f3c589a519016dfaf8fb10a683c870d09678161f 100644 GIT binary patch delta 10788 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 delta 6653 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