summaryrefslogtreecommitdiff
path: root/npc/024-16/generals.txt
blob: 368597e98f50b404d1e644b7280653c6c75b6877 (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
// TMW2 scripts.
// Authors:
//    Jesusalva
// Description:
//    Generals

// FrostiaTaskMaster(lvl)
function	script	FrostiaTaskMaster	{
	.@q=General_MobHunting4;
	.@q1=getq(General_MobHunting4);
	.@q2=getq2(General_MobHunting4);
	.@q3=getq3(General_MobHunting4);
	.@d=gettimeparam(GETTIME_DAYOFMONTH);
	.@lv=getarg(0, 1);
    // It's a new day, so we must generate a new quest!
    if (.@q1 != .@d) {
        .@q1=.@d;
        .@q2=any(Moggun, IcedFluffy, Fluffy, Pollet, BlueSlime, WhiteSlime, SantaSlime, AzulSlime, RudolphSlime); // WaterFairy
        setq .@q, .@q1, .@q2, 0;
    }

    // Maybe you finished the quest?
    if (.@q3 >= 100) {
        mesn;
        mesq l("Good job, you've killed the 100 @@ and reported back in time!", getmonsterlink(.@q2));
        next;
        mesn;
        mesq l("It's not much of a reward, but doesn't it feels great to help others in need?! HAHAHA!");
        Zeny+=.@lv;
        getexp BaseLevel*.@lv, .@lv;
        setq2 .@q, 0;
        return false;
    }

    // Maybe there is no monster to kill
    if (!.@q2) {
        mesn;
        mesq l("You've already completed this quest today. Try again tomorrow.");
        return true;
    }

    mesn;
    mesq l("So, please kill @@/100 @@ for us and make the world a safer place!", .@q3, getmonsterlink(.@q2));
    return false;
}

// FrostiaGeneralQuest( Skillname )
function	script	FrostiaGeneralQuest	{
	.@at$=getarg(0);
	mesn;
	mesq l("Hey. You there. Time to do @@ and show what you're made of.", .@at$);
	next;
	mesn;
	mesq l("If you conclude the training, you'll be suitable for the difficult mission our King have to you.");
	next;
    mesc b(l(".:: Main Quest 4-3 ::.")), 3;
    msObjective(BaseLevel >= 52, l("* @@/@@ Base Level", BaseLevel, 52));
    msObjective(JobLevel >= 24, l("* @@/@@ Job Level", JobLevel, 24));
	//msObjective(JobLevel >= 24, l("* Win an Arena Match"));
	next;
	if (BaseLevel >= 52 && JobLevel >= 24) {
		mesn;
		mesq l("Congrats, you did it.");
		next;
		inventoryplace ElixirOfLife, 1, MercCard_Saulc, 1;
		mesn;
		mesq l("Take this @@. It might save your life on the secret mission you're about to be assigned to.", getitemlink(MercCard_Saulc));
		next;
		mesn;
		mesq l("Now go talk to the King.");
		setq General_Narrator, 15;
		getitem MercCard_Saulc, 1;
		getitem ElixirOfLife, 1;
		getexp 0, 400; // Get 10% JEXP. Reference: 3988~5564
		close;
	}
	mesn;
	mesq l("Now, a simple @@ quest to make you stronger...", .@at$);
	next;
	if (FrostiaTaskMaster(20)) {
		next;
		mesn;
		mesq l("Or maybe... You want to try again right now? I'll do whatever needed to level you up to less-noobish levels.");
		next;
		if (askyesno() == ASK_YES) {
			setq General_MobHunting4, 0, 0, 0;
			FrostiaTaskMaster(20);
		}
	}
	close;
}

//////////////////////////////////////////////////////////////////////
024-16,29,21,0	script	Wizard General	NPC_BLUESABER,{
	.@q=getq(General_Narrator);
	if (.@q == 14)
		FrostiaGeneralQuest("Magic");
	else
		FrostiaTaskMaster(20);
	close;

OnInit:
    .distance=5;
    end;
}

024-16,31,21,0	script	Warrior General	NPC_REDSABER,{
	.@q=getq(General_Narrator);
	if (.@q == 14)
		FrostiaGeneralQuest("Fight");
	else
		FrostiaTaskMaster(20);
	close;

OnInit:
    .distance=5;
    end;
}