Jump to content

grollig

Member
  • Content Count

    40
  • Joined

  • Last visited

  • Medals

Everything posted by grollig

  1. @RCA3 We just did a quick test with two players. Everything works as desired. Players with the corresponding ID become Zeus (from normal missionstart, JIP and rejoining after a disconnect). Thanks a lot! Btw: We also found out that the function only needs to be executed on the server side, not on all machines: [_playerUnit] remoteExecCall ["zen_common_fnc_createZeus", 2];
  2. Hi there! Basically what I'm trying to do is to remoteExec a function on the server (dedicated) from the clients that uses the player (object) as parameter. To be more precise: I want to run the code below in initPlayerLocal.sqf to make certain players of our group become zeus when they join the mission. I am utilizing a function included in ZEN (Zeus Enhanced Mod) which handles curator module creation, etc. Problem is: The function has to be executed on the server and needs the player object as parameter. So this, executed on the server via debug-console, will work: [alpha1] call zen_common_fnc_createZeus; I am struggeling with how to handover the player object to the server from local script. This is my initPlayerLocal.sqf (not working code!): // Make worthy players become zeus by their UID _worthyPlayersUIDs = [ "12312312312312312", // John "45645645645645645" // Mike ]; _playerUID = getPlayerUID player; if (_playerUID in _worthyPlayersUIDs) then { [player] call zen_common_fnc_createZeus; }; I know that with the above code the player variable is not resolved on the server and that I have to resolve it on the client (see Example 5 in the BI Wiki: https://community.bistudio.com/wiki/remoteExec) However this code doesn't work: {[player] call zen_common_fnc_createZeus;} remoteExec ["call", 2]; Any help is appreciated. Thx in advance!
  3. Thank you very much for your effort! I can confirm that it works on our server. However, I have only been able to test it on my own so far. I will give a feedback when we could test it with more players.
  4. In the meantime I've also tried using addMissionEventHandler in initServer.cfg with no success: Code in initServer.sqf : FAS_Zeus_UIDs = [ "12312312312312312", // John "45645645645645645" // Mike ]; addMissionEventHandler ["PlayerConnected", { params ["_id", "_uid", "_name", "_jip", "_owner", "_idstr"]; _playerUnit = _uid call BIS_fnc_getUnitByUID; if (_uid in FAS_Zeus_UIDs) then { [_playerUnit] call zen_common_fnc_createZeus; [format ["%1",_playerUnit]] remoteExec ["hint", 0]; }; }]; _playerUnit gets correctly hinted as alpha1, but the createZeus function has no effect. I just don't understand why executing: [alpha1] call zen_common_fnc_createZeus; from the debug console on the server will work just fine.
  5. Thank you for pointing me there. Tried the following Code: --> initPlayerServer.sqf: // Make worthy players become zeus by their UID _worthyPlayersUIDs = [ "12312312312312312", // John "45645645645645645" // Mike ]; params ["_playerUnit", "_didJIP"]; _playerUID = getPlayerUID _playerUnit; if (_playerUID in _worthyPlayersUIDs) then { waitUntil { time > 0 }; [_playerUnit] call zen_common_fnc_createZeus; }; Unfortunately this will only work for JIP players, not for players present at missonstart.
  6. The error I reported above is gone (RHS Blackhawk "hit glass" error message) since the last update. However a new error message shows up when an alternative CSAT unit is spawned for the first time: RPT Log: 12:13:47 Warning Message: Cannot load texture i:\csat modification project\csat_vests\data\azad\forcerecon_body_co.paa. 12:13:47 Warning Message: Cannot load texture i:\csat modification project\csat_vests\data\azad\forcerecon_body_co.paa. 12:13:47 soldier[TEC_O_Soldier_Semiarid_A_F]:Some of magazines weren't stored in soldier Vest or Uniform? 12:13:47 Ref to nonnetwork object 1530cf00# 1784455: ia_soldier_02.p3d
  7. Awesome! I assume you will release a fixed version in the Steam workshop when it's done? (Couldn't find an updated version higher than 1.6.0.2 so far).
  8. Glad to hear you are still working on this great mod as your time allows. Also like the idea of putting more versatility into the CSAT faction and their avatars. Maybe in between you can find a few minutes to investigate the error i described above. Meanwhile I found out that the CSAT_Keftar.pbo is directly related to the incompatibility and the error message. No entry 'bin\config.bin/CfgVehicles/RHS_UH60M_base/AnimationSources/HitGlass1.source'. If I remove the CSAT_Keftar.pbo the error msg will not show up. The RHS devs assume that your mod might be overwriting some base classes, leading to the described error message which forces us to reload the first mission including a RHS Blackhawk helicopter after rebooting our server. See here: http://feedback.rhsmods.org/view.php?id=628 Thank you, and please keep up the good work on your mod!
  9. Hello ! Right now we're really enjoying this mod in our small community. However there (still) seems to be a compatibility issue with RHS: Since we installed the CSAT Modification Project (latest version, 1.6.0.2, last updated 2018-02-10, download from armaholic) we get the following error on the first mission start after server reboot (dedicated): No entry 'bin\config.bin/CfgVehicles/RHS_UH60M_base/AnimationSources/HitGlass1.source'. This problem was reported back in 2015 by someone else on the RHS feedback tracker and was descibed as related to @tec_CSAT: http://feedback.rhsmods.org/view.php?id=628 Both mods run fine together however. We just have to restart the first mission once after server reboot to overcome the initial errormessage.
  10. Thank you for the quick reply, Wyqer. You're right, I totally missed that change! However, the german WIKI still says, that you have to conquer CITIES and FACTORIES for a considerable and constand supply, so this was a little misleading. The WIKI also says that each sector type has its own unique advantages. At the moment I don't see any unique advantage capturing a (small) city sector, other than I will find a few random crates there (and will have to get them to a FOB by a player driven truck or helicopter, to make use of them). Okay... there's also a gain in civilian reputation (given i don't kill too many of them while capturing the town) and the chance of a civilian informant spawning to get some intel points. But aside from that I don't see an advantage from small city sectors. Could you please confirm, that factories are the only sectors we can build storage areas and produce resources now? Just to make sure I correctly understand these new mission mechanics. Thank you! And by the way: You're doing a really great job at Liberation. We really appreciate the time and effort you put in this and we had so much fun playing these missions in the past four month!
  11. Hi there! I've just setup a new liberation mission on tanoa (v0.962). I ran into the following issue: I started the mission, built the first FOB and took over the first (small) city (all by myself using full Zeus for testing purposes). Everything went fine so far. However, after I'd taken over the small city (controlbar changed to blue, and the taken over message appeared), the addAction for building a storage area is not available. I tried again with another objective, but it seems that buildig storage areas is not possible. Rights are set properly. Wipe of savegames didn't help. The issue occurs both on dedicated server and locally hosted mission. Any ideas? Thanx!
  12. grollig

    Custom Combat Patrol

    @basstard: You were right. BIS_CP_enemyTroops was set to nil. Changed it to BIS_CP_enemyTroops = BIS_CP_enemyGrp_rifleSquad; and everything works fine now. Thanks for pointing me there.
  13. grollig

    Custom Combat Patrol

    @basstard: Sorry for the late response. I just did some testing with the new version (0.3.2) and it looks like the KI friendly fire issue (INDEPENDET vs OPFOR) is solved. Good job! I was also able to use arrays for the enemy units, to define sentry and fireteam. However I was NOT able to use an array to definie a rifle squad. This will still throw the scripterror I postet above. So for the variable BIS_CP_enemyGrp_rifleSquad this will work: BIS_CP_enemyGrp_rifleSquad = configfile >> "CfgGroups" >> "Indep" >> "IND_C_F" >> "Infantry" >> "ParaCombatGroup"; while this will not work: BIS_CP_enemyGrp_rifleSquad = ["I_C_Soldier_Para_1_F", "I_C_Soldier_Para_2_F", "I_C_Soldier_Para_3_F", "I_C_Soldier_Para_4_F", "I_C_Soldier_Para_5_F", "I_C_Soldier_Para_6_F"]; It seems that BIS_fnc_CPSpawnGarrisonGrp still expects a config entry instead of an array in this variable. Great work with the insertion radius paramter btw. Setting it to 2 or even 2.5 feels just right for my group! Thank you very much. For future updates you should consider having some of the enemy patrols goint counter-clockwise around the AO. At the moment they all seem to circle it clockwise, so players can always expect enemy patrols closing in from the right while moving towards the objective.
  14. grollig

    Custom Combat Patrol

    After using premade groups from the config I got syndikate units to spawn as enmies (see post above). Now I can confirm namrewob1's issue: Patrols are INDEPENDENT faction, garrison units are OPFOR faction (or vice versa). What makes this a real problem is, that OPFOR and INDEPENDENT are also hostile to each other (even when set to allied in Eden editor). So in a HVT mission the HVT instantly gets shot by opposing AI forces.
  15. grollig

    Custom Combat Patrol

    Nice Mod. We already had a lot of fun using it. Two things: 1.) I tried to edit the initServer.sqf to get syndcate units as enemies: BIS_CP_enemyGrp_sentry = ["I_C_Soldier_Para_1_F", "I_C_Soldier_Para_2_F"]; BIS_CP_enemyGrp_fireTeam = ["I_C_Soldier_Para_1_F", "I_C_Soldier_Para_2_F", "I_C_Soldier_Para_3_F", "I_C_Soldier_Para_4_F"]; BIS_CP_enemyGrp_rifleSquad = ["I_C_Soldier_Para_1_F", "I_C_Soldier_Para_2_F", "I_C_Soldier_Para_3_F", "I_C_Soldier_Para_4_F","I_C_Soldier_Para_5_F","I_C_Soldier_Para_6_F"]; Unfortunately this will throw the following scripterror during the initialisation screen: getText (_grpConfig |#| >> "_name"), _grp] call BIS_fnc_CPLog; Error >>: Type Array, expected Config Entry File A3\Functions_F_Patrol\CombatPatrol\fn_CPSpawnGarrisonGrp.sqf [BIS_fnc_CPSpawnGarrisonGrp], line 46 After that the mission gets stuck (black screen). It seems that it is not possible to use an array to define the enemy groups and I have to use predefined groups from the config instead. This is odd, since the comments in the initServer.sqf says arrays should work. 2.) Is there any way to define the radius for the entry point to the target? In my group we feel that the entry point is much too close to the target. Suggestion: Add a parameter to define the distance from entry point (spawn) to the area of operation.
  16. Just started playing Liberation with my squad yesterday. We had a lot of fun and technically everything was working fine. Thank you so much for this great and entertaining mission! However, some things were a little disapppointing when we restarted the mission later last night to check if our progress was saved. We are playing the mission on Malden (dedicated Server, KP_liberation_preset = 3 with ACE, RHS and BWA3mod). We startet out by slingloading the FOB container from the carrier (no prebuilt FOB). We built our FOB and took over zwo PoI's. Early on in the mission I bought/built two AI soldiers (BWA3 Mod) at the FOB to defend it. I seperated them from our playersquad (using unlocked Zeus), grouped them together and placed them at the HQ (one on the roof, the other one right in front of the door). Furthermore we were able to confiscate several vehicles from civilian drivers (cargo truck, quad, SUV) and even an OPFOR vehicle (armed RHS GAZ ). All those vehicles were empty and placed right next to the FOB HQ when we left the server at the end of our session. After reloading/rejoining the mission, the two AI soldiers (HQ guards) were gone, as well as all confiscated civilian vehicles. The OPFOR vehicle we took over however was saved correctly, als well as an empty Eagle IV FLW we bought/built during the mission. So the question is: Is it intended behaviour, that confiscated civilian vehicles at the FOB are not saved? And could it be that the AI units did not get saved because I placed one of them on top or too close to the FOB building? What is the recommended way to setup defense AI units that get saved correctly (so our resources won't be wasted)?
  17. The problem is, there's a mortar attack going on, while the french basecommander is yelling at the players to do something about it. ;) So redesigning that part of the mission would be the last option. I'll try to squeeze some more dB out of the waveform first. Maybe a loudness maximizer will do the trick... The pity is that using "say" will play the sound loud enough, but lip synchronization is still broken and will probably not be supported by the "say" command anymore. Too bad they didn't add an array with parameters for kbTell to define gain/pitch/radius of the speech file. Anyway... thanks for taking a look at the recording.
  18. Pretty loud already for my taste. Do you think I'll have to push the dynamics even more? You can hear the clip here (though I think they automatically normalized it to about 95% after the upload) https://clyp.it/rbkbolpn Btw: I normally use cubase on my homerecording studio PC for recording / editing / processing. Right now I'm sitting at home at my gaming computer, so I just have Audacity available to display the waveform.
  19. Sorry to dig this up, but I have searched for hours and couldn't find a solution anywhere! I have to find a way to turn up the volume of the spoken soundfiles with kbTell. It seems, that the command (and the whole conversation system) is lacking the possibility to do so? When a dialog comes up in my mission, the spoken words are barely hearable when standing 5 steps away from the actor, since other soundeffects (especially gunfire or vehicles) are played way too loud. Unfortunaltely both soundtypes (soundeffects and kbTell speech) share the same mixer channel in the game audio options. So there is no way to turn up the speech level without raising the volume of the soundeffects as well. The sounds in my mission were recorded and processed with good knowledge of audiofile enhancement, using high quality audio tools. So the overall loudness of my sounds is pretty much maxed out already, short from squashing the dynamics to death by a compressor / limiter. So is there any way to define a gain value for the kbTell speech sounds engine wise? Like similar to the "traditional" sounddefinition, done in description.ext under 'class CfgSounds', where one could add separate parameters for gain, pitch and distance to each file?
  20. Hi there, I'm currently working on a script that will do the following: 1. Spawn a vehicle at a random position on a road (solved with SHK_Pos) 2. Add a crew to the vehicle 3. Order the crew to drive to a certain position (_centerPos) All this is working fine*, but there is still a 50/50 chance the spawned vehicle on the road will face the wrong direction (away from the desired destination). As a result, the AI will try to turn the vehicle, sometimes crashing into obstacles at the edge of the road. So I'd like to have the vehicle facing the proper direction right after the spawn. Here's the part of the script where I am stuck: // spawn the vehicle _veh = _vehType createVehicle _vehSpawnPos; // get the roadsegments near the vehicle's spawnposition _nearRoads = _vehSpawnPos nearRoads 10; // select the roadsegment closest to the vehicle _road = _nearRoads select 0; // get the next connected roadsegements to determine the direction of the road _roadConnectedTo = roadsConnectedTo _road; _connectedRoad = _roadConnectedTo select 0; _roadDirection = [_road, _connectedRoad] call BIS_fnc_DirTo; // get the direction from the vehicle to its destination _vehDestinationDir = [_vehSpawnPos, _centerPos] call BIS_fnc_dirTo; // This part has to be solved: // check if the variable _roadDirection holds the best of two road directions leading to the destination // if so, turn the vehicle to _roadDirection, else turn the vehicle around by 180 degrees * Big thanks to Shuko for his great SHK_Pos functions and arjay for sharing his solution to the problem with parallel orientation of a spawned vehicle on a road
  21. I solved the problem by adding a third parameter to the sound definition in description.ext See this post
  22. Ran into the same issue lately getting a helicopter to play music (I use Wagner - scares the hell out of the slopes. My boys love it!). The distance parameter of the say3d command didn't do anything for me. In addition, although my soundfile had a good recording-level (loudness), I had to set the +db value in description.ext quite high (about 50) to make it play loud enough, compared to other game sounds (e.g. gunfire, helicopter engine). After fiddling around for a while I found a working solution: In description.ext I put class CfgSounds { sounds[] = {}; class valkyrie { sound[] = {"sounds\valkyrie.ogg", 50, 1, 350}; titles[] = {}; }; }; Notice the third parameter after volume and pitch! In my example it adjusts the maximum range for the sound to be hearable to 350 meters. It will also make the sound fade evenly from source to max range. In the Mission use chopper1 say3d "valkyrie" to play the sound.
  23. Hi there! Currently im struggling with a JIP compatible bomb timer on a dedicated server for my latest TvT mission. In short: A bomb can be activated by OPFOR (addAction). BLUFOR obviously has the task do disarm the bomb (addAction). Once armed, the bomtimer runs for 45 minutes until detonation sequence is initiated. What I'am trying to achieve is that a bomb timer (countdown) gets displayed for all players from the moment OPFOR activates the bomb (so it is not running from missionstart). By now I was trying to sync the displayed time left for the clients using the command "serverTime", but this doesn't seem to be accurate enough (and will only work if the server is up for at least 300 seconds, btw). On a testrun last night the displayed countdown timers for each player were differing by up to 10 seconds near the end of the mission. Here is what I have until now: Init.sqf AddAction on bomb object (starts bomb_arm.sqf locally on executing players client) bomb_arm.sqf 1st Editor placed Trigger: Serverside, once, to run script bomb_activated.sqf Condition: (isServer) && {bomb_activated} On Act.: if (isServer) then {act = [] execVM "scripts\bomb_activated.sqf"}; bomb_activated.sqf: 2nd Editor placed Trigger: Clientside, once, will fire for JIP players as well Condition: (hasInterface) && {bomb_detonationTime < 999999} On Act.:if (hasInterface) then {nul = [] execVM "scripts\countdown.sqf"} countdown.sqf
  24. However I did edit my last post a bit. I assume, that the purpose of the smoke grenades is to lead the player to its position. In this case you could just change the condition in your while-loop from (alive player) to (player distance _pos > 20). Like this: _pos = getMarkerPos 'DMS_MainDot'; while {player distance _pos > 20} do { _smoke = createvehicle ['SmokeShellRed',_pos,[],0,'none']; _smoke setpos _pos; while {!isNull _smoke && (player distance _pos > 20)} do {sleep 2}; }; This will keep spawning smoke grenades until the player is within 20 metre range of the smoke position. That is if your check for {isNull _smoke} is working. I didn't test that. Of course the last smoke grenade will keep on smoking until it burns out, even if the player gets within 20 metres. The loop just prevents the spawning of further smoke grenades once the player got into range. To delete the last "active" smokegrenade you could simply try adding deleteVehicle _smoke; as the next line after the loop I posted above.
  25. Well... currently the while-loop you started will repeat, as long as the condition (alive player) is true. So you could either use a different condition (player distance _pos > 20) or just use a for-loop instead, to limit the amount of smoke grenade creation cycles: for "_i" from 1 to 20 do // Will repeat the loop 20 times { _smoke = createvehicle ["SmokeShellRed",_pos,[],0,"none"]; _smoke setpos _pos; while {!isNull _smoke} do {sleep 2}; // Better than waitUntil for this purpose }; This will create a total of 20 smoke grenades, each after the one before burned out - provided your check for !isNull _smoke works. Didn't test it.
×