Bläddra i källkod

Added Rare Diamond Merchant, converted from AEGIS script

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@15422 54d463be-8e91-2dee-dedb-b68131a5f0ec
script-z3r0 13 år sedan
förälder
incheckning
d011bfae8a
2 ändrade filer med 376 tillägg och 0 borttagningar
  1. 375 0
      npc/merchants/diamond.txt
  2. 1 0
      npc/scripts_athena.conf

+ 375 - 0
npc/merchants/diamond.txt

@@ -0,0 +1,375 @@
+//===== rAthena Script ======================================= 
+//= Rare Diamond Merchant
+//===== By: ================================================== 
+//= Z3R0
+//===== Current Version: ===================================== 
+//= 1.0
+//===== Compatible With: ===================================== 
+//= rAthena SVN
+//===== Description: ========================================= 
+//= [Aegis Conversion]
+//= Exchanges 17 Carat Diamond
+//===== Additional Comments: ================================= 
+//= v1.0 First / Optimized Version
+//============================================================ 
+
+prontera,165,89,6	script	Rare Diamond Merchant#1	58,{
+
+	// Store NPC Name for Ease of Use
+		set .@npc$, "[Rare Diamond Merchant]";
+	
+	// Standard Dialog
+		mes .@npc$;
+		mes "Ladies and Gentlemen! ! !";
+		mes "You've heard rumors but you've never once seen with your own eyes";
+		mes "the world's rarest diamond!";
+		mes "The ^FF82FF'17 Carat Diamond'^000000 is currently on sale for a cheap price!!";
+		mes "If valuable diamonds interest you then listen up!";
+		
+	// Display Next Button	
+		next;
+		
+	// Standard Dialog	
+		mes .@npc$;
+		mes "You can give the diamond as a gift to your lover.";
+		mes "The receiver of the ^FF82FF'17 Carat Diamond'^000000 will cherish it";
+		mes "and treasure you in their heart.";
+		
+	// Display Emotion
+		emotion  56;
+		
+	// Display Next Button
+		next;
+	
+	// Standard Dialog
+		mes .@npc$;
+		mes "What? You don't have a lover?";
+		mes "You can still just hang on to it for yourself.";
+		mes "The enchanting aura of the ^FF82FF'17 Carat Diamond'^000000 is likely";
+		mes "to bring love into your life.";
+		
+	// Display Next Button
+		next;
+		
+	// Standard Dialog
+		mes .@npc$;
+		mes "Known as the captivating diamond of diamonds...";
+		mes "It is the ^FF82FF'17 Carat Diamond'^000000!";	
+		
+	// Display Next Button
+		next;
+
+	// Store Menu Variable String Object
+		set .@menu$, "^FF82FF'17 Carat Diamond'^000000?";
+	
+	// Determine if Item ID 6024 Exists in Inventory
+		if (countitem(6024)) { 			
+			// If Exists (Appends String to Menu)
+				set .@menu$, .@menu$ + ":Exchange my 17 Carat Diamond for zeny..";
+		}
+
+	// Displays Menu to Client & uses Switch to Determine Option Selected
+	switch(select(.@menu$)) {
+		case 1: // Buy Diamond
+			// Standard Dialog
+				mes .@npc$;
+				mes "Yes!";
+				mes "Hehe, the ^FF82FF'17 Carat Diamond'^000000 you see right now";
+				mes "is one of the highest quality 17 carat diamonds.";
+				mes "Comparing it to any pea-sized, colorless rock you may have";
+				mes "dug up from Morroc is unspeakable!";
+
+			// Display Emotion
+			emotion 23;
+			
+			// Display Next Button
+				next;
+				
+			// Standard Dialog
+				mes .@npc$;
+				mes "Some claim that this is the very same diamond";
+				mes "that was seen by Kachua in Comodo!";
+				
+			// Display Next Button
+			next;
+			
+			// Show Menu to Client and Determine if First Option (1) was Chosen
+				if (select("End Conversation:How much is it?") == 1) {
+					// Standard Dialog
+						mes .@npc$;
+						mes "It's rather inexpensive!";
+						mes "If you're interested, talk to me any time!";
+						
+					// Display Close Button
+						close;
+				}
+			
+			// Standard Dialog
+				mes .@npc$;
+				mes "Of course! The most important thing is price!";
+				mes "As I've said earlier, the ^FF82FF'17 Carat Diamond'^000000 has been";
+				mes "appraised as a 17 carat diamond.";
+				mes "There aren't many like it in the world.";
+				
+			// Display Next Button
+				next;
+				
+			// Standard Dialog
+				mes .@npc$;
+				mes "The price is a mere 500 million zeny!";
+				mes "There is also a 1,000,000z service fee.";
+				mes "Compared to the quality of the diamond";
+				mes "this is a small price to pay.";
+				
+			// Display Next Button
+				next;
+			
+			// Show Menu to Client and Determine if First Option (1) was Chosen
+				if (select("^828282It's too expensive.^000000:I'll buy it.") == 1) {
+					// Standard Dialog
+						mes .@npc$;
+						mes "To say that a diamond such as the";
+						mes "^FF82FF'17 Carat Diamond'^000000 is too expensive, ";
+						mes "you leave me speechless.";
+						
+					// Display Close Button
+						close;				
+				}
+			
+			// Standard Dialog
+				mes .@npc$;
+				mes "OOOH! I knew from the moment I saw you that you were the rightful";
+				mes "owner of this wonderful diamond.";
+				mes "I'm glad I wasn't wrong!";
+				mes "I believe this diamond will suit you quite well.";
+				mes "All I need from you is to complete this contract.";
+				
+			// Display Next Button
+				next;
+			
+			// Loop Indefinitely Until Told to Break (1) Always is True
+				while(1) {
+				
+					// Show Menu to Client and Determine if Second Option (2) was Chosen
+						if (select("^B9062FI will sign the contract.^000000:^828282Nevermind, I changed my mind.^000000") == 2) {
+							// Standard Dialog
+								mes .@npc$;
+								mes "I see, that's too bad..";
+								
+							// Display Close Button
+								close;
+						}
+					
+					// Standard Dialog
+						mes .@npc$;
+						mes "What is your name?";
+						next;
+						mes "[" + strcharinfo(0) + "]";
+						mes "My name is " + strcharinfo(0) + ".";
+						
+					// Display Next Button
+						next;
+						
+					// Standard Dialog
+						mes .@npc$;
+						mes "Alright then, please sign here.";
+					
+					// Display Next Button
+					next;
+					
+					// Ask Client to Type Value, Store into Variable 
+						input .@charname$;
+					
+					// Determine if Typed Value equals Character Name
+						if (.@charname$ == strcharinfo(0)) {
+							// Standard Dialog
+								mes .@npc$;
+								mes "Okay, good.";
+								mes "All that is left now is payment.";
+								
+							// Display Next Button
+							next;
+							
+							// Determine if Client Zeny is Greater or Equal to Value (501000000)
+								if (Zeny >= 501000000) {
+									// Standard Dialog
+										mes .@npc$;
+										mes ". . . . . .";
+									
+									// Display Next Button
+										next;
+										
+									// Standard Dialog
+										mes .@npc$;
+										mes "Calculating the price and service fee..";
+										mes "501,000,000 zeny.";
+										mes "Amount has been confirmed.";
+									
+									// Display Emotion
+										emotion 56;
+										
+									// Change Zeny to Itself Minus Value (501000000)
+										set Zeny, Zeny - 501000000;
+										
+									// Give Client One (1) of Item ID 6024
+									getitem 6024, 1;
+									
+									// Display Next Button
+										next;
+										
+									// Standard Dialog
+										mes .@npc$;
+										mes "You may exchange the diamond back for zeny at any time.";
+										mes "However, there will be a 1,000,000z service fee.";
+										mes "Thank you for your business.";
+										
+									// Display Emotion
+										emotion 15;
+										
+									// Display Close Button
+									close;
+								} 
+								else {  // The Zeny Check Failed
+								// Standard Dialog
+									mes .@npc$;
+									mes "Hm?";
+									mes "I'm sorry, but you don't have sufficient funds.";
+									mes "Including the service fee, a total of 501,000,000z is required.";
+									mes "Please check your zeny balance and try again.";
+									
+								// Display Emotion
+									emotion 20;
+									
+								// Display Close Button
+									close;
+							}
+						} 
+						else { // Signature Check (Typed Value Did Not Equal Character Name)
+							// Standard Dialog
+								mes .@npc$;
+								mes "Is this really your signature?";
+								mes "Will sign again to confirm?";
+							
+							// Display Next Button
+								next;
+						}
+				}
+		case 2: // Exchange Diamond (Only Available if Diamond is in Inventory)
+			// Standard Dialog
+				mes .@npc$;
+				mes "AAH. You would like to exchange your ^FF82FF'17 Carat Diamond'^000000 for zeny?";
+				
+			// Display Emotion
+				emotion 0;
+			
+			// Display Next Button
+				next;
+
+			// Show Menu to Client and Determine if Second Option (2) was Chosen
+				if (select("Yes:No") == 2) {
+					// Standard Dialog
+						mes .@npc$
+						mes "Then, what is it you desire?..";
+						mes ". . . . . ....";
+						
+					// Display Emotion
+						emotion 9;
+					
+					// Display Close Button
+						close;
+				}
+
+			// Standard Dialog
+				mes .@npc$;
+				mes "I see. After I receive your signature, ";
+				mes "You must offer your ^FF82FF'17 Carat Diamond'^000000.";
+				mes "Also don't forget there is a 1,000,000z service fee!";
+			
+			// Display Next Button
+				next;
+				
+			// Standard Dialog
+				mes .@npc$;
+				mes "What is your name?";
+				
+			// Display Next Button
+				next;
+				
+			// Standard Dialog
+				mes "[" + strcharinfo(0) + "]";
+				mes "My name is " + strcharinfo(0) + ".";
+				
+			// Display Next Button
+				next;
+				
+			// Standard Dialog
+				mes .@npc$;
+				mes "Alright then, please sign here.";
+			
+			// Display Next Button
+				next;
+				
+			// Loop Indefinitely Until Told to Break (1) Always is True
+				while (1) {
+				
+				// Show Menu to Client and Determine if Second Option (2) was Chosen
+					if (select("Sign:Don't Sign") == 2) {
+						// Standard Dialog
+							mes .@npc$;
+							mes "The trade cannot be completed without your signature.";
+					
+						// Display Close Button
+							close;
+					}
+				
+				// Ask Client to Type Value, Store into Variable 
+					input .@charname$;
+				
+				// Determine if Typed Value equals Character Name
+					if (.@charname$ == strcharinfo(0)) {
+						// Standard Dialog
+							mes .@npc$;
+							mes "Your signature has been received.";
+							mes "I will now take your ^FF82FF'17 Carat Diamond'^000000..";
+							mes "You will receive ^0000FF499,000,000z^000000 afterwards.";
+							
+						// Display Next Button
+							next;
+							
+						// Standard Dialog
+							mes .@npc$;
+							mes "Thank you for your business.";
+							mes "Whenever you need a ^FF82FF'17 Carat Diamond'^000000,";
+							mes "come back anytime with 500 million zeny.";
+							
+						// Display Emotion
+							emotion 15;
+							
+						// Delete One (1) of Item ID 6024 from Client
+							delitem 6024, 1;
+							
+						// Change Zeny to Itself Plus Value (499000000)
+							set Zeny, Zeny + 499000000;
+						
+						// Display Close Button
+							close;
+					} 
+					else { // Signature Check (Typed Value Did Not Equal Character Name)
+						// Standard Dialog
+							mes .@npc$;
+							mes "Is this really your signature?";
+							mes "Will sign again to confirm?";
+							
+						// Display Next Button
+						next;
+					}
+			}
+	}
+}
+
+geffen,106,63,6	duplicate(Rare Diamond Merchant#1)	Rare Diamond Merchant#2	58
+morocc,146,100,6	duplicate(Rare Diamond Merchant#1)	Rare Diamond Merchant#3	58
+alberta,129,60,6	duplicate(Rare Diamond Merchant#1)	Rare Diamond Merchant#4	58
+lighthalzen,163,65,6	duplicate(Rare Diamond Merchant#1)	Rare Diamond Merchant#5	58
+rachel,106,142,6	duplicate(Rare Diamond Merchant#1)	Rare Diamond Merchant#6	58
+payon,180,130,6	duplicate(Rare Diamond Merchant#1)	Rare Diamond Merchant#7	58

+ 1 - 0
npc/scripts_athena.conf

@@ -61,6 +61,7 @@ npc: npc/merchants/splendide.txt
 npc: npc/merchants/wander_pet_food.txt
 npc: npc/merchants/buying_shops.txt
 npc: npc/merchants/3rd_trader.txt
+npc: npc/merchants/diamond.txt
 // --------------------------------------------------------------
 // ------------------------- Cash Shop --------------------------
 // See file before enabling, as you may wish to change the