Jump to content

x39

Member
  • Content Count

    645
  • Joined

  • Last visited

  • Medals

  • Medals

Everything posted by x39

  1. https://community.bistudio.com/wiki/Arma_3_Module_Framework go thank me later
  2. XLib Version 1.2.5 WIKI GITHUB Description What is XLib? XLib is a script/module/functionality libary accessible for anybody Modules inside (for a functions list please visit the Wiki):X39_GM_Insurgency_ModuleX39_GM_Insurgency_Avoid_Module X39_XLib_GarbageCollector X39_XLib_Resupply X39_XLib_AmmoCaches So im a modder, what benefit i get from your mod? First of all, THX for your interest! Please report bugs inside of this thread ^^ check it by yourself: http://wiki.x39.io/index.php?title=XLib Downloads XLib 1.2.5 (use ArmaHolic) XLib 1.2.4 XLib 1.2.3 XLib 1.2.2 XLib 1.2.1 XLib 1.2.0 XLib 1.1.2 XLib 1.1.1 XLib 1.1.0 XLib 1.0.0 XLib 0.1.3 BETA XLib 0.1.2 BETA XLib 0.1.1 BETA XLib 0.1.0 BETA Other mirrors ArmaHolic withSix ArmA3.de Changelog 1.2.5 ADDED |- reduntant function X39_XLib_fnc_scalarToBool (exists also as X39_XLib_fnc_intToBool) \- "Display Name/Rank" Module --> Displays name (up to 50 meter) & rank (up to 100 meter) of any unit on the side of the player on the HUD FIXED \- InsurgencyModule groupRecreation if old group got deleted was not creating a RED;COMBAT group REMOVED CHANGED \- GarbageCollector module icon 1.2.4 ADDED |- function X39_XLib_fnc_executeLocalToUnit - Executes !SMALL! commands automatically local to given unit |- class "x39_itemcore" which can be used to add simple items to the game which wont do anything |v- RequestSystem --> Allows a modder to ask simple Accept/Deny questions to the player in a non blocking way (no UI is generated! Its a HUD element like the hint is) |\- function X39_XLib_fnc_createAcceptRequest - Creates a new Accept/Deny dialog for given target |v- InsurgencyModule ||- minDistanceToPlayableUnitsForSpawn (MDTPUFS) option - Sets how far a newly spawned unit should be away before it is allowed to spawn ||- maxDistanceToUnitGrid option - Sets the max distance an insurgency unit is allowed to walk away from its original grid before it gets despawned |\- maxDistanceToOwner option - Sets the max distance an insurgency unit is allowed to walk away from its 'Owner' (the unit which triggered the spawn) before it gets despawned \- function X39_XLib_fnc_damageTypeFromProjectile - Returns UNKNOWN, BULLET, GRENADE, SHELL or EXPLOSIVE depending on the projectile type FIXED |- ActionMenu opens other interaction menu when nothing has been targeted \- modProperties menus TYPE_COMBOBOX did not worked propper in selection menu REMOVED CHANGED \- ActionDisplay will close if there is no actions to display 1.2.3 ADDED FIXED |- 0000060: Clicking self/other interaction multiple times will cause unwanted feature \- X39_XLib_fnc_unregisterKey param1 default value is now -1 instead of 0 (was possible to abuse the function easily) REMOVED CHANGED \- ActionDisplay will close if there is no actions to display 1.2.2 ADDED FIXED |- ActionDialog feature sometimes overwrites actions when they are registered BEFORE the ActionDialogs init has been processed |- KeyCatcher feature sometimes overwrites keys when they are registered BEFORE the keyCatchers init has been processed \- KeyCatcher feature sometimes throws script issues when keys are registered BEFORE the keyCatchers init has been processed REMOVED CHANGED \- ActionDialog is now using ctrlSetEventHandler instead of buttonSetAction so that now SQF is supported ... (stupid arma ...) 1.2.1 ADDED FIXED \- game crash when addon gets loaded without XMS2 (include file path was still refering to an old file) REMOVED CHANGED 1.2.0 ADDED |v- KeyCatcher feature (automatic key catching without the need of integrating custom keyEventHandlers) ||- function X39_XLib_fnc_unregisterKey |\- function X39_XLib_fnc_registerKey |v- ActionDialog Feature (generic dialog available for anybody and accessable by simply adding new actions via script commands) ||- New entry in properties panel to configure the self/others interaction key |\- function X39_XLib_fnc_ActionDialog_registerAction \- function X39_XLib_fnc_convertCodeToString which converts a code (for example: '{hint "BLABLA"}') to a string (keeping the example: '"hint ""BLABLA"""') FIXED \- Escape cant be selected as key anymore (still dont know why you guys always chose it ...) REMOVED CHANGED 1.1.2 ADDED \- AmmoCaches modules endMission is now optional (default: disabled) + you can choose the end type FIXED \- InsurgencyModule is not spawning units after a random period of time (was caused by a deletion of the group so that the module tried to spawn units in a NULL group) REMOVED CHANGED 1.1.1 ADDED FIXED \- AmmoCaches module is not working because of a not broadcasted variable REMOVED CHANGED \- AmmoCaches module will now end the mission when all caches got destroyed using "end1" 1.1.0 ADDED \- Ammo caches module FIXED \- Insurgency module freaks out when to many units are spawned (should! untested) REMOVED CHANGED \- Insurgency module will now despawn units if player is to far away from spawner insurgency objects 1.0.0 ADDED |- ui base class RscMultiColumnListBox |- multiple new functions \- mod properties feature FIXED REMOVED CHANGED 0.1.4 BETA * added function X39_XLib_fnc_intToBool * new parameter options for X39_XLib_fnc_getUnitsBearing 0.1.3 BETA * added function X39_XLib_fnc_getUnitsBearing * added module: Resupply * removed wrong dependency on XActionUI (sorry for this) 0.1.2 BETA * finnalized the GM_Insurgency module set * added example mission for GM_Insurgency module set * added example mission for the GarbageCollector module 0.1.1 BETA * combined XLib with XEventSystem * changed some stuff on the GM_Insurgency module which fixed some problems * added GarbageCollector module (removes dead units, dropped items, empty groups) 0.1.1 BETA * RELEASE Feedback/Suggestions/Bug reports are welcome! https://github.com/X39/XLib/issues kindly regards X39 XLib by X39 is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.
  3. x39

    XLib - by X39

    i am sorry there was a URL change i forgot to apply to this post correct link now is: http://wiki.x39.io/index.php?title=XLib greetings X39
  4. Release https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.7.0-ALPHA Changelog Version 0.7.0-ALPHA |- Compiler: fixed objects added using the using instruction where not | touched by the PreProcessor |- Compiler: printout syntax got altered slightly (missing tabs and invalid | new lines) |- Compiler: fixed for required all params or it would throw a NPE |- Compiler: fixed NPE when assigning variables in other namespaces |- Compiler: fixed StackOverflow case with this variable |- Compiler: using directive threw out folder path instead of file path |- Compiler: using now is generalized (no difference between local and std | includes) thus syntax changed: | using ::foo::bar | instead of | using "::foo::bar" or using <::foo::bar> |- Compiler: fixed invalid encapsulation on object function "toString" |- Compiler: Changed cast operator from %...% to <...> |- Compiler: fixed templates only could use native types |- Compiler: added internal class "array" |- Compiler: added internal class "string" |- Compiler: Parser is more solid now (side effect thx to EBNF changes) |- Compiler: Fixed CfgFunctions class is never written out regardless of | the NFNC flag |- Compiler: Fixed invalid distinction between variable and function when | using a class variable with an object as type |- Compiler: class & native syntax now supports flags | (not important for generic oos users) | `class <IDENT> flags <FLAG1> <FLAG2> <FLAGN>` | Flags which got introduced: | - disableConstructor | - noObjectExtends | - virtualFunctionsOnly (not available in native) |- Compiler: Introduced enum`s. They got following syntax: | enum { <IDENT1> [ = <VALUE2> ], <IDENTN> [ = <VALUEN> ] } |- Compiler: SQF instruction now supports forcedType via "as". Example: | `SQF allPlayers as ::std::Array<::std::Men>` |- stdLib: added ::std::UI::Display object |- stdLib: added ::std::UI::Control object |- stdLib: added ::std::Marker object |- stdLib: fixed invalid typing in ::std::base::VehicleBase object |- stdLib: removed ::std::Array object (moved to internal classes) |- stdLib: removed ::std::String object (moved to internal classes) |- stdLib: added get-/setObject function to ::std::Context \- .oosproj: Added <srcfolder> attribute to set the source folder Known IssuesCreating a new variable containing an object requires auto keyword.Thus, the following is not possible: `::std::vehicle variable = new ::std::vehicle("foobar");` Passing an object of the same class which you are in right now will result inthe object getting assigned an invalid type ((Internally it will ref to the function which is for sure nonsense ... however ... harder to fix then it might sounds in first place due to the lower logic behind it)) (Not rly an issue but more of a note) currently only idents are allowed to becallen. Thus you cannot call from an expression following would be invalid: `(new foobar()).foo()` due to the fact that it is the following: `<EXPRESSION>.<IDENT><FUNCTIONCALL>`
  5. Thanksfeel free to join the discord server https://discord.gg/0arQM0FX6xt0iWm3in case you got any questions btw. the wiki currently gets migrated to the github page Release https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.6.2-ALPHA Changelog Version 0.6.2-ALPHA |- Compiler: fixed various minor issues |- Compiler: removed multi-base classes |- Compiler: improved object structure (==> less overhead) |- Compiler: fixed overloaded functions overwriting themself |- Compiler: fixed different case same name functions overwriting themself |- Compiler: temporary disabled interfaces as function argument |- Compiler: fixedasync keyword made functions being callen instead of | spawned (and vice versa) |- Compiler: unlocked the native "object" object (actually thats a speciall \ internal class now, might happen with string too soon) Known IssuesCreating a new variable containing an object requires auto keyword.Thus, the following is not possible: ::std::vehicle variable = new ::std::vehicle("foobar"); Fixed in inDev the 'using' instruction is not using the PreProcessor --> only main file is getting preprocessed Fixed in inDev the toString function has invalid encapsulation and thus cannot be used NotesInterfaces are temporary disabled as function arguments due to missing idea (yes ... no idea) about how to implement em with a minimum performance loss
  6. Release https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.6.1-ALPHA Changelog Version 0.6.1-ALPHA |- Compiler: fixed InstanceOf printout |- Compiler: Introduced "using" operation, replaces #include |- Compiler: #include now wont "include" the file anymore and instead just | checks the PreProcessor directives in given file |- Compiler: Added "extends" keyword to native classes --> you now can | extend native classes |- Compiler: Added code for the "async" keyword on functions (sorry) |- Compiler: "PRINTMODE" flag modes have changed: | Possible modes are: NONE, 0, NEEDED, 1, ALL, 2 |- Compiler: Renamed all stdLibrary objects to have first char uppercase |- Compiler: Added "VehicleBase" object to stdLibrary (not intended to be | created via new, will throw an error when you attempt) |- Compiler: Added "Man" object to stdLibrary, represents all CAManBase | ArmA objects \- WrapperUI: Introduced WrapperUI.exe, a UI for OOS <3 (to be improved)Known Issues:Creating a new variable containing an object requires auto keyword.Thus, the following is not possible: ::std::vehicle variable = new ::std::vehicle("foobar");
  7. Release https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.6.0-ALPHA Changelog Version 0.6.0-ALPHA |- Compiler: Rewrote entire Linker & Writer |- Compiler: Added !syntax! to call base constructors via following: | bar(arg1, arg2, argn) : foo(arg1, "foobar", argn) {...} |- Compiler: During Linking, functions will now check if they always return | (only exception for this are VOID functions) |- Compiler: Added "PRINTMODE=<MODE>" Flag | Possible modes are: NONE, 0, NEEDED, 1, PARTIAL, 2, ALL, 3 |- Compiler: Added fast assign operators: ++, --, +=, -=, *=, /= |- Compiler: Reorganized how overwrite should be used (see INFO1) |- Compiler: Added "async" keyword for functions (see INFO1) | async functions have to have the return type void! |- INFO1: Functions syntax got altered: \ <encapsulation> [async] [override] <type> <name> ( <argList> )Known Issue:InstanceOf gives invalid result
  8. just quick update fyi guys OOS currently gets a rewrite of the linker & writeOut which leads to more stable linking etc. thats why the project looks kinda dead right now also, there is currently a german tutorial being built by some folk which will be later (hopefully) lead to an english tutorial btw. there is also a Discord server available feel free to join :P https://discord.gg/0arQM0FX6xt0iWm3 greetings X39
  9. not 100% correct the codeblock itself is a datatype in SQF (which is why you can assign it to a variable)
  10. Well, true :P OOS is pretty heavy and gets heavier every day (currently, for example, reimplementing the entire linker and printout so it is easier to extend and less messy) and its main goal is to be a top-level language for SQF with additional features so you do not have to check everything ingame again actually ... right now there is no easy way to execute existing SQF code in OOS as there is no way to make abstract functions yet :P so ... its more that ASL is compatible to OOS (current state) then the other way around (to call some SQF function which is not included into your current project --> unknown to the linker, you have to use in OOS a "call compile" which is a bad overhead but state of the art sadly : /) ((quickly threw it through google translate for ya guys who might read)) Ye, saw that but your "extra features" are more lang. flow from my perspective still good luck on your way (btw. if you need help with your SQF understanding, just ask) It will get more clear as soon as you start thinking why you got that bracket stuff difference between normal programming lang. and SQF: {} is a value in SQF whilst the same is a code block in other languages the semicolon always was just a way to "mark" the end of an expression (which is why you have no semicolons in python (for example) but have to end each expression with a new line, their code blocks are marked with the leading space btw.) due to the difference between their usage (code block ==> multiple expressions gathered together as "one" expression | value => dont care what it is, requires assignment or usage) one requires a semicolon and one does not (code blocks already end with a '}', thus you do not need an additional ';' however, most langs do allow that additional ';' anyway)
  11. someone else trying to reinvent the wheel cool <3
  12. Release https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.5.2-ALPHA Changelog Version 0.5.2-ALPHA |- Compiler: Fixed output folder is not getting generated if not existing |- Compiler: Fixed typeless functions are all recognized as constructor |- Compiler: Fixed classes are lacking a cfgConfig layer |- Compiler: Fixed namespace static variables lacked semicolon in EBNF |- Compiler: Fixed object functions not getting object parameter passed |- Compiler: Added output folder cleanup |- Compiler: Flag /NOCLEANUP which prevents output folder cleanup |- Compiler: PreProcessor now supports stdLibrary #include (using < >) |- Compiler: Added additional keyword "boolean" for bool types |- Compiler: New CompileErrors: C0049 |- Compiler: Added NativeClasses \- Compiler: Added array object to stdLib OOS Skype group link: https://join.skype.com/gkC9bnujA9zN
  13. Release 0.5.1-ALPHA https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.5.1-ALPHA Changelog: Version 0.5.1-ALPHA |- Wrapper: Fixed naming of -gen param (poject.oosproj instead of | project.oosproj) |- Wrapper: Fixed "URI-Format not supported" message when not forcing | a DLL (dll lookup now works as expected -.-*) |- Compiler: Fixed functions getting invalidly recognized as duplicateBTW.The documentation is currently being created right here: http://wiki.x39.io/index.php/ObjectOrientedScripting greets X39
  14. It is done my friends GEN2 is officially released now https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.5.0-ALPHA2 Changelog: Version 0.5.0-ALPHA |- Wrapper: Fixed -gen is not working if file is not existing | (also if file was existing ... but expected error then) |- Compiler: Flag /DEFINE="#whatever(arg) dosomething with arg" |- Compiler: Flag /THISVAR="_thisvarname_" |- Compiler: PreProcessor replaced non-keywords when they just contained a | part of the keyword (EG. keyword was FOO, FOOBAR would have | been replaced with <CONTENT>BAR) |- Compiler: PreProcessor now supports "merge" operator ## | #define FOO(BAR) BAR##FOOBAR | FOO(test) => testFOOBAR \v- Compiler: GEN2 Implementation |- New Syntax |- New SQF ObjectStructure |- Type Restriction (with that all stuff that is connected to it) |- Interfaces (and with them virtual functions) |- "Linker" issues with proper issue IDs | (currently room for 4 digits (so 0001 - 9999)) \- No unneeded overhead anymore documentation will be up in the following week
  15. Just here with latest update Project not dead btw. :P just cannot show off much due to the fact that its not yet finished thus non-functional ... anyway here is something for you folks out there the support list: https://github.com/X39/ObjectOrientedScripting/blob/TypeSafety/ObjectOrientedScripting/Compiler/Resources/SQF_SupportInfo.txt need some help with filling the correct return type into the document so if you ever should feel bored, just hop in and do me some favor <3 as little extra, here is the object structure in SQF: https://github.com/X39/ObjectOrientedScripting/blob/TypeSafety/Concept/ObjectBase.sqf greets X39 PS if you got any questions, just ask
  16. currently planning to rewrite the entire spawning part and to add some proper algo to spawn those guys however, right now i dont come up with ideas for it thus no updates are driven
  17. hell GUYS get away from that extended EH shit ... class CfgPatches { class ruPal_weapon_down { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {}; author = "Kukus"; mail = "YoureEmail@Goes.here"; }; }; class CfgFunctions { class <GimmeSomeRandomTagThatComesUpInYourMind> { class RandomCategory { class myPostInit { preInit = 0; postInit = 1; preStart = 0; headerType = -1; recompile = 0; ext = ".sqf"; file = "Path/To/File.sqf"; }; }; }; }; removed CBA requirement (congrats ...) [] spawn { if (isDedicated) exitWith {}; waitUntil {!isNull player}; waitUntil {alive player}; if (!(weaponLowered player)) then { player action ['WeaponOnBack', player]; }; }; cleaned up your code toofor the testing ... just PBO it and check it, the code itself looks fine ...
  18. the mod is broken since mid 2014 due to various arma patches and it just got worse with the following patches
  19. overread that did you JUST modified the ammocaches module? you have to modify the ammocaches AND the insurgency module
  20. Gen2 EBNF file is finished now the hard part starts ... adding the TreeGenerator to the EBNF file and then finish the new tree writer main difference to the old one is that gen2 will have typesafety enabled to get rid of the overhead which is normally produced (there will still be some overhead for some operations ... however, that overhead will be WAY smaller) it also adds interfaces (not yet sure how i will implement theese ... they might wont be accessible thus rly just class interfaces and no way to use em as type)
  21. needs further investingation by me you did nothing wrong apparently i dont find the time to continue developing this mission right now could you take a screenshot or something of the exact error msg?
  22. RELEASE 0.4.0-ALPHA https://github.com/X39/ObjectOrientedScripting/releases/tag/v0.4.0-ALPHA Version 0.4.0-ALPHA |- Wrapper: Now returns -1 if was not successfully |- Wrapper: Added "setFlags(string[])" function to ICompiler interface |- Wrapper: Fixed compilerDLL search location | Working dir (applicationside) was checked | and not executable dir |- Compiler: Fixed naming of functions in output config file | being incorrect |- Compiler: Added flag /CLFN with STRING value ("/CLFN=blabla.cfg") | Sets how the output config will be named |- Compiler: Added flag /NFNC \ Removes the CfgFunctions class from the config file
  23. well dude its all on the github (fork --> update --> pull request) https://github.com/X39/XInsurgency also, if modded units are not conform with the naming that BIS does it is more or less their problem (however, having code in there that is that horrible like it looks like i did back then is not good ... thus this has to be fixed anyway for performance reasons)
  24. C++ is more or less like this project it does has the concepts in but the end result is not created with objects in mind and everything is fiddled around the non-objectoriented environment it is just "a better c" with object oriented stuff in it whilst java (as example) does do that stuff BTW. right now there is a bug in the OOS project which causes naming of object functions to be wrong in the config.cpp will be fixed till monday i think
×