Jump to content
  • 0

Reputation increase by Pods/zeny script


Question

1 answer to this question

Recommended Posts

  • 0
Posted

Hi

//===== rAthena Script by Racaae ============================= 
//= https://rathena.org/board/topic/142092-reputation-increase-by-podszeny-script/
//============================================================

prontera,170,181,4	script	Reputation Increaser	4_EP19_IWIN,{
	.@zeny_cost = 2000000;	//Zeny amount needed to increase rep
	.@zeny_reputation = 10;	//how much rep player get using item
	.@item_cost = 5;		//item amount needed to increase rep
	.@item_reputation = 100;//how much rep player get using item
	.@item_id = 7179;		//Proof of Donation ID

	// <Reputation ID>, "<Name>", <Max Limit>;
	setarray .@rep$,
		3, "Grey Wolf Village", 4000,
		4, "Ice Castle", 2000;

    disable_items;
	cutin "ep19_iwin04.png", 2;
    mes "[Reputation Increaser]";
	if (getarraysize(.@rep$) > 3)
		mes "Hello, I can ^FF8000increase your reputation^000000 in some areas if you are willing to invest ^FF8000POD or Zeny^000000.";
	else
		mes "Hello, I can ^FF8000increase your reputation^000000 in the " + .@rep$[1] + " if you are willing to invest ^FF8000POD or Zeny^000000."; 
    next;
    switch(select("How does that work?", (.@zeny_cost?"Invest Zeny":""), (.@item_cost?"Invest POD":""), "Finish conversation")) {
    case 1:
		mes "[Reputation Increaser]";
		mes "I'm here to collect investment from adventurers, therefore increasing their reputation with the area.";
		if (getarraysize(.@rep$) > 3) {
			mes "Available areas:";
			for (.@i = 0; .@i < getarraysize(.@rep$); .@i+=3)
				mes "- " + .@rep$[.@i+1];
		}
		next;
		mes "[Reputation Increaser]";
		if (.@zeny_cost)
			mes "For each ^000088" + F_InsertComma(.@zeny_cost) + "z^000000 you give me, your reputation increases by ^FF0000" + F_InsertComma(.@zeny_reputation) + " points^000000.";
		if (.@item_cost) {
			mes "For ^000088" + F_InsertComma(.@item_cost) + "^000000 " + mesitemlink(.@item_id);
			mes "you give me, your reputation increases by ^FF0000" + F_InsertComma(.@item_reputation) + " points^000000.";
		}
		next;
		mes "[Reputation Increaser]";
		if (getarraysize(.@rep$) > 3) {
			mes "I can increase reputation up to a max. No investments can be made when you reach it.";
			for (.@i = 0; .@i < getarraysize(.@rep$); .@i+=3)
				mes "- " + .@rep$[.@i+1] + " Max: " + .@rep$[.@i+2];
		}
		else
			mes "I can increase reputation up to a max " + .@rep$[2] + ". No investments can be made when you reach it.";
		close3;
	case 2:
		.@zeny = true;
		break;
	case 4:
		mes "[Reputation Increaser]";
        mes "Please do come back, Have a nice day!";
        close3;
	}
	if (getarraysize(.@rep$) > 3) {
		mes "[Reputation Increaser]";
		mes "Which area will you invest?";
		.@menu$ = "";
		for (.@i = 0; .@i < getarraysize(.@rep$); .@i += 3)
			.@menu$ += .@rep$[.@i+1] + ":";
		.@s = (select(.@menu$) - 1) * 3;
		clear;
	}
	mes "[Reputation Increaser]";
	if (get_reputation_points(atoi(.@rep$[.@s])) >= (atoi(.@rep$[.@s+2]))) {
		mes "I can only increase your reputation in the " + .@rep$[.@s+1] + " up to " + .@rep$[.@s+2] + " points.";
		mes "No investments can be made anymore.";
		close3;
	}
	if (.@zeny) {
		mes "For each ^000088" + F_InsertComma(.@zeny_cost) + "z^000000 you give me, your reputation increases by ^FF0000" + F_InsertComma(.@zeny_reputation) + " points^000000.";
		if (Zeny < .@zeny_cost) {
			mes "^FF0000You don't have enough Zeny.^000000";
			close3;
		}
	}
	else {
		mes "For ^000088" + F_InsertComma(.@item_cost) + "^000000 " + mesitemlink(.@item_id);
		mes "you give me, your reputation increases by ^FF0000" + F_InsertComma(.@item_reputation) + " points^000000.";
		if (countitem(.@item_id) < .@item_cost) {
			mes "^FF0000You don't have enough POD.^000000";
			close3;
		}
	}
	switch(select("Invest 1 time", "Input how many times", "Cancel")) {
	clear;
	case 1:
		.@t = 1;
		mes "[Reputation Increaser]";
		break;
	case 2:
		mes "[EXAMPLES]";
		for (.@i = 1; .@i < 11; .@i++) {
			if (.@zeny)
				mes .@i + ": ^000088" + F_InsertComma(.@zeny_cost * .@i) + "z^000000 > ^FF0000" + F_InsertComma(.@zeny_reputation * .@i) + " reputation";
			else
				mes .@i + ": ^000088" + F_InsertComma(.@item_cost * .@i) + " POD^000000 > ^FF0000" + F_InsertComma(.@item_reputation * .@i) + " reputation";
			if (.@i == 3) .@i = 4;
			if (.@i == 5) .@i = 9;
		}
		mes "^FF0000(Enter '0' to cancel the transaction)^000000";
		input .@t;
		if (.@t < 1)
			close3;
		clear;
		mes "[Reputation Increaser]";
		if (.@zeny) {
			if (.@t * .@zeny_cost > Zeny) {
				.@t = Zeny / .@zeny_cost;
				mes "You don't have enough Zeny for that.";
				mes "The closest amount you can invest is " + F_InsertComma(.@zeny_cost * .@t) + "z.";
			}
		}
		else if (.@t * .@item_cost > countitem(.@item_id)) {
				.@t = countitem(.@item_id) / .@item_cost;
				mes "You don't have enough POD for that.";
				mes "The closest amount you can invest is " + F_InsertComma(.@item_cost * .@t) + " POD.";
		}
		break;
	case 3:
		mes "[Reputation Increaser]";
		mes F_Bye;
		close3;
	}
	if (.@zeny)
		mes "Are you sure you want to invest ^000088" + F_InsertComma(.@zeny_cost * .@t) + "z^000000 to receive ^FF0000" + F_InsertComma(.@zeny_reputation * .@t) + " reputation points^000000 in the " + .@rep$[.@s+1] + "?";
	else
		mes "Are you sure you want to invest ^000088" + F_InsertComma(.@item_cost * .@t) + " POD^000000 to receive ^FF0000" + F_InsertComma(.@item_reputation * .@t) + " reputation points^000000 in the " + .@rep$[.@s+1] + "?";
	next;
	if (select("No, cancel.", "Yes, continue!") == 1)
		close3;
	
	mes "[Reputation Increaser]";
	if ((.@zeny &&
	(get_reputation_points(atoi(.@rep$[.@s])) + (.@t * .@zeny_reputation) > atoi(.@rep$[.@s+2]))) ||
	(!.@zeny &&
	(get_reputation_points(atoi(.@rep$[.@s])) + (.@t * .@item_reputation) > atoi(.@rep$[.@s+2])))) {
			emotion ET_OTL;
			mes "Sorry. That amount of reputation would exceed the maximum " + .@rep$[.@s+2] + " I can increase.";
			close3;
	}
	if (.@zeny) {
		if (Zeny < .@zeny_cost * .@t) {
			mes "^FF0000You don't have enough Zeny...^000000";
			close3;
		}
		.@getRep = .@zeny_reputation * .@t;
		Zeny -= .@zeny_cost * .@t;
	}
	else {
		if (countitem(.@item_id) < .@item_cost * .@t) {
			mes "^FF0000You don't have enough POD...^000000";
			close3;
		}
		.@getRep = .@item_reputation * .@t;
		delitem .@item_id, .@item_cost * .@t;
	}
	add_reputation_points(atoi(.@rep$[.@s]), .@getRep);
	mes "It is done! Thank you!";
	mes " ";
	mes "^0000FFYour reputation in the " + .@rep$[.@s+1] + " increases by " + F_InsertComma(.@getRep) + " points^000000.";
	specialeffect2 EF_STEALCOIN;
	emotion ET_DELIGHT;
	close3;
}

 

  • Upvote 1

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