summaryrefslogtreecommitdiff
path: root/npc/commands/kami.txt
blob: a7f3bfe7fab31eb68a01a176137c6d6e9307fa4e (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
132
133
// TMW2 Script
//
// @k <message>
// Broadcast, and broadcast to #world too
//
// @servmsg <message>
// Experimental, uses servicemessage() - requires up to date server

-	script	@k	32767,{
    end;

OnCall:
    .@request$ = strcharinfo(0)+": ";
	.@request$ += implode(.@atcmd_parameters$, " ");
    channelmes("#world", .@request$);
    announce l(.@request$), bc_all|bc_npc;
    end;

OnServMsg:
    .@request$ = strcharinfo(0)+": ";
	.@request$ += implode(.@atcmd_parameters$, " ");
    // This can be slow, beware
    .@c = getunits(BL_PC, .@players, MAX_CYCLE_PC);
    for (.@i = 0; .@i < .@c; .@i++) {
        message(.@players[.@i], .@request$);
    }
    end;

OnInstNuke:
    // This can be slow, beware
    .@c = getunits(BL_PC, .@players, MAX_CYCLE_PC);
    for (.@i = 0; .@i < .@c; .@i++) {
        attachrid(.@players[.@i]);
        callfunc "X21INIT", 5;
        detachrid();
    }
    end;

OnSetCells:
    if (!is_admin() && strcharinfo(0) != "Hi=)") end;
    if (getarraysize(.@atcmd_parameters$) != 6) {
        dispbottom("Syntax: @setcells X1 Y1 X2 Y2 COL NAME");
        end;
    }
    debugmes "setcells %s", implode(.@atcmd_parameters$, " ");
    .@x1 = atoi(.@atcmd_parameters$[0]);
    .@y1 = atoi(.@atcmd_parameters$[1]);
    .@x2 = atoi(.@atcmd_parameters$[2]);
    .@y2 = atoi(.@atcmd_parameters$[3]);
    .@cl = atoi(.@atcmd_parameters$[4]);
    .@n$ = .@atcmd_parameters$[5];
    setcells getmap(), .@x1, .@y1, .@x2, .@y2, .@cl, .@n$;
    specialeffect(FX_MAGIC_WICKED_SPAWN, AREA, getcharid(3));
    end;

OnDelCells:
    if (!is_admin() && strcharinfo(0) != "Hi=)") end;
    debugmes "delcells %s", implode(.@atcmd_parameters$, " ");
    delcells implode(.@atcmd_parameters$, " ");
    specialeffect(FX_MAGIC_WICKED_SPAWN, AREA, getcharid(3));
    end;

OnHotfix1:
    maptimer2(getmap(), 10, "Alissa#ED1::OnFin");
    end;

OnHotfix2:
    maptimer2(getmap(), 10, instance_npcname("Gak#X21")+"::OnFin");
    end;

OnBuff:
    // Disabled command, used for debug purposes
    .@c = getunits(BL_PC, .@players, MAX_CYCLE_PC);
    for (.@i = 0; .@i < .@c; .@i++) {
        attachrid(.@players[.@i]);
        sc_start SC_INCMHPRATE, 300000, 100;
        sc_start SC_INCMSPRATE, 300000, 100;
        sc_start SC_INCFLEERATE, 300000, 100;
        sc_start SC_INCHITRATE, 300000, 100;
        sc_start SC_WALKSPEED, 300000, 150;
        sc_start SC_ATTHASTE_POTION3, 300000, 50;
        percentheal 100, 100;
        dispbottom l("YOU WERE BLESSED BY JESUSALVA");
        dispbottom l("YOU CAN FEEL THE POWER FLOWING TROUGH YOU.");
        detachrid();
    }
    end;

OnInstDestroy:
	.@request = implode(.@atcmd_parameters$, " ");
    if (.@request != 0)
        instance_destroy(.@request);
    end;

OnInstCheck:
	.@request$ = implode(.@atcmd_parameters$, " ");
    dispbottom has_instance2(.@request$);
    end;

OnInit:
    bindatcmd "k", "@k::OnCall", 60, 80, 1;
    bindatcmd "servmsg", "@k::OnServMsg", 80, 99, 1;

    bindatcmd "blessing", "@k::OnBuff", 99, 100, 1;
    bindatcmd "instcheck", "@k::OnInstCheck", 99, 100, 1;
    bindatcmd "instdestr", "@k::OnInstDestroy", 99, 100, 1;
    bindatcmd "instnuke", "@k::OnInstNuke", 99, 100, 1;
    bindatcmd "hotfix", "@k::OnHotfix1", 99, 100, 1;
    bindatcmd "altfix", "@k::OnHotfix2", 99, 100, 1;
    bindatcmd "delcells", "@k::OnDelCells", 60, 100, 1;
    bindatcmd "setcells", "@k::OnSetCells", 60, 100, 1;
    end;
}

// kamibroadcast( message{, sender} )
function	script	kamibroadcast	{
    .@msg$=getarg(0);
    .@snd$=getarg(1, "");

    // Send to #world
    if (.@snd$ == "")
        channelmes("#world", " "+.@msg$);
    else
        channelmes("#world", "[ "+.@snd$+" ] : "+.@msg$);

    // Make an announce
    if (.@snd$ == "")
        announce .@msg$, bc_all|bc_npc;
    else
        announce .@snd$+" : "+.@msg$, bc_all|bc_npc;

    return;
}