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

Reply
 
Thread Tools Display Modes
  #11  
Old 03-14-2012, 09:57 PM
Smokeynz Smokeynz is offline
Approved Member
 
Join Date: Apr 2011
Posts: 106
Default

yes both work, the difference notwithstanding a little more complex with a void and switch, is it catches the half completed case for your outcome, and also you could add more triggers, like switch(column) for cases of 3, 4, 5, 6 and so on then do different things at different levels.

In this way you can also have other trigger results interact with main counter.
Case selection can be more useful when you want it more flexible for different outcomes.

A bool is true or false, so you really have only 2 states or maybe an elseif as a third. bool true and falses can end up in sequential if statements and you can trap yourself

Last edited by Smokeynz; 03-14-2012 at 10:42 PM.
Reply With Quote
  #12  
Old 03-14-2012, 10:03 PM
hc_wolf hc_wolf is offline
Approved Member
 
Join Date: Jul 2010
Posts: 439
Default

Awesome I understand, I am keen to put your code together and see how it works. Will try tonight thanks Smokeynz
__________________
__________________
Win7, 64bit Ultra
Asus P8P67Pro MB
Intel i7-2600K
Coursair 16GB (4x 4GB), DDR3-1600MHz
Gainward Nvidia 580GTX 3GB DDR5
850-Watt Modular Power Supply
WIN7 and COD on Gskill SSD 240GB
40" Panasonic LCD
TrackIR5 +
Thrustmaster Warthog stick, throttle & pedals
Reply With Quote
  #13  
Old 03-15-2012, 08:43 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

Made some test with the TGroupDestroyed trigger
Found a additional problem with the TGroupDestroyed trigger, the trigger is only active before the group reached the endpoint. On the endpoint the trigger is automaticaly disabled. Seems to be a feature and not a bug, but i think its good to know.

One of my test the 0_Chief had the shortest way (few meters), i don't destroy any target, only fly around. After the trigger is disabled automatically it no longer possible to activate the trigger.
Server: Des_1 Trigger: True
Server: Des_2 Trigger: True
Server: Des_3 Trigger: True
Server: --------------------------
Server: Des_1 Trigger: True
Server: Des_2 Trigger: True
Server: Des_3 Trigger: True
Server: --------------------------
Server: Des_1 Trigger: True
Server: Des_2 Trigger: True
Server: Des_3 Trigger: True
Server: --------------------------
Server: Des_1 Trigger: True
Server: Des_2 Trigger: True
Server: Des_3 Trigger: True
Server: --------------------------
Server: Des_1 Trigger: False
Server: Des_2 Trigger: True
Server: Des_3 Trigger: True
Server: --------------------------
Server: Die Schlacht ist beendet.


My testscript and mission, the script shows the state of trigger every 10sec. :

Code:
[PARTS]
  core.100
  bob.100
[MAIN]
  MAP Land$English_Channel_1940
  BattleArea 251703 183294 91819 60561 10000
  TIME 12
  WeatherIndex 0
  CloudsHeight 1000
  BreezeActivity 10
  ThermalActivity 10
  player BoB_LW_LG2_I.000
[GlobalWind_0]
  Power 3.000 0.000 0.000
  BottomBound 0.00
  TopBound 1500.00
  GustPower 5
  GustAngle 45
[splines]
[AirGroups]
  BoB_LW_LG2_I.01
[BoB_LW_LG2_I.01]
  Flight0  1
  Class Aircraft.Bf-109E-4
  Formation FINGERFOUR
  CallSign 26
  Fuel 100
  Weapons 1
  Skill 0.3 0.3 0.3 0.3 0.3 0.3 0.3 0.3
[BoB_LW_LG2_I.01_Way]
  NORMFLY 288810.19 211014.55 500.00 300.00
  NORMFLY 290995.02 216329.47 500.00 300.00
[CustomChiefs]
[Chiefs]
  0_Chief Vehicle.AEC_Matador gb 
  2_Chief Vehicle.AEC_Matador gb 
  1_Chief Vehicle.AEC_Matador gb 
[0_Chief_Road]
  291352.13 215913.05 38.40  0 2 4.17
  291328.78 215953.20 38.40
[2_Chief_Road]
  291173.38 215887.72 38.40  0 5 2.08
  S 2563 0 0.80 40.00 P 291185.31 215916.13
  S 2563 0 0.62 20.00 P 291263.63 216119.81
  S 2563 0 0.24 20.00 P 291455.81 216619.78
  291470.13 216668.56 38.40
[1_Chief_Road]
  291638.69 216413.20 38.40  0 7 4.17
  S 2564 0 0.25 20.00 P 291552.34 216412.75
  S 2564 0 0.32 20.00 P 291449.75 216409.33
  S 2564 0 0.50 20.00 P 291139.50 216399.00
  S 2562 0 0.58 20.00 P 291026.44 216393.27
  S 2562 0 0.84 40.00 P 290816.22 216703.83
  290805.72 216727.70 38.40
[Stationary]
[Buildings]
[BuildingsLinks]
[Trigger]
  Des_1 TGroupDestroyed 0_Chief 50
  Des_2 TGroupDestroyed 1_Chief 50
  Des_3 TGroupDestroyed 2_Chief 50
Code:
using System;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using maddox.game;
using maddox.game.world;

public class Mission : AMission
{
    Stopwatch MessageTimer = new Stopwatch();

    public override void OnBattleStarted()
    {
        base.OnBattleStarted();

        MessageTimer.Start();
        MissionNumberListener = -1;
    }


    public override void OnActorDead(int missionNumber, string shortName, AiActor actor, List<DamagerScore> damages)
    {
        base.OnActorDead(missionNumber, shortName, actor, damages);
        GamePlay.gpLogServer(null, "Actor: {0}", new object[] { actor.Name() });
    }


    public override void OnTickGame()
    {
        base.OnTickGame();

        if (MessageTimer.Elapsed.TotalSeconds >= 10)
        {
            GamePlay.gpLogServer(null, "Des_1 Trigger: {0}", new object[] { GamePlay.gpGetTrigger("Des_1").Enable.ToString() });
            GamePlay.gpLogServer(null, "Des_2 Trigger: {0}", new object[] { GamePlay.gpGetTrigger("Des_2").Enable.ToString() });
            GamePlay.gpLogServer(null, "Des_3 Trigger: {0}", new object[] { GamePlay.gpGetTrigger("Des_3").Enable.ToString() });
            GamePlay.gpLogServer(null, "--------------------------", null);
            MessageTimer.Restart();
        }
    }


    public override void OnTrigger(int missionNumber, string shortName, bool active)
    {
        base.OnTrigger(missionNumber, shortName, active);
        
        GamePlay.gpLogServer(null, "Trigger: {0}", new object[] { shortName });
        GamePlay.gpHUDLogCenter(null, "Trigger: {0}", new object[] { shortName });

        GamePlay.gpGetTrigger(shortName).Enable = false;
    }

}
Reply With Quote
  #14  
Old 03-15-2012, 07:10 PM
Smokeynz Smokeynz is offline
Approved Member
 
Join Date: Apr 2011
Posts: 106
Default

Interesting, although not unexpected considering the detroyed trigger task is to activate on object destroyed, I mean how many times must it be kaput!

Probably a worth while exercise to look at all triggers in a similar way to see what "features" they have.

For example, for the pass through trigger, from what I've seen it can be handled in a number of ways.

if (shortName.Equals(shortName) && active)
{
//do somthing
GamePlay.gpGetTrigger(shortName).Enable = false;
}

if you use only the following ,You can use the trigger in both true and false and it is always live.

if (shortName.Equals(shortName))
{
//do somthing
}


if you use only the following , it appears to only activate on true
if (shortName.Equals(shortName) && active)
{
//do somthing
}

if you use only the following , it appears to only activate on true and disabled after use

if (shortName.Equals(shortName) && active)
{
//do somthing
GamePlay.gpGetTrigger(shortName).Enable = false;
}

So with that in mind, maybe leaving the following out of the destroy trigger it will stay live.
GamePlay.gpGetTrigger(shortName).Enable = false;
Reply With Quote
  #15  
Old 03-16-2012, 04:06 AM
hc_wolf hc_wolf is offline
Approved Member
 
Join Date: Jul 2010
Posts: 439
Default

That is a very good point. I have completed the scripting and have it working for the moment, and is now uploaded on the ATAG test system (Destroy or defend the convoys).

But this find up here could tidy up the script a little or make for easier implementation.



I think i have to read the above or draw some diagrams to get my head around it hehehe. Will run your test tonight
__________________
__________________
Win7, 64bit Ultra
Asus P8P67Pro MB
Intel i7-2600K
Coursair 16GB (4x 4GB), DDR3-1600MHz
Gainward Nvidia 580GTX 3GB DDR5
850-Watt Modular Power Supply
WIN7 and COD on Gskill SSD 240GB
40" Panasonic LCD
TrackIR5 +
Thrustmaster Warthog stick, throttle & pedals
Reply With Quote
Reply


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 05:35 PM.


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