Jump to content
  • 0

Question

Posted
I would like to request a script. To exchange 3 Zeny Ticket. 1b, 500k, 100k.
Id 31366 100k
Id 31367 500kk
Id 31368 1b
And vice versa. Example npc will remove the zeny and give the tickets. And when the players have the tickets, it turns into zeny.
Thank you!

4 answers to this question

Recommended Posts

  • 0
Posted
prontera,158,173,4	script	Coin Trader	860,{

// ----------------------
// - Core Code
// ----------------------

cutin "kafra_08",2;
mes "[" + .colors$[1] + .npc_name$ + .colors$[0] + "]";
mes "What would you like to do today?";
set .@trade_type, select("- Coins -> Zeny:- Zeny -> Coins");

mes "Very well. Here is the list on how much each coin is worth:";
for (set .@a, 0; .@a < getarraysize(.coin_id); set .@a, .@a + 1) {
	mes .colors$[3 + .@a] + getitemname(.coin_id[.@a]) + .colors$[0] + ": " + .coin_to_zeny_format$[.@a] + "z";
	set .@coin_menu$, .@coin_menu$ + (.@coin_menu$ == "" ? "" : ":") + .colors$[3 + .@a] + getitemname(.coin_id[.@a]) + .colors$[0];
}

mes "Tell me, what coin would you like to exchange?";
next;

set .@coin_choice, select(.@coin_menu$) - 1;

next;

mes "[" + .colors$[1] + .npc_name$ + .colors$[0] + "]";

switch(.@trade_type) {
	case 1: // Coins -> Zeny
		mes "How much coins would you like to give up?";
		input .@amount;
		if (.@amount <= 0) { // Invalid Number?
			mes .colors$[2] + "Please Input a number greater than 0:";
			cutin "",255;
			close;
		} else if (countitem(.coin_id[.@coin_choice]) < .@amount) {
			mes .colors$[2] + "I'm sorry, you do not have " + .@amount + " " + getitemname(.coin_id[.@coin_choice]) + (.@amount == 1 ? "" : "s");
			cutin "",255;
			close;
		} else { // Ok! Checks Passed, Let's Trade!
                               if(Zeny >= 2000000000) goto L_FullZeny; //Checks to see if the player has more than 1.8b
			set Zeny,Zeny + (.coin_to_zeny[.@coin_choice] * .@amount);
			delitem .coin_id[.@coin_choice],.@amount;
			cutin "",255;
			break;
		}

	case 2: // Zeny -> Coins
		mes "How much coins would you like?";
		input .@amount;
		if (.@amount <= 0) { // Invalid Number?
			mes .colors$[2] + "Please Input a number greater than 0:";
			cutin "",255;
			close;
		} else if (!checkweight(.coin_id[.@coin_choice],.@amount)) { // Will it Make Char Overweight?
			mes .colors$[2] + "I'm Sorry, but you can't carry this due to weight restrictions";
			cutin "",255;
			close;
		} else if (Zeny < .coin_to_zeny[.@coin_choice] * .@amount) {
			mes .colors$[2] + "I'm sorry, you do not have enough zeny...";
			cutin "",255;
			close;
		} else { // Checks OK! Let's trade!
			set Zeny, Zeny - (.coin_to_zeny[.@coin_choice] * .@amount);
			getitem .coin_id[.@coin_choice], .@amount;				
			cutin "",255;
		}
	}
	mes "[" + .colors$[1] + .npc_name$ + .colors$[0] + "]";
	mes "Pleasure doing business with you.";
	close2;
	cutin "", 255;
	close;


	L_FullZeny:
                       next;
                       mes "[" + .colors$[1] + .npc_name$ + .colors$[0] + "]";
                       mes "I'm sorry, but I can't allow you to exchange Coins into Zeny when you have over 1.8b zeny.";
                       close;

		// ----------------------
		// - Soft Code
		// ----------------------	

                 OnInit:
		// Store NPC Name
		set .npc_name$, "Coin Master";

		// Storing Colours
		// Order of Array: Default Text, NPC Name, Error, coin_type1, coin_type2, coin_type3, coin_type4, etc...
		// Note: If you plan on adding additional coins, simply add a new color here
		setarray .colors$[0],"^000000", "^336699", "^550000", "^996633", "^666666", "^FFFF66", "^99CCCC";

		// Set Coin Item ID's
		// In Order coin_id1, coin_id2, coin_id3, coin_id4, etc...
		setarray .coin_id[0],674, 671, 675, 670;

		// Coin -> Zeny Value
                       // Change the Value you want the coins to be worth | Order: Mithril Coin, Gold Coin, Silver Coin, Bag of Gold Coin
		setarray .coin_to_zeny[0],1000000,10000000,200000000,1000000000;

		// Currency Formatted String of Zeny | Order: Bronze Coin, Gold Coin, Platinum Coin, Mithril Coin
		setarray .coin_to_zeny_format$[0],"1,000,000","10,000,000","200,000,000","1,000,000,000";
}

 

  • Upvote 1
  • Love 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...