summaryrefslogtreecommitdiff
path: root/npc/012-1/andrei.txt
blob: 4b00516e9cec86e1dab1c7568759b44420efad7f (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
// TMW-2 Script
// Author:
//    Jesusalva
// Description:
//    Legendary hero

// I started with 'Greetings, citzen' and then I thought on 4144.
// He would never do such formal, hero-ish introduction. So I decided for something
// more realistic, which sounded like a human hero (ie. a normal player).

012-1,75,58,0	script	Andrei Sakar	NPC_ANDREI,{
    mesn l("Andrei Sakar, Legendary Hero");
    if ($NLIB_DAY) goto L_Quizz;

L_Default:
    if (strcharinfo(0) == $MOST_HEROIC$)
        mesq l("Hi, @@.", strcharinfo(0));
    else
        mesq l("Hi.");
    close;

L_Quizz:
    .@q=getq3(Q_NivalisLibday);
    if (.@q == 0) {
        setq3 Q_NivalisLibday, 100;
        .@q=100;
    } else if (.@q > 100) {
        goto L_Default;
    }

    mesq l("We are assembling forces to take Nivalis back.");
    mesq l("I'll make you five questions about lore and general knowledge. You'll have 30 seconds to read and answer each.");
    mesq l("If you finish everything, and answer everything right, you may get a reward.");
    mesq l("If you take too long you'll be penalized.");
    mesq l("Do you want to start?");
    next;
    if (askyesno() == ASK_NO)
        close;

    mes "";
    addtimer(30000, "Andrei Sakar::OnTooLong");
    .@q=getq3(Q_NivalisLibday);
    setq3 Q_NivalisLibday, .@q-7;
    mesn;
    mesq l("Did you really thought I would allow you to read the question answers on the source code?");
    select
        l("Yes."),
        l("You really should."),
        l("Of course."),
        l("It was worth the shot.");
    mes "";
    deltimer("Andrei Sakar::OnTooLong");
    if (@menu == 4) {
        .@q=getq3(Q_NivalisLibday);
        setq3 Q_NivalisLibday, .@q+7;
        mesn;
        mesq l("That's right.");
        next;
    } else {
        mesn;
        mesq l("Sorry, but that's wrong.");
        close;
    }


    mesn;
    .@q=getq3(Q_NivalisLibday);
    // You cannot go above 100 points.
    if (.@q > 100) {
        mesq l("...More bugs.");
        mesc l("A bug was found. Aborting script."), 1;
        close;
    } else if (.@q == 100) {
        mesq l("Congratulations. You really know about the world lore.");
        getitem HastePotion, 2;
        getitem StrengthPotion, 2;
        getitem Bread, 5;
    } else if (.@q > 90) {
        mesq l("Outstanding. Congratulations.");
        getitem HastePotion, 2;
        getitem StrengthPotion, 2;
        getitem Bread, 4;
    } else if (.@q > 75) {
        mesq l("Good, knowing the world lore is important.");
        getitem HastePotion, 1;
        getitem StrengthPotion, 1;
        getitem Bread, 4;
    } else if (.@q > 50) {
        mesq l("Good job.");
        getitem HastePotion, 1;
        getitem StrengthPotion, 1;
        getitem Bread, 2;
    } else if (.@q > 25) {
        mesq l("Well, that was bad, but at least you know a bit from story.");
        getitem Bread, 2;
    } else if (.@q > 0) {
        mesq l("Terrible. You know almost nothing from world lore...");
        getitem Bread, 1;
    } else {
        mesq l("You really should read the dialogs.");
    }
    // If you got a negative value, this will default to 1.
    getexp .@q*BaseLevel, .@q*JobLevel;
    setq3 Q_NivalisLibday, 9999;
    close;

OnTooLong:
    .@q=getq3(Q_NivalisLibday);
    setq3 Q_NivalisLibday, .@q-21;
    npctalk3 l("You took too long to answer.");
    close;

OnInit:
    .sex = G_MALE;
    .distance = 5;
    end;

}