Git Product home page Git Product logo

sm-autodemo's Introduction

SourceMod AutoDemo Recording System

Server plugin for AutoDemo system

Requirements

Installing

Building

For compiling sourcepawn source file (.sp), you need SourcePawn Compiler on your PC. You can download him from here.

Note: You should download archive for your OS. All plugins, compiled on Windows, can run on server with Linux, and vice versa.

If you use Windows, you must select the source file (.sp) and transfer it to spcomp.exe. You will compile the source and you will receive a plugin (.smx).

Else you use Linux, then you need to register ./spcomp file.sp and you will compile the file.

P.S.: In both cases, the plugin is compiled into the source folder. But in the case of Linux, for everything to work, you must be in the folder with the compiler. Also if you use SM 1.10+, then it's better to use spcomp64.

SourceTV Enabling

To enable SourceTV, you need to register the following in server.cfg:

// SourceTV options
tv_enable 1
tv_autorecord 0
tv_maxclients 0
tv_name "AutoDemo"
tv_port 27020

Great thanks

  • Erik Minekus for developing REST in Pawn.
  • Peace-Maker for developing SourceTV Manager.
  • Se7en for providing own demo auto-uploader with cURL by FTP (called as UploadFTP).

sm-autodemo's People

Contributors

crashzk avatar crazyhackgut avatar rabb1tof 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

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sm-autodemo's Issues

Error with compiling AutoDemo_FTPUpload.sp

SourcePawn Compiler 1.9.0.6252

Compiling AutoDemo_FTPUpload.sp...
SourcePawn Compiler 1.9.0.6252
Copyright (c) 1997-2006 ITB CompuPhase
Copyright (c) 2004-2017 AlliedModders LLC

AutoDemo_FTPUpload.sp(124) : error 178: cannot coerce char[] to any[]; storage classes differ
AutoDemo_FTPUpload.sp(126) : error 100: function prototypes do not match

2 Errors.

Min players option

Add the parameter for disable autorecording when player count is too low, for example.

Оптимизация внутренних структур плагина

Завожу исью чисто для себя, потому на русском. Хотел честно на английском, но лежу на стационаре, и думается плохо.

Ядро сейчас создает много вспомогательных структур во время "рекординга". Те же события - это гарантированная связка датапака и StringMap, что иногда может приводить к неожиданным "репортам" от СМ на тему утечки памяти. Выдернуто из Дискорда Levels Ranks Web, сообщение в англ саппорте.
Есть смысл сразу формировать JSON во время записи, т.к. эти данные впоследствии изменяться не будут, просто не сгружать на диск. Это позволит нам один раз создать несколько JSON-хендлов на событие, и тут же их закрыть, приаттачив данные к основному жсону.
Возможно, что-то еще таким образом соптимизировать. Данные игроков, возможно?

Player Unique ID on demo

  1. All players must receive something unique ID on record. This is required for bots and events.
  2. SourceTV don't should be written in metadata.

Improvements to AutoDemo_Notify | Discord

Implement option to send notifications in Discord when a demo is sent to a host via FTP, any notifications like this:
image

You could include the following information in this message:

  • Hostname & IP
  • Map
  • Scoreboard
  • Name of teams & Players on teams
  • Demo download link

Questions with SM AutoDemo

I would like to start using this plugin to manage the demos on my servers, but there were some questions.

I can configure using the AutoDemo_FTPUpload plugin to upload the demos after it's finished to my web hosting, correct? So players could go and download the demo after the upload is complete.

About SourceTV setup:

  • tv_enable 1
  • tv_autorecord 0
  • tv_maxclients 0
  • tv_name "AutoDemo"
  • tv_port 27020

Can I freely change the tv_maxclients, tv_name and tv_port options?

How to fix "sourcetvmanager.ext.2.tf2.so: undefined symbol: Warning"

I put in the latest version of the plugin and extension to my linux server.
But sourcetvmanager.ext.2.tf2.so doesn't seem to work properly.

[24] REST in Pawn (1.2.0): Provides HTTP and JSON natives for plugins
[25] file "sourcetvmanager.ext.2.tf2.so": /home/ogpbot/OGP_User_Files/7/tf/addons/sourcemod/extensions/sourcetvmanager.ext.2.tf2.so: undefined symbol: Warning
[26] SteamWorks Extension (1.2.3): Exposes SteamWorks functions to Developers
[27] SMbz2 (0.0.3): Very basic extension to de/compress bz2 files

AutoDemo_TF2.smx ([AutoDemo] Team Fortress 2): Native "DemoRec_AddEventListener" was not found
AutoDemo/Core.smx ([AutoDemo] Core): Required extension "SourceTV Manager" file("sourcetvmanager.ext") not running
AutoDemo.smx ([AutoDemo] Core): unexpected error 23 in AskPluginLoad callback
AutoDemo_FTPUpload.smx ([AutoDemo] FTP Upload): Could not find required plugin "AutoDemo"
AutoDemo_Notify.smx ([AutoDemo] Notifications): Could not find required plugin "AutoDemo"
AutoDemo_EventManager.smx ([AutoDemo] Event Manager): Could not find required plugin "AutoDemo"
AutoDemo/EventManager.smx ([AutoDemo] Event Manager): Could not find required plugin "AutoDemo"

What should I do?

Change Demo Name

Have a way to change the demo name? Like day-hour-minutes-map.dem

Implement cvar "sm_autodemo_maxplayers" in AutoDemo_EventManager

Essence is that: the demo recording stops if the threshold of Players on the server reaches 50+ (changeable value).

Суть в том, что: запись демки останавливается, если порог Игроков на сервере достигает 50+ (значение изменямое)

P.s. конкретно для CS:GO это нужная вещь как по мне, поскольку при 45-50+ онлайне, и так подлагивать начинает (из-за двига самой игры), а с GOTV это вообще жепа.

Invalid Handle

Hello, in this new update another error is ocurring

[SM] Exception reported: Invalid Handle 5a7d0608 (error 1)
[SM] Blaming: AutoDemo_FTPUpload.smx
[SM] Call stack trace:
[SM]   [0] GetTrieString
[SM]   [1] Line 82, C:\scripting\AutoDemo_FTPUpload.sp::BZ2CallBack

BZ2 files are not compressed correctly

Recorded Ticks always -1

It looks like a bug in core.
recorded_ticks in TF2 always -1 in latest Core version. Required to check in another games.

{
    "start_time": 1565718510,
    "end_time": 1565722914,
    "recorded_ticks": -1
}

At the same time, current tick detects normal in events:

[
        {
            "event_name": "Core:PlayerDeath",
            "time": 1565718720,
            "tick": 14009,
            "data": {
                "client": "x",
                "victim": "y"
            }
        },
        {
            "event_name": "Core:PlayerDeath",
            "time": 1565718723,
            "tick": 14191,
            "data": {
                "client": "x",
                "victim": "z"
            }
        },
        {
            "event_name": "Core:RoundEnd",
            "time": 1565718723,
            "tick": 14191,
            "data": {}
        }
]

Events JSON Not Created

Plugin Version:

"[AutoDemo] Core" (1.3.1) by CrazyHackGUT aka Kruzya
"[AutoDemo] Event Manager" (1.0.10) by CrazyHackGUT aka Kruzya

Hello! I've noticed that when sm_autodemo_recordmode is set to 1 the .json file from Event Manager is never created. Is there a way to write the file live and then finish it on cs_win_panel_match? I stopped the demo recording early and the file was created (server lagged out though until the tv_stoprecord command finished.)

When using ``sm_autodemo_recordmode 2` it creates them fine.

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.