summaryrefslogtreecommitdiff
path: root/npc/029-0/event.txt
blob: f4bff0d38771cba22e7e221185d4182e11228107 (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
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Exclusive for Fires of Steam 2021 - When our OVH server datacenter got fire.

029-0,111,37,0	script	Alliance Hero#FoS	NPC_HALBERDBARBARIAN,{
    //function restoreshopitem2;

    // No one is supposed to be able to reach NPC if event did not happen
    if (!$FIRESOFSTEAM) {
        disablenpc .name$;
        die(); end;
    }

    mesn;
    mesq l("I'll someday explain you the history behind the Great Fire. But it won't be now.");
    next;
    mesn;
    mesq l("For now, I'll only tell you this:");
    mesc l("In %d weeks, on Friday, the bi-monthly Bazaar will happen in %s.", BAZAARFREQ - ($BAZAAR_TIMER % BAZAARFREQ), ($BAZAAR_TIMER/BAZAARFREQ%2 ? l("Land of Fire Village") : l("Tulimshar")));
    close;

OnRw:
    logmes(sprintf("%s - Fire Scroll Granted by GM or Admin", getcharid(3)));
    getitembound FireScroll, 1, 1;
    dispbottom l("Jesusalva : \\o/");
    end;

OnInit:
    bindatcmd "steambk", "Alliance Hero#FoS::OnRw", 100, 80, 1;
	tradertype(NST_MARKET);
    .distance=5;
    .sex=G_MALE;

    sleep(SHOPWAIT);

    // NPC_ELMO_ARTIS / NPC_SAPARTAN -> Candor (Sea Food)   OK
    // NPC_OSCAR / NPC_ORC_MAN -> Hurnscald (Shrooms, Woods, Potions, Arrows) OK
    // anyof(244 - 248) indigenous folks -> Halinarzo (Minerals) OK
    // TIKI -> Esperia/Artis (Odd stuff, Rare stuff) OK
    // LOF_TRAVMERC -> LoF (Magic, Science) OK
    // NPC_ELVEN_MAN_TRADER -> Nivalis (Ice, cold) OK
    // NPC_EURNI / NPC_WEIRDSELLER -> Nowhere (Illegal, Contraband Goods) OK
    // NPC_GUGLI -> Tulimshar (Monster Parts and Dyes) OK
    // NPC_LYDON -> Points OK

    // NPC_ARTAXE -> Frostia (Forged Goods)
        // empty warp crystal, equipment (e.g bows)
    sellitem CottonTrousers, 10000, 1;
    sellitem CottonSkirt, 5000, 1;
    sellitem MiniSkirt, 5000, 1;
    sellitem ShortTankTop, 2000, 1;
    sellitem CottonGloves, 15000, 1;
    sellitem CottonBoots, 10000, 1;

    // NPC_QONAN (orc facing right) (Unfortunately, unused)

    if (!$BETASERVER && !debug)
        disablenpc .name$;
    end;

/* Old code no longer in production, from Fires of Steam event

// This version of restoreshopitem gets more expensive when sold out
function restoreshopitem2 {
    if (getarg(2, -1337) == -1337) {
        .@amount=getarg(1);
        .@price=-1;
    } else {
        .@amount=getarg(2);
        .@price=getarg(1);
    }

    if (!shopcount(getarg(0)))
        sellitem getarg(0), .@price*11/10, .@amount;
    else if (shopcount(getarg(0)) < .@amount)
        sellitem getarg(0), .@price, .@amount;
    return;
}
*/
}


003-0-2,34,21,0	script	Alliance Officer	NPC_HALBERDBARBARIAN,{
    mesn;
    mesq l("Good %s, %s. The council is not in session right now.",
          (is_night() ? l("evening") : l("morning")),
          (strcharinfo(0) == $MOST_HEROIC$ ? lg("hero") : lg("peasant")));
    if (($BETASERVER || debug) && BaseLevel < 60 && !REBIRTH && !#BETA_REVIVE) goto L_PowerUp;
    close;

L_PowerUp:
    tutmes l("This is a debug NPC. If you don't know what you're doing, refuse.");
    next;
    mesn strcharinfo(0);
    mesq l("Could you awake my lost and forsaken potential?");
    if (TUTORIAL) mesc l("You whisper a date - 2021-03-11, the %sreal%s date of the %d AT Great Fire.", "[@@https://tmw2.org/news#outage|", "@@]", min(240, gettime(GETTIME_YEAR)-1800)); // Great Fire: 219~240 AT (238 max due to 2038 bug)
    next;
    mesn;
    mesq l("Yes. I can. But this is irreversible. Are you sure you want this?");
    next;
    mesc l("Awake lost potential? This will mess with your char data irreversibly, beware."), 1;
    mesc b(l("New players are strongly DISCOURAGED from using this resource, as it'll close about half of the available quests.")), 1;
    mesc l("Some unique rewards will also be permanently missed."), 1;
    if (askyesno() == ASK_NO) close;
    inventoryplace Iten, 1, NPCEyes, 4;

    mesc l("To prove you are aware of the consequences, answer the riddle below.\nThree great sages were active before the Great Fire broke out. One of them however was no longer active long before the incident. What's his name? Lower case only."), 1;
    input(.@pwd$);
    if (.@pwd$ != "crazyfefe") {
        mesc l("Sorry, that's incorrect. If you do not know the answer, you're likely not the intended audience for this NPC.");
        close;
    }
    // Chose a stage (NO TTL)
    mesc l("Please select where you left off on Main Quest.");
    mesc l("The one with a star (*) is advised.");
    mesc l("It is NOT advised for new players to skip parts of the Main Quest."), 1;
    mesc l("Skipping will FORSAKE rewards for the quest and related; So choose wisely!");
    mes "";
    menuint
        "Nard Quest finished", 1,
        "Lua Quest finished", 3,
        "Airlia Quest finished", 6,
        "Librarian Quest finished", 10,
        "Blue Sage Quest finished", 12,
        "(*) King Gelid Quest complete", 17,
        "Lightbringer/Barbara finished", 19;
    mes "";
    // Save stage
    .@mq = @menuret;

    // IP Blacklist
    if (array_find($@IPBLIST$, getcharip()) < 0)
        array_push($@IPBLIST$, getcharip());

    // Level up
    freeloop(true);
    while (BaseLevel < 60)
        getexp NextBaseExp, 100;
    freeloop(false);

    // Skip a few quests
    setq ShipQuests_Arpan, 5;
    if (.@mq > 10)
        setq NivalisQuest_BlueSage, 12;
    if (.@mq >= 17) {
        sk_lvup(AM_REST);
        sk_lvup(AM_RESURRECTHOMUN);
        sk_lvup(AM_CALLHOMUN);
    }
    if (.@mq >= 18) {
        BARBARA_STATE=any(1, 2, 3);
    }

    // Close some other useful quests WITHOUT reward of any kind
    // This will make some unique items unobtainable and other quests
    // impossible to be finished, but that's something the player accepted.
    setq ShipQuests_Arpan, 5;
    setq LoFQuest_EPISODE, 17;
    setq HurnscaldQuest_Celestia, 6;
    setq LoFQuest_Inspector, 9;
    setq General_EasterEggs, 1, INT_MAX;
    setq TulimsharQuest_DarkInvocator, 7;
    setq HalinarzoQuest_SickWife, 5;
    setq NivalisQuest_Henry, 2;

    // Makes impossible to acquire the Grimorium
    skill TMW2_SKILLPERMIT, 4, 0;

    // Update main quest
    if (getq(General_Narrator) < .@mq)
        setq General_Narrator, .@mq;

    // Monster points
    MPQUEST=true;
    if (!Mobpt)
        Mobpt+=80000;

    // Magic Power
    adddefaultskills();
    if (!MAGIC_LVL) {
        sk_lvup(AL_DP);
        MAGIC_LVL=1;
    }

    // Crafting
    if (!CRAFTQUEST) {
        sk_lvup(TMW2_CRAFT);
        getitembound RecipeBook, 1, 1;
        CRAFTQUEST=true;
    }

    // Free skills
    sk_lvup(TMW2_MANABOMB);
    sk_lvup(any(TMW2_FROSTDIVER, TMW2_NAPALMBEAT, TMW2_MAGICSTRIKE, TMW2_METEORSTRIKE, TMW2_FIREARROW, TMW2_BRAWLING, TMW2_FALKONSTRIKE, TMW2_CHARGEDARROW));

    // Regeneration and misc
    getitem StrangeCoin, 100;
    Zeny+=50000;
    percentheal 100,100;
    mesc l("You awake a long forgotten potential, and feel ready to take over the world.");
    #BETA_REVIVE=true;
    close;

OnInit:
    .distance=4;
    /*
    if (!$BETASERVER && !debug)
        disablenpc .name$;
    */
    end;
}