Jump to content

HonzaVinCZ

Member
  • Content Count

    60
  • Joined

  • Last visited

  • Medals

Everything posted by HonzaVinCZ

  1. Hello, my mate has some error happening after upgrading his GPU. He can launch Arma with mods without any problems but after 5-10min, his client crashes. He has everything up to date as he says. He also tried to reinstall the game but it didn't help. Log download ( Google Drive ) Also one note worth to say... The .mdmp file has over 46 MB. The mdmp file download ( Google Drive )
  2. HonzaVinCZ

    C0000005 ACCESS_VIOLATION at F88B6A1D

    No, I don't know.
  3. HonzaVinCZ

    Need your help with this script

    Yes, that is what I'm looking for. But I'm not sure how to use that properly in my script.
  4. Hey guys, today I have problem with this script. I have been working on this thing for like 4 hours now and can't make it work without problems. I have tried many different ways to solve the described problem below but without effect. Basically this script is executed from init field of IED and if player enters proximity of 5 meters around the IED (IED is placed on table), it will create task informing player he found IED factory and it must be destroyed. The problem is, there are no errors popping out when mission is started and task is created well as it should but the task missing place and if the IED is destroyed or disarmed, mission is not succeeded. Btw ignore the _table, I'm working on it. _ied = _this select 0; _iedPos = getPosATL _ied; _table = nearestObject [_iedPos, "Land_WoodenTable_small_F"]; _iedTrig1 = createTrigger ["EmptyDetector", _iedPos , true]; _iedTrig1 setTriggerArea [5, 5, 0, false, 5]; _iedTrig1 setTriggerActivation ["WEST", "PRESENT", false]; _iedTrig1 setTriggerStatements [ "this", "[west, ['iedFactoryTask_'], ['Our forces found enemy IED factory, your task is destroy it.', 'Destroy IED factory'], objNull, 1, 3, true, '', true] call BIS_fnc_taskCreate; ['iedFactoryTask_', _iedPos] call BIS_fnc_taskSetDestination; deleteVehicle thisTrigger;", ""]; _iedTrig2 = createTrigger ["EmptyDetector", _iedPos , true]; _iedTrig2 setTriggerActivation ["NONE", "PRESENT", false]; _iedTrig2 setTriggerStatements [ "!alive _ied", "['iedFactoryTask_', 'SUCCEEDED', true] call BIS_fnc_taskSetState; deleteVehicle thisTrigger;", ""];
  5. HonzaVinCZ

    Need your help with this script

    So I have solved half of the problem. Now I have problem with mission variable. If I place two objects with same init, the script can't make variable for each object when creating mission ID. Any idea how can I make mission ID variable, please? _ied = _this select 0; _iedPos = getPosATL _ied; _table = nearestObject [_iedPos, "Land_WoodenTable_small_F"]; _iedTrig1 = createTrigger ["EmptyDetector", _iedPos , true]; _iedTrig1 setTriggerArea [10, 10, 10, false, 5]; _iedTrig1 setTriggerActivation ["WEST", "PRESENT", false]; _iedTrig1 setVariable[ "ied", _ied ]; _iedTrig1 setVariable[ "iedPos", _iedPos ]; _iedTrig1 setTriggerStatements [ "this && (thisTrigger getVariable 'ied') mineDetectedBy west && alive (thisTrigger getVariable 'ied')", "[west, ['mission_'], ['Our forces found enemy IED factory, your task is to destroy it.', 'Destroy IED factory'], thisTrigger getVariable 'iedPos', 1, 3, true, 'destroy', true] call BIS_fnc_taskCreate;", ""]; _iedTrig2 = createTrigger ["EmptyDetector", _iedPos , true]; _iedTrig2 setTriggerActivation ["NONE", "PRESENT", false]; _iedTrig2 setVariable[ "ied", _ied ]; _iedTrig2 setVariable[ "iedTrig1", _iedTrig1 ]; _iedTrig2 setTriggerStatements [ "!alive (thisTrigger getVariable 'ied') && triggerActivated (thisTrigger getVariable 'iedTrig1')", "['mission_', 'SUCCEEDED', true] call BIS_fnc_taskSetState;", ""]; waitUntil {triggerActivated _iedTrig2}; deleteVehicle _iedTrig1; deleteVehicle _iedTrig2;
  6. HonzaVinCZ

    Need your help with this script

    Thank you very much, I thought these vaules are undefined in trigger but had no idea how to define them in trigger. So if I want define any values in trigger, I must define them by _trigg setVariable ... ? Also does it work for multiple values? For example if I wanted to store two values, I just write more setVariable ?
  7. Hello guys, I have done my own weather script but as you can see, I'm not any scripting wizard and I know all these lines must be quite stressful for engine to read but don't know how to simplify the loop to make it more lag free. Basically this script has three main features: Weather, time acceleration and skip to given time. Weather is changed every ingame half hour and it takes another ingame half hour to change. The ingame half hour is calculated from time acceleration. It's the _delayHalfHourFloored variable. The _debug function is WIP. 😄 _weather = true; // Set dynamic weather on/off. Value: true/false. Default: true _timeMultiplier = 1; // Set time acceleration. Value: 0.1-120. Default: 1 _timeTrue = true; // Set scripted mission start time on/off (using skipTime function) _time = 10; // Set mission start time. Value in 24 hours format (1-24). Minutes usage example: 18.24 means 18:24. Default: 10 _debug = true; // Set debug on/off _delay1Hour = 3600 / _timeMultiplier; _delay1HourFloored = floor _delay1Hour; _delayHalfHour = _delay1HourFloored / 2; _delayHalfHourFloored = floor _delayHalfHour; skipTime (_time - daytime + 24 ) % 24; if (_timeTrue) then { setTimeMultiplier _timeMultiplier; }; while {_weather} do { _daytime = floor daytime; _valueOvercast = random [0, 0.3, 1]; if (_daytime == 0) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 1) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 2) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 3) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 4) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 5) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 6) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 7) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 8) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 9) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 10) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 11) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 12) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 13) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 14) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 15) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 16) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 17) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 18) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 19) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 20) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 21) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 22) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; if (_daytime == 23) then { _delayHalfHourFloored setOvercast _valueOvercast; if (_valueOvercast >= 0.5) then { _vauleRain = _valueOvercast; _delayHalfHourFloored setRain _vauleRain; if (_vauleRain <= 0.4) then { _delayHalfHourFloored setFog random [0, 0.2, 0.5]; }; } else { _delayHalfHourFloored setRain 0; }; }; sleep _delayHalfHourFloored; };
  8. HonzaVinCZ

    How can I simplify this script?

    Thank you! I saw scripts like very often used in Exile but there's dynamic weather hard coded to be very often rainy. Also I wanted to try make dynamic weather script on my own, I wanted to learn something new.
  9. HonzaVinCZ

    How can I simplify this script?

    I had no idea that there can be dynamic weather generated by Arma engine itself.
  10. HonzaVinCZ

    How can I simplify this script?

    Oh that... I floored it there just for sure of performance. For example if the calculation results in number like 0,5444444444... . Not sure if it helps somehow. Is the floor useless here? You right, I'm just blind. Will move that under _timeTrue condition. Mistaken it with setTimeMultiplier, didn't read it when I was switching between browser and text editor. Thank you, will take look on it.
  11. HonzaVinCZ

    How can I simplify this script?

    As I said, I'm not very experienced and I'm very amateur in scripting. It suprised myself that this script actually works well but had no idea how could I optimise it. Will use that, thank you. Sorry, I have no idea how this works, never worked with that. Because I was not sure if the value was a bit different due to some lag or something, the "if" condition would then be false. I was working with that it outputs dayTime in HH:MM:SS but just now realised I can put there "HH" condition so I don't need floor condition anymore if I'm right - sometimes I just don't know what I'm doing and just only testing what will work. Didn't even notice that, thank you. There's _weather = true condition for turning the weather on/off. I don't want to disable whole script in init because there are more functions in one script I can enable or disable. It does. If it is true, it will enable using of scripted time. If _time = 10, then the script will skip time to make mission start time 10:00. If it is false, the condition will not be executed so there will be default time set in editor on mission start.
  12. Hey guys, I need you to help me with this script. Basically this script creates markers on selected vehicles and makes markers move with vehicles. Problem with this script is, that it cannot find target vehicle after vehicle was destroyed and respawned by other script I'm attaching under my actual script. It even won't work if vehicle name is set in editor. Any idea how could I make marker find vehicle again, change text to not destroyed and move with that vehicle again please? scripts\VehicleMarkers.sqf scripts\Vehicle.sqf ( Vehicle respawn script )
  13. HonzaVinCZ

    [Help] Custom Vehicle Markers

    That is just perfect! Thank you a lot! Oh yes, I'm still beginner in scripting so I know about it little. I can create something that works but I have no idea what it could do with performance. Also I'm basically learning C++ in Arma engine and that's also not ideal but I actually don't use C++ anywhere else.
  14. Hello, guys. I have done this script but it won't take away instigator's score and shows "any" instead of -100 points in system message. Any help please? Also if possible, could you give me a advice how to set message to show score ammount taken not in minus? Thank you! // Turn Punishments ON/OFF _run = true; // Turn Civillian Punishment ON/OFF //_civillianPunishment = true; // How many points take away to instigator for civillian killed - WORKS ONLY IF _civillianPunishment = true _civilianPunishmentPoints = -100; // Turn Team Kill Punishment ON/OFF //_teamKillPunishment = true; // How many points take away to instigator for teamkill - WORKS ONLY IF _teamKillPunishment = true _teamKillPunishmentPoints = -100; if (_run) then { addMissionEventHandler ["EntityKilled", { params ["_killed", "_killer", "_instigator"]; // UAV/UGV player operated road kill if (isNull _instigator) then { _instigator = UAVControl vehicle _killer select 0 }; // player driven vehicle road kill if (isNull _instigator) then { _instigator = _killer }; // Civillian Punishment if ((side group _killed == civilian) && (isPlayer _instigator)) then { if (isServer) then { _instigator addScore _civilianPunishmentPoints}; systemChat format ["%1 killed a civilian, he loses %2 score.", name _instigator, _teamKillPunishmentPoints]; }; // Team Kill Punishment if ((side group _killed == side _instigator) && (isPlayer _instigator)) then { if (isServer) then { _instigator addScore _teamKillPunishmentPoints}; systemChat format ["%1 did a team kill, he loses %2 score.", name _instigator, _teamKillPunishmentPoints]; }; }]; };
  15. I was so lucky and I had to laugh what I noticed. In this situation you need to type variable without that "_" and then it will work. I was trying everything and then I tried to remove those "_" in variables containing just number and it worked! So then I could finish this script. Not sure with using "if-then" in this situation to turn on/off civilian or team kill punishment... it was just not working if even "if" was true so I removed that and let script be like this: // Turn Punishments ON/OFF _run = true; // How many points take away to instigator for civillian killed civilianPunishmentPoints = -100; // How many points take away to instigator for teamkill teamKillPunishmentPoints = -100; // Score to kick for is <= kickPoints kickPoints = -500; if ((_run) && (isServer)) then { civilianPunishmentPointsABS = abs civilianPunishmentPoints; teamKillPunishmentPointsABS = abs teamKillPunishmentPoints; addMissionEventHandler ["EntityKilled", { params ["_killed", "_killer", "_instigator"]; // UAV/UGV player operated road kill if (isNull _instigator) then { _instigator = UAVControl vehicle _killer select 0 }; // player driven vehicle road kill if (isNull _instigator) then { _instigator = _killer }; // Civillian Punishment if ((side group _killed == civilian) && (isPlayer _instigator)) then { _instigator addScore civilianPunishmentPoints; systemChat format ["%1 killed a civilian, he loses %2 score.", name _instigator, civilianPunishmentPointsABS]; }; // Team Kill Punishment if ((side group _killed == side _instigator) && (isPlayer _instigator)) then { _instigator addScore teamKillPunishmentPoints; systemChat format ["%1 did a team kill, he loses %2 score.", name _instigator, teamKillPunishmentPointsABS]; }; // Kick For Too Bad Points if ((score _instigator <= kickPoints) && (isPlayer _instigator)) then { _uid = getPlayerUID _instigator; systemChat format ["%1 has been kicked for killing too many civillians and/or team kills", name _instigator]; serverCommand format ["#kick %1", _uid]; }; }]; }; Hopefully someone find it helpful!
  16. So... I still didn't found how to make it work. The problem are just number variables. When I set numbers in addScore manually, it works well but it won't work with variables I set. I must have it written wrong so I would like to ask you how I could write those number variables right because I have no idea how to write it.
  17. Hello, guys. I have very simple script but it shows error. I don't know how about you but I'm sure I have it written correctly because it was working in my old mission and in new one it won't work. Any help please? Vehicle init: _this = execVM "scripts\Auto_Rearm.sqf"; scripts\Auto_Rearm.sqf: // Define Variables _unit = _this select 0; // Start loop while {true} do { _unit setVehicleAmmo 1; sleep 300; };
  18. HonzaVinCZ

    Simple script shows error

    Well, it works also until the vehicle is destroyed. After vehicle respawn it shows vehicle marker on grid 000... . Maybe I'm so bad I can't use your scripts properly or I don't know. I'm really lost in this situation. Also I was using script vehicle respawn I attached above because the editor module respawn is broken and spawns vehicles in walls and not properly on the place.
  19. HonzaVinCZ

    Simple script shows error

    Oh, nevermind... I overlook script and mistaken just the name with your aircraft pylon script. Btw this is the vehicle respawn script I was using before ZaellixA script test. /* ================================================================================================================== Simple Vehicle Respawn Script v1.81 for Arma 3 by Tophe of Östgöta Ops [OOPS] and tweaked for I&A 3 by Rarek [AW] Put this in the vehicles init line: veh = [this] execVM "vehicle.sqf" Options: There are some optional settings. The format for these are: veh = [object, Delay, Deserted timer, Respawns, Effect, Dynamic] execVM "vehicle.sqf" Default respawn delay is 30 seconds, to set a custom respawn delay time, put that in the init as well. Like this: veh = [this, 15] execVM "vehicle.sqf" Default respawn time when vehicle is deserted, but not destroyed is 120 seconds. To set a custom timer for this first set respawn delay, then the deserted vehicle timer. (0 = disabled) Like this: veh = [this, 15, 10] execVM "vehicle.sqf" By default the number of respawns is infinite. To set a limit first set preceding values then the number of respawns you want (0 = infinite). Like this: veh = [this, 15, 10, 5] execVM "vehicle.sqf" Set this value to TRUE to add a special explosion effect to the wreck when respawning. Default value is FALSE, which will simply have the wreck disappear. Like this: veh = [this, 15, 10, 5, TRUE] execVM "vehicle.sqf" By default the vehicle will respawn to the point where it first was when the mission started (static). This can be changed to dynamic. Then the vehicle will respawn to the position where it was destroyed. First set all preceding values then set TRUE for dynamic or FALSE for static. Like this: veh = [this, 15, 10, 5, TRUE, TRUE] execVM "vehicle.sqf" If you you want to set the INIT field of the respawned vehicle, first set all other values, then set init commands. Those must be inside quotations. Like this: veh = [this, 15, 10, 5, TRUE, FALSE, "this setDammage 0.5"] execVM "vehicle.sqf" Default values of all settings are: veh = [this, 30, 120, 0, FALSE, FALSE] execVM "vehicle.sqf" Contact & Bugreport: cwadensten@gmail.com ================================================================================================================== */ if (!isServer) exitWith {}; // Define variables _unit = [_this,0,objNull,[objNull]] call BIS_fnc_param; _delay = [_this,1,30,[0]] call BIS_fnc_param; _deserted = [_this,2,120,[0]] call BIS_fnc_param; _respawns = [_this,3,0,[0]] call BIS_fnc_param; _explode = [_this,4,false,[true]] call BIS_fnc_param; _dynamic = [_this,5,false,[true]] call BIS_fnc_param; _unitinit = [_this,6]; _haveinit = if (count _this > 6) then { true } else { false }; _hasname = false; _unitname = vehicleVarName _unit; if (isNil _unitname) then {_hasname = false;} else {_hasname = true;}; _noend = true; _run = true; _rounds = 0; if (_delay < 0) then {_delay = 0}; if (_deserted < 0) then {_deserted = 0}; if (_respawns <= 0) then {_respawns= 0; _noend = true;}; if (_respawns > 0) then {_noend = false}; _dir = getDir _unit; _position = getPosASL _unit; _type = typeOf _unit; _dead = false; _nodelay = false; // Start monitoring the vehicle while {_run} do { sleep (2 + random 10); if ((getDammage _unit > 0.8) and ({alive _x} count crew _unit == 0)) then {_dead = true}; // Check if the vehicle is deserted. if (_deserted > 0) then { if ((getPosASL _unit distance _position > 10) and ({alive _x} count crew _unit == 0) and (getDammage _unit < 0.8)) then { _timeout = time + _deserted; sleep 0.1; waitUntil {_timeout < time or !alive _unit or {alive _x} count crew _unit > 0}; if ({alive _x} count crew _unit > 0) then {_dead = false}; if ({alive _x} count crew _unit == 0) then {_dead = true; _nodelay =true}; if !(alive _unit) then {_dead = true; _nodelay = false}; }; }; // Respawn vehicle if (_dead) then { if (_nodelay) then {sleep 0.1; _nodelay = false;} else {sleep _delay;}; if (_dynamic) then {_position = getPosASL _unit; _dir = getDir _unit;}; if (_explode) then {_effect = "M_AT" createVehicle getPosASL _unit; _effect setPosASL getPosASL _unit;}; sleep 0.1; deleteVehicle _unit; sleep 2; _unit = _type createVehicle _position; _unit setPosASL _position; _unit setDir _dir; if (["B_UAV", _type] call BIS_fnc_inString) then { createVehicleCrew _unit; }; if (_haveinit) then { _unit call compile format ["%1=_This; PublicVariable '%1'",_unitinit]; }; if (_hasname) then { _unit setVehicleVarName _unitname; _unit call compile format ["%1=_This; PublicVariable '%1'",_unitname]; }; _dead = false; // Check respawn amount if !(_noend) then {_rounds = _rounds + 1}; if ((_rounds == _respawns) and !(_noend)) then {_run = false;}; }; }; Also did not try your script so give me time please. Thank you!
  20. HonzaVinCZ

    Simple script shows error

    I tried your script and it doesn't work. I got huge fps spike so it propably execvm-ing this script after vehicle respawn continously with using editor module respawn. I was using GOM's vehicle respawn script before and it showed error on his 123 line when I was using my script on same vehicle. I spent whole morning solving how to make it work but still not lucky. My actual not working script: /* Vehicle init veh = [this,2] execVM "scripts\VehicleMarkers.sqf"; - vehicle name - Text Text: 1 = Repair Truck 2 = Fuel Truck 3 = Ammo Truck 4 = MHQ */ _unit = _this select 0; _text = _this select 1; _randomnumber = random 1000000; _nameMarker = "Markername" + (str _randomnumber); createMarker [_nameMarker, getPosVisual _unit]; if (_text == 1 or _text == 2 or _text == 3) then { _nameMarker setMarkerType "b_unknown"; }; if (_text == 4) then { _nameMarker setMarkerType "b_hq"; }; _nameMarker setMarkerColor "ColorBLUFOR"; if (_text == 1) then { _nameMarker setMarkerText "Repair truck"; }; if (_text == 2) then { _nameMarker setMarkerText "Fuel truck"; }; if (_text == 3) then { _nameMarker setMarkerText "Ammo truck"; }; if (_text == 4) then { _nameMarker setMarkerText "HQ"; }; while {alive _unit} do { _nameMarker setMarkerPos (getPosVisual _unit); sleep 5; }; if (_text == 1) then { _nameMarker setMarkerText "Repair truck is destroyed"; }; if (_text == 2) then { _nameMarker setMarkerText "Fuel truck is destroyed"; }; if (_text == 3) then { _nameMarker setMarkerText "Ammo truck is destroyed"; }; if (_text == 4) then { _nameMarker setMarkerText "MHQ is destroyed"; }; _unit addEventHandler["Respawn", { private _respawnUnit = _this select 0; _respawnUnit removeEventHandler _thisEventHandler; deleteMarker _nameMarker; [_unit, _text] execVM "scripts\VehicleMarkers.sqf"; }];
  21. HonzaVinCZ

    Simple script shows error

    Thank you a lot! I have one more problem and it is this script: VehicleMarkers.sqf _unit = _this select 0; _text = _this select 1; _randomnumber = random 100 + random 100; _nameMarker = "Markername" + (str _randomnumber); _debug = true; createMarker [_nameMarker, getPosVisual _unit]; _nameMarker setMarkerType "hd_dot"; _nameMarker setMarkerColor "ColorBlue"; if (_text == 1) then { _nameMarker setMarkerText "Repair truck"; }; if (_text == 2) then { _nameMarker setMarkerText "Fuel truck"; }; if (_text == 3) then { _nameMarker setMarkerText "Ammo truck"; }; while {true} do { if (alive _unit) then { _nameMarker setMarkerPos getPosVisual _unit; if (_text == 1) then { _nameMarker setMarkerText "Repair truck"; }; if (_text == 2) then { _nameMarker setMarkerText "Fuel truck"; }; if (_text == 3) then { _nameMarker setMarkerText "Ammo truck"; }; } else { if (_text == 1) then { _nameMarker setMarkerText "Repair truck is destroyed"; }; if (_text == 2) then { _nameMarker setMarkerText "Fuel truck is destroyed"; }; if (_text == 3) then { _nameMarker setMarkerText "Ammo truck is destroyed"; }; }; sleep 3; }; Vehicle var: Franta vehicle init: veh = [this, 30, 120, 0, FALSE, FALSE] execVM "scripts\vehicle.sqf"; _this = [Franta,2] execVM "scripts\VehicleMarkers.sqf"; as you see, I'm very beginner... so, my point is to make marker move with unit, in my case with vehicle and if it is destroyed, it just changes to "destroyed" text and after it respawns, marker should move to vehicle and text should be same as before it was destroyed but that doesn't work. I have set in respawn script vehicleVarName to save it and in editor there's vehicleVarName set. So when vehicle is destroyed and it respawns, marker won't move to respawned vehicle but varName still exists when I try Franta(vehicleVarName) setDamage 1; . Any idea please? Please try as easiest script as you can so I can understand it, thank you!
  22. Hello, I'm working with editor placed markers and I need to set marker alpha to 1 just for BLUFOR when OPFOR enters trigger area and then to 0 when OPFOR leaves the area. I have done it by trigger but marker alpha is set to all players and that's what I don't want. I have script that sets the marker alpha for BLUFOR and OPFOR on the mission init, here it is: if (!isDedicated) then { {_x setMarkerAlphaLocal 0} forEach ["OMHQ_1M","BMHQ_1M","iedfacm_1","weapfacm_1","weapfacm_2","bluM_1","bluM_2","bluM_3","bluM_4","bluM_5","bluM_6","bluM_7","opfM_1","opfM_2","opfM_3","opfM_4","opfM_5","opfM_6","opfM_7","bluMZ_1"]; waitUntil {!isNull player}; switch (side player) do { case WEST: { {_x setMarkerAlphaLocal 1} forEach ["BMHQ_1M","bluM_1","bluM_2","bluM_3","bluM_4","bluM_5","bluM_6","bluM_7","bluMZ_1"]; }; case EAST: { {_x setMarkerAlphaLocal 1} forEach ["OMHQ_1M","opfM_1","opfM_2","opfM_3","opfM_4","opfM_5","opfM_6","opfM_7","iedfacm_1","weapfacm_1","weapfacm_2"]; }; }; }; but it works only to markers that doesn't change their own alpha. Marker zone I want to make is called "bluMZ_1".
  23. HonzaVinCZ

    setMarkerAlpha for one side

    Well, thank you. But I still don't know how to set that alpha just for one side.
  24. HonzaVinCZ

    setMarkerAlpha for one side

    I'm not sure how to create that local marker or more markers just for OPFOR, could you tell me please? It's a mp mission so players are going to join and leave.
  25. HonzaVinCZ

    SVBIED

    Hello, I need you to help me with my small simple script that doesn't work. It always shows error in line 12 and I have no idea why. It should work but it doesn't. It's called in vehicle init by: vehbomb = [this] execVM "scripts\iedTruck.sqf"; This is iedTruck.sqf: if (!isServer) exitWith {}; _vehicle = _this select 0; while {alive _vehicle} do { sleep 1; if ({alive _x} count _vehicle < 1) then { if (west countSide (getPos _vehicle nearEntities 15) >0) then { "Bo_GBU12_LGB" createVehicle getPos _vehicle; }; }; }; *EDIT* I'd like to ask someone to move this thread to Arma 3 Editing and scripting. Created it here by mistake, thank you!
×