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
|
// TMW2 Script
// Author:
// Jesusalva
006-7,44,50,0 script #OutOf0067 NPC_HIDDEN,0,0,{
end;
OnTouch:
if (!$@ICICLE_CHALLENGE)
warp "006-6", 40, 36;
end;
OnRw:
getexp 1000000, 0;
Mobpt += 10000;
dispbottom l("Der Schneemann has been defeated: %s Monster Points gained.", fnum(10000));
end;
}
006-7,44,50,0 script Ice Lord NPC_YETIFLY,{
if (.ticks > gettimetick(2)) {
mesn;
mesq l("This challenge will be available in %s. Please wait until then.", FuzzyTime(.ticks));
close;
}
mesn;
mesq l("With Magic and Blades, The Icicle shall break. Do you undertake the challenge?");
mesc l("Advised: 6+ players"), 1;
mesc l("Advised: 1+ mage, 1+ tanker, 2+ healer"), 1;
mesc l("Time Limit: 90 minutes"), 1;
mesc l("Enter/Leave after start: %s", b(l("NO"))), 1;
next;
select
l("Not yet."),
l("Bring it on!"),
rif(REBIRTH, l("Bring me, my worst nightmare."));
mes "";
if (@menu == 1) {
closeclientdialog;
close;
}
.ticks = gettimetick(2) + 5400; // 90 minutes
.BOSS = monster("006-7", 44, 36, "Der Schneemann", SnowmanBoss, 1);
.@mlt = (@menu == 2 ? 10 : 15);
setunitdata(.BOSS, UDT_MAXHP, 1000000 * .@mlt / 10);
setunitdata(.BOSS, UDT_HP, 1000000 * .@mlt / 10);
// Reconfigure the AI
.@opt=getunitdata(.BOSS, UDT_MODE);
// Disable looting
if (.@opt & MD_LOOTER)
.@opt=.@opt^MD_LOOTER;
// Add knockback immunity
.@opt=.@opt|MD_NOKNOCKBACK;
// Mark as boss
.@opt=.@opt|MD_BOSS;
// Mark as aggressive
.@opt=.@opt|MD_AGGRESSIVE;
.@opt=.@opt|MD_ANGRY;
// Make it more op
.@opt=.@opt|MD_DETECTOR;
.@opt=.@opt|MD_CASTSENSOR_CHASE;
.@opt=.@opt|MD_CASTSENSOR_IDLE;
.@opt=.@opt|MD_CHANGECHASE;
.@opt=.@opt|MD_CHANGETARGET_MELEE;
.@opt=.@opt|MD_CHANGETARGET_CHASE;
setunitdata(.BOSS, UDT_MODE, .@opt);
// Nerf the damage, but never miss a hit
setunitdata(.BOSS, UDT_ATKMIN, 60 * .@mlt / 10);
setunitdata(.BOSS, UDT_ATKMAX, 60 * .@mlt / 10);
setunitdata(.BOSS, UDT_ADELAY, 2220 / .@mlt * 10); // 2220 or 1480ms
setunitdata(.BOSS, UDT_HIT, 2400);
// Boosting the defense is not necessary
// It nerfs weapons to 40% (bows to 20%)
// Then it resists 50% of Neutral element.
// Note it is strong against Water (25% dmg)
// And weak against Fire (snow) and Wind (100% dmg)
// Otherwise, behave as Ghost element
disablenpc .name$;
initnpctimer;
closeclientdialog;
close;
// Heart
OnTimer5000:
if (!mobcount("006-7", "all"))
maptimer2("006-7", 10, "#OutOf0067::OnRw");
if (.ticks < gettimetick(2) || !mobcount("006-7", "all") || !getmapusers("006-7")) {
killmonsterall("006-7");
enablenpc .name$;
.ticks = min(.ticks, gettimetick(2) + 1800); // Min. Cooldown: 30 min
.beats = 0;
stopnpctimer;
end;
}
.beats += 1;
initnpctimer;
end;
OnInit:
.distance = 4;
.ticks = gettimetick(2);
.beats = 0;
end;
}
|