freed 15 more perm variables. Fixed bugs in Cube Room

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8831 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
Lupus 2006-09-21 11:12:52 +00:00
parent a4f893ed15
commit 001711c37a
6 changed files with 153 additions and 149 deletions

View File

@ -29,6 +29,11 @@ Playtester
Date Added
======
09/21
* Feed 15 more permanent character variables. [Lupus]
- Fixed old Cube Room sticks-bug
- Now Bio-Lab passage uses MISC_QUEST | 512 instead of 'hzdun'
Don't forget to update your lhazeh warps script ^_-'
09/20
* Fixed some bugs in Cube Room. Some parts could be skipped [Lupus]
* Final optimization of Niflheim quests [Lupus]

View File

@ -68,9 +68,7 @@ lhz_dun03.gat,0,0,0,0 monster High Wizard Kathryne 1645,1,0,0,0
lhz_dun03.gat,1,1,0 script Lhzdun03monster -1,{
OnInit:
while(1)
{
while(1){
set $@metaspawn,rand(1,6);
if($@metaspawn == 1)areamonster "lhz_dun03.gat",1,1,300,300,"Lord Knight Seyren",1646,1,"Lhzdun03monster::OnMonsterDead";
if($@metaspawn == 2)areamonster "lhz_dun03.gat",1,1,300,300,"Assassin Cross Eremes",1647,1,"Lhzdun03monster::OnMonsterDead";
@ -79,12 +77,12 @@ while(1)
if($@metaspawn == 5)areamonster "lhz_dun03.gat",1,1,300,300,"Sniper Cecil",1650,1,"Lhzdun03monster::OnMonsterDead";
if($@metaspawn == 6)areamonster "lhz_dun03.gat",1,1,300,300,"High Wizard Kathryne",1651,1,"Lhzdun03monster::OnMonsterDead";
end;
OnMonsterDead:
initnpctimer;
setnpctimer 0;
end;
OnTimer7200000:
stopnpctimer;
}
OnMonsterDead:
initnpctimer;
setnpctimer 0;
end;
OnTimer7200000:
stopnpctimer;
}
}

View File

@ -28,6 +28,7 @@
//= 2.04 Added dtseligible 2 (becomes MISC_QUEST|128) to F_ClearGarbage [Evera]
//= 2.05 Book of Devil -> MISC_QUEST|256, clear other Niflheim garbage vars [Lupus]
//= +more garbage clean
//= 2,06 Pass to Bio-Lab -> MISC_QUEST|256 [Lupus]
//============================================================
@ -100,7 +101,18 @@ function script F_ClearGarbage {
set ARWCRFT,0; set HOLYLIGHT,0; set ARWREP,0; set ENRGYCOAT,0; set CRAZYROAR,0; set CHANGECART,0; set CARTREVO,0;
set SANDATTACK,0; set STONEFLING,0; set BACKSLIDE,0; set BAGNFNTY,0;
//Cube Room
set ykey,0; set redkey,0; set fkey,0; set gkey,0; set bkey,0;
if(hzdun) {
set MISC_QUEST,MISC_QUEST|512;
set cubekey,0;
set axe,0; set ykey,0; set box,0; set num1,0;
set num2,0; set num3,0; set num4,0; set num5,0;
set num6,0; set num7,0; set num8,0; set num9,0;
set knife,0; set redkey,0; set srod1,0; set srod2,0;
set fkey,0; set gkey,0; set polygon,0; set machine,0;
set bkey,0; set ellipse,0; set quadrangle,0; set rod,0;
set hzdun,0;
set piciburn,0;
}
return;
}

View File

@ -69,10 +69,10 @@ Info: The Lost Girl in Niflheim.
How to set: set MISC_QUEST,MISC_QUEST | 256;
How to check: if(MISC_QUEST & 256){}
Quest: ?
Info: ?
How to set: set MISC_QUEST,MISC_QUEST | ?;
How to check: if(MISC_QUEST & ?){}
Quest: Cube Room
Info: Lighthalzen. Cube Room Quest (Pass to Bio-Lab)
How to set: set MISC_QUEST,MISC_QUEST | 512;
How to check: if(MISC_QUEST & 512){}
--------------------------------------------------------------
Variable: MISC_QUEST2

View File

@ -1,16 +1,17 @@
//===== eAthena Script =======================================
//= Quest NPCs located in Lighthalzen
//===== By: ==================================================
//= Persian, Vicious_Pucca, Completed by aoa00
//= Evera, MasterOfMupppets, Lupus
//= Persian, Vicious_Pucca, aoa00, Evera, MasterOfMupppets,
//= Lupus, Lord Gywall
//===== Current Version: =====================================
//= 2.7
//= 2.8
//===== Compatible With: =====================================
//= eAthena SVN
//===== Description: =========================================
//= Event for the Mobster respawn
//= Bio Labs Quest
//= Friendship Quest
//= Pickpocket Mini-Quest
//= Bio Ethics Quest (Need bug testing!)
//===== Additional Comments: =================================
//= Grammar/script check please. This was a quick job.
@ -46,6 +47,8 @@
//= 2.6a Moved Bio Ethics Quest to Alchemist SKILL QUESTS [Lupus]
//= 2.7 fixed bugs that let people bypass some quest parts V_V [Lupus]
//= reused cubekey var for 4 Cube Room key vars
//= 2.8 More optimization. Also fixed bug with "2x short sticks -> long" [Lupus]
//= Now uses MISC_QUEST&512 instead of 'hzdun'. WIP
//============================================================
lighthalzen.gat,1,1,7 script sneakAddSuber -1,{
@ -244,13 +247,12 @@ Lhzstop:
//--------------------------Piciburn--------------------------
lighthalzen.gat,341,224,4 script Piciburn 868,{
if (BaseLevel > 60) goto Lstart;
mes "[Piciburn]";
mes "Keep moving.";
close;
Lstart:
if (hzdun == 1) goto L_11;
if (BaseLevel < 60){
mes "[Piciburn]";
mes "Keep moving.";
close;
}
if (MISC_QUEST&512) goto L_DONE;
if (piciburn == 7) goto L_10;
if (piciburn == 6) goto L_9;
if (piciburn == 5) goto L_6;
@ -600,7 +602,7 @@ L_warp2:
warp "lhz_cube.gat",66,74;
end;
L_11:
L_DONE:
mes "[Piciburn]";
mes "Oh~ I guess you found the entrance.";
mes "I'll tell you now...";
@ -625,7 +627,7 @@ L_11:
//--------------------------Box--------------------------
lhz_cube.gat,248,179,0 script Box#01 111,{
if (axe == 1) goto L_2;
if (MISC_QUEST&512 || cubekey&64) goto L_DONE;
mes "There is an axe in the box.";
next;
menu "Take the axe.",L_1,"Leave it alone.",-;
@ -633,10 +635,10 @@ lhz_cube.gat,248,179,0 script Box#01 111,{
L_1:
mes "You acquired the ^FF0000axe^000000.";
set axe,1;
set cubekey,cubekey|64;
close;
L_2:
L_DONE:
mes "There is a box that used to contain an ^FF0000axe^000000.";
close;
}
@ -644,10 +646,10 @@ L_2:
//--------------------------Barrel--------------------------
lhz_cube.gat,237,183,0 script Barrel 111,{
if (cubekey&1) goto L_4;
if (box == 1) goto L_2;
if (MISC_QUEST&512 || cubekey&1) goto L_DONE;
if (cubekey&128) goto L_2;
mes "There is a box that looks weak.";
if (axe == 0) close;
if ((cubekey&64) == 0) close;
next;
input @axe$;
@ -660,7 +662,7 @@ L_1:
mes "you see that there's a box inside of it.";
next;
mes "On top of the box, there's a panel with the numbers 1~9";
set box,1;
set cubekey,cubekey|128;
close;
L_2:
@ -697,7 +699,7 @@ L_3:
set cubekey,cubekey|1;
close;
L_4:
L_DONE:
mes "This box used to have the '^FF0000yellow key^000000'";
mes "The box is now empty.";
close;
@ -706,7 +708,7 @@ L_4:
//--------------------------Drawer--------------------------
lhz_cube.gat,242,201,0 script Drawer 111,{
if (knife == 1) goto L_3;
if (MISC_QUEST&512 || cubekey&32) goto L_DONE;
mes "The drawer is locked.";
if (cubekey&2) goto L_1;
close;
@ -722,10 +724,10 @@ L_2:
mes "You found a 'small knife' inside.";
next;
mes "You acquired ^FF0000small knife^000000.";
set knife,1;
set cubekey,cubekey|32;
close;
L_3:
L_DONE:
mes "It is the drawer you got ^FF0000small knife^000000 from.";
mes "There is nothing inside now.";
close;
@ -734,7 +736,7 @@ L_3:
//--------------------------Documents--------------------------
lhz_cube.gat,237,198,0 script Documents 111,{
if (cubekey&2) goto L_2;
if (MISC_QUEST&512 || cubekey&2) goto L_DONE;
mes "There are tons of documents here.";
next;
menu "Search the documents.",L_1,"Ignore.",-;
@ -747,7 +749,7 @@ L_1:
set cubekey,cubekey|2;
close;
L_2:
L_DONE:
mes "This is where you acquired ^FF0000red key^000000.";
mes "There's nothing else to do here.";
close;
@ -765,51 +767,46 @@ lhz_cube.gat,247,198,0 script Bed 111,{
close;
L_1:
if (quadrangle >= 1) goto L_3;
if (srod1 == 1) goto L_2;
if (MISC_QUEST&512 || cubekey&131072) goto L_DONE;
if (cubekey&2048){
mes "As you look under the bed, you see that there";
mes "is a small object covered in dust.";
next;
input @bed$;
if (cubekey&4096 && (@bed$ == "long stick" || @bed$ == "Long Stick")){
mes "You used the long stick to pull it out.";
next;
mes "You acquired '^FF0000cube model^000000'.";
set cubekey,cubekey|131072;
close;
}
mes "It looks like you need some kind of long item to";
mes "Get the item out, you can't reach it!";
close;
}
mes "You look below the bed and see a 'small stick'.";
mes "It is within your grasp, but there is";
mes "Also another item hidden under the bed, which";
mes "You'll need some kind of long item to pull it out.";
mes "also another item hidden under the bed, which";
mes "you'll need some kind of long item to pull it out.";
next;
mes "You acquired the '^FF0000small stick^000000'.";
mes "It looks like this stick could be combined";
mes "With another stick to make it larger.";
if (srod2 == 1) goto L1_1;
if (srod1 == 0) set srod1,1;
mes "with another stick to make it larger.";
set cubekey,cubekey|2048;
if ((cubekey&4096) == 0 && cubekey&1024){
set cubekey,cubekey|4096;
next;
mes "It looks similar to the decently sized stick that you";
mes "found under the desk.";
mes "You put the two end to end, and they click into place.";
next;
mes "You acquired '^FF0000long stick^000000'.";
}
close;
L1_1:
set srod1,1;
if (@bed == 0) next;
mes "It looks similar to the 'small stick' that you";
mes "found under the bed.";
next;
mes "You acquired '^FF0000long stick^000000'.";
set rod,1;
close;
L_2:
set @bed,1;
if (rod == 0 && srod1 == 1 && srod2 == 1) goto L1_1;
mes "As you look under the bed, you see that there";
mes "is a small object covered in dust.";
next;
input @bed$;
if (rod == 1 && (@bed$ == "long stick" || @bed$ == "Long Stick")) goto L2_1;
mes "It looks like you need some kind of long item to";
mes "Get the item out, you can't reach it!";
close;
L2_1:
mes "You used the long stick to pull it out.";
next;
mes "You acquired '^FF0000cube model^000000'.";
set quadrangle,1;
close;
L_3:
L_DONE:
mes "This is the place where you got '^FF0000cube model^000000' from.";
mes "There is nothing down here now but dust.";
close;
@ -818,7 +815,7 @@ L_3:
//--------------------------Cup--------------------------
lhz_cube.gat,229,184,0 script Cup 111,{
if (cubekey&4) goto L_2;
if (MISC_QUEST&512 || cubekey&4) goto L_DONE;
mes "You see an empty bottle and a cup with something in it.";
next;
menu "Leave it alone.",-,"Look what is inside.",L_1;
@ -831,7 +828,7 @@ L_1:
set cubekey,cubekey|4;
close;
L_2:
L_DONE:
mes "You got the '^FF0000rusty key^000000' here.";
mes "There's nothing but an empty cup and an empty bottle.";
close;
@ -840,7 +837,7 @@ L_2:
//--------------------------Shelf--------------------------
lhz_cube.gat,233,206,0 script Shelf 111,{
if (cubekey&8) goto L_2;
if (MISC_QUEST&512 || cubekey&8) goto L_DONE;
mes "There are lots of bottles filled with acids lined up";
mes "Along the shelf, they have different labels.";
next;
@ -859,7 +856,7 @@ L_1:
set cubekey,cubekey|8;
close;
L_2:
L_DONE:
mes "There is an acid that changed corroded all the rust";
mes "off of your key.";
next;
@ -870,7 +867,7 @@ L_2:
//--------------------------Closet--------------------------
lhz_cube.gat,249,191,0 script Closet 111,{
if (polygon >= 1) goto L_4;
if (MISC_QUEST&512 || cubekey&8192) goto L_DONE;
mes "There is a closet with lots of drawers.";
if (cubekey&8) goto L_2;
next;
@ -896,10 +893,10 @@ L_3:
mes "a polygon.";
next;
mes "'You acquired the ^FF0000polygon model^000000.";
set polygon,1;
set cubekey,cubekey|8192;
close;
L_4:
L_DONE:
mes "This is the closet where you got";
mes "the 'polygon model' from.";
next;
@ -920,33 +917,29 @@ lhz_cube.gat,234,200,0 script Desk 111,{
close;
L_1:
if (rod == 1 || srod2 == 1) goto L1_2;
if(MISC_QUEST&512 || cubekey&1024) goto L_DONE;
mes "When you look below the desk,";
mes "You see a decent sized stick.";
next;
mes "You acquired '^FF0000short stick^000000'.";
mes "It looks like this stick could be combined";
mes "With another stick to make it larger.";
if (srod2 == 0) set srod2,1;
if (srod2 == 0) close;
L1_1:
if (@desk == 0) next;
mes "It seems like the decently sized stick can be";
mes "combined with the 'short stick' from under the bed.";
mes "You put the two end to end, and they click into place.";
next;
mes "You acquired the '^FF0000long stick^000000'";
set rod,1;
mes "with another stick to make it larger.";
set cubekey,cubekey|1024;
if(cubekey&2048){
set cubekey,cubekey|4096;
next;
mes "It seems like the decently sized stick can be";
mes "combined with the 'short stick' from under the bed.";
mes "You put the two end to end, and they click into place.";
next;
mes "You acquired the '^FF0000long stick^000000'";
}
close;
L1_2:
set @desk,1;
if (srod1 == 1 && srod2 == 1) goto L1_1;
L_DONE:
mes "This is where you acquired the '^FF0000short stick^000000'.";
mes "There is nothing but dust now.";
close;
L_2:
mes "It is locked and can't be opened.";
close;
@ -955,7 +948,7 @@ L_2:
//--------------------------Picture--------------------------
lhz_cube.gat,237,206,0 script Picture 111,{
if (num1 > 0) goto L_2;
if (MISC_QUEST&512 || num1 > 0) goto L_DONE;
mes "There is a picture on the wall.";
next;
menu "Move it.",L_1,"Leave it alone.",-;
@ -966,7 +959,7 @@ L_1:
next;
input @knife$;
if (knife == 1 && (@knife$ == "small knife" || @knife$ == "Small Knife")) goto L1_1;
if (cubekey&32 && (@knife$ == "small knife" || @knife$ == "Small Knife")) goto L1_1;
mes "Nothing happened.";
close;
@ -1029,9 +1022,8 @@ L1_1:
if (num6 == num9) goto Lset8;
if (num7 == num9) goto Lset8;
if (num8 == num9) goto Lset8;
goto L_2;
L_2:
L_DONE:
mes "There is a number behind the picture.";
mes "" + num1 + "3 " + num2 + "6 " + num3 + "9 " + num4 + "4 " + num5 + "8 " + num6 + "1 " + num7 + "7 " + num8 + "2 " + num9 + "5";
mes "Perhaps you should write this number down somewhere...";
@ -1041,7 +1033,7 @@ L_2:
//--------------------------generator--------------------------
lhz_cube.gat,224,192,0 script Generator 111,{
if (machine == 1) goto L_2;
if (MISC_QUEST&512 || cubekey&256) goto L_DONE;
mes "The big machine is running, making a huge noise.";
mes "There are lots weird symbols and";
mes "a small key hole beside them.";
@ -1059,10 +1051,10 @@ L_1:
next;
mes "When it was stopped, the lamp next to the bed";
mes "also turned off.";
set machine,1;
set cubekey,cubekey|256;
close;
L_2:
L_DONE:
mes "The big machine sits quietly.";
close;
}
@ -1070,8 +1062,8 @@ L_2:
//--------------------------Lamp--------------------------
lhz_cube.gat,248,205,0 script Lamp 111,{
if (cubekey&16) goto L_3;
if (machine == 1) goto L_1;
if (MISC_QUEST&512 || cubekey&16) goto L_DONE;
if (cubekey&256) goto L_1;
mes "There is a bright lamp.";
mes "Seems like there is something inside";
mes "but it is too hot to touch.";
@ -1092,7 +1084,7 @@ L_2:
set cubekey,cubekey|16;
close;
L_3:
L_DONE:
mes "There nothing but a broken bulb.";
close;
}
@ -1100,24 +1092,24 @@ L_3:
//--------------------------Box--------------------------
lhz_cube.gat,248,193,0 script Box#02 111,{
if (countitem(2657) > 0 || @gotkey || hzdun) goto L_5;
if (MISC_QUEST&512 || countitem(2657) || @gotLPkey) goto L_DONE;
mes "There is a box with three holes.";
next;
if (ellipse == 2 && quadrangle == 2 && polygon == 2) goto L_4;
if (cubekey&65536 && cubekey&262144 && cubekey&16384) goto L_4;
menu "Ellipse hole",L_1,"Square hole",L_2,"Polygonal hole",L_3;
L_1:
if (ellipse == 2) goto L1_2;
if (cubekey&65536) goto L1_2;
input @ellipse$;
if (ellipse == 1 && (@ellipse$ == "ellipse model" || @ellipse$ == "Ellipse Model")) goto L1_1;
if (cubekey&32768 && (@ellipse$ == "ellipse model" || @ellipse$ == "Ellipse Model")) goto L1_1;
mes "Nothing happened.";
close;
L1_1:
mes "You inserted the 'ellipse model' into the ellipse-shaped hole.";
mes "The box makes a metallic click.";
set ellipse,2;
set cubekey,cubekey|65536;
close;
L1_2:
@ -1125,17 +1117,17 @@ L1_2:
close;
L_2:
if (quadrangle == 2) goto L2_2;
if (cubekey&262144) goto L2_2;
input @quadrangle$;
if (quadrangle == 1 && (@quadrangle$ == "cube model" || @quadrangle$ == "Cube Model")) goto L2_1;
if (cubekey&131072 && (@quadrangle$ == "cube model" || @quadrangle$ == "Cube Model")) goto L2_1;
mes "Nothing happened.";
close;
L2_1:
mes "You inserted the 'cube model' into the square-shaped hole.";
mes "The box makes a metallic click.";
set quadrangle,2;
set cubekey,cubekey|262144;
close;
L2_2:
@ -1143,17 +1135,17 @@ L2_2:
close;
L_3:
if (polygon == 2) goto L3_2;
if (cubekey&16384) goto L3_2;
input @polygon$;
if (polygon == 1 && (@polygon$ == "polygon model" || @polygon$ == "Polygon Model")) goto L3_1;
if (cubekey&8192 && (@polygon$ == "polygon model" || @polygon$ == "Polygon Model")) goto L3_1;
mes "Nothing happened.";
close;
L3_1:
mes "You inserted the 'polygon model' into the polygonal hole.";
mes "The box makes a metallic click.";
set polygon,2;
set cubekey,cubekey|16384;
close;
L3_2:
@ -1170,11 +1162,11 @@ L4_1:
mes "There is a small card inside of it.";
next;
mes "You acquired the 'Laboratory Permit'.";
set @gotkey,1;
set @gotLPkey,1;
getitem 2657,1;
close;
L_5:
L_DONE:
mes "There is an opened box.";
mes "There is nothing inside.";
close;
@ -1183,8 +1175,9 @@ L_5:
//--------------------------Test tube--------------------------
lhz_cube.gat,224,197,0 script Test Tube 111,{
if (MISC_QUEST&512) goto L_DONE;
if (countitem(2657) > 0) goto L_3;
if (ellipse >= 1) goto L_2;
if (cubekey&32768) goto L_2;
mes "There is a weird test tube.";
mes "It seems like there is something inside.";
mes "There' a keyhole and a hole that fits a thin object.";
@ -1201,7 +1194,7 @@ L_1:
mes "Revealing an ellipse model.";
next;
mes "You acquired the '^FF0000ellipse model^000000'.";
set ellipse,1;
set cubekey,cubekey|32768;
close;
L_2:
@ -1228,24 +1221,20 @@ L_4:
L4_1:
mes "It connected to a long staircase.";
set knife,0; set axe,0; set box,0;
set cubekey,0; set machine,0; set num1,0;
set num2,0; set num3,0; set num4,0; set num5,0;
set cubekey,0;
set num1,0; set num2,0; set num3,0; set num4,0; set num5,0;
set num6,0; set num7,0; set num8,0; set num9,0;
set rod,0; set srod1,0; set srod2,0;
set polygon,0; set ellipse,0; set quadrangle,0;
set hzdun,1;
set piciburn,0;
set MISC_QUEST,MISC_QUEST|512;
close2;
L_DONE:
warp "lhz_cube.gat",177,13;
end;
}
//============================================================
// Lighthalzen Pickpocket Mini-Quest
// By Lord Gywall
// Version 1.0
// Tested on: eAthena SVN Stable (Unknown version)
// Version History:
// 1.0 - Completed and working
//============================================================
lighthalzen.gat,240,216,4 script Man#Pickpocket1 870,2,2,{
end;

View File

@ -3,7 +3,7 @@
//===== By: ==================================================
//= Sara-chan (1.0)
//===== Current Version: =====================================
//= 1.6b
//= 2.0
//===== Compatible With: =====================================
//= Any Athena Version; RO Episode 8+
//===== Description: =========================================
@ -24,6 +24,7 @@
//= 1.7 Fixed a warp-back
//= 1.8 Some small changes [MasterOfMuppets]
//= 1.9 Removed duplicates [Toms]
//= 2.0 Now use MISC_QUEST&512 instead of 'hzdun' [Lupus]
//============================================================
lhz_dun03.gat,140,139,0 warp lhz003 1,1,lhz_dun02.gat,150,145
@ -43,17 +44,16 @@ lhz_dun01.gat,150,290,0 warp lhz007 1,1,lhz_in01.gat,23,137
lighthalzen.gat,313,301,0 script Sewer Pipe 111,{
mes "You see some pipes for a sewage system.";
if(hzdun == 1)goto s_Find;
close;
s_Find:
mes "You found the way into the lab.";
next;
menu "Go in.",L_1,"Do not go in.",-;
close;
if(MISC_QUEST&512){
mes "You found the way into the lab.";
next;
menu "Go in.",-,"Do not go in.",L_NO;
L_1:
warp "lhz_cube.gat",231,17;
end;
warp "lhz_cube.gat",231,17;
end;
}
L_NO:
close;
}
//--------------------------Warp--------------------------