|
#1
|
|||
|
|||
Script needed
Hi all
I need a script for a small DF mission I have made. I have 4 triggers. There are 4 trigger names which are the same for trigger and action. 1. Ju87s spawn after 600 seconds 2. Blenheims spawn after 900 seconds 3. A Bf108 spawns after 1200 seconds 4. If the Bf108 is 50%+ destroyed some 109s spawn in. The best I can do is the following but it won't work in mission: using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); if ("Blenheims".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("Blenheims"); //same as YourTriggerName GamePlay.gpLogServer(null, " RAF bomber group spawned ", new object[] { }); //Testmessage if (action != null) { action.Do(); } GamePlay.gpGetTrigger(shortName).Enable = false; } } } public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); if ("Ju87s".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("Ju87s"); //same as YourTriggerName GamePlay.gpLogServer(null, " German bomber group spawned ", new object[] { }); //Testmessage if (action != null) { action.Do(); } GamePlay.gpGetTrigger(shortName).Enable = false; } } } public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); if ("Bf108".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("Bf108"); //same as YourTriggerName GamePlay.gpLogServer(null, " German air group spawned ", new object[] { }); //Testmessage if (action != null) { action.Do(); } GamePlay.gpGetTrigger(shortName).Enable = false; } } } public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); if ("Bf109s".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("Bf109s"); //same as YourTriggerName GamePlay.gpLogServer(null, " Eeek - huns in the sun! ", new object[] { }); //Testmessage if (action != null) { action.Do(); } GamePlay.gpGetTrigger(shortName).Enable = false; } } } Any suggested changes? Hood |
#2
|
|||
|
|||
you only need one instance of the "public overide void on trigger" with all four triggers contained within it.
am doing this from a phone so can't paste an example for you. should have computer/ internet access tomorrow if you haven't figured it out by then. |
#3
|
|||
|
|||
Quote:
I'll need an example - I have a HUGE blind spot when it comes to coding. Thanks Hood |
#4
|
|||
|
|||
ok, new modem and I have internet
you need to have something like this example with 4 triggers in Code:
using System; using maddox.game; using maddox.game.world; using System.Collections.Generic; public class Mission : AMission { public override void OnTrigger(int missionNumber, string shortName, bool active) { base.OnTrigger(missionNumber, shortName, active); if ("41".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("41"); if (action != null) { action.Do(); } GamePlay.gpHUDLogCenter("41"); GamePlay.gpGetTrigger(shortName).Enable = false; } if ("46".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("46"); if (action != null) { action.Do(); } GamePlay.gpHUDLogCenter("46"); GamePlay.gpGetTrigger(shortName).Enable = false; } if ("605".Equals(shortName) && active) { AiAction action = GamePlay.gpGetAction("605"); if (action != null) { action.Do(); } GamePlay.gpHUDLogCenter("605"); GamePlay.gpGetTrigger(shortName).Enable = false; } if (GamePlay.gpGetTrigger("mis").Active) { end = true; //GamePlay.gpHUDLogCenter("!"); } } } I don't think I've made any errors but I haven't tested this, just cut out a trigger section from one of my campaigns and plugged it into the structure you gave (Amission etc) good luck |
#5
|
|||
|
|||
Thanks. I think I need one extra section but will copy and paste.
Thanks again Hood |
#6
|
|||
|
|||
there are actually 4 triggers- just the last one
Code:
if (GamePlay.gpGetTrigger("mis").Active) { end = true; //GamePlay.gpHUDLogCenter("!"); } You using notepad++/visual studio? - these will help with 'bracket pairing' and finding line numbers for any errors generated |
|
|