mirror of
https://git.muiegratis.online/suikoakari/Campofinale
synced 2025-12-13 10:04:34 +01:00
scene manager "test"
This commit is contained in:
@@ -279,6 +279,7 @@ namespace Campofinale.Game
|
||||
{
|
||||
return entities.FindAll(c => c is not EntityCharacter);
|
||||
}
|
||||
|
||||
public void Unload()
|
||||
{
|
||||
List<ulong> guids = new();
|
||||
@@ -375,6 +376,7 @@ namespace Campofinale.Game
|
||||
// e.spawned = true;
|
||||
// GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { e }));
|
||||
});
|
||||
|
||||
UpdateShowEntities();
|
||||
|
||||
|
||||
@@ -393,38 +395,50 @@ namespace Campofinale.Game
|
||||
SpawnEntity(e);
|
||||
}
|
||||
|
||||
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { en}));
|
||||
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { en }));
|
||||
}
|
||||
public void UpdateShowEntities()
|
||||
{
|
||||
|
||||
foreach(Entity en in GetEntityExcludingChar())
|
||||
List<Entity> toSpawn = new();
|
||||
foreach(Entity e in GetEntityExcludingChar())
|
||||
{
|
||||
float minDis = 100;
|
||||
if(e.spawned==false && (activeScripts.Contains(e.belongLevelScriptId) || e.belongLevelScriptId==0))
|
||||
{
|
||||
toSpawn.Add(e);
|
||||
e.spawned= true;
|
||||
}
|
||||
|
||||
//todo new system
|
||||
if (en.Position.DistanceXZ(GetOwner().position) < minDis)
|
||||
{
|
||||
if (!en.spawned)
|
||||
{
|
||||
SpawnEntity(en);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
/*if (en.spawned)
|
||||
{
|
||||
|
||||
en.spawned = false;
|
||||
GetOwner().Send(new PacketScObjectLeaveView(GetOwner(), new List<ulong>() { en.guid }));
|
||||
en.Position=en.BornPos;
|
||||
en.Rotation = en.Rotation;
|
||||
}*/
|
||||
}
|
||||
}
|
||||
if(toSpawn.Count > 0)
|
||||
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), toSpawn));
|
||||
|
||||
/* foreach(Entity en in GetEntityExcludingChar())
|
||||
{
|
||||
float minDis = 100;
|
||||
|
||||
//todo new system
|
||||
if (en.Position.DistanceXZ(GetOwner().position) < minDis)
|
||||
{
|
||||
if (!en.spawned)
|
||||
{
|
||||
SpawnEntity(en);
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
/*if (en.spawned)
|
||||
{
|
||||
|
||||
en.spawned = false;
|
||||
GetOwner().Send(new PacketScObjectLeaveView(GetOwner(), new List<ulong>() { en.guid }));
|
||||
en.Position=en.BornPos;
|
||||
en.Rotation = en.Rotation;
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
public Player GetOwner()
|
||||
|
||||
@@ -127,7 +127,10 @@ namespace Campofinale.Packets.Cs
|
||||
return;
|
||||
}
|
||||
session.Send(new PacketScSyncBaseData(session));
|
||||
|
||||
session.Send(ScMsgId.ScSceneClientIdInfo, new ScSceneClientIdInfo()
|
||||
{
|
||||
|
||||
});
|
||||
session.Send(new PacketScItemBagScopeSync(session, ItemValuableDepotType.Weapon));
|
||||
session.Send(new PacketScItemBagScopeSync(session, ItemValuableDepotType.WeaponGem));
|
||||
session.Send(new PacketScItemBagScopeSync(session, ItemValuableDepotType.Equip));
|
||||
|
||||
@@ -26,12 +26,14 @@ namespace Campofinale.Packets.Cs
|
||||
State = 3
|
||||
};
|
||||
|
||||
|
||||
session.Send(ScMsgId.ScSceneLevelScriptStateNotify, rsp);
|
||||
if (!session.sceneManager.GetCurScene().activeScripts.Contains(req.ScriptId))
|
||||
{
|
||||
session.sceneManager.GetCurScene().activeScripts.Add(req.ScriptId);
|
||||
session.sceneManager.GetCurScene().UpdateShowEntities();
|
||||
}
|
||||
session.Send(ScMsgId.ScSceneLevelScriptStateNotify, rsp);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user