· 7 years ago · Sep 17, 2018, 09:22 AM
1//|==================================================================================|
2//| ___ ___ ___ ___ ___ |
3//| /\ \ /\ \ /\ \ /| | /\ \ |
4//| |::\ \ /::\ \ /::\ \ |:| | /::\ \ |
5//| |:|:\ \ /:/\:\ \ /:/\:\ \ |:| | /:/\:\ \ |
6//| __|:|\:\ \ /:/ \:\ \ /:/ \:\ \ __|:| | /:/ /::\ \ |
7//| /::::|_\:\__\ /:/__/ \:\__\ /:/__/ \:\__\ /\ |:|__|____ /:/_/:/\:\__\ |
8//| \:\--\ \/__/ \:\ \ /:/ / \:\ \ /:/ / \:\/:::::/__/ \:\/:/ \/__/ |
9//| \:\ \ \:\ /:/ / \:\ /:/ / \::/__/ \::/__/ |
10//| \:\ \ \:\/:/ / \:\/:/ / \:\ \ \:\ \ |
11//| \:\__\ \::/ / \::/ / \:\__\ \:\__\ |
12//| \/__/ \/__/ \/__/ \/__/ \/__/ |
13//| ================================================================================ |
14//| Script Desenvolvido Por Mooka | eAthena | Por Favor, Não Retire Os Créditos. |
15//| ================================================================================ |
16//| Observação! O MapFlag Está No Final Do Script ! |
17//| ================================================================================ |
18//|[v1.1.6]= Ranking não mostra mais valores com 0. {Mooka} |
19//| v1.1.5 = Novo comando remoto. (!ban) {Mooka} |
20//| v1.1.4 = Adicionado opção de Ranking Ratio aos Menus e Cmd Remotos. {Mooka} |
21//| v1.1.3 = Otimizado IF's dos comandos remotos. {Mooka} |
22//| v1.1.2 = Desenvolvida nova opção de Ranking. (Ratio) {Mooka} |
23//| v1.1.1 = Alteração na tabela. (Adicionado campo 'ratio') {Mooka} |
24//| v1.1.0 = Novo comando remoto. (!help) {Mooka} |
25//| ------ |
26//| v1.0.9 = Adicionado duplicações do npc em todas as cidades. {Mooka} |
27//| v1.0.8 = Adicionada opção para retirar buff de Soul Linker. {Mooka} |
28//| v1.0.7 = Correção na função Ranking2. {Mooka} |
29//| v1.0.6 = Correção no comando !exit. {Mooka} |
30//| v1.0.5 = Correção no bug de enviar o som "end" causando erro. {Mooka} |
31//| v1.0.4 = Implementado Sons do Unreal Tournament. {Mooka} |
32//| v1.0.3 = Adicionado novo tipo de contagem de Pontos com Announce. {Mooka} |
33//| v1.0.2 = Adicionada opção para servidores PK. {Mooka} |
34//| v1.0.1 = Adicionado PvP Baby. {Mooka} |
35//| v1.0.0 = Desenvolvida Versão. {Mooka} |
36//| ================================================================================ |
37//| Table update (v1.1.7+): |
38//| DROP TABLE IF EXISTS `pvpm_map`; |
39//| CREATE TABLE `pvpm_map` ( |
40//| `id` int(11) unsigned NOT NULL default '0', |
41//| `map` varchar(255) NOT NULL default 'NULL', |
42//| `type` int(11) unsigned NOT NULL default '0', |
43//| `arena` int(11) unsigned NOT NULL default '0', |
44//| KEY `id` (`id`) |
45//| ) TYPE=MyISAM; |
46//| insert into pvpm_map (id,map,type,arena) values (0,'guild_vs3',0,0); |
47//| insert into pvpm_map (id,map,type,arena) values (1,'pvp_n_1-5',0,0); |
48//| insert into pvpm_map (id,map,type,arena) values (2,'guild_vs1',0,2); |
49//| insert into pvpm_map (id,map,type,arena) values (3,'prt_are01',0,2); |
50//| insert into pvpm_map (id,map,type,arena) values (4,'guild_vs2',0,0); |
51//| -------------------------------------------------------------------------------- |
52//| Table update (v1.1.5-): |
53//| alter table pvpm_data add ratio int(11) not null default '0' after dies |
54//| -------------------------------------------------------------------------------- |
55//| Table PvP Master Ultimate (v1.0.0): |
56//| |
57//| DROP TABLE IF EXISTS `pvpm_data`; |
58//| CREATE TABLE `pvpm_data` ( |
59//| `id` int(11) unsigned NOT NULL default '0', |
60//| `name` varchar(255) NOT NULL default '', |
61//| `kills` int(11) unsigned NOT NULL default '0', |
62//| `dies` int(11) unsigned NOT NULL default '0', |
63//| `leader` int(11) unsigned NOT NULL default '0', |
64//| `annc` int(11) unsigned NOT NULL default '0', |
65//| `ban` int(11) unsigned NOT NULL default '0', |
66//| `type` int(11) unsigned NOT NULL default '0', |
67//| KEY `id` (`id`), |
68//| KEY `kills` (`kills`), |
69//| KEY `dies` (`dies`) |
70//| ) TYPE=MyISAM; |
71//| |
72//|==================================================================================|
73prontera,164,196,4 script [PvP] Master 802,{
74//| ================================================================================ |
75goto Begin; // |
76//| |
77OnInit: // |
78//| |
79//| Configurações: |
80//|~> Mapas das Arenas. PvP 1 PvP2 GvG 1 GvG 2 Baby |
81setarray $@arena$[0],"guild_vs5","guild_vs2","guild_vs1","guild_vs4","guild_vs3"; // |
82//| |
83//|~> Nome do npc. |
84set $@pvpm_name$,"[ ^FF0000 PvP Master ^000000 ]"; // |
85//| |
86//|~> Deseja usar o Ranking Ratio como principal? [ 1 = Sim ] |
87//|---> Nota: Ranking Ratio: Pontuação = Kills - Mortes |
88set $@mainRanking,1; // |
89//| |
90//|~> Até onde o Ranking irá mostrar. [ Máximo 127 ] |
91set $@messRankUntil,10; // |
92//| |
93//|~> Modo PK. Está configurado para alterar automatico, mude se necessário. |
94set $@PK_Mode,getbattleflag("pk_mode"); // |
95//| |
96//|~> Deseja que ao player entrar no pvp perca os buff? [ 1 = Sim] |
97set $@breakBuffs,0; // |
98//| |
99//|~> Configuração do Som! |
100//|---> Nota: Os sons devem ser colocados na pasta data/wav em formato .wav |
101//|---> Nota 2: Se desativar o som do UT, desativará o announce dele também.(2) |
102//|--> 0 : Desativar Todas Opções. |
103//|--> 1 : Ativar somente Announce Global. |
104//|--> 2 : Ativar somente sons do Unreal Tournament. |
105//|--> 3 : Ativar Ambos. |
106set $@sound,3; // |
107//| |
108//|~> Lista com o nomes dos Sons Unreal Tournament. |
109//|---> Nota: $@SoundList$[Pontos em que irá tocar o som],"Nome do Som"; |
110//|---> Nota 2: A partir do ultimo, será somado 10 e repetirá o som, o set |
111//|---> com "end" indica que o ultimo som será repetido dali em diante. |
112//|---> Nota 3: O nome do arquivo é o mesmo que será exibido no announce. // |
113set $@SoundList$[1],"First Blood"; // |
114set $@SoundList$[2],"Double Kill"; // |
115set $@SoundList$[3],"Triple Kill"; // |
116set $@SoundList$[5],"Mega Kill"; // |
117set $@SoundList$[10],"Ultra Kill"; // |
118set $@SoundList$[15],"Killing Spree"; // |
119set $@SoundList$[20],"Ownage"; // |
120set $@SoundList$[25],"Holy Shit"; // |
121set $@SoundList$[30],"God Like"; // |
122set $@SoundList$[35],"Dominating"; // |
123set $@SoundList$[40],"Unstoppable"; // |
124set $@SoundList$[50],"Monster Kill"; // |
125set $@SoundList$[51],"end"; // |
126//|==================================================================================|
127query_sql "select name from pvpm_data where leader=1 and type=0 limit 1",$@Player_Lider$;
128query_sql "select name from pvpm_data where leader=1 and type=2 limit 1",$@Guild_Lider$;
129end;
130
131Begin:
132
133 mes $@pvpm_name$;
134 mes "^008B8BPvP For Fun: ^FFA500"+getmapusers($@arena$[0])+"^008B8B Players.";
135 mes "^008B8BPvP eXtreme: ^FFA500"+getmapusers($@arena$[1])+"^008B8B Players.";
136 mes "^008B8BPvP Baby: ^FFA500"+getmapusers($@arena$[4])+"^008B8B Players.";
137 mes "^008B8BGvG 1: ^FFA500"+getmapusers($@arena$[2])+" ^008B8B Players.";
138 mes "^008B8BGvG 2: ^FFA500"+getmapusers($@arena$[3])+" ^008B8B Players.";
139 mes "^008B8BPvP Lider: ^FFA500"+$@Player_Lider$+"^008B8B .";
140 mes "^008B8BGvG Lider: ^FFA500"+$@Guild_Lider$+"^000000 .";
141
142 switch(select("- Player vs Player ^0000FF["+(getmapusers($@arena$[0])+getmapusers($@arena$[1]))+"]^000000:- Guild vs Guild ^0000FF["+(getmapusers($@arena$[2])+getmapusers($@arena$[3]))+"]^000000:- Baby vs Baby ^0000FF["+getmapusers($@arena$[4])+"]^000000:- Ranking:- Comandos Remotos:- Sair"))
143 {
144 case 1:
145 callfunc("pvpm_func","ban",0,1);
146 if(select("- Arena 1 ^0000FF["+getmapusers($@arena$[0])+"]^000000:- Arena 2 ^0000FF["+getmapusers($@arena$[1])+"]") == 1)
147 { if($@breakBuffs) sc_end -1; warp $@arena$[0],0,0; } else { if($@breakBuffs) sc_end -1; warp $@arena$[1],0,0; }
148 end;
149
150 case 2:
151 callfunc("pvpm_func","ban",2,1);
152 if (!getcharid(2))
153 {
154 mes $@pvpm_name$;
155 mes "Desculpe, mas você precisa está em uma Guild para entrar nesta Arena.";
156 close;
157 }
158 if(select("- Arena 1 ^0000FF["+getmapusers($@arena$[2])+"]^000000:- Arena 2 ^0000FF["+getmapusers($@arena$[3])+"]") == 1)
159 { if($@breakBuffs) sc_end -1; warp $@arena$[2],0,0; } else { if($@breakBuffs) sc_end -1; warp $@arena$[3],0,0; }
160 end;
161
162 case 3:
163 callfunc("pvpm_func","ban",0,1);
164 if(Upper!=2)
165 {
166 mes $@pvpm_name$;
167 mes "Olhe o seu tamanho! Esta arena é restrita a Baby's!";
168 close;
169 } if($@breakBuffs) sc_end -1; warp $@arena$[4],0,0;
170
171 case 4:
172 switch(select("- PvP:- GvG:- Minha Colocação"))
173 {
174 case 1:
175 callfunc "pvpm_func","Ranking1","kills",0,"PvP"; break;
176 case 2:
177 callfunc "pvpm_func","Ranking1","kills",2,"GvG"; break;
178 case 3:
179 switch(select("- Minha Colocação Do PvP:- Minha Colocação Do GvG"))
180 {
181 case 1:
182 callfunc "pvpm_func","Ranking2","kills",0; break;
183 case 2:
184 callfunc "pvpm_func","Ranking2","kills",2; break;
185 }
186 } close2; goto Begin;
187 case 5:
188 mes $@pvpm_name$;
189 mes "Mande uma PM com qualquer mensagem para o nick: ^008B8Bnpc:cmd";
190 close2;
191 goto Begin;
192 case 6:
193 close;
194 }
195}
196
197- script cmd -1,{
198
199OnWhisperGlobal:
200
201 if (compare(@whispervar0$,"lider"))
202 {
203 if(compare(@whispervar0$,"pvp")) dispbottom "O Lider da arena é: "+$@Player_Lider$; else
204 dispbottom "O Lider da arena é: "+$@Guild_Lider$;
205 end;
206 } else
207
208 if (compare(@whispervar0$,"!pvp"))
209 {
210 callfunc("pvpm_func","ban",0);
211 getmapxy @map$,@x,@y,0;
212 if ( @map$ == $@arena$[0] || @map$ == $@arena$[1] )
213 {
214 dispbottom "[PvP Master] Você não pode usar está função dentro da Arena.";
215 end;
216 }
217 if(@whispervar1$ == "1") { if($@breakBuffs) sc_end -1; warp $@arena$[0],0,0; end; }
218 if(@whispervar1$ == "2") { if($@breakBuffs) sc_end -1; warp $@arena$[1],0,0; end; }
219 } else
220
221 if (compare(@whispervar0$,"!gvg"))
222 {
223 callfunc("pvpm_func","ban",2);
224 if (!getcharid(2))
225 {
226 dispbottom "[PvP Master] Desculpe, mas você precisa está em uma Guild para entrar nesta Arena.";
227 end;
228 } getmapxy @map$,@x,@y,0;
229 if ( @map$ == $@arena$[2] || @map$ == $@arena$[3] )
230 {
231 dispbottom "[PvP Master] Você não pode usar está função dentro da Arena.";
232 end;
233 }
234 if(@whispervar1$ == "1") { if($@breakBuffs) sc_end -1; warp $@arena$[2],0,0; end; }
235 if(@whispervar1$ == "2") { if($@breakBuffs) sc_end -1; warp $@arena$[3],0,0; end; }
236 dispbottom "[PvP Master] Você deve informar o número da Arena.";
237 end;
238 } else
239
240 if (compare(@whispervar0$,"!baby"))
241 {
242 callfunc("pvpm_func","ban",0);
243 if(Upper==2) warp $@arena$[4],0,0; else dispbottom "[PvP Master] Somente Baby's podem entrar nessa arena.";
244 end;
245 } else
246
247 if(compare(@whispervar0$,"!ranking"))
248 { if(compare(@whispervar0$,"2"))
249 {
250 if(compare(@whispervar1$,"pvp"))
251 { if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking2","ratio",0,"Ratio"; end; }
252 if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking2","kills",0; else
253 callfunc "pvpm_func","Ranking2","dies",0;
254 end;
255 }
256
257 if(compare(@whispervar1$,"gvg"))
258 { if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking2","ratio",2,"Ratio"; end; }
259 if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking2","kills",2; else
260 callfunc "pvpm_func","Ranking2","dies",2;
261 end;
262 }
263 }
264
265 if(compare(@whispervar1$,"pvp"))
266 { if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking1","ratio",0,"Ratio"; end; }
267 if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking1","kills",0,"PvP"; else
268 callfunc "pvpm_func","Ranking1","dies",0,"PvP ( Mortes )";
269 end;
270 }
271
272 if(compare(@whispervar1$,"gvg"))
273 { if(compare(@whispervar2$,"ratio")) { callfunc "pvpm_func","Ranking1","ratio",2,"Ratio"; end; }
274 if(!compare(@whispervar2$,"die")) callfunc "pvpm_func","Ranking1","kills",2,"GvG"; else
275 callfunc "pvpm_func","Ranking1","kills",2,"GvG";
276 end;
277 }
278 } else
279
280 if ( compare(@whispervar0$,"!exit") )
281 {
282 getmapxy @map$,@x,@y,0;
283 for(set @i,0;@i!=getarraysize($@arena$);set @i,@i+1)
284 {
285 if (@map$ != $@arena$[@i]) continue;
286 sleep2 1000; dispbottom "[PvP Master] Aguarde 5 Segundos . . .";
287 sleep2 1000; dispbottom "[PvP Master] Aguarde 4 Segundos . . .";
288 sleep2 1000; dispbottom "[PvP Master] Aguarde 3 Segundos . . .";
289 sleep2 1000; dispbottom "[PvP Master] Aguarde 2 Segundos . . .";
290 sleep2 1000; dispbottom "[PvP Master] Aguarde 1 Segundo . . .";
291 sleep2 1000; warp getsavepoint(0),getsavepoint(1),getsavepoint(2);
292 end;
293 }
294 dispbottom "[PvP Master] Está função só pode ser usada dentro da Arena.";
295 end;
296 } else
297
298 if(compare(@whispervar0$,"!truncate") && getgmlevel()>=70)
299 {
300 if(compare(@whispervar1$,"!pvp"))
301 {
302 query_sql("delete from pvpm_data where type=0");
303 dispbottom "[PvP Master] Ranking do PvP foi limpo.";
304 end;
305 }
306 if(compare(@whispervar1$,"!gvg"))
307 {
308 query_sql("delete from pvpm_data where type=2");
309 dispbottom "[PvP Master] Ranking do PvP foi limpo.";
310 end;
311 } dispbottom "[PvP Master] Você deve especificar qual arena deseja resetar o Ranking.";
312 } else
313
314 if (compare(@whispervar0$,"!ban"))
315 {
316 if(@whispervar1$=="") { dispbottom "É necessário que o Nome seja informado."; end; }
317 if(@whispervar2$=="") { dispbottom "É necessário que o Tempo seja informado."; end; }
318 if(@whispervar3$=="") { dispbottom "É necessário que o Tipo de banimento seja informado."; end; }
319 if(@whispervar2$=="mestime")
320 { query_sql("select ban from pvpm_data where name='"+@whispervar1$+"' limit 1",@mestime);
321 dispbottom "[PvP Master] O tempo de banimento de(o) "+@whispervar1$+" é de "+@mestime+" minutos.";
322 end;
323 } if(@whispervar2$=="unban")
324 { query_sql("update pvpm_data set ban=0 where name='"+@whispervar1$+"' limit 1");
325 dispbottom "[PvP Master] O banimento foi retirado de(o) "+@whispervar1$+" com sucesso.";
326 message @whispervar1$,"[GM Mensagem] Você foi desbanido da Arena PvP.";
327 end;
328 } set @time,@whispervar2$;
329 if(@time==0 && @whispervar2$!="unban" || @time==0 && @whispervar2$!="mestime") { dispbottom "O valor do Tempo não é válido, por favor utilize caracteres de 0 à 9."; end; }
330 set @id,0;
331 query_sql("select id from pvpm_data where name='"+@whispervar1$+"' and type="+@whispervar3$,@id);
332 if(!@id && @whispervar3$=="0") { dispbottom "[PvP Master] Nenhum player foi encontrado com este nome."; end; }
333 if(!@id && @whispervar3$=="2") { dispbottom "[PvP Master] Nenhuma guild foi encontrada com este nome."; end; }
334 set @bantime,0;
335 if(compare(@whispervar2$,"-")) query_sql("update pvpm_data set ban=ban"+@time+" where id="+@id+" limit 1"); else
336 query_sql("update pvpm_data set ban=ban+"+@time+" where id="+@id+" limit 1");
337 query_sql("select ban from pvpm_data where id="+@id+" limit 1",@bantime);
338 dispbottom "[PvP Master] Tempo de banimento alterado. ("+@bantime+" Minutos)";
339 message @whispervar1$,"[GM Mensagem] Você está banido da Arena PvP por "+@bantime+" minutos.";
340 warpchar "prontera",150,150,getcharid(0,@whispervar1$);
341 end;
342 }
343
344 if (compare(@whispervar0$,"!help"))
345 {
346 if(compare(@whispervar1$,"!pvp")) {
347 dispbottom "O comando '!pvp' serve para teleportá-lo à arena desejada, para usá-lo você deve enviar a mensagem:";
348 dispbottom "- !pvp#1 ou !pvp#2";
349 dispbottom "Após o '#' é o número da arena.";
350 end;
351 }
352
353 if(compare(@whispervar1$,"!gvg")) {
354 dispbottom "O comando '!gvg' serve para teleportá-lo à arena desejada, para usá-lo você deve enviar a mensagem:";
355 dispbottom "- !gvg#1 ou !gvg#2";
356 dispbottom "Após o '#' é o número da arena.";
357 end;
358 }
359
360 if(compare(@whispervar1$,"!baby")) {
361 dispbottom "O comando '!baby' serve para teleportá-lo à arena restrita as classes Baby.";
362 end;
363 }
364
365 if(compare(@whispervar1$,"!ranking")) {
366 dispbottom "!ranking serve para mostrar o Ranking. Para isso, você deve enviar uma das mensagens abaixo:";
367 dispbottom "- ranking#pvp,ranking#pvp#die,ranking#gvg,ranking#gvg#die";
368 dispbottom "Você deve especificar qual ranking você deseja visualizar (#pvp ou #gvg), caso deseje o ranking de mortes adicione #die no final.";
369 end;
370 }
371
372 if(compare(@whispervar1$,"lider")) {
373 dispbottom "!pvplider ou !gvglider serve para mostrar o player ou guild com mais pontos.";
374 end;
375 }
376
377 if(compare(@whispervar1$,"exit")) {
378 dispbottom "Serve para retirá-lo da arena, teleportando-o para seu savepoint.";
379 end;
380 }
381
382 if(compare(@whispervar1$,"ban") && getgmlevel()>=70) {
383 dispbottom "Este comando irá banir determinado player/guild pelo nome, o tempo é em minutos.";
384 dispbottom "Exemplo: !ban#nome#tempo(em minutos)#0(Player)/2(Guild) -> !ban#Player1#60#1 / !ban#EmpBreak#60#2";
385 dispbottom "Você deve definir se está banindo um player ou guild, colocando ao final 1 para Player e 2 para Guild.";
386 dispbottom "Para diminuir o tempo, utilize o sinal de menos(-) antes do valor. Para desbanir o mesmo, envie no campo de Tempo \"unban\".";
387 dispbottom "Caso deseje ver o tempo restante, envie no campo do Tempo \"mestime\".";
388 end;
389 }
390
391 if(compare(@whispervar1$,"!truncate") && getgmlevel()>=70) {
392 dispbottom "Comando para limpar a tabela do ranking.";
393 end;
394 } dispbottom "[PvP Master] Nenhum comando foi encontrado.";
395 end;
396 }
397
398 dispbottom "- Lista De Comandos -";
399 dispbottom "--- Use !help#COMANDO para mais informações. ---";
400 dispbottom "!pvp#1/2";
401 dispbottom "!gvg#1/2";
402 dispbottom "!baby";
403 dispbottom "!ranking#pvp(#die/ratio)";
404 dispbottom "!ranking#gvg(#die/ratio)";
405 dispbottom "!ranking2#pvp(#die/ratio)";
406 dispbottom "!ranking2#gvg(#die/ratio)";
407 dispbottom "!pvplider";
408 dispbottom "!gvglider";
409 dispbottom "!exit";
410 if(getgmlevel()>=70)
411 {
412 dispbottom "- GM's Comandos -";
413 dispbottom "!truncate#pvp/gvg";
414 }
415
416}
417
418- script event#pvpm -1,{
419OnInit:
420OnTimer60000:
421 query_sql("update pvpm_data set ban=ban-1 where ban>0");
422 initnpctimer;
423 end;
424
425OnPCKillEvent:
426callfunc("pvpm_func","PCKillEvent");
427end;
428
429OnPCDieEvent:
430callfunc("pvpm_func","PCDieEvent");
431}
432
433function script pvpm_func {
434
435 if (getarg(0) == "Ranking1")
436 {
437 deletearray @name$[0],getarraysize(@name$);
438 deletearray @points[0],getarraysize(@points);
439 query_sql "select name,"+getarg(1)+" from pvpm_data where type="+getarg(2)+" and "+getarg(1)+"!=0 order by "+getarg(1)+" desc limit 125",@name$,@points;
440 dispbottom "======= Ranking - "+getarg(3)+" =======";
441 for(set @ind,0;@ind != $@messRankUntil;set @ind,@ind+1)
442 {
443 if(@name$[@ind]=="") return;
444 dispbottom (@ind+1)+"º | "+@name$[@ind]+" | Pontos: "+@points[@ind];
445 } return;
446 }
447
448 if (getarg(0) == "Ranking2")
449 {
450 deletearray @name$[0],getarraysize(@name$);
451 deletearray @points[0],getarraysize(@points);
452 query_sql "select id,"+getarg(1)+" from pvpm_data where type="+getarg(2)+" order by "+getarg(1)+" desc limit 125",@id,@points;
453 for(set @i,0;@i <= 125;set @i,@i+1)
454 {
455 if (@id[@i] == getcharid(getarg(2)))
456 {
457 dispbottom "- "+strcharinfo(getarg(2))+" | "+@i+"º | Pontos: "+@points[@i];
458 return;
459 }
460 }
461 dispbottom "[PvP Master] Você não está entre os 125 colocados do Ranking.";
462 return;
463 }
464
465 if (getarg(0) == "ban")
466 {
467 set @bantime,0;
468 query_sql("select ban from pvpm_data where id="+getcharid(getarg(1))+" limit 1",@bantime);
469 if(!@bantime) return;
470 if(!getarg(2,0)) { dispbottom "[PvP Master] Você está banido da Arena por "+@bantime+" minutos!"; end; } else
471 { mes "^FF7F50[PvP Master] ^FFA500Você está banido da Arena por ^FF7F50"+@bantime+"^FFA500 minutos!"; close; }
472 }
473
474 if (getarg(0) == "Up")
475 {
476 set @name$,"";
477 set @points,0;
478 query_sql("select name,"+getarg(1)+" from pvpm_data where id="+getcharid(getarg(2))+" and type="+getarg(2)+" limit 1",@name$,@points);
479 if ( @name$ == "" )
480 {
481 query_sql("INSERT INTO pvpm_data (id,"+getarg(1)+",name,annc,type) values ("+getcharid(getarg(2))+",1,'"+strcharinfo(getarg(2))+"',"+getarg(3)+","+getarg(2)+")");
482 dispbottom "Score: 1";
483 end;
484 } query_sql("update pvpm_data set "+getarg(1)+"="+getarg(1)+"+1 where id="+getcharid(getarg(2)));
485 set @points,@points+1;
486 if($@mainRanking)
487 {
488 set @kills,0;
489 set @dies,0;
490 query_sql("select kills,dies from pvpm_data where id="+getcharid(getarg(2))+" and type="+getarg(2)+" limit 1",@kills,@dies);
491 query_sql("update pvpm_data set ratio="+(@kills-@dies)+" where id="+getcharid(getarg(2))+" and type="+getarg(2)+" limit 1");
492 set @points,@kills-@dies;
493 return;
494 } return;
495 }
496
497 if (getarg(0) == "ChangeLeader")
498 {
499 set @L_name$,"";
500 set @L_points,0;
501 query_sql("select name,kills from pvpm_data where leader=1 and type="+getarg(1)+" limit 1",@L_name$,@L_points);
502 if (@points > @L_points && @L_name$ != strcharinfo(getarg(1)))
503 {
504 query_sql("update pvpm_data set leader=0 where type="+getarg(1));
505 query_sql("update pvpm_data set leader=1 where id="+getcharid(getarg(1))+" and type="+getarg(1));
506 Announce strcharinfo(getarg(1))+" | É o Novo Lider !",bc_map,0xFF7F50;
507 set $@Player_Lider$,"";
508 set $@Guild_Lider$,"";
509 query_sql("select name from pvpm_data where leader=1 and type=0 limit 1",$@Player_Lider$);
510 query_sql("select name from pvpm_data where leader=1 and type=2 limit 1",$@Guild_Lider$);
511 } return;
512 }
513
514 if (getarg(0) == "Annc")
515 {
516 set @points,0;
517 set @annc,0;
518 query_sql "select kills,annc from pvpm_data where id="+getcharid(getarg(1))+" and type="+getarg(1),@points,@annc;
519 if(!@annc) query_sql "update pvpm_data set annc=annc+"+getarg(2)+" where id="+getcharid(getarg(1))+" and type="+getarg(1);
520 if (@points >= @annc)
521 {
522 Announce strcharinfo(getarg(1))+" | Fez "+@points+" Pontos No "+getarg(3)+" !",bc_all,0xFF7F50;
523 query_sql "update pvpm_data set annc=annc+"+getarg(2)+" where id="+getcharid(getarg(1))+" and type="+getarg(1);
524 if($@sound==1||$@sound==3) soundeffectall "Monster Kill.wav",0;
525 } if(!$@sound||$@sound==1) return;
526 if(getarg(3)=="PvP")
527 {
528 if(@noMoreSounds&&@withoutDying==@withoutDyingAnnc)
529 {
530 mapannounce @map$,strcharinfo(0)+" | "+$@SoundList$[@noMoreSounds]+" !! [ "+@withoutDying+" Pontos ]",bc_map,0xFF7F50;
531 soundeffectall $@SoundList$[@noMoreSounds]+".wav",0,@map$;
532 set @withoutDyingAnnc,@withoutDyingAnnc+5;
533 return;
534 }
535 if($@SoundList$[@withoutDying]=="end")
536 {
537 set @withoutDyingAnnc,@withoutDyingAnnc+5;
538 set @noMoreSounds,@withoutDying-1;
539 }
540 if($@SoundList$[@withoutDying]!=""&&!@noMoreSounds)
541 {
542 mapannounce @map$,strcharinfo(0)+" | "+$@SoundList$[@withoutDying]+" !! [ "+@withoutDying+" Pontos ]",bc_map,0xFF7F50;
543 soundeffectall $@SoundList$[@withoutDying]+".wav",0,@map$;
544 }
545 } return;
546 }
547
548 if(getarg(0) == "PCKillEvent")
549 {
550 getmapxy @map$,@x,@y,0;
551 if(@map$ == $@arena$[0] || @map$ == $@arena$[1] || @map$ == $@arena$[4] || $@PK_Mode)
552 {
553 set @withoutDying,@withoutDying+1;
554 callfunc "pvpm_func","Up","kills",0,100;
555 dispbottom "Score: "+@points;
556 callfunc "pvpm_func","ChangeLeader",0;
557 callfunc "pvpm_func","Annc",0,100,"PvP";
558 }
559 if(@map$ == $@arena$[2] || @map$ == $@arena$[3] && getcharid(2) || $@PK_Mode && getcharid(2))
560 {
561 callfunc "pvpm_func","Up","kills",2,1000;
562 dispbottom "Guild Score: "+@points;
563 callfunc "pvpm_func","ChangeLeader",2;
564 callfunc "pvpm_func","Annc",2,1000,"GvG";
565 }
566 }
567
568 if(getarg(0) == "PCDieEvent")
569 {
570 set @withoutDying,0;
571 set @noMoreSounds,0;
572 set @withoutDyingAnnc,0;
573 getmapxy(@map$,@x,@y,0);
574 if(@map$ == $@arena$[0] || @map$ == $@arena$[1] || @map$ == $@arena$[4] || $@PK_Mode) callfunc "pvpm_func","Up","dies",0,100;
575 if(@map$ == $@arena$[2] || @map$ == $@arena$[3] && getcharid(2) || $@PK_Mode && getcharid(2)) callfunc "pvpm_func","Up","dies",2,1000;
576 end;
577 }
578}
579
580//============== MAP FLAG ===============
581// Player
582guild_vs5 mapflag nosave
583guild_vs5 mapflag noteleport
584guild_vs5 mapflag nowarpto
585guild_vs5 mapflag nowarp
586guild_vs5 mapflag nomemo
587guild_vs5 mapflag gvg off
588guild_vs5 mapflag pvp
589guild_vs5 mapflag nopenalty
590guild_vs5 mapflag nobranch
591
592
593guild_vs2 mapflag nosave
594guild_vs2 mapflag noteleport
595guild_vs2 mapflag nowarpto
596guild_vs2 mapflag nowarp
597guild_vs2 mapflag nomemo
598guild_vs2 mapflag gvg off
599guild_vs2 mapflag pvp
600guild_vs2 mapflag nopenalty
601guild_vs2 mapflag nobranch
602guild_vs2 mapflag pvp_noguild
603
604// Guild
605guild_vs1 mapflag nosave
606guild_vs1 mapflag noteleport
607guild_vs1 mapflag nowarpto
608guild_vs1 mapflag nowarp
609guild_vs1 mapflag nomemo
610guild_vs1 mapflag gvg on
611guild_vs1 mapflag nopenalty
612guild_vs1 mapflag nobranch
613
614guild_vs4 mapflag nosave
615guild_vs4 mapflag noteleport
616guild_vs4 mapflag nowarpto
617guild_vs4 mapflag nowarp
618guild_vs4 mapflag nomemo
619guild_vs4 mapflag gvg on
620guild_vs4 mapflag nopenalty
621guild_vs4 mapflag nobranch
622
623// Baby
624guild_vs3 mapflag nosave
625guild_vs3 mapflag noteleport
626guild_vs3 mapflag nowarpto
627guild_vs3 mapflag nowarp
628guild_vs3 mapflag nomemo
629guild_vs3 mapflag gvg off
630guild_vs3 mapflag pvp
631guild_vs3 mapflag nopenalty
632guild_vs3 mapflag nobranch
633
634//============== MAP FLAG ===============
635
636morocc,152,97,4 duplicate([PvP] Master) [PvP] Master#2 899
637geffen,127,65,4 duplicate([PvP] Master) [PvP] Master#3 899
638alberta,26,240,4 duplicate([PvP] Master) [PvP] Master#4 899
639izlude,122,119,4 duplicate([PvP] Master) [PvP] Master#5 899
640aldebaran,147,119,4 duplicate([PvP] Master) [PvP] Master#6 899
641xmas,145,136,4 duplicate([PvP] Master) [PvP] Master#7 899
642comodo,184,158,4 duplicate([PvP] Master) [PvP] Master#8 899
643gonryun,161,126,4 duplicate([PvP] Master) [PvP] Master#9 899
644louyang,226,106,4 duplicate([PvP] Master) [PvP] Master#10 899
645ayothaya,155,121,4 duplicate([PvP] Master) [PvP] Master#11 899
646hugel,87,164,4 duplicate([PvP] Master) [PvP] Master#12 899
647moscovia,209,190,5 duplicate([PvP] Master) [PvP] Master#13 899