· 9 years ago · Jan 10, 2017, 06:38 PM
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){
48 if(getguildmaster(@GID) == strcharinfo(0)){
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
131 }
132 else
133 {
134 mes .nn$;
135 mes "Você recebeu o Pack Guild Recentemente.";
136 close;
137 }
138 }
139 else
140 {
141 mes .nn$;
142 mes "Sua Guild ja Recebeu o Pack Guild.";
143 close;
144 }
145 }
146 else
147 {
148 mes .nn$;
149 mes "Desculpe mas só converso com Lideres de Guild.";
150 close;
151 }
152 }
153 else
154 {
155 mes .nn$;
156 mes "Desculpe mas só converso com Lideres de Guild.";
157 close;
158 }
159
160 case 2:
161 mes .nn$;
162 mes "Oque gostaria de Saber Sobre o Pack Guild ?";
163 next;
164 switch(select("- Oque é Pack Guild:- Como Receber:- Premios:- Nada")){
165 case 1:
166 mes .nn$;
167 mes "Pack Guild é um Incentivo para que Jogadores de outros Servidores";
168 mes "e sua Guild venham Jogar em Nosso Servidor.";
169 close;
170
171 case 2:
172 mes .nn$;
173 mes "Apenas o Lider da Guild Pode Receber o Pack Guild e junto a ele os Membros da Guild.";
174 mes "Para Receber o Pack Guild devem estar Online no minimo 15 Player's.";
175 mes "^FF0000[1]^000000 - 15 Player's ^C90000-^000000 Pack Guild 1.";
176 mes "^FF0000[2]^000000 - 20 Player's ^C90000-^000000 Pack Guild 2.";
177 mes "^FF0000[3]^000000 - 25 Player's ^C90000-^000000 Pack Guild 3.";
178 close;
179
180 case 3:
181 mes "-----------------------------------";
182 mes " Informações - Pack 1 ";
183 mes "-----------------------------------";
184 for(set @i, 0; @i < getarraysize($PackGuild1); set @i, @i + 1) mes "[^FF0000"+$PackQnt1[@i]+"^000000] <-> [^C90000"+getitemname($PackGuild1[@i])+"^000000].";
185 next;
186 mes "-----------------------------------";
187 mes " Informações - Pack 2 ";
188 mes "-----------------------------------";
189 for(set @i, 0; @i < getarraysize($PackGuild2); set @i, @i + 1) mes "[^FF0000"+$PackQnt2[@i]+"^000000] <-> [^C90000"+getitemname($PackGuild2[@i])+"^000000].";
190 next;
191 mes "-----------------------------------";
192 mes " Informações - Pack 3 ";
193 mes "-----------------------------------";
194 for(set @i, 0; @i < getarraysize($PackGuild3); set @i, @i + 1) mes "[^FF0000"+$PackQnt3[@i]+"^000000] <-> [^C90000"+getitemname($PackGuild3[@i])+"^000000].";
195 close;
196 }
197
198 case 3:
199 mes .nn$;
200 mes "Volte sempre.";
201 close;
202 }
203OnInit:
204 //waitingroom strnpcinfo(1),0;
205//===== Itens do Pack Guild 1: ===============================
206 setarray $PackGuild1[0], 2410,2524,2357;
207 setarray $PackQnt1[0], 1,1,1;
208//============================================================
209//===== Itens do Pack Guild 2: ===============================
210 setarray $PackGuild2[0], 13017,4305,4503;
211 setarray $PackQnt2[0], 1,1,1;
212//============================================================
213//===== Itens do Pack Guild 3: ===============================
214 setarray $PackGuild3[0], 4140,1108,1208;
215 setarray $PackQnt3[0], 1,1,1;
216//============================================================
217end;
218}
219
220- script RMVPI -1,{
221OnPCLoginEvent:
222
223//===== Itens de Todos os Pack Guild: ========================
224 setarray .@ITEM[0], 2410,2524,2357,13017,4305,4503,4140,1108,1208;
225//============================================================
226
227 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;
228 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;
229 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;
230 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;
231 query_sql "SELECT COUNT(*) FROM `inventory`", @CNT;
232
233 for(set .@i, 0; .@i < @CNT;set .@i,.@i +1){
234 for(set @n, 0; @n < getarraysize(.@ITEM);set @n,@n +1){
235 if(.@IDI[.@i] == .@ITEM[@n]){
236 if(.@IDF[.@i] == getcharid(2)){ end;}
237 else if(.@IDF[.@i] <= 1){ end; }
238 else{
239 dispbottom "Você contem Itens que não lhe Pertencem.";
240 sleep2 2000;
241 dispbottom "Você sera Deslogado para a remoção do Item.";
242 sleep2 2000;
243 for(set .@a, 10; .@a > 0; set .@a,.@a -1) unequip(.@a);
244 query_sql "DELETE FROM `inventory` WHERE `nameid` = '"+.@IDI[.@i]+"' AND `identify` = '"+.@IDF[.@i]+"' AND `char_id` = '"+getcharid(0)+"'";
245 atcommand "@kick "+strcharinfo(0);
246 end;
247 }
248 }
249 else if(.@IDIci[.@i] == .@ITEM[@n]){
250 if(.@IDFci[.@i] == getcharid(2)){ end;}
251 else if(.@IDFci[.@i] <= 1){ end; }
252 else{
253 dispbottom "Você contem Itens que não lhe Pertencem.";
254 sleep2 2000;
255 dispbottom "Você sera Deslogado para a remoção do Item.";
256 sleep2 2000;
257 for(set .@a, 10; .@a > 0; set .@a,.@a -1) unequip(.@a);
258 query_sql "DELETE FROM `cart_inventory` WHERE `nameid` = '"+.@IDIci[.@i]+"' AND `identify` = '"+.@IDFci[.@i]+"' AND `char_id` = '"+getcharid(0)+"'";
259 atcommand "@kick "+strcharinfo(0);
260 end;
261 }
262 }
263 else if(.@IDIs[.@i] == .@ITEM[@n]){
264 if(.@IDFs[.@i] == getcharid(2)){ end;}
265 else if(.@IDFs[.@i] <= 1){ end; }
266 else{
267 dispbottom "Você contem Itens que não lhe Pertencem.";
268 sleep2 2000;
269 dispbottom "Você sera Deslogado para a remoção do Item.";
270 sleep2 2000;
271 query_sql "DELETE FROM `storage` WHERE `nameid` = '"+.@IDIs[.@i]+"' AND `identify` = '"+.@IDFs[.@i]+"' AND `account_id` = '"+getcharid(3)+"'";
272 atcommand "@kick "+strcharinfo(0);
273 end;
274 }
275 }
276 else if(.@IDIgs[.@i] == .@ITEM[@n]){
277 if(.@IDFgs[.@i] == getcharid(2)){ end;}
278 else if(.@IDFgs[.@i] <= 1){ end; }
279 else{
280 dispbottom "Você contem Itens que não lhe Pertencem.";
281 sleep2 2000;
282 dispbottom "Você sera Deslogado para a remoção do Item.";
283 sleep2 2000;
284 query_sql "DELETE FROM `guild_storage` WHERE `nameid` = '"+.@IDIgs[.@i]+"' AND `identify` = '"+.@IDFgs[.@i]+"' AND `guild_id` = '"+getcharid(2)+"'";
285 atcommand "@kick "+strcharinfo(0);
286 end;
287 }
288 }
289 }
290 }
291end;
292}