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 09-09-2011, 01:49 PM
SNAFU SNAFU is offline
Approved Member
 
Join Date: Feb 2011
Posts: 324
Default

Thank you indeed Kodiak! I will try this as soon as I am home again (should not be before Sunday evening).

If you tell me how to extend this script with a kind of death-penalty (maybe "You are on Cloud 7 - Wait for the bells!")?

As a return I could offer a personalized 109 skin, maybe not the best, but certainly unique...
__________________
http://cornedebrouwer.nl/cf48e
Reply With Quote
  #12  
Old 09-09-2011, 03:27 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

Corrected Script after Ataros hint with bail out:
if the player bailed out OnPlaceLeave is also called and then OnPlaceEnter is called but the Actor is null. So i remove the player from prison if that's the case.

Code:
using System;
using maddox.game;
using maddox.game.world;
using System.Collections.Generic;


public class Mission : AMission
{

    const int TotalArrestTime = 30;  // Time in seconds

    public class prisonCell
    {
        public Player Prisoner { get; set; }
        public DateTime JailTime { get; set; }
        public bool Removable { get; set; }
    }

    public List<prisonCell> PrisonCamp = new List<prisonCell>();


    public override void OnPlaceEnter(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceEnter(player, actor, placeIndex);

        if (actor == null) // if player bailed out the actor is null so remove him from prison
        {
            if (PrisonCamp.Count != 0)
            {
                foreach (prisonCell pri in PrisonCamp)
                {
                    if (pri.Prisoner == player)
                    {
                            pri.Removable = true;
                    }
                }
                PrisonCamp.RemoveAll(item => item.Removable == true);
            }
        }

        if (PrisonCamp.Count != 0)
        {
            foreach (prisonCell pri in PrisonCamp)
            {
                if (pri.Prisoner == player)
                {
                    TimeSpan ArrestTime = DateTime.Now.Subtract(pri.JailTime);

                    if (ArrestTime.TotalSeconds < TotalArrestTime)
                    {
                        GamePlay.gpLogServer(null, "Player: {0} get a {1} sec. penalty for leaving Airplane in flight\n", new object[] { player.Name(), TotalArrestTime });
                        GamePlay.gpHUDLogCenter(new Player[] { player }, "{0} you are under Arrest!", new object[] { player.Name() });
                        (actor as AiAircraft).hitNamed(part.NamedDamageTypes.FuelPumpFailure);
                    
                    }
                    else
                    {
                        pri.Removable = true;
                    }
                    
                }
            }

            PrisonCamp.RemoveAll(item => item.Removable == true);
        }
    }

    public override void OnPlaceLeave(Player player, AiActor actor, int placeIndex)
    {
        base.OnPlaceLeave(player, actor, placeIndex);

        if ((actor as AiAircraft).IsAirborne())
        {

            prisonCell NewPrisoner = new prisonCell();
            NewPrisoner.Prisoner = player;
            NewPrisoner.JailTime = DateTime.Now;

            PrisonCamp.Add(NewPrisoner);
        }
    }
}

Last edited by FG28_Kodiak; 09-09-2011 at 03:49 PM.
Reply With Quote
  #13  
Old 09-09-2011, 03:31 PM
Ze-Jamz Ze-Jamz is offline
Approved Member
 
Join Date: Jan 2011
Location: On your six!!
Posts: 2,302
Default

So for simpletons what does this mean..

A: If player bails out from plane after taking Dmg =?
B: If player creates another plane after Dmg which AI now fly the plane =?

Thanks for your work ~S~
Reply With Quote
  #14  
Old 09-09-2011, 03:47 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

After bailing the plane should hit the ground.
If the player leaves the plane and creates a new one the ai gets active. Or you destroy() the plane via script.
Reply With Quote
  #15  
Old 09-09-2011, 03:54 PM
SNAFU SNAFU is offline
Approved Member
 
Join Date: Feb 2011
Posts: 324
Default

Thank you. Implemented this into my mission script and put it online, currently running on the III/JG27 Server. Unfortunatly I have no chance to test it.
But I got it to the "plane-destroy-after-ESCleaving-script" with its OnPlaceLeave- and OnPlayerEnter- Call-ups, without putting out error messages, so far.
So the plane is destroyed after abandoming and the player should get 10mins break, by blocked fuel pump in the next 10mins (I increased the time and that was what I thought the script does)

If someone is able to test it on our server, please report back.


My Mission-Skript looks following:

...Well, 169574 characters and only 50000 allowed....
__________________
http://cornedebrouwer.nl/cf48e

Last edited by SNAFU; 09-09-2011 at 03:57 PM.
Reply With Quote
  #16  
Old 09-09-2011, 04:16 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

Testing now - at the moment i've to wait 10min
Reply With Quote
  #17  
Old 09-09-2011, 04:28 PM
Ataros Ataros is offline
Approved Member
 
Join Date: Jun 2010
Location: USSR
Posts: 2,439
Default

Another suggestion is to print time left for player till he can create new plane on screen.

Is it possible to add the last damager to the chat message for everyone to let everyone know who shot him down?
Reply With Quote
  #18  
Old 09-09-2011, 04:29 PM
Ataros Ataros is offline
Approved Member
 
Join Date: Jun 2010
Location: USSR
Posts: 2,439
Default

Quote:
Originally Posted by SNAFU View Post
My Mission-Skript looks following:

...Well, 169574 characters and only 50000 allowed....
LOL You can attach it as zip or maybe as txt as well
Reply With Quote
  #19  
Old 09-09-2011, 04:43 PM
Ze-Jamz Ze-Jamz is offline
Approved Member
 
Join Date: Jan 2011
Location: On your six!!
Posts: 2,302
Default

Quote:
Originally Posted by Ataros View Post
Another suggestion is to print time left for player till he can create new plane on screen.

Is it possible to add the last damager to the chat message for everyone to let everyone know who shot him down?
Wouldnt that show the last person to get a plink on him to be the killer..I.e gets credited with the kill?
Reply With Quote
  #20  
Old 09-09-2011, 04:51 PM
FG28_Kodiak FG28_Kodiak is offline
Approved Member
 
Join Date: Dec 2009
Location: Swabia->Bavaria->Germany
Posts: 884
Default

@SNAFU
The fuelpump doesn't block!
Haste mal wieder die Klammern durcheinandergebracht?

Quote:
Another suggestion is to print time left for player till he can create new plane on screen.
Is on my todo list

Quote:
Is it possible to add the last damager to the chat message for everyone to let everyone know who shot him down?
Without a problem
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 07:41 AM.


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