Giter Club home page Giter Club logo

dcs-slmod's People

Contributors

davidp57 avatar mrskortch avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dcs-slmod's Issues

Messages for punish/forgive

Add messages/logging for player activity in deciding to punish or forgive a player. Maybe add an option to make it public or admins/log only.

Teamhit spam

Need to reduce message spam associated with player hitting the same object multiple times or the hit event occurring on the deck of a ship when it shouldn't.

Server telemetry in json format

hi,

it is a feature request to have an ability send telemetry in JSON to a server IP. I have an adapter to translate the current lua table but will be cool to have a native telemetry in JSON .

Cheers,
Alex

Unable to Ban or Kick player with name: "player"

Version: Slmod 7.5 + DCS 2.5.2 Stable

Unable to ban or kick player using -admin command if the player name is:
player

I'm pretty sure someone takes "advantage" of it, entering server with this name to bore other players and Admins

Option for stats detail level

Add a setting that defines where and therefore how details the stats will be saved.

How detailed the stat information will be tracked for weapon usage, kills and deaths.
0: Common. All stats will be tallied into a common table entry. For instance dropping a Mk-82 in an A-10C, F-18C, F-16, or M-2000 adds all of those stats to the same entry.
1: Aircraft Kills + Aircraft Weapon Usage. Dropping an Mk-82 and getting kills will add those entries to that aircraft's stats.
2: Aircraft Weapon usage > Aircraft Weapon Kills. You will know the types of targets killed by Mk-82s under each aircraft.

     == Sample Table ==
0: All kills, weapons, and deaths get added to the root player table. You will know all of the total values, but nothing specific. This is how slmod prior to changes in 7.5 stored stats.
player>Kills
player>Weapons
player>eachAircraft

1: Each aircraft has its own table of kills, deaths, and weapon usage. You will have data on specific aircraft kills and weapon usage. This is how it is stored in the latest version of slmod 7.5.
player>eachAircraft>Kills
player>eachAircraft>Weapons

2: Within each aircraft table there is a list of weapons and then what each weapon has destroyed.  
player>eachAircraft>Weapons>Kills

RTV/Vote Mission

Mechanism for players to vote for a mission change.

Design: Players can call for a vote via -rtv command (rock the vote). Once threshold reached a vote can start.

Possible ideas.
Players nominate missions
Players nominate a map
Admin command to cancel a vote
Admin command to enable/disable voting in session
Vote threashold settings.

Mission Script Error

[string 'slmod.sendData()':1: attempt to index global 'slmod' (a nil value)
stack traceback:
    [C]: ?
    [string "slmod.sendData()"]1: in main chunk

i dunno what it means but its popping up whenever i try to host

Mission Script Error

[string "slmod.sendData()"] 1: attempt to index global "slmod" (a nil value) stack traceback: [C]:? [string "slmod.sendData()"]: 1 in main chunk

already tried to reinstall SLMod and is running as admin
any ideas?

Option for specific object kills

Slmod has always filtered objects into categories while saving stats. For instance it saves a count of "MBT" instead of a specific type of tank. For example it is the difference of saving 10x "MBT" vs 5x T-72, 3x T-55, and 2x M1A1 Abrams. Objects by category will always be saved, but this would be an additional layer on top of that.

Stats for aircraft

Add stats commands to view a players stats for a specific aircraft. Specifically just a breakdown of weapon usage.

-ac stats me

Load the table autoAdmin.exemptionList from own file?

Regarding autoAdmin.exemptionList in config.lua

Can we change this function to read from a separate file, like the BANLIST? We have so many members that the config file becomes too long. I think this will simplify the Squadron member white-listing from KICK and BAN. Some of our players get kicked in training sessions where we test players in danger close situations.

Add more items to be tracked by stats

Add new items to be tracked by stats. Specifically non-kill related actions by a player for the stats like landings, refueling, and possibly cause of death.

Landings. Would simply tally where a player landed at with options being Airbase, FARP, CVN, LHA, and austere. The thought has occurred to me to also specify take-offs with ship operations and possibly categorizing ships by type or at least class. For instance specify if you landed on the Forestall, Nimitz, or Kuznetzov class ships. Alternatively list the actual object types landed on like CVN-74, Carl Vinson, Nimitz, etc. Additionally whenever the CV DLC is released it will hopefully add in landing scores accessible to the scripting engine. If added then this stat will also be added. Current thinking is to simply store each landing score with maybe a date associated.

Refueling. Main stat will be total time spent refueling, number of connects for each airframe, and display an average of those values. Not sure if storing information on the type of tanker is relevant, but would be possible. I am leaning toward adding a counter for "quality" of the connects. Essentially checks the time a player was connected and then categorizes it. Less than 5 seconds, 5 to 20 seconds, 20+. Something like that.

Cause of death. Would like to keep it relatively basic like a rough attribute of what killed you. Sams, fighters, attack aircraft, ships, etc. Would also categorize things like despawning in air, crashes would basically become to define "crashed without being hit", a simple TK counter, and crash landings.

The point of this is to add a few more generalist stats that people might find interesting while keeping the organization and scope of the current stats.

Scenery Objects and stats

Investigate feasibility of tracking scenery objects with regard to stats. Either in the form of counting the objects destroyed/hit by players or only counting under specific circumstances. For example check code for slmod.mapobj_destroyed and make a similar determination for the stats so world objects can be objectives.

Also need to check for issues related to weapon type failing to return or returning as the aircraft used by client is what killed the object, hence kamikaze kills. Likely similar to the static objects and kamikazes.

Sub Admin

Create a subclass of admins that don't have full access to all admin commands.

slmodMetaStats file

I am adding an slmodMetaStats file. The purpose of this file is to store useful information from session to session that isn't directly related to player statistics. Current I will use it to store the last used MissionStats file so that whenever a new mission is started slmod will open and resave the previous missions stats file. This is so the file is recompiled and becomes more readable.

I've got a few ideas for what could be put in this file and may implement it in the future. Possible "metaStats" :

  1. Stats on missions
    a. time a mission of a specific name has been hosted.
    b. flight hours of players on the mission
  2. Stats on a map
    a. Time a map has been played
    b. Most popular mission
  3. Voting stats (conditional on adding vote map/mission functionality)
    a. Map/missions that have been voted to be switched from and how many times.

2.5 support

Hi,

I wonder if any issues with the latest 2.5 update? the mod has stopped working for me after the latest update.

Cheers,
Alex

Feature Request: Make MOTD not display for users on a list

Our server is open to the public as well as clan members,
would like not to display the MOTD for our clan members (they already know the score with our server config - SLMOD)
But for public people it would be useful to let them know about SLMOD - eg forgive function

Mission Scripting: Slot enable/disable

Add a mission scripting function to enable or disable specified slots in the mission. Sort of act as an aircraft activate/deactivate rule but works by allowing or denying clients to be in specific aircraft slots.

Would likely just be a simple command like:

slmod.disableUnitSlots(

)
slmod.enableUnitSlots(
)

Need to think about how to handle slots of aircraft already spawned. At the least will have to disalllow (re)spawning. But aircraft spawned should be allowed to exist until they are killed.

Slot reservation

Simply put its to allow server admins a means to specify certain slots to be used by certain players via UCID or password access.

Actual implementation is questionable. Server side settings would be required to hide valid passwords and UCID from access within the track file. Settings will need to be mission dependent as the reserved unit slots won't always have the same names or object types. I think it makes the most sense to at least have a mission scripting function act as an activation of sorts...

slmod.reserveSlots({table of UnitNames}, 'nameOfUCIDTableToCheckServerSide') Perhaps just make it a string to check for the specific table.

Local table could be formatted as:

It could be a ucid table with valid unitNames player is allowed access to.
['ucid1'] = {'unit1', 'unit2'}

It could be a table of unitNames with ucid entries for access
['unit1'] = {'UCID1', 'UCID2'}

It could be an all inclusive table of unitNames and ucids where a pair must match for access.
['units'] = {'unit1', 'unit2'}
['UCID'] = {'UCID1', 'UCID2'}

Error on vote

afther vote is complete the message of changing map keep repeating and the map dont change.

SLMOD ERROR: slmod.scheduleFunctionByRt, error in scheduled function: [string "C:\Users\Enfarda\Saved Games\DCS.openbeta_server\Scripts/net/Slmodv7_5/SlmodVote.lua"]:190: attempt to index field '?' (a nil value)

updated to 20th Feb build, stats tables no longer seeming the same.

I recently updated our servers to 20th Feb build of SLmod and noticed that the stats as they used to be published seemed to have been massively altered? is/was this intentional.

You used to always get the following items in the table

    ["uid"] = 
    {
    ["friendlyCollisionKills"] = 
        {
        }, -- end of ["friendlyCollisionKills"]
        ["id"] = 1,
        ["friendlyHits"] = 
        {
        }, -- end of ["friendlyHits"]
        ["names"] = 
        {
            [1] = "server name",
        }, -- end of ["names"]
        ["kills"] = 
        {
            ["Buildings"] = 
            {
                ["Other"] = 0,
                ["Static"] = 0,
                ["total"] = 0,
            }, -- end of ["Buildings"]
            ["Planes"] = 
            {
                ["UAVs"] = 0,
                ["Fighters"] = 0,
                ["Bombers"] = 0,
                ["total"] = 0,
                ["Transports"] = 0,
                ["Support"] = 0,
                ["Other"] = 0,
                ["Attack"] = 0,
            }, -- end of ["Planes"]
            ["Ships"] = 
            {
                ["Warships"] = 0,
                ["total"] = 0,
                ["Unarmed"] = 0,
                ["Subs"] = 0,
                ["Other"] = 0,
            }, -- end of ["Ships"]
            ["Ground Units"] = 
            {
                ["Arty/MLRS"] = 0,
                ["SAM"] = 0,
                ["Unarmored"] = 0,
                ["IFVs"] = 0,
                ["AAA"] = 0,
                ["Infantry"] = 0,
                ["Other"] = 0,
                ["EWR"] = 0,
                ["APCs"] = 0,
                ["Tanks"] = 0,
                ["Forts"] = 0,
                ["total"] = 0,
            }, -- end of ["Ground Units"]
            ["Helicopters"] = 
            {
                ["Other"] = 0,
                ["total"] = 0,
                ["Attack"] = 0,
                ["Utility"] = 0,
            }, -- end of ["Helicopters"]
        }, -- end of ["kills"]
        ["losses"] = 
        {
            ["pilotDeath"] = 0,
            ["crash"] = 0,
            ["eject"] = 0,
        }, -- end of ["losses"]
        ["times"] = 
        {
        }, -- end of ["times"]
        ["weapons"] = 
        {
        }, -- end of ["weapons"]
        ["PvP"] = 
        {
            ["losses"] = 0,
            ["kills"] = 0,
        }, -- end of ["PvP"]
        ["friendlyCollisionHits"] = 
        {
        }, -- end of ["friendlyCollisionHits"]
        ["friendlyKills"] = 
        {
        }, -- end of ["friendlyKills"]
}

now however a lot of that data no longer seems to be written from base (which really stuffs up a lot of existing stat tracking.

A straight default write all I'm getting is this

["uid"] = 
    {
        ["id"] = 1,
        ["times"] = 
        {
        }, -- end of ["times"]
        ["joinDate"] = 1588867996,
        ["names"] = 
        {
            [1] = "username",
        }, -- end of ["names"]
    }, -- end of ["uid"]

and if you pilot something that looks this

  ["uid"] = 
    {
        ["times"] = 
        {
            ["FA-18C_hornet"] = 
            {
                ["total"] = 1340.696,
                ["weapons"] = 
                {
                    ["AIM-120C"] = 
                    {
                        ["numHits"] = 2,
                        ["kills"] = 1,
                        ["shot"] = 2,
                        ["hit"] = 0,
                    }, -- end of ["AIM-120C"]
                }, -- end of ["weapons"]
                ["inAir"] = 1120.589,
                ["kills"] = 
                {
                    ["Planes"] = 
                    {
                        ["Fighters"] = 1,
                        ["total"] = 1,
                    }, -- end of ["Planes"]
                }, -- end of ["kills"]
                ["pvp"] = 
                {
                    ["kills"] = 1,
                }, -- end of ["pvp"]
            }, -- end of ["FA-18C_hornet"]
        }, -- end of ["times"]
        ["joinDate"] = 1588868264,
        ["lastJoin"] = 1588869607,
        ["id"] = 2,
        ["names"] = 
        {
            [1] = "username",
        }, -- end of ["names"]
    }, -- end of ["uid"]

Those are some really big changes in the table format and have some well impactful knock on effects as there is no way to tell it to 'use the old' format especailly given that existing stats software that used the old table no longer finds values it's meant to. Just wanting to know if this was as mentioned an intentional effect? Or if i've some how miss configured something suddenly or ?

-Rob

Investigate Multicrew Stats

Test L-39 in MP to see how it handles stats. Slmod code setup to assume one and only one player can be in a unit. This is no longer the case in DCS.

Multicrew stats refactor

Change how the stats are processed with multicrew aircraft so that they use a common function.

Currently iterates through each pilot and does the whole process for each pilot.

New: Go through stat calculating code and on changing each stat change for each player at the same time.

Investigate gun stats

Noticed the stat value for a gun shows up as its own entity and guns. Need to investigate why. Perhaps make an option for how to track it.

Had to manually make a list of shell hit type names and gun types. This is annoying to do and easy to fall behind on. Also may not work with mods.

Set to 2.5 milestone but may remove for later date.

Prevent unacceptable player names from joining server

Simple check to prevent an unacceptable player name from joining the server. For instance if the player name has no alpha numerical characters or features obscene language. Check is to run on connection event.

Export Units with LAT LONG instead XYZ

Hi to all,
I'm trying to use the SLmod to expose mi server status, and then build a RealTime LiveMap of them.
I'm using the export_world_objs = true and it was pretty good, but now I need to figure out on how to convert xyz format into LAT/LONG format to create the map ( 2D map like GoogleMaps or some other service )
Anyone can help me to achieve this new export behavior?

Slmod Still working on dcs?

All this time the SLmod was always working, but afther today is not anymore, is because of some update, or i need reinstall this?

Investigate estimated unban time display

For users who have been banned from a server, investigate adding an option to display how much time until they are unbanned.

Maybe iterate time at a given interval, check stats, and see if they would be unbanned? Might be time consuming function based on number of checks to do.

Assists in stats

Add and option to count assists on destroyed targets. An assist would mean that the player hit the target, but they weren't the last one to hit and destroy the target. Level of detail would be dependent on other settings.

Update config file without erasing existing entries.

Modify SlmodConfig.lua to support updating of the config file without erasing existing and saved data entries.

This is WIP on a currently not-public repo for 7_6. Entire formatting for SlmodDefault.cfg is changing as a result but the user edits should be the same. Slowly working through ensuring the rough look of the config file is roughly the same in addition to issues that crop up due to formatting and how lua throws away certain values.

Admin menu: detailed command for penalty scores

Add two commands for admins:

  1. List players and current penalties applied to each user
  2. Detail view for a given player.

Detailed view shows last 20 team hit/kill events, the amount of penalty points applied and when each expires.

Also quick breakdown of each category. How many events and how many are still active.

If banned estimated time for unban.

Admin command: kick from slot

A simple admin command that kicks the specified player back to spectators.

It is a lighter punishment than kicking from the server. Need to figure out how to make it count as a loss in stats.

Forgive/Punish on TK commands

When teamkilled by another player user will be given the opportunity to forgive or punish the other player. If forgiven no penalty will be applied in the stats and the TK will not be held against them. If punished the TK stats will stay.

Likely would add a config to turn the feature on/off. Possibly a timeout value for when forgive option will be removed.

May just make it only a '-forgive' command.

Will investigate if it is possible to give partial penalties. For instance a player is forgiven, but the stat remains but has lesser influence over getting auto-kicked/banned.

Implementation is likely dependent on fixing the issue currently with admin register passwords.

Messages to unit

Currently slmod sends messages at a group level and was programmed in a time when 1 and only 1 client may belong to a specific group. If multiple clients are in the same group then each client will receive a message, even admin level messages. Currently DCS lacks a means to send messages directly to a unit. Official feature requests are in place but the don't account for multi-crew aircraft. For instance if an admin is sharing an L-39 with a player, both players will see messages meant for each other.

I need to address this somehow.

admin level commands to view/modify auto-admin actions

Add a means to view and possibly edit actions undertaken by auto-admin. Possible features

Display list of auto admin banned/kicked users along with relevant information for when the punishment will automatically be lifted. Can go further into detail for that user displaying tk actions. Admin can then modify the status of the kick.

Purpose of this is to make it easier to understand auto-admin actions.

How to install the mod

I apologize for the banality of the question, but I would need to understand how to install the mod.
I think I did it right, but then when the simulation starts it gives me a mistake [string 'scriptman']:1: '=' expected near ''
Thanks for your help

Collisions count against players although disabled in config.

We're running into issues on the TTI servers where players get disciplined by the Slmod Autoadmin for sliding into each other on the carrier deck. The things is, "autoAdmin.teamCollisionHit.enabled" and "autoAdmin.teamCollisionKill.enabled" are both set to disabled in the config file. Yet we still have players getting kicked:
TEAM HIT: Apr 01 08:31:30 {players = {1 = {name = "censored", ucid = "censored", ip = "censored", id = 6}1 = {name = censored with F/A-18C Lot 20
TEAM HIT: Apr 01 08:31:30 {players = {1 = {name = "censored", ucid = "censored", ip = "censored", id = 6}1 = {name = CVN-74 KMART with F/A-18C Lot 20
CHAT: Apr 01 08:32:12 {name = "[107th] Whither 007", ucid = "censored", ip = "censored", id = 4} said "SLMOD INFO: Player "censored" is getting autokicked back to spectator" to all
On that note, apparently the formatting of Team Hits/Team Kills in the Chat Log is broken to some extent.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.