mirror of
https://github.com/sampletext32/ParkanPlayground.git
synced 2025-05-18 19:31:17 +03:00
комментарии и дополнительные изыскания
This commit is contained in:
parent
135777a4c6
commit
8c4fc8f096
@ -20,7 +20,7 @@ public class ClanInfo
|
||||
/// Игра называет этот путь TreeName
|
||||
/// </summary>
|
||||
public string ResearchNResPath { get; set; }
|
||||
public int UnkInt3 { get; set; }
|
||||
public int Brains { get; set; }
|
||||
public int AlliesMapCount { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
@ -118,7 +118,7 @@ public class MissionTmaParser
|
||||
|
||||
if (4 < clanFeatureSet)
|
||||
{
|
||||
clanTreeInfo.UnkInt3 = fileStream.ReadInt32LittleEndian();
|
||||
clanTreeInfo.Brains = fileStream.ReadInt32LittleEndian();
|
||||
}
|
||||
|
||||
if (5 < clanFeatureSet)
|
||||
|
@ -132,7 +132,7 @@ public class MissionTmaExplorer : IImGuiPanel
|
||||
ImGui.SameLine();
|
||||
ImGui.Text(clanInfo.ClanType.ToReadableString());
|
||||
|
||||
ImGui.Text("Скрипты поведения: ");
|
||||
ImGui.Text("Скрипты поведения (Mission Scripts): ");
|
||||
Utils.ShowHint("Пути к файлам .scr и .fml описывающих настройку объектов и поведение AI");
|
||||
ImGui.SameLine();
|
||||
ImGui.Text(clanInfo.ScriptsString);
|
||||
@ -176,14 +176,14 @@ public class MissionTmaExplorer : IImGuiPanel
|
||||
ImGui.Text("Отсутствует неизвестная часть");
|
||||
}
|
||||
|
||||
ImGui.Text("Путь к файлу .trf: ");
|
||||
Utils.ShowHint("Не до конца понятно, что означает, вероятно это NRes с деревом исследований");
|
||||
ImGui.Text("Дерево исследований: ");
|
||||
Utils.ShowHint("NRes с деревом исследований");
|
||||
ImGui.SameLine();
|
||||
ImGui.Text(clanInfo.ResearchNResPath);
|
||||
|
||||
ImGui.Text("Неизвестное число 3: ");
|
||||
ImGui.Text("Количество мозгов (Brains))): ");
|
||||
ImGui.SameLine();
|
||||
ImGui.Text(clanInfo.UnkInt3.ToString());
|
||||
ImGui.Text(clanInfo.Brains.ToString());
|
||||
|
||||
ImGui.Text("Матрица союзников");
|
||||
Utils.ShowHint("Если 1, то кланы - союзники, и не нападают друг на друга");
|
||||
|
@ -1,6 +1,7 @@
|
||||
using ImGuiNET;
|
||||
using NResUI.Abstractions;
|
||||
using NResUI.Models;
|
||||
using ScrLib;
|
||||
|
||||
namespace NResUI.ImGuiUI;
|
||||
|
||||
@ -49,7 +50,7 @@ public class ScrExplorer : IImGuiPanel
|
||||
ImGui.TableSetupColumn("Индекс встроенного скрипта");
|
||||
ImGui.TableSetupColumn("UnkInner2");
|
||||
ImGui.TableSetupColumn("UnkInner3");
|
||||
ImGui.TableSetupColumn("Тип скрипта");
|
||||
ImGui.TableSetupColumn("Тип действия");
|
||||
ImGui.TableSetupColumn("UnkInner5");
|
||||
ImGui.TableSetupColumn("Кол-во аргументов");
|
||||
ImGui.TableSetupColumn("Аргументы");
|
||||
@ -62,21 +63,66 @@ public class ScrExplorer : IImGuiPanel
|
||||
ImGui.TableNextRow();
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.ScriptIndex.ToString());
|
||||
|
||||
if (inner.ScriptIndex == 2)
|
||||
{
|
||||
Utils.ShowHint("Первый аргумент - номер проблемы");
|
||||
}
|
||||
|
||||
if (inner.ScriptIndex == 4)
|
||||
{
|
||||
Utils.ShowHint("Первый аргумент - номер проблемы");
|
||||
}
|
||||
|
||||
if (inner.ScriptIndex == 8)
|
||||
{
|
||||
Utils.ShowHint("Установить dCurrentProblem стейт (VARSET:arg0)");
|
||||
}
|
||||
|
||||
if (inner.ScriptIndex == 20)
|
||||
{
|
||||
Utils.ShowHint("Первый аргумент - номер проблемы");
|
||||
}
|
||||
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.UnkInner2.ToString());
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.UnkInner3.ToString());
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.Type.ToString());
|
||||
ImGui.Text($"{(int) inner.Type}: {inner.Type:G}");
|
||||
if (inner.Type == ScrEntryInnerType._0)
|
||||
{
|
||||
Utils.ShowHint("0 обязан иметь аргументы");
|
||||
}
|
||||
|
||||
if (inner.Type == ScrEntryInnerType.CheckInternalState)
|
||||
{
|
||||
Utils.ShowHint("Для 5 вообще не нужны данные, игра проверяет внутренний стейт");
|
||||
}
|
||||
|
||||
if (inner.Type == ScrEntryInnerType.SetVarsetValue)
|
||||
{
|
||||
Utils.ShowHint("В случае 6, игра берёт UnkInner2 (индекс в Varset) и устанавливает ему значение UnkInner3");
|
||||
}
|
||||
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.UnkInner5.ToString());
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.ArgumentsCount.ToString());
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(string.Join(", ", inner.Arguments));
|
||||
foreach (var argument in inner.Arguments)
|
||||
{
|
||||
if (ImGui.Button(argument.ToString()))
|
||||
{
|
||||
}
|
||||
|
||||
ImGui.SameLine();
|
||||
}
|
||||
|
||||
ImGui.TableNextColumn();
|
||||
ImGui.Text(inner.UnkInner7.ToString());
|
||||
}
|
||||
|
||||
ImGui.EndTable();
|
||||
}
|
||||
|
||||
|
@ -33,13 +33,7 @@ public class ScrEntryInner
|
||||
public int UnkInner2 { get; set; }
|
||||
public int UnkInner3 { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 0,1,2,3,4,5,6,-1
|
||||
/// </summary>
|
||||
///
|
||||
/// <para>1 - неизвестно</para>
|
||||
/// <para>2 - noop</para>
|
||||
public int Type { get; set; }
|
||||
public ScrEntryInnerType Type { get; set; }
|
||||
|
||||
public int UnkInner5 { get; set; }
|
||||
|
||||
@ -49,3 +43,18 @@ public class ScrEntryInner
|
||||
|
||||
public int UnkInner7 { get; set; }
|
||||
}
|
||||
|
||||
public enum ScrEntryInnerType
|
||||
{
|
||||
Unspecified = -1,
|
||||
_0 = 0,
|
||||
_1 = 1,
|
||||
_2 = 2,
|
||||
_3 = 3,
|
||||
_4 = 4,
|
||||
CheckInternalState = 5,
|
||||
/// <summary>
|
||||
/// В случае 6, игра берёт UnkInner2 (индекс в Varset) и устанавливает ему значение UnkInner3
|
||||
/// </summary>
|
||||
SetVarsetValue = 6,
|
||||
}
|
@ -31,7 +31,7 @@ public class ScrParser
|
||||
|
||||
entryInner.UnkInner2 = fs.ReadInt32LittleEndian();
|
||||
entryInner.UnkInner3 = fs.ReadInt32LittleEndian();
|
||||
entryInner.Type = fs.ReadInt32LittleEndian();
|
||||
entryInner.Type = (ScrEntryInnerType)fs.ReadInt32LittleEndian();
|
||||
entryInner.UnkInner5 = fs.ReadInt32LittleEndian();
|
||||
|
||||
entryInner.ArgumentsCount = fs.ReadInt32LittleEndian();
|
||||
|
Loading…
x
Reference in New Issue
Block a user