summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWuzzy <almikes@aol.com>2014-07-17 18:36:06 +0200
committerWuzzy <almikes@aol.com>2014-07-17 18:36:06 +0200
commita97ddfd942208249ce3c4df06154b1fad41f71f7 (patch)
treee280978095e2f7a87edf43721fa470a4fac29027
parent7bfd30ce392ace5b4795fab2dcb63926cf02ea67 (diff)
Add API functions to get the current effect time
-rw-r--r--README.md18
-rw-r--r--init.lua20
2 files changed, 38 insertions, 0 deletions
diff --git a/README.md b/README.md
index 4d6a575..086b792 100644
--- a/README.md
+++ b/README.md
@@ -170,6 +170,24 @@ Careful! This function has *not* been tested yet!
##### Return value
Always `nil`.
+#### `playereffects.get_remaining_effect_time(effect_id)`
+Returns the remaining time of an effect.
+
+##### Parameter
+* `effect_id`: The effect identifier of the effect in question
+
+##### Return value
+Iff the effect exists, the remaining effect time is returned in full seconds. Iff the effect does not exist, `nil` is returned.
+
+#### `playereffects.get_passed_effect_time(effect_id)`
+Returns the time an effect was in place.
+
+##### Parameter
+* `effect_id`: The effect identifier of the effect in question
+
+##### Return value
+Iff the effect exists, the number of seconds the effect is in place is returned. Iff the effect does not exist, `nil` is returned.
+
#### `playereffects.get_player_effects(playername)`
Returns all active effects of a player.
diff --git a/init.lua b/init.lua
index 42eefdf..d78b644 100644
--- a/init.lua
+++ b/init.lua
@@ -199,6 +199,26 @@ function playereffects.cancel_effect_group(groupname, playername)
end
end
+function playereffects.get_remaining_effect_time(effect_id)
+ local now = os.time()
+ local effect = playereffects.effects[effect_id]
+ if(effect ~= nil) then
+ return (effect.time_left - os.difftime(now, effect.start_time))
+ else
+ return nil
+ end
+end
+
+function playereffects.get_passed_effect_time(effect_id)
+ local now = os.time()
+ local effect = playereffects.effects[effect_id]
+ if(effect ~= nil) then
+ return os.difftime(now, effect.start_time)
+ else
+ return nil
+ end
+end
+
function playereffects.cancel_effect(effect_id)
local effect = playereffects.effects[effect_id]
if(effect ~= nil) then