summaryrefslogtreecommitdiff
path: root/npc/commands/music.txt
blob: 812e1f46507bd501847a7f5c68375027f0aa29f7 (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
// Authors: Gumi, Jesusalva
// @music atcommand
// changes the music for all players on the map
//
// group lv: 80
// group char lv: 80
// log: True
//
// usage:
//    @music <short name>
//
// example:
//    @music forest

-	script	@music	32767,{
    end;

function listMusic {
    dispbottom "ship, city, ghoul, surreal, magic, forest, mythica, acid, misuse, prelude, sunrise, peace, peace2, peace3, toast, woodland2";
    dispbottom "unforgiving, deepcave, 8bit, action, hurns, fields, tulim, candor, lof, icecave, manacave, adventure, dance, academy, shrine, boss, ruins";
    return;
}

OnCall:
    if (!is_gm()) {
        end;
    }

    // TODO: tmw-like argv splitter
    getmapxy .@map$, .@void, .@void, UNITTYPE_PC; // get map

    .@key$ = strtolower(.@atcmd_parameters$[0]);
    .@m$ = htget(.hash, .@key$, "Not found");

    if (.@m$ == "Not found") {
        //.@m$ = implode(.@atcmd_parameters$[0], " ");
        dispbottom "Invalid music key. Current accepted values are:";
        listMusic();
    } else {
        changemusic .@map$, .@m$;
    }
    end;

OnMyself:
    .@key$ = strtolower(.@atcmd_parameters$[0]);
    .@m$ = htget(.hash, .@key$, "Not found");

    if (.@m$ == "Not found") {
        //.@m$ = implode(.@atcmd_parameters$[0], " ");
        dispbottom l("Invalid music key. Current accepted values are:");
        listMusic();
    } else {
        //debugmes "Casting with: %s", .@m$;
        changeplayermusic .@m$;
    }
    end;

OnInit:
    bindatcmd "music", "@music::OnCall", 60, 80, 1;
    bindatcmd "mymusic", "@music::OnMyself", 1, 80, 1;

    .hash = htnew; // create hashtable
    htput(.hash, "ship",       "sail_away.ogg");
    htput(.hash, "city",       "bartk_adventure.ogg");
    htput(.hash, "ghoul",      "eric_matyas_ghouls.ogg");
    htput(.hash, "surreal",    "eric_matyas_surreal.ogg");
    htput(.hash, "magic",      "magick_real.ogg");
    htput(.hash, "forest",     "dariunas_forest.ogg");
    htput(.hash, "mythica",    "mythica.ogg");
    htput(.hash, "acid",       "3b5.ogg");
    htput(.hash, "misuse",     "misuse.ogg");
    htput(.hash, "prelude",    "water_prelude.ogg");
    htput(.hash, "sunrise",    "tws_birds_in_the_sunrise.ogg");
    htput(.hash, "peace",      "peace.ogg");
    htput(.hash, "peace2",     "peace2.ogg");
    htput(.hash, "peace3",     "peace3.ogg");
    htput(.hash, "toast",      "dragon_and_toast.ogg");
    htput(.hash, "woodland2",  "New_Woodlands.ogg");
    htput(.hash, "unforgiving","Unforgiving_Lands.ogg");
    htput(.hash, "deepcave",   "Deep_Cave.ogg");
    htput(.hash, "8bit",       "8bit_the_hero.ogg");
    htput(.hash, "action",     "Arabesque.ogg");
    htput(.hash, "hurns",      "caketown.ogg");
    htput(.hash, "fields",     "woodland_fantasy.ogg");
    htput(.hash, "icecave",    "icecave.ogg");
    htput(.hash, "tulim",      "mvrasseli_nochains.ogg");
    htput(.hash, "candor",     "school_of_quirks.ogg");
    htput(.hash, "lof",        "steam.ogg");
    htput(.hash, "adventure",  "tmw_adventure.ogg");
    htput(.hash, "manacave",   "tws_green_island.ogg");
    htput(.hash, "dance",      "dance_monster.ogg");
    htput(.hash, "academy",    "academy_bells.ogg");
    htput(.hash, "shrine",     "Misty_Shrine.ogg");
    htput(.hash, "boss",       "let_the_battles_begin.ogg");
    htput(.hash, "ruins",      "Ruins.ogg");
}