Jump to content
  • 0

VIP Rental NPC


Question

Posted

i'm Using The Offical @vip Command of Rathena

Request for Script VIP Rental

(Choices)
(4,000 #CASHPOINTS  or Proof of Donation – 7 Days Premium)
(7,000 #CASHPOINTS  or Proof of Donation – 14 Days Premium)
(10,000 #CASHPOINTS  or Proof of Donation – 30 Days Premium)

players have two Option can buy using #CASHPOINTS  or Proof of Donation

//===================================
// VIP system
//===================================
// Storage slot increase. Setting to 0 will disable.
// Give more storage slots above the MIN_STORAGE limit.
// Note: MIN_STORAGE + vip_storage_increase cannot exceed MAX_STORAGE.
// Default: 300
vip_storage_increase: 300

// Base experience rate increase. Setting to 0 will disable. (Note 2)
// Default: 50
vip_base_exp_increase: 50

// Job experience rate increase. Setting to 0 will disable. (Note 2)
// Default: 50
vip_job_exp_increase: 50

// Experience penalty rate multiplier for non-VIP accounts.
// Multiplies the 'death_penalty_base' and 'death_penalty_job' settings in 'conf/battle/exp.conf'.
// Default: 3 (3*100 = 3% penalty)
vip_exp_penalty_base_normal: 100
vip_exp_penalty_job_normal: 100

// Experience penalty rate multiplier for VIP accounts.
// Multiplies the 'death_penalty_base' and 'death_penalty_job' settings in 'conf/battle/exp.conf'.
// Default: 1 (1*100 = 1% penalty)
vip_exp_penalty_base: 0
vip_exp_penalty_job: 0

// Item drop increase. Setting to 0 will disable.
// Note: 50 = 50% item_drop increase.
// For item_rate = 200: 200 * 50 / 100 = 100 bonus rate added to the 200 base giving total rate of 300.
// Default: 50
vip_drop_increase: 50

// Gemstone requirement. Setting to false will disable.
// Can the VIP Group ignore Gemstone requirement for skills?
// Default: yes
vip_gemstone: no

// Will display rate information (EXP, Drop, and Death penalty message)? (Note 1)
vip_disp_rate: yes

11 answers to this question

Recommended Posts

  • 0
Posted
33 minutes ago, srhmike said:

Couldnt you just create multiple version of the Proof of Donation, and just make a cash shop?

players have two Option can buy using #CASHPOINTS  or Proof of Donation

  • 0
Posted


prontera,155,181,5	script	Sample#vip	4_F_KAFRA1,{

	if ( vip_status(0) ) {
		mes "You're VIP.";
	}
	else {
		mes "Buy VIP ?";
		
		.@i = select( 
			.vip_day[0] + " Days",
			.vip_day[1] + " Days",
			.vip_day[2] + " Days"
		) - 1;
		
		mes "VIP "+.vip_day[.@i]+" Days";
		mes "Cost: "+.vip_cashpoint[.@i]+" or "+.vip_pod[.@i]+"x "+getitemname( .pod_id );
		if ( select( "Pay by CashPoint","Pay by "+getitemname( .pod_id ) ) == 1 ) {
			if ( #CASHPOINT < .vip_cashpoint[.@i] ) {
				mes "Not enough cash point.";
			}
			else {
				#CASHPOINT -= .vip_cashpoint[.@i];
				vip_time ( .vip_day[.@i] * 1440 );
			}
		}
		else {
			if ( countitem( .pod_id ) < .vip_pod[.@i] ) {
				mes "Not enough "+getitemname( .pod_id );
			}
			else {
				delitem .pod_id,.vip_pod[.@i];
				vip_time ( .vip_day[.@i] * 1440 );
			}
		}
	}
	close;
	
	OnInit:
		.pod_id = 7179;
		
		setarray .vip_day,7,14,30;
		setarray .vip_cashpoint,4000,7000,10000;
		setarray .vip_pod,4000,7000,10000;
		end;
}

you can try something like this.

 

  • 0
Posted
8 hours ago, Emistry said:



prontera,155,181,5	script	Sample#vip	4_F_KAFRA1,{

	if ( vip_status(0) ) {
		mes "You're VIP.";
	}
	else {
		mes "Buy VIP ?";
		
		.@i = select( 
			.vip_day[0] + " Days",
			.vip_day[1] + " Days",
			.vip_day[2] + " Days"
		) - 1;
		
		mes "VIP "+.vip_day[.@i]+" Days";
		mes "Cost: "+.vip_cashpoint[.@i]+" or "+.vip_pod[.@i]+"x "+getitemname( .pod_id );
		if ( select( "Pay by CashPoint","Pay by "+getitemname( .pod_id ) ) == 1 ) {
			if ( #CASHPOINT < .vip_cashpoint[.@i] ) {
				mes "Not enough cash point.";
			}
			else {
				#CASHPOINT -= .vip_cashpoint[.@i];
				vip_time ( .vip_day[.@i] * 1440 );
			}
		}
		else {
			if ( countitem( .pod_id ) < .vip_pod[.@i] ) {
				mes "Not enough "+getitemname( .pod_id );
			}
			else {
				delitem .pod_id,.vip_pod[.@i];
				vip_time ( .vip_day[.@i] * 1440 );
			}
		}
	}
	close;
	
	OnInit:
		.pod_id = 7179;
		
		setarray .vip_day,7,14,30;
		setarray .vip_cashpoint,4000,7000,10000;
		setarray .vip_pod,4000,7000,10000;
		end;
}

you can try something like this.

 

Emistry can you add bindcommand @vipstatus will display  how many expire date or time remaining.

  • 0
Posted (edited)
prontera,155,181,5	script	Sample#vip	4_F_KAFRA1,{

	OnTalk:
		if ( vip_status(0) ) {
			mes "You're VIP.";
		}
		else {
			mes "Buy VIP ?";
			
			.@i = select( 
				.vip_day[0] + " Days",
				.vip_day[1] + " Days",
				.vip_day[2] + " Days"
			) - 1;
			
			mes "VIP "+.vip_day[.@i]+" Days";
			mes "Cost: "+.vip_cashpoint[.@i]+" or "+.vip_pod[.@i]+"x "+getitemname( .pod_id );
			if ( select( "Pay by CashPoint","Pay by "+getitemname( .pod_id ) ) == 1 ) {
				if ( #CASHPOINT < .vip_cashpoint[.@i] ) {
					mes "Not enough cash point.";
				}
				else {
					#CASHPOINT -= .vip_cashpoint[.@i];
					vip_time ( .vip_day[.@i] * 1440 );
				}
			}
			else {
				if ( countitem( .pod_id ) < .vip_pod[.@i] ) {
					mes "Not enough "+getitemname( .pod_id );
				}
				else {
					delitem .pod_id,.vip_pod[.@i];
					vip_time ( .vip_day[.@i] * 1440 );
				}
			}
		}
		close;
		
	OnCheck:
		if (vip_status(0)) {
			dispbottom "Expire Time : "+vip_status(3);
		}
		end;
		
	OnInit:
		.pod_id = 7179;
		
		setarray .vip_day,7,14,30;
		setarray .vip_cashpoint,4000,7000,10000;
		setarray .vip_pod,4000,7000,10000;
		bindatcmd("vip", strnpcinfo(3)+"::OnTalk");
		bindatcmd("vipstatus", strnpcinfo(3)+"::OnCheck");
		end;
}

 

Edited by Emistry
  • 0
Posted (edited)
2 hours ago, Emistry said:

prontera,155,181,5	script	Sample#vip	4_F_KAFRA1,{

	OnTalk:
		if ( vip_status(0) ) {
			mes "You're VIP.";
		}
		else {
			mes "Buy VIP ?";
			
			.@i = select( 
				.vip_day[0] + " Days",
				.vip_day[1] + " Days",
				.vip_day[2] + " Days"
			) - 1;
			
			mes "VIP "+.vip_day[.@i]+" Days";
			mes "Cost: "+.vip_cashpoint[.@i]+" or "+.vip_pod[.@i]+"x "+getitemname( .pod_id );
			if ( select( "Pay by CashPoint","Pay by "+getitemname( .pod_id ) ) == 1 ) {
				if ( #CASHPOINT < .vip_cashpoint[.@i] ) {
					mes "Not enough cash point.";
				}
				else {
					#CASHPOINT -= .vip_cashpoint[.@i];
					vip_time ( .vip_day[.@i] * 1440 );
				}
			}
			else {
				if ( countitem( .pod_id ) < .vip_pod[.@i] ) {
					mes "Not enough "+getitemname( .pod_id );
				}
				else {
					delitem .pod_id,.vip_pod[.@i];
					vip_time ( .vip_day[.@i] * 1440 );
				}
			}
		}
		close;
		
	OnCheck:
		if (vip_status(0)) {
			dispbottom "Expire Time : "+vip_status(3);
		}
		end;
		
	OnInit:
		.pod_id = 7179;
		
		setarray .vip_day,7,14,30;
		setarray .vip_cashpoint,4000,7000,10000;
		setarray .vip_pod,4000,7000,10000;
		bindatcmd("vip", strnpcinfo(NPC_NAME_UNIQUE)+"::OnTalk");
		bindatcmd("vipstatus", strnpcinfo(NPC_NAME_UNIQUE)+"::OnCheck");
		end;
}

1st. Error no bindcommand

15644283_1146519178797897_2031285979_n.p

2nd even i got 10k Cash Point

Edited by Bringer
  • 0
Posted
bindatcmd("vip", strnpcinfo(NPC_NAME_UNIQUE)+"::OnTalk");
bindatcmd("vipstatus", strnpcinfo(NPC_NAME_UNIQUE)+"::OnCheck");

change to

bindatcmd("vip", strnpcinfo(3)+"::OnTalk");
bindatcmd("vipstatus", strnpcinfo(3)+"::OnCheck");

 

  • 0
Posted
36 minutes ago, Emistry said:

bindatcmd("vip", strnpcinfo(NPC_NAME_UNIQUE)+"::OnTalk");
bindatcmd("vipstatus", strnpcinfo(NPC_NAME_UNIQUE)+"::OnCheck");

change to


bindatcmd("vip", strnpcinfo(3)+"::OnTalk");
bindatcmd("vipstatus", strnpcinfo(3)+"::OnCheck");

 

i can use Pods but if when i try use cash point not working

  • 0
Posted
prontera,155,181,5	script	Sample#vip	4_F_KAFRA1,{

	OnTalk:
		if ( vip_status(0) ) {
			mes "You're VIP.";
		}
		else {
			mes "Buy VIP ?";
			
			.@i = select( 
				.vip_day[0] + " Days",
				.vip_day[1] + " Days",
				.vip_day[2] + " Days"
			) - 1;
			
			mes "VIP "+.vip_day[.@i]+" Days";
			mes "Cost: "+.vip_cashpoint[.@i]+" or "+.vip_pod[.@i]+"x "+getitemname( .pod_id );
			if ( select( "Pay by CashPoint","Pay by "+getitemname( .pod_id ) ) == 1 ) {
				if ( #CASHPOINTS < .vip_cashpoint[.@i] ) {
					mes "Not enough cash point. You got only "+#CASHPOINTS;
				}
				else {
					#CASHPOINTS -= .vip_cashpoint[.@i];
					vip_time ( .vip_day[.@i] * 1440 );
				}
			}
			else {
				if ( countitem( .pod_id ) < .vip_pod[.@i] ) {
					mes "Not enough "+getitemname( .pod_id )+". You got only "+countitem( .pod_id );
				}
				else {
					delitem .pod_id,.vip_pod[.@i];
					vip_time ( .vip_day[.@i] * 1440 );
				}
			}
		}
		close;
		
	OnCheck:
		if (vip_status(0)) {
			dispbottom "Expire Time : "+vip_status(3);
		}
		end;
		
	OnInit:
		.pod_id = 7179;
		
		setarray .vip_day,7,14,30;
		setarray .vip_cashpoint,4000,7000,10000;
		setarray .vip_pod,4000,7000,10000;
		bindatcmd("vip", strnpcinfo(3)+"::OnTalk");
		bindatcmd("vipstatus", strnpcinfo(3)+"::OnCheck");
		end;
}

 

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...