فهرست منبع

Updated ticket_refiner.txt (#6905)

Support for more certificate.

Thanks to @AsurielRO !
Atemo 3 سال پیش
والد
کامیت
78bf9f72c8
2فایلهای تغییر یافته به همراه91 افزوده شده و 51 حذف شده
  1. 14 14
      db/re/item_db_etc.yml
  2. 77 37
      npc/re/merchants/ticket_refiner.txt

+ 14 - 14
db/re/item_db_etc.yml

@@ -22676,7 +22676,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6864
-    AegisName: Safe_to_19_Weapon_Certificate
+    AegisName: Guarantee_Weapon_19Up
     Name: Safe to 19 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22689,7 +22689,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6865
-    AegisName: Safe_to_19_Armor_Certificate
+    AegisName: Guarantee_Armor_19Up
     Name: Safe to 19 Armor Certificate
     Type: Etc
     Buy: 10
@@ -22750,7 +22750,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6870
-    AegisName: Safe_to_13_Weapon_Certificate
+    AegisName: Guarantee_Weapon_13Up
     Name: Safe to 13 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22763,7 +22763,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6871
-    AegisName: Safe_to_14_Weapon_Certificate
+    AegisName: Guarantee_Weapon_14Up
     Name: Safe to 14 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22776,7 +22776,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6872
-    AegisName: Safe_to_15_Weapon_Certificate
+    AegisName: Guarantee_Weapon_15Up
     Name: Safe to 15 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22789,7 +22789,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6873
-    AegisName: Safe_to_16_Weapon_Certificate
+    AegisName: Guarantee_Weapon_16Up
     Name: Safe to 16 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22802,7 +22802,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6874
-    AegisName: Safe_to_17_Weapon_Certificate
+    AegisName: Guarantee_Weapon_17Up
     Name: Safe to 17 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22815,7 +22815,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6875
-    AegisName: Safe_to_18_Weapon_Certificate
+    AegisName: Guarantee_Weapon_18Up
     Name: Safe to 18 Weapon Certificate
     Type: Etc
     Buy: 10
@@ -22828,7 +22828,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6876
-    AegisName: Safe_to_13_Armor_Certificate
+    AegisName: Guarantee_Armor_13Up
     Name: Safe to 13 Armor Certificate
     Type: Etc
     Buy: 10
@@ -22841,7 +22841,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6877
-    AegisName: Safe_to_14_Armor_Certificate
+    AegisName: Guarantee_Armor_14Up
     Name: Safe to 14 Armor Certificate
     Type: Etc
     Buy: 10
@@ -22854,7 +22854,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6878
-    AegisName: Safe_to_15_Armor_Certificate
+    AegisName: Guarantee_Armor_15Up
     Name: Safe to 15 Armor Certificate
     Type: Etc
     Buy: 10
@@ -22867,7 +22867,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6879
-    AegisName: Safe_to_16_Armor_Certificate
+    AegisName: Guarantee_Armor_16Up
     Name: Safe to 16 Armor Certificate
     Type: Etc
     Buy: 10
@@ -22880,7 +22880,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6880
-    AegisName: Safe_to_17_Armor_Certificate
+    AegisName: Guarantee_Armor_17Up
     Name: Safe to 17 Armor Certificate
     Type: Etc
     Buy: 10
@@ -22893,7 +22893,7 @@ Body:
       NoMail: true
       NoAuction: true
   - Id: 6881
-    AegisName: Safe_to_18_Armor_Certificate
+    AegisName: Guarantee_Armor_18Up
     Name: Safe to 18 Armor Certificate
     Type: Etc
     Buy: 10

+ 77 - 37
npc/re/merchants/ticket_refiner.txt

@@ -20,11 +20,47 @@
 //============================================================
 prontera,184,177,6	script	Refine Master	851,{
 	disable_items;
-	if (countitem(6238) || countitem(6228) || countitem(6229) || countitem(6230) || countitem(6231) || countitem(6456))
-		set .@bWeaponUp,1;
-	if (countitem(6239) || countitem(6232) || countitem(6233) || countitem(6234) || countitem(6235) || countitem(6457))
-		set .@bArmorUp,1;
-	if (!.@bWeaponUp && !.@bArmorUp) {
+	setarray .@cert_weapon[0],
+		6864,	// Guarantee_Weapon_19Up
+		6875,	// Guarantee_Weapon_18Up
+		6874,	// Guarantee_Weapon_17Up
+		6873,	// Guarantee_Weapon_16Up
+		6872,	// Guarantee_Weapon_15Up
+		6871,	// Guarantee_Weapon_14Up
+		6870,	// Guarantee_Weapon_13Up
+		6584,	// Guarantee_Weapon_12Up
+		6238,	// Guarantee_Weapon_11Up
+		6228,	// Guarantee_Weapon_9Up
+		6229,	// Guarantee_Weapon_8Up
+		6230,	// Guarantee_Weapon_7Up
+		6231,	// Guarantee_Weapon_6Up
+		6456;	// Guarantee_Weapon_5Up
+	setarray .@cert_armor[0],
+		6865,	// Guarantee_Armor_19Up
+		6881,	// Guarantee_Armor_18Up
+		6880,	// Guarantee_Armor_17Up
+		6879,	// Guarantee_Armor_16Up
+		6878,	// Guarantee_Armor_15Up
+		6877,	// Guarantee_Armor_14Up
+		6876,	// Guarantee_Armor_13Up
+		6585,	// Guarantee_Armor_12Up
+		6239,	// Guarantee_Armor_11Up
+		6232,	// Guarantee_Armor_9Up
+		6233,	// Guarantee_Armor_8Up
+		6234,	// Guarantee_Armor_7Up
+		6235,	// Guarantee_Armor_6Up
+		6457;	// Guarantee_Armor_5Up
+	setarray .@cert_level[0],19,18,17,16,15,14,13,12,11,9,8,7,6,5;
+	.@size_cert = getarraysize(.@cert_weapon);
+
+	for ( .@i = 0; .@i < .@size_cert; ++.@i ) {
+		if (countitem(.@cert_weapon[.@i]) > 0 || countitem(.@cert_armor[.@i]) > 0) {
+			.@check = 1;
+			break;
+		}
+	}
+
+	if (.@check == 0) {
 		mes "[Refine Master]";
 		mes "Hello!";
 		mes "What's up?";
@@ -61,9 +97,10 @@ prontera,184,177,6	script	Refine Master	851,{
 	next;
 	setarray .@position$[1],"Head upper","Armor","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head middle","Head lower";
 	setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
-	for(set .@i,1; .@i<=10; set .@i,.@i+1)
-		set .@menu$, .@menu$+((getequipisequiped(.@indices[.@i]))?getequipname(.@indices[.@i]):.@position$[.@i]+"- [Empty]")+":";
-	set .@part, .@indices[ select(.@menu$) ];
+	for ( .@i = 1; .@i <= 10; ++.@i )
+		.@menu$ += (getequipisequiped(.@indices[.@i]) ? getequipname(.@indices[.@i]) : .@position$[.@i] + "- [Empty]") + ":";
+
+	.@part = .@indices[ select(.@menu$) ];
 	if (!getequipisequiped(.@part)) {
 		mes "[Refine Master]";
 		mes "You have to equip the item you want to refine.";
@@ -86,10 +123,8 @@ prontera,184,177,6	script	Refine Master	851,{
 			case 2:
 			case 3:
 			case 4:
-				setarray .@tickets[0],6456,6231,6230,6229,6228,6238;
-				setarray .@levels[0],5,6,7,8,9,11;
-				set .@type$,"Weapon";
-				set .@check,.@bWeaponUp;
+				copyarray .@tickets[0], .@cert_weapon[0], .@size_cert;
+				.@type$ = "Weapon";
 				break;
 			default:
 				// TODO:
@@ -98,10 +133,8 @@ prontera,184,177,6	script	Refine Master	851,{
 	}else if( .@itemtype == IT_ARMOR ){
 		switch( getequiparmorlv( .@part ) ){
 			case 1:
-				setarray .@tickets[0],6457,6235,6234,6233,6232,6239;
-				setarray .@levels[0],5,6,7,8,9,11;
-				set .@type$,"Armor";
-				set .@check,.@bArmorUp;
+				copyarray .@tickets[0], .@cert_armor[0], .@size_cert;
+				.@type$ = "Armor";
 				break;
 			default:
 				// TODO:
@@ -111,7 +144,14 @@ prontera,184,177,6	script	Refine Master	851,{
 		// TODO:
 		close;
 	}
-	if (!.@check) {
+	.@check = 0;
+	for ( .@i = 0; .@i < .@size_cert; ++.@i ) {
+		if (countitem(.@tickets[.@i]) > 0) {
+			.@check = 1;
+			break;
+		}
+	}
+	if (.@check == 0) {
 		emotion ET_THINK;
 		mes "[Refine Master]";
 		mes "If you want to refine this ^006400"+.@type$+"^000000, please come along with ^006400"+.@type$+" Refine Ticket^000000.";
@@ -121,12 +161,13 @@ prontera,184,177,6	script	Refine Master	851,{
 	mes "[Refine Master]";
 	mes "Please choose which ^006400"+.@type$+" Refine Ticket^000000 you want to use.";
 	next;
-	set .@menu$,"";
-	for(set .@i,0; .@i<getarraysize(.@tickets); set .@i,.@i+1)
-		set .@menu$, .@menu$+getitemname(.@tickets[.@i])+":";
-	set .@select, select(.@menu$)-1;
-	set .@ticket_lv, .@levels[.@select];
-	set .@ticket_id, .@tickets[.@select];
+	.@menu$ = "";
+	for ( .@i = 0; .@i < .@size_cert; ++.@i )
+		.@menu$ += getitemname(.@tickets[.@i]) + ":";
+	.@select = select(.@menu$)-1;
+	.@ticket_lv = .@cert_level[.@select];
+	.@ticket_id = .@tickets[.@select];
+
 	if (countitem(.@ticket_id) == 0) {
 		emotion ET_QUESTION;
 		mes "[Refine Master]";
@@ -160,25 +201,24 @@ prontera,184,177,6	script	Refine Master	851,{
 	mes "I have my own special way to refine...";
 	mes ".......ka boom!";
 	specialeffect EF_SUI_EXPLOSION;
-	if (countitem(.@ticket_id)) {
-		delitem .@ticket_id,1;
-
-		// anti-hack
-		if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
-			callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
-			mes "[Refine Master]";
-			emotion ET_FRET;
-			mes "Wait a second...";
-			mes "Do you think I'm stupid?!";
-			mes "You switched the item while I wasn't looking! Get out of here!";
-			close;
-		}
-	} else {
+	if (countitem(.@ticket_id) < 1) {
 		next;
 		mes "Error!";
 		mes "Please report this.";
 		close;
 	}
+	delitem .@ticket_id,1;
+
+	// anti-hack
+	if (callfunc("F_IsEquipIDHack", .@part, .@refineitemid) ||
+		callfunc("F_IsEquipRefineHack", .@part, .@refinerycnt) || callfunc("F_IsEquipCardHack", .@part, .@card[0], .@card[1], .@card[2], .@card[3])) {
+		mes "[Refine Master]";
+		emotion ET_FRET;
+		mes "Wait a second...";
+		mes "Do you think I'm stupid?!";
+		mes "You switched the item while I wasn't looking! Get out of here!";
+		close;
+	}
 	successrefitem .@part, .@ticket_lv - getequiprefinerycnt(.@part);
 	next;
 	emotion ET_DELIGHT;