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 NasagnilacLink to comment
Share on other sites
9 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.