コード例 #1
0
        protected override JobHandle OnUpdate(JobHandle inputDeps)
        {
            var entityType        = GetArchetypeChunkEntityType();
            var damagehistoryType = GetArchetypeChunkBufferType <DamageHistory>();

            var historyJob = new HistoryJob
            {
                Time              = Time.time,
                DamageEvents      = m_DamageEventsQuery.ToComponentDataArray <DamageEvent>(Allocator.TempJob),
                EntityType        = entityType,
                DamageHistoryType = damagehistoryType
            };
            var historyHandle = historyJob.Schedule(m_HistoryQuery, inputDeps);

            var addDamageStackJob = new AddDamageStackJob
            {
                ECB = m_EndSim.CreateCommandBuffer().ToConcurrent(),
                DamageStackBuffer = GetBufferFromEntity <DamageStack>()
            };
            var addDamageStackHandle = addDamageStackJob.Schedule(this, historyHandle);

            m_EndSim.AddJobHandleForProducer(addDamageStackHandle);

            var processDamageStackJob    = new ProcessDamage();
            var processDamageStackHandle = processDamageStackJob.Schedule(this, addDamageStackHandle);

            var tagDeadJob = new TagDeadJob {
                EntityCommandBuffer = m_EndSim.CreateCommandBuffer().ToConcurrent()
            };
            var tagDeadHandle = tagDeadJob.Schedule(this, processDamageStackHandle);

            m_EndSim.AddJobHandleForProducer(tagDeadHandle);
            return(tagDeadHandle);
        }
コード例 #2
0
 public static void NetPackageDamageEntity_ProcessPackage_Prefix(ref NetPackageDamageEntity __instance)
 {
     if (__instance.Sender != null && ProcessDamage.Exec(__instance))
     {
         if (ProcessDamage.bFatal(__instance))
         {
             ProcessDamage.bFatal(__instance) = false;
         }
         ProcessDamage.strength(__instance) = 0;
     }
 }
コード例 #3
0
ファイル: Injections.cs プロジェクト: usnail/7dtd-ServerTools
 public static bool ChangeBlocks_Prefix(GameManager __instance, string persistentPlayerId, List <BlockChangeInfo> _blocksToChange)
 {
     try
     {
         return(ProcessDamage.ProcessBlockDamage(__instance, persistentPlayerId, _blocksToChange));
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in Injections.ChangeBlocks_Prefix: {0}", e.Message));
     }
     return(true);
 }
コード例 #4
0
ファイル: Injections.cs プロジェクト: usnail/7dtd-ServerTools
 public static bool DamageResponse_Prefix(EntityAlive __instance, DamageResponse _dmResponse)
 {
     try
     {
         if (ProcessDamage.Damage_Detector || Zones.IsEnabled || Lobby.IsEnabled)
         {
             return(ProcessDamage.ProcessPlayerDamage(__instance, _dmResponse));
         }
     }
     catch (Exception e)
     {
         Log.Out(string.Format("[SERVERTOOLS] Error in Injections.DamageResponse_Prefix: {0}", e.Message));
     }
     return(true);
 }
コード例 #5
0
ファイル: DamageHandler.cs プロジェクト: koenenalexander/Hive
 public void AddHandler(ProcessDamage handler)
 {
     handlers.Add(handler);
 }