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