mirror of
https://github.com/kwsch/NHSE.git
synced 2026-04-16 21:56:00 -05:00
Initial changes
not working yet, need save disassembly for correct offsets and need to update strings
This commit is contained in:
parent
51db362913
commit
b319defe75
|
|
@ -269,5 +269,58 @@ public static class FileHashRevision
|
|||
});
|
||||
|
||||
#endregion
|
||||
|
||||
#region REVISION 1.4.0
|
||||
|
||||
private const int REV_150_MAIN_SAVE_SIZE = 0xB20750;
|
||||
private const int REV_150_PERSONAL_SAVE_SIZE = 0x76390;
|
||||
private const int REV_150_POSTBOX_SAVE_SIZE = REV_110_POSTBOX_SAVE_SIZE;
|
||||
private const int REV_150_PHOTO_STUDIO_ISLAND_SIZE = REV_120_PHOTO_STUDIO_ISLAND_SIZE;
|
||||
private const int REV_150_PROFILE_SIZE = REV_110_PROFILE_SIZE;
|
||||
|
||||
public static readonly FileHashInfo REV_150 = new FileHashInfo(new[]
|
||||
{
|
||||
new FileHashDetails("main.dat", REV_150_MAIN_SAVE_SIZE, new[]
|
||||
{
|
||||
new FileHashRegion(0x000110, 0x1e215c),
|
||||
new FileHashRegion(0x1e2270, 0x323f6c),
|
||||
new FileHashRegion(0x5062f0, 0x03693c),
|
||||
new FileHashRegion(0x53cc30, 0x03f93c),
|
||||
new FileHashRegion(0x57c680, 0x03693c),
|
||||
new FileHashRegion(0x5b2fc0, 0x03f93c),
|
||||
new FileHashRegion(0x5f2a10, 0x03693c),
|
||||
new FileHashRegion(0x629350, 0x03f93c),
|
||||
new FileHashRegion(0x668da0, 0x03693c),
|
||||
new FileHashRegion(0x69f6e0, 0x03f93c),
|
||||
new FileHashRegion(0x6df130, 0x03693c),
|
||||
new FileHashRegion(0x715a70, 0x03f93c),
|
||||
new FileHashRegion(0x7554c0, 0x03693c),
|
||||
new FileHashRegion(0x78be00, 0x03f93c),
|
||||
new FileHashRegion(0x7cb850, 0x03693c),
|
||||
new FileHashRegion(0x802190, 0x03f93c),
|
||||
new FileHashRegion(0x841be0, 0x03693c),
|
||||
new FileHashRegion(0x878520, 0x03f93c),
|
||||
new FileHashRegion(0x8b7e60, 0x2688ec)
|
||||
}),
|
||||
new FileHashDetails("personal.dat", REV_150_PERSONAL_SAVE_SIZE, new[]
|
||||
{
|
||||
new FileHashRegion(0x00110, 0x3693c),
|
||||
new FileHashRegion(0x36a50, 0x3f93c)
|
||||
}),
|
||||
new FileHashDetails("postbox.dat", REV_150_POSTBOX_SAVE_SIZE, new[]
|
||||
{
|
||||
new FileHashRegion(0x000100, 0xB4448C)
|
||||
}),
|
||||
new FileHashDetails("photo_studio_island.dat", REV_150_PHOTO_STUDIO_ISLAND_SIZE, new[]
|
||||
{
|
||||
new FileHashRegion(0x000100, 0x2C8BC)
|
||||
}),
|
||||
new FileHashDetails("profile.dat", REV_150_PROFILE_SIZE, new[]
|
||||
{
|
||||
new FileHashRegion(0x000100, 0x6945C)
|
||||
}),
|
||||
});
|
||||
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,6 +16,7 @@ public static class RevisionChecker
|
|||
new SaveFileSizes(0xACECD0, 0x6D6C0, 0x2C9C0, 0xB44590, 0x69560), // 1.2.0
|
||||
new SaveFileSizes(0xACED80, 0x6D6D0, 0x2C9C0, 0xB44590, 0x69560), // 1.3.0
|
||||
new SaveFileSizes(0xB05790, 0x74420, 0x2C9C0, 0xB44590, 0x69560), // 1.4.0
|
||||
new SaveFileSizes(0xB20750, 0x76390, 0x2C9C0, 0xB44590, 0x69560), // 1.5.0
|
||||
};
|
||||
|
||||
private static readonly FileHeaderInfo[] RevisionInfo =
|
||||
|
|
@ -33,6 +34,7 @@ public static class RevisionChecker
|
|||
new FileHeaderInfo { Major = 0x50001, Minor = 0x5000B, HeaderRevision = 0, Unk1 = 2, SaveRevision = 10, Unk2 = 2 }, // 1.4.0
|
||||
new FileHeaderInfo { Major = 0x50001, Minor = 0x5000B, HeaderRevision = 0, Unk1 = 2, SaveRevision = 11, Unk2 = 2 }, // 1.4.1
|
||||
new FileHeaderInfo { Major = 0x50001, Minor = 0x5000B, HeaderRevision = 0, Unk1 = 2, SaveRevision = 12, Unk2 = 2 }, // 1.4.2
|
||||
new FileHeaderInfo { Major = 0x60001, Minor = 0x6000C, HeaderRevision = 0, Unk1 = 2, SaveRevision = 13, Unk2 = 2 }, // 1.5.0
|
||||
};
|
||||
|
||||
public static readonly IReadOnlyList<SaveFileSizes> SizeInfo = new[]
|
||||
|
|
@ -50,6 +52,7 @@ public static class RevisionChecker
|
|||
SizesByRevision[4], // 1.4.0
|
||||
SizesByRevision[4], // 1.4.1
|
||||
SizesByRevision[4], // 1.4.2
|
||||
SizesByRevision[5], // 1.5.0
|
||||
};
|
||||
|
||||
public static readonly IReadOnlyList<FileHashInfo> HashInfo = new[]
|
||||
|
|
@ -67,6 +70,7 @@ public static class RevisionChecker
|
|||
FileHashRevision.REV_140, // 1.4.0
|
||||
FileHashRevision.REV_140, // 1.4.1
|
||||
FileHashRevision.REV_140, // 1.4.2
|
||||
FileHashRevision.REV_150, // 1.5.0
|
||||
};
|
||||
|
||||
public static bool IsRevisionKnown(this FileHeaderInfo info) => info.GetKnownRevisionIndex() >= 0;
|
||||
|
|
|
|||
|
|
@ -62,6 +62,7 @@ public static MainSaveOffsets GetOffsets(FileHeaderInfo Info)
|
|||
10 => new MainSaveOffsets14(),
|
||||
11 => new MainSaveOffsets14(),
|
||||
12 => new MainSaveOffsets14(),
|
||||
13 => new MainSaveOffsets15(),
|
||||
_ => throw new IndexOutOfRangeException("Unknown revision!"),
|
||||
};
|
||||
}
|
||||
|
|
|
|||
50
NHSE.Core/Save/Offsets/MainSaveOffsets15.cs
Normal file
50
NHSE.Core/Save/Offsets/MainSaveOffsets15.cs
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
namespace NHSE.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="MainSaveOffsets"/>
|
||||
/// </summary>
|
||||
public class MainSaveOffsets15 : MainSaveOffsets
|
||||
{
|
||||
#region GSaveLand
|
||||
public const int GSaveLandStart = 0x110;
|
||||
public override int Animal => GSaveLandStart + 0x10;
|
||||
|
||||
public override int LandMyDesign => GSaveLandStart + 0x1D7200;
|
||||
public override int PatternsPRO => LandMyDesign + (PatternCount * DesignPattern.SIZE);
|
||||
public override int PatternFlag => PatternsPRO + (PatternCount * DesignPatternPRO.SIZE);
|
||||
public override int PatternTailor => PatternFlag + DesignPattern.SIZE;
|
||||
|
||||
public const int GSaveWeather = GSaveLandStart + 0x1D6FB0;
|
||||
public override int WeatherArea => GSaveWeather + 0x14; // Hemisphere
|
||||
public override int WeatherRandSeed => GSaveWeather + 0x18;
|
||||
|
||||
public override int EventFlagLand => GSaveLandStart + 0x20100C;
|
||||
|
||||
// GSaveMainField
|
||||
public const int GSaveMainFieldStart = GSaveLandStart + 0x20180C;
|
||||
public override int FieldItem => GSaveMainFieldStart + 0x00000;
|
||||
public override int LandMakingMap => GSaveMainFieldStart + 0xAAA00;
|
||||
public override int MainFieldStructure => GSaveMainFieldStart + 0xCF600;
|
||||
public override int OutsideField => GSaveMainFieldStart + 0xCF998;
|
||||
public override int MyDesignMap => GSaveMainFieldStart + 0xCFA34;
|
||||
|
||||
public override int PlayerHouseList => GSaveLandStart + 0x2DC238;
|
||||
public override int NpcHouseList => GSaveLandStart + 0x40E238;
|
||||
|
||||
public const int GSaveShop = GSaveLandStart + 0x40F480;
|
||||
public override int ShopKabu => GSaveShop + 0x2AD0; // part of shop
|
||||
public override int Museum => GSaveLandStart + 0x4124C4;
|
||||
public override int Visitor => GSaveLandStart + 0x4158C8;
|
||||
public override int SaveFg => GSaveLandStart + 0x415AF8;
|
||||
public override int BulletinBoard => GSaveLandStart + 0x416440;
|
||||
public override int AirportThemeColor => GSaveLandStart + 0x4F7048;
|
||||
#endregion
|
||||
|
||||
#region GSaveLandOther
|
||||
public const int GSaveLandOtherStart = 0x4FADA0;
|
||||
|
||||
public override int LostItemBox => GSaveLandOtherStart + 0x605E70;
|
||||
public override int LastSavedTime => GSaveLandOtherStart + 0x60A708;
|
||||
#endregion
|
||||
}
|
||||
}
|
||||
|
|
@ -57,6 +57,7 @@ public static PersonalOffsets GetOffsets(FileHeaderInfo Info)
|
|||
10 => new PersonalOffsets14(),
|
||||
11 => new PersonalOffsets14(),
|
||||
12 => new PersonalOffsets14(),
|
||||
13 => new PersonalOffsets15(),
|
||||
_ => throw new IndexOutOfRangeException("Unknown revision!"),
|
||||
};
|
||||
}
|
||||
|
|
|
|||
44
NHSE.Core/Save/Offsets/PersonalOffsets15.cs
Normal file
44
NHSE.Core/Save/Offsets/PersonalOffsets15.cs
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
namespace NHSE.Core
|
||||
{
|
||||
/// <summary>
|
||||
/// <inheritdoc cref="PersonalOffsets"/>
|
||||
/// </summary>
|
||||
public sealed class PersonalOffsets15 : PersonalOffsets
|
||||
{
|
||||
private const int Player = 0x110;
|
||||
|
||||
public override int PersonalId => Player + 0xAFA8;
|
||||
public override int EventFlagsPlayer => Player + 0xAFE0;
|
||||
|
||||
private const int GSaveLifeSupport = Player + 0xBFE0;
|
||||
public override int CountAchievement => GSaveLifeSupport + 0xE98; // CountAchievement
|
||||
|
||||
public override int NowPoint => GSaveLifeSupport + 0x5498; // Nook Miles
|
||||
public override int TotalPoint => NowPoint + 8; // Total Nook Miles Earned
|
||||
public override int Birthday => Player + 0x1168C;
|
||||
|
||||
public override int ProfileMain => Player + 0x116A0;
|
||||
public override int ProfilePhoto => ProfileMain + 0x14;
|
||||
public override int ProfileBirthday => ProfileMain + 0x23058;
|
||||
public override int ProfileFruit => ProfileMain + 0x2305C;
|
||||
public override int ProfileTimestamp => ProfileMain + 0x230CC;
|
||||
public override int ProfileIsMakeVillage => ProfileMain + 0x230D0;
|
||||
|
||||
// end player
|
||||
|
||||
private const int PlayerOther = 0x35E40;
|
||||
|
||||
public override int Pockets1 => PlayerOther + 0x10;
|
||||
public override int Pockets2 => Pockets1 + (8 * Pockets1Count) + 0x18;
|
||||
public override int Wallet => Pockets2 + (8 * Pockets2Count) + 0x18;
|
||||
public override int ItemChest => PlayerOther + 0x18C;
|
||||
public override int ItemCollectBit => PlayerOther + 0xA058;
|
||||
public override int ItemRemakeCollectBit => PlayerOther + 0xA7AC;
|
||||
public override int Manpu => PlayerOther + 0xAF7C;
|
||||
public override int Bank => PlayerOther + 0x350C4;
|
||||
public override int Recipes => Bank + 0x10;
|
||||
|
||||
public override int MaxRecipeID => 0x2DA;
|
||||
public override int MaxRemakeBitFlag => 0x7D0 * 32;
|
||||
}
|
||||
}
|
||||
|
|
@ -192,7 +192,8 @@ public static class GameLists
|
|||
};
|
||||
|
||||
public static readonly IReadOnlyList<ushort> Fossils = new ushort[]
|
||||
{00169, // ankylo skull
|
||||
{
|
||||
00169, // ankylo skull
|
||||
00170, // ankylo torso
|
||||
00171, // ankylo tail
|
||||
00177, // archelon skull
|
||||
|
|
@ -233,7 +234,7 @@ public static class GameLists
|
|||
00227, // stego torso
|
||||
00228, // stego tail
|
||||
00234, // plesio skull
|
||||
00235, // plesio body
|
||||
00235, // plesio torso
|
||||
00236, // plesio tail
|
||||
00238, // T. rex skull
|
||||
00239, // T. rex torso
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@ public enum FieldItemKind : byte
|
|||
FenceChinese,
|
||||
FenceDriedStraw,
|
||||
FenceEasterEgg,
|
||||
FenceHalloween,
|
||||
FenceHorizontalLog,
|
||||
FenceHorizontalWood,
|
||||
FenceIkegaki,
|
||||
|
|
@ -46,6 +47,7 @@ public enum FieldItemKind : byte
|
|||
PltTreeCedarDeco,
|
||||
PltTreeOak,
|
||||
PltTreePalm,
|
||||
PltVgtPumpkin,
|
||||
PltWeedAut0,
|
||||
PltWeedAut1,
|
||||
PltWeedAut2,
|
||||
|
|
|
|||
|
|
@ -29,6 +29,7 @@ public enum ItemKind : byte
|
|||
Kind_Bromide,
|
||||
Kind_Bush,
|
||||
Kind_BushSeedling,
|
||||
Kind_Candy,
|
||||
Kind_Cap,
|
||||
Kind_ChangeStick,
|
||||
Kind_CliffMaker,
|
||||
|
|
@ -137,7 +138,9 @@ public enum ItemKind : byte
|
|||
Kind_TurnipExpired,
|
||||
Kind_Uchiwa,
|
||||
Kind_Umbrella,
|
||||
Kind_VegeSeedling,
|
||||
Kind_Vegetable,
|
||||
Kind_VegeTree,
|
||||
Kind_Watering,
|
||||
Kind_Weed,
|
||||
Kind_Windmill,
|
||||
|
|
|
|||
|
|
@ -158,8 +158,16 @@ public static class RecipeList
|
|||
{0x0C7, 04104}, // frying pan
|
||||
{0x0C8, 05150}, // shell speaker
|
||||
{0x0C9, 03439}, // wooden table
|
||||
{0x0CA, 04090}, //
|
||||
{0x0CB, 04066}, // illuminated tree
|
||||
{0x0CC, 03406}, // beekeeper's hive
|
||||
{0x0CD, 04083}, //
|
||||
{0x0CE, 04084}, //
|
||||
{0x0CF, 04086}, //
|
||||
{0x0D0, 04087}, //
|
||||
{0x0D1, 04088}, //
|
||||
{0x0D2, 04089}, //
|
||||
{0x0D4, 04092}, //
|
||||
{0x0D5, 03588}, // signpost
|
||||
{0x0D6, 03785}, // potted ivy
|
||||
{0x0D7, 01058}, // music stand
|
||||
|
|
@ -616,6 +624,12 @@ public static class RecipeList
|
|||
{0x2D8, 12563}, // mermaid rug
|
||||
{0x2D9, 12566}, // mermaid wall
|
||||
{0x2DA, 12568}, // mermaid flooring
|
||||
{0x2DC, 12951}, //
|
||||
{0x2DD, 12949}, //
|
||||
{0x2DE, 13222}, //
|
||||
{0x2DF, 13223}, //
|
||||
{0x2E0, 13237}, //
|
||||
{0x2E1, 13275}, //
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -330,8 +330,13 @@ public EventFlagLand(short init, short max, ushort index, string name)
|
|||
{0x16B, new EventFlagLand(0 , 1 , 0363, "JohnnyInvisible" )}, // ジョニー非表示状態か
|
||||
{0x16C, new EventFlagLand(0 , 1 , 0364, "DreamUploadPlayerHaveCreaterID" )}, // ゆめみ|夢の最終更新者がMyDesignショーケースの作者IDを持ってるか?
|
||||
{0x16D, new EventFlagLand(0 , 5000 , 0365, "DiveFishNetHostCatchNumResult" )}, // 通信開始時にネットホストのプレイヤーが今までに捕まえた海の幸の数
|
||||
{0x16E, new EventFlagLand(0 , 9999 , 0366, "HalloweenSloVisitYear" )}, // ハロウィンの初回レイジを予約した年
|
||||
{0x16F, new EventFlagLand(0 , 1 , 0367, "HalloweenSloVisitToday" )}, // 今日がハロウィンのレイジ来訪日
|
||||
{0x171, new EventFlagLand(0 , 1 , 0369, "GrowUpAfterPatch1_5" )}, // 1.5適用して成長処理をした
|
||||
{0x172, new EventFlagLand(0 , 1 , 0370, "NeedUpdatePassword" )}, // セーブデータ復元後のパスワード更新必要
|
||||
{0x173, new EventFlagLand(0 , 1 , 0371, "IsHalloweenLessThanThreeDays" )}, // ハロウィン3日前以内か?
|
||||
{0x176, new EventFlagLand(0 , 1 , 0374, "EventObjFlag0" )}, // イベントオブジェフラグ0
|
||||
{0x17B, new EventFlagLand(0 , 1 , 0379, "SecondPublicAnnouncement" )}, // 2回目島内放送の発生が必要か?
|
||||
};
|
||||
|
||||
private const string Unknown = "???";
|
||||
|
|
|
|||
|
|
@ -849,7 +849,7 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
|
|||
{0x407, new EventFlagPlayer(0 , 1 , 1031, "SpnJuneBrideNotGetFenceTodayFrag" )}, // パニエル/ジューンブライド|今日柵もらえなかった?
|
||||
{0x408, new EventFlagPlayer(0 , 1 , 1032, "JuneBrideBGMHasUnlocked" )}, // ジューンブライド|今年BGMが解禁されているか?
|
||||
{0x40A, new EventFlagPlayer(0 , 1 , 1034, "XctFirstTalk" )}, // みしらぬネコ/メーデー|面識ある?
|
||||
{0x40B, new EventFlagPlayer(0 , 1 , 1035, "PAnnounceJuneBride" )}, // 島内放送|ジューンブライド初回ログイン時の放送を聞いた?
|
||||
{0x40B, new EventFlagPlayer(0 , 1 , 1035, "PAnnounceJuneBride" )}, // 島内放送|今年ジューンブライド初回ログイン時の放送を聞いた?
|
||||
{0x40C, new EventFlagPlayer(0 , 1 , 1036, "StandByPhoneCallJuneBrideSpn" )}, // 電話デモ|今年パニエルからジューンブライド告知された?
|
||||
{0x40D, new EventFlagPlayer(0 , 1 , 1037, "AlpJuneBrideGetStickFrag" )}, // カイゾー/ジューンブライド|今年ステッキもらった?
|
||||
{0x40F, new EventFlagPlayer(0 , 10 , 1039, "LastApproachVillagerIndex" )}, // 最後にアプローチ会話をしたNPCの住人番号
|
||||
|
|
@ -902,8 +902,15 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
|
|||
{0x447, new EventFlagPlayer(0 , 1 , 1095, "TapULFirstExplain" )}, // ゆめみ|ULの初回説明読んだ?
|
||||
{0x449, new EventFlagPlayer(0 , 1 , 1097, "TapDreamUploadToday" )}, // ゆめみ|今日夢をアップロードした
|
||||
{0x44A, new EventFlagPlayer(0 , 1 , 1098, "TapDreamDeleteToday" )}, // ゆめみ|今日夢を削除した
|
||||
{0x44B, new EventFlagPlayer(0 , 1 , 1099, "PknTalkBeforeFlag" )}, // パンプキング/ハロウィン|面識ある?
|
||||
{0x44C, new EventFlagPlayer(0 , 1 , 1100, "PknTalkTodayFlag" )}, // パンプキング/ハロウィン|今日会話した?
|
||||
{0x44D, new EventFlagPlayer(0 , 64 , 1101, "PknGiveCandyCount" )}, // パンプキング/ハロウィン|アメをあげた回数
|
||||
{0x44E, new EventFlagPlayer(0 , 1 , 1102, "PknGetCarriageFlag" )}, // パンプキング/ハロウィン|かぼちゃのばしゃもらった?
|
||||
{0x44F, new EventFlagPlayer(0 , 1 , 1103, "PknGetBromideFlag" )}, // パンプキング/ハロウィン|ブロマイドもらった?
|
||||
{0x450, new EventFlagPlayer(0 , 1 , 1104, "PknGetCarriageRecipeFlag" )}, // パンプキング/ハロウィン|かぼちゃのばしゃのレシピもらった?
|
||||
{0x451, new EventFlagPlayer(0 , 1 , 1105, "OwlPaintingDiveFish" )}, // フータのうみのさちチュートリアル聞いた?
|
||||
{0x452, new EventFlagPlayer(0 , 1 , 1106, "PAnnounceFireworksSza1" )}, // 島内放送|花火大会しずえ1回目の放送を聞いた?
|
||||
{0x454, new EventFlagPlayer(0 , 1 , 1108, "RcmBoughtCandyTodayFlag" )}, // まめきち/ハロウィン|今日アメ買った?
|
||||
{0x457, new EventFlagPlayer(0 , 1 , 1111, "FoxFirstTalkFireworksFlag" )}, // つねきち|花火大会で会話したことある?
|
||||
{0x458, new EventFlagPlayer(0 , 1 , 1112, "CharacterCreationFlag" )}, // 夏パッチ以降でキャラメイク完了したか?
|
||||
{0x459, new EventFlagPlayer(0 , 1 , 1113, "PublicAnnouncement_DiveFish" )}, // 泳ぎ解禁の島内放送聞いたか?手紙だす?
|
||||
|
|
@ -917,21 +924,65 @@ public EventFlagPlayer(short init, short max, ushort index, string name)
|
|||
{0x461, new EventFlagPlayer(0 , 1 , 1121, "PlayerHouseBuiltToday" )}, // 今日自宅が完成した(今日テント→家になった)
|
||||
{0x462, new EventFlagPlayer(0 , 1 , 1122, "ReceiveTapBedLetter" )}, // ゆめみからベッド付き手紙を受け取った
|
||||
{0x463, new EventFlagPlayer(0 , 1 , 1123, "FoxTalkOnlyStandShopFlag" )}, // つねきち|屋台でしか会話したことがない?
|
||||
{0x464, new EventFlagPlayer(0 , 1 , 1124, "NpcGetCandyTodayFlag" )}, // 一般NPC/ハロウィン|今日アメもらった?
|
||||
{0x465, new EventFlagPlayer(0 , 1 , 1125, "DiveFish_FirstDonation" )}, // 海の幸を初寄贈した
|
||||
{0x466, new EventFlagPlayer(0 , 1 , 1126, "TapSendThankyouLetter" )}, // ゆめみ|翌日、夢をアップしたお礼の手紙が届くか?
|
||||
{0x467, new EventFlagPlayer(0 , 9999, 1127, "PickUpDIYGoldCount" )}, // ver1.4.0以降、拾われたことがない金鉱石を拾った回数
|
||||
{0x468, new EventFlagPlayer(0 , 1 , 1128, "FireworkCannotGetNnpcItemFlag" )}, // 花火大会|一般NPCから受け取り損ねたアイテムがある?
|
||||
{0x46B, new EventFlagPlayer(0 , 7 , 1131, "SurpriseVisitCount" )}, // 突撃訪問発生までのカウント
|
||||
{0x46C, new EventFlagPlayer(0 , 1 , 1132, "SurpriseVisitDone" )}, // 突撃訪問された事があるか
|
||||
{0x46D, new EventFlagPlayer(0 , 1 , 1133, "GetHalloweenRag" )}, // 一般NPC/ハロウィン|ラグもらった?
|
||||
{0x46E, new EventFlagPlayer(0 , 1 , 1134, "GetHalloweenWallPaper" )}, // 一般NPC/ハロウィン|かべがみもらった?
|
||||
{0x46F, new EventFlagPlayer(0 , 1 , 1135, "GetHalloweenFloor" )}, // 一般NPC/ハロウィン|ゆかもらった?
|
||||
{0x470, new EventFlagPlayer(0 , 1 , 1136, "GetHalloweenStickRecipe" )}, // パンプキング/ハロウィン|ステッキ(レシピ)もらった?
|
||||
{0x471, new EventFlagPlayer(0 , 1 , 1137, "GetHalloweenGarland" )}, // 一般NPC/ハロウィン|ガーランドもらった?
|
||||
{0x473, new EventFlagPlayer(0 , 1 , 1139, "GetHalloweenTableSetting" )}, // 一般NPC/ハロウィン|テーブルセッティングもらった?
|
||||
{0x475, new EventFlagPlayer(0 , 1 , 1141, "GetHalloweenBag" )}, // 今年ハロウィンのはねをもらった
|
||||
{0x476, new EventFlagPlayer(0 , 1 , 1142, "AddBodyColor" )}, // タヌポート|追加ボディカラー解禁
|
||||
{0x477, new EventFlagPlayer(0 , 1 , 1143, "AddEyeColor" )}, // タヌポート|追加アイカラー解禁
|
||||
{0x478, new EventFlagPlayer(0 , 1 , 1144, "AddCheekColor" )}, // タヌポート|追加チークカラー解禁
|
||||
{0x479, new EventFlagPlayer(0 , 1 , 1145, "SaveDataRestoringSettingNotice" )}, // セーブデータ復元|設定異常検知
|
||||
{0x47A, new EventFlagPlayer(0 , 1 , 1146, "TapTalkAboutMydesignShowcase" )}, // ゆめみ|マイデザインショーケースについて説明聞いた
|
||||
{0x47B, new EventFlagPlayer(0 , 1 , 1147, "NpcHalloweenTrickFlag" )}, // ハロウィン|今日イタズラされた?
|
||||
{0x47C, new EventFlagPlayer(0 , 1 , 1148, "TapFirstDreamIn" )}, // ゆめみ|夢の中に入ったことがある?
|
||||
{0x47D, new EventFlagPlayer(0 , 1 , 1149, "TapFirstCheckMydesingShowcase" )}, // ゆめみ|夢の中のマイデザインショーケース端末にアクセスしたことがある?
|
||||
{0x47E, new EventFlagPlayer(0 , 1 , 1150, "SeekingQuestFirst" )}, // かくれんぼ|かくれんをした事がある
|
||||
{0x47F, new EventFlagPlayer(0 , 1 , 1151, "SpecialMakeChanged" )}, // プレイヤが特殊メイクに変更した
|
||||
{0x480, new EventFlagPlayer(0 , 1 , 1152, "TalkMakeTodayAnyone" )}, // 今日誰かにメイク会話を聞いたか
|
||||
{0x481, new EventFlagPlayer(0 , 1 , 1153, "RcmExplainCandyFlag" )}, // まめきち/ハロウィン|今年アメの説明聞いた?
|
||||
{0x482, new EventFlagPlayer(0 , 1 , 1154, "RcmExplainPumpkinFlag" )}, // まめきち/ハロウィン|今日かぼちゃの苗の説明聞いた?
|
||||
{0x483, new EventFlagPlayer(0 , 1 , 1155, "SzaFireworksSubmitMyDesignToday" )}, // 花火大会しずえ|今日マイデザイン花火を提出した?
|
||||
{0x484, new EventFlagPlayer(0 , 1 , 1156, "PAnnounceHalloween" )}, // 島内放送|今年ハロウィン期間初回ログイン時の放送を聞いた?
|
||||
{0x486, new EventFlagPlayer(0 , 1 , 1158, "ExplainPumpkinColorFlag" )}, // ハロウィン|今年かぼちゃの苗の説明聞いた?
|
||||
{0x487, new EventFlagPlayer(0 , 1 , 1159, "SloExplainPumpkinSeedingFlag" )}, // レイジ/ハロウィン|今日かぼちゃの苗の特別価格の説明きいた?
|
||||
{0x488, new EventFlagPlayer(0 , 1 , 1160, "CalcPastDays" )}, // 経過日数の計算をした
|
||||
{0x48A, new EventFlagPlayer(0 , 3000, 1162, "FireworksLastApproachYear" )}, // 花火大会|最後にアプローチ挙動をした年
|
||||
{0x48D, new EventFlagPlayer(0 , 1 , 1165, "SloExplainAddVegetable" )}, // レイジ/ハロウィン|今日かぼちゃの苗販売の説明聞いた?
|
||||
{0x492, new EventFlagPlayer(0 , 1 , 1170, "PknTalkLastNoCandyFlag" )}, // パンプキング/ハロウィン|最後の会話時アメ持ってなかった?
|
||||
{0x49B, new EventFlagPlayer(0 , 64 , 1179, "PknGiveLollipopCount" )}, // パンプキング/ハロウィン|ロリポップをあげた回数
|
||||
{0x49C, new EventFlagPlayer(0 , 1 , 1180, "TapSelWhereAreHere" )}, // ゆめみ|ここはどこ?を1度選んだらON
|
||||
{0x49D, new EventFlagPlayer(0 , 1 , 1181, "PknTalkLastNotGetFlag" )}, // パンプキング/ハロウィン|最後の会話でアイテムもらえなかった?
|
||||
{0x49E, new EventFlagPlayer(0 , 1 , 1182, "PknLastGiveCandyFlag" )}, // パンプキング/ハロウィン|前回渡したのはアメ?
|
||||
{0x49F, new EventFlagPlayer(0 , 1 , 1183, "PknCompItemCandyFlag" )}, // パンプキング/ハロウィン|アメ報酬コンプした?
|
||||
{0x4A0, new EventFlagPlayer(0 , 1 , 1184, "PknCompItemLollipopFlag" )}, // パンプキング/ハロウィン|ロリポップ報酬コンプした?
|
||||
{0x4A1, new EventFlagPlayer(0 , 1 , 1185, "PknPumpkingLookChatFlag" )}, // パンプキング/ハロウィン|パンプキング装備の雑談した?
|
||||
{0x4A2, new EventFlagPlayer(0 , 1 , 1186, "Mobile1stBoot_Camera_UnlockKeyGuideOff" )}, // スマホアプリ初起動|カメラアプリにキーガイドOFF追加
|
||||
{0x4A3, new EventFlagPlayer(0 , 1 , 1187, "GetHalloweenRobe" )}, // パンプキング/ハロウィン|ローブをもらった
|
||||
{0x4A4, new EventFlagPlayer(0 , 1 , 1188, "GetHalloweenMask" )}, // パンプキング/ハロウィン|かぶりものをもらった
|
||||
{0x4A5, new EventFlagPlayer(0 , 1 , 1189, "PknSendLetterFlag" )}, // パンプキング/ハロウィン|今年手紙送った?
|
||||
{0x4A7, new EventFlagPlayer(0 , 8 , 1191, "NpcGiveCandyCount" )}, // 一般NPC/ハロウィン|アメのお礼もらった回数
|
||||
{0x4A8, new EventFlagPlayer(0 , 1 , 1192, "GetHalloweenGarlandRecipe" )}, // 一般NPC/ハロウィン|ガーランドのレシピをもらった
|
||||
{0x4A9, new EventFlagPlayer(0 , 1 , 1193, "GetHalloweenTableSettingRecipe" )}, // 一般NPC/ハロウィン|テーブルセッティングのレシピをもらった
|
||||
{0x4AA, new EventFlagPlayer(0 , 1 , 1194, "NpcTalkLastNotGetFlag" )}, // 一般NPC/ハロウィン|イベント中、誰かと話した?
|
||||
{0x4AB, new EventFlagPlayer(0 , 1 , 1195, "EnabledEmoticonIrregular" )}, // 漫符UI解禁済みかつ漫符入手会話が未発生
|
||||
{0x4B2, new EventFlagPlayer(0 , 1 , 1202, "TapUnlockFavorite" )}, // ゆめみ|「前に見た夢を見る」解禁
|
||||
{0x4B3, new EventFlagPlayer(0 , 9999, 1203, "LastPlayHalloweenYear" )}, // ハロウィン|最後に遊んだハロウィンの年
|
||||
{0x4BA, new EventFlagPlayer(0 , 1 , 1210, "AnnounceHalloween" )}, // ハロウィンを島内放送で告知した
|
||||
{0x4BF, new EventFlagPlayer(0 , 1 , 1215, "MilageSendLetterFlag" )}, // タヌポート/ハロウィン|新規肌・目の色の追加手紙送った?
|
||||
{0x4C0, new EventFlagPlayer(0 , 1 , 1216, "NpcHalloweenGetMirrorFlag" )}, // ハロウィン|今日NPCからミラーもらった?
|
||||
{0x4C1, new EventFlagPlayer(0 , 1 , 1217, "NpcHalloweenCandyHelpFlag" )}, // ハロウィン|今日NPCから救済用アメもらった?
|
||||
{0x4C7, new EventFlagPlayer(0 , 8 , 1223, "PknGetItem" )}, // パンプキング/ハロウィン|報酬アイテムは?
|
||||
{0x4D2, new EventFlagPlayer(0 , 1 , 1234, "RewindDays" )}, // 日付を巻き戻した
|
||||
};
|
||||
|
||||
private const string Unknown = "???";
|
||||
|
|
|
|||
|
|
@ -59,7 +59,7 @@ public EventFlagVillager(short v1, short v2, ushort index, string name)
|
|||
{0x02B, new EventFlagVillager(0 , 10 , 0043, "ForceMoveOutVillagerIndex" )}, // 強制転出に指定した住人番号
|
||||
{0x02C, new EventFlagVillager(0 , 1 , 0044, "DisplayJuneBridePresent" )}, // ジューンブライド | 絵皿を飾るか?
|
||||
{0x02D, new EventFlagVillager(0 , 7 , 0045, "ProgressDaysJuneBrideParty" )}, // ジューンブライド | 結婚パーティに参加してからの経過日数
|
||||
{0x031, new EventFlagVillager(0 , 5 , 0049, "EnableConvTalkDaysCount" )}, // 会話のフリを解禁するまでの日数
|
||||
{0x031, new EventFlagVillager(0 , 6 , 0049, "EnableConvTalkDaysCount" )}, // 会話のフリを解禁するまでの日数
|
||||
};
|
||||
|
||||
private const string Unknown = "???";
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
|
|||
{0x0D, new EventFlagVillagerMemoryPlayer(0 , 1 , 013, "HasAcquaintanceship" )}, // 面識ありか
|
||||
{0x0E, new EventFlagVillagerMemoryPlayer(0 , 1 , 014, "SitBenchFlag" )}, // NPCをベンチに座らせる
|
||||
{0x0F, new EventFlagVillagerMemoryPlayer(0 , 1 , 015, "TalkInDream" )}, // 今回の夢の中への訪問で話をしたか
|
||||
{0x10, new EventFlagVillagerMemoryPlayer(0 , 64 , 016, "HalloweenGiveCandyCount" )}, // ハロウィン|今日このNPCにアメをあげた回数
|
||||
{0x11, new EventFlagVillagerMemoryPlayer(0 , 255, 017, "PastCountFromLastVisitPlayerHouse" )}, // 最後にP宅を訪問してからの経過日数
|
||||
{0x12, new EventFlagVillagerMemoryPlayer(0 , 1 , 018, "TalkedAsSameVillageResident" )}, // 同じ村の住人として会話した
|
||||
{0x13, new EventFlagVillagerMemoryPlayer(0 , 1 , 019, "InputGreeting" )}, // 挨拶を設定した
|
||||
|
|
@ -76,6 +77,7 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
|
|||
{0x37, new EventFlagVillagerMemoryPlayer(0 , 255, 055, "ContinuousTalkCount" )}, // 連続会話回数
|
||||
{0x38, new EventFlagVillagerMemoryPlayer(0 , 255, 056, "Again2Count" )}, // XX_Again2を聞いた回数
|
||||
{0x39, new EventFlagVillagerMemoryPlayer(0 , 1 , 057, "TalkDIY" )}, // DIY会話をした
|
||||
{0x3A, new EventFlagVillagerMemoryPlayer(0 , 2 , 058, "HalloweenDIYGetItem" )}, // ハロウィン|DIYしている時の報酬アイテムは?
|
||||
{0x3B, new EventFlagVillagerMemoryPlayer(0 , 1 , 059, "NewYearGreetingFlag" )}, // 新年(1月1日)のあいさつをした
|
||||
{0x3C, new EventFlagVillagerMemoryPlayer(0 , 1 , 060, "GotRecipeorMaterial" )}, // DIYレシピか素材をもらった
|
||||
{0x3D, new EventFlagVillagerMemoryPlayer(0 , 1 , 061, "GotMaterialItemFull" )}, // 素材をもらうときもちものがいっぱいだった
|
||||
|
|
@ -144,7 +146,14 @@ public EventFlagVillagerMemoryPlayer(byte init, byte max, ushort index, string n
|
|||
{0x7D, new EventFlagVillagerMemoryPlayer(0 , 1 , 125, "FriendshipBecomeAcqH" )}, // 親密度が知人(高)に到達済み
|
||||
{0x7E, new EventFlagVillagerMemoryPlayer(0 , 3 , 126, "DC_NPCBirthdayFlag" )}, // NPC誕生日|おでかけ先の村でもらうお返しの種類
|
||||
{0x7F, new EventFlagVillagerMemoryPlayer(0 , 1 , 127, "EasterCannotGetNnpcRecipeFlag" )}, // イースター|このNPCから受け取り損ねたレシピがある?
|
||||
{0x81, new EventFlagVillagerMemoryPlayer(0 , 1 , 129, "HalloweenTerrifyFlag" )}, // ハロウィン|今日パンプキングの恰好で脅かした?
|
||||
{0x82, new EventFlagVillagerMemoryPlayer(0 , 1 , 130, "HalloweenGetCandyFlag" )}, // ハロウィン|今日このNPCからアメもらった?
|
||||
{0x83, new EventFlagVillagerMemoryPlayer(0 , 1 , 131, "FireworksGetItemFlag" )}, // 花火大会|このNPCからリアクション会話で花火を受け取った
|
||||
{0x84, new EventFlagVillagerMemoryPlayer(0 , 1 , 132, "HaloweenTalkThisSceneFalg" )}, // ハロウィン|このシーンで会話した?
|
||||
{0x85, new EventFlagVillagerMemoryPlayer(0 , 1 , 133, "HaloweenGetCandyThisSceneFalg" )}, // ハロウィン|このシーンでアメもらった?
|
||||
{0x86, new EventFlagVillagerMemoryPlayer(0 , 1 , 134, "FollowQuestAfter" )}, // 追従|追従クエスト後か?
|
||||
{0x88, new EventFlagVillagerMemoryPlayer(0 , 1 , 136, "HalloweenLastNotGetFlag" )}, // ハロウィン|最後の会話で報酬アイテムもらえなかった?
|
||||
{0x89, new EventFlagVillagerMemoryPlayer(0 , 16 , 137, "HalloweenLastNotGetItem" )}, // ハロウィン|最後の会話でもらえなかった報酬アイテム
|
||||
};
|
||||
|
||||
private const string Unknown = "???";
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user