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
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232 | //===== Cronus Script =======================================
//= Guerra de Emperium - Arquivo Principal
//===== Por: ================================================
//= L0ne_W0lf
//===== Versão Atual: =======================================
//= 3.0
//===== Compatível com: =====================================
//= Cronus SVN
//===== Descrição: ==========================================
//= ---------------------------------------------------------
//= - ESSE ARQUIVO É NECESSÁRIO PARA FUNÇÕES DOS CASTELOS
//= ---------------------------------------------------------
//= - Habilita Gerente dentro dos Castelos das Guilds.
//= Nome obrigátorio visível: Agit
//= Controla diversas funções usadas dentro e fora da WoE.
//=
//= - Habilita mordomos dentro dos Castelos das Guilds que vão investir
//= na Defesa e na Economia, e invocar os guardiões, a Kafra, e entrada
//= da Sala do Mestre.
//=
//= - Modelo de Invocação dos Guardiões
//= Nome obrigátorio visível: Guardian
//= Invoca guardiões do Castelo quando seus dados são recebidos.
//=
//= - Habilita o Serviços Kafra dentro dos Castelos.
//= Nome obrigátorio visível: Kafra Staff
//= Armazém, Armazém da Guild, Serviço de Teleporte, Alugel de Carrinho.
//=
//= - Sala do Tesouro Treasure Room Protection and Chest spawning.
//= Chests will NOT be saved anymore in the event of crashes.
//= Treasures will NOT spawn on a location that already has
//= treasure chest spawned.
//===== Comentários Adicionais: ==============================
//= 2.0 Puxado e traduzido o script para Português-BR [Asus]
// - O changelog original, se encontra no fim do arquivo
//= 2.1 Script corrigido [Minos & Soulblaker]
//= 2.2 Corrigido bug dos mobs. [SoulBlaker]
// - bugid: showissue=69, os monstros já começava mortos
// - mesmo sem o Castelo estar dominado.
//= 2.3 Corrigido bug do Emperium [Asus/Soulblaker]
// - O emperium não aparece no Castelo com a WOE desligada.
//= 2.4 Corrigido respawn dos membros que não são da guild que [SoulBlaker]
// dominar o castelo.
//= 2.4a Corrigido bug, no qual o emperium não sumia se a WOE
// acabasse e o castelo não possuir dono. [Lord]
//= 2.5 Script corrigido. [Lord]
//= 2.5b Corrigido coordenadas do respaw do emperium de payg_cas01. [Lord]
//= 2.6 Readicionado delay após a destruição do Emperium [Asus]
//= 2.7 Anúncio de conquista do Castelo oficial, de acordo com o bRo [Asus]
//= 2.8 Corrigido a checagem de Zeny ao comprar guardiões. [RoM]
//= Corrigido o custo do investimento.
//= O segundo investimento agora é o quadruplo do valor do primeiro.
//= O investimento agora ocorre na mudança do dia.
//= 2.8a Revisado. [RoM]
//= 2.9 Atualizados os broadcasts. [RoM]
//= 3.0 Desativado o spawn dos monstros em caso de o clã ser desfeito
//= de acordo com padrão bRO. O spawn é ativado novamente caso a
//= opção 'castle_mob_spawn' seja ativada no arquivo 'guild.conf' [Wilk Maia]
//============================================================
// AGIT Manager Template
//============================================================
- script Gld_Agit_Manager::Gld_Agit_Manager -1,{
end;
// Load (or reload) specific information for a castle.
OnInterIfInitOnce:
if (strnpcinfo(0) == "Gld_Agit_Manager") end;
GetCastleData strnpcinfo(2),0,strnpcinfo(0) + "::OnRecvCastle";
end;
// Início da Guerra do Emperium.
OnAgitStart:
if (strnpcinfo(0) == "Gld_Agit_Manager") end;
MapRespawnGuildID strnpcinfo(2),GetCastleData(strnpcinfo(2),1),2;
GvgOn strnpcinfo(2);
// Spawn (fall through), or respawn the Emperium once it has been broken.
OnStartArena:
// OnAgitStart will fall through and spawn the Emperium.
if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; }
else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; }
else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; }
else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; }
else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; }
else if (strnpcinfo(2) == "gefg_cas01") { setarray .@emproom[0],197,181; }
else if (strnpcinfo(2) == "gefg_cas02") { setarray .@emproom[0],176,178; }
else if (strnpcinfo(2) == "gefg_cas03") { setarray .@emproom[0],244,166; }
else if (strnpcinfo(2) == "gefg_cas04") { setarray .@emproom[0],174,177; }
else if (strnpcinfo(2) == "gefg_cas05") { setarray .@emproom[0],194,184; }
else if (strnpcinfo(2) == "payg_cas01") { setarray .@emproom[0],139,139; }
else if (strnpcinfo(2) == "payg_cas02") { setarray .@emproom[0],38,25; }
else if (strnpcinfo(2) == "payg_cas03") { setarray .@emproom[0],268,264; }
else if (strnpcinfo(2) == "payg_cas04") { setarray .@emproom[0],270,28; }
else if (strnpcinfo(2) == "payg_cas05") { setarray .@emproom[0],30,30; }
else if (strnpcinfo(2) == "prtg_cas01") { setarray .@emproom[0],197,197; }
else if (strnpcinfo(2) == "prtg_cas02") { setarray .@emproom[0],157,174; }
else if (strnpcinfo(2) == "prtg_cas03") { setarray .@emproom[0],16,220; }
else if (strnpcinfo(2) == "prtg_cas04") { setarray .@emproom[0],291,14; }
else if (strnpcinfo(2) == "prtg_cas05") { setarray .@emproom[0],266,266; }
// Add custom Guild Castles here.
else {
end;
}
if (!mobcount(strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak")) {
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Emperium",1288,1,"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
}
end;
// O Emperium foi quebrado.
OnAgitBreak:
set .@GID,getcharid(2);
set .@breaker$,strcharinfo(0);
// Show and log error if an unguilded player breaks the Emperium. (Should NEVER happen)
if (.@GID <= 0) {
set .@notice$,"O Jogador "+strcharinfo(0)+" ("+getcharid(0)+") quebrou o Emperim no Castelo: "+strnpcinfo(2)+" enquanto estava sem Guilda. As informações não serão salvas e o Emperium reaparecerá.";
logmes .@notice$; debugmes .@notice$;
donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
end;
}
// Adjust Economy Invest Level for Castle
set .@Economy,GetCastleData(strnpcinfo(2),2) - 5;
if (.@Economy < 0) set .@Economy, 0;
SetCastleData strnpcinfo(2), 2, .@Economy;
// Adjust Defense Invest Level for Castle
set .@Defence,GetCastleData(strnpcinfo(2),3) - 5;
if (.@Defence < 0) set .@Defence, 0;
SetCastleData strnpcinfo(2), 3, .@Defence;
// Set new Castle Occupant
SetCastleData strnpcinfo(2),1, .@GID;
// Announce that the Emperium is destroyed, and respawn all but new castle-occupants.
mapannounce strnpcinfo(2),"O Emperium foi destruído.",bc_map|bc_woe,"0x00CCFF",FW_NORMAL,12;
// Refresh castle data, disable Kafra and reset Invest information.
GetCastleData strnpcinfo(2),0,strnpcinfo(0)+"::OnRecvCastle";
disablenpc "Kafra#"+strnpcinfo(2);
for( set .@i, 4; .@i <= 9; set .@i, .@i+1 ) {
SetCastleData strnpcinfo(2), .@i, 0;
}
// Erase Guardian Database information if the new owners do not have Guardian Research.
if( getgdskilllv(.@GID,10002) == 0 ) {
for( set .@i, 10; .@i <= 17; set .@i, .@i+1 ) {
SetCastleData strnpcinfo(2), .@i, 0;
}
}
// Respawn the Emperium, and display new owners.
sleep 500; // Slow down script execution slightly.
if( agitcheck() )
donpcevent "Agit#"+strnpcinfo(2)+"::OnStartArena";
sleep getbattleflag("gvg_eliminate_time");
MapRespawnGuildID strnpcinfo(2),.@GID,2;
MapRespawnGuildID strnpcinfo(2),.@GID,4;
announce "O Clã [" + getguildName(.@GID) + "] conquistou o Castelo [" + getcastlename(strnpcinfo(2)) + "] Graças ao Jogador [ "+ .@breaker$ +" ]",bc_all|bc_woe;
end;
// Fim da Guerra do Emperium.
OnAgitEnd:
if (strnpcinfo(0) == "Gld_Agit_Manager") end;
GvgOff strnpcinfo(2);
// If the castle has no owner at the end of WoE, do not kill Emperium.
if (GetCastleData(strnpcinfo(2),1)) {
KillMonster strnpcinfo(2),"Agit#"+strnpcinfo(2)+"::OnAgitBreak";
}
end;
// Occupying Guild has been disbanded.
OnGuildBreak:
if (strnpcinfo(0) == "Gld_Agit_Manager") end;
// Kill guardians, disable the Kafra, and set owner to 0.
killmonster strnpcinfo(2),"Guardian#"+strnpcinfo(2)+"::OnGuardianDied";
disablenpc "Kafra#"+strnpcinfo(2);
SetCastleData strnpcinfo(2),0,0;
// Wait before refreshing guild information.
sleep getbattleflag("gvg_eliminate_time");
Announce "O Castelo [" + GetCastleName(strnpcinfo(2)) + "] foi abandonado.",0;
GetCastleData strnpcinfo(2),0,strnpcinfo(0)+"::OnRecvCastle";
end;
OnRecvCastle:
RequestGuildInfo GetCastleData(strnpcinfo(2),1);
// Spawn Monsters if the castle is empty.
set .@GID, GetCastleData(strnpcinfo(2),1);
set .@CMR, GetCastleMobRespawnInfo(); // [Wilk Maia]
if (.@GID == 0) {
killmonsterall strnpcinfo(2);
if (compare(strnpcinfo(2),"aldeg")) {
// Normal Spawns
if (.@CMR)
{
monster strnpcinfo(2),0,0,"Druida Maligno",1117,10;
monster strnpcinfo(2),0,0,"Khalitzburg",1132,4;
monster strnpcinfo(2),0,0,"Cavaleiro do Abismo",1219,2;
monster strnpcinfo(2),0,0,"Executor",1205,1;
monster strnpcinfo(2),0,0,"Penomena",1216,10;
monster strnpcinfo(2),0,0,"Alarme",1193,18;
monster strnpcinfo(2),0,0,"Relógio",1269,9;
monster strnpcinfo(2),0,0,"Raydric Arqueiro",1276,7;
monster strnpcinfo(2),0,0,"Andarilho",1208,3;
monster strnpcinfo(2),0,0,"Alice",1275,1;
monster strnpcinfo(2),0,0,"Cavaleiro Sanguinário",1268,1;
monster strnpcinfo(2),0,0,"Senhor das Trevas",1272,1;
}
// Set Emperium room spawn coordinates and spawn monsters.
if (strnpcinfo(2) == "aldeg_cas01") { setarray .@emproom[0],216,23; }
else if (strnpcinfo(2) == "aldeg_cas02") { setarray .@emproom[0],213,23; }
else if (strnpcinfo(2) == "aldeg_cas03") { setarray .@emproom[0],205,31; }
else if (strnpcinfo(2) == "aldeg_cas04") { setarray .@emproom[0],36,217; }
else if (strnpcinfo(2) == "aldeg_cas05") { setarray .@emproom[0],27,101; }
if (.@CMR)
{
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Senhor das Trevas",1272,1;
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Gerente",1270,4;
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Cavaleiro Sanguinário",1268,1;
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Cavaleiro do Abismo",1219,1;
monster strnpcinfo(2),.@emproom[0],.@emproom[1],"Raydric Arqueiro",1276,5;
}
}
else if (compare(strnpcinfo(2),"gefg")) {
// Normal Spawns
if (.@CMR)
{
monster strnpcinfo(2),0,0,"Druida Maligno",1117,10;
monster strnpcinfo(2),0,0,"Xamã do Vento",1263,11;
monster strnpcinfo(2),0,0,"Bathory",1102,10;
monster strnpcinfo(2),0,0,"Jakk",1130,10;
monster strnpcinfo(2),0,0,"Marduk",1140,20;
monster strnpcinfo(2),0,0,"Raydric",1163,9;
monster strnpcinfo(2),0,0,"Alice",12
|