Jump to content

Donnovan

Member
  • Posts

    840
  • Joined

  • Last visited

  • Days Won

    12

Reputation Activity

  1. Like
    Donnovan reacted to Ayy_Lmao in BR PVP - Chernarus - Arma 3   
    How do i get takistan to work? if i can, i will join.
  2. Like
    Donnovan got a reaction from Ayy_Lmao in BR PVP - Chernarus - Arma 3   
    Arma 3 Mod.
    Link to Steam Workshop Page: http://steamcommunity.com/sharedfiles/filedetails/?id=649594195
    Server: 177.207.204.23:2322

  3. Like
    Donnovan reacted to Tang0 in Andre Aerial Patrol - [Coconut Release] - Any Map   
    sphere works ok for me
  4. Like
    Donnovan reacted to ElDubya in Andre Aerial Patrol - [Coconut Release] - Any Map   
    _sphere = createVehicle ["Sign_sphere100cm_EP1",[0,0,0],[],0,"CAN_COLLIDE"]; _sphere attachTo [_motor,[0,0,3]]; This part no longer works from the original script. I needed this to work because I run a PVE server and needed a way to distinguish between player heli's and AI heli's ..... :(
  5. Like
    Donnovan reacted to Thug in Andre Aerial Patrol - [Coconut Release] - Any Map   
    Donnovan, I noticed it stopped working on my servers. I notice after the Arma update.Just wanted to let you know.
  6. Like
    Donnovan got a reaction from 31_D!4b10 in [Release] Casca Vehicles Convoy for any Map   
    @ ElDubya,

    Thanks for the tutorial!

    @ CharlesDarwin,

    ElDubya tutorial is nice. Try it please!

    @ All,

    The only problem left is that, i believe, DZMS makes AI and zombies enemyes, so the convoy can stop because of zombies.

    If this happens, you can try to fix by making Zombies and AI friends with those lines:
     

    //Bots Friend to Zombies EAST setFriend [CIVILIAN,1]; CIVILIAN setFriend [EAST,1]; You must run this command on the server and it can be run at the end of the server file init/server_functions.sqf.
    Some other script may also run this command, so if its not working, may be some other AI script is changing it.
  7. Like
    Donnovan got a reaction from 31_D!4b10 in [Release] Casca Vehicles Convoy for any Map   
    New version of the main script (item 5 of the instructions):
     
    Changes:
     
    Better AI in/out vehicles.
    Some new cool smart code.
    NO TURRET VEHICLES ANYMORE, since they are a lot over powered.
     
    *** UPDATED ON THE FIRST POST! ***
  8. Like
    Donnovan got a reaction from 31_D!4b10 in [Release] Casca Vehicles Convoy for any Map   
    LunatikCH,
     
    ["addWeaponCargoGlobal","NVGoggles",[3,4,5]]
     
    If the vehicle is set to have this loot (NVGoogles) it will have a quantity of 3 is its alone, 4 if its in a 2 cars convoy and 5 if its in a 3 cars convoy.
  9. Like
    Donnovan got a reaction from 31_D!4b10 in [Release] Conrads Refugee Camp   
    If you like my work, please consider a donation:

    $USD

    $EURO



     
    Peacefull Conrads Refugee Camp is a place where peacefull people is know to be set up after the overall contagion of the zombie virus.
     
    There is some time from the last contact with this camp, whi don't you go there and take a look?
     
    1 - The Script: Run this on the server or in a headless client.


    //===================================== // KONFIGURATION //===================================== //Number of buildings, tents, buildings, on the camp _camp_vehicles = [ ["Acamp", 40], ["Land_A_tent", 25], ["TentStorage", 15], ["Land_Fire_Barrel_Burning", 15], ["Misc_Cargo1B_military", 5] ]; //Zombie Spawn Array donn_terror_zomb = [ [ [[6624-3735,14212-5342,0],'cid_salv', 450, 3], //Special line, not realated to spawn //[ // [position], // Spawn Radius, // number os zeds, // zeds view distance, // dist from player to start to walk, // special zed? 0 or 1 or 2, // zed life multiplier 1 is normal life , // time to be on the ground after explosion //] [[6660-3735,14177-5342,0], 25, 15, 60, 15, 0, 1.1, 60], [[6786-3735,14320-5342,0], 25, 15, 60, 15, 0, 1.1, 60], [[6791-3735,14091-5342,0], 25, 15, 60, 15, 0, 1.1, 60], [[6668-3735,14121-5342,0], 25, 15, 60, 15, 0, 1.1, 60], [[6599-3735,14260-5342,0], 25, 15, 60, 15, 0, 1.1, 60], [[6624-3735,14212-5342,0],100, 40,100, 15, 0, 1.1, 60], [[6624-3735,14212-5342,0],120, 14, 60, 15, 1, 1.2, 60], [[6624-3735,14212-5342,0], 10, 1, 60, 15, 2, 3.5,120] ] ]; //===================================== // SPAWN BUILDINGS //===================================== diag_log "[TERROR-Z] Buildings INIT Initialized!"; //Camp Center _bomberman = [2889, 8870]; { for "_y" from 1 to (_x select 1) do { _vehicle = createVehicle [_x select 0, _bomberman, [], 90, "NONE"]; _vehicle setDir (random 360); sleep 0.001; }; } forEach _camp_vehicles; //Parked Buses _ikarus = [ [[2890,8988,0],25 + (random 16),"UNLOCKED"], [[2898,8983,0],25 + (random 16),"UNLOCKED"], [[2905,8975,0],25 + (random 16),"LOCKED"], [[2912,8971,0],25 + (random 16),"LOCKED"], [[2921,8967,0],25 + (random 16),"UNLOCKED"] ]; { _vehicle = createVehicle ["Ikarus_TK_CIV_EP1", _x select 0, [], 0, "NONE"]; _vehicle setPosATL (_x select 0); _vehicle setDir (_x select 1); _vehicle setVariable ["ObjectID", "1", true]; _vehicle setVariable ["ObjectUID", "1", true]; _vehicle setVehicleLock (_x select 2); PVDZE_serverObjectMonitor set [count PVDZE_serverObjectMonitor, _vehicle]; } forEach _ikarus; //Alone Building _vehicle = createVehicle ["mbg_apartments_big_01_EO", [2753,9007,0.22], [], 0, "CAN_COLLIDE"]; _vehicle setPosATL [2753,9007,0.22]; _vehicle setDir 130; //LOOT: _lootPos = [ [6660.3984-3735, 14177.261-5342], [6786.0361-3735, 14320.882-5342], [6791.7695-3735, 14091.711-5342], [6668.1357-3735, 14121.218-5342], [6599.8535-3735, 14260.836-5342] ]; _lootPosOrder = [ [0,1,2,3,4], [4,3,2,1,0], [3,4,0,1,2], [0,4,1,3,2], [2,1,0,4,3], [3,0,4,2,1], [1,4,0,2,3], [1,2,3,0,4], [4,3,2,0,1] ]; _order = _lootPosOrder call BIS_fnc_selectRandom; //===================================== // SPAWN LOOT //===================================== //WEAPONS MAIN: _this = createVehicle ["TKVehicleBox_EP1", (_lootPos select (_order select 0)), [], 0, "CAN_COLLIDE"]; _this setDir -182.5; //Clear Cargo clearweaponcargoGlobal _this; clearmagazinecargoGlobal _this; //Add Cargo _this addWeaponCargoGlobal ["DMR_DZ",3]; _this addWeaponCargoGlobal ["M249_DZ",2]; _this addWeaponCargoGlobal ["Mk_48_DZ",2]; _this addWeaponCargoGlobal ["NVGoggles",2]; _this addWeaponCargoGlobal ["Binocular_Vector",1]; //_this addWeaponCargoGlobal ["BAF_L85A2_RIS_SUSAT",1]; //_this addWeaponCargoGlobal ["BAF_L85A2_RIS_Holo",1]; //_this addWeaponCargoGlobal ["G36K_camo",1]; //_this addWeaponCargoGlobal ["M4A1_AIM_SD_camo",1]; //_this addWeaponCargoGlobal ["FN_FAL",1]; //_this addWeaponCargoGlobal ["M14_EP1",1]; //_this addWeaponCargoGlobal ["M9SD",1]; _this addmagazineCargoGlobal ["20Rnd_762x51_DMR",5]; _this addmagazineCargoGlobal ["200Rnd_556x45_M249",3]; _this addmagazineCargoGlobal ["ItemHeatPack",5]; _this addmagazineCargoGlobal ["ItemPainkiller",5]; _this addmagazineCargoGlobal ["ItemMorphine",5]; _this addmagazineCargoGlobal ["ItemBloodBag",5]; _this addmagazineCargoGlobal ["ItemAntibiotic",5]; //_this addmagazineCargoGlobal ["30Rnd_556x45_StanagSD",5]; //_this addmagazineCargoGlobal ["20Rnd_762x51_FNFAL",5]; //_this addmagazineCargoGlobal ["100Rnd_762x51_M240",5]; //_this addmagazineCargoGlobal ["30Rnd_556x45_G36",5]; //_this addmagazineCargoGlobal ["30Rnd_556x45_Stanag",5]; //_this addmagazineCargoGlobal ["15Rnd_9x19_M9SD",5]; _this addbackpackCargoGlobal ["DZ_Backpack_EP1",2]; _this setPos (_lootPos select (_order select 0)); _this setVariable ["permaLoot",true,true]; //*DONN* //VEHICLE PARTS: _this = createVehicle ["TKVehicleBox_EP1", (_lootPos select (_order select 1)), [], 0, "CAN_COLLIDE"]; //Clear Cargo clearweaponcargoGlobal _this; clearmagazinecargoGlobal _this; //Add Cargo _this addWeaponCargoGlobal ["NVGoggles",3]; _this addWeaponCargoGlobal ["ItemToolbox",5]; _this addmagazineCargoGlobal ["PartEngine",5]; _this addmagazineCargoGlobal ["PartGeneric",5]; _this addmagazineCargoGlobal ["PartVRotor",5]; _this addmagazineCargoGlobal ["PartWheel",6]; _this addmagazineCargoGlobal ["PartFueltank",7]; _this addmagazineCargoGlobal ["PartGlass",10]; _this addmagazineCargoGlobal ["ItemJerrycan",15]; _this addbackpackCargoGlobal ["DZ_Backpack_EP1",2]; _this setPos (_lootPos select (_order select 1)); _this setVariable ["permaLoot",true,true]; //*DONN* //FOOD: _this = createVehicle ["TKVehicleBox_EP1", (_lootPos select (_order select 2)), [], 0, "CAN_COLLIDE"]; _this setDir -178.83; //Clear Cargo clearweaponcargoGlobal _this; clearmagazinecargoGlobal _this; //Add Cargo _this addWeaponCargoGlobal ["NVGoggles",3]; _this addWeaponCargoGlobal ["ItemGPS",4]; _this addmagazineCargoGlobal ["FoodCanBadguy",6]; _this addmagazineCargoGlobal ["FoodCanBoneboy",5]; _this addmagazineCargoGlobal ["FoodCanCorn",5]; _this addmagazineCargoGlobal ["FoodCanCurgon",5]; _this addmagazineCargoGlobal ["FoodCanDemon",5]; _this addmagazineCargoGlobal ["FoodCanFraggleos",5]; _this addmagazineCargoGlobal ["FoodCanHerpy",5]; _this addmagazineCargoGlobal ["FoodCanDerpy",5]; _this addmagazineCargoGlobal ["FoodCanTylers",5]; _this addmagazineCargoGlobal ["ItemSodaMtngreen",7]; _this addmagazineCargoGlobal ["ItemSodaR4z0r",5]; _this addmagazineCargoGlobal ["ItemSodaClays",5]; _this addmagazineCargoGlobal ["ItemSodaSmasht",5]; _this addmagazineCargoGlobal ["ItemSodaDrwaste",5]; _this addmagazineCargoGlobal ["ItemSodaLemonade",5]; _this addmagazineCargoGlobal ["ItemSodaLvg",7]; _this addmagazineCargoGlobal ["ItemSodaMzly",5]; _this addmagazineCargoGlobal ["ItemSodaRabbit",5]; _this addbackpackCargoGlobal ["DZ_Backpack_EP1",1]; _this setPos (_lootPos select (_order select 2)); _this setVariable ["permaLoot",true,true]; //*DONN* //MEDICAL: _this = createVehicle ["TKVehicleBox_EP1", (_lootPos select (_order select 3)), [], 0, "CAN_COLLIDE"]; _this setDir 90.560677; //Clear Cargo clearweaponcargoGlobal _this; clearmagazinecargoGlobal _this; //Add Cargo _this addWeaponCargoGlobal ["NVGoggles",1]; _this addWeaponCargoGlobal ["ItemGPS",1]; _this addmagazineCargoGlobal ["ItemBandage",50]; _this addmagazineCargoGlobal ["ItemPainkiller",15]; _this addmagazineCargoGlobal ["ItemMorphine",12]; _this addmagazineCargoGlobal ["ItemBloodBag",12]; _this addmagazineCargoGlobal ["ItemEpinephrine",10]; _this addmagazineCargoGlobal ["ItemAntibiotic",12]; _this addbackpackCargoGlobal ["DZ_Backpack_EP1",2]; _this setPos (_lootPos select (_order select 3)); _this setVariable ["permaLoot",true,true]; //*DONN* //BUILDING MATERIAL AND SOME WEAPONS: _this = createVehicle ["TKVehicleBox_EP1", (_lootPos select (_order select 4)), [], 0, "CAN_COLLIDE"]; //Clear Cargo clearweaponcargoGlobal _this; clearmagazinecargoGlobal _this; //Add Cargo _this addWeaponCargoGlobal ["ItemEtool",10]; _this addWeaponCargoGlobal ["ItemToolbox",5]; _this addWeaponCargoGlobal ["NVGoggles",2]; _this addmagazineCargoGlobal ["HandGrenade_West",10]; _this addmagazineCargoGlobal ["ItemSandbag",10]; _this addmagazineCargoGlobal ["ItemTankTrap",5]; _this addmagazineCargoGlobal ["ItemWire",10]; _this addmagazineCargoGlobal ["ItemTent",4]; _this addmagazineCargoGlobal ["PartGeneric",5]; _this addmagazineCargoGlobal ["TrapBear",8]; //*DONN* Jon Weapon Loot _this addWeaponCargoGlobal ["NVGoggles",2]; _this addWeaponCargoGlobal ["KSVK_DZE",3]; _this addWeaponCargoGlobal ["VSS_vintorez",2]; _this addWeaponCargoGlobal ["SCAR_H_CQC_CCO_SD",1]; _this addWeaponCargoGlobal ["FN_FAL_ANPVS4",1]; //*DONN* Jon Magazine Loot _this addmagazineCargoGlobal ["150Rnd_127x107_DSHKM",3]; _this addmagazineCargoGlobal ["5Rnd_127x108_KSVK",7]; _this addmagazineCargoGlobal ["5Rnd_127x108_KSVK",3]; _this addmagazineCargoGlobal ["20Rnd_9x39_SP5_VSS",3]; _this addmagazineCargoGlobal ["20Rnd_762x51_FNFAL",3]; _this addbackpackCargoGlobal ["DZ_Backpack_EP1",1]; _this setPos (_lootPos select (_order select 4)); _this setVariable ["permaLoot",true,true]; //*DONN* diag_log "[TERROR-Z] Buildings Finalized!"; //===================================== // SPAWN EXPLODING ZOMBIES //===================================== diag_log "[HC_ON] Terrozon script init!"; donn_terror_deadZombies = []; donn_terror_mult = 1; donn_terror_zombDamage = { private ['_zombie','_damage','_projectile','_zombie_explodeTrigered','_zombie_actDam','_source']; _zombie = _this select 0; _zombie_actDam = damage _zombie; _damage = _this select 2; _healt = _zombie getVariable ['donn_hp',1]; _damage = _damage * (0.5/_healt); _source = _this select 3; _projectile = _this select 4; if (isPlayer _source && !(_projectile in ['SmallSecondary','G_Camel_HE','Bo_GBU12_LGB',''])) then { if (_zombie_actDam + _damage > 0.5) then { _damage = 0; if !(_zombie in donn_terror_deadZombies) then { donn_terror_deadZombies = donn_terror_deadZombies + [_zombie]; [_zombie] call donn_terror_explode; }; }; } else { _damage = 0; }; _damage }; donn_terror_explode = { private ['_zombie','_special','_radSearch','_blowMult','_nearZombies','_nearToBlow','_randExtra','_rand','_blowWait']; _zombie = _this select 0; _special = _zombie getVariable ['donn_spe',0]; if (_special == 0) then {_radSearch = 10; _blowMult = 1; _blowWait = 0.25;}; if (_special == 1) then {_radSearch = 25; _blowMult = 5; _blowWait = 0.25;}; if (_special == 2) then {_radSearch = 120; _blowMult = 100; _blowWait = 0.25;}; _nearZombies = (nearestObjects [_zombie, ['zZombie_Base'], _radSearch]) - [_zombie]; _nearToBlow = []; _rand = random 100; _randExtra = 1; if (_rand < 80) then {_randExtra = 2;}; if (_rand < 60) then {_randExtra = 3;}; if (_rand < 40) then {_randExtra = 4;}; if (_rand < 20) then {_randExtra = 5;}; if (_rand < 10) then {_randExtra = 10;}; _randExtra = _randExtra * _blowMult; { if (count _nearToBlow < _randExtra) then { if (_x getVariable ['donn_spe',0] == 0) then { _nearToBlow = _nearToBlow + [_x]; }; }; } forEach _nearZombies; _zombie setDamage 0.6; _nearToBlow spawn { { _x setDamage 0.6; if (((_forEachIndex + 1) mod 5) == 0) then {sleep 0.15;}; } forEach _this; }; }; donn_terror_getTarget = { private ['_zombie','_viewDistance','_zTarget','_nearTargets','_playerPos','_playerPosZ']; _zombie = _this select 0; _viewDistance = _this select 1; _nearTargets = []; { _playerPos = _x getVariable ['donn_pos',getPosATL _x]; _playerPosZ = _playerPos select 2; if ((_zombie distance _playerPos) < _viewDistance && _playerPosZ < 4.5) then { _nearTargets = _nearTargets + [_x]; }; } forEach playableUnits; if (count _nearTargets > 0) then { _zTarget = _nearTargets call BIS_fnc_selectRandom; } else { _zTarget = ObjNull; }; _zTarget }; sleep 10; { { if (_forEachIndex == 0) then { donn_terror_check_var = _x select 1; _x spawn { private ['_center','_var','_rad','_cycle','_result']; _center = _this select 0; _var = _this select 1; _rad = _this select 2; _cycle = _this select 3; call compile format['donn_terror_trigger_%1 = false;', _var]; while {true} do { _result = false; { if (_x distance _center < _rad) exitWith { _result = true; }; } forEach playableUnits; call compile format['donn_terror_trigger_%1 = _result;', _var]; }; sleep _cycle; }; } else { private ['_qtyZomb','_deployRad', '_insertPoint','_viewDistance','_unitTypes','_sphere']; _insertPoint = _x select 0; _deployRad = _x select 1; _qtyZomb = _x select 2; _qtyZomb = round (_qtyZomb * donn_terror_mult); _viewDistance = _x select 3; _distToWalk = _x select 4; _special = _x select 5; _health = _x select 6; _inconTime = _x select 7; _unitTypes = []+ getArray (configFile >> 'CfgBuildingLoot' >> 'Default' >> 'zombieClass'); for '_k' from 1 to _qtyZomb do { private ['_agent','_type']; _type = _unitTypes call BIS_fnc_selectRandom; _agent = createAgent [_type,_insertPoint,[],_deployRad,'NONE']; sleep 0.01; if (_special > 0) then { for '_x' from 1 to _special do { _sphere = createVehicle ['Sign_sphere100cm_EP1', getPosATL _agent, [], 0, 'CAN_COLLIDE']; _sphere attachTo [_agent, [0,0,2.25 + (_x - 1) * 1]]; }; _agent setVariable ['donn_spe',_special,true]; } else { _agent setVariable ['donn_spe',0,true]; }; _agent removeAllEventHandlers 'handleDamage'; _agent addEventHandler ['handleDamage',{_this call donn_terror_zombDamage}]; _agent setVariable ['donn_terrorZombie',true,true]; _agent setVariable ['donn_hp',_health,false]; _agent setDir (random 360); [_viewDistance,_agent,donn_terror_check_var,_distToWalk,_special,_inconTime] execFSM 'terror_zombies\zombie_agent_terror.fsm'; }; }; } forEach _x; } forEach donn_terror_zomb; diag_log 'TERROR ZOMBIES RODOU (HC/SERVER)!'; //===================================== // SHOW ICONS ON THE MAP //===================================== [] spawn { while {true} do { _don_marker_put = createMarker ["Conrads Refugee Camp",[2889, 8870]]; _don_marker_put setMarkerShape "Icon"; _don_marker_put setMarkerText "Conrads Refugee Camp"; _don_marker_put setMarkerType "Flag1"; _don_marker_put setMarkerColor "ColorBlack"; sleep 5; deleteMarker "Conrads Refugee Camp"; }; }; 2 - Run on the Client, init.sqf for example. This makes the zombies explode when players are near then.
    if (!isServer) then { donn_playerInTerror = false; [] spawn { private ["_nearZombies","_isTerrorZ","_Zdamage"]; while {true} do { if (vehicle player == player) then { _nearZombies = (getPosATL player) nearEntities ["zZombie_Base",2.5]; _Zdamage = 0.6; } else { _nearZombies = (getPosATL vehicle player) nearEntities ["zZombie_Base",5]; _Zdamage = 0.8; }; { _isTerrorZ = _x getVariable ["donn_terrorZombie",false]; if !(isNil "_isTerrorZ") then { if (_x getVariable ["donn_spe",0] == 0) then { _x setDamage _Zdamage; }; }; } forEach _nearZombies; sleep 0.25; }; }; [] spawn { while {true} do { player setVariable ["donn_pos",getPosATL player,true]; uiSleep 2; }; }; diag_log "TERROR ZOMBIES OK (CLIENT)!"; donn_noZombieAreas = [ [[2889,8870,0],400] ]; { _x spawn { private ["_playerPos","_areaPos","_distCheck"]; _areaPos = _this select 0; _distCheck = _this select 1; while {true} do { waitUntil { sleep 5; _playerPos = getPosATL player; (_areaPos distance _playerPos) < _distCheck }; diag_log "ZOMBOFF!"; player_zombieCheck = {}; waitUntil { sleep 5; _playerPos = getPosATL player; (_areaPos distance _playerPos) > _distCheck }; diag_log "ZOMBON!"; player_zombieCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf"; }; }; } forEach donn_noZombieAreas; }; 3 - FSM file (zombie behavior): put that code in a text file, in the mission folder, with this folder and name \terror_zombies\zombie_agent_terror.fsm. See that the extension of this file is not sqm, but fsm.
    /*%FSM<COMPILE "e:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Zombie Agent">*/ /*%FSM<HEAD>*/ /* item0[] = {"Inicia",0,250,-250.000000,-425.000000,-150.000000,-375.000000,0.000000,"Inicia"}; item1[] = {"Achou_Perto",4,218,-25.000000,-350.000000,75.000000,-300.000000,0.000000,"Achou" \n "Perto"}; item2[] = {"Verdadeiro",4,218,-250.000000,-325.000000,-150.000000,-275.000000,0.000000,"Verdadeiro"}; item3[] = {"Procura_um_Human",2,4346,-150.000000,-250.000000,-50.000000,-200.000000,0.000000,"Procura" \n "um Humano"}; item4[] = {"Procura_de_novo",4,218,-250.000000,-175.000000,-150.000000,-125.000000,0.000000,"Procura" \n "de novo?"}; item5[] = {"Andar_at__Humano",2,250,100.000000,-300.000000,200.000000,-250.000000,0.000000,"Andar até" \n "Humano!"}; item6[] = {"Update_posi__o_",4,218,225.000000,-350.000000,325.000000,-300.000000,0.000000,"Update" \n "posição?"}; item7[] = {"Perdeu_de_Vista",4,218,-25.000000,25.000000,75.000000,75.000000,0.000000,"Perdeu" \n "de Vista?"}; item8[] = {"Humano_Morto_",4,218,-25.000000,-75.000000,75.000000,-25.000000,0.000000,"Humano" \n "Morto?"}; item9[] = {"",7,210,-104.000000,-4.000001,-95.999992,4.000001,0.000000,""}; item10[] = {"",7,210,-104.000000,96.000000,-96.000000,104.000008,0.000000,""}; item11[] = {"Explodir_",2,250,400.000000,-425.000000,500.000000,-375.000000,0.000000,"Explodir!"}; item12[] = {"Recuperado_",4,218,400.000000,75.000000,500.000000,125.000000,0.000000,"Recuperado?"}; item13[] = {"Perto_Humano_",4,218,100.000000,-425.000000,200.000000,-375.000000,0.000000,"Perto" \n "Humano?"}; item14[] = {"",7,210,-104.000000,-404.000000,-96.000000,-396.000000,0.000000,""}; item15[] = {"Achou_Longe",4,218,-25.000000,-150.000000,75.000000,-100.000000,0.000000,"Achou" \n "Longe"}; item16[] = {"Correr_para_mais",2,250,100.000000,-200.000000,200.000000,-150.000000,0.000000,"Correr para" \n "mais perto"}; item17[] = {"Update_posi__o_",4,218,225.000000,-150.000000,325.000000,-100.000000,0.000000,"Update" \n "posição?"}; item18[] = {"Chegou_Perto_",4,218,225.000000,-250.000000,325.000000,-200.000000,0.000000,"Chegou" \n "Perto?"}; item19[] = {"",7,210,371.000000,-279.000000,379.000000,-271.000000,0.000000,""}; item20[] = {"",7,210,371.000000,-179.000000,379.000000,-171.000000,0.000000,""}; item21[] = {"",7,210,371.000000,46.000000,379.000000,54.000004,0.000000,""}; item22[] = {"",7,210,371.000000,-54.000000,379.000000,-46.000000,0.000000,""}; item23[] = {"Humano_Longe_",4,218,-25.000000,-250.000000,75.000000,-200.000000,0.000000,"Humano" \n "Longe?"}; link0[] = {0,2}; link1[] = {1,5}; link2[] = {2,3}; link3[] = {3,1}; link4[] = {3,4}; link5[] = {3,14}; link6[] = {3,15}; link7[] = {4,3}; link8[] = {5,6}; link9[] = {5,13}; link10[] = {5,19}; link11[] = {5,23}; link12[] = {6,5}; link13[] = {7,9}; link14[] = {8,9}; link15[] = {9,3}; link16[] = {10,9}; link17[] = {11,12}; link18[] = {12,10}; link19[] = {13,11}; link20[] = {14,13}; link21[] = {15,16}; link22[] = {16,13}; link23[] = {16,17}; link24[] = {16,18}; link25[] = {16,20}; link26[] = {17,16}; link27[] = {18,5}; link28[] = {19,20}; link29[] = {20,22}; link30[] = {21,7}; link31[] = {22,8}; link32[] = {22,21}; link33[] = {23,16}; globals[] = {25.000000,1,0,0,0,640,480,1,174,6316128,1,-488.040009,633.607056,150.522751,-478.192963,983,551,1}; window[] = {2,-1,-1,-1,-1,805,125,1333,125,3,1001}; *//*%FSM</HEAD>*/ class FSM { fsmName = "DayZ Zombie Agent"; class States { /*%FSM<STATE "Inicia">*/ class Inicia { name = "Inicia"; init = /*%FSM<STATEINIT""">*/"private [""_choosenEyePos"",""_agentOriPos"",""_timeLost"",""_choosenDead"",""_viewDistance"",""_grenade"",""_playersCanSee"",""_agent"",""_found"",""_choosen"",""_players"",""_start"",""_newPos""];" \n "" \n "_viewDistance = _this select 0;" \n "_agent = _this select 1;" \n "_varString = _this select 2;" \n "_ZdistToWalk = _this select 3;" \n "_Zspecial = _this select 4;" \n "_ZinconTime = _this select 5;" \n "" \n "_agentOriPos = getPosATL _agent;" \n "" \n "_agent disableAI ""FSM"";" \n "_agent setBehaviour ""CARELESS"";" \n "_agent setCombatMode ""RED"";" \n "_agent setSkill 0;" \n "" \n "_agentFugitiveQty = 0;"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Verdadeiro">*/ class Verdadeiro { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"true"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_found = false;" \n "_away = false;" \n "_newPos = getPosATL _agent;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Procura_um_Human">*/ class Procura_um_Human { name = "Procura_um_Human"; init = /*%FSM<STATEINIT""">*/"_start = diag_tickTime;" \n "if (call compile format[""donn_terror_trigger_%1"",_varString]) then {" \n " _choosen = [_agent,_viewDistance] call donn_terror_getTarget;" \n " if !(isNull _choosen) then {" \n " _found = true;" \n " " \n " _choosenPos = _choosen getVariable [""donn_pos"",getPosATL _agent];" \n " if (isNil ""_choosenPos"") then {_choosenPos = getPosATL _agent;};" \n " " \n " if ((_agent distance _newPos) + (_newPos distance _choosenPos) > 20) then {" \n " _away = true;" \n " } else {" \n " _away = false;" \n " };" \n " };" \n "};"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Procura_de_novo">*/ class Procura_de_novo { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"(diag_tickTime - _start) > 5"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Achou_Longe">*/ class Achou_Longe { priority = 0.000000; to="Correr_para_mais"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"_found && _away"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_choosenDead = false;" \n "_distance_ZP_ok = true;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Perto_Humano_">*/ class Perto_Humano_ { priority = 0.000000; to="Explodir_"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"damage _agent >= 0.5"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Achou_Perto">*/ class Achou_Perto { priority = 0.000000; to="Andar_at__Humano"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"_found && !_away" \n ""/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_choosenDead = false;" \n "_distance_ZP_ok = true;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Andar_at__Humano">*/ class Andar_at__Humano { name = "Andar_at__Humano"; init = /*%FSM<STATEINIT""">*/"_start = diag_tickTime;" \n "" \n "_choosenPos = _choosen getVariable [""donn_pos"",getPosATL _agent];" \n "if (isNil ""_choosenPos"") then {_choosenPos = getPosATL _agent;};" \n "" \n "_distance_ZP_ok = _agent distance _choosenPos < _viewDistance && (_choosenPos select 2) < 4.5;" \n "" \n "if (_distance_ZP_ok) then {" \n " if (alive _choosen) then {" \n " _newPos = _choosenPos;" \n " _agent moveTo _newPos;" \n " _agent forceSpeed 2;" \n " } else {" \n " _choosenDead = true;" \n " };" \n "};"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Perto_Humano_">*/ class Perto_Humano_ { priority = 0.000000; to="Explodir_"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"damage _agent >= 0.5"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Humano_Longe_">*/ class Humano_Longe_ { priority = 0.000000; to="Correr_para_mais"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"(_agent distance _newPos) + (_newPos distance (_choosen getVariable [""donn_pos"",getPosATL _agent])) > _ZdistToWalk"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Humano_Morto_">*/ class Humano_Morto_ { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"_choosenDead"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_newPos = _agentOriPos;" \n "_agent moveTo _newPos;" \n "_agent forceSpeed 10;" \n "_found = false;" \n "_away = false;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Perdeu_de_Vista">*/ class Perdeu_de_Vista { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"!_distance_ZP_ok"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_newPos = _agentOriPos;" \n "_agent moveTo _newPos;" \n "_agent forceSpeed 10;" \n "_found = false;" \n "_away = false;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Update_posi__o_">*/ class Update_posi__o_ { priority = 0.000000; to="Andar_at__Humano"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"moveToCompleted _agent || moveToFailed _agent"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Explodir_">*/ class Explodir_ { name = "Explodir_"; init = /*%FSM<STATEINIT""">*/"_agent forceSpeed 0;" \n "_agent setUnitPos ""DOWN"";" \n "_start = diag_tickTime;" \n """SmallSecondary"" createVehicle (getPosATL _agent);" \n "if (_Zspecial == 1) then {" \n " ""G_Camel_HE"" createVehicle (getPosATL _agent);" \n "};" \n "if (_Zspecial == 2) then {" \n " ""Bo_GBU12_LGB"" createVehicle (getPosATL _agent);" \n "};" \n "if (damage _agent > 0.7) then {" \n " ""G_Camel_HE"" createVehicle (getPosATL _agent);" \n " _agent setDamage 0.6;" \n "};"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Recuperado_">*/ class Recuperado_ { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"diag_tickTime-_start > _ZinconTime"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_agent setDamage 0;" \n "_agent setUnitPos ""UP"";" \n "" \n "_newPos = _agentOriPos;" \n "_agent moveTo _newPos;" \n "_agent forceSpeed 10;" \n "" \n "donn_terror_deadZombies = donn_terror_deadZombies - [_agent];" \n "" \n "_found = false;" \n "_away = false;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ /*%FSM<STATE "Correr_para_mais">*/ class Correr_para_mais { name = "Correr_para_mais"; init = /*%FSM<STATEINIT""">*/"_start = diag_tickTime;" \n "" \n "_agP = getPosATL _agent;" \n "_agPX =_agP select 0;" \n "_agPY =_agP select 1;" \n "" \n "_choosenPos = _choosen getVariable [""donn_pos"",getPosATL _agent];" \n "if (isNil ""_choosenPos"") then {_choosenPos = getPosATL _agent;};" \n "" \n "_distance_ZP_ok = _agent distance _choosenPos < _viewDistance && (_choosenPos select 2) < 4.5;" \n "" \n "if (_distance_ZP_ok) then {" \n " if (alive _choosen) then {" \n " _cP = _choosenPos;" \n " _cPX = _cP select 0;" \n " _cPY = _cP select 1;" \n "" \n " _nPX = (_agPX+_cPX)/2;" \n " _nPY = (_agPY+_cPY)/2;" \n " _newPos = [_nPX,_nPY,0];" \n " " \n " _agent moveTo _newPos;" \n " _agent forceSpeed 8;" \n " } else {" \n " _choosenDead = true;" \n " };" \n "};"/*%FSM</STATEINIT""">*/; precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/; class Links { /*%FSM<LINK "Update_posi__o_">*/ class Update_posi__o_ { priority = 0.000000; to="Correr_para_mais"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"moveToCompleted _agent || moveToFailed _agent"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Chegou_Perto_">*/ class Chegou_Perto_ { priority = 0.000000; to="Andar_at__Humano"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"(_agent distance _newPos) + (_newPos distance (_choosen getVariable [""donn_pos"",getPosATL _agent])) < _ZdistToWalk"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Humano_Morto_">*/ class Humano_Morto_ { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"_choosenDead"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_newPos = _agentOriPos;" \n "_agent moveTo _newPos;" \n "_agent forceSpeed 10;" \n "_found = false;" \n "_away = false;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Perdeu_de_Vista">*/ class Perdeu_de_Vista { priority = 0.000000; to="Procura_um_Human"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"!_distance_ZP_ok"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/"_newPos = _agentOriPos;" \n "_agent moveTo _newPos;" \n "_agent forceSpeed 10;" \n "_found = false;" \n "_away = false;"/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ /*%FSM<LINK "Perto_Humano_">*/ class Perto_Humano_ { priority = 0.000000; to="Explodir_"; precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/; condition=/*%FSM<CONDITION""">*/"damage _agent >= 0.5"/*%FSM</CONDITION""">*/; action=/*%FSM<ACTION""">*/""/*%FSM</ACTION""">*/; }; /*%FSM</LINK>*/ }; }; /*%FSM</STATE>*/ }; initState="Inicia"; finalStates[] = { }; }; /*%FSM</COMPILE>*/ OBS: fsm files are created by FSM Creator, but since they are text files, they can be provided like above.
    More help:

    Where to put the files?

    - Script 1 runs on server (i run it at the end of the file server_functions.sqf).
    - Script 2 runs on client (i run it in init.sqf).
    - Script 3 does not need to run, but you need to put it in the correct place in the mission file: \terror_zombies\zombie_agent_terror.fsm.
  10. Like
    Donnovan got a reaction from 31_D!4b10 in Gelid Nitro - In Car Option   
    If you like my work, please consider a donation.

    $USD

    $EURO

    *** WE ARE ON VERSION 2.0 *** UPDATED ON 10 OF OCTOBER OF 2014 ***
    *** UPDATE YOUR NITRO IS HIGLY RECOMENDED *** THANKYOU! ***

    THE BADIE: infiSTAR will disable the custom binds even if you set Disable Custon Binds to False. So if you use infiSTAR, a work arround is needed.You can try Lord George Fix:

    Hi,

    I want to say thanyou to Sandbird, for his Nitro script, that gave me the initial kick for Gelid Nitro.

    GELID NITRO

    1.1) Nitro don't need to be installed.
    1.2) Nitro is limited to a list of vehicles.
    1.3) Fuel decrease faster, you can do 7/8 of the coast travel with Nitro on and full fuel.

    2.0) Tree sounds: Nitro Injection / Air flow / Exhauster Pipe Blow.

    3.0) The cost of speed: When the exhauster pipe blows, there is an sudenly extra gain in speed that can cause lost of vehicle control. So pay atention on the pipe blow.

    4.1) Tweak: boost only happens if the vehicle is touching the ground.
    4.2) Tweak: boost happens when the vehicle is facing the travel direction.

    5.1) Aesthetics: impulse tweaked to not generate the "desync like" effect that happens when adding velocity to things.

    MISSION FILES: N.O.S. FILES

    All the new files goes to your mission folder, inside the folder NOS.

    Example: Arma 2 Operation Arrowhead\MPMissions\DayZ_Epoch_11.Chernarus\NOS.

    MISSION FILES: NEW FILE nitro.sqf
     
    donn_nitroOn = false; donn_speedometer = false; donn_nitroCars = [ "car_sedan", "car_sedan_DZE1", "car_sedan_DZE2", "car_sedan_DZE3", "car_sedan_DZE4", "VWGold", "VWGold_DZE1", "VWGold_DZE2", "VWGold_DZE3", "VWGold_DZE4", "car_hatchback", "car_hatchback_DZE1", "car_hatchback_DZE2", "car_hatchback_DZE3", "car_hatchback_DZE4", "datsun1_civil_1_open", "datsun1_civil_1_open_DZE1", "datsun1_civil_1_open_DZE2", "datsun1_civil_1_open_DZE3", "datsun1_civil_1_open_DZE4", "SUV_Camo", "SUV_Camo_DZE1", "SUV_Camo_DZE2", "SUV_Camo_DZE3", "SUV_Camo_DZE4", "datsun1_civil_3_open", "datsun1_civil_3_open_DZE1", "datsun1_civil_3_open_DZE2", "datsun1_civil_3_open_DZE3", "datsun1_civil_3_open_DZE4", "GLT_M300_ST", "HMMWV_DZ" ]; kDownFunc = { private ["_theCar","_keyDown"]; _keyDown = _this; if (_keyDown == 42 && donn_nitroOn) then { _theCar = vehicle player; if (isEngineOn _theCar && ((getPosATL _theCar) select 2) < 0.1 && speed _theCar >= 50) then { private ["_vel","_dir"]; _dir = direction _theCar; _vel = velocity _theCar; _theCar setVelocity [ (_vel select 0) + (sin _dir * 0.1), (_vel select 1) + (cos _dir * 0.1), (_vel select 2) ]; _theCar setFuel ((fuel _theCar) - 0.000035); if ((diag_tickTime - donn_airStarted) >= donn_airWait) then { [nil,_theCar, rSAY,["suction", 100]] call RE; if (donn_airWait == 3.5) then { [nil,_theCar, rSAY,["exhaustor", 100]] call RE; donn_airStarted = diag_tickTime; donn_airWait = 3; donn_problem = true; [] spawn { private ["_theCar","_vel","_calcDir","_magnitude","_dir","_intensity"]; _theCar = vehicle player; for "_x" from 1 to 200 do { if (vehicle player == _theCar && isEngineOn _theCar && ((getPosATL _theCar) select 2) < 0.1 && speed _theCar >= 50) then { _vel = velocity _theCar; _dir = direction _theCar; _magnitude = sqrt((_vel select 0)^2 + (_vel select 1)^2); if ((_vel select 0) < 0) then {_calcDir = 360 - aCos ((_vel select 1)/_magnitude);} else {_calcDir = aCos ((_vel select 1)/_magnitude);}; if (abs(_dir-_calcDir) <= 5) then { _theCar setVelocity [(_vel select 0) * 1.01, (_vel select 1) * 1.01, (_vel select 2)]; }; }; uiSleep 0.01; if (!donn_problem) exitWith {}; }; }; } else { donn_airStarted = diag_tickTime; donn_airWait = random 3.5; if (donn_airWait > 3) then {donn_airWait = 3.5;}; }; }; }; }; }; kUpFunc = { private ["_keyUp"]; _keyUp = _this; if (_keyUp == 41) then { donn_problem = false; }; if (_keyUp == 57) then { if (donn_nitroOn) then { donn_nitroOn = false; systemChat ("Nitro Off!"); } else { donn_nitroOn = true; systemChat ("Nitro On!"); if (donn_speedometer) then { [] spawn { while {donn_nitroOn} do { cutText [format ["Speed in Km/h: %1", round (speed (vehicle player))], "PLAIN"]; uiSleep 0.5; }; }; }; }; }; }; [] spawn { while {true} do { //WAIT TO BE IN VEHICLE waitUntil {sleep 0.25; vehicle player != player && (driver (vehicle player)) == player}; if ((typeOf (vehicle player)) in donn_nitroCars) then { donn_nosOk = true; donn_airStarted = diag_tickTime; donn_airWait = 1.5; donn_problem = false; [nil, (vehicle player), rSAY, ["nitro", 100]] call RE; [player,25,true,(getPosATL player)] spawn player_alertZombies; systemChat ("Press Space Bar to turn Nitro On/OFF!"); nosKeyDown = (findDisplay 46) displayAddEventHandler ["KeyDown","_this select 1 call kDownFunc; false;"]; nosKeyUp = (findDisplay 46) displayAddEventHandler ["KeyUp","_this select 1 call kUpFunc; false;"]; } else { donn_nosOk = false; }; //WAIT TO BE OUT OF THE VEHICLE waitUntil {sleep 0.25; vehicle player == player || (driver (vehicle player)) != player}; if (donn_nosOk) then { donn_nitroOn = false; donn_airStarted = nil; donn_airWait = nil; donn_problem = nil; (findDisplay 46) displayRemoveEventHandler ["KeyDown", nosKeyDown]; (findDisplay 46) displayRemoveEventHandler ["KeyUp", nosKeyUp]; }; }; }; MISSION FILES: NEW FILES SOUNDS

    Download the file in the link bellow and unzip it to the NOS folder. Those are the 3 sounds:
     
    https://www.dropbox.com/s/0p7xiu69f798rto/Donn%20Nitro%20Sounds%20v2.0.7z?dl=0
     
    MISSION FILES: SOUND DECLARATIONS

    In your description.ext (this is not a new file), located in your mission folder, you need to declare the 3 sounds useds on Gelid Nitro. You may have other sounds already delcared, if so just add Gelid Nitro sounds along with then. The sound names are nitro, suction and exhaustor:


    class CfgSounds { class nitro { name="nitro"; sound[]={NOS\nitro.ogg,0.9,1}; titles[] = {}; }; class suction { name="suction"; sound[]={NOS\suction.ogg,0.1,1}; titles[] = {}; }; class exhaustor { name="exhaustor"; sound[]={NOS\exhaustor.ogg,1,1}; titles[] = {}; }; }; MISSION FILES: init.sqf

    At the end of your init.sqf add this code:


    [] execVM "nitro\nitro.sqf"; HOW TO USE

    1 - Enter in a car that have Nitro, see list bellow.
    2 - You will listem am initial air flow sound (this happens on cars that have Nitro).
    3 - Press space bar to turn Nitro On/Off.
    4 - When you reach 50 Km/h, the Nitro sound will start, and your car will receive a boost.

    List of cars with Nitro:

    donn_nitroCars = [ "car_sedan", "car_sedan_DZE1", "car_sedan_DZE2", "car_sedan_DZE3", "car_sedan_DZE4", "VWGold", "VWGold_DZE1", "VWGold_DZE2", "VWGold_DZE3", "VWGold_DZE4", "car_hatchback", "car_hatchback_DZE1", "car_hatchback_DZE2", "car_hatchback_DZE3", "car_hatchback_DZE4", "datsun1_civil_1_open", "datsun1_civil_1_open_DZE1", "datsun1_civil_1_open_DZE2", "datsun1_civil_1_open_DZE3", "datsun1_civil_1_open_DZE4", "SUV_Camo", "SUV_Camo_DZE1", "SUV_Camo_DZE2", "SUV_Camo_DZE3", "SUV_Camo_DZE4", "datsun1_civil_3_open", "datsun1_civil_3_open_DZE1", "datsun1_civil_3_open_DZE2", "datsun1_civil_3_open_DZE3", "datsun1_civil_3_open_DZE4", "GLT_M300_ST", "HMMWV_DZ" ];
  11. Like
    Donnovan got a reaction from Bricktop in Joelma's Time Control   
    If you like my work, please consider a donation:

    $USD

    $EURO

    *** UPDATED THE FILE TIME_CONTROL.SQF IN 2014-10-09 13:00 ***
    *** TIME_CONTROL.SQF WAS CHANGED, THE CHANGED PARTE HAVE ***
    *** THE COMMENT "//LAST CHANGE WAS IN THIS SPAWN" ***

    JOELMA'S TIME CONTROL SYSTEMA

    Default configuration: A day of 2 hours.
    - 60 minutes completely day time (08:00 - 16:00)
    - 36 minutes of sunrise and sunfall (04:00 - 08:00, 16:00 - 20:00)
    - 24 minutes of night (00:00 - 04:00, 20:00 - 24:00)

    CLIENT SIDE: TIME_CONTROL.SQF
    In your mission folder, create the folder custom if it does not exist.
    Create inside the custom folder a txt file called time_control.sqf.
    Put inside time_control.sqf the content bellow:


    donn_sleep = 0.2; donn_multi = 2; drn_fnc_DynamicWeather_SetWeatherLocal = {}; 0 setOvercast 0; 0 setFog 0.05; if (!isDedicated) then { "cad_pvar_server_date" addPublicVariableEventHandler {(_this select 1) call donn_setdate;}; donn_setdate = { private ["_dateSer","_dateCli","_date_diff"]; donn_speed = _this select 1; 0 setOvercast 0; _dateSer = dateToNumber (_this select 0); _dateCli = dateToNumber date; _date_diff = (_dateSer-_dateCli)*12*31*24; if (abs _date_diff > 5/60) then {setDate (_this select 0);}; }; }; [] spawn { //LAST CHANGE WAS IN THIS SPAWN private ["_tm","_tmLen"]; _tm = diag_tickTime; waitUntil {!isNil "donn_speed"}; while {true} do { sleep donn_sleep; _tmLen = diag_TickTime - _tm; _tm = _tm + _tmLen; skipTime ((_tmLen*(donn_speed*donn_multi-1))/3600); }; }; if (!isDedicated) then { [] spawn { for "_x" from 1 to 10 do { "infiSTAR_SetDate" addPublicVariableEventHandler {}; "PVDZE_plr_SetDate" addPublicVariableEventHandler {}; cad_pvar_send_owner = player; publicVariableServer "cad_pvar_send_owner"; sleep 0.5; }; }; }; CLIENT SIDE: INIT.SQF
    Step 1
    On your mission folder, open the file init.sqf.

    Inside it change this:


    //Start Dynamic Weather execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf"; To this:
    //Start Dynamic Weather //execVM "\z\addons\dayz_code\external\DynamicWeatherEffects.sqf"; Step 2At the end of your init.sqf file, add this line:


    call compile preprocessFileLineNumbers "custom\time_control.sqf"; SERVER SIDE: SERVER_FUNCTIONS.SQF
    Now we need to modify files inside dayz_server.pbo.

    At the end of the file init\server_functions.sqf add this code:



    initialSend = false; donn_server_timeSync = server_timeSync; server_timeSync = {if (!initialSend) then {[] call donn_server_timeSync;}; initialSend = true;}; [] spawn { waitUntil {initialSend}; while {true} do { _dayTime = dayTime; //========================TIME FUNCTION============================ if (_dayTime >= 8 && _dayTime <= 16) then {donn_speed = 4.000;}; if (_dayTime > 4 && _dayTime < 8) then {donn_speed = 6.666;}; if (_dayTime > 16 && _dayTime < 20) then {donn_speed = 6.666;}; if (_dayTime <= 4 || _dayTime >= 20) then {donn_speed = 10.000;}; //================================================================= cad_pvar_server_date = [date, donn_speed]; publicVariable "cad_pvar_server_date"; sleep 30; }; }; "cad_pvar_send_owner" addPublicVariableEventHandler { cad_pvar_server_date = [date, donn_speed]; owner (_this select 1) publicVariableClient "cad_pvar_server_date"; }; BATTLEYE FILTER:
    On the BattlEye filter publicvariable.txt search for the line that start with 5 "" and add at the end of it an empty space and than !"cad_pvar_s".
     
    My line is like that after the adition:


    EXTRA:
    To have a 3 hours day, change the line "donn_multi = 2;" in time_control.sqf:


    donn_multi = 1; -> 4 hours day donn_multi = 4/3; -> 3 hours day donn_multi = 2; -> 2 hours day
  12. Like
    Donnovan got a reaction from 31_D!4b10 in [Release] Gebriel Safe Zones Maybe   
    If you like my work, please consider a donation:

    $USD

    $EURO

    *** UPDATED WITH A MAJOR BUG FIX IN THE DATE 2014-10-06 1:10 PM
    *** This update will fix the Repair Vehicle working always in all cases
    *** without the need of vehicle parts, wheell, glass, motor or tools
    *** for vehicles that entered the safezone.

    *** The only file that change is the file safezone.sqf.

    Rai!

    Gebriel


    We, from Clodovil BR Server, are proud to present you, the Gebriel Safe Zones. (safe as heaven).

    SAFEZONES?
    Safezones are excluding areas where peace must be maintained or, sadly, forced.

    WHAT MOST SAFE PREVENTS
    Cant kill other players
    Cant destroy vehicles
    Cant access any gear for any player/vehicle

    WHAT GEBRIEL PREVENTS
    Cant kill other players
    Cant destroy vehicles
    Can't mess with any player gear
    Can't mess with vehicles you does not have ownerity
    Can't mess with gear of vehicles you does not have ownerity

    VEHICLE OWNERITY?
    Is when you have acess to a vehicle inside a safe zone, you have access to the vehicle and to the vehicle gear.

    HOW TO HAVE VEHICLE OWNERITY IN THE SAFE ZONE?
    You must enter the safe zone inside the vehicle.
    If a group of 10 people is on a truck and this truck enters the safe zone, those 10 players will have access to the truck and to the truck gear. No more players will have access to it.

    HOW TO REMOVE VEHICLE OWNERITY?
    You must try to invade the vehicle you does not have ownerity. After the first invasion try, a 8 minutes counter will start, and when the counter reachs zero the vehicle will loose it ownerity and will be avaliable to all players, until someone enters again in the safe with it.

    HOW TO STOP THE 8 MINUTOS COUNTER?
    One or more of the vehicle owners need to re-enters in the safe with the vehicle.

    WHAT ABOUT VEHICLES THAT ON SERVER START ARE IN THE SAFE ZONES?
    They don't have ownerity and don't have god mode. But if a player re-enters with it in the safe zone, he will gain ownerity over it.

    NOTE
    Vehicle ownerity is something that only exists inside safe zones.

    {[THE CODE]} {[THE CODE]} {[THE CODE]}

    1) INIT.SQF
    At the end of your init.sqf file, add this code:


    if (!isServer) then { //Gebriel Safe [] execVM "custom\safezone.sqf"; }; 2) [MISSION FOLDER]\CUSTOM\SAFEZONE.SQFThis bellow is the main script, it's called from the init.sqf file.
    Create a new text file, put this code bellow in it, rename the text file to safezone.sqf and put it in your [mission folder]\custom\ folder (create this folder if necessary).
    Thanks for Maca134 for the Custom Remote Messages Script:


    //Gebriel Safezones //By Donnovan from Brazil don_incar = 0; don_firedEH_1 = nil; don_godon_1 = 0; inSafeZone = false; [] spawn { private ["_runOneTime","_canbuild","_don_passengers","_don_veh_crew","_don_player_veh","_don_veh_driver"]; waitUntil {!(isNil "canbuild")}; _runOneTime = false; _canbuild = canbuild; while {true} do { waitUntil {!((_canbuild && canbuild) || (!_canbuild && !canbuild)) || !_runOneTime}; _canbuild = canbuild; if (!canbuild) then { player_zombieCheck = {}; fnc_usec_damageHandler = {}; fnc_usec_unconscious = {}; player allowDamage false; player removeAllEventHandlers "handleDamage"; don_godon_1 = 1; inSafeZone = true; sleep 0.025; [] spawn { private ["_myHdEh"]; while {!canbuild} do { _myHdEh = player addEventHandler ["handleDamage", {0}]; sleep 0.02; player removeEventHandler ["handleDamage",_myHdEh]; }; }; if (isNil "don_firedEH_1") then { don_firedEH_1 = 0; sleep 0.025; don_firedEH_1 = player addEventHandler ["Fired",{ cutText ["Can't fire with godon.","PLAIN DOWN", 2]; deleteVehicle (_this select 6); }]; }; }; if (canbuild && _runOneTime) then { [] spawn { for "_x" from 1 to 30 do { if (_x >= 6) then {cutText [format ["%1 seconds to godoff and shoton.", 31-_x], "PLAIN DOWN"];}; sleep 1; if (!canbuild) exitWith {}; if (_x == 30) then { cutText ["Godoff and Shoton!", "PLAIN DOWN"]; player_zombieCheck = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_zombieCheck.sqf"; fnc_usec_damageHandler = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_damageHandler.sqf"; fnc_usec_unconscious = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\fn_unconscious.sqf"; player allowDamage true; player removeAllEventHandlers "handleDamage"; player addEventHandler ["handleDamage", {_this call fnc_usec_damageHandler;}]; player removeEventHandler ["Fired", don_firedEH_1]; don_firedEH_1 = nil; don_godon_1 = 0; inSafeZone = false; }; }; }; }; if (!canbuild && don_incar == 1) then { _don_player_veh = don_player_veh; don_veh_crew = crew _don_player_veh; _don_veh_driver = driver _don_player_veh; _don_player_veh allowDamage false; _don_player_veh removeAllEventHandlers "handleDamage"; _don_player_veh addEventHandler ["handleDamage", {0}]; _don_player_veh removeAllEventHandlers "Fired"; _don_player_veh addEventHandler ["Fired",{deleteVehicle (_this select 6);}]; //PASSENGERS NAMES _don_passengers = ""; {if (Alive _x) then {_don_passengers = _don_passengers + format [" %1",name _x];};} forEach don_veh_crew; _don_veh_crew = []; {if (Alive _x) then {_don_veh_crew = _don_veh_crew + [getPlayerUID _x];};} forEach don_veh_crew; //ASSING OWNERS if (player == _don_veh_driver) then { _don_player_veh setVariable ["don_ownerity_code", format ["%1_%2", getPlayerUID player, round diag_tickTime], true]; _don_player_veh setVariable ["don_crew", _don_veh_crew, true]; //CHANGE _don_player_veh setVariable ["don_passengers", _don_passengers, true]; }; }; if (canbuild && don_incar == 1) then { _don_player_veh = don_player_veh; _don_veh_driver = driver _don_player_veh; [_don_player_veh] spawn { for "_x" from 1 to 15 do { sleep 1; if (!canbuild) exitWith {}; if (_x == 15) then { (_this select 0) allowDamage true; (_this select 0) removeAllEventHandlers "handleDamage"; (_this select 0) addEventHandler ["handleDamage", {_this call vehicle_handleDamage;}]; (_this select 0) removeAllEventHandlers "Fired"; }; }; }; //DISASSING OWNERS if (player == _don_veh_driver) then { _don_player_veh setVariable ["don_ownerity_code", nil, true]; _don_player_veh setVariable ["don_crew", nil, true]; _don_player_veh setVariable ["don_passengers", nil, true]; }; }; _runOneTime = true; }; }; [] spawn { private ["_don_veh_crew","_wait_time","_last_mark","_max_time"]; while {true} do { _max_time = 480; waitUntil {sleep 0.0625; vehicle player != player}; don_player_veh = vehicle player; don_incar = 1; if (!canbuild) then { //VEHICLE OWNERITY CHECK _don_veh_crew = don_player_veh getVariable ["don_crew", nil]; if (isNil "_don_veh_crew") then {_don_veh_crew = [getPlayerUID player];}; if !(getPlayerUID player in _don_veh_crew) then { call compile format ['if (isNil "don_%1") then {don_%1 = diag_tickTime;}; _last_mark = don_%1;', don_player_veh getVariable ["don_ownerity_code", 0]]; _wait_time = diag_tickTime - _last_mark; if (_wait_time < _max_time) then { player action ["getOut", don_player_veh]; [objNull, player, rSAY, "error1"] call RE; cuttext [format ["Owners:%1. %2 seconds to liberate.", don_player_veh getVariable ["don_passengers","Owners not found"], round (_max_time - _wait_time)], "PLAIN DOWN"]; cad_pvar_smessage = [format ["%1 is messing with your vehicle! %2 seconds to liberate!", name player, round (_max_time - _wait_time)], _don_veh_crew]; publicVariable "cad_pvar_smessage"; } else { call compile format ['don_%1 = nil;', don_player_veh getVariable ["don_ownerity_code", 0]]; //DISASSING OWNERS don_player_veh setVariable ["don_ownerity_code", nil, true]; don_player_veh setVariable ["don_crew", nil, true]; don_player_veh setVariable ["don_passengers", nil, true]; cuttext [format ["Vehicle is now free for all!"], "PLAIN DOWN"]; cad_pvar_smessage = [format ["One of your safe vehicle is now free and player %1 is in it!", name player], _don_veh_crew]; publicVariable "cad_pvar_smessage"; }; }; don_player_veh allowDamage false; don_player_veh removeAllEventHandlers "handleDamage"; don_player_veh addEventHandler ["handleDamage", {0}]; don_player_veh removeAllEventHandlers "Fired"; don_player_veh addEventHandler ["Fired",{deleteVehicle (_this select 6);}]; }; if (canbuild) then { don_player_veh allowDamage true; don_player_veh removeAllEventHandlers "handleDamage"; don_player_veh addEventHandler ["handleDamage", {_this call vehicle_handleDamage;}]; don_player_veh removeAllEventHandlers "Fired"; //DISASSING OWNERS if (player == driver don_player_veh) then { don_player_veh setVariable ["don_ownerity_code", nil, true]; don_player_veh setVariable ["don_crew", nil, true]; don_player_veh setVariable ["don_passengers", nil, true]; }; }; waitUntil {sleep 0.0625; vehicle player == player}; don_incar = 0; don_player_veh = nil; }; }; //Thanks Maca for the Remote Message idea "cad_pvar_smessage" addPublicVariableEventHandler { private ["_message", "_receivers"]; _message = (_this select 1) select 0; _receivers = (_this select 1) select 1; if (getPlayerUID player in _receivers) then {cutText [_message, "PLAIN DOWN"];}; }; 3) [MISSION FOLDER]\DAYZ_CODE\COMPILE\FN_GEARMENUCHECKS.SQFThis code bellow goes at the end of your custom dayz_code\compile\fn_gearMenuChecks.sqf.
    Thanks for Maca134 for the no-player-gear-acess-in-safe script.

    To have a custom dayz_code\compile\fn_gearMenuChecks.sqf file you will need a custom dayz_code\init\compiles.sqf, since the first is called in game by the second, so you need a custom compiles.sqf that calls your custom fn_gearMenuChecks.sqf file, and since compiles.sqf is now custom, you need to change the call in init.sqf to it, since compiles.sqf is called in-game by init.sqf.

    More on that later! Sorry for now! If you have any doubt, please ask!


    //Prevents players opening others backpacks MACA123 if (isNil "inSafeZone") then {inSafeZone = false;}; if ((!canbuild || inSafeZone) and _cTarget isKindOf "Man" and alive _cTarget and (((vehicle player) distance _cTarget) < 12)) then { cutText ["Cannot access other players gear in the safezone." , "PLAIN DOWN"]; _display closeDisplay 1; }; //Gebriel Safezones //by Donnovan from Brazil if (!canbuild) then { private ["_don_iscar","_don_ismycar","_don_crew"]; _don_iscar = false; _don_ismycar = false; if (_cTarget isKindOf "LandVehicle" || _cTarget isKindOf "Air" || _cTarget isKindOf "Ship" ) then { _don_crew = _cTarget getVariable ["don_crew", nil]; if (isNil "_don_crew") then {_don_crew = [getPlayerUID player];}; _don_iscar = true; if ((getPlayerUID player) in _don_crew) then {_don_ismycar = true;}; }; if (_don_iscar && !_don_ismycar) then { [objNull, player, rSAY, "error1"] call RE; cutText ["You can't access this vehicle gear!" , "PLAIN DOWN"]; _display closeDisplay 1; }; }; 4) ERROR1.OGGThe scipt have a sound file, download it on this link and put the file at the root of your mission folder: http://s000.tinyupload.com/index.php?file_id=69305942403778252911

    Add the sound declaration in description.ext. Here is my description.ext:



    //DONN sounds class CfgSounds { sounds[] = {error1}; class error1 { name="error1"; sound[]={error1.ogg,1,1}; titles[] = {}; }; };You could have more custom sounds on class CfgSounds, if so you need to acomodate then together.
    This bellow is a example where the Gebriel Safezones error1.ogg sound coexists with another 2 custom sounds (diescream.ogg and caloideploy.ogg):

    //DONN sounds class CfgSounds { sounds[] = {dieScream,caloideploy,error1}; class dieScream { name="dieScream"; sound[]={diescream.ogg,1,1}; titles[] = {}; }; class caloideploy { name="caloideploy"; sound[]={deploys\bike\caloi_deploy.ogg,1,1}; titles[] = {}; }; class error1 { name="error1"; sound[]={error1.ogg,1,1}; titles[] = {}; }; }; 5) BATTLEYE FILTERSOn the BE filter publicvariable.txt, search for the line that starts with 5 "". At the end of this line add a space and after the space add !"cad_pvar_s".
  13. Like
    Donnovan got a reaction from Cavadus in [Release] Andre Convoy Patrol   
    If you like my work, please consider a donation:

    $USD

    $EURO

    ANDRE CONVOY: VERSION BOMBA V2a (28 of May of 2015)
     
    INSTALLATION (BOMBA V2a):
    Unzip this file in your mission folder: https://www.dropbox.com/s/xgthgs2r44utiv9/andre_convoy_bomba_arma3_epoch_v2a.7z?dl=0
    Configure the map you is using in andre_convoy.sqf on line 70.
    See in init(example).sqf a example on how to run the script and reproduce it in your init.sqf.

    BE FILTERS:
    On scripts.txt add !"execVM \"andre_convoy.sqf\"" at the end of the line that iniciate with 7 exec.

    DONATION:
    If the script works for you as you intended, i kindly ask for a donation. Thankyou.

    NEW ON BOMBA VERSION:
    - Suicide bomber engage on player.
    - You can set bomberman frequency.
    - Bomberman don't detonate if near allies.
    - Shot the head, arms and legs of a bomberman will not make hin explode.
    - Vehicles became acessible and vulnerable when all crew die and a player enters it.
    - Reduced the number of "[] spwan {}".
    - Added configuration to reduce or increase loot quantity.
    - You can turn on/off vehicle crew number on map icons.
    - Functions created to make the main code cleaner.
    - Optimization on: code consistency & performance.
    - Better became better, in general.
     
    ADDED TO BOMBA WITH V2 VERSION:
    - Fix: you don't need to kill all convoy to liberate a vehicle, you just need to kill the vehicle crew.
    - Fix: Convoy units does not shot the bomberman anymore.
    - Code to  embark/disembark simplified and realiable, minimum complications.
    - Runner Bomber, if alive at the end of the battle, make a salute and explode if friends are not near.
     
    BOMBA V2a VERSION:
    - Fix: players consecutive disembark does not trigger bomberman spawn anymore.
  14. Like
    Donnovan reacted to Axle in Arma 2 OA update.   
    Currently being used on my wifes server. No noticeable issues as of yet. If you have any please post on our github.
     
    https://github.com/vbawol/DayZ-Epoch/issues/new
  15. Like
    Donnovan reacted to icomrade in Arma 2 OA update.   
    FYI the CA folder in the mission can be removed now. the folder was a workaround for an issue present in A2 OA but has been fixed by this patch, so it's no longer needed.
  16. Like
    Donnovan got a reaction from RiMMON in Epoch - No lobby after death - How To   
    This is how i make no-lobby after death:
    Files to change:
    1 - Client side: compile\player_death.sqf
    use this custom player_death.sqf: https://www.dropbox.com/s/4yaijzuj1ieegiq/player_death.sqf?dl=0
    2 - Client side: description.ext (on the root of the mission file)
    Change this:
    respawndelay = 5; to this: respawndelay = 0; 3 - Server side: compile\server_playerSetup.sqf Look for this line:
    _playerObj addMPEventHandler ["MPHit", {_this spawn fnc_plyrHit;}]; Add above it, this line: _playerObj removeAllMPEventHandlers "MPHit"; Create new file: 1 - Put this file in the root of the mission: https://www.dropbox.com/s/omb7n23bxcky2gl/player_monitor.fsm?dl=0
    It's a custom player_monitor.fsm to run everytime the player dies.
    2 - Create reinit.sqf, in root of the mission file, and add inside it this content:
    dayz_originalPlayer = player; _id = player addEventHandler ["Respawn", {_id = [] spawn player_death;}]; if (isServer) then {     waitUntil{dayz_preloadFinished}; }; mtdr_reinitOk = false; _id = [] execFSM "player_monitor.fsm"; waitUntil {mtdr_reinitOk}; //If you use ESS, uncomment the line bellow: //sorry, i dont know the start line for it //If you use ESS2, uncomment the line bellow: //execVM "spawn\start.sqf"; Anti Hack Problems
    I believe antihack kill the player if he goes to the debug area (respawn_west marker set in mission.sqm) after first respawn, so if you use antihack, the player will enter in a die/respawn/die/respaw cicle and probabily crash the game. Without antihack, it seens to work ok, but tell me if you find a problem.
    Thankyou.
  17. Like
    Donnovan got a reaction from MatthewK in [Release] Heli Guard on DDOS   
    If this is not of your interest. Sorry. I believe you can ignore. Thankyou.
     
    DDOS HELI GUARD
     
    WHAT THIS DO
    Park your heli if all the crew is sudenly disconected.
     
    WHERE THE HELI IS PARKED?
    If the heli is above a open camp, it will be parked on this camp.
     
    AND IF THE HELI IS ABOVE A CITY OR FOREST?
    So the heli will be parked on the nearest open area.
     
    IF JUST THE PILOT LOST CONNECTION THE HELI WILL BE PARKED?
    No. 
     
    INSTALATION
    1 - Download the script on this link: https://www.dropbox.com/s/8tseh7u8ct6gy49/andre_ddos_heli_guard.sqf?dl=0
    2 - Put the script on the root of your mission folder.
    3 - Open the file init.sqf.
    4 - Put this line at the end of your init.sqf: execVM "andre_ddos_heli_guard.sqf";
     
    BE FILTERS
    On publicvariable.txt add this at the end of the line that begins with 5 "" (usually first or second line):
    !="donn_heli_monitor"
     
    MAKE A TEST 1 - Fly on a Heli as a pilot. 2 - Press Alt + F4 to close the Arma 2 OA client. 3 - Re-join the server. 4 - Look for your Heli. It will be parked.
  18. Like
    Donnovan got a reaction from Seelanpro in MOSTWA - Andre most Wanted Script   
    MOSTWA is Andre Most Wanted Script
    **UPDATED ON 21 OF DECENBER OF 2015**
    WHAT IT DO?
    It choose a player based on a criteria and make hin the fugitive.
    WHAT THE FUGITIVE NEED TO DO?
    The fugitive need to avoid to beign killed by the other players and by the enviroment.
    UHH... AND WHAT THE FUGITIVE GAIN IF HE SURVIVE
    A temporary mozzie and 4 briefcases will appears arround hin.
    AND IF THE FUGITIVE DIE?
    So the 4 briefcases will be on his body for the other players to pick up.
    ITS NOT A HARD TASK FOR THE FUGITIVE?
    The fugitive have Time Rewards that are rewards he gain for mantain hinself alive for x time. The actual time rewards are:
    1 - Receive weapon and ammo. 2 - Receive a motorbike. 3 - Receive cure itens. 4 - See smoke on enemies.
    ITS NOT A HARD TASK FOR THE ONES TRYING TO KILL THE FUGITIVE?
    The hunters will see a mark on the map revealing the fugitive position with a configurable precision. The mark update speed depends if the fugitive is on foot, on a land vehicle or in an air vehicle.
    LAST UPDATE?
    Was on 25 of october of 2015 with those changes:
    - Loging players are not anymore selected as fugitive.
    - Fugitives that fly over 300 meter for some time cancel the event.
    - Stay on a plot or on a safe now also cancel the event and not just cancel the fugitive reward.
    - Fugitives are unique, a player can't be selected more than one time in each restart.
    - If the fugitive is flying over 45 meters, he does not receive the time rewards.
    Files updated: andre_most_wanted.sqf
     
    If you enjoy it, i ask for a donation. Thankyou!
     $USD
     $EURO
     
    INSTALATION:
    1 - Unpack dayz_server.pbo. Put the code bellow in a text file and save it on the root of your unpacked files with the name andre_most_wanted.sqf. Repack dayz_server.pbo. To unpack / repack dayz_server.pbo you can use PBO Manager.
    //=============================== // ANDRE MOST WANTED SCRIPT ===== //=============================== // By Donnovan ================== //=============================== //==================== // CONFIGURATION ===== //==================== //MAP SIZE TO PREVENT THE LOGING IN PLAYERS TO BE SELECTED AS FUGITIVE _mapSize = 15360; //READY FOR CHERNARUS //THE TIME THE FUGITIVE NEED TO RESIST ALIVE TO WIN *IN MINUTES* _aliveTimeToWin = 20; //THE TIME CYCLE THE FUGITIVE MARK WILL BE UPDATED *IN SECONDS* _updateMark = 100; //MAXIMUN TIME THE FUGITIVE IS ALLOWED TO BE IN A PLOT OR SAFEZONE RADIUS TO RECEIVE HIS REWARD IN CASE OF WIN (a percentage of _aliveTimeToWin) _maxTimeNearPlot = 0.15; //TIME CYCLE *IN SECONDS* TO CHECK FOR PLOTS NEAR THE FUGITIVE AND SAFEZONES _onPlotCheckFrequency = 20; //THE RADIUS OF THE POSITION HINT (FUGITIVE WILL BE SOMEWHERE INSIDE THE CIRCLE) *IN METERS* _circleSize = 150; //MINIMUM NUMBER OF PLAYERS TO RUN _minPlayersToRun = 15; //TIME TO WAIT BEFORE TRY TO RUN AGAIN *IN MINUTES* _runTimeInter = 50; //FIRST RUN DELAY *IN MINUTES* _firstRunDelay = 30; //FUGITIVE TIME REWARDS: [time in minutes to exec reward (in sequence),reward message,reward code where _this is the fugitive] _fugitiveRewards = [ [4,"The Fugitive received a MK 48 and Ammo.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}], [4,"The fugitive received a motorbike.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}], [4,"The fugitive received cure itens.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}], [4,"The fugitive sees the enemy.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}], [1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}] ]; //SAFE ZONES (READY FOR CHERNARUS) _safezones = [ [6325,7807,0], [4063,11664,0], [11447,11364,0], [1606,7803,0], [12944,12766,0], [12060,12640,0] ]; _safezonesRad = 160; //ADMINS STEAM ID (TO PREVENT THE SCRIPT TO SELECT ADMINS AS FUGITIVE) _admins = ["00000000000000000","11111111111111111"]; //===================== // FUNCTIONS ========== //===================== _lockedFugitives = []; //THE TWO LINES BELLOW ARE EPOCH SPECIFIC waitUntil {!isNil "DZE_safeVehicle"}; DZE_safeVehicle = DZE_safeVehicle + ["TT650_Ins"]; donn_fugitiveChoose = { _fugitive = objNull; _maxSumDist = -1; { _p = _x; _pP = position _x; _pPX = _pP select 0; _pPY = _pP select 1; if (_pPx > 0 && _pPY < _mapSize) then { if (damage _p < 0.2 && vehicle _p == _p) then { if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then { _pUID = getPlayerUID _p; if !(_pUID in _admins || _pUID in _lockedFugitives) then { _sumDist = 0; {_sumDist = _sumDist + (_p distance _x);} forEach playableUnits; if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;}; }; }; }; }; } forEach playableUnits; _fugitive }; //===================== // THE SCRIPT ========= //===================== _aliveTimeToWin = round (_aliveTimeToWin*60); _runTimeInter = round (_runTimeInter*60); _firstRunDelay = round (_firstRunDelay*60); _lastTimeConclude = time-_runTimeInter+_firstRunDelay; while {true} do { waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter}; _fugitive = call donn_fugitiveChoose; if (!isNull _fugitive) then { diag_log "[MOSTWA] Begin!"; _fugitiveName = name _fugitive; _fugitiveID = getPlayerUID _fugitive; _aliveTimeStart = time; _aliveTimePassed = 0; _timeCell = 2; _sleepAMark = round(_updateMark/_timeCell); _slepBIndex = 0; _sleepBMark = -1; if !(_slepBIndex == count _fugitiveRewards) then { _sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell); }; _sleepCMark = round(_onPlotCheckFrequency/_timeCell); _sleepDMark = round (10/_timeCell); //_sleepA = _sleepAMark; _sleepA = 0; _sleepB = 0; _sleepC = 0; _sleepD = 0; _txt = ((name _fugitive)+" have a price on his head, kill hin to receive a reward.\n"+(name _fugitive)+", stay alive " +(str(round(_aliveTimeToWin/60)))+" minutes to receive the prize.\n\n"); _timeInPlot = 0; while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin && _timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot} do { if (_sleepA >= _sleepAMark) then { _txt = _txt + ((name _fugitive)+" mark updated on map.\n"+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" minutes to stop the hunt.\n\n"); _sleepA = 0; _fPos = position _fugitive; _error = (_circleSize*2)/sqrt(2); _fPosBlur = [(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0]; if (_aliveTimePassed > 0) then {deleteMarker "DONN_FUGITIVE";deleteMarker "DONN_FUGITIVE_DOT";}; createMarker ["DONN_FUGITIVE",_fPosBlur]; "DONN_FUGITIVE" setMarkerColor "ColorYellow"; "DONN_FUGITIVE" setMarkerShape "ELLIPSE"; "DONN_FUGITIVE" setMarkerBrush "SolidBorder"; "DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize]; createMarker ["DONN_FUGITIVE_DOT",_fPosBlur]; "DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack"; "DONN_FUGITIVE_DOT" setMarkerType "Vehicle"; "DONN_FUGITIVE_DOT" setMarkerText "Fugitive!"; }; if (_sleepB == _sleepBMark) then { _nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0]; _inSafe = false; {if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones; _isFlying = ((getPosATL _fugitive) select 2) > 45; if (count _nearPlotPole == 0 && !_inSafe && !_isFlying) then { _txt = _txt + "Time Reward! " + (_fugitiveRewards select _slepBIndex select 1); _code = _fugitiveRewards select _slepBIndex select 2; _fugitive call _code; } else { _txt = _txt + "Time Reward!? In safe, on plot or flying. No reward..."; }; _sleepB = 0; _slepBIndex = _slepBIndex + 1; _sleepBMark = -1; if !(_slepBIndex == count _fugitiveRewards) then { _sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell); }; }; if (_sleepC == _sleepCMark) then { _nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0]; _inSafe = false; _isHigh = ((getPosATL _fugitive) select 2) > 300; {if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones; if (count _nearPlotPole > 0 || _inSafe || _isHigh) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell}; _sleepC = 0; }; if (_sleepD == _sleepDMark) then { if (vehicle _fugitive == _fugitive) then { _sleepAMark = round(_updateMark/_timeCell); } else { if (vehicle _fugitive isKindOf "Air") then { _sleepAMark = round ((_updateMark/_timeCell)*0.25); } else { _sleepAMark = round ((_updateMark/_timeCell)*0.5); }; }; _sleepD = 0; }; if (_txt != "" && _txt != "Time Reward! ") then {[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;}; uiSleep _timeCell; _txt = ""; _sleepA = _sleepA + 1; _sleepB = _sleepB + 1; _sleepC = _sleepC + 1; _sleepD = _sleepD + 1; _aliveTimePassed = (time - _aliveTimeStart); }; deleteMarker "DONN_FUGITIVE"; deleteMarker "DONN_FUGITIVE_DOT"; if (!isNull _fugitive) then { _lockedFugitives = _lockedFugitives + [_fugitiveID]; if (alive _fugitive) then { if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then { [nil,nil,rTitleText,(_fugitiveName+", time over! The prize is yours!\nColect your reward near you."),"PLAIN",7.5] call RE; _posToHolder = position _fugitive;_posToHolder set [2,0]; _veh = createVehicle ["CSJ_GyroC",_posToHolder,[],2,'NONE']; _veh setVariable ["ObjectID","0",true]; _veh setVariable ["ObjectUID",str round random 9999999,true]; _fugitive reveal _veh; _posToHolder = position _fugitive;_posToHolder set [2,0]; _holder = createVehicle ["WeaponHolder",_posToHolder,[],0,"CAN_COLLIDE"]; _holder addMagazineCargoGlobal ["ItemBriefCase100oz",4]; _fugitive reveal _holder; diag_log "[MOSTWA] Ending! Fugitive Win!"; _lastTimeConclude = time; } else { [nil,nil,rTitleText,("Hunt time over! "+(name _fugitive)+", you was too much near plot poles or safezones\n or high on sky. No pain no gain. No reward."),"PLAIN",10] call RE; diag_log "[MOSTWA] Ending! Fugitive not Fair..."; _lastTimeConclude = time-_runTimeInter*0.75; }; } else { [nil,nil,rTitleText,((name _fugitive)+", perished! Collect the prize on his body!\nMark is on map fo 45 seconds..."),"PLAIN",10] call RE; createMarker ["DONN_FUGITIVE",position _fugitive]; "DONN_FUGITIVE" setMarkerColor "ColorRed"; "DONN_FUGITIVE" setMarkerShape "ELLIPSE"; "DONN_FUGITIVE" setMarkerBrush "SolidBorder"; "DONN_FUGITIVE" setMarkerSize [100,100]; createMarker ["DONN_FUGITIVE_DOT",position _fugitive]; "DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack"; "DONN_FUGITIVE_DOT" setMarkerType "Vehicle"; "DONN_FUGITIVE_DOT" setMarkerText "Fugitive Body..."; _posToHolder = position _fugitive;_posToHolder set [2,0]; _holder = createVehicle ["WeaponHolder",_posToHolder,[],0,"CAN_COLLIDE"]; _holder addMagazineCargoGlobal ["ItemBriefCase100oz",4]; diag_log "[MOSTWA] Ending! Fugitive perished."; uiSleep 240; deleteMarker "DONN_FUGITIVE"; deleteMarker "DONN_FUGITIVE_DOT"; _lastTimeConclude = time-240; }; } else { [nil,nil,rTitleText,("The hunt for "+_fugitiveName+" head is over... "+_fugitiveName+" disconnected."),"PLAIN",5] call RE; diag_log "[MOSTWA] Fugitive disconnected..."; _lastTimeConclude = time-_runTimeInter*0.75; }; } else { diag_log "[MOSTWA] Cant find an elegible fugitive..."; _lastTimeConclude = time-_runTimeInter*0.75; }; }; 2 - Unpack your mission file, open init.sqf and put the code line bellow at the end of it:
    if (isServer) then {execVM "\z\addons\dayz_server\andre_most_wanted.sqf";}; 3 - Take a look at the script, and set the configuration vars to what you want or leave it alone and use the default settings.
  19. Like
    Donnovan reacted to Richie in New BIS_fnc_selectRandom Function   
    Done :)
  20. Like
    Donnovan reacted to getwastedgaming1 in MOSTWA - Andre most Wanted Script   
    Hi the script i am using was downloaded and copy from this site and the link provided so not sure what happened there ? but thanks i will update it. Thx
  21. Like
    Donnovan reacted to Zoranth in MOSTWA - Andre most Wanted Script   
    Donnovan,
    Thank You, As always, excellent work with your scripts. I will be putting this on our Panthera PVP server and let you know of any issues if they arise.
  22. Like
    Donnovan reacted to Thug in MOSTWA - Andre most Wanted Script   
    Thanks man, love it
  23. Like
    Donnovan reacted to Zoranth in MOSTWA - Andre most Wanted Script   
    Donnovan, Installation was a breeze and all is working great. Thank you.
    A couple ideas, do you think you could make an optional coins version where instead of briefcases it gives an adjustable amount of coins to the winner/fugitive or a combination of both.
    Another idea is to make it configurable to have more than one most wanted at a time for high pop servers. like 1-15 players = 1 fugitive, 16-30 = 2 fugitives, 31-45 = 3 fugitives etc. or actually definable by admin how many on = how many fugitives.
  24. Like
    Donnovan got a reaction from Ghostis in Lootos - My Personal Loot System   
    This is my personal Loot System i share with you now.
    Hope you enjoy.
    You must allow this public variable in your BE filters: mtdr_lootActiveAdd.
    Installation: Run it at the end of your init.sqf with: execVM "script_path/script_name.sqf";
    Buildings in _mtdr_loot_buildings_class are from DayZ Mod.
    I have a tool to help you to fill the _mtdr_loot_buildings_spawnPos array. To share with you later if needed.
    private ["_mtdr_loot_buildings_class","_mtdr_loot_buildings_spawnPos","_mtdr_loot_items","_renewTime","_spawnAgain"]; //MTDR LOOT SYSTEM _map_size = 15360; _map_center = [_map_size/2,_map_size/2,0]; _map_rad = (_map_size * sqrt(2))/2; //Time after a spawned loot will try to be removed and //triggered to spawn again accordingly to _spawnAgain _renewTime = 1800; _spawnAgain = true; //Buildings that i want to have Loot Piles _mtdr_loot_buildings_class = [ "Land_A_Hospital", "Land_Mil_Barracks_i", "Land_a_stationhouse", "Land_A_GeneralStore_01", "Land_A_GeneralStore_01a", "Land_A_Pub_01", "Land_HouseV_1I4", "Land_Church_03", "Land_Church_01", "Land_HouseV2_02_Interier" ]; //Loot Pile Positions of Buildings in _mtdr_loot_buildings_class //[[Pile Pos in building Coords,Loot lie on ground?],[Another pos,Another f/t],...] _mtdr_loot_buildings_spawnPos = [ [[[-07.00,-04.00,-07.33],false]], [[[ 05.00, 02.00,-01.10],false]], [[[-01.20,-07.90,-09.47],false]], [[[-01.14, 01.37,-01.20],false]], [[[ 00.50, 05.00,-01.20],false]], [[[ 06.16, 05.46,-01.43],false]], [[[ 00.00, 03.70,-02.72],false]], [[[ 04.70,-00.10,-14.29],false],[[-17.50, 00.00,-14.29],true]], [[[-06.90, 00.29,-04.21],false]], [[[-00.14,-02.45,-05.53],false]] ]; //Items To place on the buildings. Array: //Items, //quantity*, //buildings in _mtdr_loot_buildings_class, //building preference. The higher the relative value the greater is the preference //true for quantity* overall / false for quantity* per building _mtdr_loot_items = [ [["ItemBandage"],1,[0,1,2,3,4,5,6,7,8,9],[10,10,10,10,10,10,10,10,10,10],false], [["ItemWatch"],12,[7,8],[10,10],true], [["DMR"],1,[2,5],[2,10],true], [["Makarov"],0.50,[5],[10],false] ]; if (isServer) then { private ["_mtdr_loot_buildings_objs","_mtdr_lootTable_bobj","_mtdr_lootTable_item","_mtdr_lootActive","_MTDR_fnc_selectRandom"]; waitUntil {!isNil "BIS_fnc_selectRandom"}; //Wait do give the chance to all mod and server custom buildings to spawn sleep 10; //Predefine loot locations _mtdr_loot_buildings_objs = []; _mtdr_loot_buildings_objs_count = []; { _class = _x; _objs = []; {if (typeOf _x == _class) then {_objs = _objs + [_x];};} forEach (_map_center nearObjects [_class,_map_rad]); _mtdr_loot_buildings_objs = _mtdr_loot_buildings_objs + [_objs]; } forEach _mtdr_loot_buildings_class; { _qtt = count _x; _mtdr_loot_buildings_objs_count = _mtdr_loot_buildings_objs_count + [_qtt]; } forEach _mtdr_loot_buildings_objs; _mtdr_lootTable_bobj = []; _mtdr_lootTable_item = []; _MTDR_fnc_selectRandom = {_index = round (random count _this - 0.5);_index}; { _prefArray = _x select 3; _perBuild = true; _total = 0; _totalB = 0; _mult = 1; if (_perBuild) then {_mult = 0;}; { _total = _total + (_mtdr_loot_buildings_objs_count select _x) * ((_prefArray select _forEachIndex) * _mult + (1 - _mult)); _totalB = _totalB + (_mtdr_loot_buildings_objs_count select _x); } forEach (_x select 2); { _qttB = (_mtdr_loot_buildings_objs_count select _x) * ((_prefArray select _forEachIndex) * _mult + (1 - _mult)); _prefArray set [_forEachIndex,(_qttB/_total) * 100]; } forEach (_x select 2); diag_log ("[MTDR LOOT] " + str (_x select 0) + ": _prefArray = " + str _prefArray); _qtt = _x select 1; if !(_x select 4) then {_qtt = round (_qtt * _totalB);}; for "_i" from 1 to _qtt do { _bTypeIndex = 0; while {true} do { _idx = (_x select 2) call _MTDR_fnc_selectRandom; if (random 100 < _prefArray select _idx) exitWith { _bTypeIndex = (_x select 2) select _idx; }; }; _buildObj = (_mtdr_loot_buildings_objs select _bTypeIndex) call BIS_fnc_selectRandom; _buildPos = getPosATL _buildObj; _item = (_x select 0) call BIS_fnc_selectRandom; _bIndex = _mtdr_lootTable_bobj find _buildObj; if (_bIndex == -1) then { _mtdr_lootTable_bobj = _mtdr_lootTable_bobj + [_buildObj]; _mtdr_lootTable_item = _mtdr_lootTable_item + [_item]; } else { _items = _mtdr_lootTable_item select _bIndex; if (typeName _items == "Array") then { _newPile = _items + [_item]; _mtdr_lootTable_item set [_bIndex,_newPile]; } else { _newPile = [_items] + [_item]; _mtdr_lootTable_item set [_bIndex,_newPile]; }; }; }; } forEach _mtdr_loot_items; mtdr_lootSystemMain = [_mtdr_lootTable_bobj,_mtdr_lootTable_item]; publicVariable "mtdr_lootSystemMain"; //Monitor for Abandoned Loot Deletion _mtdr_lootActive = []; "mtdr_lootActiveAdd" addPublicVariableEventHandler {_mtdr_lootActive = _mtdr_lootActive + [_this select 1];}; while {true} do { { _build = _x; _time = _build getVariable ["ml_used",0]; if (time - _time > _renewTime) then { _bPos = getPosATL _build; _nearP = false; {if (_bPos distance _x < 200) exitWith {_nearP = true;};} forEach playableUnits; if (!_nearP) then { _idx1 = _mtdr_loot_buildings_class find typeOf _build; _spawnPosAll = _mtdr_loot_buildings_spawnPos select _idx1; { _spawnPos = _build modelToWorld (_x select 0); _holders = _spawnPos nearObjects ["WeaponHolder",5]; _holder = objNull; if (count _holders > 0) then { { if (_x getVariable ["ml_hld",false]) exitWith {_holder = _x;}; } forEach _holders; }; if (!isNull _holder) then {deleteVehicle _holder;}; } forEach _spawnPosAll; _mtdr_lootActive = _mtdr_lootActive - [_build]; if (_spawnAgain) then { _build setVariable ["ml_used",-1,true]; }; }; }; uiSleep 0.001; } forEach _mtdr_lootActive; uiSleep 180; }; }; if (hasInterface) then { private ["_mtdr_lootTable_bobj","_mtdr_lootTable_item","_mtdr_pPosMain","_mtdr_calc_newBuilds","_mtdr_spawnLoot","_mtdr_lootTable_bobj_local","_mtdr_lootTable_item_local"]; waitUntil {!isNil "mtdr_lootSystemMain"}; _mtdr_lootTable_bobj = mtdr_lootSystemMain select 0; _mtdr_lootTable_item = mtdr_lootSystemMain select 1; _mtdr_pPosMain = getPosATL player; //Function to Find Loot buildings near the player //They are the ones that will be monitored in the loop _mtdr_calc_newBuilds = { _mtdr_lootTable_bobj_local = []; _mtdr_lootTable_item_local = []; { _bSize = (sizeOf typeOf _x) * 2; _dist = ((_mtdr_pPosMain distance _x) - _bSize) max 0; _items = _mtdr_lootTable_item select _forEachIndex; if (_dist < 300) then { _mtdr_lootTable_bobj_local = _mtdr_lootTable_bobj_local + [_x]; _mtdr_lootTable_item_local = _mtdr_lootTable_item_local + [_items]; }; } forEach _mtdr_lootTable_bobj; }; //Function to Spawn Loot _mtdr_spawnLoot = { _obj = _this select 0; _items = _this select 1; if (typeName _items != "Array") then {_items = [_items];}; _idx1 = _mtdr_loot_buildings_class find typeOf _obj; _spawnPosAll = _mtdr_loot_buildings_spawnPos select _idx1; { _spawnPosArray = _spawnPosAll call BIS_fnc_selectRandom; _spawnPos = _obj modelToWorld (_spawnPosArray select 0); _onGround = _spawnPosArray select 1; if (_onGround) then {_spawnPos = [_spawnPos select 0,_spawnPos select 1,0];}; _holders = _spawnPos nearObjects ["WeaponHolder",5]; _holder = objNull; if (count _holders > 0 && {_x getVariable ["ml_hld",false]} count _holders > 0) then { { if (_x getVariable ["ml_hld",false]) exitWith { _holder = _x; }; } forEach _holders; } else { _holder = createVehicle ["WeaponHolder",_spawnPos,[],0,"CAN_COLLIDE"]; _holder setPosATL _spawnPos; _holder setVariable ["ml_hld",true,true]; }; _isM = isClass (configFile >> "CfgMagazines" >> _x); if (_isM) then { _holder addMagazineCargoGlobal [_x,1]; } else { _isW = isClass (configFile >> "CfgWeapons" >> _x); if (_isW) then { _holder addWeaponCargoGlobal [_x,1]; } else { _isV = isClass (configFile >> "CfgVehicles" >> _x); if (_isV) then { _holder addBackpackCargoGlobal [_x,1]; } else { diag_log "[MTDR LOOT] TIPO DE LOOT NAO IDENTIFICADO!"; }; }; }; } forEach _items; mtdr_lootActiveAdd = _obj; publicVariableServer "mtdr_lootActiveAdd"; }; call _mtdr_calc_newBuilds; //Monitore for Loot Buildings to activate for player while {true} do { _pOnFoot = vehicle player == player; if (_pOnFoot) then { _pPos = getPosATL player; _walked = _mtdr_pPosMain distance _pPos; if (_walked > 280) then { _mtdr_pPosMain = _pPos; call _mtdr_calc_newBuilds; _walked = 0; }; { _bSize = sizeOf typeOf _x; _dist = ((_pPos distance _x) - _bSize) max 0; if (_dist == 0) then { _bUsed = _x getVariable ["ml_used",-1]; if (_bUsed == -1) then { _x setVariable ["ml_used",time,true]; _items = _mtdr_lootTable_item_local select _forEachIndex; [_x,_items] call _mtdr_spawnLoot; //systemChat "Loot Especial Matadouro...!"; }; }; } forEach _mtdr_lootTable_bobj_local; }; uiSleep 2; }; };
  25. Like
    Donnovan got a reaction from Zoranth in MOSTWA - Andre most Wanted Script   
    MOSTWA is Andre Most Wanted Script
    **UPDATED ON 21 OF DECENBER OF 2015**
    WHAT IT DO?
    It choose a player based on a criteria and make hin the fugitive.
    WHAT THE FUGITIVE NEED TO DO?
    The fugitive need to avoid to beign killed by the other players and by the enviroment.
    UHH... AND WHAT THE FUGITIVE GAIN IF HE SURVIVE
    A temporary mozzie and 4 briefcases will appears arround hin.
    AND IF THE FUGITIVE DIE?
    So the 4 briefcases will be on his body for the other players to pick up.
    ITS NOT A HARD TASK FOR THE FUGITIVE?
    The fugitive have Time Rewards that are rewards he gain for mantain hinself alive for x time. The actual time rewards are:
    1 - Receive weapon and ammo. 2 - Receive a motorbike. 3 - Receive cure itens. 4 - See smoke on enemies.
    ITS NOT A HARD TASK FOR THE ONES TRYING TO KILL THE FUGITIVE?
    The hunters will see a mark on the map revealing the fugitive position with a configurable precision. The mark update speed depends if the fugitive is on foot, on a land vehicle or in an air vehicle.
    LAST UPDATE?
    Was on 25 of october of 2015 with those changes:
    - Loging players are not anymore selected as fugitive.
    - Fugitives that fly over 300 meter for some time cancel the event.
    - Stay on a plot or on a safe now also cancel the event and not just cancel the fugitive reward.
    - Fugitives are unique, a player can't be selected more than one time in each restart.
    - If the fugitive is flying over 45 meters, he does not receive the time rewards.
    Files updated: andre_most_wanted.sqf
     
    If you enjoy it, i ask for a donation. Thankyou!
     $USD
     $EURO
     
    INSTALATION:
    1 - Unpack dayz_server.pbo. Put the code bellow in a text file and save it on the root of your unpacked files with the name andre_most_wanted.sqf. Repack dayz_server.pbo. To unpack / repack dayz_server.pbo you can use PBO Manager.
    //=============================== // ANDRE MOST WANTED SCRIPT ===== //=============================== // By Donnovan ================== //=============================== //==================== // CONFIGURATION ===== //==================== //MAP SIZE TO PREVENT THE LOGING IN PLAYERS TO BE SELECTED AS FUGITIVE _mapSize = 15360; //READY FOR CHERNARUS //THE TIME THE FUGITIVE NEED TO RESIST ALIVE TO WIN *IN MINUTES* _aliveTimeToWin = 20; //THE TIME CYCLE THE FUGITIVE MARK WILL BE UPDATED *IN SECONDS* _updateMark = 100; //MAXIMUN TIME THE FUGITIVE IS ALLOWED TO BE IN A PLOT OR SAFEZONE RADIUS TO RECEIVE HIS REWARD IN CASE OF WIN (a percentage of _aliveTimeToWin) _maxTimeNearPlot = 0.15; //TIME CYCLE *IN SECONDS* TO CHECK FOR PLOTS NEAR THE FUGITIVE AND SAFEZONES _onPlotCheckFrequency = 20; //THE RADIUS OF THE POSITION HINT (FUGITIVE WILL BE SOMEWHERE INSIDE THE CIRCLE) *IN METERS* _circleSize = 150; //MINIMUM NUMBER OF PLAYERS TO RUN _minPlayersToRun = 15; //TIME TO WAIT BEFORE TRY TO RUN AGAIN *IN MINUTES* _runTimeInter = 50; //FIRST RUN DELAY *IN MINUTES* _firstRunDelay = 30; //FUGITIVE TIME REWARDS: [time in minutes to exec reward (in sequence),reward message,reward code where _this is the fugitive] _fugitiveRewards = [ [4,"The Fugitive received a MK 48 and Ammo.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addWeaponCargoGlobal ['Mk_48_DZ',1];_holder addMagazineCargoGlobal ['100Rnd_762x51_M240',5];_this reveal [_holder,4];}], [4,"The fugitive received a motorbike.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_veh = createVehicle ['TT650_Ins',_posFGround,[],8,'NONE'];_veh setVariable ['ObjectID','0',true];_veh setVariable ['ObjectUID',str round random 9999999,true];_this reveal [_veh,4];}], [4,"The fugitive received cure itens.",{_posF = position _this;_posFGround = [_posF select 0,_posF select 1,0];_holder = createVehicle ['Weaponholder',_posFGround,[],0,'NONE'];_holder addMagazineCargoGlobal ['ItemBloodBag',1];_holder addMagazineCargoGlobal ['ItemBandage',2];_holder addMagazineCargoGlobal ['ItemSeaBassCooked',1];_holder addMagazineCargoGlobal ['ItemWaterbottle',1];_holder addMagazineCargoGlobal ['ItemPainkiller',1];_holder addMagazineCargoGlobal ['ItemORP',1];_holder addMagazineCargoGlobal ['ItemMorphine',1];_this reveal [_holder,4];}], [4,"The fugitive sees the enemy.",{donn_seeSmoke = [];{if (_this distance _x < 300 && !((vehicle _x) isKindOf 'Air')) then {_posK = position _x;for '_i' from 1 to 4 do {_smoke = createVehicle [['SmokeShell','SmokeShellYellow','SmokeShellRed','SmokeShellGreen','SmokeShellPurple','SmokeShellBlue','SmokeShellOrange'] call BIS_fnc_selectRandom,[_posK select 0,_posK select 1,40+_i*10],[],0,'CAN_COLLIDE'];donn_seeSmoke = donn_seeSmoke + [_smoke];};};} forEach (playableUnits-[_this]);}], [1/12,"",{{deleteVehicle _x;} forEach donn_seeSmoke;}] ]; //SAFE ZONES (READY FOR CHERNARUS) _safezones = [ [6325,7807,0], [4063,11664,0], [11447,11364,0], [1606,7803,0], [12944,12766,0], [12060,12640,0] ]; _safezonesRad = 160; //ADMINS STEAM ID (TO PREVENT THE SCRIPT TO SELECT ADMINS AS FUGITIVE) _admins = ["00000000000000000","11111111111111111"]; //===================== // FUNCTIONS ========== //===================== _lockedFugitives = []; //THE TWO LINES BELLOW ARE EPOCH SPECIFIC waitUntil {!isNil "DZE_safeVehicle"}; DZE_safeVehicle = DZE_safeVehicle + ["TT650_Ins"]; donn_fugitiveChoose = { _fugitive = objNull; _maxSumDist = -1; { _p = _x; _pP = position _x; _pPX = _pP select 0; _pPY = _pP select 1; if (_pPx > 0 && _pPY < _mapSize) then { if (damage _p < 0.2 && vehicle _p == _p) then { if (count (_p nearObjects ["Plastic_Pole_EP1_DZ",(DZE_PlotPole select 0)*1.25]) == 0) then { _pUID = getPlayerUID _p; if !(_pUID in _admins || _pUID in _lockedFugitives) then { _sumDist = 0; {_sumDist = _sumDist + (_p distance _x);} forEach playableUnits; if (_sumDist > _maxSumDist) then {_fugitive = _p;_maxSumDist = _sumDist;}; }; }; }; }; } forEach playableUnits; _fugitive }; //===================== // THE SCRIPT ========= //===================== _aliveTimeToWin = round (_aliveTimeToWin*60); _runTimeInter = round (_runTimeInter*60); _firstRunDelay = round (_firstRunDelay*60); _lastTimeConclude = time-_runTimeInter+_firstRunDelay; while {true} do { waitUntil {uiSleep 15;count playableUnits >= _minPlayersToRun && (time-_lastTimeConclude) >= _runTimeInter}; _fugitive = call donn_fugitiveChoose; if (!isNull _fugitive) then { diag_log "[MOSTWA] Begin!"; _fugitiveName = name _fugitive; _fugitiveID = getPlayerUID _fugitive; _aliveTimeStart = time; _aliveTimePassed = 0; _timeCell = 2; _sleepAMark = round(_updateMark/_timeCell); _slepBIndex = 0; _sleepBMark = -1; if !(_slepBIndex == count _fugitiveRewards) then { _sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell); }; _sleepCMark = round(_onPlotCheckFrequency/_timeCell); _sleepDMark = round (10/_timeCell); //_sleepA = _sleepAMark; _sleepA = 0; _sleepB = 0; _sleepC = 0; _sleepD = 0; _txt = ((name _fugitive)+" have a price on his head, kill hin to receive a reward.\n"+(name _fugitive)+", stay alive " +(str(round(_aliveTimeToWin/60)))+" minutes to receive the prize.\n\n"); _timeInPlot = 0; while {alive _fugitive && !isNull _fugitive && _aliveTimePassed < _aliveTimeToWin && _timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot} do { if (_sleepA >= _sleepAMark) then { _txt = _txt + ((name _fugitive)+" mark updated on map.\n"+(str (round(((_aliveTimeToWin-_aliveTimePassed)/60)*10)/10))+" minutes to stop the hunt.\n\n"); _sleepA = 0; _fPos = position _fugitive; _error = (_circleSize*2)/sqrt(2); _fPosBlur = [(_fPos select 0)-_error/2+(random _error),(_fPos select 1)-_error/2+(random _error),0]; if (_aliveTimePassed > 0) then {deleteMarker "DONN_FUGITIVE";deleteMarker "DONN_FUGITIVE_DOT";}; createMarker ["DONN_FUGITIVE",_fPosBlur]; "DONN_FUGITIVE" setMarkerColor "ColorYellow"; "DONN_FUGITIVE" setMarkerShape "ELLIPSE"; "DONN_FUGITIVE" setMarkerBrush "SolidBorder"; "DONN_FUGITIVE" setMarkerSize [_circleSize,_circleSize]; createMarker ["DONN_FUGITIVE_DOT",_fPosBlur]; "DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack"; "DONN_FUGITIVE_DOT" setMarkerType "Vehicle"; "DONN_FUGITIVE_DOT" setMarkerText "Fugitive!"; }; if (_sleepB == _sleepBMark) then { _nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0]; _inSafe = false; {if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones; _isFlying = ((getPosATL _fugitive) select 2) > 45; if (count _nearPlotPole == 0 && !_inSafe && !_isFlying) then { _txt = _txt + "Time Reward! " + (_fugitiveRewards select _slepBIndex select 1); _code = _fugitiveRewards select _slepBIndex select 2; _fugitive call _code; } else { _txt = _txt + "Time Reward!? In safe, on plot or flying. No reward..."; }; _sleepB = 0; _slepBIndex = _slepBIndex + 1; _sleepBMark = -1; if !(_slepBIndex == count _fugitiveRewards) then { _sleepBMark = round(((_fugitiveRewards select _slepBIndex select 0)*60)/_timeCell); }; }; if (_sleepC == _sleepCMark) then { _nearPlotPole = _fugitive nearObjects ["Plastic_Pole_EP1_DZ",DZE_PlotPole select 0]; _inSafe = false; _isHigh = ((getPosATL _fugitive) select 2) > 300; {if (_fugitive distance _x < _safezonesRad) exitWith {_inSafe = true;};} forEach _safezones; if (count _nearPlotPole > 0 || _inSafe || _isHigh) then {_timeInPlot = _timeInPlot+_sleepCMark*_timeCell}; _sleepC = 0; }; if (_sleepD == _sleepDMark) then { if (vehicle _fugitive == _fugitive) then { _sleepAMark = round(_updateMark/_timeCell); } else { if (vehicle _fugitive isKindOf "Air") then { _sleepAMark = round ((_updateMark/_timeCell)*0.25); } else { _sleepAMark = round ((_updateMark/_timeCell)*0.5); }; }; _sleepD = 0; }; if (_txt != "" && _txt != "Time Reward! ") then {[nil,nil,rTitleText,_txt,"PLAIN",7.5] call RE;}; uiSleep _timeCell; _txt = ""; _sleepA = _sleepA + 1; _sleepB = _sleepB + 1; _sleepC = _sleepC + 1; _sleepD = _sleepD + 1; _aliveTimePassed = (time - _aliveTimeStart); }; deleteMarker "DONN_FUGITIVE"; deleteMarker "DONN_FUGITIVE_DOT"; if (!isNull _fugitive) then { _lockedFugitives = _lockedFugitives + [_fugitiveID]; if (alive _fugitive) then { if (_timeInPlot <= _aliveTimeToWin*_maxTimeNearPlot) then { [nil,nil,rTitleText,(_fugitiveName+", time over! The prize is yours!\nColect your reward near you."),"PLAIN",7.5] call RE; _posToHolder = position _fugitive;_posToHolder set [2,0]; _veh = createVehicle ["CSJ_GyroC",_posToHolder,[],2,'NONE']; _veh setVariable ["ObjectID","0",true]; _veh setVariable ["ObjectUID",str round random 9999999,true]; _fugitive reveal _veh; _posToHolder = position _fugitive;_posToHolder set [2,0]; _holder = createVehicle ["WeaponHolder",_posToHolder,[],0,"CAN_COLLIDE"]; _holder addMagazineCargoGlobal ["ItemBriefCase100oz",4]; _fugitive reveal _holder; diag_log "[MOSTWA] Ending! Fugitive Win!"; _lastTimeConclude = time; } else { [nil,nil,rTitleText,("Hunt time over! "+(name _fugitive)+", you was too much near plot poles or safezones\n or high on sky. No pain no gain. No reward."),"PLAIN",10] call RE; diag_log "[MOSTWA] Ending! Fugitive not Fair..."; _lastTimeConclude = time-_runTimeInter*0.75; }; } else { [nil,nil,rTitleText,((name _fugitive)+", perished! Collect the prize on his body!\nMark is on map fo 45 seconds..."),"PLAIN",10] call RE; createMarker ["DONN_FUGITIVE",position _fugitive]; "DONN_FUGITIVE" setMarkerColor "ColorRed"; "DONN_FUGITIVE" setMarkerShape "ELLIPSE"; "DONN_FUGITIVE" setMarkerBrush "SolidBorder"; "DONN_FUGITIVE" setMarkerSize [100,100]; createMarker ["DONN_FUGITIVE_DOT",position _fugitive]; "DONN_FUGITIVE_DOT" setMarkerColor "ColorBlack"; "DONN_FUGITIVE_DOT" setMarkerType "Vehicle"; "DONN_FUGITIVE_DOT" setMarkerText "Fugitive Body..."; _posToHolder = position _fugitive;_posToHolder set [2,0]; _holder = createVehicle ["WeaponHolder",_posToHolder,[],0,"CAN_COLLIDE"]; _holder addMagazineCargoGlobal ["ItemBriefCase100oz",4]; diag_log "[MOSTWA] Ending! Fugitive perished."; uiSleep 240; deleteMarker "DONN_FUGITIVE"; deleteMarker "DONN_FUGITIVE_DOT"; _lastTimeConclude = time-240; }; } else { [nil,nil,rTitleText,("The hunt for "+_fugitiveName+" head is over... "+_fugitiveName+" disconnected."),"PLAIN",5] call RE; diag_log "[MOSTWA] Fugitive disconnected..."; _lastTimeConclude = time-_runTimeInter*0.75; }; } else { diag_log "[MOSTWA] Cant find an elegible fugitive..."; _lastTimeConclude = time-_runTimeInter*0.75; }; }; 2 - Unpack your mission file, open init.sqf and put the code line bellow at the end of it:
    if (isServer) then {execVM "\z\addons\dayz_server\andre_most_wanted.sqf";}; 3 - Take a look at the script, and set the configuration vars to what you want or leave it alone and use the default settings.
×
×
  • Create New...