Przeglądaj źródła

Updates 3rd Trader NPC according to KRO Sakray (#4387)

* Updates Poison Herb, Rune Stone, and Point Merchants to a simple shop that doesn’t give discounts.
Thanks to @JohnnyPlayy!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
JohnnyPlayy 5 lat temu
rodzic
commit
735c76e3d3
1 zmienionych plików z 24 dodań i 162 usunięć
  1. 24 162
      npc/re/merchants/3rd_trader.txt

+ 24 - 162
npc/re/merchants/3rd_trader.txt

@@ -18,138 +18,35 @@
 //= 1.4 Updated to match the official scripts. [Euphy]
 //= 1.5 Added Izlude duplicates. [Euphy]
 //= 1.5a Remove useless array & misc. [Capuche]
+//= 1.6 Changing Shape of NPCs. [JohnnyPlayy]
 //============================================================ 
 
 // Poison Herb Merchants (Guillotine Cross) :: poison_herb_3rd_trader
 //============================================================
--	script	::phs	-1,{
-	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
-		mes "- Wait a minute !! -";
-		mes "- Currently you're carrying -";
-		mes "- too many items with you. -";
-		mes "- Please try again -";
-		mes "- after you lose some weight. -";
-		close;
-	}
-	mes "[Poison Herb Merchant]";
-	mes "I am the professional";
-	mes "Poison Herb merchant.";
-	mes "Each Herb costs 4,000 zeny.";
-	mes "What would you like?";
-	next;
-	.@i = select("Nerium:Rantana:Makulata:Seratum:Scopolia:Amoena:Poison Kit:Cancel")-1;
-	mes "[Poison Herb Merchant]";
-	if (.@i < 6) {
-		.@item = 7932+.@i;
-		.@price = 4000;
-		.@max = 2000;
-	} else if (.@i == 6) {
-		.@item = 7931;
-		.@price = 5000;
-		.@max = 500;
-		mes "Each Poison Kit costs 5,000 zeny.";
-	} else {
-		mes "Well, I see. Come back again~!";
-		close;
-	}
-	mes "How many do you want?";
-	mes "You can only buy a maximum of '"+.@max+"' ea.";
-	mes "Enter '0' if you want to cancel.";
-	next;
-	input .@amount;
-	if (.@amount == 0) {
-		mes "[Poison Herb Merchant]";
-		mes "You've cancelled the trade.";
-		close;
-	}
-	if (.@amount > .@max) {
-		mes "[Poison Herb Merchant]";
-		mes "The number must be less than "+callfunc("F_InsertComma",.@max)+"!";
-		close;
-	}
-	.@total = .@amount * .@price;
-	if (Zeny < .@total) {
-		mes "[Poison Herb Merchant]";
-		mes "You don't have enough money.";
-		mes "Check how much money you have first.";
-		close;
-	}
-	Zeny = Zeny - .@total;
-	getitem .@item, .@amount;
-	mes "[Poison Herb Merchant]";
-	mes "Thank you. Come back again~!";
-	close;
+-	shop	Herb_Seller	HIDDEN_NPC,no,7932:4000,7933:4000,7934:4000,7935:4000,7936:4000,7937:4000,7931:5000
+
+-	script	::phs	HIDDEN_NPC,{
+	npctalk "Do you need poison?", "", bc_self;
+	callshop "Herb_Seller",1;
+	end;
 }
+
 job3_guil01,79,96,3	duplicate(phs)	Poison Herb Merchant	4_F_YUNYANG
 morocc,193,100,4	duplicate(phs)	Poison Herb Merchant#moc	4_F_YUNYANG
 lhz_in02,16,205,4	duplicate(phs)	Poison Herb Merchant#lhz	4_F_YUNYANG
 
 // Rune Stone Merchants (Rune Knight) :: rune_3rd_trader
 //============================================================
--	script	::runesale	-1,{
-	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
-		mes "- Wait a minute !! -";
-		mes "- Currently you're carrying -";
-		mes "- too many items with you. -";
-		mes "- Please try again -";
-		mes "- after you lose some weight. -";
-		close;
-	}
-	mes "[Rune Merchant]";
-	mes "Hey, do you need Runes?!";
-	mes "I sell all sorts of Rune Stones!";
-	mes "What would you like?";
-	next;
-	.@i = select("Buy high-quality Rune Stones.:Buy ordinary Rune Stones.");
-	mes "[Rune Merchant]";
-	if (.@i == 1) {
-		mes "High-quality Runes!";
-		mes "They cost 2,500 zeny each!";
-		.@item = 12734; //Runstone_Quality
-		.@price = 2500;
-	} else {
-		mes "Ordinary Rune Stones?";
-		mes "They cost 1,000 zeny each!";
-		.@item = 12737; //Runstone_Ordinary
-		.@price = 1000;
-	}
-	mes "Tell me how many you want,";
-	mes "and remember, you can only";
-	mes "buy a maximum of '2000' ea.";
-	next;
-	input .@amount;
-	if (.@amount == 0) {
-		mes "[Rune Merchant]";
-		mes "You're not buying? Please leave!";
-		close;
-	}
-	if (.@amount > 2000) {
-		mes "[Rune Merchant]";
-		mes "The number must be less than 2,000!";
-		close;
-	}
-	.@total = .@amount * .@price;
-	if (Zeny < .@total) {
-		mes "[Rune Merchant]";
-		mes "Zeny! Zeny!";
-		mes "You don't have enough money.";
-		mes "Check how much money you have first.";
-		close;
-	}
-	if (!checkweight(.@item,.@amount)) {
-		mes "[Rune Merchant]";
-		mes "It doesn't seem like you are able to carry it all, why are you trying it?!";
-		close;
-	}
-	Zeny = Zeny - .@total;
-	getitem .@item, .@amount;
-	mes "[Rune Merchant]";
-	mes "Thank you.";
-	mes "Please come back again~!";
-	close;
+-	shop	Runes_Seller	HIDDEN_NPC,no,12737:1000,12734:2500,12738:7500,12735:18000,12736:50000,7939:20000,7938:10000
+
+-	script	::runesale	HIDDEN_NPC,{
+	npctalk "There are several types of runes.", "", bc_self;
+	callshop "Runes_Seller",1;
+	end;
 }
-job3_rune01,90,62,3	duplicate(runesale)	Rune Merchant#job3	4_M_YURI
-prontera,168,228,3	duplicate(runesale)	Rune Merchant#prt	4_M_YURI
+
+job3_rune01,90,62,3	duplicate(runesale)	Rune Merchant#job3	4W_M_01
+prontera,168,228,3	duplicate(runesale)	Rune Merchant#prt	4W_M_01
 
 // Rare Herb Merchants (Guillotine Cross) :: rare_herb_3rd_trader
 //============================================================
@@ -216,49 +113,14 @@ job3_guil01,91,93,3	script	Rare Herb Collector	1_M_03,{
 
 // Point Merchants (Sorcerer) :: point_3rd_trader
 //============================================================
--	script	::pss	-1,{
-	if (checkweight(1201,1) == 0 || MaxWeight - Weight < 2000) {
-		mes "- Wait a minute !! -";
-		mes "- Currently you're carrying -";
-		mes "- too many items with you. -";
-		mes "- Please try again -";
-		mes "- after you lose some weight. -";
-		close;
-	}
-	mes "[Point Merchant]";
-	mes "Hello. I'm selling a catalyst called ^FF0000Points^000000 for Sorcerers. What would you like?";
-	next;
-	.@i = select("Scarlet Points - 200z:Lime Green Points - 200z:Indigo Points - 200z:Yellow Wish Points - 200z:Cancel")-1;
-	mes "[Point Merchant]";
-	if (.@i == 4) {
-		mes "You can't find the stuff you need?";
-		close;
-	}
-	setarray .@itemid[0],6360,6363,6361,6362;
-	setarray .@color$[0],"Scarlet","Lime Green","Indigo","Yellow Wish";
-	mes "You have chosen "+.@color$[.@i]+" Points.";
-	mes "How many do you want?";
-	mes "If you want to cancel, enter 0.";
-	next;
-	input .@amount;
-	mes "[Point Merchant]";
-	if (.@amount == 0) {
-		mes "You've cancelled the trade.";
-		close;
-	}
-	if (Zeny < .@amount*200) {
-		mes "You don't seem to have enough money.";
-		close;
-	}
-	if (!checkweight(.@itemid[.@i],.@amount)) {
-		mes "You don't have enough space in your inventory to buy this amount.";
-		close;
-	}
-	Zeny = Zeny-(.@amount*200);
-	getitem .@itemid[.@i],.@amount;
-	mes "Thank you very much. See you~!";
-	close;
+-	shop	Shard_Seller	HIDDEN_NPC,no,6360:200,6363:200,6361:200,6362:200
+
+-	script	::pss	HIDDEN_NPC,{
+	npctalk "Do you have an element for each property?", "", bc_self;
+	callshop "Shard_Seller",1;
+	end;
 }
+
 gef_tower,105,172,5	duplicate(pss)	Point Merchant#Sorcerer	8_F_GIRL
 prt_in,131,66,0	duplicate(pss)	Point Merchant#Prontera	8_F_GIRL
 alberta,105,52,7	duplicate(pss)	Point Merchant#Alberta	8_F_GIRL