Pārlūkot izejas kodu

Updated some part in nightmare Biolab scripts (#4680)

* Fixed some part in nightmare Biolab scripts
* Updated the normal monsters death count to spawn the 'mini-boss' (100 -> 110) and 'mini-boss' death count to spawn the mvp (10 -> 4)
Atemo 5 gadi atpakaļ
vecāks
revīzija
358c640d7e
2 mainītis faili ar 80 papildinājumiem un 26 dzēšanām
  1. 70 16
      npc/re/merchants/nightmare_biolab.txt
  2. 10 10
      npc/re/mobs/dungeons/lhz_dun_n.txt

+ 70 - 16
npc/re/merchants/nightmare_biolab.txt

@@ -129,7 +129,30 @@ function	script	F_Cursed_Fragment	{	// 23016
 lighthalzen,321,218,4	script	Ohno Tohiro#1	4_M_RASWORD,{
 	disable_items;
 	mes "[Ohno Tohiro]";
-	mes "I was asked to collect some kind of research charts...";
+	.@r = rand(1,10);
+	if (.@r < 6)
+		mes "I was asked to collect some kind of research charts...";
+	else if (.@r < 7) {
+		mes "- I hear somebody talking - - remote communication -";
+		next;
+		mes "[Ohno Tohiro]";
+		mes "Yes... everything is proceeding smoothly.";
+		mes "The status of the report collection is okay.";
+		mes "Yes, sir.";
+		next;
+		mes "[Ohno Tohiro]";
+		mes "I'll immediately report the information related to the laboratory as a top priority.";
+		mes "Yes, sir...  I'll do so.";
+		next;
+		mes "[Ohno Tohiro]";
+		mes "Oh somebody has come! I'll call you again later.";
+	}
+	else {
+		mes "[Ohno Tohiro]";
+		mes "My shoulders are heavy.";
+		mes "Our long-cherished wish..";
+		mes "One by one, slowly..";
+	}
 	next;
 	mes "[Ohno Tohiro]";
 	mes "Uh...? I didn't realize someone is here already...";
@@ -185,8 +208,10 @@ lighthalzen,321,218,4	script	Ohno Tohiro#1	4_M_RASWORD,{
 			mes "Alright. Now that I received the Zeny, I'll open the crevice.";
 			mes "I hope you can come back alive!...";
 			next;
-			Zeny = Zeny - 100000;
-			warp "lhz_dun_n",100,202;
+			if (Zeny >= 100000) {
+				Zeny -= 100000;
+				warp "lhz_dun_n",100,202;
+			}
 			end;
 		case 4:
 			mes "[Ohno Tohiro]";
@@ -220,7 +245,7 @@ lighthalzen,321,218,4	script	Ohno Tohiro#1	4_M_RASWORD,{
 			mes "I'll send you to the crevice as promised.";
 			mes "I want you alive. See you again!";
 			next;
-			delitem 7347,10;// Research Chart
+			delitem 7347,10;// Lab_Staff_Record
 			warp "lhz_dun_n",100,202;
 			end;
 		}
@@ -348,10 +373,13 @@ lighthalzen,320,204,3	script	A kid with black finger	4_F_04,{
 lighthalzen,327,216,3	script	Crevice#1	4_CRACK,{
 	end;
 OnInit:
-	while(true) {
-		sleep 6000;
-		specialeffect EF_AGIUP3;
-	}
+	initnpctimer;
+	end;
+OnTimer5000:
+	specialeffect EF_AGIUP3;
+	end;
+OnTimer6000:
+	initnpctimer;
 	end;
 }
 
@@ -363,12 +391,14 @@ lhz_dun_n,96,203,3	script	Dungeon gateway#1	4_CRACK,{
 	}
 	warp "lighthalzen",310,228;
 	end;
-
 OnInit:
-	while(true) {
-		sleep 6000;
-		specialeffect EF_AGIUP3;
-	}
+	initnpctimer;
+	end;
+OnTimer5000:
+	specialeffect EF_AGIUP3;
+	end;
+OnTimer6000:
+	initnpctimer;
 	end;
 }
 
@@ -1040,6 +1070,12 @@ lhz_dun_n,143,269,4	script	Victimized Soul's Mind#1	4_M_DEATH2,{
 	mes "If you... bring... one... I'll restore... it... to energy... pieces...";
 	while(true) {
 		next;
+		if (checkweight(2677,5) == 0) {
+			mes "[Victimized Soul's Mind]";
+			mes "Your backpack..";
+			mes "is filled...";
+			close;
+		}
 		if (select( "Hand over the weapon.", "End the conversation." ) == 2) {
 			mes "[Victimized Soul's Mind]";
 			mes "...You... will... find me... again...";
@@ -1125,7 +1161,7 @@ S_Exchange:
 	.@menu$ = "Go back to previous menu.:";
 	for ( .@i = 0; .@i < .@size; .@i++ ) {
 		if (countitem(getarg(.@i)) < 1)
-			.@menu$ += "^777777Not enough " + getitemname(getarg(.@i)) + ".^000000:";
+			.@menu$ += "^999999Not enough " + getitemname(getarg(.@i)) + ".^000000:";
 		else
 			.@menu$ += "You have " + getitemname(getarg(.@i)) + ".:";
 	}
@@ -1143,7 +1179,8 @@ S_Exchange:
 			next;
 			return;
 		}
-		progressbar "000000",5;
+		donpcevent strnpcinfo(0) + "::OnBar";
+		sleep2 5000;
 		specialeffect EF_BLACKBODY;
 		specialeffect EF_GUMGANG4;
 		specialeffect EF_DARKCASTING2;
@@ -1152,7 +1189,14 @@ S_Exchange:
 		specialeffect2 EF_POISONSMOKE;
 		specialeffect2 EF_NPC_BURNT;
 		delitem getarg(.@s),1;
-		getitem 6820, rand(1,3);// Energy Fragment
+		.@r = rand(100);
+		if (.@r < 70)
+			.@amount = 1;
+		else if (.@r < 90)
+			.@amount = 2;
+		else
+			.@amount = 3;
+		getitem 6820, .@amount;// Energy Fragment
 		mes "[Victimized Soul's Mind]";
 		mes "I have made... Energy... Fragment... by restoring ^006400" + getitemname(getarg(.@s)) + "^000000...";
 		next;
@@ -1163,6 +1207,10 @@ S_Exchange:
 	mes "Do you have... any other business... with me?...";
 	next;
 	return;
+
+OnBar:
+	progressbar_npc "000000",5;
+	end;
 }
 
 lhz_dun_n,136,269,6	script	Sorrowful Soul's Mind#1	4_M_DEATH,{
@@ -1226,6 +1274,12 @@ lhz_dun_n,136,269,6	script	Sorrowful Soul's Mind#1	4_M_DEATH,{
 		getitemname(18983),	// Old_Protect_Of_Crown
 		getitemname(20749);	// Cloak of the Fallen Soldier[1]
 	while(true) {
+		if (checkweight(2677,5) == 0) {
+			mes "[Sorrowful Soul's Mind]";
+			mes "Your backpack..";
+			mes "is filled...";
+			close;
+		}
 		if (select( "Hand over the soul.", "End the conversation." ) == 2) {
 			mes "[Sorrowful Soul's Mind]";
 			mes "...I wish... you... can come back... to me again...";

+ 10 - 10
npc/re/mobs/dungeons/lhz_dun_n.txt

@@ -28,9 +28,9 @@ lhz_dun_n,0,0,0	script	lhz_dun_n	-1,{
 	end;
 OnRegularDead:
 	.@mob_id = killedrid;
-	if (getd( ".lhz_dun_n" + .@mob_id ) < 100 && .lhz_dun_n_boss == 0) {
-		setd ".lhz_dun_n" + .@mob_id, getd( ".lhz_dun_n" + .@mob_id ) + 1;
-		if (getd( ".lhz_dun_n" + .@mob_id ) == 100) {
+	if (.lhz_dun_n[.@mob_id] < 110 && .lhz_dun_n_boss == 0) {
+		.lhz_dun_n[.@mob_id]++;
+		if (.lhz_dun_n[.@mob_id] == 110) {
 			.@mini_boss = .@mob_id + 6 + (.@mob_id > 3213);	// mini boss version ID: regular ID +6 for non-transcendent, +7 for others
 			monster "lhz_dun_n",0,0,"--en--",.@mini_boss,1, "lhz_dun_n::OnMiniDead";
 		}
@@ -38,15 +38,15 @@ OnRegularDead:
 	end;
 OnMiniDead:
 	.@mob_id = killedrid;
-	if (getd( ".lhz_dun_n" + .@mob_id ) < 10 && .lhz_dun_n_boss == 0) {
-		setd ".lhz_dun_n" + .@mob_id, getd( ".lhz_dun_n" + .@mob_id ) + 1;
+	if (.lhz_dun_n[.@mob_id] < 4 && .lhz_dun_n_boss == 0) {
+		.lhz_dun_n[.@mob_id]++;
 		.@regular = .@mob_id - 6 - (.@mob_id > 3219);
-		if (getd( ".lhz_dun_n" + .@mob_id ) < 10)
-			setd ".lhz_dun_n" + .@regular, 0;	// note: mini boss version can re-spawn when the count of mini boss dead is reached? (currently they don't)
+		if (.lhz_dun_n[.@mob_id] < 4)
+			.lhz_dun_n[.@regular] = 0;	// note: mini boss version can re-spawn when the count of mini boss dead is reached? (currently they don't)
 		else {
 			setarray .@mini_boss_list[0], 3214,3215,3216,3217,3218,3219,3233,3234,3235,3236,3237,3238,3239;
 			for ( .@i = 0; .@i < 13; ++.@i ) {	
-				if (getd( ".lhz_dun_n" + .@mini_boss_list[.@i] ) < 10)
+				if (.lhz_dun_n[.@mini_boss_list[.@i]] < 4)
 					end;
 			}
 			// MvP monster seems to only spawn at 12 o'clock
@@ -55,8 +55,8 @@ OnMiniDead:
 			.lhz_dun_n_boss = 1;
 			for ( .@i = 0; .@i < 13; ++.@i ) {	
 				.@regular = .@mini_boss_list[.@i] - 6 - (.@mini_boss_list[.@i] > 3219);
-				setd ".lhz_dun_n" + .@regular, 0;
-				setd ".lhz_dun_n" + .@mini_boss_list[.@i], 0;
+				.lhz_dun_n[.@regular] = 0;
+				.lhz_dun_n[.@mini_boss_list[.@i]] = 0;
 			}
 		}
 	}