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 07-26-2012, 04:48 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

@hc_wolf
BTW this should work for user placed stationary, not for stationaries that are already available on the map (Radars by Dover for example).

This has worked for me without problem:
Code:
    public override void OnStationaryKilled(GroundStationary _stationary, AiDamageInitiator initiator, int eventArgInt)
    {
        base.OnStationaryKilled(_stationary, initiator, eventArgInt);

        Timeout(10, () =>
                        {
                            _stationary.Destroy();
                        }
            );
    }
Reply With Quote
  #12  
Old 07-26-2012, 11:25 PM
hc_wolf hc_wolf is offline
Approved Member
 
Join Date: Jul 2010
Posts: 439
Default

Thanks Kodiak, will give this cut down version a try. If it still does not remove the damaged material I will post the mission and coding for Podvoxx on the supplied forum link.

Is podvoxx on the Dev team? I am been in direct comms with one of the others.

I have a few sample missions I can send them that exploit or show the code where particular odd events are occurring.

Including a Mesh error that repeats in server console with the Balloons.



Oh and just to be clear about the Radars destroyed parts not removing from Map. These are radars that are static objects imported in by a mission loading into another mission. I am not talking about destroying the pre-loaded radars on the map like Dover. These are radars placed on map from FMB and loaded into main mission from sub mission.

I wil post a mission on here http://www.sukhoi.ru/forum/showthrea...=68629&page=25

Now I know where the programmers are chatting on Sukhoi I will start posting my mission bug examples there for us all to discuss.
__________________
__________________
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

Last edited by hc_wolf; 07-26-2012 at 11:47 PM.
Reply With Quote
  #13  
Old 07-27-2012, 12:26 PM
Ataros Ataros is offline
Approved Member
 
Join Date: Jun 2010
Location: USSR
Posts: 2,439
Default

naryv is a member of the dev team in that thread.
Reply With Quote
  #14  
Old 08-05-2012, 11:48 PM
hc_wolf hc_wolf is offline
Approved Member
 
Join Date: Jul 2010
Posts: 439
Default

Hi Kodiak,

Still not getting it to work.

I tried a couple of different methods, but The static Radar object when bombed keeps its broken bits laying around. So radar after Radar build on top od broken parts.

Below the idea is that the static object is placed in mission and then bombed.

It is destroyed and after a few seconds the destroyed parts should dissapear. Then 10 seconds later a new mission is called to spawn in a new Radar.

How can the below code and extra code be used to remove broken parts of radar once object is destroyed?

Code:
        if ("DunkirkRadar".Equals(shortName) && active)			//Trigger 1
        {

            GamePlay.gpHUDLogCenter("Dunkirk Radar has been Damaged - Repairs to begin immediately (AT24)");
            GamePlay.gpLogServer(null, "Dunkirk Radar has been Damaged - Repairs to begin immediately (AT24)", new object[] { });
            Timeout(10, () =>
            {
                //  OnStationaryKilled(_stationary.Type.Equals("Radar");

                /*    destroyGroundActor(AiGroundActorType.Radar, 1);
                    destroyGroundActor(AiGroundActorType.RadioBeacon, 1);
                    destroyGroundActor(AiGroundActorType.Unknown, 1);
                    destroyGroundActor(AiGroundActorType.RadioBeamProjector, 1);*/
                GamePlay.gpHUDLogCenter("Dunkirk Radar has been repaired and is fully operational");
                GamePlay.gpLogServer(null, "Dunkirk Radar has been repaired and is fully operational", new object[] { });
                GamePlay.gpPostMissionLoad("missions/Multi/Dogfight/Atag/Channel_Command/Supply/5DunkirkRadar.mis"); // Submission of this type the path correctly				
                GamePlay.gpGetTrigger(shortName).Enable = false;
            });
        }
__________________
__________________
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
  #15  
Old 08-06-2012, 07:28 AM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

I use this to remove statics:
Code:
using System;
using System.Collections;
using System.Collections.Generic;
using maddox.GP;
using maddox.game;
using maddox.game.world;


public class Mission : AMission
{

    private static string userdocpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    private static string FILE_PATH = userdocpath + @"\1C SoftClub\il-2 sturmovik cliffs of dover\missions\Test\";
    private static string MISSION = FILE_PATH + "StaticTestSub.mis";

    Dictionary<GroundStationary, int> StationaryMisRelation = new Dictionary<GroundStationary, int>();



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

        MissionNumberListener = -1;
    }


    public override void OnMissionLoaded(int missionNumber)
    {
        base.OnMissionLoaded(missionNumber);

        GamePlay.gpLogServer(null, "OnMissionLoaded: {0}", new object[] { missionNumber });

        foreach (GroundStationary gs  in GamePlay.gpGroundStationarys())
        {
            if (!StationaryMisRelation.ContainsKey(gs))
                StationaryMisRelation[gs] = missionNumber;
        }
    }


    private void RemoveStationary(int missionNumber)
    {
        List<GroundStationary> KeysToRemove = new List<GroundStationary>();

        foreach (KeyValuePair<GroundStationary, int> kvp in StationaryMisRelation)
        {
            if (kvp.Value == missionNumber)
            {
                kvp.Key.Destroy();
                KeysToRemove.Add(kvp.Key);
            }
        }


        foreach (GroundStationary groundStationary in KeysToRemove)
        {
            StationaryMisRelation.Remove(groundStationary);
        }
        
    }

    public override void OnTrigger(int missionNumber, string shortName, bool active)
    {
        base.OnTrigger(missionNumber, shortName, active);

        if (shortName.Equals("MisLoad"))
        {
            GamePlay.gpLogServer(null, "MisLoad: {0}", new object[] { MISSION });
            GamePlay.gpPostMissionLoad(MISSION);
        }


        if (shortName.Equals("Trigger"))
        {
            
            foreach (KeyValuePair<GroundStationary, int> kvp in StationaryMisRelation)
            {
                GamePlay.gpLogServer(null, "Stationary: {0}; MissNr.: {1}", new object[] {kvp.Key.Title, kvp.Value});
            }
        }


        if (shortName.Equals("DeleteTrigger")) // from submission
        {
            GamePlay.gpLogServer(null, "DeleteTrigger MissionNr.: {0}", new object[] { missionNumber });

            RemoveStationary(missionNumber);
        }
    }

}
Explanation:
I store the GroundStationary with the missionNumber in a Dictionary. If a new (sub)mission is loaded i check in OnMissionLoaded if there are new Stationaries created if so i store them in the dictionary with their missionNumber.
If the submission triggers (in this example) the "DeleteTrigger" i remove all statics with this missionNumber.
Reply With Quote
  #16  
Old 08-06-2012, 08:29 PM
hc_wolf hc_wolf is offline
Approved Member
 
Join Date: Jul 2010
Posts: 439
Default

Thanks Kodiak. A bit of a fiddle around but I have it working perfect now in a bigger mission. I had to duplicate a trigger in Main mission and sub mission to get the result I want otherwise it destroyed everything in the main mission.

Thanks.
__________________
__________________
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

Thread Tools
Display Modes

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 02:04 PM.


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