Jump to content
  • 0

how to add exp_boost to this script?


Cisqua

Question


  • Group:  Members
  • Topic Count:  46
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   1
  • Joined:  12/29/12
  • Last Seen:  

anyone can help me to add this code to this script.

SC_EXPBOOST

SC_dropBOOST

//	~~~~~ show time left in days, hours, minutes and seconds ~~~~~
function	script	timeleft__	{
if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0);
.@day = .@left / 86400;
.@hour = .@left % 86400 / 3600;
.@min = .@left % 3600 / 60;
.@sec = .@left % 60;
if ( .@day )
	return .@day +" day "+ .@hour +" hour";
else if ( .@hour )
	return .@hour +" hour "+ .@min +" min";
else if ( .@min )
	return .@min +" min "+ .@sec +" sec";
else
	return .@sec +" sec";
}

prontera,156,179,5	script	Player Promoter	947,{
mes "[Player Promoter]";
if ( getgmlevel() == 99 ) {
	mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?";
	next;
	for ( .@i = 1; .@i <= .total_group; .@i++ )
		.@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":";
	.@s = select( .@menu$ );
	getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16;
	close;
}
else if ( getgmlevel() > 1 ) {
	mes "Only Admin can use me";
	close;
}
for ( .@i = 1; .@i <= .total_group; .@i++ )
	.@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":";
if ( getstrlen( #pp_accupgrade$ ) ) {
	sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
	mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000.";
	if ( getstrlen( .@menu$ ) == .total_group ) close;
}
else if ( getstrlen( .@menu$ ) == .total_group ) {
	mes "Make a donation and you can upgrade your account to become Super Players ^^";
	close;
}
mes "Do you want to upgrade your account ?";
next;
.@s = select( .@menu$ );
delitem .group_idreq[.@s], 1;
#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month
atcommand "@adjgroup "+ .@s;
mes "[Player Promoter]";
mes "Your account has successfully upgraded to "+ .group_name$[1];
close;
OnPCLoginEvent:
if ( getgmlevel() > 1 )
	#pp_accupgrade$ = "";
if ( !getstrlen( #pp_accupgrade$ ) ) end;
sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
.@left = .@time - gettimetick(2);
if ( .@left > 0 ) {
	atcommand "@adjgroup "+ .@id;
	if ( .@left >= 2147483 ) end;
	addtimer .@left *1000, "player_demoter::Ondemote";
	end;
}
Ondemote:
atcommand "@adjgroup 0";
message strcharinfo(0), "Your account has demoted to normal player";
#pp_accupgrade$ = "";
end;
OnInit:
//	setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>;  ... must follow the sequence in 1,2,3,4,5 ...
setarray .group_idreq[1], 31061, 31062, 31063;
setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player";
.total_group = 3;
end;
}

Link to comment
Share on other sites

5 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  60
  • Topics Per Day:  0.01
  • Content Count:  562
  • Reputation:   219
  • Joined:  11/22/11
  • Last Seen:  

//    ~~~~~ show time left in days, hours, minutes and seconds ~~~~~
function    script    timeleft__    {
   if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0);
   .@day = .@left / 86400;
   .@hour = .@left % 86400 / 3600;
   .@min = .@left % 3600 / 60;
   .@sec = .@left % 60;
   if ( .@day )
       return .@day +" day "+ .@hour +" hour";
   else if ( .@hour )
       return .@hour +" hour "+ .@min +" min";
   else if ( .@min )
       return .@min +" min "+ .@sec +" sec";
   else
       return .@sec +" sec";
}

prontera,156,179,5    script    Player Promoter    947,{
   mes "[Player Promoter]";
   if ( getgmlevel() == 99 ) {
       mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?";
       next;
       for ( .@i = 1; .@i <= .total_group; .@i++ )
           .@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":";
       .@s = select( .@menu$ );
       getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16;
       close;
   }
   else if ( getgmlevel() > 1 ) {
       mes "Only Admin can use me";
       close;
   }
   for ( .@i = 1; .@i <= .total_group; .@i++ )
       .@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":";
   if ( getstrlen( #pp_accupgrade$ ) ) {
       sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
       mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000.";
       if ( getstrlen( .@menu$ ) == .total_group ) close;
   }
   else if ( getstrlen( .@menu$ ) == .total_group ) {
       mes "Make a donation and you can upgrade your account to become Super Players ^^";
       close;
   }
   mes "Do you want to upgrade your account ?";
   next;
   .@s = select( .@menu$ );
   delitem .group_idreq[.@s], 1;
   #pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month
   atcommand "@adjgroup "+ .@s;
   mes "[Player Promoter]";
   mes "Your account has successfully upgraded to "+ .group_name$[1];
   sc_start SC_EXPBOOST,1,0;
   close;
OnPCLoginEvent:
   if ( getgmlevel() > 1 )
       #pp_accupgrade$ = "";
   if ( !getstrlen( #pp_accupgrade$ ) ) end;
   sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
   .@left = .@time - gettimetick(2);
   if ( .@left > 0 ) {
       atcommand "@adjgroup "+ .@id;
       if ( .@left >= 2147483 ) end;
       addtimer .@left *1000, "player_demoter::Ondemote";
       sc_start SC_EXPBOOST,1,0;
       end;
   }
Ondemote:
   atcommand "@adjgroup 0";
   message strcharinfo(0), "Your account has demoted to normal player";
   #pp_accupgrade$ = "";
   sc_start SC_DROPBOOST,1,0;
   end;
OnInit:
//    setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>;  ... must follow the sequence in 1,2,3,4,5 ...
   setarray .group_idreq[1], 31061, 31062, 31063;
   setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player";
   .total_group = 3;
   end;
}

Edited by goddameit
  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

//	~~~~~ show time left in days, hours, minutes and seconds ~~~~~
function	script	timeleft__	{
if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0);
.@day = .@left / 86400;
.@hour = .@left % 86400 / 3600;
.@min = .@left % 3600 / 60;
.@sec = .@left % 60;
if ( .@day )
	return .@day +" day "+ .@hour +" hour";
else if ( .@hour )
	return .@hour +" hour "+ .@min +" min";
else if ( .@min )
	return .@min +" min "+ .@sec +" sec";
else
	return .@sec +" sec";
}

prontera,156,179,5	script	Player Promoter	947,{
mes "[Player Promoter]";
if ( getgmlevel() == 99 ) {
	mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?";
	next;
	for ( .@i = 1; .@i <= .total_group; .@i++ )
		.@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":";
	.@s = select( .@menu$ );
	getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16;
	close;
}
else if ( getgmlevel() > 1 ) {
	mes "Only Admin can use me";
	close;
}
for ( .@i = 1; .@i <= .total_group; .@i++ )
	.@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":";
if ( getstrlen( #pp_accupgrade$ ) ) {
	sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
	mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000.";
	if ( getstrlen( .@menu$ ) == .total_group ) close;
}
else if ( getstrlen( .@menu$ ) == .total_group ) {
	mes "Make a donation and you can upgrade your account to become Super Players ^^";
	close;
}
mes "Do you want to upgrade your account ?";
next;
.@s = select( .@menu$ );
delitem .group_idreq[.@s], 1;
#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month
atcommand "@adjgroup "+ .@s;
mes "[Player Promoter]";
mes "Your account has successfully upgraded to "+ .group_name$[1];
sc_start sc_expboost, 2147483647, 100;
sc_start sc_itemboost, 2147483647, 100;
close;
OnPCLoginEvent:
if ( getgmlevel() > 1 )
	#pp_accupgrade$ = "";
if ( !getstrlen( #pp_accupgrade$ ) ) end;
sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
.@left = .@time - gettimetick(2);
if ( .@left > 0 ) {
	atcommand "@adjgroup "+ .@id;
	if ( .@left >= 2147483 ) {
		sc_start sc_expboost, 2147483647, 100;
		sc_start sc_itemboost, 2147483647, 100;
	}
	else {
		addtimer .@left *1000, "player_demoter::Ondemote";	
		sc_start .@left *1000, 2147483647, 100;
		sc_start .@left *1000, 2147483647, 100;
	}
	end;
}
Ondemote:
atcommand "@adjgroup 0";
message strcharinfo(0), "Your account has demoted to normal player";
#pp_accupgrade$ = "";
end;
OnInit:
//	setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>;  ... must follow the sequence in 1,2,3,4,5 ...
setarray .group_idreq[1], 31061, 31062, 31063;
setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player";
.total_group = 3;
end;
}

speechless with goddameit's edit...

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  46
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   1
  • Joined:  12/29/12
  • Last Seen:  

@ AnnieRuru and goddameit thank you!

....

i edit some code of my requested script..

my server rate is 700x exp and if you use this script the PremiumAccount will get the current exp which is 700 plus the exp of this script is 300 so overall exp will get of the PremiumAccount is 1k exp..

edited script.

//	~~~~~ show time left in days, hours, minutes and seconds ~~~~~
function	script	timeleft__	{
if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0);
.@day = .@left / 86400;
.@hour = .@left % 86400 / 3600;
.@min = .@left % 3600 / 60;
.@sec = .@left % 60;
if ( .@day )
	return .@day +" day "+ .@hour +" hour";
else if ( .@hour )
	return .@hour +" hour "+ .@min +" min";
else if ( .@min )
	return .@min +" min "+ .@sec +" sec";
else
	return .@sec +" sec";
}

prontera,167,178,1	script	Player Promoter	436,{
set .@name$,"^228B22[ Player Promoter ]^000000";
mes .@name$;
if ( getgmlevel() == 99 ) {
	mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?";
	next;
	for ( .@i = 1; .@i <= .total_group; .@i++ )
		.@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":";
	.@s = select( .@menu$ );
	getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16;
	close;
}
else if ( getgmlevel() > 1 ) {
	mes "Only Admin can use me";
	close;
}
for ( .@i = 1; .@i <= .total_group; .@i++ )
	.@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":";
if ( getstrlen( #pp_accupgrade$ ) ) {
	sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
	mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000.";
	if ( getstrlen( .@menu$ ) == .total_group ) close;
}
else if ( getstrlen( .@menu$ ) == .total_group ) {
	mes "Make a donation and you can upgrade your account to become Super Players ^^";
	close;
}
mes "Do you want to upgrade your account ?";
next;
.@s = select( .@menu$ );
delitem .group_idreq[.@s], 1;
#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 604800 ); // 1 week
atcommand "@adjgroup "+ .@s;
mes .@name$;
mes "Your account has successfully upgraded to "+ .group_name$[1];
sc_start sc_expboost, 2147483647, 300;
//	sc_start sc_itemboost, 2147483647, 100;
close;
OnPCLoginEvent:
if ( getgmlevel() > 1 )
	#pp_accupgrade$ = "";
if ( !getstrlen( #pp_accupgrade$ ) ) end;
sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
.@left = .@time - gettimetick(2);
if ( .@left > 0 ) {
	atcommand "@adjgroup "+ .@id;
	if ( .@left >= 2147483 ) {
		sc_start sc_expboost, 2147483647, 300;
//			sc_start sc_itemboost, 2147483647, 100;
	}
	else {
		addtimer .@left *1000, "player_demoter::Ondemote";	
		sc_start .@left *1000, 2147483647, 300;
//			sc_start .@left *1000, 2147483647, 100;
	}
	end;
}
Ondemote:
atcommand "@adjgroup 0";
message strcharinfo(0), "Your account has demoted to normal player";
#pp_accupgrade$ = "";
end;
OnInit:
//	setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>;  ... must follow the sequence in 1,2,3,4,5 ...
setarray .group_idreq[1], 31002;
setarray .group_name$[1], "Super Player";
.total_group = 1;
end;
}

this code

#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 2592000 ); // 1 month

to this code

#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 604800 ); // 1 week

and

this code

OnInit:

// setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>; ... must follow the sequence in 1,2,3,4,5 ...

setarray .group_idreq[1], 31061, 31062, 31063;

setarray .group_name$[1], "Super Player", "Hyper Player", "Ultra Player";

.total_group = 3;

end;

}

to this code

// setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>; ... must follow the sequence in 1,2,3,4,5 ...

setarray .group_idreq[1], 31002;

setarray .group_name$[1], "Super Player";

.total_group = 1;

end;

}

and i have this error in my map_server

[Error]: status_change_start: invalid status change (604198000)!

[Error]: status_change_start: invalid status change (604198000)!

Edited by Cisqua
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  18
  • Topics Per Day:  0.00
  • Content Count:  2044
  • Reputation:   682
  • Joined:  10/09/12
  • Last Seen:  

sry I didn't test the script throughly yesterday

//	~~~~~ show time left in days, hours, minutes and seconds ~~~~~
function	script	timeleft__	{
if ( ( .@left = getarg(0) ) <= 0 ) return getarg(0);
.@day = .@left / 86400;
.@hour = .@left % 86400 / 3600;
.@min = .@left % 3600 / 60;
.@sec = .@left % 60;
if ( .@day )
	return .@day +" day "+ .@hour +" hour";
else if ( .@hour )
	return .@hour +" hour "+ .@min +" min";
else if ( .@min )
	return .@min +" min "+ .@sec +" sec";
else
	return .@sec +" sec";
}

prontera,167,178,1	script	Player Promoter	436,{
set .@name$,"^228B22[ Player Promoter ]^000000";
mes .@name$;
if ( getgmlevel() == 99 ) {
	mes "Hi Admin, do you want to distribute ^00CC00Player Promoter Cards^000000 with your name on it ?";
	next;
	for ( .@i = 1; .@i <= .total_group; .@i++ )
		.@menu$ = .@menu$ +"Distribute "+ getitemname( .group_idreq[.@i] ) +":";
	.@s = select( .@menu$ );
	getitem2 .group_idreq[.@s], 1,1,0,0, 254, 0, getcharid(0) % ( 1 << 16 ), getcharid(0) >> 16;
	close;
}
else if ( getgmlevel() > 1 ) {
	mes "Only Admin can use me";
	close;
}
for ( .@i = 1; .@i <= .total_group; .@i++ )
	.@menu$ = .@menu$ +( ( getgroupid() < .@i && countitem( .group_idreq[.@i] ) )? "upgrade to "+ .group_name$[.@i] : "" )+":";
if ( getstrlen( #pp_accupgrade$ ) ) {
	sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
	mes "Your account is currently a ^00CC00"+ .group_name$[.@id] +"^000000. You still have ^0000FF"+ callfunc( "timeleft__", .@time - gettimetick(2) )+"^000000.";
	if ( getstrlen( .@menu$ ) == .total_group ) close;
}
else if ( getstrlen( .@menu$ ) == .total_group ) {
	mes "Make a donation and you can upgrade your account to become Super Players ^^";
	close;
}
mes "Do you want to upgrade your account ?";
next;
.@s = select( .@menu$ );
delitem .group_idreq[.@s], 1;
#pp_accupgrade$ = .@s +" "+( gettimetick(2) + 604800 ); // 1 week
atcommand "@adjgroup "+ .@s;
mes .@name$;
mes "Your account has successfully upgraded to "+ .group_name$[1];
sc_start sc_expboost, 2147483647, 300;
//	sc_start sc_itemboost, 2147483647, 100;
close;
OnPCLoginEvent:
if ( getgmlevel() > 1 )
	#pp_accupgrade$ = "";
if ( !getstrlen( #pp_accupgrade$ ) ) {
	sc_end sc_expboost;
	sc_end sc_itemboost;
	end;
}
sscanf #pp_accupgrade$, "%d %d", .@id, .@time;
.@left = .@time - gettimetick(2);
if ( .@left > 0 ) {
	atcommand "@adjgroup "+ .@id;
	if ( .@left >= 2147483 ) {
		sc_start sc_expboost, 2147483647, 300;
//			sc_start sc_itemboost, 2147483647, 100;
	}
	else {
		addtimer .@left *1000, strnpcinfo(0) +"::Ondemote";	
		sc_start sc_expboost, .@left *1000, 300;
//			sc_start sc_itemboost, .@left *1000, 300;
	}
	end;
}
Ondemote:
atcommand "@adjgroup 0";
sc_end sc_expboost;
sc_end sc_itemboost;
message strcharinfo(0), "Your account has demoted to normal player";
#pp_accupgrade$ = "";
end;
OnInit:
//	setarray .group_<definition>, <group ID 1>, <group ID 2>, <group ID 3>;  ... must follow the sequence in 1,2,3,4,5 ...
setarray .group_idreq[1], 31002;
setarray .group_name$[1], "Super Player";
.total_group = 1;
end;
}

  • Upvote 1
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  46
  • Topics Per Day:  0.01
  • Content Count:  131
  • Reputation:   1
  • Joined:  12/29/12
  • Last Seen:  

Fixed thanks AnnieRuru

Link to comment
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
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  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.

×
×
  • Create New...