Jump to content

opec666

Member
  • Content Count

    42
  • Joined

  • Last visited

  • Medals

Everything posted by opec666

  1. You are correct. I had a dialog that looked relatively good in 2016, and now all the text is pushed down and it looks terrible now.
  2. D-Day, on Omaha v2 (Steam Workshop) April 2017 version 0.3.6 Defend the French coast from the overwhelming Allied air, naval and amphibious assault. Lots of work went into making the LCVP's bring men and equipment ashore, as well as the AI tracking system for the pair of Luftwaffe Stuka's. German vehicles have guns, panserfausts and ammo in their inventories. The AI continuously invade when their numbers fall below the mission parameter setting. Tell me what you think!
  3. opec666

    [SP/COOP/TVT] D-Day, Omaha v2

    Operation Torch November 1942 North African Campaign This new mission celebrates new content from the Iron Front team and Bohemia. The IFA3_AIO_LITE mod just acquired a ton of awesome new allied airborne assets. And very soon on stable branch, everyone is getting the new Malden free DLC map. I'll keep working on this one, at least up until Malden hits stable branch. Enjoy!
  4. opec666

    [SP/COOP/TVT] D-Day, Omaha v2

    Just in time for D-Day, I've updated the Battle of Tarawa mission. You may notice big performance gains since I replaced all the spawned functions, loops, waitUntil's and sleeps with CBA's unscheduled environment functions. Even the optional vcomAI script got a boost from this change. If you are a voted or logged admin, use this rudimentary tool to move AI from server control to client. (or headless clients) manually, or toss them all equally onto all clients. Server FPS typically improves a lot!
  5. From just a few minutes flying around the new terrains, I can tell these they are both going to be really fun to play on.
  6. opec666

    [SP/COOP/TVT] D-Day, Omaha v2

    I ported the scripts from D-Day into a new mission on the Faces of War map Tarawa Betio. Enjoy!
  7. The content is Bohemia's. It's doesn't matter that they worked on it for however long... it matters that they're locking down Bohemia's content for very flimsy reasons. Forking projects is supposed to be held sacred in open source communities. Road runner: why delete my post if you can still read it in three replies?
  8. Sealand, for solo player, 2-16 cooperative or 16 vs 16 competitive Subscribe on the Steam Workshop The basics of gameplay are there. After ALL the work that has gone into this, I still only consider this 1% complete. Enjoy this crude work-in-progress alone or with friends. I'd love to hear your ideas for what should come next.
  9. opec666

    Dungeon Generator

    The work goes on! Playable release is coming "soon". :)
  10. opec666

    Dungeon Generator

    Dungeons v0.5.8 Addon required: xCam_EU.pbo (636 kb, included in download) Steam workshop page Zip download - includes addon xCam_EU.pbo, its bikey, and the mission PBO. Generate unique dungeons on the fly. Cells are 100m^2. Currently featuring three to-be-expanded maps, with more in the works: - Caverns - Trenches - Arena Featuring TvT (40/40/40/1 slots) action currently. The tiles change color according to which faction is closest to it. Upon being killed you will respawn in a random tile that belongs to your faction. The single civilian slot is for the Smoke Monster. Will be adding COOP (with DAC) and RPG modes soon. I included instructions (readme.txt) and a template mission folder for using (the full version) X-Cam in the editor. To make a new "map", you need only generate a minimum of one design for each of the five possible shapes: closed (1 shared edge), adjacent (2), straight (2), tri (3), and quad (4).
  11. opec666

    Dungeon Generator

    At the request of a friend, I threw together a very rudimentary seadoo race course using the collision-less vr wall object. Might work on this some more later, make it a more zig-zaggy fun course, with zany mario cart gimmicks. Steam workshop page: http://steamcommunity.com/sharedfiles/filedetails/?id=755048984
  12. opec666

    Dungeon Generator

    Tossed in a railway, trains, debris, and central structures to the bridges. Started work on an interface to control light colors and brightness. I have much to learn when it comes to UI. Gonna re-think what the central cells should finally be like, and use special objects/arrangements that will be tied to gameplay (infrastructure, prison cells, command decks, underwater research, etc). More interfaces for those elements might be required.
  13. Same for setVariable. simple_obj = createSimpleObject [ "a3\structures_f_exp\infrastructure\bridges\bridgesea_01_pillar_f.p3d", (position player) ]; simple_obj setVariable [ "wow", true ]; _get_simple_var = simple_obj getVariable "wow"; hint str _event; No hint fires because _get_simple_var is nil. versus: real_obj = "Land_TreeBin_F" createVehicle (position player); real_obj setVariable [ "okay", true ]; _get_real_var = real_obj getVariable "okay"; hint str _get_real_var; Hint fires as "true" as expected. createSimpleObject is supposed to reduce net traffic, so I guess it's not as surprising when a command with an option to make it global causes trouble.
  14. Yes. It remembers what you had picked (local to you) and creates a real one. It copies over the custom-picked texture and kills the VR-type AI passengers.
  15. opec666

    Dungeon Generator

    They can walk around on all the surfaces and spawn alright. But they walk through objects such as railings, which were painstakingly placed to try and stop that. Static emplacements work fine for defending from vehicular attacks. EDIT: new bridges to land added. all automatic! http://imgur.com/a/Jmelz
  16. opec666

    Dungeon Generator

    I still kick this thing around when I get the chance. Now (knock on wood) I think I have gotten the logic nailed down so the auto-generate sequence makes everything 100% correctly, every time. There's been a few changes in the level design. And I've introduced bridges, connecting to nearby land. I look forward to dressing up the bridge with lights and checkpoints, then on to using other new expansion objects in making more cells, and polishing out the cells already in. http://imgur.com/a/aWvpy
  17. The vehicle you look at while in the garage are local and visible only to you. My script (posted above) immediately spawns the actual vehicle visible to everyone when you close the garage interface. I did encounter a bug where the Blufor (maybe the Opfor too) VTOL wouldn't be spawned correctly, and the player who 'spawned' it would float through the air ('piloting'). The Caesar spawned just fine, so I don't know if it's actually a DLC-related issue or not.
  18. I worked a little bit on the code Iconic posted above. I will share what I've got so far: fn_garageNew.sqf: disableSerialization; uiNamespace setVariable [ "current_garage", ( _this select 0 ) ]; _fullVersion = missionNamespace getVariable [ "BIS_fnc_arsenal_fullGarage", false ]; if !( isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) ) exitwith { "Garage Viewer is already running" call bis_fnc_logFormat; }; { deleteVehicle _x; } forEach nearestObjects [ getMarkerPos ( _this select 0 ), [ "AllVehicles" ], 10 ]; _veh = createVehicle [ "Land_HelipadEmpty_F", getMarkerPos ( _this select 0 ), [], 0, "CAN_COLLIDE" ]; uiNamespace setVariable [ "garage_pad", _veh ]; missionNamespace setVariable [ "BIS_fnc_arsenal_fullGarage", [ true, 0, false, [ false ] ] call bis_fnc_param ]; with missionNamespace do { BIS_fnc_garage_center = [ true, 1, _veh, [ objNull ] ] call bis_fnc_param; }; with uiNamespace do { _displayMission = [] call ( uiNamespace getVariable "bis_fnc_displayMission" ); if !( isNull findDisplay 312 ) then { _displayMission = findDisplay 312; }; _displayMission createDisplay "RscDisplayGarage"; uiNamespace setVariable [ "running_garage", true ]; waitUntil { sleep 0.25; isNull ( uiNamespace getVariable [ "BIS_fnc_arsenal_cam", objNull ] ) }; _marker = uiNamespace getVariable "current_garage"; _pad = uiNamespace getVariable "garage_pad"; deleteVehicle _pad; _veh_list = ( getMarkerPos _marker ) nearEntities 5; { _vehType = typeOf _x; _textures = getObjectTextures _x; _crew = crew _x; { _x spawn { _this action [ "Eject", vehicle _this ]; sleep ( random 2 ); _this setDamage 1; sleep ( random 5 ); deleteVehicle _this; }; } forEach _crew; deleteVehicle _x; sleep 0.5; _new_veh = createVehicle [ _vehType, getMarkerPos _marker, [], 0, "CAN_COLLIDE" ]; _new_veh setPosATL [ ( position _new_veh select 0 ), ( position _new_veh select 1 ), 0.25 ]; _vehDir = markerDir _marker; _new_veh setDir _vehDir; _count = 0; { _new_veh setObjectTexture [ _count, _x ]; _count = _count + 1; } forEach _textures; } forEach _veh_list; }; Add to your editor-placed object's init: this addaction ["<t color='#FFFF00'>Virtual Garage</t>", {[("garage_marker")] call opec_fnc_garageNew;}]; Download demo: garage-demo.VR.pbo This garage script should be used by one person at a time, so you've been warned. The vehicle should be visible only to you while in the Garage screen. As soon as you exit the interface, the vehicle you had selected will spawn, facing the correct direction. Vehicle textures will be saved over into the newly spawned vehicle. The VR AI crew will be ejected, ruthlessly killed and then deleted. Remember to set the direction/azimuth of your marker so that your vehicle gets spawned correctly! Add as many object/marker pairs in your mission as you like.
  19. Sealand Before visual upgrade: http://imgur.com/a/3NFP3 After visual upgrade: http://imgur.com/a/sLFaW
  20. It seems there's some inconsistencies in the configs of objects. None of the BagFence objects (probably others too) have the leading slash for the .p3d location... so the below code works for everything except BagFence objects (they do work if using the _modelPath). I'm guessing this could be best solved if createObject was made smart enough to resolve the leading slash issue on its own. I'm not sure why the Z value is so low. I thought it might be a sea/terrain level issue, so I plugged in an ASL value to run on the VR map, but the objects still spawn just a few meters too low. { _modelPath = ( configFile >> "CfgVehicles" >> _x >> "model" ) call BIS_fnc_GetCfgData; _fixModelPath = _modelPath select [1]; _obj = createObject [ _fixModelPath, getPosASL player ]; } forEach [ "Land_PierLadder_F", "Land_LightHouse_F", "Land_FieldToilet_F", "Land_FuelStation_Build_F", "Land_Research_house_V1_F", "Windsock_01_F", "Land_LampHarbour_F", "Land_LampHalogen_F", "Land_BagFence_End_F", "Land_BagFence_Short_F", "Land_BagFence_Long_F", "Land_BagFence_Corner_F", "Land_BagFence_Round_F" ];
  21. Thanks KK. Here's the code performance data on each fnc: opec_strRight: 0.253789 ms fnc_remove_1st_char: 0.0408997 ms fnc_remove_leading_slash_if_exists: 0.0494019 ms Re-running the tests with fnc_remove_1st_char, I find that createObject is now performing about 33-50% faster than createVehicle.
  22. I ran some tests to compare the new command createObject against the existing createVehicle (with simulation disabled), just for my own little project's sake. Test 1a: 67 objects, createObject 213.379 ms avg creation time 41.31616 avg fps Test 1b: 67 objects, createVehicle (simulation off) 117.513 ms avg creation time 41.3357 avg fps Test 2a: 290 objects, createObject 1568.6025 ms avg creation time 21.26614 avg fps Test 2b: 290 objects, createVehicle (simulation off) 2821.7775 ms avg creation time 21.29106 avg fps Conclusions (take with a grain of salt, this wasn't a lot of data to work with, and the testing environment was not completely perfect): 1) Conflicting results in composition creation time. The 67-object test was faster with createVehicle. The 290-object test was faster with createObject. The createObject method has to pull config data on each object and then use another function (using splitString, loop to capture all characters except the first, and joinString) to remove a leading slash from the .p3d path string. I'm probably going about that the wrong way.. opec_strRight = { _arr = _this splitString ""; _out = []; for "_i" from 1 to ( ( count _arr ) - 1 ) do { _out = _out + [ ( _arr select _i ) ]; }; _out joinString "" }; _modelPath = ( configFile >> "CfgVehicles" >> _class_obj >> "model" ) call BIS_fnc_GetCfgData; _fixModelPath = _modelPath call opec_strRight; _obj = createObject [ _fixModelPath, [ _new_coord_x, _new_coord_y, _new_coord_z ] ]; 2) Not much difference in FPS (createVehicle is barely a scratch better). Other people have found bigger differences when spawning hundreds or thousands of objects. 3) createObject is (probably) still worth using due to the reduction in network sync traffic... the exception being for objects you need to be manipulated (such as with ladders, doors, or animated parts). Mission pbo: http://www.mediafire.com/download/9pkzegv57czai8j/sealand-template.VR.pbo As for embedding .p3d's into missions without addons... I haven't tried this yet but am interested. Is it easy/possible to include textures and animations for these objects as well?
  23. opec666

    Dungeon Generator

    Please enjoy Sealand! I've ironed out the bugs in the cell generator, TvT respawning, AI spawns in COOP, using vanilla classnames, etc. http://www.armaholic.com/page.php?id=30139 http://steamcommunity.com/sharedfiles/filedetails/?id=451118931
  24. opec666

    FHQ TaskTracker

    I am thinking the latest official update broke something. FHQTT worked fine yesterday, and since the update it is no longer updating the task states. nevermind. just another setCaptive issue, like above
  25. fnc_splint = { [] spawn { fnc_do_splint = { _fixWalking = [ "fixWalkingAction", "Apply Splint to Leg", "", {cursorTarget setHitPointDamage ["hitLegs", 0]}, {(cursorTarget getHit "legs" >= 0.50) && ([cursorTarget] call ace_medical_fnc_isInStableCondition)} ] call ace_interact_menu_fnc_createAction; [_this , 0, ["ACE_LegRight"],_fixWalking] call ace_interact_menu_fnc_addActionToObject; [_this , 0, ["ACE_LegLeft"],_fixWalking] call ace_interact_menu_fnc_addActionToObject; }; _random = ( random 5 ) + 5; sleep _random; [ -1, fnc_do_splint, player ] call CBA_fnc_globalExecute; }; }; if ( isServer ) then { [ -1, fnc_splint ] call CBA_fnc_globalExecute; }; run that in the init.sqf. I think it outta work.
×