Jump to content

torndeco

Member
  • Content Count

    312
  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by torndeco

  1. torndeco

    Arma 3 Server monetization

    Am just curious, since i can't quiet grasp if this is meant as something that is acceptable or not under the new server monetization rules. Since the rules declare its either either fully open or closed off and don't directly mentioned reserved slots. My personally 2 cents its about the only decent + fair way for server administrators to raise funds. Once its limited to like around 5-10% of total slots to the server. The only issues really is its not always clear why a player is getting kicked. Also would be alot better if reserved slots were integrated into the game itself.
  2. Would appreciate a forum moderator just locking this thread. extDB in its current state is dead If i do release a new version of extDB, more than likely will be some changes... I will post a new thread if i do go that route. Also while you are perfectly free to fork extDB etc... please make up your own thread. edit: Also if you do fork extDB etc, please rename the extension to avoid confusion with users and pay attention to the license for the code in question.
  3. extDB Repo is currently private atm ------- There was abit of fuss over someone posting a thread asking for extDB donations on Altis Life RPG forums, wasn't even me. Thread was removed / hidden due to fact it was to donations for myself / extDB development and wasn't against a forum Rule (i checked). So it was directed at me over me not actively supporting Altis Life RPG mission anymore Mainly due to me not wanting to be associated with a RPG Mission with Rape / Attempted Rape in code for crimes etc.. While i talked to Tonic quickly over the issue I have made extDB repo private while i decide what i will do Do nothing Code Changes to Drop Altis Life RPG Support Even a License Change (not preferred) Donations only came up in Issue Tracker due to Linux Server Costs & Server Renewal was coming up. There is no finance reason to pay for a server just for working on an extension i wasn't using. Donations would go towards paying for Dedicated Server costs, so i would do continue todo development work on extDB. I even mentioned i would more than likely come back regardless anyways after Arma 2017 Release. ------- Anyway don't worry for the 2 people that donated. (Same person donated twice thank you) I should have it backup up in 48 Hours or i will return your donations. Upcoming updates if i do continue are 1) Apache Thrift Support for remote server script execution 2) Support for Dynamic SQL Statements in DB_CUSTOM_V5 (mainly for A3Wasteland) If you have issues or questions that are not Altis Life RPG related send me a message on forums and i am sorry about the inconvenience.
  4. Most projects seem to be fairly off the ground atm, in-regards to general SQF Scripting. As far as projects using extDB, there might be one or two in the works. But they are still far off from completion. So far i just been messing around with Blender slowing getting used to the UI. But that's gonna to take awhile to get any good a modeling assuming if i have any talent at it. I think my best bet is just go inactive till Arma 2017 release. ---------- I might wrap up Redis support since its 90% of the way done atm *shrugs* Key-Value Storage does have its advantages when it comes to easier for scripters to implement without having to know SQL.
  5. You only got afew choices really 1)Ask for a new feature for Battleye 2)Make 3rd Party Application/Web Page for RCon commands so you dont need to give out RCon Password 3)Make an extension to send RCon commands and make up SQF Code in the mission for admins. extDB if you interested has RCon features
  6. torndeco

    Arma 3 Server monetization

    Got to love the map / model makers aren't allowed to make money of thier hardwork. But server hosters are allowed to generate money ??? Can map makers add in advertisments to thier content now as a source of revenue ? I mean Server Admins can plaster advertisement in. Atm its in addon makers best interests are not to release server keys for their content. That way they can restrict server files to GSPs Setup up a-few public servers + bunch of private servers (requiring payment to access). -------------------- Also last i looked Arma3 has more empty Servers than it needs, granted alot of them are Life / Wasteland Missions Do we really need these new rules to fund more empty servers. Alot of 3rd Party Content is getting Non-Commerical Clauses in their license. Not even Arma Licenses for Content Makers to use https://www.bistudio.com/community/licenses Not one has a allowance for Commerical Usage -------------------- Also you examples are weird i.e buying a Red Apache Heli Do you mean people will be allowed micro transactions to buy Weapons / Vehicles, or just the ability to choose a different colour. Because these are 2 different things with drastically different effects on Gameplay.
  7. Just a heads up but extDB may be going in hibernation for the foreseeable future... -------------------------- It appears Tonic's Altis Life RPG is pulled down and may not be coming back read info @ http://www.altisliferpg.com/page/index.html A3Wasteland Agent Rev is focusing on college, plus A3Wasteland is using an older version of extDB (packaged) http://forums.a3wasteland.com/index.php?topic=1131.0 Which means there will no longer be a public supported mission or mod currently using extDB. -------------------------- On top of that Linux Servers aren't getting a Physics Library Update till Debian 8 is released. Quite frankly Linux Servers get very little attention, and they are getting hobbled over waiting on Debian 8 release = very annoying. Not to dismiss the work of Arma Linux Dev's, love the fact Headless Client got Linux Support + callExtension support for Arma3. But this latest decision is a joke imo. Especially when Linux admins, could easily do LD_LIBRARY_PATH their GLIBC as a workaround. (Linux admins done it before due to an issue) Run armaserver in a chroot environment or just install another Distro. We aren't talking a Windows OS License, most / all Linux Distros are free. ------------------- Note i am still hopeful for Arma 2017 public release, they have some v.interesting ideas / concepts. But regardless atm there is no reason for me to keep working on extDB features without any active feedback. Who knows maybe i come up with an idea for a mp mission / addon *shrugs*
  8. Version 34 Bunch of Fixes + RCon + VAC Query Code should be good to use on a public server VAC Bans aren't yet fully automatic i.e you need to ask extension to check the playerUID Some basic examples are 9:START_RCON:RCON // Starts RCon using [RCON] settings from extdb-conf.ini 9:START_VAC // Starts VAC (dedicated worker thread for Steam/Vac queries 9:ADD:VAC:vac 1:vac:VACBanned:<playerUID>:<playerUID2>:<playerUID3> etc.... If will autoban players via RCon if detected + enabled via extdb-conf.ini. Note you can also use 2:vac:VACBanned:<playerUID>:<playerUID2>:<playerUID3> To get back results from the query if interested... 9:START_RCON:RCON 9:ADD:RCON:rcon 1:rcon:SAY -1 This is working omg Changes ADDED: Version Output to Test Application @ startup FIXED: Logic for auto creating Worker Threads was broken in v33. FIXED: RCon now works correctly in Windows + Linux FIXED: VAC Protocol Now works correctly. Returns empty Bans / FriendList if Steam Server doesn't answer in time. FIXED: VAC Protocol 1: Now works correctly, instead of reporting back SYNC NOT SUPPORTED FIXED: Unique ID Leakage, only happens in certain scenario (bad sqf code/ logic) FIXED: MISC Error Message FIXED: MISC Random String + Uninitialized variable thanks Marius Huse Jacobsen UPDATED: DB_RAW_V3 now adds strings to DATE + TIME Datatypes UPDATED: Backported some minor fixes for Poco Library UPDATED: Windows Builds now built with VS2013 Community Edition (was previously Express Edition) Downloads https://github.com/Torndeco/extdb/releases Also thanks to Marius Huse Jacobsen for taking time to compile extDB + point out some mistakes i had etc..
  9. Version 33 Afew new features added to extDB, some are abit incomplete though atm. extDB can now connect to different Databases at the same time. via 9:DATABASE_EXTRA 9:ADD_EXTRA New RCon code should be good, it just needs live testing on Server. Yes that means you can use RCon Commands if you add the RCON Protocol. I will add the ability so you can lock down the Protocol down more in the next release i.e limit the RCon Commands you can send. Steam VAC Queries shouldn't be used on live server, steam doesn't always respond, or in a timely manner. I cant stress this enough, VAC Protocol isn't ready for a live server yet. Basically i just need to code to timeout for http gets when Steam decides to not respond / take forever (will be fixed in the next release) Think of it as a tech preview, were you can go and test out some code etc (when it behaves itself). Changes ADDED: DATABASE_EXTRA + ADD_EXTRA System Calls Used for connecting to Different Databases ADDED: VAC Protocol Steam Ban / Friend Queries (Note: Known Issue with Steam not always responding to HTTP Requests, need to add code to timeout) ADDED: RCon Protocol (Will add ability to disable/enable certain RCon Commands in next version) UPDATED: New MISC_V2 Protocol Changed the return Output to match other Protocols i.e [1,<Result>] instead of <Result> FIXED: LOG Protocol Error Handling wont crash server, will report error if there is an issue i.e file permissions etc FIXED: DB_CUSTOM_V5 Removed Leftover Mutex Lock (Improved Performance) Known Issues If Steam fails to respond to VAC Query it doesn't timeout. Prevent any more VAC Queries from been run... This will be fixed in the next version, recommend you only use VAC Protocol to test out some development code + not on a live server. Downloads https://github.com/Torndeco/extdb/releases
  10. extDB is dumb it doesn't do anything with the values unless you tell it to... --------------------------------------- --------------------------------------- So for instance SQL1_INPUTS = 1-STRING, 2, 3-CHECK-STRING, 4-STRING, 5-STRING Its an INPUT Option You told it to strip "" from the M + then wrap quotes around the result i.e "M" This way when you fetch the value later on from the Database it will compile as a string. Otherwise you would just get M and arma won't be able to compile it, since it doesn't know its a string. The other Method is OUTPUT Option OUTPUT = 1-STRING, 2, 3-CHECK-STRING, 4-STRING, 5-STRING It will strip "" from the M + then wrap quotes around it i.e "M" Since its fetching value before it modifies it, this way the Database doesn't store the quotes for the value. Have a look @ example_V5.ini in the latest Releases --------------------------------------- --------------------------------------- Basicly extDB does not auto-detect values in Database. Since you could add Arrays / Bool / Numbers / ObjNull to a Text / VarFields Field etc So you either need to tell it to add quotes when inserting the Data (INPUT Option) or when you are retrieving the data (OUTPUT Option). Note: The String Datatype Check only checks the Database Column Datatype, not what is stored inside it. Its there for legacy reasons More info in example_V5.ini --------------------------------------- --------------------------------------- There is no combined Statement (unlike DB_CUSTOM_V3 / DB_RAW_V3) DB_CUSTOM_V5, uses Prepared Statements (which it caches per Database Session Internally for performance) http://en.wikipedia.org/wiki/Prepared_statement So for instance, Insert character_base (PlayerUID, MapID, CharacterName, CharacterSex, Model, Last_Updated) values (?,?,?,?,?, now()); That is your Prepared Statement that is sent to SQL Server, as is, no values are inserted etc. It is sent to SQL Server were it is compiled (which extDB then caches). Your values are then sent completely separate to the SQL Server. This prevents any SQL Injection Attacks (since Database knows only values are sent, no SQL Code) Yes there is a small performance penalty for the first time a Query is run. But it is faster for then on, since the Prepared Statement is already compiled. extDB just sends it the new values from then on. --------------------------------------- --------------------------------------- Sidenote: String + Sanitize check are overkill together. String Option alone should be enough to stop players from escaping their PlayerName to get it arma to run some code. That is why String Option removes " before it wraps the value, i.e "<value>" Plus Sanitize Check will basicly greenlight every string under the sun.
  11. Nope that is normal behaviour and has been since v3 of extDB. ----------------------------------------------------------------------------------------------- extDB will return your results as if they are multi row results in an array. Easier to code in SQF this way So for example extDB result is [1,[<row1>, <row2>]] [1,[[<column1>,<column2>,<column3>], [<column1>,<column2>,<column3>]]] That is why fn_async has https://github.com/Torndeco/extdb/blob/stable/sqf/fn_async.sqf#L69-L71 To select the first element from array if multarray bool is false I may add that feature in later @ some point were you can define in db_custom that its only getting a single row back or a single column result. ------------------------------------------------ More than likely you are using an old version of fn_async that doesn't check for error messages from Protocol https://github.com/Torndeco/extdb/blob/stable/sqf/fn_async.sqf#L63-L66 That way it would have return 0 (since its first element from [0,<error message>]), even though it encountered an error from MySQL Query.
  12. Exactly the results are just stored in a unordered_map until you fetch them. The message itself is either [1,<result>] or [0,<error message] It allows me abstract the different Protocols in extDB + be more flexible etc... -------------- You are on a roll finding bugs, normally on Skype if you run into a bug... Will be pushing out new version in abit, fixes for DB_CUSTOM_V5 INPUT Option String (forgot to string " from the string) + INPUT Option CHECK (was returning wrong value i.e false when true , true when false etc) ---------- Post added at 15:30 ---------- Previous post was at 14:42 ---------- Version 32 Just a minor bug fix release... For people using DB_CUSTOM_V5 Also added some exception handling error messages when Database is connected to the first time aswell. Changes ADDED: Better exception handling for when adding Database FIXED: DB_CUSTOM_V5 Input String Option wasn't stripping "" FIXED: DB_CUSTOM_V5 Input Sanitize Checks (was reversed results) FIXED: Improved DB_CUSTOM_V5 Error Messages Downloads https://github.com/Torndeco/extdb/releases
  13. There is no way for Data Feed to end with an error... There are only few different scenarios when fetching Results 4/5 [3] is Wait [5] is when you send 4:<Unique ID> and message is to big to fit in a single return Empty String to indicated END OF STREAM, no message There is no scenario where extDB will return an error here, if there is no string its either end of message or you have the wrong Unique ID. The only errors are Error Messages etc from the Protocol itself. Changing it to say "END OF STREAM", would have zero effect + is really just a breaking change to extDB at this late stage. Plus checking if string is empty should be faster in arma. ----------------- Logging code has changed like 4 times by now... The previous options for logging really didn't due much to be honest. But v31 has the ability to change logging output to buffered writes (this is for LOGGING Protocol + RCon Logging only)
  14. @RimBlock Its most likely due to a change in Poco Library Code, [0] is abit odd though. Anyway its kinda fixed in v31 :P For extDB the correct behaviour is receiving a "" for a NULL Value from the Database. Should be good enough, or you could look at using Count or Filtering out NULL Row from your SQL Statement etc... --------------------------------- --------------------------------- Version 31 Main changes are extDB2 is now extDB the old extDB builds are dropped. Turns out extDB2 was compatible with extDB, i was wrong about a Poco Library change oopps :) A bug fix for Windows Users, extension now cleanly shutdowns It now waits for outstanding SQL Statements to finish before shutting down. Changes: version 31 FIXED: Shutdowns of extension FIXED: NULL Values once again return "" Changes: version 30 ADDED: Option for ASync Logging i.e buffered log syncs to harddrive FIXED: MISC Log will now log to extDB logs if no filename given (old behaviour) FIXED: MISC Random String + Random Unique String, was returning 1 for first value by mistake. REMOVED: old extDB builds, extDB2 builds renamed to extDB ENABLED: RCon code, atm it just creates Battleye Logs. Needs testing on Live Server FIXED: Fixes to RCon Code UPDATED: extdb-conf.ini + db_custom examples Note: There is RCon code that needs testing if someone wants to try it out. If you do please not it hasnt be tested on a live server yet. So its worth making sure server restarts correctly with it enabled etc... Downloads https://github.com/Torndeco/extdb/releases/tag/v31
  15. Version 29 Main things are fixes for DB_CUSTOM_V5 + INPUT OPTIONS extDB2 now works on Linux Some extra error handling + just some minor code improvements. CHANGED: 9:ADD Protocol, now checks if Protocol Name already exists ADDED: DB_CUSTOM_V5 Prepared Statement Cache = true/false FIXED: DB_CUSTOM_V5 INPUT Option Logic FIXED: Added Exception Handling for Logging Initialization FIXED: Cleaner Shutdown for Database Connectors FIXED: Added Exception Handling for DB_CUSTOM_V3/5 + NotImplemented when fetching results FIXED: Sanitize Test App Input Limit FIXED : extDB2 Linux Builds Version 28 Changes ADDED: Support for MySQL Secure Auth, default = false CHANGED: Disabled Rcon Code Note: Support for extDB will prob get dropped soon, as its a pain to maintain this many builds. Plus planned new features are all nearly require Poco 1.6 which is extDB2 only.
  16. Version 27 Highly Recommend you upgrade if using v22->26 (session leak) Should also improve performance aswell, and reduce load on MySQL Server for connections. Fixed Database Session Leak Added more exceptional handling, mainly for spdlogs + poco 1.6 DB_CUSTOM_V5 Version bumped to 7 edit: happy new years
  17. Below is a copy/paste from chat i asked a-few people on Skype... Decided i just put it up here aswell... Please note: If you do decide to send details PM them i only need a day or 2 + you could change the password afterwards. I fully understand its an odd Request and also understand if no-one sends me details. Just asking, since it will help me test out RCon Code faster Lastly, it does really need to active Server, with Players joining + disconnecting etc.... Server that is low pop count i can pull off myself in testing. Anyway thanks for reading the wall of text
  18. Version 26 I think Version 25 was a hotfix version or i just bumped the version number twice by mistake. Important extDB2 is not compatiable with extDB if you are using String Auto Detect or DB_RAW_V2. So extDB2 will not work outof the box for Altis Life RPG. RCon / VAC features pushed back to next release version. Please note the OS Requirement bumps, i will revist after the New Year. Changes UPDATED: LOG PROTOCOL, 9:ADD:LOG:LOG:custom.log 1:LOG:BANLOG:OMG IT WORKS UPDATED: DB_CUSTOM_V5: added Option AltisLifeRPG_Array It uses the same method as Altis Life RPG for converting Arrays. Added specifically for anyone moving from (Altis Life RPG) extDB DB_RAW_V2 -> extDB2 DB_CUSTOM_V5. FIXED: DB_CUSTOM_V3 db_custom directory location is now based off extension location i.e @extDB/db_custom FIXED: DB_CUSTOM_V3 Exception Handling now behaves as intended. CHANGED: Log Format changed slightly + removed some log options from extdb-conf.ini CHANGED: 9: DATABASE:<foo> will Return [1] or [0, <ERROR MSG>] if Database Connection Fails, instead of killing Server. Will allow mission makers to make it more clear whats gone wrong. extDB2 Changes Now Detects Text DataType in MySQL as Text This will effect the likes of Altis Life RPG or other missions using String DataType Check or DB_RAW_V2 Full Procedure Support i.e returning results from Procedures Date Time Support Long Text DataType for MySQL Support without crashing Notes Yes there is Rcon config settings there + yes it does something, but please leave it disabled for now. Otherwise at best you waste CPU having extension connected to Server via RCon, worst it crashes Server :rolleyes: I may push a new release tomorrow with some functional RCon, Steam VAC Code. Just this release was dragging on abit Requirements Linux Linux Distro with Glibc 2.17 or higher. Debian 8 / Centos 7 / Ubuntu 14.10 Windows Windows Server 2008 + Later Windows 7 + Later vcredist_x86.exe After New Year i will look into lowering requirements for both OS, but no promises. edit again: IMPORTANT Changes for DB_CUSTOM_V5 Forgot to bump version number for DB_CUSTOM_V5 + changes to Bad Chars, now Strip Chars. Check out the updated example.ini on github or https://github.com/Torndeco/extdb/wiki/Calls:-Protocol--DB_CUSTOM_V5 Strip Chars Options can now be overridden per call, or be enabled / disabled for specfic values aswell.
  19. @RimBlock Its just DB_CUSTOM_V3 error handling logic that is messed up, the rest are fine. If you like just grab the test build where it is fixed. DB_CUSTOM_V5 uses Prepared SQL Statement http://en.wikipedia.org/wiki/Prepared_statement After the first run it is cached per Database Session. If extDB encounters an error the cached Prepared SQL Statement is removed from cache + it returns error to arma. I am planning on adding support to define using Procedures / Prepared SQL Statement / RAW SQL Statement (similiar to DB_CUSTOM_V3) at a later stage to DB_CUSTOM_V5.
  20. @RimBlock Yeah its the entire exception handling for DB_CUSTOM_V3 is messed up logic wise. Fixed in the test build Hopefully will have extDB2 Builds out later today... depending on work in rl. @Yourry Nice to hear you got it working etc.. By Skype i mean typing in text channels, not voice. http://forums.bistudio.com/showthread.php?130898-skype-group&p=2101700&viewfull=1#post2101700
  21. @RimBlock Yeah someone just came across that bug like around 2 days ago... Theres is a hotfix build for Windows @ https://github.com/Torndeco/extdb/tree/dev/release/windows/test Got another issue i need to reproduce and fix atm :( @Yourry Sorry about late reply had to get my local code into a compiling state. Your really should grab skype ( i hate it myself, but arma community uses it sigh) be able to help out faster. You just mixed up DB_CUSTOM_V3 + DB_CUSTOM_V5 config files. Example of DB_CUSTOM_V5 https://github.com/Torndeco/extdb/blob/stable/release/windows/25%20Test/extDB/db_custom/example.ini#L219-L225 Example of DB_CUSTOM_V3 https://github.com/Torndeco/extdb/blob/21/release/windows/21/extDB/db_custom/example-a3wasteland.ini So if you change your config to [playerInfoWriteOnDB] SQL1_1 = INSERT INTO players_save (playeriud, name) VALUES (?, ?); SQL1_INPUTS = 1, 2-STRING Number of Inputs = 2 Basicly V5 = Prepared Statements, plus they are cached per Session. So there is really only some overhead first time they are ran.
  22. @Yourry There are afew different methods of using extDB to access Database... Kinda allows me to add changes without breaking stuff as much. DB_CUSTOM_V5.. No mission available as an example, but its similar method as DB_CUSTOM_V3. Just the implementation + db_conf.ini thats is different. Advantages its the safest method, since it uses Prepared Statements + will be more feature rich. Recommended method atm DB_CUSTOM_V3.. You could look @ A3wasteland, https://github.com/A3Wasteland But Agent Rev is using DB_CUSTOM_V3 + doing something that was never intended. So its slightly different than intended method of use. Or you could look @ https://github.com/Torndeco/A3Wasteland_Framework (i kinda gave up on this rewrite) DB_RAW https://github.com/TAWTonic/Altis-Life Altis Life RPG uses DB_RAW_V2, downside is all the making SQL Safe against injection is done via SQF Code. ------------------ I am normally on Skype. Torndeco is nick, you can find me in the Script Makers / Dedicated Server / Linux Server / Tool Makers Channel Send me a PM, and can answer any questions you got or help you out where you are stuck on
  23. Upcoming Changes for Version 25 There will be 2 Different Builds for extDB2, swear i want to give me a headache.... extDB: Old Stable Builds extDB2: New Unstable Builds extDB2 will be built using Poco Library 1.5/1.6, (finally got around to debugging a deadlocking issue). Reason for renaming extension is Poco 1.5/1.6 has fixed detecting MySQL Text Datatypes as Text. This will break any mission / mod that is using Auto String Detect on extDB i.e like Altis Life RPG etc... Benefits of updating to Poco 1.5/1.6 MySQL support for Large Text Datatypes (without it allocating 4gb straight away and causing a segfault) MySQL support for Date/Time Proper Procedure Support MongoDB + JSON Support (Might not make it into v25) Will also add VAC Bans Checking, returning results + logging support (be in both versions) Note: RCon Support may not make it into v25, if it does will be expermential extDB will still get some bug fixes + new features were possible backported in the near term.
  24. Version 24 This is mostly a bug fix release and just some new minor features. RCon features pushed back to next release version. ADDED: 9:LOCK_STATUS returns [1] if Locked or [0] if Unlocked ADDED: MISC:RANDOM_STRING + MISC:RANDOM_UNIQUE_STRING returns array of randomize strings. MISC:RANDOM_STRING:<Number of Strings>:<Length of Strings> MISC:RANDOM_UNIQUE_STRING :<Number of Strings>:<Length of Strings> FIXED: DB_CUSTOM_V5 Output Option is now working correctly. FIXED: extdb-conf.ini (& /extDB in same directory) file can now be located in custom path i.e @extDB, instead of Arma3 Root Directory
  25. @spitfire007 extDB is a Database Connector in simplest of terms its not made just for A3Wasteland... For example Altis Life RPG uses it + afew other versions of Life Missions... Some Epoch Arma2 Servers are using it for custom content etc... Go to a3wasteland forums for support, but last i checked there is no offical support for extDB yet (its still a WIP)
×