This commit is contained in:
AlessandroCH
2025-05-28 12:12:04 +02:00
parent 4e280f18b5
commit 7c0a512ad6
6 changed files with 266 additions and 33 deletions

View File

@@ -21,6 +21,7 @@ namespace Campofinale.Game.Entities
public List<ParamKeyValue> properties=new();
public int sceneNumId;
public bool spawned = false;
public bool defaultHide = false;
public Entity()
{

View File

@@ -14,6 +14,7 @@ namespace Campofinale.Game.Entities
{
}
public EntityInteractive(string templateId, ulong worldOwner, Vector3f pos, Vector3f rot, int scene, ulong g=0)
{
if (g == 0)
@@ -86,6 +87,7 @@ namespace Campofinale.Game.Entities
(bool, int) index = GetPropertyIndex(prop.key, proto.Properties.Keys.Count > 0 ? proto.Properties.Keys.Max() : 0);
if (p != null && index.Item1)
{
if(!proto.Properties.ContainsKey(index.Item2))
proto.Properties.Add(index.Item2, p);
}

View File

@@ -253,6 +253,8 @@ namespace Campofinale.Game
public List<Entity> entities = new();
[BsonIgnore, JsonIgnore]
public bool alreadyLoaded = false;
[BsonIgnore, JsonIgnore]
public List<ulong> activeScripts = new();
public int GetCollection(string id)
{
if (collections.ContainsKey(id))
@@ -379,53 +381,35 @@ namespace Campofinale.Game
}
public void SpawnEntity(Entity en,bool spawnedCheck=true)
{
if (!activeScripts.Contains(en.belongLevelScriptId) && en.defaultHide && en.belongLevelScriptId != 0)
{
return;
}
en.spawned = true;
List<Entity> toSpawn = new List<Entity>();
toSpawn.Add(en);
foreach (Entity e in GetEntityExcludingChar().FindAll(e => e.belongLevelScriptId == en.belongLevelScriptId && e.spawned == false))
ParamKeyValue targetList=en.properties.Find(p => p.key == "target_list");
if(targetList!=null)
foreach (Entity e in GetEntityExcludingChar().FindAll(e=>e.spawned == false && targetList.value.valueArray.Any(v=>v.valueBit64== (long)e.levelLogicId)))
{
e.spawned = true;
toSpawn.Add(e);
SpawnEntity(e);
}
/*if(en.belongLevelScriptId != 0)
if (spawnedCheck)
{
foreach (Entity e in GetEntityExcludingChar().FindAll(e => e.belongLevelScriptId == en.belongLevelScriptId && e.spawned == false && e.Position.Distance(GetOwner().position) < 100))
{
e.spawned = true;
toSpawn.Add(e);
}
}
else
{
foreach (Entity e in GetEntityExcludingChar().FindAll(e => e.belongLevelScriptId == en.belongLevelScriptId && e != en))
{
e.spawned = true;
toSpawn.Add(e);
}
}*/
toSpawn.ForEach(e =>
{
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { e}));
});
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { en}));
}
public void UpdateShowEntities()
{
foreach(Entity en in GetEntityExcludingChar())
{
float minDis = en is EntityInteractive ? 180 : 50;
float minDis = 100;
//todo new system
if (en.Position.DistanceXZ(GetOwner().position) < minDis)
{
if (!en.spawned)
{
SpawnEntity(en);
}
}
else

View File

@@ -25,7 +25,13 @@ namespace Campofinale.Packets.Cs
State = 3
};
if (!session.sceneManager.GetCurScene().activeScripts.Contains(req.ScriptId))
{
session.sceneManager.GetCurScene().activeScripts.Add(req.ScriptId);
}
session.Send(ScMsgId.ScSceneLevelScriptStateNotify, rsp);
}
@@ -45,7 +51,7 @@ namespace Campofinale.Packets.Cs
State = 4
};
session.Send(ScMsgId.ScSceneLevelScriptStateNotify, rsp,packet.csHead.UpSeqid);
}
@@ -69,6 +75,15 @@ namespace Campofinale.Packets.Cs
UnlockSystemType type = (UnlockSystemType)Enum.Parse(typeof(UnlockSystemType), action.valueStr[0]);
player.UnlockSystem(type);
break;
case ScriptActionType.EnterScene:
player.EnterScene((int)action.valueUlong[0]);
break;
case ScriptActionType.AddMission:
player.missionSystem.AddMission(action.valueStr[0]);
break;
case ScriptActionType.CompleteMission:
//player.missionSystem.C(action.valueStr[0]);
break;
default:
Logger.PrintWarn("Script Action not implemented");
break;

View File

@@ -26,6 +26,8 @@ namespace Campofinale.Resource.Table
ProcessQuest = 2,
SpawnEnemy = 3,
UnlockSystem = 4,
EnterScene = 5,
AddMission = 6,
CompleteMission = 7,
}
}

229
Dotfuscator1.xml Normal file
View File

@@ -0,0 +1,229 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<!--This config file was generated by Dotfuscator. Please use the Dotfuscator Config Editor to modify.-->
<!DOCTYPE dotfuscator SYSTEM "http://www.preemptive.com/dotfuscator/dtd/dotfuscator_v2.5.dtd">
<dotfuscator version="2.3">
<global>
<option>debugauto</option>
</global>
<input>
<loadpaths />
<asmlist>
<package refid="75fb581d-504b-40a3-8b1a-b1ac03b08930">
<file dir="C:\Users\Alessandro\source\repos\Campofinale\Campofinale\bin\Release" name="net8.0" />
<asmlist>
<inputassembly refid="604ebecb-0504-454e-ad08-34eda9a04774">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Campofinale.dll" />
</inputassembly>
<inputassembly refid="3ae7d7b1-7703-4c9d-b40f-15d33288f11a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Campofinale.Protocol.dll" />
</inputassembly>
<inputassembly refid="08e7eb08-20c7-4681-a00a-838c9388cfe8">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="CavemanTcp.dll" />
</inputassembly>
<inputassembly refid="75176245-be9c-450b-b68a-878bff8bf51a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="CsvHelper.dll" />
</inputassembly>
<inputassembly refid="16c2e47d-0170-4a33-bc31-1d97d021bb5d">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="DnsClient.dll" />
</inputassembly>
<inputassembly refid="ba0d0ec2-a7da-4b55-9409-e2fb34ed45f2">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Google.Protobuf.dll" />
</inputassembly>
<inputassembly refid="df591eb9-0816-47c5-a869-3ac41b3611c4">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="HttpServerLite.dll" />
</inputassembly>
<inputassembly refid="56b0c337-902f-4a99-b0f9-c78a8989d37a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="IpMatcher.dll" />
</inputassembly>
<inputassembly refid="2c1d4661-b740-491b-a9c7-0ab81f686612">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="KeraLua.dll" />
</inputassembly>
<inputassembly refid="794877c9-4ede-4a5d-826e-634289672ee2">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Microsoft.Extensions.Logging.Abstractions.dll" />
</inputassembly>
<inputassembly refid="164f6b24-38c1-4a23-9c04-bbdef42b8f98">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="MongoDB.Bson.dll" />
</inputassembly>
<inputassembly refid="c99724b1-c389-4524-afb2-eb102c333d4a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="MongoDB.Driver.dll" />
</inputassembly>
<inputassembly refid="7d96e1ea-bbf7-43b1-a538-41493fb3871c">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Newtonsoft.Json.dll" />
</inputassembly>
<inputassembly refid="17cea055-f817-486d-aa3a-1e1afbe52764">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="NLua.dll" />
</inputassembly>
<inputassembly refid="c5299b3b-de5c-4470-b57f-70b04e714b9b">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Pastel.dll" />
</inputassembly>
<inputassembly refid="04df18de-2ea9-4bf6-96e6-1a52d414729a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="RegexMatcher.dll" />
</inputassembly>
<inputassembly refid="489010cf-b982-47d2-aebb-b2ccaf6e3f57">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="SharpCompress.dll" />
</inputassembly>
<inputassembly refid="8b2b943b-7677-4533-a1e5-15edfa90bd84">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Snappier.dll" />
</inputassembly>
<inputassembly refid="3fed8738-cc79-4768-94e9-209f629f5a4d">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="SQLite-net.dll" />
</inputassembly>
<inputassembly refid="f91f7184-71b8-45b9-a8ed-eb565daff3f5">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="SQLiteNetExtensions.dll" />
</inputassembly>
<inputassembly refid="e923d72d-35da-435a-aa9a-2d540caff040">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="SQLitePCLRaw.batteries_v2.dll" />
</inputassembly>
<inputassembly refid="bbd50d8d-d78c-404f-8120-5b611a3714c4">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="SQLitePCLRaw.core.dll" />
</inputassembly>
<inputassembly refid="492c3d97-8768-4ac6-aa9b-0f85acc706cd">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="SQLitePCLRaw.provider.e_sqlite3.dll" />
</inputassembly>
<inputassembly refid="77f2e352-f3ad-4fe8-b924-9e27f1184e1a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="Timestamps.dll" />
</inputassembly>
<inputassembly refid="222ebd59-927a-46a3-bdef-e6f61e3fd73f">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="UrlMatcher.dll" />
</inputassembly>
<inputassembly refid="668764f1-b4c4-40ba-8631-24e31fcacc2a">
<option>honoroas</option>
<option>stripoa</option>
<option>library</option>
<option>transformxaml</option>
<file dir="" name="ZstdSharp.dll" />
</inputassembly>
</asmlist>
</package>
</asmlist>
</input>
<output>
<file dir="${configdir}/Dotfuscated" />
</output>
<renaming>
<option>xmlserialization</option>
<excludelist>
<namespace name="Campofinale.Resource" regex="true" />
<type name="ConfigFile" regex="true" />
</excludelist>
<mapping>
<mapoutput overwrite="false">
<file dir="" name="${configdir}/Dotfuscated/Map.xml" />
</mapoutput>
</mapping>
<referencerulelist>
<referencerule rulekey="{6655B10A-FD58-462d-8D4F-5B1316DFF0FF}" />
<referencerule rulekey="{7D9C8B02-2383-420f-8740-A9760394C2C1}" />
<referencerule rulekey="{229FD6F8-5BCC-427b-8F72-A7A413ECDF1A}" />
<referencerule rulekey="{2B7E7C8C-A39A-4db8-9DFC-6AFD38509061}" />
<referencerule rulekey="{494EA3BA-B947-44B5-BEE8-A11CC85AAF9B}" />
<referencerule rulekey="{89769974-93E9-4e71-8D92-BE70E855ACFC}" />
<referencerule rulekey="{4D81E604-A545-4631-8B6D-C3735F793F80}" />
<referencerule rulekey="{62bd3899-7d53-4336-8ca2-4e5dbae187d5}" />
</referencerulelist>
</renaming>
<sos />
<smartobfuscation>
<smartobfuscationreport verbosity="all" overwrite="false" />
</smartobfuscation>
</dotfuscator>