· 9 years ago · Feb 05, 2017, 01:46 AM
1// ===========================================================
2//===== Cronus Script ========================================
3//= Sistema Pack Guild 2.2
4//===== Por: =================================================
5//= Adriano Barbosa
6//===== Versão Atual: ========================================
7//= 2.2
8//===== Compatibilidade: =====================================
9//= Cronus Emulador
10//===== Descrição: ===========================================
11// Entrega o Pack Guild automaticamente para o Lider da Guild.
12// Itens entregues conforme o Numero de Player OnLine.
13// Numero minimo de Player para Receber o Pack Guild é 15.
14// Contas com IP Semelhantes serão Barrados no Sistema.
15// Guild's que recebem o Pack Guild são fixadas na Tabela SQL.
16// Sera anunciado o Nome da Guild quando Receber o Pack Guild.
17// Quando um Player sai da Guild que Recebeu o Pack Guild os Itens contidos na Conta Dele são Deletados.(OBS: Apenas os Itens do Pack Guild.)
18// NPC Só entrega os Item se houver espaço no inventario do Lider.
19// Player's com o Mesmo IP do Lider não serão computados.
20//============================================================
21/*
22CREATE TABLE IF NOT EXISTS `pack_guild` (
23 `char_id` int(10) NOT NULL,
24 `acc_id` int(10) NOT NULL,
25 `master` varchar(32) NOT NULL,
26 `guild_id` int(10) NOT NULL,
27 `name` varchar(32) NOT NULL,
28 `data` datetime NOT NULL,
29 `pack_guild` int(32) NOT NULL,
30 `ip` varchar(100) NOT NULL,
31 PRIMARY KEY (`char_id`)
32) ENGINE=MyISAM DEFAULT CHARSET=latin1;
33*/
34
35prontera,156,170,6 script Pack Guild 803,{
36
37 set .nn$, "[^D90000"+strnpcinfo(1)+"^000000]";
38
39 set @GID, getcharid(2);
40 query_sql "SELECT `char_id`, `acc_id`, `master`, `guild_id`, `name`, `data`, `pack_guild` FROM `pack_guild` WHERE `char_id` = '"+getcharid(0)+"'", @charid, @accid, @master$, @guildid, @nameg$, @date$, @PKG;
41
42 mes .nn$;
43 mes "Olá ^0000FF"+strcharinfo(0)+"^000000 oque Deseja ?";
44 next;
45 switch(select("- Receber Pack Guild:- Informações:- Nada")){
46 case 1:
47 if(@GID != 0){ //LÃder do Clã, com excessão dos Membros
48 if(getguildmaster(@GID) == strcharinfo(0)){ //Outros membros, com excessão ao LÃder
49 if(@guildid != @GID){
50 query_sql "SELECT `last_ip` FROM `login` WHERE `account_id` = '"+getcharid(3)+"'",@LIP$;
51 query_sql "SELECT `ip` FROM `pack_guild` WHERE `ip` = '"+@LIP$+"'",@GIP$;
52 if(@GIP$ != @LIP$){
53 mes .nn$;
54 mes "Para Receber o Pack Guild toda sua Guild deve estar Presente.";
55 mes "^FF0000"+strcharinfo(0)+"^000000 gostaria de Receber seu Pack Guild ?";
56 next;
57 if(select("- Sim:- Não")==2)close;
58 query_sql "SELECT `char_id`,`account_id`,`name` FROM `char` WHERE `guild_id` = '"+@GID+"' ORDER BY `char_id`,`account_id`,`name` DESC ", @vCharId, @vAccId, @vName$;
59 set @peso, 0;
60 set @rPeso, MaxWeight - Weight;
61 query_sql "SELECT COUNT(*) FROM `char` WHERE `online` = 1 AND `guild_id` = '"+@GID+"'", @Cont;
62 set @Cont, @Cont +1;
63 for(set @i, 0; @i < getarraysize(@vCharId); set @i, @i+1){
64 query_sql "SELECT `last_ip` FROM `login` WHERE `account_id` = '"+@vAccId[@i]+"'", @vLip$;
65 if(@vLip$ == @LIP$){
66 set @Cont, @Cont -1;
67 }
68 }
69 if(@Cont <= 2){
70 mes .nn$;
71 mes "O MÃnimo de Player Online para Receber o Pack Guild é 15.";
72 close;
73 }
74 else if(@Cont >= 1){
75 for(set @i,0; @i < getarraysize($PackGuild1); set @i,@i+1) set @peso, @peso + getiteminfo($PackGuild1,6);
76 if(@peso <= @rPeso){
77 mes .nn$;
78 mes "Sua Guild contem ^00FF00["+@Cont+"]^000000 Membros Online e ira receber o Pack Guild 1.";
79 close2;
80 set @Time$, gettimestr("%Y-%m/%d %H:%M:%S",21);
81 //for(set @i, 0; @i < getarraysize($PackGuild1); set @i, @i+1) getitem2 $PackGuild1[@i],$PackQnt1[@i],getcharid(2),0,0,0,0,0,0;
82 for(set @i, 0; @i < getarraysize($PackGuild1); set @i, @i+1) query_sql "INSERT INTO `storage` (`id`, `account_id`, `nameid`, `amount`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, `expire_time`) VALUES (NULL, '"+getcharid(3)+"', '"+$PackGuild1[@i]+"', '"+$PackQnt1[@i]+"', '"+getcharid(2)+"', '0', '0', '0', '0', '0', '0', '0')";
83 announce "[AVISO] A Guild ["+strcharinfo(2)+"] acaba de Receber o Pack Guild.",bc_all;
84 query_sql "INSERT INTO `pack_guild` (`char_id`, `acc_id`, `master`, `guild_id`, `name`, `data`, `pack_guild`, `ip`) VALUES ("+getcharid(0)+", "+getcharid(3)+", '"+strcharinfo(0)+"', "+getcharid(2)+", '"+strcharinfo(2)+"', '"+@Time$+"', '"+@Cont+"', '"+@LIP$+"')";
85 atcommand "@kick "+strcharinfo(0);
86 end;
87 }
88 else{
89 mes .nn$;
90 mes "Seu Personagem não suporta o Peso do Pack Guild.";
91 close;
92 }
93 }
94 else if(@Cont >= 1){
95 for(set @i,0; @i < getarraysize($PackGuild1); set @i,@i+1) set @peso, @peso + getiteminfo($PackGuild1,6);
96 if(@peso <= @rPeso){
97 mes .nn$;
98 mes "Sua Guild contem ^00FF00["+@Cont+"]^000000 Membros Online e ira receber o Pack Guild 2.";
99 close2;
100 //for(set @i, 0; @i < getarraysize($PackGuild2); set @i, @i+1) getitem2 $PackGuild2[@i],$PackQnt2[@i],getcharid(2),0,0,0,0,0,0;
101 for(set @i, 0; @i < getarraysize($PackGuild2); set @i, @i+1) query_sql "INSERT INTO `storage` (`id`, `account_id`, `nameid`, `amount`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, `expire_time`) VALUES (NULL, '"+getcharid(3)+"', '"+$PackGuild2[@i]+"', '"+$PackQnt2[@i]+"', '"+getcharid(2)+"', '0', '0', '0', '0', '0', '0', '0')";
102 announce "[AVISO] A Guild ["+strcharinfo(2)+"] acaba de Receber o Pack Guild.",bc_all;
103 query_sql "INSERT INTO `pack_guild` (`char_id`, `acc_id`, `master`, `guild_id`, `name`, `data`, `pack_guild`, `ip`) VALUES ("+getcharid(0)+", "+getcharid(3)+", '"+strcharinfo(0)+"', "+getcharid(2)+", '"+strcharinfo(2)+"', '"+@Time$+"', '"+@Cont+"', '"+@LIP$+"')";
104 end;
105 }
106 else{
107 mes .nn$;
108 mes "Seu Personagem não suporta o Peso do Pack Guild.";
109 close;
110 }
111 }
112 else if(@Cont > 1){
113 for(set @i,0; @i < getarraysize($PackGuild1); set @i,@i+1) set @peso, @peso + getiteminfo($PackGuild1,6);
114 if(@peso <= @rPeso){
115 mes .nn$;
116 mes "Sua Guild contem ^00FF00["+@Cont+"]^000000 Membros Online e ira receber o Pack Guild 3.";
117 close2;
118 //for(set @i, 0; @i < getarraysize($PackGuild3); set @i, @i+1) getitem2 $PackGuild3[@i],$PackQnt3[@i],getcharid(2),0,0,0,0,0,0;
119 for(set @i, 0; @i < getarraysize($PackGuild3); set @i, @i+1) query_sql "INSERT INTO `storage` (`id`, `account_id`, `nameid`, `amount`, `identify`, `refine`, `attribute`, `card0`, `card1`, `card2`, `card3`, `expire_time`) VALUES (NULL, '"+getcharid(3)+"', '"+$PackGuild3[@i]+"', '"+$PackQnt3[@i]+"', '"+getcharid(2)+"', '0', '0', '0', '0', '0', '0', '0')";
120 announce "[AVISO] A Guild ["+strcharinfo(2)+"] acaba de Receber o Pack Guild.",bc_all;
121 query_sql "INSERT INTO `pack_guild` (`char_id`, `acc_id`, `master`, `guild_id`, `name`, `data`, `pack_guild`, `ip`) VALUES ("+getcharid(0)+", "+getcharid(3)+", '"+strcharinfo(0)+"', "+getcharid(2)+", '"+strcharinfo(2)+"', '"+@Time$+"', '"+@Cont+"', '"+@LIP$+"')";
122 end;
123 }
124 else{
125 mes .nn$;
126 mes "Seu Personagem não suporta o Peso do Pack Guild.";
127 close;
128 }
129 }
130 } else {
131 mes .nn$;
132 mes "Você recebeu o Pack Guild Recentemente.";
133 close;
134 }
135 } else {
136 mes .nn$;
137 mes "Sua Guild ja Recebeu o Pack Guild.";
138 close;
139 }
140 } else {
141 mes .nn$;
142 mes "Desculpe mas só converso com Lideres de Guild.";
143 close;
144 }
145 } else {
146 mes .nn$;
147 mes "Desculpe mas só converso com Lideres de Guild.";
148 close;
149 }
150
151 case 2:
152 mes .nn$;
153 mes "Oque gostaria de Saber Sobre o Pack Guild ?";
154 next;
155 switch(select("- Oque é Pack Guild:- Como Receber:- Premios:- Nada")){
156 case 1:
157 mes .nn$;
158 mes "Pack Guild é um Incentivo para que Jogadores de outros Servidores";
159 mes "e sua Guild venham Jogar em Nosso Servidor.";
160 close;
161
162 case 2:
163 mes .nn$;
164 mes "Apenas o Lider da Guild Pode Receber o Pack Guild e junto a ele os Membros da Guild.";
165 mes "Para Receber o Pack Guild devem estar Online no minimo 15 Player's.";
166 mes "^FF0000[1]^000000 - 15 Player's ^C90000-^000000 Pack Guild 1.";
167 mes "^FF0000[2]^000000 - 20 Player's ^C90000-^000000 Pack Guild 2.";
168 mes "^FF0000[3]^000000 - 25 Player's ^C90000-^000000 Pack Guild 3.";
169 close;
170
171 case 3:
172 mes "-----------------------------------";
173 mes " Informações - Pack 1 ";
174 mes "-----------------------------------";
175 for(set @i, 0; @i < getarraysize($PackGuild1); set @i, @i + 1) mes "[^FF0000"+$PackQnt1[@i]+"^000000] <-> [^C90000"+getitemname($PackGuild1[@i])+"^000000].";
176 next;
177 mes "-----------------------------------";
178 mes " Informações - Pack 2 ";
179 mes "-----------------------------------";
180 for(set @i, 0; @i < getarraysize($PackGuild2); set @i, @i + 1) mes "[^FF0000"+$PackQnt2[@i]+"^000000] <-> [^C90000"+getitemname($PackGuild2[@i])+"^000000].";
181 next;
182 mes "-----------------------------------";
183 mes " Informações - Pack 3 ";
184 mes "-----------------------------------";
185 for(set @i, 0; @i < getarraysize($PackGuild3); set @i, @i + 1) mes "[^FF0000"+$PackQnt3[@i]+"^000000] <-> [^C90000"+getitemname($PackGuild3[@i])+"^000000].";
186 close;
187 }
188
189 case 3:
190 mes .nn$;
191 mes "Volte sempre.";
192 close;
193 }
194OnInit:
195 //waitingroom strnpcinfo(1),0;
196//===== Itens do Pack Guild 1: ===============================
197 setarray $PackGuild1[0], 2410,2524,2357;
198 setarray $PackQnt1[0], 1,1,1;
199//============================================================
200//===== Itens do Pack Guild 2: ===============================
201 setarray $PackGuild2[0], 13017,4305,4503;
202 setarray $PackQnt2[0], 1,1,1;
203//============================================================
204//===== Itens do Pack Guild 3: ===============================
205 setarray $PackGuild3[0], 4140,1108,1208;
206 setarray $PackQnt3[0], 1,1,1;
207//============================================================
208end;
209}
210
211- script RMVPI -1,{
212OnPCLoginEvent:
213
214//===== Itens de Todos os Pack Guild: ========================
215 setarray .@ITEM[0], 2410,2524,2357,13017,4305,4503,4140,1108,1208;
216//============================================================
217
218 query_sql "SELECT `char_id`,`nameid`,`amount`,`identify` FROM `inventory` WHERE `char_id` = '"+getcharid(0)+"' ORDER BY `char_id`,`nameid`,`amount`,`identify` DESC", @charid, .@IDI, @AMT, .@IDF;
219 query_sql "SELECT `char_id`,`nameid`,`amount`,`identify` FROM `cart_inventory` WHERE `char_id` = '"+getcharid(0)+"' ORDER BY `char_id`,`nameid`,`amount`,`identify` DESC", @charidCI, .@IDIci, @AMTci, .@IDFci;
220 query_sql "SELECT `account_id`,`nameid`,`amount`,`identify` FROM `storage` WHERE `account_id` = '"+getcharid(3)+"' ORDER BY `account_id`,`nameid`,`amount`,`identify` DESC", @charidS, .@IDIs, @AMTs, .@IDFs;
221 query_sql "SELECT `guild_id`,`nameid`,`amount`,`identify` FROM `guild_storage` WHERE `guild_id` = '"+getcharid(2)+"' ORDER BY `guild_id`,`nameid`,`amount`,`identify` DESC", @guildid, .@IDIgs, @AMTgs, .@IDFgs;
222 query_sql "SELECT COUNT(*) FROM `inventory`", @CNT;
223
224 for(set .@i, 0; .@i < @CNT;set .@i,.@i +1){
225 for(set @n, 0; @n < getarraysize(.@ITEM);set @n,@n +1){
226 if(.@IDI[.@i] == .@ITEM[@n]){
227 if(.@IDF[.@i] == getcharid(2)){ end;}
228 else if(.@IDF[.@i] <= 1){ end; }
229 else{
230 dispbottom "Você contem Itens que não lhe Pertencem.";
231 sleep2 2000;
232 dispbottom "Você sera Deslogado para a remoção do Item.";
233 sleep2 2000;
234 for(set .@a, 10; .@a > 0; set .@a,.@a -1) unequip(.@a);
235 query_sql "DELETE FROM `inventory` WHERE `nameid` = '"+.@IDI[.@i]+"' AND `identify` = '"+.@IDF[.@i]+"' AND `char_id` = '"+getcharid(0)+"'";
236 atcommand "@kick "+strcharinfo(0);
237 end;
238 }
239 }
240 else if(.@IDIci[.@i] == .@ITEM[@n]){
241 if(.@IDFci[.@i] == getcharid(2)){ end;}
242 else if(.@IDFci[.@i] <= 1){ end; }
243 else{
244 dispbottom "Você contem Itens que não lhe Pertencem.";
245 sleep2 2000;
246 dispbottom "Você sera Deslogado para a remoção do Item.";
247 sleep2 2000;
248 for(set .@a, 10; .@a > 0; set .@a,.@a -1) unequip(.@a);
249 query_sql "DELETE FROM `cart_inventory` WHERE `nameid` = '"+.@IDIci[.@i]+"' AND `identify` = '"+.@IDFci[.@i]+"' AND `char_id` = '"+getcharid(0)+"'";
250 atcommand "@kick "+strcharinfo(0);
251 end;
252 }
253 }
254 else if(.@IDIs[.@i] == .@ITEM[@n]){
255 if(.@IDFs[.@i] == getcharid(2)){ end;}
256 else if(.@IDFs[.@i] <= 1){ end; }
257 else{
258 dispbottom "Você contem Itens que não lhe Pertencem.";
259 sleep2 2000;
260 dispbottom "Você sera Deslogado para a remoção do Item.";
261 sleep2 2000;
262 query_sql "DELETE FROM `storage` WHERE `nameid` = '"+.@IDIs[.@i]+"' AND `identify` = '"+.@IDFs[.@i]+"' AND `account_id` = '"+getcharid(3)+"'";
263 atcommand "@kick "+strcharinfo(0);
264 end;
265 }
266 }
267 else if(.@IDIgs[.@i] == .@ITEM[@n]){
268 if(.@IDFgs[.@i] == getcharid(2)){ end;}
269 else if(.@IDFgs[.@i] <= 1){ end; }
270 else{
271 dispbottom "Você contem Itens que não lhe Pertencem.";
272 sleep2 2000;
273 dispbottom "Você sera Deslogado para a remoção do Item.";
274 sleep2 2000;
275 query_sql "DELETE FROM `guild_storage` WHERE `nameid` = '"+.@IDIgs[.@i]+"' AND `identify` = '"+.@IDFgs[.@i]+"' AND `guild_id` = '"+getcharid(2)+"'";
276 atcommand "@kick "+strcharinfo(0);
277 end;
278 }
279 }
280 }
281 }
282end;
283}