diff options
| author | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-12-30 00:38:15 +0100 |
|---|---|---|
| committer | Yohann Ferreira <yohann_dot_ferreira_at_orange_dot_efer> | 2010-12-30 00:38:15 +0100 |
| commit | 12926decd2af8d0b34b632b2d0b55fc9aa134291 (patch) | |
| tree | fc40af9ccc156b841ac2c654cf2a7e03d0c843ac /example/serverdata/scripts/status | |
| parent | 64b832b8d3aac6dc55103f751fcae6b4dbb423ca (diff) | |
| download | manaserv-12926decd2af8d0b34b632b2d0b55fc9aa134291.tar.gz manaserv-12926decd2af8d0b34b632b2d0b55fc9aa134291.tar.xz manaserv-12926decd2af8d0b34b632b2d0b55fc9aa134291.zip | |
Added new example files needed to start a more complete feature-showing map.
I also replaced certain files with newer version, just as the items.xml file.
And I started to split test npcs from the tmwserv repository into reusable
pieces.
Big but trivial.
Part of the Mana-Mantis issue: #231.
Diffstat (limited to 'example/serverdata/scripts/status')
| -rw-r--r-- | example/serverdata/scripts/status/jump.lua | 53 | ||||
| -rw-r--r-- | example/serverdata/scripts/status/plague.lua | 28 |
2 files changed, 81 insertions, 0 deletions
diff --git a/example/serverdata/scripts/status/jump.lua b/example/serverdata/scripts/status/jump.lua new file mode 100644 index 0000000..3410747 --- /dev/null +++ b/example/serverdata/scripts/status/jump.lua @@ -0,0 +1,53 @@ +------------------------------------------------------------- +-- This status jumps from being to being -- +-- Thats all it does. -- +---------------------------------------------------------------------------------- +-- Copyright 2009 The Mana World Development Team -- +-- -- +-- This file is part of The Mana World. -- +-- -- +-- The Mana World is free software; you can redistribute it and/or modify it -- +-- under the terms of the GNU General Public License as published by the Free -- +-- Software Foundation; either version 2 of the License, or any later version. -- +---------------------------------------------------------------------------------- + + +function tick(target, ticknumber) + if (ticknumber % 10 == 0) then + mana.being_say(target, "I have the jumping bug!") + end + + if (mana.being_get_status_time(target, 2) < 2000) then + mana.being_set_status_time(target, 2, 6000) + end + + if (ticknumber % 50 ~= 0) then return end + + local victims = mana.get_beings_in_circle(mana.posX(target), mana.posY(target), 64) + local count = #victims + + if i == 0 then return end + + local i + local remaining = 1000 + local victim = nil + + repeat + remaining = remaining - 1 + i = math.random(count) + victim = victims[i] + if (victim == target) then + victim = nil + i = -1 + else + i = mana.being_type(victim) + end + until (i == TYPE_MONSTER or i == TYPE_CHARACTER or remaining == 0) + + if (victim == nil) then return end + + mana.being_remove_status(target, 2) + + mana.being_apply_status(victim, 2, 6000) + mana.being_say(victim, "Now I have the jumping bug") +end diff --git a/example/serverdata/scripts/status/plague.lua b/example/serverdata/scripts/status/plague.lua new file mode 100644 index 0000000..5f98268 --- /dev/null +++ b/example/serverdata/scripts/status/plague.lua @@ -0,0 +1,28 @@ +------------------------------------------------------------- +-- This when applied to a being will spread from one being -- +-- to another -- +-- Thats all it does. -- +---------------------------------------------------------------------------------- +-- Copyright 2009 The Mana World Development Team -- +-- -- +-- This file is part of The Mana World. -- +-- -- +-- The Mana World is free software; you can redistribute it and/or modify it -- +-- under the terms of the GNU General Public License as published by the Free -- +-- Software Foundation; either version 2 of the License, or any later version. -- +---------------------------------------------------------------------------------- + +function tick(target, ticknumber) + if (ticknumber % 10 == 0) then + mana.being_say(target, "I have the plague! :( = " .. ticknumber) + end + local victims = mana.get_beings_in_circle(mana.posX(target), mana.posY(target), 64) + local i = 1 + while (victims[i]) do + if (mana.being_has_status(victims[i], 1) == false) then + mana.being_apply_status(victims[i], 1, 6000) + mana.being_say(victims[i], "I don't feel so good") + end + i = i + 1 + end +end |
