summaryrefslogtreecommitdiff
path: root/npc/commands/kami.txt
blob: 8a7622d2aaeafeadfd143373741cf9381eef0894 (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
// 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;

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;

OnBuff:
    if (playerattached())
        .@n$ = strtoupper(strcharinfo(0));
    else
        .@n$ = "THE MANA TREE";
    // 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 %s", .@n$);
        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 "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;
}