Jump to content

DPM

Member
  • Content Count

    62
  • Joined

  • Last visited

  • Medals

Everything posted by DPM

  1. Makesure it says detectedMines=0; in the server's Arma3Profile
  2. Ok, I'll give it a go. Thanks for all your help (and froggyluv) ...it's greatly appreciated.
  3. Does anybody know how can I get this script to apply to all units including AI, I've tried a few variations on allUnits. but I could only get it working on players again (with some unwanted sleep effects on start and stop)...... SwimFastScriptHandle = [] spawn { while {true} do { if ("AsswPercMrunSnonWnonDf" == AnimationState player) then { player setAnimSpeedCoef 1.6; } else { if (isTouchingGround player) then { player setAnimSpeedCoef 1; }; }; }; };
  4. while {true} do { { if ("Para_Pilot" == AnimationState _x) then { _x allowDamage false; } else { if (isTouchingGround _x) then { sleep 5; _x allowDamage true; }; }; } forEach allUnits; sleep 1; }; I'm presuming that if they land in a tree it's considered touching ground so the sleep 5 is there to give them a chance to get out of the tree before they can take damage again, what would I need to add to stop the script checking after 5 minutes?
  5. I don't know how to write code from scratch, but I made this script a couple of years ago from parts of 2 older scripts and then adding the isTouchingGround, it's usually getting used in the Escape mission on 10 players, so is it continually checking to see if the condition is true because it has no sleep added? For this AI version I was wanting to use it on 30 to 60 units halo dropping from a plane, changing the animation and speed coef to disable damage so they don't kill themselves on trees. (works on a player but the swim version is easier to observe if it's working other units) So, after the initial drop will the script continue to check throughout the approx 45 minute mission duration causing unnecessary lag? Never noticed in Escape as that mission is very resource demanding as it is.
  6. Thanks for the reply, this works fine, but unfortunately the AI it's needed for are spawned, not placed. I tried using ... //description.ext class Extended_InitPost_EventHandlers { class CAManBase { class initpost_units { serverInit = "_this call compile preprocessFileLineNumbers 'swimFaster.sqf'"; }; }; }; ....and turning it into a function following davidoss's instructions from this topic ...and another method using a functions.hpp, but it just seemed to ignore the script. The first method with the description.ext seemed pretty straight forward enough, but I could've messed up the function attempts. Any idea how to execute it other than from inside a placed units init?
  7. Thanks for the reply, when I substituted "player setAnimSpeedCoef 1.6;" for {_x setAnimSpeedCoef 1.6} foreach allUnits; The AI did speed up, but obviously they were triggered from the player's animation so they sped up on land too. I'm unable to change "AnimationState player" to get it to trigger on their own animation state like it does for just players. The only positive result I managed was "{AnimationState _x} foreach allUnits" and it must be saying pretty much the same thing as animationstate player as it gets exactly the same result.
  8. 33 people an nobody knows the answer, is the question really that difficult, or does a swim slightly faster script offend mil sim principles that much?
  9. Yeah it gives empty quote marks where the name should be, I also used.. onEachFrame {hintSilent str [typeOf cursorObject, cursorObject]}; ...which gave me ["",1026274,powlines_transformer2.ped] with the same empty quotes. But thanks all the same.
  10. Does anybody happen to know the classname for this building?.... All I could get is 1026274,powlines_transformer2.ped, Tried Land_Powlines_Transformer2 on the off chance, but it didn't work.
  11. Is it possible to lock player slots when the mission is running? So players can still join the server while the mission is running, but they remain on the right side of the lobby and are totally unable to select any playable slots until the mission has ended and the timer to restart is active. Disabling JIP scripts still seem to let them select a slot before it exits and reserving slots is not what I'm after either.
  12. I'm trying to change the activation of triggers from number based to presence based. The triggers are spawning in ammo boxes and look like this..... They use this code from the initserver.sqf for the condition.... (The case numbers are start postions) ...and call this code also from the initserver.sqf to spawn the boxes... LootSpawnRandomizer = { if (isServer) then { _LStrigger = _this select 0; { _checkType = typeOf _x; _resultPump = _checkType find "_pump"; _resultKiosk = _checkType find "Land_Kiosk"; _resultTransformer = _checkType find "Land_spp_Transformer"; _resultPier = _checkType find "Land_Pier"; _lootPlaces = _x buildingPos -1; if (count _lootPlaces > 0) then { if ((_resultPump != 0) && (_resultKiosk != 0)&&(_resultTransformer != 0) && (_resultPier != 0)) then { {_amishouldSpawn = floor random (5); if(_amishouldSpawn == 0) then {0 = [_x] call myfuncLS;}}foreach _lootPlaces; }; }; }foreach (_LStrigger nearObjects ["house", 300]); }; }; Does anybody know how to get it to ignore the LStriggers and just use presence instead? as any changes I make to the LootSPawnRandomizer where they're mentioned just breaks the mechanic, I presume I need to change part of the "on activation" code in the trigger also... (needs to trigger on anybody including AI, just once) Any help would be greatly appreciated.
  13. When a player or AI enters a trigger it runs the Lootspawnrandomizer, which spawns ammo crates in buildings filled with a selection of items from another script. It has to be crates because the AI have their own script to loot from them. It's not my mission, it's a BR style mission for small groups to play that adds in AI to fill out the numbers. The original author made it for SP and 5 player local host coop but has since vanished. I've been adapting it for up to 30 players on dedicated and have been getting away with ''wingin it'' up to this point as my scripting skills consists of whacking it with a hammer until it hopefully works. The loot system works fine, it just needs to run on presence rather than those LStriggers as they're connected to the start point (certain starts only spawn certain LS triggers) so it leaves areas with no loot at all when people spread out or the play area moves away from the start point in later rounds.
  14. Thanks for the reply pierremgi, after a ton of testing I realized I was getting some repeatable positive results with what you had suggested. Not great results, but positive, I was possibly getting the same results before but thought it just wasn't working because I was looking elsewhere. With Any player, the first trigger I entered would often fire and the base trigger (0) and trigger _1 would always fire. With anybody, it seemed to be just the base trigger and _1. With civilian (what the payable units and enemy AI are) the base trigger and _1 fired for AI. It's tricky testing the AI as the mission has a random start so if they don't go into the base and _1 nothing happens. Is there anything in the code that would suggest why the first two triggers are the only triggers that consistently fire as all the other triggers seem to be fine and in order?
  15. On certain missions If a HC is booted at the same time the server instance is, it tends to lock you out of the mission settings, maybe it's causing the issue with MCC.
  16. A good rewrite of FAST2...and then some, working well and updated regularly. Can't ask much more than that. Cheers! "much"
  17. Can anybody please explain to me how to either exclude "B_crew_F" and "B_T_Pilot_F", or side west from this check.... (({(alive _x)&&(!isPlayer _x)} count allUnits)==0)&&(({alive _x} count allPlayers)==1)
  18. For some reason I got this notification but not your last, even with them turned on.... Yeah, that's what I'd been seeing, it's more geared towards specific slots. I was just wanting to lock all slots while the mission was running, but keep the ability to join the server lobby (right side) open. I think it might actually be the kill counter itself that has the problem _unit addEventHandler ["killed", "MyPlayersCount = MyPlayersCount -1; plalive = MyPlayersCount; publicVariable 'MyPlayersCount'; if (isPlayer (_this select 1)) then {remoteExec ['addKillCounter',(_this select 1)]}; chatMsg = format ['%1 was killed by %2. Players alive: %3', (name (_this select 0)), (name (_this select 1)), MyPlayersCount]; [(_this select 0),chatMsg] remoteExec ['globalChat']; remoteExec ['updateUI']; call test_logger;"]; updateUI = { if (EnableCustomHudMode>0) then { disableSerialization; _display = uiNamespace getVariable "hudScrDisplay"; _textPlayersAlive = _display displayCtrl 1905; _textPlayersAlive ctrlSetText format["%1",MyPlayersCount]; //[_textPlayersAlive,"format['%1',MyPlayersCount]" ] remoteExec["ctrlSetText"]; _textKillsCounter = _display displayCtrl 1908; _textKillsCounter ctrlSetText format["%1",KillsCounter]; I think If this was done using normal alternatives to the author's MyPlayersCount it might solve the issue, because somehow what the author has done is counting players in playable slots, that are not actually playing in the mission itself. I believe the variables MyPlayersCount and AllMyPlayers were made because the mission was originally intended to be a coop with an AI team preferably over 5 human coop players....and hosted locally. What I'm trying to do is make it for up to 25 human pvp players on dedicated....and for the most part, it's working. Just this issue and a regular error concerning another author variable "mymortarrs" getting thrown in the rpt to sort out. For example the win condition had to be changed from this first line to the second to get it to work. (which is what I was asking about first) condition="allPlayersmy = []; " \n "if (EnableSquad < 1) then { " \n "{ " \n " if (isPlayer _x) then " \n " { " \n " allPlayersmy pushBack _x; " \n " }; " \n "} forEach playableUnits; " \n "} " \n "else { " \n "allPlayersmy = units MyTeamSquad; " \n "}; " \n "plalive == count allPlayersmy; " \n ""; condition="{sleep 45};(({(alive _x)&&(!isPlayer _x)} count allUnits)<23)&&(({alive _x} count allPlayers)==1);" \n ""; Anyway, thanks for the reply.
  19. Sorry, only saw your reply now. I didn't get it to work exactly how I wanted it to. Whatever way I tried to include the pilots and crew into the count it seemed to just ignore them.(though that could totally be down to my lack of coding knowledge). Eventually I just counted them as a total and included that total in the all units count as less than their number. However while it seems to work, the mission is counting players in the lobby in player slots that aren't actually in the mission and incorporating them into the Kill counter total in the actual mission and that then gives a false number. The win condition still activates when only one player is alive and fails when all players are dead, but it doesn't line up with the kill counter. Ideally, I'd like to do it the most effective and eloquent way, but how the the mission counts AI and players is intertwined to include AI as part of your team (as it's made to be a 5 player coop with real players or AI squad) and the codes seems to be in a few places with mission specific titles like, allPlayersmy, MyPlayersCount that don't give any applicable information when searching on google for them. I can sort of see how they work (to a degree) but changing them would we beyond my capabilities. I think my alternative option would be to lock all player slots while the mission is running, as being on the right side of the lobby doesn't seem to affect the kill count the way being in a player slot does. However when searching how to do that the best I can come up with is locking class based slots or reserving white listed GUID slots. Is it possible to keep the server open for players to join while the mission is running, but to have the player slots locked, so they have to wait on the right side until it restarts and they open again?
  20. I'm playing a mission that has a supply drop script in it, the script runs fine in the editor, the plane arrives at the right location and drops one chute with a crate on it with inventory access to the gear inside. However on a dedicated server when the plane arrives at the location it drops multiple chutes with crates in relation to how many players are on the server and only one has gear with an inventory interaction available to get it, the rest are empty with no inventory interaction. Google suggests adding isServer/isDedicated etc, but no matter how I try applying that to the script or the call, the only thing it does is affect the contents of the extra crates and the ability to access the inventory, it still generates multiple chutes with crates. The ideal situation is for the plane to drop one chute with one crate regardless of how many are on the server. The author of the mission hasn't been seen since February so I haven't been able to ask them directly and I'd be grateful if anybody has any ideas? It's a BR style mission so the drop plane goes to a randomly placed area on the map, it's called from the initserver.sqf ....and this is the script....
  21. Yeah, I think once I didn't get the result I was hoping for, but actually got something else happening instead of what it had been doing default, then I couldn't see the forest for the trees and just kept digging myself a deeper hole. That's no doubt correct, but it's not my script, or mission and trying to get it to function the way I wanted has melted my head to the point that I'll be happy enough if it just simply "works", let alone efficiently and compared to the win condition, this is has been easy. Perhaps the author wrote it that way because AI need to interact with it too, I have no idea.
  22. It is a dedi, but at that point I was trying everything through furstration and a touch of desperation....I can only think the closing }; must've messed up and because it did actually do something to the crates I just kept doing the same thing wrong.
  23. Y'know. that was the first thing I tried and it didn't work, neither did IsDedicated and a few other variations in multiple places. Then because you confirmed it I tried it again and only one crate dropped. There's AI in the mission so it normally drops 2 without other human players on, so I'll have to wait to confirm, but it looks good. I don't know why it didn't get the same result the first time as I did the exact same thing, or some of the others, but it would've saved me a ton of time going in and waiting 10 mins for the drop to happen just to see it didn't work ...and I did that a LOT lol Arma! Thanks for the reply, if it turns out it's just bluffing me, I'll be back.
  24. I sort of got it working by including the blufor units in the unit count, but if arma does it's thing and kills any of them for arma reasons that'll probably break it. playableUnits findIf {alive _x && isPlayer _x} <= 0 seemed to just be ignored, but I'll give it another go tomorrow, been at this for 14 hours....melted. Thanks for the help .
  25. It crashed the server with this error '/mission/Entities/Item6/Attributes.B_crew_F':"" encountered instead of '='. I tried deleting the units from inside the brackets and it didn't crash, but it didn't have the desired effect I was looking for either. The check is for a win condition in a BR style coop mission. (That I didn't make but the author is awol) I'm trying to get it to end when all AI 'players' and all but the last playable unit are dead (it was designed to end when just the AI are dead so if there's more than one player left it still ends the mission). When I run that check and kill all the AI playing the BR part of the game it doesn't end because there are still blufor artillery tanks and vtols alive in the mission, when I kill all AI in the console the win condition works. What I'm trying to do is exclude the blufor units and get the same result.
×