mirror of
https://git.muiegratis.online/suikoakari/Campofinale
synced 2025-12-12 17:44:37 +01:00
bug fix
This commit is contained in:
@@ -23,6 +23,7 @@ namespace Campofinale.Game.Entities
|
|||||||
public int sceneNumId;
|
public int sceneNumId;
|
||||||
public bool spawned = false;
|
public bool spawned = false;
|
||||||
public bool defaultHide = false;
|
public bool defaultHide = false;
|
||||||
|
public bool scriptSpawn = false;
|
||||||
public Entity()
|
public Entity()
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -412,7 +412,7 @@ namespace Campofinale.Game
|
|||||||
|
|
||||||
if(e.spawned==false && (GetActiveScript(e.belongLevelScriptId) || e.belongLevelScriptId==0))
|
if(e.spawned==false && (GetActiveScript(e.belongLevelScriptId) || e.belongLevelScriptId==0))
|
||||||
{
|
{
|
||||||
if(currentAreaRange.IsObjectInside(e.Position))
|
if(currentAreaRange.IsObjectInside(e.Position) || sceneNumId==87)
|
||||||
if (!e.defaultHide)
|
if (!e.defaultHide)
|
||||||
{
|
{
|
||||||
toSpawn.Add(e);
|
toSpawn.Add(e);
|
||||||
@@ -435,7 +435,7 @@ namespace Campofinale.Game
|
|||||||
List<ulong> toDespawn=new();
|
List<ulong> toDespawn=new();
|
||||||
foreach(Entity en in GetEntityExcludingChar().FindAll(e=> e.spawned==true))
|
foreach(Entity en in GetEntityExcludingChar().FindAll(e=> e.spawned==true))
|
||||||
{
|
{
|
||||||
if (!currentAreaRange.IsObjectInside(en.Position))
|
if (!currentAreaRange.IsObjectInside(en.Position) && en.scriptSpawn==false && sceneNumId != 87)
|
||||||
{
|
{
|
||||||
toDespawn.Add(en.guid);
|
toDespawn.Add(en.guid);
|
||||||
en.spawned = false;
|
en.spawned = false;
|
||||||
@@ -458,7 +458,7 @@ namespace Campofinale.Game
|
|||||||
});
|
});
|
||||||
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), GetEntityExcludingChar().FindAll(e => e.belongLevelScriptId == id)));
|
GetOwner().Send(new PacketScObjectEnterView(GetOwner(), GetEntityExcludingChar().FindAll(e => e.belongLevelScriptId == id)));
|
||||||
}
|
}
|
||||||
public void SpawnEnemy(ulong v)
|
public void SpawnEnemy(ulong v, bool scriptSpawn=false)
|
||||||
{
|
{
|
||||||
LevelScene lv_scene = ResourceManager.GetLevelData(sceneNumId);
|
LevelScene lv_scene = ResourceManager.GetLevelData(sceneNumId);
|
||||||
LevelEnemyData en = lv_scene.levelData.enemies.Find(e=>e.levelLogicId == v);
|
LevelEnemyData en = lv_scene.levelData.enemies.Find(e=>e.levelLogicId == v);
|
||||||
@@ -468,11 +468,17 @@ namespace Campofinale.Game
|
|||||||
{
|
{
|
||||||
type = en.entityType,
|
type = en.entityType,
|
||||||
belongLevelScriptId = en.belongLevelScriptId,
|
belongLevelScriptId = en.belongLevelScriptId,
|
||||||
levelLogicId = en.levelLogicId
|
levelLogicId = en.levelLogicId,
|
||||||
|
scriptSpawn = scriptSpawn
|
||||||
};
|
};
|
||||||
entities.Add(entity);
|
entities.Add(entity);
|
||||||
|
Logger.Print($"Enemy Id {v} found on scene {sceneNumId}:{lv_scene.mapIdStr}");
|
||||||
SpawnEntity(entity);
|
SpawnEntity(entity);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.PrintWarn($"Enemy Id {v} not found on scene {sceneNumId}:{lv_scene.mapIdStr}");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void SpawnWaveEnemy(ulong spawnerId, int waveId)
|
public void SpawnWaveEnemy(ulong spawnerId, int waveId)
|
||||||
|
|||||||
@@ -122,7 +122,7 @@ namespace Campofinale.Packets.Cs
|
|||||||
case ScriptActionType.SpawnEnemy:
|
case ScriptActionType.SpawnEnemy:
|
||||||
foreach (ulong id in action.valueUlong)
|
foreach (ulong id in action.valueUlong)
|
||||||
{
|
{
|
||||||
player.sceneManager.GetCurScene().SpawnEnemy(id);
|
player.sceneManager.GetCurScene().SpawnEnemy(id,true);
|
||||||
}
|
}
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user