Jump to content
Sign in to follow this  
Diconfrost VaNz

[v2.0]Basic Premium System

Recommended Posts

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

 

 

// ------------------------------------------------------------------------------------------// ------ 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; } 

 

Edited by Dynasty

Share this post


Link to post
Share on other sites

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.

Edited by unknown

Share this post


Link to post
Share on other sites

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.

Edited by quesoph

Share this post


Link to post
Share on other sites

 

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.^^"

Share this post


Link to post
Share on other sites

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 :P.

Share this post


Link to post
Share on other sites

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

 

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 ); }

 

 

Share this post


Link to post
Share on other sites

^

 

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

item script:

 

 

 

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

 

 

 

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.

Share this post


Link to post
Share on other sites

^

 

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

 

item script:

 

 

 

 

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

 

 

 

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?

Share this post


Link to post
Share on other sites

it's not working anymore.. I put the item script and no errors in the script.. also on the npc, but when I get the premium ticket, I still have 0 days of premium.. do I have to wear the item? or just be in inventory? thank you :)

 

-problem solved :)

Edited by Papabear

Share this post


Link to post
Share on other sites

change all:

 

SC_EXPBOOST

SC_JEXPBOOST

SC_ITEMBOOST

 

into:

SC_CASH_PLUSEXP

SC_CASH_RECEIVEITEM

SC_CASH_PLUSONLYJOBEXP

Share this post


Link to post
Share on other sites

What is the default group id?

I change de commands in the id 1 but dont work :/

 

Try with group ID# 0 (it's default for new users)

 

conf/groups.conf

groups: ({id: 0 /* group 0 is the default group for every new account */name: "Player"level: 0inherit: ( /*empty list*/ )commands: {/* no commands by default */}permissions: {/* without this basic permissions regular players could nottrade or party */can_trade: truecan_party: true}},

Share this post


Link to post
Share on other sites

change all:

 

SC_EXPBOOST

SC_JEXPBOOST

SC_ITEMBOOST

 

into:

SC_CASH_PLUSEXP

SC_CASH_RECEIVEITEM

SC_CASH_PLUSONLYJOBEXP

 
If I do that, the VIP players could not use Battle Manuals or other items that give buffs with these same constants.
Have any other way to make this change EXP, JOB and DROP?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.