summaryrefslogtreecommitdiff
path: root/npc/011-1/manastone.txt
blob: 3d8df2b5efc21ad93d9296ed697d533fabcc640a (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
// TMW2 Script
// Author:
//  Jesusalva
// Description:
//  The last Mana Stone in the whole world, which is not owned by the Magic Council
//  or the Monster King.
//  It actually hates (or rather, fears) everybody, and is not always willing to
//  talk with people. May hide itself within the walls during these occasions.
//  It may not hate some very specific things which are lore-related.
//
//  Notes: During sieges, Monster King and Human Council apparitions, it may hide
//  itself.
//
//  Variables:
//      $MANA_BINT => Base Intelligence for Mana Stone
//      $MANA_BLVL => Base Level for Mana Stone
//      $MANA_JLVL => Base Job Level for Mana Stone
//      .int       => Int Increment
//      .lvl       => Lvl Increment
//      .jlvl      => Jlv Increment

011-1,0,0,0	script	Mana Stone	NPC_MANA_STONE,{
    function dearLord;

    if (BaseLevel < $MANA_BLVL) goto L_NotWorthy;
    mesn;
    mes l("The mighty Mana Stone does not reacts against you.");
    mes l("Although this particular one seems to hate everyone and everything, it recognizes your strength.");
    mes l("If you fell ready, perhaps you should touch it?");
    mes "";
    menu
        l("Touch it!"), L_Level,
        l("Take it!"), L_NotWorthy2,
        l("Break it!"), L_NotWorthy2,
        l("Leave it alone!"), -;
    close;



L_NotWorthy2:
    if (is_gm()) movenpc .name$, 20+rand(150), 20+rand(150);
    if (is_gm()) close;
    npctalk3 l("You are not worthy!");
    percentheal -20, -50;
    if (!MAGIC_LVL)
        dispbottom l("I should train my intelligence, have full MP, and don't neglect even Job Level.");
    end;

L_Level:
    // See functions/util.txt for *mstone() details
    if (mstone(0)) goto L_LevelUp;
    if (mstone(1)) goto L_LevelUp;
    if (mstone(2)) goto L_LevelUp;
    if (mstone(3)) goto L_LevelUp;
    if (mstone(4)) goto L_LevelUp;
    if (mstone(5)) goto L_LevelUp;
    if (mstone(6)) goto L_LevelUp;
    if (MAGIC_LVL >= 7) dearLord();
    if (MAGIC_LVL >= 7) npctalk3 l("You already got all power I could grant you!");
    if (is_gm()) percentheal -20, -50;
    if (MAGIC_LVL >= 7 || is_gm()) close;

L_NotWorthy:
    if (readparam(Sp) != readparam(MaxSp))
        dispbottom l("I must have full MP to touch it... Which I don't.");
    else
        dispbottom l("I should train my intelligence, and level up, both my base as my Job Level.");
    npctalk3 l("You are not worthy!");
    percentheal min(-10, -70+BaseLevel), min(-10, -100+BaseLevel);
    end;

L_LevelUp:
    mes "";
    mes l("A great rush of mana flows though you.");
    if (!MAGIC_LVL) mes l("Magic Power is granted to you, but you die from it.");
    if (MAGIC_LVL) mes l("More Magic Power is granted to you, but you die from it.");
    MAGIC_LVL = MAGIC_LVL+1;
    sk_lvup(AL_DP);
    // No penalty for death provoked by Mana Stone, see npc/001-8/hub.txt for more info
    sc_start SC_CASH_DEATHPENALTY, 1000, 1;
    /*
    @deathpenalty_realvalue=readparam(BaseExp);
    @deathpenalty_realvaljob=readparam(JobExp);
    @deathpenalty_override=1;
    */
    die();
    close;

function dearLord {
    if ($MANASTONE_WINNER$ == "") {
        $MANASTONE_WINNER$=strcharinfo(0);
        channelmes("#world", $MANASTONE_WINNER$+" is the first player to reach "+get_race()+"'s magic limit since the Monster King! %%N");
        announce "All hail ##B"+$MANASTONE_WINNER$+"##b, first to reach "+get_race()+"'s magic limit since the Monster King! %%N", bc_all|bc_npc;
        getexp 0, 2000;
        getitem SupremeGift, 1;
        mesc l("CONGRATULATIONS! You are the first player to harness all power the Mana Stone would willingly give!"), 2;
        mesc l("You just gained a Supreme Gift, and 2000 Job Exp for your bravery!"), 2;
        next;
    }
    return;
}

OnInit:
    movenpc .name$, 20+rand(150), 20+rand(150);
    .sex = G_OTHER;
    .distance = 6;
    end;

OnClock0030:
OnClock0120:
OnClock0210:
OnClock0300:
OnClock0450:
OnClock0540:
OnClock0630:
OnClock0720:
OnClock0810:
OnClock0900:
OnClock1050:
OnClock1140:
OnClock1230:
OnClock1320:
OnClock1410:
OnClock1500:
OnClock1650:
OnClock1740:
OnClock1830:
OnClock1920:
OnClock2010:
OnClock2100:
OnClock2250:
OnClock2340:
    npctalk "Those who are worthy, may get my magic. For the others, death awaits!";
    movenpc .name$, 20+rand(150), 20+rand(150);
    end;
}