torndeco
-
Content Count
312 -
Joined
-
Last visited
-
Medals
-
Medals
Posts posted by torndeco
-
-
@J0nes
Yes with nRadio you could do this, it just requires a small bit of work (simply enough really).
You just need to code some sqf code to send the music info to other players in the car, so that extension plays music stream for them.
-
Version 64
Been a couple of updates in the last month or so
Just a quick highlight of some of the changes
- ADDED: 9:SHUTDOWN will kill armaserver, needs to be done before extension is locked
- ADDED: 9:TIME or 9:TIME:<offset> will return time. Only works before you lock extension i.e 9:LOCK if you need it afterwards use MISC Protocol
- FIXED: Rcon Crashes
- IMPROVED: Handling of Database disconnects.
- CHANGED: From Intel TBB Malloc to JEMalloc statically linked. No more seperate tbb + tbbmallocs dlls
- REMOVED: Old v1 Protocols + HTTP Backend (was broken slightly + noone was using it anyways)
- ADDED: 9:SHUTDOWN will kill armaserver, needs to be done before extension is locked
-
9:ADD_DATABASE_PROTOCOL:<DB_NAME>:SQL_RAW_V2:SQL1
That way it doesn't add any quotes, but then you will need to add quotes to strings when you insert them into the database.
But SQL_RAW is not recommended !!!! as you will need to sanitize the SQL Statements yourself in SQF (is extra work for server).
Plus if a hacker got your server to remote execute code, and if they can guess SQL1 they could remote execute any SQL Statement on your Database.
----------
It is highly recommended you use SQL_CUSTOM_V2, it is a small bit more hassle to setup.
But it allows more control and is alot more secure.
-
Nice to hear, prob mostly due to compiler options
Anyway have scaled back abit, i am just going todo a custom JEMalloc.
New github repo up with source code & prebuilt dll in releases.
Main change so far is
I changed opt.lg_tcache_max default from 15 -> 16.
So the largest size cached is now thread cache is 64k
From the limited test runs + logs, arma seems to use 64k size allocations alot.
You can still override this yourself via config file or environmental variables if you like.
-
Changed: profileNamespace and uiNameSpace disabled for allVariables in MPCan someone explain about this aswell ?
Am i missing something where this info needs to be hidden while playing MP ?
---------------------------------
This is a nice function that you could call on suspected hackers to see what is saved in their namespace, and have the info dumped into a log serverside to review.
Pretty sure this was the reason for the function in the first place.
With this change all the hack scripts could just hide anything they want in profileNamespace or uiNameSpace.
No anti-hack would be able to check or dump the variable names from those namespaces.
The only reason i can think of this, is for missions that store data clientside and hackscripts that mess with the data.
But you can still use a script to override known values + then in a loop iterator with a sleep + nil out all other variable names via bruteforce.
Really the issue is the missions are storing the info clientside instead of serverside.
Please don't cripple functions because of this, especially when it doesn't fix anything
edit:
Looks like change was due to http://feedback.arma3.com/view.php?id=24254
-
https://github.com/Torndeco/jemalloc-a3
https://github.com/Torndeco/jemalloc-a3/releases
Just a custom updated version of JEMalloc for Arma3.
Ability to define runtime settings via configfile or environmental variables.
Will reupload config file later on, needs to be in your working directory.
-
Arma3 Extension Logger + Console Window (windows only atm)
https://github.com/Torndeco/extLOG
Just a simple async logger with support for multiple logfiles files and output to GUI Console.
Windows only atm
It also has simple conf file, were you can define colors or enable/disable GUI Console.
https://github.com/Torndeco/extLOG/blob/master/extLOG.ini
Syntax
<Colour ID>:<Log Filename>:<Message> <Colour ID>::<Message>
Colour ID 0 = NO OUTPUT TO GUI CONSOLE
Colour ID 1-9 = GUI CONSOLE OUTPUT, colour is defined in extLOG.ini
Examples
"extLOG" callExtension "1:SERVER:Starting";
Output message Starting to GUI Console
Output message to logfile SERVER.log.
"extLOG" callExtension "1::Starting";
Output message Starting to GUI Console only.
"extLOG" callExtension "0:SERVER:Starting";
Output message Starting to logfile SERVER.log only.
Download at
https://github.com/Torndeco/extLOG/releases
Windows Requirements
Windows Server 2008 + Later
Windows 7 + Later
Install vcredist_x86.exe
http://www.microsoft.com/en-ie/download/details.aspx?id=40784
-
Anyone able to get
class CfgRemoteExecCommands {};
To work via mission description.ext
It appears to be broken for BIS_fnc_MP & remoteExec etc
Unless i am making a stupid mistake
-
Small Update
Looking @ testing out a new Regex Battleye Thing this weekend.
Basically it will work similar to my old Python pyBEscanner.
It will come in a standalone executable and arma extension (extension will have some extra features).
For those that aren't familiar, basically it works like this
- Scans BELogs while server is running
- Parses the BE Logs using custom defined regex rules.
- BELogs are split up in Year/Month/Day directories
- BELogs are stored in original unedited form, unknown / kick / ban logs
- Unknown Logs are entries that weren't in any of the filters i.e whitelisted / kick / ban (it helps to spot unusual / new things)
- Kick Logs will show entries that resulted in a player getting kicked.
- Ban Logs will show entries that resulted in a player getting banned.
- The regex filter rules can be updated while the program or server is running.
- You can enable/disable the rcon kicking / banning.
- This makes it alot easier to setup regex rules, or allows you to review logs before banning a player.
The short version it will only be as good as the regex rules you setup, also it requires logging output for BattlEye.
There is also some extra small features for the extension version that could be nice depending on mission/mod code.
It just meant to complement existing code to prevent hackers / script kiddies.
Anyone that has previous donated give me a pm on forums, if you are interested in the tool.
Everyone else will just have to wait thx
- Scans BELogs while server is running
-
Version 56
Main changes are,
RCon kicking for bad playernames
Rcon whitelisting / reserved slots.
With new SQL_CUSTOM options,
It should now be possible to use sanitize option for all inputs now to a database.
Not sure what sanitize does, check out the Test App + try type in numbers, strings, arrays etc + then type them in malformed.
Only supports ascii characters. Something to bare in mind when dealing with playernames.
Changes v56
- ADDED: Rcon Whitelisting / Reserve Slots
- FIXED: Multiple fixes for Rcon Player kicks
- Minor: Code Improvement to 2: + 1: Calls
Changes v55
- ADDED: Rcon Player kicks for bad characters/strings (regex rules)
- ADDED: SQL_CUSTOM + SQL_CUSTOM_V2 New String + Sanitize Options
- FIXED: Multiple Fixes for SQL_CUSTOM + SQL_CUSTOM_V2, including Steam Checks
- REMOVED: SQL_CUSTOM Options Vac_BeGUID
- CHANGED: 9:VAR Option now always returns value as a string
- IMPORTANT: Removed Redis Support
Downloads
https://github.com/Torndeco/extDB2/releases
Note
In the test directories of Release Files
This is a standalone Commandline RCon App
It has ability to send rcon messages read from a text file i.e useful for server restart warnings.
Or sit and stay connected to kick players with bad playernames / whitelisting / reserved slots.
Available for Linux + Windows.
The Config file for Rcon App is same format as extdb-conf.ini
Important when you restart a server you need to wait a minute before launching new armaserver.
Or you need to restart the rcon application aswell.
If you dont do this rcon application might not notice server has stop + been restarted i.e rcon app wont be logged in anymore.
Important rcon application is only suitable for local use, it does not have features to recover from UDP Packet loss atm.
- ADDED: Rcon Whitelisting / Reserve Slots
-
Version 54
Rcon code got overhauled is alot better, rcon commands now send to server straight away.
It is also possible to retrieve missions + players info (including IP/PORT/PING, default behaviour these aren't returned).
Changes v54
- FIXED: SQL_CUSTOM + SQL_CUSTOM Required Version Checks
- FIXED: SQL_CUSTOM + SQL_CUSTOM_V2 Handling of Null Values in Database
Changes v53
- ADDED: Support for retreiving RCon players + missions
- ADDED: Ability for filtering player ip/port/ping from Rcon players
- FIXED: Another small fix for loading extdb-conf.ini
- FIXED: More Fixes for Steam Protocol
- FIXED: Commandline arguments (removed " from arguments)
- FIXED: -extDB_VAR fixed parsing for Windows
- UPDATED: Rcon Code, commands will execute straight away now
- MINOR: Some Code Improvements
Downloads
https://github.com/Torndeco/extDB2/releases
Note
In the Release files in Test directory is a Commandline Rcon Application.
Its useful to send messages to server using a cronjob. (Linux + Windows Builds)
i.e Server Restart Warnings + Locking Server etc...
Its very similiar to BERcon, except it can read multiple RCon commands from a file to send to server.
Note
Version 54 Removed due to issue, will be new build in next 24 hours.
- FIXED: SQL_CUSTOM + SQL_CUSTOM Required Version Checks
-
I am currently considering just pulling Redis Support from extDB2.
Nothing against Redis, it has some really nice features but it really would require an extension that fully supports them.
Due to how extDB2 works, the speed of Redis versus MySQL isn't really a factor.
If someone is making a public released mod that is planning on using it give me a shout.
I might be convinced to leave it in extDB or release an extRedis.
But as it currently stands i don't believe anyone is really using Redis as a backend for extDB2.
-
Version 52
Just a fix for loading extDB2-conf.ini from extension location i.e @extDB2
Changes v52
- FIXED: Loading extdb-conf.ini
Downloads
https://github.com/Torndeco/extDB2/releases
Known Issues
Command line arguments doesn't strip " i.e
arma3server "-extDB2=/fooo" (doesn't work)
arma3server -extDB2=/fooo (works)
- FIXED: Loading extdb-conf.ini
-
Version 51
Main changes are tweaked compiler flags, should be small improvement in performance.
extDB2 will now parse arguments from armaserver on Windows / Linux.
-extDB2_VAR is retreivable via "9:VAR", before the extension is locked.
-extDB2_WORK defines custom location for extdb-conf.ini / extDB directories (where sql_custom log files are located)
Changes v51
- ADDED: HTTP_RAW Protocol (Basic Auth, GET, POST support)
- ADDED: STEAM_V2 (Removed case insensitive for performance reasons)
- ADDED: -extDB2_VAR -extDB2_WORK commandline arguments (Linux + Windows)
- FIXED: Issue were STEAM / Redis Protocols wouldn't save result.
- UPDATED: RemoteServer with basic blacklisting ips that failed to login over 3 times
- MINOR: Fixed console output on debug extension builds
- MINOR: Updated Poco / Boost / MySQL / SPDLog Libraries
- MINOR: Tweaked Compiler Flags
Downloads
https://github.com/Torndeco/extDB2/releases
----------------------------
Edit:
extDB2 SQL_CUSTOM now supports loading multiple files i.e
instead of
extDB/sql_custom/a3wasteland.ini
you can have
extDB/sql_custom/a3wasteland/whatever.ini extDB/sql_custom/a3wasteland/extra1.ini extDB/sql_custom/a3wasteland/extra2.ini
Don't have multiple default values in seperate files, since all the files are loaded at once and will override each other.
- ADDED: HTTP_RAW Protocol (Basic Auth, GET, POST support)
-
You dont need to install java anymore for arma3server on linux, its static compiled in now i believe...
Anyway i used to get that error, actually just updated OS + Arma3server today its fixed :)
But anyway you need to make up a server.cfg and tell arma3server to use the config file.
-
Just a small status update, next update should be in a day or 2.
HTTP Backend Support
Some more optimizing (compiler cxx flags) + updating of MySQL / Poco / MySQL libraries.
Command Line Arguments Support
-extDB2_WORK=/path/to/extDB/ work directory i.e were logs / sql_custom / configfile are located.
Will be able to define a string to pass to extDB2 i.e
-extDB2_VAR=1
-extDB2_VAR="Server 1"
Then ingame before extDB2 is locked
_var = call compile ("extDB2" callExtension = "9:VAR");
The idea behind Command Line Arguments is you will be able to pass a info like Server ID without having to edit mission file etc...
-
Sorry don't have any example missions myself atm.
A3Wasteland extDB2 branch is over complicated and will just confuse people new to SQL imo
AltisLifeRPG is abit outdated but still very similiar, might be of use to have a look
But the best thing is try look @ https://github.com/BAROD/Koth_Kavala or maybe you might wanna give him a hand.
-
@Dirty Haz
You have any prior knowledge of messing around with SQL Databases ?
Best thing is to mess around with MySQL Workbench to make up a simple Database Table containing all the columns you need.
Then mess around with SELECT / UPDATE SQL Statements to change the values in the Database.
Once you figured that out, will be easy enough todo the extDB2 part.
Try give me a shout in Skype
-
Think kju is pointing out that uploading content to Steam Workshop gives Valve rights to use the content / make derivative works (assuming you had rights in the first place).
So its prob worth checking first with authors to get permission first.
http://store.steampowered.com/subscriber_agreement/
You grant Valve and its affiliates the worldwide, non-exclusive, right to use, reproduce, modify, create derivative works from, distribute, transmit, transcode, translate, broadcast, and otherwise communicate, and publicly display and publicly perform, your User Generated Content, and derivative works of your User Generated Content, in connection with the operation and promotion of the Steam site.Also you could read http://forums.bistudio.com/showthread.php?148879-ARMA-III-amp-Steam-WORKSHOP/page11
Thread is abit old and long but it covers the issue.
--------
Some alternatives to using Steam workshop are ArmAA3Sync or PlayWithSix
-
@m1ndgames
Honestly i wouldn't try use mono, it will prob just getting annoying trying to figure out what is broken / not implemented yet.
If i were you i would look @ c/c++ atleast the tools / debugger for linux for them is more mature.
Also there is a version of inidb already ported to linux https://github.com/newtondev/inidb-linux
Note: i haven't looked @ the code or tried it out yet.
-
Version 50
Just a minor bug fix release
SQL_RAW_V2 +SQL_CUSTOM_V2
They are the exact same, the only difference is when returning an empty result you get
[1,[]] instead of [1,[[]]]
If you are confused then chances are you never encountered it, don't worry about it.
That is the only difference, i don't plan on deprecate the original protocols anytime soon.
So there is no rush on having to update to V2.
Changes v50
- ADDED: V2 SQL Protocols, empty results return [] instead of [[]]
- FIXED: Loading STEAM Protocol
- FIXED: Removed debug output for timing mutex locks
- ADDED: V2 SQL Protocols, empty results return [] instead of [[]]
-
@Yourry
You could try catch me on Skype, i tend to check there for messages.
For playername you can use
SQL1_INPUTS = 1-STRING
This way playername is wrapping quotes inside the Database when it gets stored.
Or
OUTPUT = 1-STRING
That way playername is only wrapping in quotes when the data is fetched.
Plus no quotes are stored in the database itself.
----------------
SQLite apparently doesn't support IF statements.
You have afew different ways you could try solve the problem, by using either of the following functions instead.
SELECT + Just code SQF code to check if the result/array is empty.
or
CASE
or
http://stackoverflow.com/questions/418898/sqlite-upsert-not-insert-or-replace/4330694#4330694
or
COUNT
or
select exists( select 1 from "Player Info" where Name = 'abc' );
If you use "COUNT" or "SELECT exists" method it will return a number then you can combine that with "OUTPUT=1-BOOL".
This will convert the result
0 = false
1+ = true
----------------
Lastly if you need Realtime logging edit extdb-conf.ini
[Log] Flush = true
-
@Yourry
Lose the
Prepared Statement Cache = false
That just an option for when you only run the SQL Statement i.e @ server startup for loading objects / vehicles etc
Or if your testing + altering the Database Scheme while the server is running.
Use the following
[Default] Prepared Statement Cache = false
Otherwise the statement will fail if its cached + the scheme has changed.
Note it will work fine after it has failed, since the cached prepared statements get wiped when they encounter an error.
-------------------
Anyway the errors extDB report back to SQF are generic error messages.
You need to look @ extDB2/logs to see detailed info on whats its complaining about.
-
@Yourry
[playerInfoInsertOnDB] SQL1_1 = INSERT INTO players_save ($CUSTOM_1$,$CUSTOM_2$) VALUES (?,?); Number of Inputs = 4 Number of Custom Inputs = 2 SQL1_INPUTS = 3, 4 OUTPUT = 1-STRIP-STRING, 2-STRIP-STRING, 3, 4-STRING
Change to
[playerInfoInsertOnDB] SQL1_1 = INSERT INTO players_save ($CUSTOM_1$,$CUSTOM_2$) VALUES (?,?); SQL1_INPUTS = 1, 2 Number of Inputs = 2 Number of Custom Inputs = 2
Note there is no OUTPUT for INSERT SQL Command
---------
Also when you are passing info to extDB2 the order is <inputs>:<custom inputs>
_result = [format["playerInfoInsertOnDB:%1:%2:%3:%4", "PlayerUID", "Name", _playerUID, _playerName], 1, true] call extDB_fnc_async;
Change to
_result = [format["playerInfoInsertOnDB:%1:%2:%3:%4", _playerUID, _playerName, "PlayerUID", "Name"], 1, true] call extDB_fnc_async;
---------------
Its not possible to reload / unload Protocols atm
Personally i type the commands into a text editor like
9:ADD_DATABASE:....... 9:ADD_DATABASE_PROTOCOL:............... 0:.............<command to test>
Then you can just paste the entire thing into the test application to test out the command.
---------- Post added at 23:17 ---------- Previous post was at 22:37 ----------
Version 49
Just mainly a bug fix release + some new options for SQL_CUSTOM
SQL_CUSTOM Notes
Version number = 9
You will need to changed "Strip Custom Input Chars" -> "Strip Custom Chars"
This was due to typo were code was checking for "Strip Custom Input Chars", but documentation + examples were using "Strip Custom Chars".
Bumped version number, so people will be sure they are using the correct option in there sql_custom.ini file.
-Vac_SteamID / -VacBeGUID
These new SQL_CUSTOM Options will use playerUID / steamID to check for Vac Bans depending on extDB-conf settings.
Should be usefully when saving / retreiving playerinfo from database etc.
It is the same as using STEAM Protocol, except that it doesn't return any values and saves you from using doing a seperate callExtension.
Changes v49
- FIXED: SQL_CUSTOM: Strip Custom Input Chars -> Strip Custom Chars
- UPDATED: SQL_CUSTOM version = 9
.
Changes v48
- ADDED: SQL_CUSTOM: Support for loading multiple sql_custom.ini files
- ADDED: SQL_CUSTOM: Vac_SteamID + Vac_BeGUID Options
- FIXED: Loading MISC + LOG Protocols
Downloads
- FIXED: SQL_CUSTOM: Strip Custom Input Chars -> Strip Custom Chars
Zombies & Demons 5.0
in ARMA 3 - ADDONS & MODS: COMPLETE
Posted
Very cool mod, love the zombies climbing out of the ground
Not sure if you got PM, arma forums can be weird at times...
Any chance of signing the mod?
Also any idea what license you are going to use for the mod ?
Keep up the great work