[v2.0]Basic Premium System

not working

relog and @premium not showing time

+

this

4q0oau.jpg


dx1ld1.jpg
same as mine not still working

 
Emmm you didnt copy and paste the script... you know how i know that? because you pasted the same screen that the other time..

and in my pc that script is  working very well .-.

anyway this is the script

Code:
// ------------------------------------------------------------------------------------------// ------ Script Release// Title: Premium/ViP Services System// Author: Diconfrost VaNz - www.wipeoutgaming.info - [email protected]// Version: 2.0// Special thanks to the following for helping me making this script// Jezu// Dastgr// clydelion// // Note: This is a character-based script. If you want to make this into Account-Based, just put "#" beside "prmm".// ------------------------------------------------------------------------------------------prontera,155,181,5	script	Clahador	757,{mes "[^FF0000Clahador^000000]";mes "Hello "+strcharinfo(0)+", I'm ^FF0000Clahador the butcher^000000.";mes "I will be of help if you need something.";next;mes "[^FF0000Clahador^000000]";mes "Oh! you need help?";mes "What kind of help do you need?";next;switch(select("Newbie here:I'm a ViP!:Nevermind")){	case 1:		mes "[^FF0000Clahador^000000]";			mes "Did you already claim your free items in the ^FF0000Freebies NPC^000000???";			next;			switch(select("Yes!:No!")){			case 1:				mes "[^FF0000Clahador^000000]";					mes "Haha, i hope you like those items.";					next;						mes "By the way, you can earn zennies through quests like going to daily quest, request board, and many more!";						mes "Did you know that you can have many zennies you want if you gonna hunt more rare items?";						mes "Try it!";						close;			case 2:				mes "[^FF0000Clahador^000000]";					mes "You should get 'em!.";					mes "It will help you on the start.";					close;			}	case 2:	mes "[^FF0000Clahador^000000]";		mes "Oh you avail our ViP Ticket!";		mes "Thank you!";		next;		mes "[^FF0000Clahador^000000]";		mes "Your Premium Service will expire after " + callfunc("Time2Str",prmm);		mes "You should maximize it";		mes "Grind your skills and hunt now!";		close;	case 3:	mes "[^FF0000Clahador^000000]";		mes "Thank you!";		mes "Come Again!";		close;	}}function	script	getPremium	{	set .@ticks, getarg(0);	if (.@ticks <= 0) {		debugmes "getPremium - tried to set a timer in the past";		end;	}	set prmm, (prmm > gettimetick(2)) ? prmm : gettimetick(2) + .@ticks;	doevent "login::OnPCLoginEvent";	return;}-	script	login	-1,{OnPCLoginEvent:	if (prmm > gettimetick(2)) {	dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",prmm);	sc_start SC_EXPBOOST,(( prmm - gettimetick(2) ) * 1000 ),200;	sc_start SC_JEXPBOOST,(( prmm - gettimetick(2) ) * 1000 ),200;	sc_start SC_ITEMBOOST,(( prmm - gettimetick(2) ) * 1000 ),100;	atcommand "@adjgroup 1 "+strcharinfo(0);	deltimer strnpcinfo(3)+"::OnPCLoginEvent";	if ((prmm - gettimetick(2)) < 2147483) {		addtimer (prmm - gettimetick(2)) *1000, strnpcinfo(3)+"::OnPCLoginEvent";	} else {		addtimer 2147483000, strnpcinfo(3)+"::OnPCLoginEvent";	}} else if (prmm) {	atcommand "@adjgroup 0 "+strcharinfo(0);	sc_end SC_EXPBOOST;	sc_end SC_JEXPBOOST;	sc_end SC_ITEMBOOST;	set prmm, 0;	dispbottom "Premium Services has ended.";}end;}-	script	atcmd23	-1,{OnAtcommand:dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",prmm);end;OnInit:	bindatcmd "premium",strnpcinfo(3)+"::OnAtcommand"; end; } 
 
Last edited by a moderator:
what revision you are using bcoz im using the latest revision of hercules and it is not working.

BTW

Im using windows 8

btw problem solved, i did not make it usable.

 
Last edited by a moderator:
I used to help with this. Can not do anything. 

screen_ToKiMiKiSutdiO_000JO6vo.jpg

// ------------------------------------------------------------------------------------------// ------ Script Release// Title: Premium/ViP Services System// Author: Diconfrost VaNz - www.wipeoutgaming.info - [email protected]// Version: 2.0// Special thanks to the following for helping me making this script// Jezu// Dastgr// clydelion//// Note: This is a character-based script. If you want to make this into Account-Based, just put "#" beside "#prmm".// ------------------------------------------------------------------------------------------prontera,155,181,5  script  Clahador  757,{mes "[^FF0000"+strnpcinfo(1)+"^000000]";mes "Hello "+strcharinfo(0)+", I'm ^FF0000Clahador the butcher^000000.";mes "I will be of help if you need something.";next;mes "[^FF0000"+strnpcinfo(1)+"^000000]";mes "Oh! you need help?";mes "What kind of help do you need?";next;switch( select ( "Newbie here", "I'm a ViP!", "Nevermind" ) ) {  case 1:    mes "[^FF0000"+strnpcinfo(1)+"^000000]";    mes "Did you already claim your free items in the ^FF0000Freebies NPC^000000???";    if ( select ( "Yes","No" ) == 2) close;      mes "[^FF0000"+strnpcinfo(1)+"^000000]";      mes "Haha, i hope you like those items.";      next;      mes "By the way, you can earn zennies through quests like going to daily quest, request board, and many more!";      mes "Did you know that you can have many zennies you want if you gonna hunt more rare items?";      mes "Try it!";      close;  case 2:    mes "[^FF0000"+strnpcinfo(1)+"^000000]";    mes "Oh you avail our ViP Ticket!";    mes "Thank you!";    next;    mes "[^FF0000"+strnpcinfo(1)+"^000000]";    mes "Your Premium Service will expire after " + callfunc("Time2Str",#prmm);    mes "You should maximize it";    mes "Grind your skills and hunt now!";    close;  case 3:    close;}OnAtcommand:  dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",#prmm);  end;OnInit:    bindatcmd "premium",strnpcinfo(3)+"::OnAtcommand";  end;}function  script  getPremium  {  set .@ticks, getarg(0);  if (.@ticks <= 0) {    debugmes "getPremium - tried to set a timer in the past";    end;  }  set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks;  doevent "login::OnPCLoginEvent";  return;}-  script  login  -1,{OnPCLoginEvent:  if (#prmm > gettimetick(2)) {  dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",#prmm);  sc_start SC_CASH_PLUSEXP,(( #prmm - gettimetick(2) ) * 1000 ),200;  sc_start SC_CASH_PLUSONLYJOBEXP,(( #prmm - gettimetick(2) ) * 1000 ),200;  sc_start SC_CASH_RECEIVEITEM,(( #prmm - gettimetick(2) ) * 1000 ),100;  atcommand "@adjgroup 1 "+strcharinfo(0);  deltimer strnpcinfo(3)+"::OnPCLoginEvent";} else if (#prmm) {  atcommand "@adjgroup 0 "+strcharinfo(0);  sc_end SC_CASH_PLUSEXP;  sc_end SC_CASH_PLUSONLYJOBEXP;  sc_end SC_CASH_RECEIVEITEM;  set #prmm, 0;  dispbottom "Premium Services has ended.";}end;}
I edited some parts.

 
Last edited by a moderator:
I used to help with this. Can not do anything. 

screen_ToKiMiKiSutdiO_000JO6vo.jpg

// ------------------------------------------------------------------------------------------// ------ Script Release// Title: Premium/ViP Services System// Author: Diconfrost VaNz - www.wipeoutgaming.info - [email protected]// Version: 2.0// Special thanks to the following for helping me making this script// Jezu// Dastgr// clydelion//// Note: This is a character-based script. If you want to make this into Account-Based, just put "#" beside "#prmm".// ------------------------------------------------------------------------------------------prontera,155,181,5  script  Clahador  757,{mes "[^FF0000"+strnpcinfo(1)+"^000000]";mes "Hello "+strcharinfo(0)+", I'm ^FF0000Clahador the butcher^000000.";mes "I will be of help if you need something.";next;mes "[^FF0000"+strnpcinfo(1)+"^000000]";mes "Oh! you need help?";mes "What kind of help do you need?";next;switch( select ( "Newbie here", "I'm a ViP!", "Nevermind" ) ) {  case 1:    mes "[^FF0000"+strnpcinfo(1)+"^000000]";    mes "Did you already claim your free items in the ^FF0000Freebies NPC^000000???";    if ( select ( "Yes","No" ) == 2) close;      mes "[^FF0000"+strnpcinfo(1)+"^000000]";      mes "Haha, i hope you like those items.";      next;      mes "By the way, you can earn zennies through quests like going to daily quest, request board, and many more!";      mes "Did you know that you can have many zennies you want if you gonna hunt more rare items?";      mes "Try it!";      close;  case 2:    mes "[^FF0000"+strnpcinfo(1)+"^000000]";    mes "Oh you avail our ViP Ticket!";    mes "Thank you!";    next;    mes "[^FF0000"+strnpcinfo(1)+"^000000]";    mes "Your Premium Service will expire after " + callfunc("Time2Str",#prmm);    mes "You should maximize it";    mes "Grind your skills and hunt now!";    close;  case 3:    close;}OnAtcommand:  dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",#prmm);  end;OnInit:    bindatcmd "premium",strnpcinfo(3)+"::OnAtcommand";  end;}function  script  getPremium  {  set .@ticks, getarg(0);  if (.@ticks <= 0) {    debugmes "getPremium - tried to set a timer in the past";    end;  }  set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks;  doevent "login::OnPCLoginEvent";  return;}-  script  login  -1,{OnPCLoginEvent:  if (#prmm > gettimetick(2)) {  dispbottom "Your Premium Service will expire after " + callfunc("Time2Str",#prmm);  sc_start SC_CASH_PLUSEXP,(( #prmm - gettimetick(2) ) * 1000 ),200;  sc_start SC_CASH_PLUSONLYJOBEXP,(( #prmm - gettimetick(2) ) * 1000 ),200;  sc_start SC_CASH_RECEIVEITEM,(( #prmm - gettimetick(2) ) * 1000 ),100;  atcommand "@adjgroup 1 "+strcharinfo(0);  deltimer strnpcinfo(3)+"::OnPCLoginEvent";} else if (#prmm) {  atcommand "@adjgroup 0 "+strcharinfo(0);  sc_end SC_CASH_PLUSEXP;  sc_end SC_CASH_PLUSONLYJOBEXP;  sc_end SC_CASH_RECEIVEITEM;  set #prmm, 0;  dispbottom "Premium Services has ended.";}end;}
I edited some parts.
Thank you very much.^^"

 
NPC won't load for me.
Uhmmm have you used quesoph edit you can look at it in post#29 also if you use that checked all the tabs for this lines?

prontera,155,181,5  script  Clahador  757,{function  script  getPremium  {-  script  login  -1,{

Just use TAB button for thoes spaces
default_tongue.png
.

 
Just saw a VIP script in rathena but don't know if this one works with hercules as well

Code:
CREATE TABLE IF NOT EXISTS `vip_bronze` (  `account_id` int(11) unsigned NOT NULL default '0',  `account_name` varchar(255) NOT NULL default 'NULL',  `start_date` datetime NOT NULL default '0000-00-00 00:00:00',  `end_date` datetime NOT NULL default '0000-00-00 00:00:00',  `status` varchar(255) NOT NULL DEFAULT 'NULL',  PRIMARY KEY  (`account_id`)) ENGINE=MyISAM;CREATE TABLE IF NOT EXISTS `vip_silver` (  `account_id` int(11) unsigned NOT NULL default '0',  `account_name` varchar(255) NOT NULL default 'NULL',  `start_date` datetime NOT NULL default '0000-00-00 00:00:00',  `end_date` datetime NOT NULL default '0000-00-00 00:00:00',  `status` varchar(255) NOT NULL DEFAULT 'NULL',  PRIMARY KEY  (`account_id`)) ENGINE=MyISAM;CREATE TABLE IF NOT EXISTS `vip_gold` (  `account_id` int(11) unsigned NOT NULL default '0',  `account_name` varchar(255) NOT NULL default 'NULL',  `start_date` datetime NOT NULL default '0000-00-00 00:00:00',  `end_date` datetime NOT NULL default '0000-00-00 00:00:00',  `status` varchar(255) NOT NULL DEFAULT 'NULL',  PRIMARY KEY  (`account_id`)) ENGINE=MyISAM;ALTER table `login` add column account_type varchar(255) NOT NULL default 'NULL' after `birthdate`, add index (account_type);UPDATE `login` SET `account_type` = 'NULL';TRUNCATE `vip_bronze`;TRUNCATE `vip_gold`;TRUNCATE `vip_silver`;// base on victor's vip scriptprontera,150,150,5	script	VIP system	56,{function statusvip;function expirevip;function mainmenu;function showlist;function deletevip;function addvip;	mes .npc_Name$;	query_sql "SELECT `account_type` FROM login WHERE `account_id` = "+ getcharid(3), .@acc_Type$;	while( .@i < 3 && callfunc("str_toLower", .@acc_Type$ ) != .type_name$[.@i] ) set .@i, .@i +1;	if( .@i == 3 )		mes "Hello "+ strcharinfo(0) +" you have an normal account. Get an "+ getitemname( .item_premium_b ) +", "+ getitemname( .item_premium_s ) +", "+ getitemname( .item_premium_g ) +" to get a premium account.";	else {		set .@expiration_Date$, statusvip( .type_name$[.@i], .@i +1, 1 );		mes "Hello "+ strcharinfo(0) +" you have an "+ .type_name$[.@i] +" and it will expire in "+ .@expiration_Date$;	}	goto L_player;OnWhisperGlobal:	if ( getgmlevel() < 99 ) end;L_main:	mes .npc_Name$;	mes "Welcome, "+ strcharinfo(0) +"!";	mes "What can I do for you today?";L_player:	next;	set .@s, select( ( getgmlevel() < 99 ? "" : "VIP bronze Menu" ), ( getgmlevel() < 99 ? "" : "VIP silver Menu" ), ( getgmlevel() < 99 ? "" : "VIP gold Menu" ),			( ( countitem( .item_premium_b ) || countitem( .item_premium_s ) || countitem( .item_premium_g ) ) && .up_npc ? "Upgrade my account" : "" ), "Quit" ) -1;	if ( .@s == 4 ) close;	else if( .@s == 3 ) {		setarray .@rank$, "b", "s", "g";		select("Bronze:Silver:Gold");		callfunc( "VIP_upgrade", 7, getd(".item_premium_"+.@rank$[@menu]), @menu );	}	set .@a$, "[VIP "+ callfunc("str_toLower", .type_name$[.@s] ) +"]";	next;	mes .npc_Name$;	mes .@a$;	// if( getgmlevel() < 99 ) {		// set .@sub_s, select( "List Accounts", "Cancel" );		// if( .@sub_s == 2 ) close;		// mainmenu( .@sub_s +2, .@s );	// }	next;	set .@sub_s, select( "Add/Extend Account", "Delete Account", "List Accounts", "Back" );	if ( .@sub_s == 4 || mainmenu( .@sub_s, .@s, .@a$ ) ) goto L_main;// Setting// -------OnInit:	set .npc_Name$,"[VIP System v3.0]";	set .bronze_AccLvl, 1;		// VIP bronze Account Level	set .silver_AccLvl, 2;		// 	   silver	set .gold_AccLvl, 3;		// 	   gold	set .bronze_ExpRate, 25;	// VIP bronze Exp Boost in % ( 1 = 1% )	set .silver_ExpRate, 50;	// 	   silver	set .gold_ExpRate, 100;		//	   gold	set .bronze_ItemRate, 0;	// VIP bronze Item Drop Boost in % ( 1 = 1% )	set .silver_ItemRate, 5;	//	 silver	set .gold_ItemRate, 10;		//	 gold	set .item_premium_b, 501; // ID item to upgrade your account to bronze	set .item_premium_s, 502; // ID item to upgrade your account to silver	set .item_premium_g, 503; // ID item to upgrade your account to gold	set .fcp, 0;			// fcp for gold vip ? (0 : no) / (1 : yes)	set .up_npc, 1;				// player can upgrade to npc if items required 0 : no	setarray .type_name$, "bronze", "silver", "gold" ;	end;// On login// --------OnPCLoginEvent:	query_sql "SELECT `account_type` FROM login WHERE `account_id` = "+ getcharid(3), .@acc_Type$;	while( .@i < 3 && callfunc("str_toLower", .@acc_Type$ ) != .type_name$[.@i] ) set .@i, .@i +1;	if( .@i == 3 ) end;	sc_end sc_expboost;		sc_end sc_itemboost;	set .@expiration_Date$, statusvip( .type_name$[.@i], .@i, 0 );	dispbottom "----------------------------------------------------------------------";	dispbottom "Account type:		 "+ .@acc_Type$;	dispbottom "Expiration date: "+ .@expiration_Date$;	dispbottom "----------------------------------------------------------------------";	end;// Check the VIP status ; bonus VIP// --------------------------------function statusvip {	query_sql "SELECT `status` FROM `vip_"+ getarg(0) +"` WHERE `account_id` = "+ getcharid(3), .@vip_Status$ ;	query_sql "SELECT DATE_FORMAT(`end_date`, '%Y%m%d') FROM `vip_"+ getarg(0) +"` WHERE `account_id` = "+ getcharid(3), .@expiration_Date$ ;	query_sql "SELECT CURDATE() + 0;", .@current_Date$ ;	if( getarg(2) ) return .@expiration_Date$;	if ( atoi(.@current_Date$) >= atoi(.@expiration_Date$) )		expirevip( "vip_"+ getarg(0), getcharid(3) );	else {		set .@time, 3600 * 60 * 1000;		set .@it_Rate, getd( "."+ getarg(0) +"_ItemRate" );		set .@exp_rate, getd( "."+ getarg(0) +"_ExpRate" );		if( .@exp_rate )			sc_start sc_expboost, .@time, .@exp_rate;		if( .@it_Rate )			sc_start sc_itemboost, .@time, .@it_Rate;		if( getarg(1) == 2 && .fcp ) {			sc_start SC_CP_WEAPON, .@time, 5;			sc_start SC_CP_SHIELD, .@time, 5;			sc_start SC_CP_ARMOR, .@time, 5;			sc_start SC_CP_HELM, .@time, 5;		}	}	return .@expiration_Date$;}// VIP expire : updates tables// ---------------------------function expirevip {	set .@T_Name$, getarg(0);	set .@acc_Id, getarg(1);	query_sql "UPDATE `login` SET `level` = 0, `account_type` = 'NORMAL' WHERE account_id = "+ .@acc_Id;	query_sql "DELETE FROM "+ .@T_Name$ +" WHERE account_id = "+ .@acc_Id;	query_sql "ALTER TABLE "+ .@T_Name$ +" AUTO_INCREMENT = 1";	sc_end SC_CP_WEAPON;	sc_end SC_CP_SHIELD;	sc_end SC_CP_ARMOR;	sc_end SC_CP_HELM;	dispbottom "Your VIP expire.";	end;}function mainmenu {	switch( getarg(0) ) {		case 1: addvip( getarg(1), getarg(2) ); break;		case 2: deletevip( getarg(1), getarg(2) ); break;		case 3: showlist( getarg(1) );	}	return 1;}function addvip {	set .@s, getarg(0);	set .@a$, getarg(1);	mes .npc_Name$;	mes .@a$;	mes "Type the Account Name";	mes "you wish to add.";	input .@acc_Name$;	next;	mes .npc_Name$;	mes .@a$;	query_sql "SELECT `account_id` FROM login WHERE `userid` = '"+ escape_sql( .@acc_Name$ )+"'", .@acc_Id ;	mes "Identifying account: "+ .@acc_Name$ +".";	sleep2 500;	if ( !.@acc_Id ) {		mes "ERROR: Couldn't find account.";		mes "Verify if you dind't make a typo.";		close;	}	mes .npc_Name$;	mes .@a$;	mes "Type the number of days you";	mes "wish to add to the account's VIP";	mes "status.";	next;	while( input( .@Days, 1, 999 ) != 0 ) {		mes .npc_Name$;		mes .@a$;		mes "Put a number between 1 and 999.";		next;	}	mes .npc_Name$;	mes .@a$;	query_sql "SELECT `account_id` FROM vip_"+ .type_name$[.@s] +" WHERE `account_id` = "+ .@acc_Id, .@vip_accid;	if ( .@vip_accid == .@acc_Id ) {		mes "Account ID: "+ .@vip_accid +".";		sleep2 500;		query_sql "UPDATE vip_"+ .type_name$[.@s] +" SET end_date = DATE_ADD(end_date, INTERVAL "+ .@Days +" DAY), `status` = 'ACTIVE' WHERE account_id = "+.@vip_accid;		query_sql "UPDATE login SET `account_type` = '"+ callfunc("str_toUpper", .type_name$[.@s] ) +"' WHERE account_id = "+ .@vip_accid;		mes "Account "+ .@acc_Id +" added successfuly!";	}	else {		mes "Account ID: "+ .@acc_Id +".";		sleep2 500;		query_sql "INSERT INTO vip_"+ .type_name$[.@s] +" (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+.@acc_Id+",'"+ escape_sql( .@acc_Name$ ) +"',CURDATE(),CURDATE(),'ACTIVE')";		sleep2 100;		query_sql "UPDATE vip_"+ .type_name$[.@s] +" SET end_date = DATE_ADD(start_date, INTERVAL "+ .@Days +" DAY) WHERE account_id = "+.@acc_Id;		query_sql "UPDATE `login` SET `level` = "+ getd( "."+ .type_name$[.@s] +"_AccLvl" ) +", `account_type` = '"+ callfunc("str_toUpper", .type_name$[.@s] ) +"' WHERE `account_id` = "+.@acc_Id;		mes "Account "+ .@acc_Id +" added successfuly!";	}	close;}function deletevip {	set .@s, getarg(0);	set .@a$, getarg(1);	set .@size, query_sql( "SELECT account_name,`account_id`  FROM vip_"+ .type_name$[.@s] +" LIMIT 127", .@List$, .@acc_id );		mes .npc_Name$;		mes .@a$;	if ( .@size == 0 )		mes "There are currently no VIP "+ .type_name$[.@s] +" accounts.";	else {		mes "Select the account you wish ";		mes "to remove from VIP system.";				set .@j$, "1. "+ .@List$;		for ( set .@i, 1; .@i < .@size; set .@i, .@i + 1 )			set .@j$, .@j$ +":"+ ( .@i +1 ) +". "+ .@List$[.@i];		set .@j$, .@j$ +":Cancel";		next;		mes .npc_Name$;		mes .@a$;		set .@menu_del, select( .@j$ ) -1;		if ( .@menu_del == .@size ) {			next;			return;		}		mes "Are you sure you want to remove the account ";		mes .@List$[ .@menu_del ] +" ?";		if ( select( "Yes", "No" ) -1 ) {			next;			return;		}		query_sql "UPDATE `login` SET `level` = 0, `account_type` = 'NORMAL' WHERE `account_id` = '"+ .@acc_id +"'";		query_sql "DELETE FROM vip_"+ .type_name$[.@s] +" WHERE account_id = "+ .@acc_id;		query_sql "ALTER TABLE vip_"+ .type_name$[.@s] +" AUTO_INCREMENT = 1";		mes "VIP "+ .type_name$[.@s] +" account successfuly deleted!.";	}	close;}function showlist {	set .@s, getarg(0);	mes .npc_Name$;	mes "VIP "+ .type_name$[.@s] +" accounts list:";	set .@size, query_sql( "SELECT account_name FROM vip_"+ .type_name$[.@s] +" LIMIT 127", .@List$ );	if( .@size == 0 ) {		mes "The list is empty.";		close;	}	for ( set .@i, 0; .@i < .@size; set .@i, .@i + 1 )		mes ( .@i +1 )+". "+ .@List$[ .@i ];	close;}}// Upgrade via itemscript// ----------------------/*callfunc( "VIP_upgrade", 7, 12703, 0 );getarg(2) :	0 = up to bronze	1 = up to silver	2 = up to gold*/function	script	VIP_upgrade	{	if( select( "^777777~ Upgrade my account", "~ Not today^000000" ) -1 ) close;	set .@acc_id, getcharid(3) ;	setarray .@type_name$, "bronze", "silver", "gold" ;	set .@bronze_AccLvl, 1;		// VIP bronze Account Level	set .@silver_AccLvl, 2;		// 	   silver	set .@gold_AccLvl, 3;		// 	   gold	query_sql "SELECT `userid`, `account_type` FROM `login` WHERE `account_id` = '"+ .@acc_id +"'", .@user_id$, .@acc_type$;	while( .@i < 3 && callfunc("str_toLower", .@acc_Type$) != .@type_name$[.@i] ) set .@i, .@i +1;	if ( .@i == 2 || ( .@i >= getarg(2) && .@i != 3 ) ) {		dispbottom "Your can't upgrade your account.";		close;	}	else if( .@i != 3 ) {		query_sql "DELETE FROM vip_"+ .@type_name$[.@i] +" WHERE account_id = '"+ .@acc_id +"'";		query_sql "ALTER TABLE vip_"+ .@type_name$[.@i] +" AUTO_INCREMENT = 1";	}	query_sql "INSERT INTO vip_"+ .@type_name$[ getarg(2) ] +" (`account_id`,`account_name`,`start_date`,`end_date`,`status`) VALUES ("+ .@acc_id +",'"+ escape_sql( .@user_id$ ) +"', CURDATE(), ( DATE_ADD(CURDATE(), INTERVAL "+ getarg(0) +" DAY) ), 'ACTIVE') ";	query_sql "UPDATE `login` SET `level` = "+ getd( ".@"+ .@type_name$[ getarg(2) ] +"_AccLvl" ) +", `account_type` = '"+ callfunc("str_toUpper", .@type_name$[getarg(2)]) +"' WHERE `account_id` = '"+ .@acc_id +"'";	query_sql "SELECT DATE_FORMAT(`end_date`, '%Y %M %d') FROM vip_"+ .@type_name$[ getarg(2) ] +" WHERE `account_id` = '"+ .@acc_id +"'", .@exp_Date$;	message strcharinfo(0), "Account updated. Expiration : "+ .@exp_Date$;	delitem getarg(1), 1;	sleep2 1000;	message strcharinfo(0), "You must relog.";	sleep2 2000;	if( playerattached() )		atcommand "@kick "+ strcharinfo(0);	close;}// 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 0 ); /* 7 days, item ID to delete */ },{},{}// 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 1 ); /* 7 days, item ID to delete */ },{},{}// 12703,Holy_Egg_2,Holy Egg,11,0,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ callfunc( "VIP_upgrade", 7, 12703, 2 ); /* 7 days, item ID to delete */ },{},{}/// callfunc "str_changecase", "<string>", <bool [true:UPPER/false:LOWER]> ;function	script	str_changecase	{	sleep2 1;	if ( getarg(1) ) {		setarray .@char$[ 0 ],			" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",			"E", "I", "A", "S", "R", "N", "T", "O", "U", "L", "C",			"P", "M", "D", "V", "H", "G", "F", "B", "Y", "Q", "K",			"Z", "X", "J", "W", "_", "-";	}	else {		setarray .@char$[ 0 ],			" ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",			"e", "i", "a", "s", "r", "n", "t", "o", "u", "l", "c",			"p", "m", "d", "v", "h", "g", "f", "b", "y", "q", "k",			"z", "x", "j", "w", "_", "-";	}	set .@charsize, getarraysize(.@char$);	set .@str$, "|~key~|" + getarg(0) ;	set .@len, getstrlen(getarg(0));	while( .@len>.@s ) {		set .@i,0;		while( .@i<.@charsize ) {			if ( ! ( set(.@l,.@l+1) % 650) )				sleep2 1;			if ( compare( .@str$ , "|~key~|" + .@tmp$ + .@char$[.@i] ) ) {				set .@tmp$, .@tmp$ + .@char$[.@i];				break;			}			set .@i, .@i+1;		}		if ( .@i == .@charsize ) return "";		else set .@s, .@s+1;	}	return .@tmp$;}/// callfunc "str_toLower", "<string>" ;/// callfunc "str_toUpper", "<string>" ;function	script	str_toLower	{ return callfunc("str_changecase", getarg(0), 0 ); }function	script	str_toUpper	{ return callfunc("str_changecase", getarg(0), 1 ); }
 
callfunc "getPremium", <# of Days> * 24 * 3600; 
this item script makes premium CHAR only, 

 
^

1st) make a custom item that will serve as "VIP Ticket". must be a usable item.

item script:

 

callfunc "getPremium", <# of Days> * 24 * 3600;

Code:
function    script    getPremium    {    set .@ticks, getarg(0);    if (.@ticks <= 0) {        debugmes "getPremium - tried to set a timer in the past";        end;    }    set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks;    doevent "login::OnPCLoginEvent";    return;}
so premium account.

 
^

1st) make a custom item that will serve as "VIP Ticket". must be a usable item.

item script:

callfunc "getPremium", <# of Days> * 24 * 3600;

Code:
function    script    getPremium    {    set .@ticks, getarg(0);    if (.@ticks <= 0) {        debugmes "getPremium - tried to set a timer in the past";        end;    }    set #prmm, ((#prmm > gettimetick(2))? #prmm : gettimetick(2)) + .@ticks;    doevent "login::OnPCLoginEvent";    return;}
so premium account.
i want to make two item for premium, one for char premium and one for account premium is that posible?

 
can suggestion .

example i have VIP buffs 1 character only change to whole account the VIP buffs and commands

 
Last edited by a moderator:
Back
Top