summaryrefslogtreecommitdiff
path: root/npc/other/CashShop_Functions.txt
blob: 0dba23f60fd490aa40aff711e2a8365c9e3e3149 (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
//===== eAthena Script ======================================= 
//= Cash Shop  Functions
//===== By: ================================================== 
//= L0ne_W0lf
//===== Current Version: ===================================== 
//= 1.0
//===== Compatible With: ===================================== 
//= eAthena SVN
//===== Description: ========================================= 
//= Used explicitly in the Item Database for Cash shop items
//= - Kafra Card
//= - Giant Fly Wing
//= - Neuralizer
//= - Dungeon Teleport Scroll
//===== Additional Comments: ================================= 
//= 1.0 First version. [L0ne_W0lf]
//=	F_CashPartyCall Optimized by Trancid.
//============================================================ 

// Kafra Card
//============================================================ 
// - Open player's storage.
// - No arguments.
function	script	F_CashStore	{
	cutin "kafra_01",2;
	mes "[Kafra Employee]";
	mes "Welcome to the Kafra Corporation.";
	mes "Here, let me open your Storage for you.";
	close2;
	openstorage;
	cutin "",255;
	return;
}


// Giant Fly Wing
//============================================================ 
// - Warp party leader to random spot on the map.
// - Summon Party members on party leader map to that location.
// - No arguments.
function	script	F_CashPartyCall	{
	warp "Random",0,0;
	if(getpartyleader(getcharid(1),2) == getcharid(0)) {
		getmapxy .@mapl$, .@xl, .@yl, 0;
		getpartymember getcharid(1);
		set .@partymembercount, $@partymembercount;
		copyarray .@partymembername$[0], $@partymembername$[0], .@partymembercount;
		for(set .@i, 0; .@i < .@partymembercount; set .@i, .@i + 1)
		if(!(getmapxy(.@mapm$, .@xm, .@ym, 0, .@partymembername$[.@i])) && (.@mapm$ == .@mapl$))
		warpchar .@mapl$, .@xl, .@yl, getcharid(0, .@partymembername$[.@i]);
	}
	return;
}

// Neuralizer
//============================================================ 
// - Reset players skills. Weight must be 0, options must be off.
// - No arguments.
function	script	F_CashReset	{
	if (Class != Job_Novice) {
		if (Weight < 1) { 
			if (checkriding() || checkfalcon() || checkcart()) return;
			else {
				resetskill;
				sc_end SC_ALL;
			}
		}
	}
	return;
}

// Dungeon Teleport Scroll
//============================================================ 
// - Warp player to random location of selected dungeon
//   due to lack of information.
// - No arguments.
function	script	F_CashDungeon	{
	switch(select("Nogg Road:Mjolnir Dead Pit:Umbala Dungeon:Einbroch Mine Dungeon:Payon Dungeon:Toy Dungeon:Glast Heim Underprison:Louyang Dungeon:Hermit's Checkers:Izlude Dungeon:Turtle Island Dungeon:Clock Tower B3f:Clock Tower")) {
	case 1: warp "mag_dun01",0,0; end;
	case 2: warp "mjolnir_02",0,0; end;
	case 3: warp "um_dun01",0,0; end;
	case 4: warp "ein_dun01",0,0; end;
	case 5: warp "pay_dun00",0,0; end;
	case 6: warp "xmas_dun01",0,0; end;
	case 7: warp "gl_prison",0,0; end;
	case 8: warp "lou_dun01",0,0; end;
	case 9: warp "gon_dun02",0,0; end;
	case 10: warp "iz_dun00",0,0; end;
	case 11: warp "tur_dun02",0,0; end;
	case 12: warp "alde_dun03",0,0; end;
	case 13: warp "c_tower1",0,0; end;
	}
	return;
}

// Cities Teleport Scroll
//============================================================ 
// - Warp player to differents Citys acording to the Scroll
// - Arg(0) = type of scroll.
function	script	F_CashCity	{
	switch(getarg(0))
	{
		// Yellow
		case 1: switch(select("Prontera:Geffen:Payon:Morroc:Aldebaran:Alberta")) {
			case 1: warp "prontera",0,0; end;
			case 2: warp "geffen",0,0; end;
			case 3: warp "payon",0,0; end;
			case 4: warp "morocc",0,0; end;
			case 5: warp "aldebaran",0,0; end;
			case 6: warp "alberta",0,0; end;
			}
		break;
		// Green
		case 2: switch(select("Juno:Lighthalzen:Einbroch:Hugel")) {
			case 1: warp "yuno",0,0; end;
			case 2: warp "lighthalzen",0,0; end;
			case 3: warp "einbroch",0,0; end;
			case 4: warp "hugel",0,0; end;
			}
		break;
		// Red
		case 3: switch(select("Rachel:Veins")) {
			case 1: warp "rachel",0,0; end;
			case 2: warp "veins",0,0; end;
			}
		break;
		// Blue
		case 4: switch(select("Ayothaya:Amatsu:Louyang:Gonryun")) {
			case 1: warp "ayothaya",0,0; end;
			case 2: warp "amatsu",0,0; end;
			case 3: warp "louyang",0,0; end;
			case 4: warp "gonryun",0,0; end;
			}
		break;
	}
	return;
}