Fulqrum Publishing Home   |   Register   |   Today Posts   |   Members   |   UserCP   |   Calendar   |   Search   |   FAQ

Go Back   Official Fulqrum Publishing forum > Fulqrum Publishing > IL-2 Sturmovik: Cliffs of Dover > FMB, Mission & Campaign builder Discussions

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
  #7  
Old 10-11-2012, 05:50 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

no it's depend on the damager hits

from Battle Script / strategy.dll AddScoreToInitiator(AiActor actor, AiDamageInitiator initiator, double score):
Code:
        public int AddScoreToInitiator(AiActor actor, AiDamageInitiator initiator, double score)
        {
            DamagerScore item = new DamagerScore(initiator, score, base.Time.current());
            int index = this.damList.victim.IndexOf(actor);
            if (index >= 0)
            {
                List<DamagerScore> list = this.damList.damagers[index];
                int num2 = list.IndexOf(item);
                if (num2 >= 0)
                {
                    DamagerScore local1 = list[num2];
                    local1.score += score;
                    list[num2].time = base.Time.current();
                    return index;
                }
                list.Insert(0, item);
                return index;
            }
            this.damList.victim.Insert(0, actor);
            List<DamagerScore> list2 = new List<DamagerScore> {
                item
            };
            this.damList.damagers.Insert(0, list2);
            return 0;
        }




        public override void OnActorDamaged(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator, NamedDamageTypes damageType)
        {
            switch (damageType)
            {
                case NamedDamageTypes.ChunkSmallDamage:
                case NamedDamageTypes.PartSmallDamage:
                case NamedDamageTypes.WeaponSmallDamage:
                case NamedDamageTypes.EngineSmallDamage:
                case NamedDamageTypes.LifeKeeperPartSmallDamage:
                    this.AddScoreToInitiator(actor, initiator, 0.1);
                    break;

                case NamedDamageTypes.ChunkLargeDamage:
                case NamedDamageTypes.PartLargeDamage:
                case NamedDamageTypes.WeaponLargeDamage:
                case NamedDamageTypes.EngineLargeDamage:
                case NamedDamageTypes.LifeKeeperPartLargeDamage:
                    this.AddScoreToInitiator(actor, initiator, 0.2);
                    break;
            }
            foreach (AMission mission in base.missions)
            {
                if (mission.IsMissionListener(missionNumber))
                {
                    mission.OnActorDamaged(missionNumber, shortName, actor, initiator, damageType);
                }
            }
        }


        public override void OnActorDead(int missionNumber, string shortName, AiActor actor, AiDamageInitiator initiator)
        {
            if ((base.GamePlay.gpPlayer().Place() == actor) && base.GamePlay.gpIsServerSingle())
            {
                base.GamePlay.gpHUDLogCenter("Press Esc to end mission.");
            }
            if (actor is AiPerson)
            {
                initiator = null;
            }
            int index = -1;
            if (initiator != null)
            {
                index = this.AddScoreToInitiator(actor, initiator, 0.5);
            }
            else
            {
                index = this.damList.victim.IndexOf(actor);
            }
            List<DamagerScore> damages = null;
            if (index >= 0)
            {
                damages = this.damList.damagers[index];
            }
            else
            {
                damages = new List<DamagerScore>();
            }
            foreach (AMission mission in base.missions)
            {
                if (mission.IsMissionListener(missionNumber))
                {
                    mission.OnActorDead(missionNumber, shortName, actor, damages);
                }
            }
            this.LogServer_ActorDead(missionNumber, shortName, actor, initiator);
        }

        public override void OnAircraftDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiDamageInitiator initiator, NamedDamageTypes damageType)
        {
            base.OnAircraftDamaged(missionNumber, shortName, aircraft, initiator, damageType);
            this.AddScoreToInitiator(aircraft, initiator, 0.1);
        }


        public override void OnAircraftLimbDamaged(int missionNumber, string shortName, AiAircraft aircraft, AiLimbDamage limbDamage)
        {
            base.OnAircraftLimbDamaged(missionNumber, shortName, aircraft, limbDamage);
            this.AddScoreToInitiator(aircraft, limbDamage.Initiator, 0.2);
        }


        public override void OnPersonHealth(AiPerson person, AiDamageInitiator initiator, float deltaHealth)
        {
            this.AddScoreToInitiator(person, initiator, ((double) deltaHealth) / 255.0);
            base.OnPersonHealth(person, initiator, deltaHealth);
        }

Last edited by FG28_Kodiak; 10-11-2012 at 06:03 AM.
Reply With Quote
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 04:51 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Copyright © 2007 Fulqrum Publishing. All rights reserved.