Jump to content

torndeco

Member
  • Content Count

    312
  • Joined

  • Last visited

  • Medals

  • Medals

Posts posted by torndeco


  1. Already told you absolutely no point sending source code.
    BattlEye doesn't even look at the email attachments :)

    edit: Infact when i included the source code, they just randomly whitelisted an older version of an extension. And told me it was done ;)
    Been there, done that.

    Just get it the dll blocked by battleye, then send them an email with the filename for the dll. 
    Thats all you need todo
    Try put in the title callextension / malloc developer, might get them to look at email faster *shrugs*


  2. New version uploaded at https://bitbucket.org/torndeco/extdb3/downloads

     

    • Updated mariadb-c-connector
    • Fixed:   9:RESET bug
    • Fixed:   SQL_Custom: BEGUID
    • Fixed:   SQL_Custom: Return InsertID
    • Fixed:   SQL_Custom: When re-using an input value


    Outstanding Issue
    SQL_CUSTOM: Multiple SQL Statements support isn't implemented yet (oversight)
    i.e  

    SQL1_1  Select ...... 
    SQL2_1  Update .....

    ------------------------

    If you encounter a bug please sent a database snapshot so i quickly re-create the bug  thanks.

    • Like 1

  3. To get BattlEye whitelisted, just get it blocked once by BattlEye and then send an email with the filename to BattlEye to get it whitelisted.
    Don't bother to attach the files/source code etc..

    Important:
    If BattlEye is doing maintance or the BE Servers overloaded etc, it will by default block the dll, even though its whitelisted.
    Its the same method as for getting an extensions whitelisted.
     


  4. https://forums.bistudio.com/topic/169723-extdb-arma3-extension-linuxwindows/?p=3014213
    https://forums.bistudio.com/topic/169723-extdb-arma3-extension-linuxwindows/?p=3017270

    There are plenty of people that have extDB2 forked on github or have the binaries i.e
    A3Wasteland Release Files / Exile Release Files and then all the github forks etc...

    Also it really is not much work to recode SQF from extDB2->extDB3.
    There is just a bit of work if you had SQL_CUSTOM_V2 before with custom inputs.

    ------------------------------------------------------
    As for why a new extDB3
    It had to be rewritten so i could change the license, plus it was something i been meaning todo for awhile.

    Improvements include 
    Its faster / less memory allocations / leaner / better error checking for SQL_CUSTOM / better support for Datatypes.
    Actually now supports normal SQL, so you can call Procedures.
    Plus the ability to unlock & reset the extension, makes testing / reloading SQL_CUSTOM in the editor possible.

    ------------------------------------------------------
    As for linux i need to setup a linux machine, setup a build enviroment & compile & test.
    Meant to start today but i got distracted with other stuff *shrugs*


  5. Really weird choice of feature to add imo.
    I could think of much better stuff needing fixing that an ingame quick join imo

    Considering the player has to already decided which mods they want to use beforehand.
    So at that stage they have already decided on either to play a vanilla or a specific type of modded server.

    It would made more sense if arma supported dynamic changing the mods loaded.

    -----------------

    As for game types, you could let the addon authors themselves be able to add different game types into the mod config.cpp (or what the new version is now).
    Then just adjust the mission description.ext & server query to be able to handle this feature.

    That way mods like Exile/Epoch/2017/BattleRoyale/Alive/Ace could make up their own game modes, without having to bug BIS to add a new game mode.
    Lastly the UI really needs work
     


  6. Weird i thought i had it throw a warning in the log files about Long Text when using Prepared Statements.
    I actually re-created the database with Text Values :P
    But I double check whats going on there later tonight.


    Anyway text is really long enough for 99% of things arma related.
     

    Type | Maximum length
    -----------+-------------------------------------
    TINYTEXT | 255 (2 8−1) bytes
    TEXT | 65,535 (216−1) bytes = 64 KiB
    MEDIUMTEXT | 16,777,215 (224−1) bytes = 16 MiB
    LONGTEXT | 4,294,967,295 (232−1) bytes = 4 GiB

    Due to technical details i recommend to only use Medium Text / Long Text Fields with SQL & not Prepared Statements....
    This is because the memory is pre-allocated beforehand with prepared statements.
    So if you have a query fetching multiple Medium Fields, they will take up 16MB in memory for each value for a split second. Which can become an issue
    This shouldn't be an issue with SQL Statements, or just use TEXT Values (which are big enough imo).

    -------------------------------------------------------------------

    Anyway new version is pushed
    Improved Handling MySQL Error Output for SQL_CUSTOM, it wasn't outputing mysql error info in some scenarios.
    Fixed 9:LOCK:qwerty   9:UNLOCK:qwery

    https://bitbucket.org/torndeco/extdb3/downloads


  7. @nesias
    Unlocking issues & Add Database will be fixed later today.
    Literally  just compiled a new version afew minutes ago

    But i need more info for your other issue, to replicate it

    Replace @extDB3\extDB3.dll with the one from If you look in Optional\Debug Files\extDB3-debug.dll
    i.e you will need to rename file or change your code to "extDB2-debug" callExtension

    Then replicate your issue when trying to fetch results.
    That way i can see exactly how you are calling it

    Thanks.


  8. Recommend you use SQL_CUSTOM, its alot more powerful and safer.
    You can use either SQL or Prepared Statements, not to mention you can use mysql_escape for raw SQL.

    [Default]
    Version = 1  
    ;; Used incase there is ever a breaking change, or to inform user in log about a new feature.
    Strip Chars = ";[]"
    ;; List of characters to strip out  
    Strip Chars Mode = 0
    ;; 0 = Strip Bad Chars, 1 = Strip + Log Bad Chars, 2 = Return Error & Log Bad Chars  
    ;;     Note: Logging on works when sending data to database.
    
    
    [updatePlayerBackpack]
    Prepared Statement = true
    ;;   If set to false, uses SQL instead of Prepared Statement
    ;; Return InsertID = false
    ;; Strip Chars = ""
    ;; Strip Chars Mode = 0
    ;;    Incase you want to override the Strip Chars from [Default]
    
    SQL1_1 = UPDATE players SET backpack = ? WHERE id = ?
    SQL1_INPUTS = 2,1
    
    [updatePlayerBackpack2]
    ;;Example of Raw SQL Version
    Prepared Statement = false
    ;;   If set to false, uses SQL instead of Prepared Statement
    ;; Return InsertID = false
    ;; Strip Chars = ""
    ;; Strip Chars Mode = 0
    ;;    Incase you want to override the Strip Chars from [Default]
    
    SQL1_1 = UPDATE players SET backpack = "$CUSTOM_2$" WHERE id = $CUSTOM_1$
    SQL1_INPUTS = 2-mysql_escape,1-mysql_escape
    "extDB3" callExtension format["0:SQL_CUSTOM:updatePlayerBackpack:%1:%2",_id,_backpack];  // Sync
    "extDB3" callExtension format["1:SQL_CUSTOM:updatePlayerBackpack:%1:%2",_id,_backpack];  // Aysnc = faster

  9. @ozdeadment
    Thanks & Epoch use their own extension, not sure what KOFH is using :)

    @Everyone
    Anyway first test build for extDB3 is out if anyone wants to try/test it out.
    Windows builds only atm, i need to install & setup a linux build enviroment again.

    Recommend only for testing atm, atleast until the weekend.
    There might be some bugs (alot got change code wise), but it should be good.

    https://bitbucket.org/torndeco/extdb3/wiki/Home
    https://bitbucket.org/torndeco/extdb3/downloads
     


  10. No i have dropped Poco Library altogether, that way i could support MySQL fully including LongText / Procedures.

    But PostgreSQL does have a c/c++ connector and under a decent license, so it shouldn't take to much work to add it in.
    The problem is no-one would use it, everyone is more familiar with MySQL.

    If you are secreting working on an arma mod that will have public serverfiles & want to use PostgreSQL, then i could look at it adding it in.
    But otherwise its not worth the work imo, but you never know i might get bored at some point.

    • Like 2

  11. Would appreciate if anyone has a populated Database backup they can share.
    Will help save me some time in testing, doesn't matter mission system etc.... Send via PM  thanks

    If testing goes well, i will compile Linux & Windows versions & should be a new release tomorrow.
    Currently the extension on windows is around 1.1MB in size :) & updated WIKI is almost done
    Thanks
     


  12. I currently looking at doing rewriting a new MySQL/MariaDB Database Extension.
    Will also aim at making it back compatiable with SQL_CUSTOM_V2 files to ease switching over.
    Am expecting to have it ready in under a weeks time.

    Changes:
    Switching over to MariaDB C Driver from MySQL C Driver.
    Dropping SQLite Support, to my knowledge no-one was really using it at all.
    Dropping RCon & Steam Support initially, but plan to re-add at later stage.

    Improved performance by directly using the C Driver instead of library will avoid unnecessary memory allocations etc..
    Support for all/most MySQL Datatypes & handle long text etc...
    Support for proper raw SQL Statements & Procedures etc...

    -----------------

    License Changes:
    The extension will be packaged together as a serversided addon licensed under
     
    Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.
    Note: This is the same license as ALIVE and lots of other addons...


    If a project really needs to they can ask me for permission to repackage the extension.
    As a rule of thumb, once your project is either one of Arma Public Licenses or an Open Source Initiative Approved License it should be fine.
    If i don't answer that doesn't mean you automatically have permission.


    Also Server Monetization once you follow BIS Rules is also fine.

    • Like 2

  13. I am kinda fed up with Arma lately, not sure if i will bother to release anything publicly anymore.

    -------------------------------------------------------------------------------------------------------

    Main Reason:
    I have asked a certain addon to not redist extDB2, because i don't believe in their interpretation of their license.
     

    Unfortunately i can only ask, kinda what happens when you make something opensource.
    But they are still gonna redist extDB2 files anyways.

    Other Reasons:
    Arma still hasn't implemented a string command that escapes quotations. 
         Pseudo Code find and replace all  "  with "". Its a 10 minute job tops, arma is already using Boost Library  ;) 

    Arma still has a memory allocator for memory allocator, that you can't disable we are talking Inception level crap right here :ph34r: 
    Arma went and added logging overhead for callExtension.
      They already had it coded & implemented when they asked for my feedback  :huh: 
      Was basically implemented for rpt logging of callExtension taking to long for badly coded extensions.

    Linux Servers Performance sucks so bad
      Imagine not having to pay for Windows OS License Fee for a dedicated server. Would help out the little people
        Hell i would help out if had access to the code for a week, but they don't give community access for obvious reasons.
      BIS don't compile a version of binary without JEMalloc statically linked. Would be nice to use PRE_LOAD to change the mallocs around.
            i.e using transparent huge pages
     

    -------------------------------------------------------------------------------------------------------

    Unless i rewrite parts of extDB2 i.e
    switch over to MariaDB C Driver instead of MySQL C Driver
    and remove Rcon code
    That way i can change the license this is basically the end.

    -------------------------------------------------------------------------------------------------------

    I am sure there will be other extensions people will make, hell they will prob be alot easier to use than extDB2.
    Especially with the new getUnitLoad commands etc that are in latest arma but still WIP

    Can a moderator please lock this thread thanks


  14. I have only encountered the createvehicle issue in unscheduled environment. For this reason and others I always spawn units/vehicles in a scheduled thread.

    It can happen in scheduled environment, its just rarer to happen.

    I had to add some waituntils to make sure the code worked correctly, was just abit slightly annoying.

    Especially when the sqf code didn't error out at all

     

     

    For anyone interested, there's remoteExecCall that is actually able to execute code in an unscheduled environment even when run from scheduled. The downside is that it produces network traffic (even if the object is local / this client's ID is specified, tested by packet capture) and doesn't pause the scheduled execution nor does it provide any handle to wait on.

    It would still be great to have a way of executing unscheduled code from scheduled execution, waiting for it to complete. This could be used to implement mutexes where necessary (independently spawned scripts needing to modify one object and do so in a specific sequential fashion, ie. hierarchical loadout modification).

     

    You can use an fsm to call a sqf function to accomplish the same thing without any network overhead.  

    http://killzonekid.com/pub/call.fsm

    http://killzonekid.com/arma-scripting-tutorials-code-performance/

    ---------------

    Unfortunately you can have multiple eventhandlers running concurrently at the same time.

    There is noway in Arma atm to implement a proper mutex atm, its basically using a atomic bool to function as a lock.

    Most of the time you will be ok, but eventually multiple code running at same time will get past the sqf lock.

    Exile Mod have ran into this issue quite abit.....

    It is kinda funny that with Arma SQF

    You can copy an array (but that makes a  reference to the array, unless you deep copy the array).

    When in SQF do you need to reference an array ??? When ???

    But a mutex is appparently to advanced to implement

    ---------------

    If you need a mutex use a simply callExtension that contains a map of bools to function as mutex lock.

    It will be pretty simply & run pretty fast aswell.

    The only issue is BattlEye will random block this extension if the backend goes down, so you can only really implement this on a server not on clients.

     


  15. The pointed issue here is the response does not comply anymore with ServerQuery standard, not that they added some data to it, we cannot read the data as it should be according to SourceQuery rules.

    You asked me how i knew if it was documented so i answered :)

    I already told you they changed the server query response, so it no longer follows SourceQuery rules 100%.

    I also mentioned you how you can try to bug Dwarden for more info via Skype/Discord.

    But he was already bugged this week or last week and there are no plans yet to document it yet.

    So we are stuck till whenever/if BIS decides to document the changes

    Unless you manage to reverse engineer the query response & figure out how the shorthash+steamID is encoded.

    anyway gl

    .

     


  16. Capture the response packets and attempt to reverse engineer it.
    You will see the workshop id & shorthash for each mod is in the server response (reverse checksums).

     

    The real issue is the the shorthash seems to vary in number of bytes.
    Its slightly confusing and i am not sure exactly what BIS is doing here.
    Realistic need to know this, so you can parse the server response correctly.

    This info was added so the arma3 launcher could link the server mods to steamworkshop id.
    Otherwise the launcher would be able to automatically download steamshop mods when joining a server.

    If you want to query BIS, you bestoff to ask Dwarden via Skype/Discord.
    But you won't get anymore info.


  17. Yeah i was doing some animations before & i encountered the same issue were the frames were outof order in ObjectBuilder.
    So i assumed i messed up, plus when i tweaked the animation the issue disappeared.

    Then i started to work on importing some animations into arma atm (multiple animations all contained in a 0-2400 frame range).
    I encountered the same issue afew times again but only with certain frame ranges, but i could replicate it 100%.
    So i went looking in the code to see what could effect the frame order.

    --------

    Anyway i pointed out the code thats responsible for the issue and explained why i think its happening.
    Also gave a quick dirty fix, that disabled a line of a code that removes duplicate frames.
    Its easy enough to recode that line if its needed, but i dont believe its needed (am new @ animation etc).

    --------

    The funny part the closest person i could find to report that issue is yourself @ 
    https://forums.bistudio.com/topic/145290-arma-toolbox-for-blender-arma-23-exporter-script/?p=2713436
    I wasn't able to use auto-timing feature in ObjectBuilder, because it messed up the RTMs on me.


  18. Very nice toolkit

    Ran into issue while exporting RTMs, were the order is sometimes messed up.

    Eventually i got tired trying to work around the bug & fixed the bug in RTMExporter.py

    Fixed it by commenting out the following line

        #keyframeList = list(set(keyframeList))

    Its been awhile since i messed around with python, but i am assuming the issue is that sets are unordered map
    So even though you are sorting them beforehand, you aren't guarantee the order will still be the same afterwards.
    Worse case the code isn't removing any duplicate frames


  19. BIS changed how server query works, so they could include extra info like steam workshop id.
    There is no documentation for this.
    If we are luckly BIS might document for Eden, but there is no offical plans etc  :(

    ---------------

    https://forums.bistudio.com/topic/188304-has-anyone-got-a-working-arma3-server-query/

    This is also prob the reason why PlayWithSix released there server deamon tool i.e 

    https://forums.bistudio.com/topic/188490-withsix-gsd-game-server-daemon-released/

×