summaryrefslogtreecommitdiff
path: root/npc/functions/class.txt
blob: 1a5412ffdc7e8fc02d7b662ed9df8c6965a92663 (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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
// TMW-2 Script
// Author:
//    Saulc
//    Jesusalva
//  Description:
//    Handles Colin and Luca. They say exactly the same things, afterall.

// ClassID, ClassName, OtherClass, sk1,
function	script	ClassMaster	{
    .@CLASS=getarg(0);
    .@CNAME=getarg(1);
    .@OTHER=getarg(2);
    //.name$=strnpcinfo(1);

    // Skills
    .@SK_T1=getarg(3);
    mesn;
    mesq l("I am the @@ master.", .@CNAME);
    if (!MAGIC_LVL) goto L_NoMagic;
    if (getskilllv(.@OTHER) && !is_admin()) close;

    if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 0) goto L_Tier2;
    if (getskilllv(.@CLASS) == 1 && MAGIC_LVL >= 2 && ST_TIER == 1) mes col("...Where is the recipe for the potion? Ah, I lost it...", 9);

    // Sanity check
    if (getskilllv(.@SK_T1) >= 1) mesq l("Are you using my skill?");
    if (getskilllv(.@SK_T1) >= 1) close;

    if (getskilllv(.@CLASS) == 0) goto L_SignUp;
    close;

L_SignUp:
    next;
    mesn;
    mesq l("You have some magic power. Do you want to join the Magic Warriors? ##BThis cannot be undone##b.");
    next;
    mesn;
    mesq l("We use swords and bows to protect the people, and we use magic to spice things up! Because we're strong even without it!");
    next;
    menu
        l("What do I need to do to join?"), L_JoinReq,
        l("I'm not interested, sorry."), -;
    close;

L_JoinReq:
    mesn;
    mesq l("Ah, nothing too major, as you already have magic.");
    next;
    mesn;
    mesq l("We only require a small fee of 1 @@, or 40 @@", getitemlink(DivineApple), getitemlink(SnakeEgg));
    next;
    switch(select(
        rif(countitem(DivineApple) >= 1, l("I got the apple.")),
        rif(countitem(SnakeEgg) >= 40, l("I got the eggs.")),
        l("I will apply later."))) {

        case 1:
            delitem DivineApple, 1;
            goto L_Tier1Ok;
            break;
        case 2:
            // If player had 40 eggs, and eat 1 - they are clearly cheating.
            // It will delete all 39 eggs, and when it tries to delete the 40th,
            // it won't find and will terminate the script. No lame cheating.
            // Of course, all 39 eggs are gone for and I can't do anything about it.
            delitem SnakeEgg, 40;
            goto L_Tier1Ok;
            break;
        default:
            break;
    }

    close;

L_Tier1Ok:
    // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1.
    skill(.@SK_T1,1,0);
    skill(.@CLASS,1,0);
    mes "";
    mesn;
    mesq l("Here, learn the ##BFalkon Punch##b. It is on Physical skills tab. You can drag it to the shortcut list. Use it to protect people!");
    close;

L_NoMagic:
    next;
    mesn;
    mesq l("Your lack of magical power is critical. I dare say, you might never in your life get access to a Mana Stone.");
    next;
    mesn;
    mesq l("Besides the Magic Council, Andrei Sakar have his own Mana Stone, but I doubt he would train the likes of you, or share his Mana Stone.");
    next;
    mesn;
    mesq l("Perhaps, in the city, someone knows rumors about Mana Stones and can teach you. Other than that, you're on your own.");
    close;

// progressbar("<color>", <seconds>)
// Script will be canceled if character moves :D
// So I probably could *try* to reuse TMW-BR Magic Tier 2 Scripts.
L_Tier2:
    next;
    mesn;
    mesq l("Wha, your magic power increased! How?! Ah, nevermind. You are eligible to get tier 2!");
    next;
    mesn;
    mesq l("But whoa, not so fast! You must pass the seven steps of a trial first!");
    next;
    mesn;
    mesq l("The first trial is simple, I'm not doing anything in special. Bring me 1 @@, or 20 @@ and 20 @@.", getitemlink(DivineApple), getitemlink(SilkCocoon), getitemlink(ChocolateMouboo));
    next;
    switch(select(
        rif(countitem(DivineApple) >= 1, l("I got the apple.")),
        rif(countitem(SilkCocoon) >= 20 && countitem(ChocolateMouboo) >= 20, l("I got the silk and chocolate.")),
        l("I will apply later."))) {

        case 1:
            delitem DivineApple, 1;
            goto L_Tier2Ok;
            break;
        case 2:
            delitem SilkCocoon, 20;
            delitem ChocolateMouboo, 20;
            goto L_Tier2Ok;
            break;
        default:
            break;
    }

    close;

L_Tier2Ok:
    // The last argument is duration: 0 - permanent 1- temporary. If omitted, defaults to 1.
    addtoskill(.@SK_T1,1,0);
    getexp 10000, 0;
    ST_TIER=1;
    mes "";
    mesn;
    mesq l("Good, good. The skill you got earlier just raised a single level. I'll also impair some experience on you, no biggies.");
    next;
    mesn;
    mesq l("Now, the real challenge will start. You have a lot of raw power, but that doesn't gives you a lot of skills to learn.");
    next;
    mesn;
    mesq l("I can make a nice, simple potion for you. Once you drink it, the raw mana will settle on your body.");
    next;
    mesn;
    mesq l("However, beware! That potion is short-lived, you'll be running against time. Get ready to travel a lot.");
    next;
    mesn;
    mesq l("Come talk to me when you're ready, and we can begin.");
    close;

L_T2_S1:
    addtoskill(.@CLASS,1,0);
    getexp 40000, 0; // Yes, 40k experience points. Waw.
    close;

}