summaryrefslogtreecommitdiff
path: root/world/map/npc/functions/gm_island.txt
blob: e2763bbf213de9ae193533aebc4c4adde182b522 (plain) (blame)
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
// Add Localized Warp in town centers and Message to GM Island
-|script|#GmConfig|32767
{
    end;

OnInit:
    disablenpc "Gm Event#1";
    disablenpc "Gm Event#2";
    disablenpc "Gm Event#3";
    end;
}
-|script|#Puppet|32767
{
    mes "You found me! Now please send my coordinates to staff.";
    close;

OnSpawn:
    if (GM < G_SYSOP) goto L_GM;
    callfunc "argv_splitter";
    if (@argv$[4] == "") goto L_Failed;
    set $@PMAP$, @argv$[0];
    set $@PX, @argv$[1];
    set $@PY, @argv$[2];
    set $@PNAME$, @argv$[3];
    set $@PNPC, @argv$[4];
   if (puppet($@PMAP$, $@PX, $@PY, $@PNAME$, $@PNPC) > 0)
            gmlog "@puppeter " + @args$;
    set $@PMAP$, "";
    set $@PX, 0;
    set $@PY, 0;
    set $@PNAME$, "";
    set $@PNPC, 0;
    end;

L_Failed:
    message strcharinfo(0), "Syntax: @puppeter MAP X Y NAME NPCID";
    end;

L_GM:
    message strcharinfo(0), "puppeter : GM command is level "+ G_SYSOP +", but you are level " + GM;
    end;

OnInit:
    registercmd chr(ATCMD_SYMBOL) + "puppeter", strnpcinfo(0)+"::OnSpawn";
    end;
}
function|script|GmWarp
{
    if ($@GM_EVENT_WARP == 1) warp "028-1", 110, 30;
    if ($@GM_EVENT_WARP == 2) warp "028-1", 119, 74;
    if ($@GM_EVENT_WARP == 3) warp "028-3", 68, 36;
    if ($@GM_EVENT_WARP == 4) warp "001-3", 0, 0;
    if ($@GM_EVENT_WARP == 5) warp "070-1", 30, 92;
    if ($@GM_EVENT_WARP == 6) warp "070-3", 60, 63;
    if ($@GM_EVENT_WARP == 7) warp "003-1", 44, 94;
    return;
}
function|script|GmDebug
{
    mes "[GM Debug]";
    mes "What do you want to do?";
    menu
        "Open Event Portals.", L_GmChoose,
        "Close Event Portals.", L_GmStop,
        "Disguise.", L_Disguise;

L_GmChoose:
    mes "Choose a destination:";
    menu
        "GM Island (entrance)", L_GmStart,
        "GM Island (auditorium)", L_GmStart,
        "GM Island (cave)", L_GmStart,
        "Tulimshar Arena", L_GmStart,
        "Underworld", L_GmStart,
        "The Abyss", L_GmStart,
        "2006 Tulimshar", L_GmStart;

L_GmStart:
    set $@GM_EVENT_WARP, @menu;
    enablenpc "Gm Event#1";
    enablenpc "Gm Event#2";
    enablenpc "Gm Event#3";
    return;

L_GmStop:
    disablenpc "Gm Event#1";
    disablenpc "Gm Event#2";
    disablenpc "Gm Event#3";
    return;

L_Disguise:
    npcaction 9;
    mes "[GM Debug - Disguise]";
    mes "The Disguise function allows GMs to disguise themselves as mobs or npcs.";
    mes "---";
    mes "Mob IDs: [@@https://www.themanaworld.org/index.php/Monster_Reference|Monster Reference@@]";
    mes "You can either logout or use id ##B0##b to reset.";
    mes "---";
    mes "Please input the mob ID:";
    input @disguise_id;
    if (@disguise_id < 1000 || @disguise_id > 32767)
        goto L_ResetClass;
    mes "Your disguise has been changed.";
    if (Class <= 5)
        set @old_class, Class;
    set Class, @disguise_id;
    mes "";
    mes "For technical reasons, you are not able to see your own disguise, but other players will see it.";
    return;

L_ResetClass:
    mes "Your appearance has been reset.";
    set Class, if_then_else(@old_class, @old_class, 1);
    callfunc "fixHeadStyles";
    return;
}
001-1,49,68,0|script|Gm Event#1|368,0,0
{
    callfunc "GmWarp";
    end;
}
009-1,46,30,0|script|Gm Event#2|368,0,0
{
    callfunc "GmWarp";
    end;
}
020-1,67,89,0|script|Gm Event#3|368,0,0
{
    callfunc "GmWarp";
    end;
}