-
Content Count
30 -
Joined
-
Last visited
-
Medals
Community Reputation
24 ExcellentAbout G.Drunken
-
Rank
Private First Class
Profile Information
-
Gender
Male
-
Location
Palaven
-
Interests
Gun production and military balistics, would love to make designs and work on them. Also calibrations. Turians love calibrations.
Recent Profile Visitors
-
Script not working on server
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
I'll give a good read in the next couple of days. Thanks! 🙂 -
Script not working on server
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
So we're talking about handling over the performance of the vehicle (and the script attached to it), be handled by the player PC rather than it being handled by the server the player is connected to? In the context of running scripts such as this one, what happens of synchronization between players and the server if I am to allow the scripts to be handled locally? I'm finding this really interesting. 🙂 -
Script not working on server
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
Greetings! I've managed to set up my own server where I can inspect each and every custom vehicle. I've managed to fix the issue by doing exactly what you wrote. I've also encountered an issue with setObjectScale on the other vehicles where this is used, I believe it is worth mentioning in case anyone else encounters this similar issue regarding multiplayer functionality. When driving in other vehicles, the attached objects affected with setObjectScale would start to resize back to their original size. If I was to completely stop moving, these objects would reset back into the size defined by the script. To address this issue, I've used the following line of code to fix it: [_spartan, 0.7] remoteExec ["setObjectScale", 0, _spartan]; To prevent the attached created vehicle from being duplicated, the condition "if (isServer) then" MUST be used. Example script: params ["_vehicle"]; if (isServer) then { private _spartan = createVehicle ['B_SAM_System_01_F', getPos _vehicle, [], 0, 'NONE']; _spartan attachTo [_vehicle, [0.09, -4.2, -1.18]]; _vehicle lockturret [[1],true]; [_spartan, 0.7] remoteExec ["setObjectScale", 0, _spartan]; _spartan setTurretLimits [[0], -180, 180, 0, 80]; if (count crew _vehicle > 0) then { createVehicleCrew _spartan; }; _vehicle addEventHandler ["Killed", { params ["_unit"]; { detach _x; deleteVehicle _x; } forEach attachedObjects _unit; }]; _vehicle addEventHandler ["Deleted", { params ["_unit"]; { detach _x; deleteVehicle _x; } forEach attachedObjects _unit; }]; }; The vehicle in question where the script is executed: -
Script not working on server
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
I see. Thank you sharing this. I'll give it a go later today. 👍 -
Script not working on server
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
Mistake on my part, let me provide more information. The script is executed in the class EventHandlers of the new unit class B_Truck_01_defender_F which is based on the parent class B_Truck_01_mover_F. private _vehicle = _this select 0; refers to the vehicle that holds the script. class EventHandlers { init = "[_this select 0] execVM '\mod\scripts\DefenderSand.sqf';" }; As for this, I have no answer. In the first version of the code (which all current scripts of the mod use) is the condition (isServer). It was confirmed to me that all such scripts work on dedicated and non-dedicated servers, except for the scripts regarding HEMTT Defender and Radar which do include addAction. Then I included the conditions (hasInterface && isServer) because I thought it was the right thing to do (source). I do not want to provide false answers when asking for help, so I'm going to be honest. I am having a difficult time understanding the documentation in context of writing scripts in Arma 3 when it comes to multiplayer compatibility (simply put I do not know what I am doing in this domain). I find it difficult to navigate. The result is the script I wrote for the HEMTT Defender and Radar variants. I did use ChatGPT (although all answers are taken with a grain of salt, I do not take it for final answers and solutions, I know how it works) to provide me with explanations I can understand. The ideas are here, the will to provide content is real and I wish to do so (as long as it makes sense to implement these ideas), but coding was and still is a barrier, even after all these years. -
G.Drunken changed their profile photo
-
-
Greetings folks! I've created a mod and published it on Steam workshop. It is a combination of scripts and configs (editing the base classes and creating new units). Everything works great, I have no issues with any units except for the following: HEMTT Defender and HEMTT Radar - the purpose of these HEMTT variants is to spawn either the MIM-145 Defender or AN/MPQ-105 Radar behind the truck, provided with user actions (addAction) for further interaction. This is the code I wrote so far: private _vehicle = _this select 0; if (hasInterface && isServer) then { _vehicle addAction ["<t color='#FFFF00'>Deploy MIM-145 Defender</t>", { params ["_vehicle", "_caller"]; if (isNil {_vehicle getVariable 'defenderDeployed'}) then { private _defender = createVehicle ['B_SAM_System_03_F', getPos _vehicle, [], 0, 'CAN_COLLIDE']; _defender attachTo [_vehicle, [0.03, -7.3, 2]]; _vehicle setVariable ['defenderDeployed', _defender, true]; _vehicle setVehicleLock "LOCKED"; _vehicle removeAction 0; createVehicleCrew _defender; { if (vehicle _x == _vehicle) then { moveOut _x }; } forEach allUnits; }; }, nil, 1.5, true, true, "", "isNull objectParent player", 5]; _vehicle addAction ["<t color='#FF0000'>Deactivate SAM</t>", { params ["_vehicle", "_caller"]; if (!isNil {_vehicle getVariable 'defenderDeployed'}) then { private _defender = _vehicle getVariable ['defenderDeployed', objNull]; if (!isNull _defender) then { _defender hideObjectGlobal true; _vehicle setVariable ['defenderDeployed', _defender, true]; _vehicle setVehicleLock "DEFAULT"; if (_caller == (uavControl _defender select 0)) then { _caller connectTerminalToUAV objNull; }; { deleteVehicle _x; } forEach crew _defender; }; }; }, nil, 1.5, true, true, "", "isNull objectParent player", 5]; _vehicle addAction ["<t color='#00FF00'>Activate SAM</t>", { params ["_vehicle", "_caller"]; if (!isNil {_vehicle getVariable 'defenderDeployed'}) then { private _defender = _vehicle getVariable ['defenderDeployed', objNull]; if (!isNull _defender) then { _defender hideObjectGlobal false; _vehicle setVehicleLock "LOCKED"; createVehicleCrew _defender; { if (vehicle _x == _vehicle) then { moveOut _x }; } forEach allUnits; }; }; }, nil, 1.5, true, true, "", "isNull objectParent player", 5]; _vehicle addEventHandler ["Killed", { params ["_unit"]; { detach _x; deleteVehicle _x; removeAllActions _unit; } forEach attachedObjects _unit; }]; _vehicle addEventHandler ["Deleted", { params ["_unit"]; { detach _x; deleteVehicle _x; removeAllActions _unit; } forEach attachedObjects _unit; }]; }; Lack of coding is present, however with each implementation of certain features, I understand how most of it works. This is the only script (similar to the Radar script) in the entire mod that is this extensive (and will probably remain like that). The code will be fine tuned for other reasons too, but I'm mostly focused on multiplayer compatibility right now. The script works in singleplayer, but not multiplayer (dedicated and non-dedicated servers). Would anyone assist me in solving the issue? Any help would be appreciated. 🙂
-
AI not shooting at custom composition
G.Drunken replied to G.Drunken's topic in ARMA 3 - MISSION EDITING & SCRIPTING
Alright, I appreciate the information. Shame it's like that unfortunately. Guess I'll start polishing the current compositions and proceed with uploads. 🙂 -
AI not shooting at custom composition
G.Drunken posted a topic in ARMA 3 - MISSION EDITING & SCRIPTING
Greetings folks. I've been working around setting up a new composition. First time engaging in actually using the main vehicle's init field for creating compositions. It worked well so far, managed to get everything I needed for the composition to work. The code I'll share with you is located in the init field of AFV-4 Gorgon. if (isServer) then { this lockTurret [[0,0], true]; this lockTurret [[0], true]; this animate ["HideTurret", 1]; this animate ["showCamonetHull", 1]; this addWeaponTurret ["SmokeLauncher", [-1]]; this addMagazineTurret ["SmokeLauncherMag", [-1]]; this addMagazineTurret ["SmokeLauncherMag", [-1]]; _spawnPos = [getPos this select 0, getPos this select 1, getPos this select 2]; _turretArray = [_spawnPos, 180, "I_LT_01_AT_F", INDEPENDENT] call BIS_fnc_spawnVehicle; _turret = _turretArray select 0; _turret enableSimulationGlobal true; _turret lockInventory true; _turret lockDriver true; _turret lockCargo true; _turret setFuel 0; _turret animate ["showCamonetHull", 1]; _turret animate ["showCamonetPlates1", 1]; _turret animate ["showCamonetPlates2", 1]; _turret addMagazineTurret ["100Rnd_127x99_mag_Tracer_Red", [0]]; _turret addMagazineTurret ["100Rnd_127x99_mag_Tracer_Red", [0]]; _turret addMagazineTurret ["100Rnd_127x99_mag_Tracer_Red", [0]]; _turret addMagazineTurret ["100Rnd_127x99_mag_Tracer_Red", [0]]; _turret addMagazineTurret ["100Rnd_127x99_mag_Tracer_Red", [0]]; _turret addMagazineTurret ["100Rnd_127x99_mag_Tracer_Red", [0]]; _turret attachTo [this, [.5, 0.15, 0.25], "poklop_commander", true]; }; this addEventHandler ["Killed", { params ["_unit"]; { detach _x; deleteVehicle _x; } forEach attachedObjects _unit; }]; this addEventHandler ["Deleted", { params ["_unit"]; { detach _x; deleteVehicle _x; } forEach attachedObjects _unit; }]; What it does: Spawns a Gorgon with Nyx halfway hidden inside. What's left outside is the Nyx turret (Gorgon turret hidden). Initiates couple of animations for display of camo netting and such on both vehicles, adds extra magazines to the Nyx turret. It is supposed to look like the M1126 "Stryker" . In the testing phase, I've encountered a problem. The AI (OPFOR, CSAT) wasn't shooting at the composition (operated by AAF). Mission settings stated AAF was not friendly to OPFOR, placing normal AAF vehicles in front of CSAT ones initiated combat immediately. Placing a manned composition in front of CSAT initiated nothing but a staring contest. Turns out nothing is wrong with the code, but rather the placement of vehicles. If the vehicles are extremely close to each other, in this case the composition itself has the Nyx inside the Gorgon, the AI will not be able to determine what to shoot, therefor it will continue staring at the composition rather than shooting it when spotted. If you are to edit and include the following line: _turret attachTo [this, [.5, 2, 0.25], "poklop_commander", true]; - this will basically put the Nyx outside the Gorgon and CSAT will immediately start to engage it. The question is, does anyone have any ideas on how to fix or flank around this issue? All help is welcome. -
CSAT ReTexture [ Drunken's Arsenal ]
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS & MODS: COMPLETE
https://drive.google.com/drive/u/0/folders/1YIHQ2juMV5sCfEUVEx3oZ10WjVvNvxNW Sorry for the late response, I've turned off notifications for this thread. This contains all of the templates I've worked on, which also includes BI released templates (some of them). -
Problem with custom units in Zeus
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS - CONFIGS & SCRIPTING
Well, I solved the issue. The issue was in the crew the vehicle contained. The crew was custom made, but I didn't include it in the Zeus. If the crew is not available in the Zeus, the vehicle containing THAT crew will not appear as well. -
The problem started with me trying to create a new custom RHS tank ( to be more accurate T-72B (obr. 1984g) and (obr. 1985g) , by removing the commander shield, removing the RHS decals and changing the crew commander to match the rest of the crew ( also includes custom made crew ). I've used the ALiVE ORBAT Tool to export the unit config of each tank mentioned (from Russia (TV), OPFOR) and change the config to fit my needs. The mod also includes helicopters from RHSAFRF and a vanilla jet from AAF. The main problem are the tanks, the rest ( helicopters and jets ) work fine. No matter what I do, they are all in the editor listed properly, but once I enter the game and open up Zeus, only the helicopters and the jets tabs are displayed in the custom faction ( on all 3 sides, NATO, OPFOR and INDEP ). The tanks are gone. Before I copy-paste the parts of the config ( just the OPFOR part ), I will say that: I've placed the Game Master in-game and selected the option "All Addons ( including unofficial ones)" , "scopeCurator=2" is also in each of the class regarding custom RHS tanks , Units in CfgPatches also contain the classnames of these custom tanks and everything is in correct order and was checked multiple times. This is the code: class CfgPatches { class IV { author="STA|G.DrunkeN"; version=0.1; units[]= { "T72_LoB_Rubber_OPFOR", "T72_LoB_Rubber_ERA_OPFOR", "MI24P_CAMO2_STARLESS_OPFOR", "YAF_Galeb_OPFOR" }; weapons[]={}; magazines[]={}; ammo[]={}; requiredVersion=1.64; requiredAddons[]= { "rhs_main", "rhs_c_vehiclesounds", "rhs_c_t72" }; }; }; class CfgFactionClasses { class DrunkeNs_Arsenal_OPFOR { displayName="DrunkeN's Arsenal"; priority=3; side=0; icon="\mod\data\icon_co.paa"; }; }; class CBA_Extended_EventHandlers_base; class CfgVehicles { class Components; class TransportPylonsComponent; class Pylons; class Pylons1; class Pylons2; class Pylons3; class Pylons4; class Pylons5; class Pylons6; class Pylons7; // OPFOR // class rhs_t72ba_tv; class rhs_t72ba_tv_OCimport_01 : rhs_t72ba_tv { scope = 0; class EventHandlers; class Turrets; class AnimationSources; }; class rhs_t72ba_tv_OCimport_02 : rhs_t72ba_tv_OCimport_01 { class EventHandlers; class Turrets : Turrets { class MainTurret; }; class AnimationSources : AnimationSources { class hide_com_shield { source="user"; initPhase = 1; animPeriod=0.001; }; }; }; class rhs_t72ba_tv_OCimport_03 : rhs_t72ba_tv_OCimport_02 { class EventHandlers; class Turrets : Turrets { class MainTurret : MainTurret { class Turrets : Turrets { class CommanderOptics; class CommanderMG; }; }; }; class AnimationSources : AnimationSources { class hide_com_shield { source="user"; initPhase = 1; animPeriod=0.001; }; }; }; class T72_LoB_Rubber_OPFOR : rhs_t72ba_tv_OCimport_03 { author = "STA|G.DrunkeN"; scope=2; scopeCurator=2; crew="MI_Crewman"; side=0; faction="DrunkeNs_Arsenal_OPFOR"; displayName="Lion of Babylon w/ rubber"; HiddenSelectionsTextures[]= { "\mod\data\LoB\rhs_t72b_01b_co.paa", "\mod\data\LoB\rhs_t72b_02a_co.paa", "\mod\data\LoB\rhs_t72b_03_co.paa", "\mod\data\LoB\rhs_t72b_04_co.paa", "\mod\data\LoB\rhs_t72b_05_co.paa" }; class Turrets : Turrets { class MainTurret : MainTurret { class Turrets : Turrets { class CommanderOptics : CommanderOptics { gunnerType = "Mi_Crewman_Commander"; }; class CommanderMG : CommanderMG { gunnerType = "Mi_Crewman_Commander"; }; }; }; }; class EventHandlers : EventHandlers { class CBA_Extended_EventHandlers : CBA_Extended_EventHandlers_base {}; class ALiVE_orbatCreator { init = "if (local (_this select 0)) then {_onSpawn = {sleep 0.3; _unit = _this select 0;};_this spawn _onSpawn;(_this select 0) addMPEventHandler ['MPRespawn', _onSpawn];}; RHSDecalsOff = true;"; }; }; // custom attributes (do not delete) ALiVE_orbatCreator_owned = 1; }; class rhs_t72bb_tv; class rhs_t72bb_tv_OCimport_01 : rhs_t72bb_tv { scope = 0; class EventHandlers; class Turrets; class AnimationSources; }; class rhs_t72bb_tv_OCimport_02 : rhs_t72bb_tv_OCimport_01 { class EventHandlers; class Turrets : Turrets { class MainTurret; }; class AnimationSources : AnimationSources { class hide_com_shield { source="user"; initPhase = 1; animPeriod=0.001; }; }; }; class rhs_t72bb_tv_OCimport_03 : rhs_t72bb_tv_OCimport_02 { class EventHandlers; class Turrets : Turrets { class MainTurret : MainTurret { class Turrets : Turrets { class CommanderOptics; class CommanderMG; }; }; }; class AnimationSources : AnimationSources { class hide_com_shield { source="user"; initPhase = 1; animPeriod=0.001; }; }; }; class T72_LoB_Rubber_ERA_OPFOR : rhs_t72bb_tv_OCimport_03 { author = "STA|G.DrunkeN"; scope=2; scopeCurator=2; crew="MI_Crewman"; side=0; faction="DrunkeNs_Arsenal_OPFOR"; displayName="Lion of Babylon w/ rubber (ERA)"; HiddenSelectionsTextures[]= { "\mod\data\LoB\rhs_t72b_01b_co.paa", "\mod\data\LoB\rhs_t72b_02a_co.paa", "\mod\data\LoB\rhs_t72b_03_co.paa", "\mod\data\LoB\rhs_t72b_04_co.paa", "\mod\data\LoB\rhs_t72b_05_co.paa" }; class Turrets : Turrets { class MainTurret : MainTurret { class Turrets : Turrets { class CommanderOptics : CommanderOptics { gunnerType = "Mi_Crewman_Commander"; }; class CommanderMG : CommanderMG { gunnerType = "Mi_Crewman_Commander"; }; }; }; }; class EventHandlers : EventHandlers { class CBA_Extended_EventHandlers : CBA_Extended_EventHandlers_base {}; class ALiVE_orbatCreator { init = "if (local (_this select 0)) then {_onSpawn = {sleep 0.3; _unit = _this select 0;};_this spawn _onSpawn;(_this select 0) addMPEventHandler ['MPRespawn', _onSpawn];}; RHSDecalsOff = true;"; }; }; // custom attributes (do not delete) ALiVE_orbatCreator_owned = 1; }; class RHS_Mi24P_vdv; class MI24P_CAMO2_STARLESS_OPFOR : RHS_Mi24P_vdv { author = "STA|G.DrunkeN"; scope=2; scopeCurator=2; crew="rhs_pilot_combat_heli"; side=0; faction="DrunkeNs_Arsenal_OPFOR"; displayName="Mi-24P"; HiddenSelectionsTextures[]= { "\mod\data\Mi24\mi24p_001_camo2_co.paa", "\rhsafrf\addons\rhs_a2port_air\mi35\data\camo\mi24p_002_camo1_co.paa", "rhsafrf\addons\rhs_a2port_air\Mi17\data\camo\mi8_det_g_camo1_co.paa" }; class EventHandlers { }; }; class I_Plane_Fighter_03_dynamicLoadout_F; class YAF_Galeb_OPFOR : I_Plane_Fighter_03_dynamicLoadout_F { author = "STA|G.DrunkeN"; scope=2; scopeCurator=2; crew="rhs_pilot"; side=0; faction="DrunkeNs_Arsenal_OPFOR"; displayName="G-4 Super Galeb (YAF)"; HiddenSelectionsTextures[]= { "\mod\data\YAF_Galeb\L-159_0_co.paa", "\mod\data\YAF_Galeb\L-159_1_co.paa" }; class EventHandlers { }; class Components: Components { class TransportPylonsComponent: TransportPylonsComponent { class pylons: Pylons { class pylons1: Pylons1 { attachment = "PylonRack_1Rnd_AAA_missiles"; }; class pylons2: Pylons2 { attachment = "PylonRack_12Rnd_missiles"; }; class pylons3: Pylons3 { attachment = "PylonRack_12Rnd_missiles"; }; class pylons4: Pylons4 { attachment = "PylonWeapon_300Rnd_20mm_shells"; }; class pylons5: Pylons5 { attachment = "PylonRack_12Rnd_missiles"; }; class pylons6: Pylons6 { attachment = "PylonRack_12Rnd_missiles"; }; class pylons7: Pylons7 { attachment = "PylonRack_1Rnd_AAA_missiles"; }; }; }; }; }; }; I have no idea why square brackets and classes look weird in this code box... anyways. As I said, helicopters and jets are in the zeus, the tanks are not. Any help is appreciated. I want to publish what's left of my work and be done with it.
-
CSAT ReTexture [ Drunken's Arsenal ]
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS & MODS: COMPLETE
Hello. Due to lack of time and RL stuff happening in the background, I've decided to stop working on CSAT ReTexture mod completely. What I thought was going to be something interesting, turned out to be a lot of work for just one guy. For something I wanted to turn into a hobby in my free time, ended up as something completely else, basically allowed myself to work on it without having any kind of fun, which is insane, thus combining that with everything else I was doing (non-related to ArmA ), it was time consuming and too much for me. Most of the time was just retexturing without playing the game whatsoever, which is a no-go. A combination which killed the spark that had me playing ArmA III and retexturing. There are also other reasons, but not worth mentioning. I'm not trying to make this as an excuse for being lazy as I've really tried the best I could, but I had to let it go. Times where I enjoyed this game were great, but it's time to close this chapter. The random textures I've worked on for personal use ( mostly RHS vehicles ) will be available soon, either on Steam or this thread . There ain't much to tell about it, but it does contain my proudest work, textures I've really enjoyed working on, as I was inspired by some specific things, situations and so on. Feel free to contact me via Steam or forums if anyone wants me to pass on the CSAT ReTexture mod files. I don't want them to go to waste. Thank You all very much for your support! If it's possible, I'd like this thread to get locked. Thanks in advance. -
Community Texture Templates.
G.Drunken replied to slatts's topic in ARMA 3 - ADDONS & MODS: DISCUSSION
Copy that. Send me a PM once everything's done. 🙂 -
Community Texture Templates.
G.Drunken replied to slatts's topic in ARMA 3 - ADDONS & MODS: DISCUSSION
Well, you can upload them somewhere (most likely onto your Google Drive) and share the link so others can download. Respectfully, those are your templates we're talking about. 😄 EDIT: If you insist on providing the templates so I could put them onto Google Drive for others to use, I don't see a problem in that. Credits will go to you as well. -
CSAT ReTexture [ Drunken's Arsenal ]
G.Drunken replied to G.Drunken's topic in ARMA 3 - ADDONS & MODS: COMPLETE
We'll see. Honestly, I'm not sure CSAT Urban will even have anything special other than retextured vehicles and some infantry gear (the ones that does not contain Urban camo). I'm trying to find the correct balance between making multiple, solid color variants of one camo pattern, such as what CSAT Winter now contains. For now, the main focus is on what's remaining in the First part of the mod, Desert and Black Ops. Thanks for the suggestion.