Official Fulqrum Publishing forum

Official Fulqrum Publishing forum (http://forum.fulqrumpublishing.com/index.php)
-   FMB, Mission & Campaign builder Discussions (http://forum.fulqrumpublishing.com/forumdisplay.php?f=203)
-   -   Scripts collection (http://forum.fulqrumpublishing.com/showthread.php?t=26523)

Smokeynz 02-27-2012 08:17 PM

Method for mission listing within script

Method for Random selection of missions

Method for Triggered missions for Player

Method for Objective mission loading for Player

http://forum.1cpublishing.eu/showthread.php?t=30033

Ataros 04-24-2012 10:50 AM

Radar script http://forum.1cpublishing.eu/showpos...4&postcount=83

Gunnery practice mission http://forum.1cpublishing.eu/showthread.php?t=31460

_79_dev 12-22-2013 01:05 AM

Chat <stas, <tl, ....Interface
 
I found very useful lately IPlayer interface with all its goodies....


Here is example script to execute chat info in good old style

check available commands:

<stats , <guns, <kills, <stats<all, <tl, <te...etc

That is just simple examples but You can convert lot of things from game to it....

If Any one is interested to give it a go on servers let me know if You experience any troubles with it... There is some delay on data read and some things are not working or are just not activated maybe :)

Enjoy...

Code:


//$reference parts/core/Strategy.dll
//$reference parts/core/MySql.Data.dll
//$reference parts/core/System.Data.dll

//$reference parts/core/gamePlay.dll


    #region timer


    long Tick_Mission_Time { get; set; }// Sets the Mission Clock for Time Remaining in Mission.

    Random random = new Random();//Function for Randomising events

    Stopwatch stopWatch = new Stopwatch();

    public string GetTimeElapsed()
    {
        string StringToReturn = "";
        StringToReturn = "";

        TimeSpan ts = stopWatch.Elapsed;

        // Format and display the TimeSpan value.
        string elapsedTime = String.Format("{0:00}h:{1:00}m:{2:00}s", ts.Hours, ts.Minutes, ts.Seconds);


        StringToReturn = StringToReturn + elapsedTime;
        return StringToReturn;

    }



    #endregion



    #region Iplayer stats

    public string GetDictionary<T>(Dictionary<string, T> ds)
    {
        StringBuilder sb = new StringBuilder();
        foreach (string key in ds.Keys)
        {
            T d = ds[key];
            if (sb.Length != 0)
            {
                sb.Append(", ");
            }
            //sb.AppnedFormat("[{0}]={1}", key, d);
            sb.AppendFormat("[{0}]={1}", key, d);
        }
        return sb.ToString();
    }

    public string WritePlayerStatBase(Player player)
    {
        string Stats = "";

        if (player is IPlayer)
        {
            IPlayerStat st = (player as IPlayer).GetBattleStat();
            Stats = (String.Format("Take Offs: [{0}]; " + "Landings:  [{1}];  " + "Deaths:  [{2}]; " + "Bails:  [{3}]; ",
                                      st.takeoffs, st.landings, st.deaths, st.bails));



        }

        return Stats;
    }

    public string WritePlayerStatsGunnery(Player player)
    {
        string Stats = "";

        if (player is IPlayer)
        {
            IPlayerStat st = (player as IPlayer).GetBattleStat();



            if (st.bulletsFire != 0)
            {
                double accuracy = ((st.bulletsHit) / (st.bulletsFire)) * 100;

                Stats = (String.Format("Accuracy:  " + accuracy + " %;" + " Bullets Fired: [{0}]; " + "Bullets Hits: [{1}];  " + "Bullets Air Hits: [{2}];  ",
                                            st.bulletsFire, st.bulletsHit, st.bulletsHitAir));

            }

        }

        return Stats;
    }

    public string WritePlayerStatsKills(Player player)
    {
        string Stats = "";

        if (player is IPlayer)
        {
            IPlayerStat st = (player as IPlayer).GetBattleStat();


            Stats = (String.Format("Plane Kill Types: \"{0}\"; Planes Flown Types: \"{1}\";",
                            st.kills, GetDictionary(st.killsTypes), GetDictionary(st.tTotalTypes)));



        }

        return Stats;
    }

    public string WritePlayerStatsBombs(Player player)
    {
        string Stats = "";

        if (player is IPlayer)
        {
            IPlayerStat st = (player as IPlayer).GetBattleStat();


            Stats = (String.Format("Bombs Fired : [{0}]; " + "Bombs Hit : [{1}];  " + "Bombs Weight : [{2}]; " + "g kills: {3}; ",
                                    st.bombsFire, st.bombsHit, st.bombsWeight, st.gkills[0]));



        }

        return Stats;
    }

    #endregion

    #region Time Left

    public string WriteTime_Remaining(Player player)
    {
        string Time_Remaining = "";

        Tick_Mission_Time = ((32 * 60) * 240) - Time.tickCounter();
        var Mission_Time = Tick_Mission_Time / 2000;
        TimeSpan Convert_Ticks = TimeSpan.FromMinutes(Mission_Time);
        Time_Remaining = string.Format("{0:D2}h:{1:D2}m:{2:D2}s", Convert_Ticks.Hours, Convert_Ticks.Minutes, Convert_Ticks.Seconds);




        return Time_Remaining;
    }

    public string WriteTime_Elapsed(Player player)
    {
        string Time_Remaining = GetTimeElapsed();

        return Time_Remaining;
    }


    #endregion

    #region objectives

    public string WriteRedObjectives(Player player)
    {
        string Objectives = Objective_Total_Red; ;




        return Objectives;
    }

    public string WriteBlueObjectives(Player player)
    {
        string Objectives = Objective_Total_Blue;


        return Objectives;
    }

    #endregion


    #region chat


    public void Chat(string line, Player player)
    {
        if (GamePlay is GameDef)
        {
            (GamePlay as GameDef).gameInterface.CmdExec("chat " + line + " TO " + player.Name());
        }
    }


    void Mission_EventChat(IPlayer from, string msg)
    {



        if (msg.StartsWith("<obj"))
        {

            Chat("Red Triggers: " + WriteRedObjectives(from as Player), from);
            //GamePlay.gpHUDLogCenter(new Player[] { from as Player }, "Time Elapsed is " + WriteObjectives(from as Player));


            Chat("Blue Triggers: " + WriteBlueObjectives(from as Player), from);
            //GamePlay.gpHUDLogCenter(new Player[] { from as Player }, "Time Elapsed is " + WriteObjectives(from as Player));

        }
        if (msg.StartsWith("<te"))
        {

            //Chat(Time_Elapsed(from as Player), from);
            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, "Time Elapsed is " + WriteTime_Elapsed(from as Player));

        }

        if (msg.StartsWith("<tl"))
        {

            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, "Time Remaining is " + WriteTime_Remaining(from as Player));

        }
        if (msg.StartsWith("<timeleft"))
        {

            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, "Time Remaining is " + WriteTime_Remaining(from as Player));

        }
        if (msg.StartsWith("<stats"))
        {

            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatBase(from as Player));

        }
        if (msg.StartsWith("<guns"))
        {

            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatsGunnery(from as Player));

        }

        if (msg.StartsWith("<kills"))
        {

            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatsKills(from as Player));

        }

        if (msg.StartsWith("<bombs"))
        {

            GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatsBombs(from as Player));

        }

        if (msg.StartsWith("<stats<all"))
        {
            Timeout(1, () =>
            { GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatBase(from as Player)); }
      );
            Timeout(6, () =>
            { GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatsGunnery(from as Player)); }
        );
            Timeout(10, () =>
            { GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatsKills(from as Player)); }
      );
            Timeout(15, () =>
            { GamePlay.gpHUDLogCenter(new Player[] { from as Player }, WritePlayerStatsBombs(from as Player)); }
      );


        }
    }




    #endregion



All times are GMT. The time now is 02:09 AM.

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