· 7 years ago · Oct 12, 2018, 01:38 AM
1/*________________________________________________________
2 / ____ \
3 | | __| |
4 | | |_ _ _ __ _ _ __ _ __ |
5 | | _| || |/ _` | '_ \| |/ _ \ |
6 | | |__ \/ | (_| | | | | | (_) | |
7 | |____|__/ \__,_|_| |_|_|\___/ |
8 | |
9 | |
10 |--------------------------------------------------------|
11 | Nome do Script: HC-Vip System |
12 |--------------------------------------------------------|
13 | Criado por: Evanio (Arkwright) |
14 |--------------------------------------------------------|
15 | Versão 1.8 |
16 |--------------------------------------------------------|
17 | Descrição: *Sistema Vip por horas corridas. |
18 | *Gerente Vip com várias funções úteis. |
19 | • Usuário Vip/Comum: |
20 | - Acesso a Sala Vip |
21 | - Loja ROPs |
22 | - Senha no Armazém |
23 | - Informações |
24 | • Administrador: |
25 | - Gerenciar Contas Vip |
26 | - Gerenciar CASH |
27 | - Gerenciar Loja ROPs |
28 | - Gerenciar Banimentos |
29 | - Gerenciar Staff |
30 |--------------------------------------------------------|
31 | Obs: Aconselhável não usar o comando @reloadscript |
32 | quando o sistema já estiver ativo. Use-o somente |
33 | quando tiver certeza que não tenha nenhum jogador |
34 | VIP Online. |
35 |--------------------------------------------------------|
36 | Changelog: |
37 | 1.0 Script Criado (22/02/2014) [Evanio] |
38 | 1.1 Add Sistema de Loja ROPs (23/02/2014) [Evanio] |
39 | 1.2 Add Sistema de Vip Grátis (24/02/2014) [Evanio] |
40 | 1.3 Add Bonus de XP e DROP (24/02/2014) [Evanio] |
41 | 1.4 Add Sistema senha no armazém (24/02/2014) [Evanio] |
42 | 1.5 Add Cupons Vip (25/02/2014) [Evanio] |
43 | 1.6 Add Vip por Dias (27/02/2014) [Evanio] |
44 | 1.7 Att para o novo emulador (20/01/2015) [Evanio] |
45 | 1.8 Mudado as variaveis globais (01/02/2015) [Evanio] |
46 | 1.9 Corrigido problema CASHSHOP (07/03/2016) [Evanio] |
47 \________________________________________________________/
48*/
49// ---------------------------------------------------------|
50/* -------------------- Tabelas SQL ------------------------|
51
52DROP TABLE IF EXISTS `cash_shop`;
53CREATE TABLE `cash_shop` (
54 `id` int(11) unsigned not null auto_increment,
55 `nameid` int(11) unsigned NOT NULL DEFAULT '0',
56 `price` int(11) unsigned NOT NULL DEFAULT '0',
57 `type` int(11) unsigned NOT NULL DEFAULT '0',
58 PRIMARY KEY (`id`)
59) ENGINE=MyISAM;
60
61ALTER TABLE `login` ADD `Vip` INT NOT NULL ;
62
63*/
64//-----------------------------------------------------------|
65//-----------------------------------------------------------|
66job_wiz,120,100,4 script Sair da Sala 837,{
67
68mes "[ ^0065DFTeleportador^000000 ]";
69mes "Você quer sair da sala?";
70next;
71menu "Sim",sim,"Não",cancelar;
72
73sim:
74mes "[ ^0065DFTeleportador^000000 ]";
75mes "Até Logo!";
76next;
77warp "prontera",156,181;
78close;
79
80cancelar:
81mes "[ ^0065DFTeleportador^000000 ]";
82mes "Tudo bem, ^5566FF"+strcharinfo(0)+"^000000, fale comigo quando quiser sair.";
83close;
84
85}
86//------------------------------------------------------------|
87//------------------------------------------------------------|
88
89- script ConfVip -1,{
90OnInit:
91 $@VipAc = 99; // NÃvel de conta que permite entrar no Gerenciamento. [ 4, 10 ou 99 ]
92 $@NvVip = 1; // NÃvel de conta para usuários Vip. [ 1 à 3 ]
93 $VipMode = 2; // Modo do Sistema VIP. [ 1 = Tempo Corrido , 2 = Contagem Diária ]
94 $@SalaVip$ = "job_wiz"; // Mapa da Sala Vip. [ ,"mapa"; ]
95 setarray $@CoordXY[0],115,99; // Coordenadas da Sala Vip [ ,CoordX,CoordY; ]
96 $@VipGratis = 0; // Ativa Vip Grátis. [ 1 = Sim, 0 = Não ]
97 $@VipGDias = 7; // Dias para Vip Grátis.
98 $@ExpBonus = 0; // Ativa o Bonus de XP e Drop para usuários Vip. [ 1=Somente EXP, 2=Somente DROP, 3=EXP e DROP, 0=Desativado ]
99 setarray $@ExpRate[0],50,200; // Percentagem do Bonus de XP e Drop respectivamente. [ ,EXP,DROP; ] (PS: 200 é equivalente ao dobro de chances dos drops)
100 $@ChatVip = 1; // Ativa chat de indicação no NPC Gerente Vip. [ 1 = Sim, 0 = Não ]
101 $@ChatMsgsVip$ = "Gerente Vip"; // Mensagem no Chat que irá aparecer.
102 $@StorageVip = 0; // Possibilita o usuário VIP colocar senha no armazém/storage. [ 1 = Sim, 0 = Não ] (Somente use essa função se estver habilitado o comando @storage)
103
104}
105
106prontera,136,197,5 script Sala Vip 907,{
107
108 query_sql "SELECT `Vip` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'", @dias;
109 query_sql ("SELECT `group_id` , `Vip` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",@Out,@Vip);
110 mes "[ ^0065DFGerente^000000 ]";
111 mes " Bem vindo ^EEAD2D"+strcharinfo(0)+"^000000 !";
112 mes "-----------------------------------";
113 if(#CASHPOINTS<=0) mes "";
114 else mes "Você atualmente possui ^EEAD2D"+#CASHPOINTS+"^000000 ROP's";
115 if(@Vip<=60 && @Vip>0) {
116 if(@Vip==1) mes "Você possui ^EEAD2D1^000000 minuto VIP restante.";
117 else mes "Você possui ^EEAD2D"+@Vip+"^000000 minutos VIP restantes.";
118 }
119 if(@Vip<=1440 && @Vip>60) {
120 @temp = @Vip/60;
121 if(@temp==1) mes "Você possui ^EEAD2D1^000000 Hora VIP restante.";
122 else mes "Você possui ^EEAD2D"+@temp+"^000000 Horas VIP restantes.";
123 }
124 if(@Vip>1440) {
125 @temp = @Vip/1440;
126 if(@temp==1) mes "Você possui ^EEAD2D1^000000 Dia VIP restante.";
127 else mes "Você possui ^EEAD2D"+@temp+"^000000 Dias VIP restantes.";
128 }
129 if(@Out<=0) {
130 mes "Vejo que você não é um usuário VIP.";
131 mes "Se está interessado em se tornar um usuário Vip, se informe melhor em nosso site.";
132 }
133 mes "-----------------------------------";
134 mes "Porfavor, escolha uma das opções.";
135 next;
136 @Menu$ = "Sala Vip:^FF4500Loja de ROP's^000000:"+(($@StorageVip==1)?"Senha no Armazém":"")+":Como obter ROP's:Cancelar:"+((getgmlevel()>=$@VipAc)?"Acesso ADM":"");
137 switch(select(@Menu$)){
138
139 case 1:
140 mes "[ ^0065DFGerente^000000 ]";
141 if(getgroupid()<$@NvVip) {
142 mes "Você não é um usuário VIP."; mes "Se está interessado em se tornar um usuário Vip, se informe melhor em nosso site.";
143 close;
144 }
145 mes "Okay, estarei te teleportando para a Sala Vip neste exato momento.";
146 mes "Tenha uma boa estádia lá.";
147 close2;
148 warp $@SalaVip$,$@CoordXY[0],$@CoordXY[1];
149 end;
150
151 case 2:
152 mes "[ ^0065DFGerente^000000 ]";
153 mes "Tudo bem, irei abrir a Loja de ROP's para você.";
154 close2;
155 callshop "cash_shop",1;
156 end;
157
158 case 3:
159 if(getgroupid()>=1 && getgroupid()<=3) {
160 if(#passstore==0) {
161 mes "[ ^0065DFGerente^000000 ]";
162 mes "Bem-vindo as configurações do acesso ao armazém.";
163 mes "Vejo que você não possui uma senha para seu armazém.";
164 mes "o que deseja fazer?";
165 next;
166 if(select("Criar senha","Sair")==2) {
167 mes "[ ^0065DFGerente^000000 ]";
168 mes "Caso mude de ideia estarei aqui para servi-lo.";
169 close;
170 }
171 mes "[ ^0065DFGerente^000000 ]";
172 mes "Certo, preciso que você digite a senha que deseja criar.";
173 mes "Lembre-se, atualmente não temos como recuperar a senha caso você esqueça, então porfavor anote-a.";
174 next;
175 AgainPass:
176 mes "[ ^0065DFGerente^000000 ]";
177 mes "Digite a senha que deseja utilizar.";
178 input @Senha$;
179 next;
180 mes "[ ^0065DFGerente^000000 ]";
181 mes "Você digitou a senha:";
182 mes " ^FF4500"+@Senha$+"^000000 ";
183 mes "Ela está correta?";
184 next;
185 if(select("Sim","Não")==2) { goto AgainPass; }
186 mes "[ ^0065DFGerente^000000 ]";
187 mes "Prontinho, senha de armazém adicionada.";
188 close2; #pass$ = @Senha$; #passstore = 1; end;
189 }
190 mes "[ ^0065DFGerente^000000 ]";
191 mes "Bem-vindo as configurações do acesso ao armazém.";
192 mes "Vejo que você já possui uma senha para seu armazém.";
193 mes "o que deseja fazer?";
194 next;
195 switch(select("Mudar senha","Remover senha","Sair")) {
196
197 case 1:
198 mes "[ ^0065DFGerente^000000 ]";
199 mes "Muito bem, para que eu possa mudar a sua senha do armazém, preciso que você me informe a sua antiga senha.";
200 next;
201 mes "[ ^0065DFGerente^000000 ]";
202 mes "Digite a sua antiga senha.";
203 input @Senha$;
204 next;
205 if(@Senha$==#pass$) {
206 AgainPass2:
207 mes "[ ^0065DFGerente^000000 ]";
208 mes "Tudo certo até o momento. Agora preciso que você digite a nova senha.";
209 next;
210 input @New$;
211 next;
212 mes "[ ^0065DFGerente^000000 ]";
213 mes "Você digitou a senha:";
214 mes " ^FF4500"+@New$+"^000000 ";
215 mes "Ela está correta?";
216 next;
217 if(select("Sim","Não")==2) { goto AgainPass2; }
218 mes "[ ^0065DFGerente^000000 ]";
219 mes "Senha alterada com sucesso!";
220 close2; #pass$ = @New$; end; }
221 mes "[ ^0065DFGerente^000000 ]";
222 mes "A senha que você digitou não coincide com a sua senha de armazém atual.";
223 mes "Tente novamente mais tarde.";
224 close;
225
226 case 2:
227 mes "[ ^0065DFGerente^000000 ]";
228 mes "Tem certeza que deseja remover a sua senha de armazém?";
229 next;
230 if(select("Sim","Não")==2) { mes "[ ^0065DFGerente^000000 ]"; mes "Caso mude de ideia estarei aqui para servi-lo."; close; }
231 mes "[ ^0065DFGerente^000000 ]";
232 mes "Prontinho, senha removida com sucesso.";
233 close2; #passstore = 0; end;
234
235 case 3:
236 mes "[ ^0065DFGerente^000000 ]";
237 mes "Obrigado. Estarei sempre aqui quando precisar dos meus serviços.";
238 close;
239 }
240 }
241
242 mes "[ ^0065DFGerente^000000 ]";
243 mes "Usuários Vip podem optar por adicionar um ^EEAD2DCódigo^000000 no seu armazém caso preferir.";
244 mes "É um metódo de segurança extra, principalmente para usuários que ecessam por computadores de terceiros.";
245 next;
246 mes "[ ^0065DFGerente^000000 ]";
247 mes "Para obter as vantagens de um usuário Vip, basta entrar em nosso site.";
248 mes "Lá você terá uma explicação mais detalhada de como se tornar um usuário Vip.";
249 close;
250
251 case 4:
252 mes "[ ^0065DFGerente^000000 ]";
253 mes "Para obter ROP's, você terá que comprar em nosso site os pacotes disponÃvel de ROP's.";
254 mes "Lá estará todas as informações de como você irá adiquirir e como será a forma de pagamento.";
255 next;
256 mes "[ ^0065DFGerente^000000 ]";
257 mes "Também irá saber todas as vantagens de como é ser um usuário VIP e a lista de Itens ROP's disponÃveis.";
258 mes "Há claro, você pode ver os itens ROP's disponÃveis aqui comigo.";
259 mes "Basta selecionar a opção ^EEAD2D'Loja de ROP's'^000000 no menu principal.";
260 close;
261
262 case 5:
263 mes "[ ^0065DFGerente^000000 ]";
264 mes "Sempre que precisar estarei aqui para lhe atender.";
265 mes "Obrigado e volte sempre!";
266 close;
267
268 case 6:
269 callfunc "Gerente#Syn",0;
270 }
271
272OnInit:
273if($@ChatVip==1) { waitingroom $@ChatMsgsVip$,0; }
274}
275
276function script Gerente#Syn {
277
278OnStartG:
279 if(getgroupid()>=$@VipAc) {
280 mes "[ ^0065DFGerente^000000 ]";
281 mes "Olá "+strcharinfo(0)+".";
282 mes "Sou o Gerente de dados do Servidor. Meu trabalho é facilitar a vida do pessoal da Administração.";
283 mes "Porfavor, escolha a opção que você deseja executar.";
284 next;
285 switch(select("Gerenciar Vip's","Gerenciar CASH","Gerenciar Loja","Gerenciar Banimentos","Gerenciar Staff","Sair")) {
286
287 case 1:
288 mes "[ ^0065DFGerente^000000 ]";
289 mes "Nessa área tenho total poder de manipular os dados de acesso VIP no servidor.";
290 mes "Basta você me indicar o que quer fazer que eu executo a ação.";
291 mes "Porfavor escolha uma das opções.";
292 next;
293 switch(select("Adicionar acesso Vip","Remover acesso Vip","Ver Contas VIP","Retornar ao menu principal")) {
294
295 case 1:
296 mes "[ ^0065DFGerente^000000 ]";
297 mes "Ok, agora preciso coletar os dados da conta do usuário que você deseja adicionar o acesso.";
298 mes "Digite o Login da Conta à qual irei adicionar acesso Vip.";
299 next;
300 input .@Conta$;
301 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@Conta$+"'",.@ContaEx);
302 if(.@ContaEx==0) {
303 mes "^FF0000***ERROR***^000000";
304 mes " "; mes "Você não digitou uma conta válida.";
305 mes " "; mes "^FF0000Fechando conexão^000000";
306 close;
307 }
308 next;
309 mes "[ ^0065DFGerente^000000 ]";
310 mes "Agora, digite a quantidade de dias que o usuário terá acesso Vip";
311 mes "Conta: ^FF0000"+.@Conta$+"^000000."; mes " ";
312 mes "^FF0000**Dica: Digite '0' para cancelar.^000000";
313 next;
314 input .@VipQ;
315 if(.@VipQ==0) {
316 mes "Ação cancelada.";
317 mes " ";
318 mes "^FF0000***Fechando conexão***^000000";
319 close;
320 }
321 .@amVip = .@VipQ*1440;
322 mes "[ ^0065DFGerente^000000 ]";
323 mes "Tudo certo, processando os dados e adicionando os dias de acesso Vip.";
324 next;
325 mes "[ ^0065DFGerente^000000 ]";
326 mes "Pronto, acesso adicionado!";
327 mes " ";
328 mes "Conta: ^FF0000"+.@Conta$+"^000000";
329 mes "Dias: ^FF0000"+.@VipQ+"^000000.";
330 query_sql ("SELECT `value` FROM `acc_reg_num_db` WHERE `key`='#VipOk' AND `account_id` = '"+.@ContaEx+"'",.@valor);
331 if(getarraysize(.@valor)) { query_sql "UPDATE `acc_reg_num_db` SET `value` = '"+$@NvVip+"' WHERE `key`='#VipOk' AND `account_id` = '"+.@ContaEx+"'";
332 }else{ query_sql "INSERT INTO `acc_reg_num_db` (`account_id`, `key`, `index`, `value`) VALUES ('"+.@ContaEx+"', '#VipOk', '0', '1')"; }
333 query_sql ("UPDATE `login` SET `group_id`='"+$@NvVip+"',`Vip`=`Vip`+"+.@amVip+" WHERE `userid`='"+.@Conta$+"'");
334 close;
335
336 case 2:
337 mes "[ ^0065DFGerente^000000 ]";
338 mes "Ok, agora preciso coletar os dados da conta do usuário que você deseja remover o acesso.";
339 mes "Digite o Login da Conta.";
340 next;
341 input @AccRet$;
342 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+@AccRet$+"'",.@NExiste);
343 if (!.@NExiste) {
344 mes "^FF0000***ERROR***^000000";
345 mes " ";
346 mes "Você não digitou uma conta válida.";
347 mes " ";
348 mes "^FF0000Fechando conexão^000000";
349 close;
350 }
351 next;
352 mes "[ ^0065DFGerente^000000 ]";
353 mes "Agora, digite a quantidade de dias que serão removidos do usuário Vip.";
354 mes "Conta: "+.@AccRet$+".";
355 mes "^FF0000**Dica: Digite '0' para cancelar.^000000";
356 next;
357 input .@QRem;
358 if(.@QRem==0) {
359 mes "Ação cancelada.";
360 mes " ";
361 mes "^FF0000***Fechando conexão***^000000";
362 close;
363 }
364 mes "[ ^0065DFGerente^000000 ]";
365 mes "Eu irei remover: ^FF0000"+.@QRem+"^000000 dias da conta: ^FF0000"+@AccRet$+"^000000.";
366 mes "Estes dados estão corretos?";
367 next;
368 if(select("Sim","Não")==1) {
369 mes "[ ^0065DFGerente^000000 ]";
370 mes "Tudo certo, processando os dados e removendo os dias de acesso Vip";
371 mes " ";
372 mes " ";
373 mes "Comando efetuado com SUCESSO!";
374 close2;
375 .@RemDia = .@QRem*1440;
376 query_sql ("UPDATE `login` SET `Vip`=`Vip`-"+.@RemDia+" WHERE `userid`='"+@AccRet$+"'");
377 end;
378 }
379 mes "[ ^0065DFGerente^000000 ]";
380 mes "Encerrando conexão...";
381 mes "Limpando dados...";
382 mes "Conexão encerrada!";
383 close;
384
385 case 3:
386 query_sql("SELECT `userid` , `Vip` FROM `login` WHERE `group_id`= "+$@NvVip+" ",@Vips$,@dias);
387 for(@i = 0; @i < getarraysize(@Vips$); @i++){
388 mes "-----------------------------------";
389 mes "|-- ^FF0000"+@dias[@i]/1440+"^000000 Dias --> Conta: ^FF0000"+@Vips$[@i]+"^000000 ";
390 }
391 close;
392
393 case 4: goto OnStartG;
394 }
395
396 case 2:
397 mes "[ ^0065DFGerente^000000 ]";
398 mes "Nessa área tenho total poder de manipular os dados de CASH do servidor.";
399 mes "Basta você me indicar o que quer fazer que eu executo a ação.";
400 mes "Porfavor escolha uma das opções.";
401 next;
402 switch(select("Adicionar CASHs","Remover CASHs","Voltar ao menu principal")) {
403
404 case 1:
405 mes "[ ^0065DFGerente^000000 ]";
406 mes "Ok, agora preciso coletar os dados da conta do usuário que irei adicionar os CASHs.";
407 mes "Digite o Login da Conta.";
408 next;
409 input .@Conta$;
410 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@Conta$+"'",.@ContaEx);
411 if(.@ContaEx==0) {
412 mes "^FF0000***ERROR***^000000";
413 mes " ";
414 mes "Você não digitou uma conta válida.";
415 mes " ";
416 mes "^FF0000Fechando conexão^000000";
417 close;
418 }
419 query_sql ("SELECT `value` FROM `acc_reg_num_db` WHERE `key`='#CASHPOINTS' AND `account_id` = '"+.@ContaEx+"'",.@valor);
420 mes "Essa conta possui "+.@valor+" CASHs.";
421 mes "Digite a quantidade de CASH que deseja adicionar nesta conta.";
422 mes "^FF0000**Dica: Digite '0' para cancelar.^000000";
423 next;
424 input .@cash;
425 if(.@cash==0) {
426 mes "Ação cancelada.";
427 mes " ";
428 mes "^FF0000***Fechando conexão***^000000";
429 close;
430 }
431 mes "[ ^0065DFGerente^000000 ]";
432 mes "Eu irei adicionar: ^FF0000"+.@cash+"^000000 CASH's na conta: ^FF0000"+.@Conta$+"^000000.";
433 mes "Estes dados estão corretos?";
434 next;
435 if(select("Sim","Não")==2) {
436 mes "[ ^0065DFGerente^000000 ]";
437 mes "Encerrando conexão...";
438 mes "Limpando dados...";
439 mes "Conexão encerrada!";
440 close;
441 }
442 if(getarraysize(.@valor)) { query_sql "UPDATE `acc_reg_num_db` SET `value` = `value` + '"+.@cash+"' WHERE `key`='#CASHPOINTS' AND `account_id` = '"+.@ContaEx+"'";
443 }else{ query_sql "INSERT INTO `acc_reg_num_db` (`account_id`, `key`, `index`, `value`) VALUES ('"+.@ContaEx+"', '#CASHPOINTS', '0', '"+.@cash+"')"; }
444 next;
445 mes "[ ^0065DFGerente^000000 ]";
446 mes "Comando efetuado com SUCESSO!";
447 mes "CASHs adicionados.";
448 close;
449
450 case 2:
451 mes "[ ^0065DFGerente^000000 ]";
452 mes "Ok, agora preciso coletar os dados da conta do usuário que irei remover os CASHs.";
453 mes "Digite o Login da Conta.";
454 next;
455 input .@Conta$;
456 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@Conta$+"'",.@ContaEx);
457 if(.@ContaEx==0) {
458 mes "^FF0000***ERROR***^000000";
459 mes " ";
460 mes "Você não digitou uma conta válida.";
461 mes " ";
462 mes "^FF0000Fechando conexão^000000";
463 close;
464 }
465 mes "[ ^0065DFGerente^000000 ]";
466 query_sql "SELECT `value` FROM `acc_reg_num_db` WHERE `key` ='#CASHPOINTS' AND `account_id` = '"+.@ContaEx+"'",.@valor;
467 mes "Essa conta possui "+.@valor+" CASHs.";
468 mes "Digite a quantidade de CASHs que deseja remover dessa conta.";
469 mes "^FF0000**Dica: Digite '0' para cancelar.^000000";
470 next;
471 input .@cash;
472 if(.@cash==0) {
473 mes "Ação cancelada.";
474 mes " ";
475 mes "^FF0000***Fechando conexão***^000000";
476 close;
477 }
478 mes "[ ^0065DFGerente^000000 ]";
479 mes "Eu irei remover: ^FF0000"+.@cash+"^000000 CASH's da conta: ^FF0000"+.@Conta$+"^000000.";
480 mes "Estes dados estão corretos?";
481 next;
482 if(select("Sim","Não")==2) {
483 mes "[ ^0065DFGerente^000000 ]";
484 mes "Encerrando conexão...";
485 mes "Limpando dados...";
486 mes "Conexão encerrada!";
487 close;
488 }
489 if(.@valor < @cash) {
490 mes "[ ^0065DFGerente^000000 ]";
491 mes "Essa conta possui um valor menor do que você solicitou.";
492 mes "Conexão encerrada";
493 close;
494 }
495 if(getarraysize(.@valor)) { query_sql "UPDATE `acc_reg_num_db` SET `value` = `value` - '"+.@cash+"' WHERE `key`='#CASHPOINTS' AND `account_id` = '"+.@ContaEx+"'";
496 }else{ query_sql "INSERT INTO `acc_reg_num_db` (`account_id`, `key`, `index`, `value`) VALUES ('"+.@ContaEx+"', '#CASHPOINTS', '0', '"+.@cash+"')"; }
497 next;
498 mes "[ ^0065DFGerente^000000 ]";
499 mes "Comando efetuado com SUCESSO!";
500 mes "CASHs removidos.";
501 close;
502
503 case 3: goto OnStartG;
504 }
505 case 3:
506 mes "[ ^0065DFGerente^000000 ]";
507 mes "Nessa área posso adicionar e retirar itens da Loja de CASH.";
508 mes "Basta você me indicar o que quer fazer que eu executo a ação.";
509 mes "Porfavor escolha uma das opções.";
510 next;
511 switch(select("Adicionar Item","Retirar Item","Atualizar Itens")) {
512
513 case 1:
514 mes "[ ^0065DFGerente^000000 ]";
515 mes "Insira o ID do item.";
516 input .@Id;
517 next;
518 if(getitemname(.@Id) == "null") {
519 mes "[ ^0065DFGerente^000000 ]";
520 mes "Não existe nenhum item com esse ID.";
521 close;
522 }
523 mes "Insira o preço do item. (Cash)";
524 input .@Qtd;
525 if(.@Qtd == 0) {
526 mes "[ ^0065DFGerente^000000 ]";
527 mes "AVISO O ITEM ESTÃ SENDO VENDIDO GRATUITAMENTE!";
528 }
529 next;
530 mes "[ ^0065DFGerente^000000 ]";
531 mes "Item à adicionar ao Shop:";
532 mes "^EEAD2D"+getitemname(.@Id)+"^000000";
533 mes "ID do Item: ^EEAD2D"+.@Id+"^000000";
534 mes "Preço: ^EEAD2D"+.@Qtd+" Cash's^000000";
535 next;
536 if(select("Prosseguir","Cancelar")==2) { close; }
537 query_sql ("INSERT INTO `cash_shop` (nameid,price) VALUES ("+.@Id+","+.@Qtd+")");
538 mes "[ ^0065DFGerente^000000 ]";
539 mes "Item adicionado com sucesso.";
540 callfunc "UpdateShop",0;
541 close;
542
543 case 2:
544 mes "[ ^0065DFGerente^000000 ]";
545 mes "Insira o ID do item.";
546 input .@Id;
547 next;
548 query_sql ("SELECT `id`,`nameid` FROM `cash_shop` WHERE `nameid`="+.@Id,.@Id1,.@Id2);
549 mes "[ ^0065DFGerente^000000 ]";
550 if(!.@Id2) {
551 mes "Este item não existe no shop.";
552 close;
553 }
554 mes "Item à retirar do Shop:";
555 mes "^EEAD2D"+getitemname(.@Id)+"^000000";
556 mes "ID do Item: ^EEAD2D"+.@Id+"^000000";
557 next;
558 if(select("Prosseguir","Cancelar")==2) { close; }
559 query_sql ("DELETE FROM `cash_shop` WHERE `nameid`="+.@Id);
560 npcshopdelitem "cash_shop",.@Id;
561 next;
562 mes "[ ^0065DFGerente^000000 ]";
563 mes "Item retirado com sucesso.";
564 callfunc "UpdateShop",0;
565 close;
566
567 case 3:
568 mes "[ ^0065DFGerente^000000 ]";
569 mes "Deseja atualizar o Shop?";
570 if(select("Não","Sim")==1) { close; };
571 .@a = 1;
572 callfunc "UpdateShop",0;
573 next;
574 mes "[ ^0065DFGerente^000000 ]";
575 mes "Shop atualizado com sucesso.";
576 close;
577 }
578
579 case 4:
580 mes "[ ^0065DFGerente^000000 ]";
581 mes "Nessa área tenho total poder de Banir qualquer Conta do servidor.";
582 mes "Basta você me indicar quem quer banir que eu executo a ação.";
583 mes "Porfavor escolha uma das opções.";
584 next;
585 switch(select("Banir Conta","Desbanir Conta","Ver Contas Banidas","Retornar ao menu principal")) {
586
587 case 1:
588 mes "[ ^0065DFGerente^000000 ]";
589 mes "Ok, agora preciso coletar os dados da conta do usuário que irei Banir.";
590 mes "Digite o Login da Conta.";
591 next;
592 input @ban$;
593 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+@ban$+"'",.@NExiste);
594 if(!.@NExiste){
595 mes "^FF0000***ERROR***^000000";
596 mes " ";
597 mes "Você não digitou uma conta válida.";
598 mes " ";
599 mes "^FF0000Fechando conexão^000000";
600 close;
601 }
602 mes "[ ^0065DFGerente^000000 ]";
603 mes "Tem certeza que quer banir a conta: ^FF0000"+@ban$+"^000000?";
604 next;
605 if(select("Sim","Não")==1) {
606 mes "Comando efetuado com SUCESSO!";
607 mes "Conta Banida.";
608 close2;
609 query_sql ("SELECT `char_id` FROM `char` WHERE `account_id`='"+.@NExiste+"'",.@Kick);
610 for(@i = 0; @i < getarraysize(.@Kick); @i++) {
611 atcommand "@kick "+.@Kick[@i];
612 }
613 query_sql ("UPDATE `login` SET `state`='5' WHERE `userid`='"+@ban$+"'");
614 end;
615 }
616 mes "[ ^0065DFGerente^000000 ]";
617 mes "Encerrando conexão...";
618 mes "Limpando dados...";
619 mes "Conexão encerrada!";
620 close;
621
622 case 2:
623 next;
624 mes "[ ^0065DFGerente^000000 ]";
625 mes "Ok, agora preciso coletar os dados da conta do usuário que irei Desbanir.";
626 mes "Digite o Login da Conta.";
627 next;
628 input @ban$;
629 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+@ban$+"'",.@NExiste);
630 if(!.@NExiste){
631 mes "^FF0000***ERROR***^000000";
632 mes " ";
633 mes "Você não digitou uma conta válida.";
634 mes " ";
635 mes "^FF0000Fechando conexão^000000";
636 close;
637 }
638 mes "[ ^0065DFGerente^000000 ]";
639 mes "Comando efetuado com SUCESSO!";
640 mes "Conta Desbanida.";
641 close2;
642 query_sql ("UPDATE `login` SET `state`='0' WHERE `userid`='"+@ban$+"'");
643 end;
644
645 case 3:
646 query_sql("SELECT `userid` FROM `login` WHERE `state`>=5",@ban$);
647 for(@i = 0; @i < getarraysize(@ban$); @i++) {
648 mes "-----------------------------------";
649 mes "| --> ^FF0000"+@nBan$[@i]+"^000000 ";
650 }
651 close;
652
653 case 4: goto OnStartG;
654 }
655
656 case 5:
657 mes "[ ^0065DFGerente^000000 ]";
658 mes "Escolha a posição de Staff que deseja adicionar.";
659 next;
660 switch(select("Administrador ^CD0000(99)^000000","Game Master ^CD0000(60)^000000","Game Helper ^CD0000(40)^000000","Retirar Staff","Retornar ao menu principal")) {
661
662 case 1: .@NvGM = 99; goto AddGM;
663 case 2: .@NvGM = 10; goto AddGM;
664 case 3: .@NvGM = 4; goto AddGM;
665 case 4: .@NvGM = 0; goto AddGM;
666
667 AddGM:
668 mes "[ ^0065DFGerente^000000 ]";
669 mes "Digite o Login da conta.";
670 next;
671 input .@ContaGM$;
672 query_sql ("SELECT `account_id` FROM `login` WHERE `userid`='"+.@ContaGM$+"'",.@nGM);
673 if(.@nGM==0) { next; mes "A conta não existe."; close; }
674 next;
675 mes "[ ^0065DFGerente^000000 ]";
676 if(.@NvGM==0) mes "Estou retirando a posição de staff na conta: '"+.@ContaGM$+"'.";
677 else mes "Estou adicionando a posição de staff na conta: '"+.@ContaGM$+"'.";
678 query_sql ("UPDATE `login` SET `group_id`='"+.@NvGM+"' WHERE `userid`='"+.@ContaGM$+"'");
679 next;
680 mes "[ ^0065DFGerente^000000 ]";
681 if(.@NvGM==0) mes "Pronto, retirado.";
682 else mes "Pronto, adicionado.";
683 close;
684
685 case 5: goto OnStartG;
686 }
687
688 case 6:
689 next;
690 mes "[ ^0065DFGerente^000000 ]";
691 mes "Ok, até mais.";
692 close;
693 }
694 }
695}
696
697- script CtrlVip -1,{
698
699OnClock0001:
700 if($VipMode==2) {
701 query_sql "UPDATE `login` SET `Vip`=`Vip`-1440 WHERE `group_id`='1'";
702 sleep2 5000;
703 query_sql "UPDATE `login` SET `group_id`='0' , `Vip`='0' WHERE `Vip`<='0' AND `group_id`='1'";
704 }
705 end;
706
707OnPCLoginEvent:
708 if(getgroupid()==$@VipAc) { end; }
709 if(getgroupid()>=$@NvVip) { if($@ExpBonus==1) { sc_start SC_CASH_PLUSEXP,60000000,$@ExpRate[0]; } if($@ExpBonus==2) { sc_start SC_CASH_RECEIVEITEM,60000000,$@ExpRate[1]; } if($@ExpBonus==3) { sc_start SC_CASH_PLUSEXP,60000000,$@ExpRate[0]; sc_start SC_CASH_RECEIVEITEM,60000000,$@ExpRate[1]; }
710 if($@VipGratis==1) { if(#VipFree!=1) { query_sql ("UPDATE `login` SET `Vip`='"+$@VipGDias+"'*'1440' , `group_id`='"+$@NvVip+"' WHERE `account_id`="+getcharid(3)+"");
711 #VipFree = 1;
712 #VipOk = 1;
713 mes "[Sistema Vip]";
714 mes "Você acaba de ganhar "+$@VipGDias+" dias de Vip!";
715 mes "Para que a alterações sejam válidas você precisará relogar.";
716 mes "Deseja relogar agora?";
717 next;
718 if(select("Sim","Não")==2){ mes "[Sistema Vip]"; mes "Bom jogo!"; close; }
719 mes "[Sistema Vip]";
720 mes "Relogando...";
721 close2;
722 atcommand "@kick "+getcharid(0); end; }
723 }
724 }
725
726if($VipMode==1) {
727OnLoop:
728 query_sql ("SELECT `group_id` , `Vip` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",@Out,@Vip);
729 @DiasOut = @Vip;
730 if(@CheckLog!=1) { callfunc "CheckDias",0; @CheckLog = 1; }
731 sleep2 60000;
732 query_sql ("UPDATE `login` SET `group_id`='0' WHERE `Vip`<='0' AND `group_id`='"+$@NvVip+"' AND `account_id`="+getcharid(3)+"");
733 if(@DiasOut<=0 && #VipOk==1) {
734 #VipOk = 0;
735 mes "[Sistema Vip]";
736 mes "Seus dias de VIP acabaram.";
737 mes "Recarregue para desfrutar das vantagens VIP.";
738 mes " ";
739 mes "Relogando conta para atualização do sistema.";
740 sleep2 5000;
741 atcommand "@kick "+getcharid(0); end; }
742 if(@Out>=1 && @Out<=40) {
743 @DiasOut = @DiasOut-1;
744 query_sql ("UPDATE `login` SET `Vip`='"+@DiasOut+"' WHERE `account_id`="+getcharid(3)+"");
745 if(@DiasOut<=5) { callfunc "CheckDias",0; }
746 goto OnLoop;
747 }
748 goto OnLoop; end;
749}
750callfunc "CheckDias",0;
751end;
752
753OnPCLogoutEvent:
754 query_sql ("SELECT `Vip` , `group_id` FROM `login` WHERE `account_id`='"+getcharid(3)+"'",@Out,@Vip);
755 if(@Out<0) { query_sql ("UPDATE `login` SET `Vip`='0' WHERE `account_id`="+getcharid(3)+""); end; }
756 if(@Vip<=0) { query_sql ("UPDATE `login` SET `Vip`='0' WHERE `account_id`="+getcharid(3)+""); end; }
757 end;
758
759OnInit:
760 sleep2 2000;
761 for(.@c = 0;.@c < getarraysize($itens2);.@c = .@c+2){ npcshopdelitem "cash_shop",$itens2[.@c]; }
762 callfunc "UpdateShop",0;
763}
764
765function script CheckDias {
766
767 if(@Out>=1 && @Out<=3) {
768 if(@Vip<=60 && @Vip>0) {
769 @temp = @DiasOut;
770 if(@temp<1) { dispbottom "[Sistema Vip]: Você tem alguns segundos VIP restante."; goto Retorno; end; }
771 if(@temp==1) { dispbottom "[Sistema Vip]: Você tem 1 minuto VIP restante."; goto Retorno; end; }
772 dispbottom "[Sistema Vip]: Você tem "+@temp+" minutos VIP restantes."; goto Retorno; end; }
773
774 if(@Vip<=1440 && @Vip>60) {
775 @temp = @DiasOut/60;
776 if(@temp==1) { dispbottom "[Sistema Vip]: Você tem 1 hora VIP restante."; goto Retorno; end; }
777 dispbottom "[Sistema Vip]: Você tem "+@temp+" horas VIP restantes."; goto Retorno; end; }
778
779 if(@Vip>1440) {
780 @temp = @DiasOut/1440;
781 if(@temp==1) { dispbottom "[Sistema Vip]: Você tem 1 dia VIP restante."; goto Retorno; end; }
782 dispbottom "[Sistema Vip]: Você tem "+@temp+" dias VIP restantes."; goto Retorno; end; }
783 }
784 Retorno:
785 return;
786}
787
788function script AddVip {
789
790 query_sql "SELECT `Vip` FROM `login` WHERE `account_id`='"+getarg(0)+"'",@Out;
791 @dias = @Out+(1440*getarg(1));
792 query_sql "UPDATE `login` SET `Vip`='"+@dias+"' , `group_id`='"+$@NvVip+"' WHERE `account_id`='"+getarg(0)+"'";
793 dispbottom "[Sistema Vip]: Foram adicionados "+getarg(1)+" dias Vip com sucesso!";
794 #VipOk = 1;
795 if(getgroupid()<$@NvVip) {
796 dispbottom "[Sistema Vip]: Relogando conta para aplicar as alterações!";
797 sleep2 5000;
798 atcommand "@kick "+getcharid(0);
799 }
800}
801
802- script VipCmd -1,{
803OnInit:
804 bindatcmd "cmdvip",strnpcinfo(3)+"::OnAtcommand";
805 if($@StorageVip==1) { bindatcmd "storage",strnpcinfo(3)+"::OnAtcommand2"; }
806 end;
807
808OnAtcommand:
809 if(getgroupid()==$@VipAc) callfunc "Gerente#Syn",0;
810 end;
811OnAtcommand2:
812 if(getgroupid()>=1 && getgroupid()<=3) {
813 if(#passstore==1) {
814 dispbottom "Digite a senha do armazém.";
815 input @pass$;
816 if(@pass$==#pass$) { dispbottom "Acesso ao armazém liberado."; openstorage; end; }
817 dispbottom "Senha inválida."; end; }
818 }
819 openstorage; end;
820}
821
822function script UpdateShop {
823 $@InitShop = 1;
824 npcshopattach "cash_shop";
825 npcshopdelitem "cash_shop",512;
826 for(.@c = 0;.@c < getarraysize($@cash_shop);.@c++){
827 npcshopdelitem "cash_shop",$@cash_shop[.@c];
828 }
829 query_sql ("SELECT `nameid` , `price` FROM `cash_shop` WHERE `id`<'129' ORDER BY `nameid` asc",$@cash_shop,$@valoritem);
830 for(.@i = 0;.@i!=getarraysize($@cash_shop);.@i++) {
831 npcshopadditem "cash_shop",$@cash_shop[.@i],$@valoritem[.@i];
832 }
833 if(getarraysize($@cash_shop)>=128) {
834 query_sql ("SELECT `nameid` , `price` FROM `cash_shop` WHERE `id`>'127' ORDER BY `nameid` asc",$@cash_shop2,$@valoritem2);
835 for(.@i = 0;.@i!=getarraysize($@cash_shop2);.@i++) {
836 npcshopadditem "cash_shop",$@cash_shop2[.@i],$@valoritem2[.@i];
837 }
838 } return;
839}
840
841- cashshop cash_shop -1,512:100
842//- Arena 04 --------------------------------------------
843job_wiz mapflag gvg off
844job_wiz mapflag nowarp
845job_wiz mapflag noteleport
846job_wiz mapflag nowarpto
847job_wiz mapflag nobranch
848job_wiz mapflag nosave SavePoint
849job_wiz mapflag nomemo
850job_wiz mapflag nopenalty