Browse Source

Eclage update with minor error fix. r2

Skormie 10 năm trước cách đây
mục cha
commit
e8d0d35324

+ 2 - 2
npc/re/cities/eclage.txt

@@ -3,14 +3,14 @@
 //===== By: ================================================== 
 //= Dastgir
 //===== Current Version: ===================================== 
-//= 1.0.1
+//= 2.0
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //===== Description: ========================================= 
 //= Eclage Town NPC
 //===== Additional Comments: ================================= 
 //= 1.0 Generic NPC place holders. [Euphy]
-//= 1.0.1 Converted from the official Aegis script. [Dastgir]
+//= 2.0 Converted from the official Aegis script. [Dastgir]
 //============================================================ 
 
 ecl_in02,96,22,3	script	sign#prison_inn	545,{

+ 12 - 24
npc/re/instances/EclageInterior.txt

@@ -10,7 +10,7 @@
 //= Eclage Interior Instance
 //===== Additional Comments: ================================= 
 //= 1.0 Converted from the official Aegis script. [Dastgir]
-//= 1.1 Converted from Hercules script to rAthena script & Small error fix. [Skorm]
+//= 1.1 Converted from Hercules script to rAthena script & Small bug fix. [Skorm]
 //============================================================ 
 
 ecl_hub01,132,12,3	script	Chief of Staff#tl02	435,{
@@ -151,32 +151,20 @@ OnInstanceInit:
 	end;
 	
 OnInstanceInit:
-	'mob_summoned = 0;
 	disablenpc instance_npcname(strnpcinfo(0));
 	end;
 	
 OnEnable:
-	initnpctimer;
-	end;
-	
-OnReset:
-	killmonster instance_mapname("1@ecl"),instance_npcname("#sndmaster")+"::OnMyMobDead";
-	stopnpctimer;
-	end;
-OnTimer1000:
+	sleep 1000;
     mapannounce instance_mapname("1@ecl"),"Warning: Abnormal occurrence in the lighting room. Abnormal occurrence in the lighting room.",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
-	end;
-OnTimer2000:
+	sleep 2000;
     mapannounce instance_mapname("1@ecl"),"Suspicious Creature: Kerrrrr....krwahhhh!!",bc_map,"0xffff00"; //FW_NORMAL 12 0 0
 	hideoffnpc instance_npcname("Suspicious Creature#5");
 	hideoffnpc instance_npcname("Suspicious Creature#6");
 	hideoffnpc instance_npcname("Suspicious Creature#7");
 	hideoffnpc instance_npcname("Suspicious Creature#8");
-	end;
-	
-OnTimer3000:
+	sleep 3000;
 	hideonnpc instance_npcname("#sndmaster");
-	stopnpctimer;
 	end;
 	
 OnMyMobDead:
@@ -187,7 +175,7 @@ OnMyMobDead:
 	end;
 	
 OnTouch:
-	if ('mob_summoned) end;
+	if ( 'mob_summoned > 1 ) end;
     mes "Upon eliminating the intruders near the Orb, another strange-looking creatures appeared.";
     next;
     mes "We couldn't communicate with them either, and one of them seemed furious after looking around and finding out that its fellows are defeated.";
@@ -203,6 +191,7 @@ OnTouch:
     next;
     mes "A battle cannot be avoided!";
     mes "They will kill me!";
+	close2;
 	hideonnpc instance_npcname("Suspicious Creature#5");
 	hideonnpc instance_npcname("Suspicious Creature#6");
 	hideonnpc instance_npcname("Suspicious Creature#7");
@@ -221,14 +210,14 @@ OnTouch:
 	monster .@eclmap$,42,69,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
 	monster .@eclmap$,47,64,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
 	monster .@eclmap$,50,60,"Subordinate of the King of Demons",2376,1,.@sndmaster$+"::OnMyMobDead";
-	'mob_summoned = 1;
-    close;
+	'mob_summoned = 2;
+    end;
 }
 
 1@ecl,57,65,0	script	#event	139,5,5,{
 	end;
 OnTouch:
-	if ('mob_summoned) end;
+	if ( 'mob_summoned > 0 ) end;
 	.@eclmap$ = instance_mapname("1@ecl");
 	.@eventname$ = instance_npcname("#event");
 	mes "An empty room with nothing inside.";
@@ -245,6 +234,7 @@ OnTouch:
 	next;
 	mes "It seems like they are going to start attacking any minute.";
 	mes "We cannot help fighting them!";
+	close2;
 	hideonnpc instance_npcname("Suspicious Creature#1");
 	hideonnpc instance_npcname("Suspicious Creature#2");
 	hideonnpc instance_npcname("Suspicious Creature#3");
@@ -258,16 +248,14 @@ OnTouch:
 	monster .@eclmap$,55,80,"Suspicious Creature",2375,1,.@eventname$+"::OnMyMobDead";
 	monster .@eclmap$,60,75,"Suspicious Creature",2375,1,.@eventname$+"::OnMyMobDead";
 	'mob_summoned = 1;
-	close;
+	end;
+	
 OnMyMobDead:
 	if (mobcount(instance_mapname("1@ecl"),instance_npcname("#event")+"::OnMyMobDead") == 0) {
 		enablenpc instance_npcname("#sndmaster");
 		donpcevent instance_npcname("#sndmaster")+"::OnEnable";
 	}
 	end;
-OnInstanceInit:
-	'mob_summoned = 0;
-	end;
 }
 
 1@ecl,148,97,3	script	Avant#	618,{

+ 2 - 2
npc/re/merchants/coin_exchange.txt

@@ -3,7 +3,7 @@
 //===== By: ==================================================
 //= rAthena Dev Team
 //===== Current Version: =====================================
-//= 1.2.1
+//= 1.3
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //===== Description: =========================================
@@ -13,7 +13,7 @@
 //= 1.0 First version. [Euphy/Lemongrass]
 //= 1.1 Added remaining Malangdo traders. [Euphy/Lemongrass]
 //= 1.2 Added Eclage traders (not fully complete). [Euphy]
-//= 1.2.1 Completed Eclage Traders. [Dastgir]
+//= 1.3 Completed Eclage Traders. [Dastgir]
 //============================================================
 
 // Malangdo

+ 59 - 53
npc/re/quests/quests_eclage.txt

@@ -14,10 +14,35 @@
 //= 1.1 Converted from Hercules Script to rAthena Script. [Skorm]
 //============================================================ 
 
-// Teleport Cats
+// Teleport Cats (14.2 Cat Hand Addition)
 //============================================================
-
-ecl_fild01,118,311,4	script	Teleport Cat No.1#1	421,{
+-	script	Teleport Cat#ep14_2	-1,{
+	switch(atoi(charat(strnpcinfo(1),16))) {
+	case 1:
+		setarray .@map$[0],"Entrance to Mora";
+		setarray .@cost[0],15;
+		break;
+	case 2:
+		setarray .@map$[0],"Near Eclage","Near Splendide";
+		setarray .@cost[0],15,55;
+		break;
+	case 3:
+		setarray .@map$[0],"Entrance to Mora","Midgard Allied Forces Post";
+		setarray .@cost[0],55,10;
+		break;
+	case 4:
+		setarray .@map$[0],"Near Splendide","Manuk Field";
+		setarray .@cost[0],10,10;
+		break;
+	case 5:
+		setarray .@map$[0],"Midgard Allied Forces Post","Near El Dicastes";
+		setarray .@cost[0],10,20;
+		break;
+	case 6:
+		setarray .@map$[0],"Manuk Field";
+		setarray .@cost[0],20;
+		break;
+	}
 	mes "[Teleport Cat]";
 	mes "What a nice day, isn't it!";
 	mes "Welcome to Cat Merchant Group. We do anything to please our customers. We would even lie on our back if you want!";
@@ -25,69 +50,50 @@ ecl_fild01,118,311,4	script	Teleport Cat No.1#1	421,{
 	mes "[Teleport Cat]";
 	mes "We provide teleport service between various regions based on our accumulated knowledge. We accept Malangdo Canned Specialties or Zeny, so you can pay however you like it~";
 	next;
-	.@index[0] = .index[(atoi(strnpcinfo(2))*2-2)];
-	.@index[1] = .index[(atoi(strnpcinfo(2))*2-1)];
-	.@menu$ = "Forget it:";
-	for (.@i=0; .@i < getarraysize(.maps$); .@i++){
-		for (.@j=0; .@j<2; .@j++){
-			if (.@index[.@j]&(2<<.@i)){
-				.@mindex[.@j] = .@i;
-				.@pindex[.@j] = (.@index[.@j]-(2<<.@i) )>>8;
-				if (.@pindex[.@j]==4){ .@pindex[.@j]--; }
-				.@menu$ = .@menu$ + .descript$[.@i] + " ( "+ .price[.@pindex[.@j]] +" Canned Food):" + .descript$[.@i] + " ( "+ .price[.@pindex[.@j]]*1000 +" Zeny)";
-				if (.@j==0 && .@index[1]){
-					.@menu$ = .@menu$ + ":";
-				}
-			}
-		}
-	}
-	.@menu = select(.@menu$);
-	if (.@menu==1){
+	set .@menu$,"Forget it:";
+	for(set .@i,0; .@i<getarraysize(.@map$); set .@i,.@i+1) {
+		set .@menu$, .@menu$+
+			.@map$[.@i]+" ("+.@cost[.@i]+" Canned Food):"+
+			.@map$[.@i]+" ("+callfunc("F_InsertComma",.@cost[.@i]*1000)+" Zeny):";
+	}
+	set .@i, select(.@menu$)-2;
+	if (.@i == -1) {
 		mes "[Teleport Cat]";
-		mes "I'll see you later then";
+		mes "I'll see you later then.";
 		close;
 	}
-	if (.@menu%2){
-		.@menu = (.@menu/2)-1;
-		if (Zeny < (.price[.@pindex[.@menu]]*1000)){
+	set .@choice$, .@map$[.@i/2];
+	set .@price, .@cost[.@i/2];
+	if (.@i % 2) {
+		set .@price, .@price*1000;
+		if (Zeny < .@price) {
 			mes "[Teleport Cat]";
 			mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
 			close;
 		}
-		Zeny = Zeny - .price[.@pindex[.@menu]]*1000;
-	}
-	else{
-		.@menu = (.@menu/2)-1;
-		if (countitem(12636) < .price[.@pindex[(.@menu/2)]] ){
+		set Zeny, Zeny-.@price;
+	} else {
+		if (countitem(12636) < .@price) {
 			mes "[Teleport Cat]";
 			mes "I'm afraid it's not enough. Sorry, but it can't be done for free~";
 			close;
 		}
-		delitem 12636,.price[.@pindex[(.@menu/2)]];
+		delitem 12636,.@price; //Malang_Sp_Can
 	}
-	warp .maps$[.@mindex],.x[.@mindex],.y[.@mindex];
-	end;
-	
-OnInit:
-	setarray .maps$,"bif_fild02","ecl_fild01","spl_fild02","mid_camp","ma_fild02","dic_fild01";	//Map Names	//2,4,8,16,32,64
-	setarray .x,291,116,51,180,133,159;	//X-Co-ordinate of Maps
-	setarray .y,323,309,240,247,47,264;	//Y-Co-ordinates of Map
-	setarray .descript$,"Entrace to Mora","Near Eclage","Near Splendide","Midgard Allied Forces Post","Manuk Field","Near El Dicastes";
-	setarray .price,10,15,20,55;	//In terms of Canned Food, Also 1 Canned Food = 1000 Zeny.	//128,256,512,1024
-	setarray .index,2+256,0,		//Bitwise Indexes for Maps and Price Required.
-					4+256,8+1024,
-					2+1024,16+128,
-					8+128,32+128,
-					16+128,64+512,
-					32+512,0;
-	end;
+	if (compare(.@choice$,"Midgard Allied Forces Post")) warp "mid_camp",180,247;
+	else if (compare(.@choice$,"Manuk Field")) warp "man_fild02",133,47;
+	else if (compare(.@choice$,"Near Splendide")) warp "spl_fild02",51,240;
+	else if (compare(.@choice$,"Near El Dicastes")) warp "dic_fild01",159,264;
+	else if (compare(.@choice$,"Entrance to Mora")) warp "bif_fild02",291,323;
+	else if (compare(.@choice$,"Near Eclage")) warp "ecl_fild01",116,309;
+	close;
 }
-
-bif_fild02,293,325,4	duplicate(Teleport Cat No.1#1)	Teleport Cat No.2#2	421
-spl_fild02,53,242,4	duplicate(Teleport Cat No.1#1)	Teleport Cat No.3#3	421
-mid_camp,207,234,4	duplicate(Teleport Cat No.1#1)	Teleport Cat No.4#4	421
-man_fild02,135,49,4	duplicate(Teleport Cat No.1#1)	Teleport Cat No.5#5	421
-dic_fild01,161,266,4	duplicate(Teleport Cat No.1#1)	Teleport Cat No.6#6	421
+ecl_fild01,118,311,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.1	421
+bif_fild02,293,325,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.2	421
+spl_fild02,53,242,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.3	421
+mid_camp,207,234,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.4	421
+man_fild02,135,49,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.5	421
+dic_fild01,161,266,4	duplicate(Teleport Cat#ep14_2)	Teleport Cat No.6	421
 
 // Eclage's Entrance
 //============================================================

+ 2 - 2
npc/re/warps/dungeons/ecl_dun.txt

@@ -3,14 +3,14 @@
 //===== By: ==================================================
 //= Chilly
 //===== Current Version: =====================================
-//= 1.0a
+//= 1.1
 //===== Compatible With: ===================================== 
 //= rAthena Project
 //===== Description: =========================================
 //= Warp Portals for Eclage Dungeon
 //===== Additional Comments: =================================
 //= 1.0 First Version.
-//= 1.0a Corrected Warp Co-ordinates and 
+//= 1.1 Corrected Warp Co-ordinates and 
 //=      name of Warp Portal. [Dastgir]
 //============================================================