mirror of
https://github.com/Campofinale/CampofinaleBackup.git
synced 2025-12-16 13:34:37 +00:00
hardcoded stuff and every entity is sent only one time when the distance is lower than 250
This commit is contained in:
parent
4432406caa
commit
e75ada13c0
@ -301,7 +301,7 @@ namespace Campofinale.Game
|
|||||||
|
|
||||||
lv_scene.levelData.interactives.ForEach(en =>
|
lv_scene.levelData.interactives.ForEach(en =>
|
||||||
{
|
{
|
||||||
if (en.defaultHide || GetOwner().noSpawnAnymore.Contains(en.levelLogicId))
|
if (GetOwner().noSpawnAnymore.Contains(en.levelLogicId) && sceneNumId != 87)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -318,7 +318,7 @@ namespace Campofinale.Game
|
|||||||
});
|
});
|
||||||
lv_scene.levelData.factoryRegions.ForEach(en =>
|
lv_scene.levelData.factoryRegions.ForEach(en =>
|
||||||
{
|
{
|
||||||
if (en.defaultHide || GetOwner().noSpawnAnymore.Contains(en.levelLogicId))
|
if (GetOwner().noSpawnAnymore.Contains(en.levelLogicId) && sceneNumId!=87)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -329,11 +329,12 @@ namespace Campofinale.Game
|
|||||||
levelLogicId = en.levelLogicId,
|
levelLogicId = en.levelLogicId,
|
||||||
type = en.entityType,
|
type = en.entityType,
|
||||||
};
|
};
|
||||||
|
|
||||||
entities.Add(entity);
|
entities.Add(entity);
|
||||||
});
|
});
|
||||||
lv_scene.levelData.enemies.ForEach(en =>
|
lv_scene.levelData.enemies.ForEach(en =>
|
||||||
{
|
{
|
||||||
if(en.defaultHide || GetOwner().noSpawnAnymore.Contains(en.levelLogicId)) return;
|
if(GetOwner().noSpawnAnymore.Contains(en.levelLogicId) && sceneNumId != 87) return;
|
||||||
EntityMonster entity = new(en.entityDataIdKey,en.level,ownerId,en.position,en.rotation, sceneNumId, en.levelLogicId)
|
EntityMonster entity = new(en.entityDataIdKey,en.level,ownerId,en.position,en.rotation, sceneNumId, en.levelLogicId)
|
||||||
{
|
{
|
||||||
type=en.entityType,
|
type=en.entityType,
|
||||||
@ -344,7 +345,7 @@ namespace Campofinale.Game
|
|||||||
});
|
});
|
||||||
lv_scene.levelData.npcs.ForEach(en =>
|
lv_scene.levelData.npcs.ForEach(en =>
|
||||||
{
|
{
|
||||||
if (en.defaultHide) return;
|
|
||||||
if (en.npcGroupId.Contains("chr")) return;
|
if (en.npcGroupId.Contains("chr")) return;
|
||||||
EntityNpc entity = new(en.entityDataIdKey,ownerId,en.position,en.rotation, sceneNumId, en.levelLogicId)
|
EntityNpc entity = new(en.entityDataIdKey,ownerId,en.position,en.rotation, sceneNumId, en.levelLogicId)
|
||||||
{
|
{
|
||||||
@ -355,44 +356,67 @@ namespace Campofinale.Game
|
|||||||
};
|
};
|
||||||
entities.Add(entity);
|
entities.Add(entity);
|
||||||
});
|
});
|
||||||
/*GetEntityExcludingChar().ForEach(e =>
|
GetEntityExcludingChar().ForEach(e =>
|
||||||
{
|
{
|
||||||
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { e}));
|
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { e}));
|
||||||
});*/
|
|
||||||
|
});
|
||||||
UpdateShowEntities();
|
UpdateShowEntities();
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
public void SpawnEntity(Entity en,bool spawnedCheck=true)
|
||||||
|
{
|
||||||
|
en.spawned = true;
|
||||||
|
List<Entity> toSpawn = new List<Entity>();
|
||||||
|
toSpawn.Add(en);
|
||||||
|
if (spawnedCheck)
|
||||||
|
{
|
||||||
|
foreach (Entity e in GetEntityExcludingChar().FindAll(e => e.belongLevelScriptId == en.belongLevelScriptId && e.spawned == false))
|
||||||
|
{
|
||||||
|
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}));
|
||||||
|
});
|
||||||
|
UpdateShowEntities();
|
||||||
}
|
}
|
||||||
public void UpdateShowEntities()
|
public void UpdateShowEntities()
|
||||||
{
|
{
|
||||||
foreach(Entity en in GetEntityExcludingChar())
|
foreach(Entity en in GetEntityExcludingChar())
|
||||||
{
|
{
|
||||||
if (en.Position.Distance(GetOwner().position) < 200)
|
if (en.Position.Distance(GetOwner().position) < 250)
|
||||||
{
|
{
|
||||||
if (!en.spawned)
|
if (!en.spawned)
|
||||||
{
|
{
|
||||||
en.spawned = true;
|
SpawnEntity(en);
|
||||||
try
|
|
||||||
{
|
|
||||||
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), new List<Entity>() { en }));
|
|
||||||
}
|
|
||||||
catch(Exception e)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if (en.spawned)
|
|
||||||
|
/*if (en.spawned)
|
||||||
{
|
{
|
||||||
|
|
||||||
en.spawned = false;
|
en.spawned = false;
|
||||||
GetOwner().Send(new PacketScObjectLeaveView(GetOwner(), new List<ulong>() { en.guid }));
|
GetOwner().Send(new PacketScObjectLeaveView(GetOwner(), new List<ulong>() { en.guid }));
|
||||||
en.Position=en.BornPos;
|
en.Position=en.BornPos;
|
||||||
en.Rotation = en.Rotation;
|
en.Rotation = en.Rotation;
|
||||||
}
|
}*/
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -133,8 +133,8 @@ namespace Campofinale.Packets.Cs
|
|||||||
m.TrackMissionId = "";
|
m.TrackMissionId = "";
|
||||||
|
|
||||||
|
|
||||||
session.Send(ScMsgId.ScSyncAllMission, m);
|
// session.Send(ScMsgId.ScSyncAllMission, m);
|
||||||
/* session.Send(ScMsgId.ScSyncAllMission, new ScSyncAllMission()
|
session.Send(ScMsgId.ScSyncAllMission, new ScSyncAllMission()
|
||||||
{
|
{
|
||||||
NewMissionTags =
|
NewMissionTags =
|
||||||
{
|
{
|
||||||
@ -180,9 +180,49 @@ namespace Campofinale.Packets.Cs
|
|||||||
IsComplete=false
|
IsComplete=false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} },
|
||||||
|
{"e0m0_q#2", new Quest()
|
||||||
|
{
|
||||||
|
QuestId="e0m0_q#2",
|
||||||
|
QuestState=(int)QuestState.Available,
|
||||||
|
QuestObjectives =
|
||||||
|
{
|
||||||
|
new QuestObjective()
|
||||||
|
{
|
||||||
|
ConditionId="81736ca7",
|
||||||
|
IsComplete=false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
{"e0m0_q#3", new Quest()
|
||||||
|
{
|
||||||
|
QuestId="e0m0_q#3",
|
||||||
|
QuestState=(int)QuestState.Available,
|
||||||
|
QuestObjectives =
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
{"e0m0_q#4", new Quest()
|
||||||
|
{
|
||||||
|
QuestId="e0m0_q#4",
|
||||||
|
QuestState=(int)QuestState.Available,
|
||||||
|
QuestObjectives =
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
} },
|
||||||
|
{"e0m0_q#5", new Quest()
|
||||||
|
{
|
||||||
|
QuestId="e0m0_q#5",
|
||||||
|
QuestState=(int)QuestState.Available,
|
||||||
|
QuestObjectives =
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
} }
|
} }
|
||||||
}
|
}
|
||||||
});*/
|
});
|
||||||
|
|
||||||
session.Send(new PacketScGachaSync(session));
|
session.Send(new PacketScGachaSync(session));
|
||||||
ScSettlementSyncAll settlements = new ScSettlementSyncAll()
|
ScSettlementSyncAll settlements = new ScSettlementSyncAll()
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
using Campofinale.Game.Entities;
|
using Campofinale.Game.Entities;
|
||||||
using Campofinale.Network;
|
using Campofinale.Network;
|
||||||
using Campofinale.Protocol;
|
using Campofinale.Protocol;
|
||||||
|
using Campofinale.Resource;
|
||||||
|
|
||||||
namespace Campofinale.Packets.Cs
|
namespace Campofinale.Packets.Cs
|
||||||
{
|
{
|
||||||
@ -41,6 +42,59 @@ namespace Campofinale.Packets.Cs
|
|||||||
{
|
{
|
||||||
|
|
||||||
CsSceneLevelScriptEventTrigger req = packet.DecodeBody<CsSceneLevelScriptEventTrigger>();
|
CsSceneLevelScriptEventTrigger req = packet.DecodeBody<CsSceneLevelScriptEventTrigger>();
|
||||||
|
Logger.Print(req.Properties.ToString());
|
||||||
|
if(req.EventName== "#8777e316")
|
||||||
|
{
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#1",
|
||||||
|
QuestState = (int)QuestState.Completed,
|
||||||
|
});
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#2",
|
||||||
|
QuestState = (int)QuestState.Processing,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if(req.EventName== "#6ea2690d")
|
||||||
|
{
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#2",
|
||||||
|
QuestState = (int)QuestState.Completed,
|
||||||
|
});
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#3",
|
||||||
|
QuestState = (int)QuestState.Processing,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (req.EventName == "#bb79de30")
|
||||||
|
{
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#3",
|
||||||
|
QuestState = (int)QuestState.Completed,
|
||||||
|
});
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#4",
|
||||||
|
QuestState = (int)QuestState.Processing,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
if (req.EventName == "#4c76ec3c")
|
||||||
|
{
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#4",
|
||||||
|
QuestState = (int)QuestState.Completed,
|
||||||
|
});
|
||||||
|
session.Send(ScMsgId.ScQuestStateUpdate, new ScQuestStateUpdate()
|
||||||
|
{
|
||||||
|
QuestId = "e0m0_q#5",
|
||||||
|
QuestState = (int)QuestState.Processing,
|
||||||
|
});
|
||||||
|
}
|
||||||
ScSceneUpdateLevelScriptProperty update1 = new()
|
ScSceneUpdateLevelScriptProperty update1 = new()
|
||||||
{
|
{
|
||||||
SceneNumId = req.SceneNumId,
|
SceneNumId = req.SceneNumId,
|
||||||
@ -67,7 +121,7 @@ namespace Campofinale.Packets.Cs
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
session.Send(ScMsgId.ScSceneLevelScriptEventTrigger, rsp);
|
session.Send(ScMsgId.ScSceneLevelScriptEventTrigger, rsp,packet.csHead.UpSeqid);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -689,13 +689,14 @@ namespace Campofinale.Resource
|
|||||||
|
|
||||||
public float ToFloat()
|
public float ToFloat()
|
||||||
{
|
{
|
||||||
int intValueFromBit64 = (int)valueBit64; // Converti long in int
|
int intValueFromBit64 = (int)valueBit64;
|
||||||
float floatValueFromBit64 = BitConverter.ToSingle(BitConverter.GetBytes(intValueFromBit64), 0);
|
float floatValueFromBit64 = (float)BitConverter.Int64BitsToDouble(valueBit64);
|
||||||
|
//float floatValueFromBit64 = BitConverter.ToSingle(BitConverter.GetBytes(intValueFromBit64), 0);
|
||||||
return floatValueFromBit64;
|
return floatValueFromBit64;
|
||||||
}
|
}
|
||||||
public int ToInt()
|
public int ToInt()
|
||||||
{
|
{
|
||||||
int intValueFromBit64 = (int)valueBit64; // Converti long in int
|
int intValueFromBit64 = (int)valueBit64;
|
||||||
|
|
||||||
return intValueFromBit64;
|
return intValueFromBit64;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user