1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
// 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:
// 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;
do {
mes ".:: " + l("Transmutation Skill") + " ::.";
mesc l("What will you transmute today?");
mes "";
menuint
l("Crazy Rum"), CrazyRum,
l("Mouboo Figurine"), MoubooFigurine;
mes "";
switch (@menuret) {
case CrazyRum:
mesc l("Transmutating @@ will require:", getitemlink(@menuret));
mesc l("* @@/@@ @@", countitem(Plushroom), 10, getitemlink(Plushroom));
mesc l("* @@/@@ @@", countitem(Milk), 1, getitemlink(Milk));
next;
mesc l("Transmute?!");
if (askyesno() == ASK_NO)
@menuret=0;
break;
case MoubooFigurine:
mesc l("Transmutating @@ will require:", getitemlink(@menuret));
mesc l("* @@/@@ @@", countitem(WoodenLog), 1, getitemlink(WoodenLog));
next;
mesc l("Transmute?!");
if (askyesno() == ASK_NO)
@menuret=0;
break;
default:
Exception("ERROR, INVALID TRANSMIGRATION OPTION", RB_DEFAULT|RB_SPEECH); @menuret=0; break;
}
} while (!@menuret);
// Close the dialog
closeclientdialog;
// Check and Consume the reagents
switch (@menuret) {
case CrazyRum:
if (countitem(Plushroom) < 10 ||
countitem(Milk) < 1) {
dispbottom l("Not enough items!");
end;
}
// Consume items
delitem Plushroom, 10;
delitem Milk, 1;
break;
case MoubooFigurine:
if (countitem(WoodenLog) < 1) {
dispbottom l("Not enough items!");
end;
}
// Consume items
delitem WoodenLog, 1;
break;
default:
Exception("ERROR, INVALID TRANSMIGRATION REAGENTS", RB_DEFAULT|RB_SPEECH|RB_ISFATAL); break;
}
// Do the roll from 1 to 100
// Base success chance is 0%
// Each abizit() point gives you 18% success rate (max 90%)
// Each skill level gives you 1% success rate (max 10%)
.@r=rand2(1, 100)-abizit()*18-getskilllv(TMW2_TRANSMIGRATION);
// Backfire chance: 30%
if (.@r >= 70) {
dispbottom l("The spell backfires!");
percentheal -(rand2(5, 15)), 0;
// Chance for nothing to happen
} else if (.@r >= 30) {
dispbottom l("Your reagents vanish into emptiness!");
// Chance for you getting a junk item
} else if (.@r > 0) {
dispbottom l("Your spell takes a mind of its own and shapes in something else!");
getitem WarpedLog, 1;
// You were successful
} else {
dispbottom l("*plim*");
getitem @menuret, 1;
}
// 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;
}
|