summaryrefslogtreecommitdiff
path: root/npc/magic/transmigration.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/magic/transmigration.txt')
-rw-r--r--npc/magic/transmigration.txt62
1 files changed, 62 insertions, 0 deletions
diff --git a/npc/magic/transmigration.txt b/npc/magic/transmigration.txt
new file mode 100644
index 000000000..4e45d8510
--- /dev/null
+++ b/npc/magic/transmigration.txt
@@ -0,0 +1,62 @@
+// TMW2 script
+// Author: Jesusalva <admin@tmw2.org>
+//
+// Magic Script: TMW2_TRANSMIGRATION
+//
+// Attempts to make stuff from other stuff
+// This is actually referred as transmutation in human-readable forms, and
+// transmigration in scripts.
+
+- script sk#mkpot 32767,{
+ end;
+OnCall:
+ // Other requeriments
+ if (countitem(Plushroom) < 10 || !countitem(Milk)) {
+ dispbottom l("You need @@ @@ and @@ to cast this skill.", 10, getitemlink(Plushroom), getitemlink(Milk));
+ end;
+ }
+
+ // Check cooldown
+ if (@mkpot_at > gettimetick(2)) {
+ dispbottom l("Skill is in cooldown for @@.", FuzzyTime(@mkpot_at));
+ end;
+ }
+
+ // Check requisites
+ if (!MagicCheck(TMW2_TRANSMIGRATION, 185, -5))
+ end;
+
+ // Consume items
+ delitem Plushroom, 10;
+ delitem Milk, 1;
+
+ // Create the stuff based on MAGIC_EXP
+ // The closer to zero, best;
+ // Each 3 mexp reduces chance to get a fail
+ // Each skill level reduces chances to get a fail
+ .@r=rand(141,181)-(MAGIC_EXP/3)-getskilllv(TMW2_TRANSMIGRATION);
+ if (.@r < 21) {
+ // Get up to 6 Haste Potions depending on your skill.
+ getitem HastePotion, abizit()+1;
+ } else if (.@r < 82) {
+ getitem any(BottleOfTonoriWater, BottleOfWoodlandWater, BottleOfDivineWater, Milk, CelestiaTea, PileOfAsh), 1;
+ } else if (.@r < 122) {
+ getitem any(BottleOfSewerWater, Milk, CelestiaTea, PileOfAsh), 1;
+ } else if (.@r < 162) {
+ getitem any(BottleOfSewerWater, BottleOfSewerWater, PileOfAsh), 1;
+ } else {
+ dispbottom l("Your items vanishes into thin air. What?!");
+ }
+
+ // set cooldown
+ @mkpot_at=gettimetick(2);
+ @mkpot_at=@mkpot_at+6;
+
+ // Get a few mana experience points (this is NOT used by Mana Stone)
+ GetManaExp(TMW2_TRANSMIGRATION, rand2(4,11));
+ end;
+
+OnInit:
+ bindatcmd "sk-trans", "sk#mkpot::OnCall", 0, 100, 0;
+ end;
+}