예제 #1
0
        private void FnDRAGON_1B(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : AddEncounter(player, 0x01, 0x06);
            L0015 : AddEncounter(player, 0x02, 0x06);
            L0027 : AddEncounter(player, 0x03, 0x19);
            L0039 : AddEncounter(player, 0x04, 0x19);
            L004B : AddEncounter(player, 0x05, 0x1B);
            L005D : AddEncounter(player, 0x06, 0x13);
            L006F : ax = HasItem(player, YsIndexes.ItemRanbowGemRed);
            L007D : if (JumpEqual)
            {
                goto L00A1;
            }
            L007F : AddTreasure(player, 0x07D0, 0x00, 0x00, 0x00, 0xC6, 0xB7);
            L009F : goto L00D0;
            L00A1 : ShowMessage(player, doMsgs, String1335); // A glowing red gem casts a beam from under the dragon's lair.
            L00AE : AddTreasure(player, 0x2328, 0x00, 0x14, 0xD0, 0xD0, YsIndexes.ItemRanbowGemRed);
            SetFlag(player, FlagTypeDungeon, YsIndexes.FlagMedievaLandsSeenRedGem, 1);
            L00D0 : return; // RETURN;
        }
예제 #2
0
        private void FnLKPKDOOR_0A(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : ax = HasUsedItem(player, type, ref doMsgs, 0xC0, 0xC4);
            L0016 : if (JumpNotEqual)
            {
                goto L0029;
            }
            L0018 : Compare(HasUsedSkill(player, type, ref doMsgs, 0x0E), 0x0004);
            L0027 : if (JumpBelow)
            {
                goto L0068;
            }
            L0029 : SetWallPassable(player, 0x6F, 0x03, 0x01);
            L003F : SetWallItem(player, 0x01, GetCurrentTile(player), 0x03);
            L0059 : ShowMessage(player, doMsgs, String046F); // You successfully picked the locked door.
            L0066 : goto L008A;
            L0068 : SetWallPassable(player, 0x6F, 0x03, 0x00);
            L007D : ShowMessage(player, doMsgs, String0498); // The door is locked.
            L008A : return;                                  // RETURN;
        }
예제 #3
0
        private void FnLKPKDOOR_08(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : ax = HasUsedItem(player, type, ref doMsgs, 0xBF, 0xC4);
            L0016 : if (JumpNotEqual)
            {
                goto L0029;
            }
            L0018 : Compare(HasUsedSkill(player, type, ref doMsgs, 0x0E), 0x0006);
            L0027 : if (JumpBelow)
            {
                goto L0074;
            }
            L0029 : SetWallPassable(player, GetCurrentTile(player), GetFacing(player), 0x01);
            L0047 : SetWallItem(player, 0x01, GetCurrentTile(player), GetFacing(player));
            L0065 : ShowMessage(player, doMsgs, String04DE); // You skillfully pick the door lock.
            L0072 : goto L009E;
            L0074 : SetWallPassable(player, GetCurrentTile(player), GetFacing(player), 0x00);
            L0091 : ShowMessage(player, doMsgs, String0501); // The door is locked.
            L009E : return;                                  // RETURN;
        }
예제 #4
0
        private void FnLKPKDOOR_06(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : ax = HasUsedItem(player, type, ref doMsgs, 0xC2, 0xC4);
            L0016 : if (JumpNotEqual)
            {
                goto L0029;
            }
            L0018 : Compare(HasUsedSkill(player, type, ref doMsgs, 0x0E), 0x0005);
            L0027 : if (JumpBelow)
            {
                goto L006C;
            }
            L0029 : SetWallPassable(player, GetCurrentTile(player), 0x01, 0x01);
            L0043 : SetWallItem(player, 0x01, GetCurrentTile(player), 0x01);
            L005D : ShowMessage(player, doMsgs, String04EB); // You successfully picked the locked door.
            L006A : goto L0092;
            L006C : SetWallPassable(player, GetCurrentTile(player), 0x01, 0x00);
            L0085 : ShowMessage(player, doMsgs, String0514); // The door is locked.
            L0092 : return;                                  // RETURN;
        }
예제 #5
0
        private void FnGOLDCENC_0D(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(GetFlag(player, FlagTypeDungeon, YsIndexes.FlagSoldiersQuartersScorpionGold), 0x0001);
            L0017 : if (JumpNotEqual)
            {
                goto L0047;
            }
            L0019 : ShowMessage(player, doMsgs, String052B); // You hear the angry snapping of pincers.
            L0026 : AddTreasure(player, 0x0032, 0x00, 0x00, 0x00, 0x00, 0xCB);
            L0045 : goto L0088;
            L0047 : AddTreasure(player, 0x02EE, 0x00, 0x00, 0x00, 0x00, 0xCE);
            L0066 : ShowMessage(player, doMsgs, String0553); // As you step forward to pick up some gold on the floor...
            L0073 : SetFlag(player, FlagTypeDungeon, YsIndexes.FlagSoldiersQuartersScorpionGold, 0x01);
            L0088 : Compare(PartyCount(player), 0x0001);
            L0093 : if (JumpNotEqual)
            {
                goto L00A9;
            }
            L0095 : AddEncounter(player, 0x01, 0x09);
            L00A7 : goto L0124;
            L00A9 : Compare(PartyCount(player), 0x0002);
            L00B4 : if (JumpNotEqual)
            {
                goto L00DC;
            }
            L00B6 : AddEncounter(player, 0x01, 0x08);
            L00C8 : AddEncounter(player, 0x02, 0x09);
            L00DA : goto L0124;
            L00DC : AddEncounter(player, 0x01, 0x08);
            L00EE : AddEncounter(player, 0x02, 0x08);
            L0100 : AddEncounter(player, 0x03, 0x09);
            L0112 : AddEncounter(player, 0x04, 0x09);
            L0124 : return; // RETURN;
        }
예제 #6
0
        private void FnSTRMNST_0F(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(PartyCount(player), 0x0001);
            L000E : if (JumpNotEqual)
            {
                goto L0025;
            }
            L0010 : AddEncounter(player, 0x01, 0x21);
            L0022 : goto L010A;
            L0025 : Compare(PartyCount(player), 0x0002);
            L0030 : if (JumpNotEqual)
            {
                goto L0059;
            }
            L0032 : AddEncounter(player, 0x01, 0x21);
            L0044 : AddEncounter(player, 0x02, 0x22);
            L0056 : goto L010A;
            L0059 : Compare(PartyCount(player), 0x0003);
            L0064 : if (JumpNotEqual)
            {
                goto L00B0;
            }
            L0066 : AddEncounter(player, 0x01, 0x21);
            L0078 : AddEncounter(player, 0x02, 0x21);
            L008A : AddEncounter(player, 0x03, 0x23);
            L009C : AddEncounter(player, 0x04, 0x23);
            L00AE : goto L010A;
            L00B0 : AddEncounter(player, 0x01, 0x24);
            L00C2 : AddEncounter(player, 0x02, 0x24);
            L00D4 : AddEncounter(player, 0x03, 0x23);
            L00E6 : AddEncounter(player, 0x04, 0x23);
            L00F8 : AddEncounter(player, 0x05, 0x22);
            L010A : return; // RETURN;
        }
예제 #7
0
        private void FnSTRMNSTR_08(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(PartyCount(player), 0x0001);
            L000E : if (JumpEqual)
            {
                goto L001D;
            }
            L0010 : Compare(PartyCount(player), 0x0002);
            L001B : if (JumpNotEqual)
            {
                goto L0056;
            }
            L001D : AddEncounter(player, 0x01, 0x1A);
            L002F : AddEncounter(player, 0x02, 0x1A);
            L0041 : AddEncounter(player, 0x03, 0x1A);
            L0053 : goto L0119;
            L0056 : Compare(PartyCount(player), 0x0003);
            L0061 : if (JumpNotEqual)
            {
                goto L00AD;
            }
            L0063 : AddEncounter(player, 0x01, 0x1C);
            L0075 : AddEncounter(player, 0x02, 0x1C);
            L0087 : AddEncounter(player, 0x03, 0x1B);
            L0099 : AddEncounter(player, 0x04, 0x1B);
            L00AB : goto L0119;
            L00AD : AddEncounter(player, 0x01, 0x1C);
            L00BF : AddEncounter(player, 0x02, 0x1C);
            L00D1 : AddEncounter(player, 0x03, 0x1C);
            L00E3 : AddEncounter(player, 0x04, 0x1C);
            L00F5 : AddEncounter(player, 0x05, 0x1B);
            L0107 : AddEncounter(player, 0x06, 0x1B);
            L0119 : return; // RETURN;
        }
예제 #8
0
        private void FnCYCLQUST_13(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : ShowPortrait(player, 0x002C);
            L0010 : ax = HasItem(player, YsIndexes.ItemGoldenBoat);
            L001E : if (JumpEqual)
            {
                goto L0023;
            }
            L0020 : goto L00DD;
            L0023 : ax = HasItem(player, YsIndexes.ItemCyclopsHead);
            L0031 : if (JumpEqual)
            {
                goto L0099;
            }
            L0033 : ShowMessage(player, doMsgs, String0D66); // A mean, twisted smile appears across the face of the dwarf blacksmith.
            L0040 : ShowMessage(player, doMsgs, String0DAD); // 'You have killed the cyclop!  My gold caves are won!
            L004D : ShowMessage(player, doMsgs, String0DE2); // Hmmph.  It is my debt to repay you.  And I shall!'
            L005A : ShowMessage(player, doMsgs, String0E15); // A few hours pass as the blacksmith weaves a magnificent treasure from golden threads.  Then she appears again.
            L0067 : ShowMessage(player, doMsgs, String0E84); // 'Here.  My proudest work!  A golden boat that can ride the rainbows.  May you find treasure wherever you go.'
            L0074 : ShowMessage(player, doMsgs, String0EF2); // Then she scoots away.
            SetFlag(player, FlagTypeDungeon, YsIndexes.FlagMedievaLandsGotGoldenBoat, 1);
            L0081 : RemoveItem(player, YsIndexes.ItemCyclopsHead);
            L008D : GiveItem(player, YsIndexes.ItemGoldenBoat);
            L0099 : ax = HasItem(player, YsIndexes.ItemCyclopsHead);
            L00A7 : if (JumpNotEqual)
            {
                goto L00DD;
            }
            L00A9 : ShowMessage(player, doMsgs, String0F08); // The old dwarf blacksmith at first does not hear you approach. Then she senses your presence and wheels on you.
            L00B6 : ShowMessage(player, doMsgs, String0F78); // 'A mean trick you play on a wise one!  No matter.  No doubt you're looking for another golden trinket of mine.
            L00C3 : ShowMessage(player, doMsgs, String0FE7); // Well, I will not give you any of my creations.  Never!
            L00D0 : ShowMessage(player, doMsgs, String101E); // Unless, hmmm, Unless you are able to rid my gold caves of a horrible Cyclop! He fancies himself King of the Cyclops.'
            L00DD : return;                                  // RETURN;
        }
예제 #9
0
        private void FnTRAPDORK_17(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(HasUsedSkill(player, type, ref doMsgs, 0x0D), 0x0006);
            L0012 : if (JumpNotBelow)
            {
                goto L0063;
            }
            L0014 : RefreshCompareFlags(HasUsedSpell(player, type, ref doMsgs, 0x17));
            L0022 : if (JumpNotEqual)
            {
                goto L0063;
            }
            L0024 : ax = HasUsedItem(player, type, ref doMsgs, 0xA2, 0xA2);
            L0037 : if (JumpNotEqual)
            {
                goto L0063;
            }
            L0039 : ax = HasUsedItem(player, type, ref doMsgs, 0xBD, 0xBD);
            L004C : if (JumpNotEqual)
            {
                goto L0063;
            }
            L004E : ax = HasUsedItem(player, type, ref doMsgs, 0xBE, 0xBE);
            L0061 : if (JumpEqual)
            {
                goto L008D;
            }
            L0063 : ShowMessage(player, doMsgs, String0CD9); // You detect a trapdoor in the floor, but not in time to prevent falling through!
            L0070 : TeleportParty(player, 0x02, 0x01, 0xE9, 0x03, type);
            L008B : goto L00B5;
            L008D : ShowMessage(player, doMsgs, String0D29); // A trapdoor in the floor opens.
            L009A : TeleportParty(player, 0x02, 0x01, 0xE9, 0x03, type);
            L00B5 : return;                                  // RETURN;
        }
예제 #10
0
        private void FnREGDORA_1F(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : RefreshCompareFlags(GetFlag(player, FlagTypeDungeon, YsIndexes.FlagVestibuleUnlockType));
            L0015 : if (JumpEqual)
            {
                goto L002C;
            }
            L0017 : Compare(GetFlag(player, FlagTypeDungeon, YsIndexes.FlagVestibuleUnlockType), 0x0004);
            L002A : if (JumpNotEqual)
            {
                goto L008B;
            }
            L002C : SetFlag(player, FlagTypeDungeon, YsIndexes.FlagVestibuleUnlockType, 0x04);
            L0040 : ShowMessage(player, doMsgs, String0E81); // As you open the door, you hear locks click throughout the dungeon.
            L004D : SetWallItem(player, 0x01, GetCurrentTile(player), GetFacing(player));
            L006B : SetWallPassable(player, GetCurrentTile(player), GetFacing(player), 0x01);
            L0089 : goto L00B5;
            L008B : ShowMessage(player, doMsgs, String0EC4); // The door is currently impassable.
            L0098 : SetWallPassable(player, GetCurrentTile(player), GetFacing(player), 0x00);
            L00B5 : return;                                  // RETURN;
        }
예제 #11
0
        private void FnLOWMNSTR_0D(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:                                                       // BEGIN;
            L0003 : ShowMessage(player, doMsgs, String06A9); // You encounter Rogues.
            L0010 : Compare(GetRandom(0x000F), 0x0006);
            L0020 : if (JumpAbove)
            {
                goto L0050;
            }
            L0022 : AddTreasure(player, 0x01F4, 0x00, 0x00, 0x00, 0x00, 0xB5);
            L0041 : ShowMessage(player, doMsgs, String06BF); // If you are skilled enough, you may find teleports that speed your way to various levels of this dungeon.
            L004E : goto L008A;
            L0050 : ShowMessage(player, doMsgs, String0728); // The Rogues snarl at you.
            L005D : ShowMessage(player, doMsgs, String0741); // They attack!
            L006A : AddTreasure(player, 0x03E8, 0x00, 0x00, 0x00, 0xBD, 0x03);
            L008A : Compare(PartyCount(player), 0x0001);
            L0095 : if (JumpEqual)
            {
                goto L00A4;
            }
            L0097 : Compare(PartyCount(player), 0x0002);
            L00A2 : if (JumpNotEqual)
            {
                goto L00CA;
            }
            L00A4 : AddEncounter(player, 0x01, 0x1B);
            L00B6 : AddEncounter(player, 0x02, 0x1A);
            L00C8 : goto L0112;
            L00CA : AddEncounter(player, 0x01, 0x1C);
            L00DC : AddEncounter(player, 0x02, 0x1A);
            L00EE : AddEncounter(player, 0x03, 0x19);
            L0100 : AddEncounter(player, 0x04, 0x1B);
            L0112 : return; // RETURN;
        }
예제 #12
0
        private void FnTUFMNSTR_1A(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:                                                       // BEGIN;
            L0003 : ShowMessage(player, doMsgs, String0C3C); // You encounter Rogues.
            L0010 : Compare(GetRandom(0x000F), 0x0003);
            L0020 : if (JumpAbove)
            {
                goto L0031;
            }
            L0022 : ShowMessage(player, doMsgs, String0C52); // Bizarre creatures haunt this dungeon. Many know magic. A great evil must exist somewhere in the dungeon to spawn such a neverending host of monsters.
            L002F : goto L004B;
            L0031 : ShowMessage(player, doMsgs, String0CE8); // The Rogues refuse to talk.
            L003E : ShowMessage(player, doMsgs, String0D03); // They charge at you!
            L004B : Compare(PartyCount(player), 0x0001);
            L0056 : if (JumpNotEqual)
            {
                goto L006C;
            }
            L0058 : AddEncounter(player, 0x01, 0x22);
            L006A : goto L00E7;
            L006C : Compare(PartyCount(player), 0x0002);
            L0077 : if (JumpNotEqual)
            {
                goto L009F;
            }
            L0079 : AddEncounter(player, 0x01, 0x23);
            L008B : AddEncounter(player, 0x02, 0x23);
            L009D : goto L00E7;
            L009F : AddEncounter(player, 0x01, 0x24);
            L00B1 : AddEncounter(player, 0x02, 0x24);
            L00C3 : AddEncounter(player, 0x03, 0x23);
            L00D5 : AddEncounter(player, 0x04, 0x23);
            L00E7 : return; // RETURN;
        }
예제 #13
0
        private void FnLOWMNSTR_17(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(PartyCount(player), 0x0001);
            L000E : if (JumpEqual)
            {
                goto L001D;
            }
            L0010 : Compare(PartyCount(player), 0x0002);
            L001B : if (JumpNotEqual)
            {
                goto L0043;
            }
            L001D : AddEncounter(player, 0x01, 0x1A);
            L002F : AddEncounter(player, 0x02, 0x1A);
            L0041 : goto L008B;
            L0043 : AddEncounter(player, 0x01, 0x1A);
            L0055 : AddEncounter(player, 0x02, 0x1A);
            L0067 : AddEncounter(player, 0x03, 0x1B);
            L0079 : AddEncounter(player, 0x04, 0x1B);
            L008B : return; // RETURN;
        }
예제 #14
0
        private void FnSPCMONSB_0F(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:                                                       // BEGIN;
            L0003 : ShowMessage(player, doMsgs, String08D1); // Giants guard the corridor.
            L0010 : Compare(PartyCount(player), 0x0001);
            L001B : if (JumpNotEqual)
            {
                goto L0032;
            }
            L001D : AddEncounter(player, 0x01, 0x25);
            L002F : goto L0102;
            L0032 : Compare(PartyCount(player), 0x0002);
            L003D : if (JumpEqual)
            {
                goto L004C;
            }
            L003F : Compare(PartyCount(player), 0x0003);
            L004A : if (JumpNotEqual)
            {
                goto L0096;
            }
            L004C : AddEncounter(player, 0x01, 0x25);
            L005E : AddEncounter(player, 0x02, 0x25);
            L0070 : AddEncounter(player, 0x03, 0x25);
            L0082 : AddEncounter(player, 0x05, 0x25);
            L0094 : goto L0102;
            L0096 : AddEncounter(player, 0x01, 0x25);
            L00A8 : AddEncounter(player, 0x02, 0x25);
            L00BA : AddEncounter(player, 0x03, 0x25);
            L00CC : AddEncounter(player, 0x04, 0x25);
            L00DE : AddEncounter(player, 0x05, 0x25);
            L00F0 : AddEncounter(player, 0x06, 0x25);
            L0102 : return; // RETURN;
        }
예제 #15
0
        private void FnCRWNNICH_06(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : ax = HasItem(player, 0x69);
            L0011 : if (JumpNotEqual)
            {
                goto L0028;
            }
            L0013 : ax = IsFlagOn(player, FlagTypeMap, 0x01);
            L0026 : if (JumpEqual)
            {
                goto L0072;
            }
            L0028 : RemoveItem(player, 0x69);
            L0034 : SetFlag(player, FlagTypeMap, 0x01, 0x01);
            L0049 : ShowMessage(player, doMsgs, String04C1); // Invisible hands take Cleowyn's Crown and place it in a niche in the wall.
            L0056 : ShowMessage(player, doMsgs, String050B); // The niche disappears.
            L0063 : ShowMessage(player, doMsgs, String0521); // You hear a rumbling sound in the distance
            L0070 : goto L007F;
            L0072 : ShowMessage(player, doMsgs, String054B); // There is a niche in the wall which seems designed to hold a crown.
            L007F : return;                                  // RETURN;
        }
예제 #16
0
        private void FnGOLDFENC_10(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(GetFlag(player, FlagTypeDungeon, YsIndexes.FlagSoldiersQuartersSnakeGold), 0x0001);
            L0017 : if (JumpNotEqual)
            {
                goto L0047;
            }
            L0019 : ShowMessage(player, doMsgs, String063A); // You stumble upon an almost empty nesting area.
            L0026 : AddTreasure(player, 0x0000, 0x00, 0x00, 0x00, 0x00, 0xCB);
            L0044 : goto L0088;
            L0047 : AddTreasure(player, 0x05DC, 0x00, 0x00, 0x00, 0x00, 0xCB);
            L0066 : ShowMessage(player, doMsgs, String0669); // Angry hissing distracts you as you reach down for some gold coins.
            L0073 : SetFlag(player, FlagTypeDungeon, YsIndexes.FlagSoldiersQuartersSnakeGold, 0x01);
            L0088 : Compare(PartyCount(player), 0x0001);
            L0093 : if (JumpEqual)
            {
                goto L00A2;
            }
            L0095 : Compare(PartyCount(player), 0x0002);
            L00A0 : if (JumpNotEqual)
            {
                goto L00C8;
            }
            L00A2 : AddEncounter(player, 0x01, 0x07);
            L00B4 : AddEncounter(player, 0x02, 0x06);
            L00C6 : goto L0122;
            L00C8 : AddEncounter(player, 0x01, 0x06);
            L00DA : AddEncounter(player, 0x02, 0x06);
            L00EC : AddEncounter(player, 0x03, 0x07);
            L00FE : AddEncounter(player, 0x04, 0x07);
            L0110 : AddEncounter(player, 0x05, 0x06);
            L0122 : return; // RETURN;
        }
예제 #17
0
        private void FnITEMAENC_07(YsPlayerServer player, MapEventType type, bool doMsgs)
        {
            int ax = 0, bx = 0, cx = 0, dx = 0, si = 0, di = 0, tmp = 0;

L0000:      // BEGIN;
            L0003 : Compare(GetFlag(player, FlagTypeDungeon, YsIndexes.FlagTreasuryWeapons), 0x0001);
            L0017 : if (JumpNotEqual)
            {
                goto L0048;
            }
            L0019 : ShowMessage(player, doMsgs, String072A); // Monsters jump out of the shadows.
            L0026 : AddTreasure(player, 0x0064, 0x00, 0x00, 0x00, 0xCE, 0xB5);
            L0046 : goto L008B;
            L0048 : AddTreasure(player, 0x1770, 0x00, 0x00, 0xCE, 0x42, 0x0A);
            L0069 : SetFlag(player, FlagTypeDungeon, YsIndexes.FlagTreasuryWeapons, 0x01);
            L007E : ShowMessage(player, doMsgs, String074C); // Monsters snarl as you approach a pile of weapons.
            L008B : Compare(PartyCount(player), 0x0001);
            L0096 : if (JumpEqual)
            {
                goto L00A5;
            }
            L0098 : Compare(PartyCount(player), 0x0002);
            L00A3 : if (JumpNotEqual)
            {
                goto L00CB;
            }
            L00A5 : AddEncounter(player, 0x01, 0x19);
            L00B7 : AddEncounter(player, 0x02, 0x1E);
            L00C9 : goto L0125;
            L00CB : AddEncounter(player, 0x01, 0x1B);
            L00DD : AddEncounter(player, 0x02, 0x1A);
            L00EF : AddEncounter(player, 0x03, 0x19);
            L0101 : AddEncounter(player, 0x05, 0x1E);
            L0113 : AddEncounter(player, 0x06, 0x1E);
            L0125 : return; // RETURN;
        }
예제 #18
0
 private void FnPITFL_37(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 6, "You make a sage choice.");
 }
예제 #19
0
 private void FnPITFM_38(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 7, "You have made a wise decision.");
 }
예제 #20
0
 private void FnPITFJ_35(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 4, "You move forward with confidence.");
 }
예제 #21
0
 private void FnPITFK_36(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 5, "You carefully selected your next step.");
 }
예제 #22
0
 private void FnPITFH_33(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 2, "You move safely ahead.");
 }
예제 #23
0
 private void FnPITFI_34(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 3, "Your move was correct.");
 }
예제 #24
0
 private void FnPITEK_31(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 5, 5, "Your next step is assuredly taken.");
 }
예제 #25
0
 private void FnPITFG_32(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 6, 1, "The next step is an intelligent one.");
 }
예제 #26
0
 private void FnPITEJ_30(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 5, 4, "You walk ahead.");
 }
예제 #27
0
 private void FnPITEI_2F(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 5, 3, "Good sense guides your feet.");
 }
예제 #28
0
 private void FnPITEH_2E(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 5, 2, "You select your next move wisely.");
 }
예제 #29
0
 private void FnPITEG_2D(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 5, 1, "You forge ahead.");
 }
예제 #30
0
 private void FnPITDM_2C(YsPlayerServer player, MapEventType type, bool doMsgs)
 {
     DoAttemptWalkThroughVoid(player, 4, 7, "Your step is wisely selected.");
 }