Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- payon,96,123,3 script Guild Package 98,{
- //quiz_02,371,379,3 script Guild Package 98,{
- switch(select( (countitem(30000)?"I have a GM's Approval Card":"") + ":Guild List")) {
- case 1: // exchanging a GM's Approval Card (30000)
- mes "[Guild Pack Info]";
- if (!getcharid(2)) {
- mes "^FF0000You must be in a guild to receive a guild package.^000000";
- close;
- } else if (getcharid(0) != getguildmasterid(getcharid(2))) {
- mes "Please tell your guild leader ^0000FF"+getguildmaster(getcharid(2))+"^000000 to come and see me personally.";
- close;
- } else if (countitem(30000) < 1) {
- mes "^FF0000You don't have a GM's Approval Card to exchange.^000000";
- close;
- }
- // check if guild has 10 members
- query_sql "SELECT char_id,account_id,`name` FROM guild_member WHERE guild_id="+getcharid(2), .@char_id,.@account_id,.@name$;
- if (getarraysize(.@char_id) < .guild_size2) {
- mes "You must have ^FF0000"+.guild_size2+"^000000 guild members";
- mes "(1 leader + "+(.guild_size2-1)+" members).";
- close;
- }
- // check if all guild members are online
- for (set .@i,0; .@i<.guild_size2; set .@i,.@i+1) {
- if (!isloggedin(.@account_id[.@i], .@char_id[.@i])) {
- mes "^FF0000"+ .@name$[.@i] +"^000000 is offline.";
- mes "All "+.guild_size2+" guild members must be online to receive the guild package.";
- close;
- }
- }
- // check if any guild members have ALREADY obtained a guild package
- if (query_sql("SELECT `name`,guild_name FROM guildpack_members " +
- "LEFT JOIN guildpack_guilds ON guildpack_members.guild_id=guildpack_guilds.guild_id " +
- "WHERE account_id IN (SELECT account_id FROM guild_member WHERE guild_id="+getcharid(2)+") LIMIT 1", .@name$,.@guild$) > 0) {
- mes "^0000FF"+.@name$+"^FF0000 already received a guild pack while in ^0000FF"+.@guild$+"^000000.";
- mes "Each account can only receive a guild pack once.";
- close;
- }
- // check if any players have already obtained a guild package (from that MAC address)
- if (query_sql("SELECT `name`,guild_name FROM guildpack_members " +
- "LEFT JOIN guildpack_guilds ON guildpack_members.guild_id=guildpack_guilds.guild_id " +
- "WHERE mac IN (SELECT last_mac FROM guild_member LEFT JOIN login ON guild_member.account_id=login.account_id WHERE guild_id="+getcharid(2)+") LIMIT 1", .@name$,.@guild$) > 0) {
- mes "^0000FF"+.@name$+"^FF0000 already received a guild pack while in ^0000FF"+.@guild$+"^000000.";
- mes "Each person can only receive a guild pack once per MAC address.";
- close;
- }
- mes "Exchange GM's Approval Card for Guild Pack?";
- if (select("No:Yes, continue") == 1) close;
- // #SUCCESS - passed all checks
- delitem 30000,1;
- for (set .@i,0; .@i<.guild_size; set .@i,.@i+1) {
- if (.@account_id[.@i] == playerattached()) {
- getitem 30001,1; // leader
- } else {
- getitem 30002,1, .@account_id[.@i]; // each member
- }
- }
- announce "Guild Pack Info : the guild ["+ strcharinfo(2) +"] has obtain a guild package.", bc_all|bc_blue;
- // record guild
- query_sql "INSERT INTO guildpack_guilds (guild_id,guild_name,master_char_id,master_name,redeem_time) VALUES " +
- "("+getcharid(2)+",'"+escape_sql(strcharinfo(2))+"', "+getcharid(0)+",'"+escape_sql(strcharinfo(0))+"', NOW())";
- // record all guild members
- query_sql "INSERT INTO guildpack_members(guild_id,account_id,char_id,`name`,ip,mac) " +
- "SELECT guild_id,guild_member.account_id,char_id,`name`,last_ip,last_mac FROM guild_member " +
- "LEFT JOIN login ON guild_member.account_id=login.account_id " +
- "WHERE guild_id="+getcharid(2);
- break;
- case 2: // Guild List
- // get list of guilds
- query_sql "SELECT guild_id,guild_name FROM guildpack_guilds ORDER BY guild_name ASC", .@guild_id,.@guild_name$;
- mes "[Guild Pack Info]";
- if (getarraysize(.@guild_id) == 0) {
- mes "No guilds have received a guild pack.";
- close;
- }
- for (set .@i,0; .@i<getarraysize(.@guild_id); set .@i,.@i+1)
- set .@menu$, .@menu$ + .@guild_name$[.@i]+":";
- // pick a guild
- set .@GID, .@guild_id[set(.@g,select(.@menu$)-1)];
- // get info for that guild
- query_sql "SELECT guildpack_members.char_id, CONCAT(IF(ISNULL(guild_member.char_id),'^FF0000','^008000')," +
- "guildpack_members.`name`), ip FROM guildpack_members " +
- "LEFT JOIN guildpack_guilds ON guildpack_members.guild_id=guildpack_guilds.guild_id " +
- "LEFT JOIN guild_member ON guildpack_members.char_id=guild_member.char_id AND guildpack_members.guild_id=guild_member.guild_id " +
- "WHERE guildpack_members.guild_id="+.@GID+" " +
- "ORDER BY (guildpack_members.char_id=master_char_id) DESC",
- .@char_id, .@colored_name$, .@ip$;
- // display guild info
- mes "Guild : " + .@guild_name$[.@g];
- mes "Status : " + (query_sql("SELECT 1 FROM guild WHERE guild_id="+.@GID,.@i) ? "^008000Active" : "^FF0000Disbanded") + "^000000";
- mes "Leader : "+.@colored_name$[0]+"^000000 ("+.@ip$[0]+")";
- mes "Members :";
- for (set .@i,1; .@i<getarraysize(.@char_id); set .@i,.@i+1)
- mes " "+(.@i+1)+". "+.@colored_name$[.@i]+"^000000 ("+.@ip$[.@i]+")";
- break;
- }
- close;
- OnInit:
- set .guild_size, 76;
- set .guild_size2, 9;
- if (query_sql("SHOW TABLES LIKE 'guildpack_guilds'", .@t$) == 0) {
- debugmes "[Guild Pack Info]: SQL table `guildpack_guilds` not found! Disabling npc.";
- disablenpc strnpcinfo(3);
- } else if (query_sql("SHOW TABLES LIKE 'guildpack_members'", .@t$) == 0) {
- debugmes "[Guild Pack Info]: SQL table `guildpack_members` not found! Disabling npc.";
- disablenpc strnpcinfo(3);
- }
- end;
- }
- //////////////////////////////////////////////////////////
- // Guild Master Item Pack Functions //
- //////////////////////////////////////////////////////////
- function script GMaster1 {
- setarray .Items[0], 2504,1,0,2406,1,0,2404,1,0,2313,1,0,2322,1,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMaster2 {
- setarray .Items[0], 2104,1,0,2106,1,0,2291,1,0,2227,1,0,4092,2,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMaster3 {
- setarray .Items[0], 4035,2,0,2607,2,0,4003,1,0,14152,1,0,1520,1,0,1715,1,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMaster4 {
- setarray .Items[0], 1208,2,0,1117,1,0,1405,1,0,1602,1,0,1251,1,0,4082,2,0,4085,2,0,4027,2,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMaster5 {
- setarray .Items[0], 13534,10,0,13810,20,0,13516,40,0,13536,20,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMaster6 {
- setarray .Items[0], 13889,2,0,13890,2,0,1011,10,0,670,100,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- //////////////////////////////////////////////////////////
- // Guild Member Item Pack Functions //
- //////////////////////////////////////////////////////////
- function script GMember1 {
- setarray .Items[0], 2504,1,0,2406,1,0,2404,1,0,2313,1,0,2322,1,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMember2 {
- setarray .Items[0], 2104,1,0,2106,1,0,2291,1,0,2227,1,0,4092,2,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMember3 {
- setarray .Items[0], 4035,2,0,2607,2,0,4003,1,0,14152,1,0,1520,1,0,1715,1,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMember4 {
- setarray .Items[0], 1208,2,0,1117,1,0,1405,1,0,1602,1,0,1251,1,0,4082,2,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
- function script GMember5 {
- setarray .Items[0], 4085,2,0,4027,2,0,13889,2,0,13890,2,0,1011,10,0; // <item id>,<amount>,<refine>
- set .size, getarraysize(.Items);
- if ( (MaxWeight/2) <= Weight ) end;
- for ( set .@i, 0; .@i < .size; set .@i, .@i + 3 )
- getitembound2 .Items[.@i],.Items[.@i+1],1,.Items[.@i+2],0,0,0,0,0,1;
- end;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement