CREATE TABLE `guild_package` (
`id` int(11) NOT NULL auto_increment,
`account_id` int(11) NOT NULL default '0',
`last_ip` varchar(100) NOT NULL default '',
PRIMARY KEY (`account_id`),
KEY (`id`)
) ENGINE=MyISAM;
CREATE TABLE `guild_member` (
`guild_id` int(11) unsigned NOT NULL default '0',
`account_id` int(11) unsigned NOT NULL default '0',
`name` varchar(24) NOT NULL default '',
`char_id` int(11) unsigned NOT NULL default '0',
`last_ip` varchar(100) NOT NULL default '',
`online` tinyint(4) unsigned NOT NULL default '0',
`hair` tinyint(6) unsigned NOT NULL default '0',
`hair_color` smallint(6) unsigned NOT NULL default '0',
`gender` tinyint(6) unsigned NOT NULL default '0',
`class` smallint(6) unsigned NOT NULL default '0',
`lv` smallint(6) unsigned NOT NULL default '0',
`exp` bigint(20) unsigned NOT NULL default '0',
`exp_payper` tinyint(11) unsigned NOT NULL default '0',
`position` tinyint(6) unsigned NOT NULL default '0',
PRIMARY KEY (`guild_id`,`char_id`),
KEY `char_id` (`char_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
This is my SQL...
prontera,147,164,4 script Guild Admin 88,{
if(#Claimed == 1) goto L_AG;
if ( getguildmaster(getcharid(2)) != strcharinfo(0) ) goto L_not_gm;
mes "[Guild Admin]";
mes "Hello There it seems you are a Guild Master.";
mes "On our server we have here a sytem called Guild Package.";
next;
mes "[Guild Admin]";
mes "You will need 5 online members to your guild and includes you as of them.";
mes "Or visit us on www.priam-ro.com/forum for more information about Guild Package.";
next;
mes "[Guild Admin]";
mes "Do you want to claim it now and let me check your online players from your guild?";
next;
switch(select("Checking Requirements:Ready for claiming Guild Package:Maybe later..")) {
case 1:
mes "[Guild Admin]";
mes "Checking...";
set .@guild, getcharid(2);
next;
mes "[Guild Admin]";
mes "Checking...";
callsub OnCheck,1;
next;
mes "[Guild Admin]";
mes "Your guild has a "+.@members+" members online with cleared IP Address in our database.";
next;
if(.@members < 5){
mes "[Guild Admin]";
mes "Sorry but your guild didn't reach the minimum amount of members needed.";
set .@members,0;
close;
}
mes "[Guild Admin]";
mes "Your guild is qualified to apply Guild Package since you have "+.@members+" members online with cleared IP Address.";
set .@members,0;
close;
case 2:
mes "[Guild Admin]";
mes "You will need at least 200 space to your storage or else.";
mes "Do you want to proceed?";
set .@guild, getcharid(2);
next;
switch(select("Yes:No")) {
case 1:
mes "[Guild Admin]";
mes "Processing....";
next;
mes "[Guild Admin]";
mes "Processing....";
callsub OnClaim,1;
next;
if(.@members < 5){
mes "[Guild Admin]";
mes "Sorry but some of the cleared IP Address are offline.";
set .@members,0;
close;
}
if (.@members < 10) {set .@greward,1;} // 5-9 Members
else if (.@members < 15) set .@greward,2; // 10-14 Members
else if (.@members < 20) set .@greward,3; // 15-19 Members
else if (.@members < 25) set .@greward,4; // 20-24 Members
else if (.@members < 30) set .@greward,5; // 25-29 Members
if (.@members == 30) {set .@greward,6;} // 30 Members
mes "[Guild Admin]";
mes "All items are stored to your storage please check.";
//Item List
storeitem 14004,(10*.@greward); //10x Poison Bottle Box
storeitem 13995,(15*.@greward); //15x Speed Potion Box
storeitem 14003,(50*.@greward); //50x Elite Siege Box
storeitem 13989,(50*.@greward); //50x Acid Bomb Box
storeitem 5808,(1*.@greward); //1x Dark Bacillium [1]
storeitem2 5170,(4*.@greward),1,6,0,0,0,0,0; //4x +6 Feather Beret
storeitem2 2424,(4*.@greward),1,6,0,0,0,0,0; //4x +6 Tidal Shoes [1]
storeitem2 2528,(4*.@greward),1,6,0,0,0,0,0; //4x +6 Wool Scarf [1]
storeitem 2701,(4*.@greward); //4x Orleans Glove [1]
storeitem 2729,(4*.@greward); //4x Diablos Ring [1]
storeitem 2375,(1*.@greward); //1x Diablos Armor [1]
storeitem 2374,(1*.@greward); //1x Diablos Robe [1]
storeitem 2357,(1*.@greward); //1x Valkyrian Armor [1]
storeitem 2115,(1*.@greward); //1x Valkyrian Shield [1]
set #Claimed, 1;
set .@members,0;
set .@greward,0;
close;
case 2:
mes "[Guild Admin]";
mes "^616D7ENevermind~, You can come back again!";
close;
}end;
case 3:
mes "[Guild Admin]";
mes "^616D7ENevermind~, You can come back again!";
close;
}end;
L_AG:
mes "[Guild Admin]";
mes "^616D7EYour already given a package.";
close;
L_not_gm:
mes "[Guild Admin]";
mes "Ask your guild master to see me.";
close;
OnCheck:
for(set .@i,0; .@i<30; set .@i,.@i+1)
deletearray .@acc[0], getarraysize(.@acc); deletearray .@char[0], getarraysize(.@char);
query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@guild+"'", .@acc, .@char);
for(set .@j,0; .@j<getarraysize(.@acc); set .@j,.@j+1)
if (isloggedin(.@acc[.@j],.@char[.@j])) {
query_sql("SELECT last_ip FROM `guild_member` WHERE account_id = '"+.@acc[.@j]+"'",.@ip1);
query_sql("SELECT last_ip FROM `guild_package` WHERE account_id = '"+.@acc[.@j]+"'",.@ip2);
if(.@ip1 == .@ip2) {
message rid2name(.@acc[.@j]),"Sorry but you can't use cheating on this system.";
sleep 1;
return;
}
set .@members,.@members+1;
sleep 1;}
return;
OnClaim:
for(set .@i,0; .@i<30; set .@i,.@i+1)
deletearray .@acc[0], getarraysize(.@acc); deletearray .@char[0], getarraysize(.@char);
query_sql("SELECT account_id,char_id FROM `guild_member` WHERE guild_id = '"+.@guild+"'", .@acc, .@char);
for(set .@j,0; .@j<getarraysize(.@acc); set .@j,.@j+1)
if (isloggedin(.@acc[.@j],.@char[.@j])) {
query_sql("SELECT last_ip FROM `guild_member` WHERE account_id = '"+.@acc[.@j]+"'",.@ip1);
query_sql("SELECT last_ip FROM `guild_package` WHERE account_id = '"+.@acc[.@j]+"'",.@ip2);
if(.@ip1 == .@ip2) {
message rid2name(.@acc[.@j]),"Sorry but you can't use cheating on this system.";
sleep 1;
return;
}
query_sql("INSERT INTO `guild_package` (NULL,'account_id' , 'last_ip') VALUES ('.@acc[.@j]','.@ip1')");
set .@members,.@members+1;
sleep 1;}
return;
}
This script is working but... I think I just have a problem in OnClaim and OnCheck.. anyone can check this script?
Question
GM Freya
This is my SQL...
This script is working but... I think I just have a problem in OnClaim and OnCheck.. anyone can check this script?
Edited by Nasagnilac9 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.