Jump to content

pr0dukt

Member
  • Posts

    348
  • Joined

  • Last visited

Reputation Activity

  1. Like
    pr0dukt got a reaction from DangerRuss in 1 person on server, everyone else wait for host...   
    Its solved, OVH game walls requires ports to be white listed.
  2. Like
    pr0dukt got a reaction from BigEgg in 1 person on server, everyone else wait for host...   
    Its solved, OVH game walls requires ports to be white listed.
  3. Like
    pr0dukt got a reaction from Shawn in [Release] Cinematic Camera Death   
    Give credit where due. You did not make this.
  4. Like
    pr0dukt got a reaction from creativv in [Release] Cinematic Camera Death   
    Give credit where due. You did not make this.
  5. Like
    pr0dukt reacted to ViseVersa in [Beta] New Kind of Headless Client   
    So, recently I was just browsing trough forums and I read about Headless Clients and I was like phew that would be a nice thing to have man. So I went straight to the Downloads, gave them a few Tests and decided screw this. I've seen "ARMA 2" Headless Clients using event handlers, that are for arma3 - not even sure, if they actually work in arma2 and then it's a mess (no offence thou, but it was very hard to read trough all that). Well, what Solutions did I have? Making my own one and share it with the Community to improve it to an acceptable Standard.
     
    The following Video (Sound might be loud) shows an Example of the Headless Client
     
     
    So, what's so Special about this...
    Well first of all this works on any Map. Also it works with any Loot Table. Also it works without the need of a player. It has it's own "independent Area" where it interacts in. What I mean with that is, that you won't need to rely on any Functions, as everything that is needed is included. All Variables and Functions work outside of the normal "dayz stuff", as only the Headless Client loads it and it won't overwrite anything. Also it comes with a few features available.
     
    You can fully customize the spawn Ratio between Zombies spawned on Buildings and in Wilderness, for Example you could have 3x as many Zombies in cities You can fully customize the Loot Tables or integrate your existing ones just by changing a variable You can fully customize which modules to use, like animal spawn, wild zombie spawn, building zombie spawn, loot spawn and custom spawn. You can customize which Animals to Spawn You can make AI Shoot at the Zombies You can shuffle the Loot by setting permaLoot to false, as the server clean up will then clean it up and the hc will just re-spawn it. You can ofc set how many zombies / animals / loot piles should max be spawned  
    For a full List, of available Options see the variablesHC.sqf.
     
    The Performance
    While you have the ability to use all those variables, you can tweak the performance of this. However, the script will only be as good as the code and I'm not perfect. I tried my best to check every tiny bit to make sure nothing ever goes wrong, but there's always that slight possibility. Also I'm not perfect and this is my very first attempt, so if I did something wrong or could've done it better just let me know. Also be carefully, when changing the Script Timers, as a to low value might impact dramatically on your FPS.
     
    The Design
    This Client is not meant to Tackle the common Problem of a Headless Client joining to early, etc. It is meant to be persistent, reliable and functional. It more a "spawning handler" for various things like the loot. If you want a "perfect" Headless Client this is not the thing you're searching for. This is the Basement of a Script that is living from user Input, user Feedback and user advices. It wants further improving (if possible) and optimizing (if possible). Regardless of the fact, that it is fully Stable you can however do things wrong - I personally have only limited methods to test this Client, while you or other maybe have a large player base that is willing to tackle a new world of Zombies - so.. If you find any Bug or have any more wishes just let me know.
     
    The Installation
    Please prepare for everything, that you'll need:
    An Editor of your choice (OK, this was obvious) Your mission.sqm (Located in your MPMissions\DayZ_Epoch_%INSTANCE%.%MAP% Your init.sqf (Located in your MPMissions\DayZ_Epoch_%INSTANCE%.%MAP% Your config.cfg (Usually Located in a Folder called "instance_number_mapName") The Headless Client itself (See also: GitHub - Headless Client)  
    IF you do NOT have a Headless Client Installed or failed to install it before:
     
    IF you do have a Headless Client installed or managed to do so before:
     
    The Last Step is simply to create a Folder inside your Mission named "headlessclient" (You can ofc define your own paths) and put all the HC Files into that Folder. Edit the Variables if you want to or just hop right into game and start the massacre!
     
    PS: If I was unclear with the Instructions at any point let me know.
     
     
    //EDIT:
    Just out of interest I forced the HC to join the wrong slot, to see what happens. Apparently it can be in any slot, it doesn't differ ^^
     
     
     
    //Edit
    Apparently some files on Github got broken during the Upload, they have meanwhile been replaced.
  6. Like
    pr0dukt reacted to Mikeeeyy in How to know the itens inside a Backpack?   
    getWeaponCargo unitBackpack player getMagazineCargo unitBackpack player  
  7. Like
    pr0dukt reacted to Donnovan 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.
  8. Like
    pr0dukt reacted to Donnovan 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; }; };
  9. Like
    pr0dukt reacted to SchwEde in global chat voice kick   
    well my crystall cant see anything, so how about you post your rpt, script and how do you call it?
  10. Like
    pr0dukt reacted to Chainsaw Squirrel in Careful who you show off that new mouse to !   
    Careful who you show off that new mouse to !

  11. Like
    pr0dukt reacted to GudrunGisela in Andre Safe Zones for Arma 2 (It's good man!)   
    First of all thanks Donnovan for this awesome script :)
    My Co-Admin and me tested it intensively and we have only one last persistent problem. If the server restarts and the first player run into the safezone he doesn't have God Mode so it's possible to kill him. If he leaves the Safezone and runs again into it the God Mode works. After that everything worked fine until next restart. Always the first player who run into the safezone after restart has no God Mode until he leaves it and enters the safezone again. Is this problem known? How can I fix this? Thanks in advance.
    Edit:
    If anyone has the same problem just try this:
    Change this line:
    if (hasInterface) then {To:
    if (!isDedicated) then {That solved it for me.
    Greetings
     
     
  12. Like
    pr0dukt reacted to Donnovan in MOSTWA - Andre most Wanted Script   
    Thanks a lot for your donation, this is the first donation after i updated Andre Convoy, released Andre Aerial Patrol and Most Wanted.
    My to-do:
    - Release Time Control with FSM: 90% done. (specially for BetterDeadThanZed).
    - Update Andre Convoy with the LetArmaDoItAll version: 90% done.
    - Updated Most Wanted: 90% done.
  13. Like
    pr0dukt reacted to ElDubya in [Release] Complete Namalsk Epoch Server   
    Hi all, me again.
    This time I have for you a complete Namalsk server, ready to go, straight out of the box. This package has : 
    Plot For Life Precise Building Snap Build Pro Vector Build Advanced Alchemical Crafting Standard Gold Bar Currency Custom Traders Fully Working Bloodsuckers Fully Working Cold Weather Warm Clothes Namalsk Zombies DZMS Missions Cold Breathe Fully Working EMP Storms Gauss Rifle/Ammo Spawns only in A2 A2 Has The Complete Namalsk Scenery Inside Lots of Custom Building Addons Custom Trader Areas Login Camera Welcome Credits Right Click Executables (bike, etc) Earplugs Dynamic Weather Effects Joelma's Fast Time Control (1.5hr night in every 4hr cycle) Sleep/Rejuvenate Blood in Tents Trader Safezones Random Monster Noises When Locking Cars Support For JSRS and Blastcore Recover Player Skins .... and more ....  You will need to download @Namalsk and @NC (Namalsk Crisis) for all the Namalsk addons to work correctly. You will also need to add the Epoch client files and some form of admintools/anti-hack to the server pack. I was using infiSTAR.
    I have it set to spawn players with a solder kit in their inventory to fix broken NVG's, radios and GPS that are only available via loot spawn. Players will need to find 2 of these items, place them in their backpacks, right click their solder kit and repair them, making one good set from 2 broken sets. Warm clothes spawn in barracks. The Gauss rifle (both scoped and non scoped) have a chance to spawn in Object A2. Bloodsuckers will spawn on certain buildings but mainly barracks when players are near. I have an "Essentials Trader" in place of the bandit trader that only sells ASPI devices (to ward off the effects of the EMP storms), mutant hearts (to ward off the bloodsuckers) and combination locks for high prices. ASPI and Mutant hearts are ONLY available from this trader.
    Only 6 types of heli spawn and all of them, except the littlebird, are capable of lifting every ground vehicle. Ground vehicles can not tow other ground vehicles.
    Missions are handled by DZMS, and I have renamed the missions to suit the Namalsk theme as well as gone around the whole map, taking co-ordinates of flat suitable ground for the missions to spawn on. All mission AI are wearing traditional bandit gear.  
    As last time, I will not be providing support for this pack. You should know how to add the things needed to get this to work correctly. It's easy though, a kid could do it.
    Anyway, enjoy .....
  14. Like
    pr0dukt reacted to Donnovan 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.
  15. Like
    pr0dukt got a reaction from Markokil321 in I NEED someone who can add in vehicles and guns to traders   
    I will do it for $100
  16. Like
    pr0dukt reacted to boyd in Release Auction House (MMO Style)   
    I can sell items just fine and they show up in the database, but when i want to view the buy list it doesnt show any items.
     
    I checked all the logs and they all look fine, so im at a lose why it's doing it.
     
    If anyone can show me the right way that would be great.
  17. Like
    pr0dukt reacted to Axle in Armor value display.   
    New addition to the inventory UI takes away the need to search the web for armor values of items.
     

  18. Like
    pr0dukt reacted to falconsan in Some new trains for Sauerland   
    Hello,
     
    i have made for my new project "dayZ Epoch Ruegen" some new models. This new models will be build into Sauerland, too.
     
    First, older German democratic republic locos:
     

     

     
    Waggon of german "Bundesbahn":

     

     
    regards
  19. Like
    pr0dukt reacted to BigEgg in [Release] Restrict building near defined areas   
    I haven't tested this yet but add this to your init.sqf:
    BlackZones = [[zonestary,100]]; Add this to player build where you added my other code:
    if (BuildingBlacklist) then {  _cancel = true; _reason = "- You are within a restricted building zone"; }; Then add this above initialized = true in your compiles.sqf:
    { private ["_pos", "_radius", "_trigger"]; _pos = _x select 0; _radius = _x select 1; _trigger = createTrigger ["EmptyDetector", _pos]; _trigger setTriggerArea [_radius, _radius, 0, false]; _trigger setTriggerActivation ["ANY", "PRESENT", true]; _trigger setTriggerType "SWITCH"; _trigger setTriggerStatements ["(vehicle player) in thisList", "BuildingBlacklist = true;", "BuildingBlackList = false;"]; true  } count BlackZones; Define the zones you want in the mission.sqm and then add them to the blacklist in your init.
     
    Hope it helps :)
  20. Like
    pr0dukt reacted to ElDubya in [Release] Restrict building near defined areas   
    if like me, you have 2 different areas you don't allow building, you can just do this : 
     
    init.sqf
    ServerIllegalRadius = 500; ServerIllegalRadius2 = 850; ServerNoBuildList = [ "Land_Mil_ControlTower","Land_SS_hangar","Land_Mil_Barracks_i","Land_Mil_Barracks","Land_budova4_in"]; //Military ServerNoBuildList2 = ["HeliHEmpty"];//Traders Top of player_build.sqf
    "_posrad","_cntrad","_cntrad2" Find this in player_build.sqf : 
    if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; }; Put this under it : 
    _posrad = [player] call FNC_GetPos; _cntrad = count (nearestObjects [_posrad, ServerNoBuildList, ServerIllegalRadius]); _cntrad2 = count (nearestObjects [_posrad, ServerNoBuildList2, ServerIllegalRadius2]); if (_cntrad > 0) then { _cancel = true; _reason = format["- Building is restricted %1m near military areas", ServerIllegalRadius]; }; if (_cntrad2 > 0) then { _cancel = true; _reason = format["- Building is restricted %1m near trader cities", ServerIllegalRadius2]; }; Cheers for the brilliant idea BigEgg. 
  21. Like
    pr0dukt reacted to BigEgg in [Release] Restrict building near defined areas   
    So you currently have a rule that states you can not build within a certain distance of Military barracks etc..... Although making it a rule is easy, making it impossible is almost easier. No deleting bases or having to constantly be on the look out.
     
    You will need:
    Notepad++ (or a software of your choice)
    init.sqf
    player_build.sqf (can be found in your snap build folder)
     
     
    Instructions:
     
    Step one: 
     
    Open up your init.sqf and add this to the very bottom:
     
    ServerIllegalRadius = 500;   ServerNoBuildList = [ "Land_Mil_ControlTower", "Land_SS_hangar", "Land_Mil_Barracks_i", "Land_Mil_Barracks", "Land_budova4_in", "HeliHEmpty" ]; Step two:
     
    At the top of player_build.sqf add these to the end of the Private line:
    "_posrad","_cntrad" Step three:
     
    Find this line in player_build.sqf:
    if(!canbuild) then { _cancel = true; _reason = "Cannot build in a city."; }; Under it add:
     
    _posrad = [player] call FNC_GetPos; _cntrad = count (nearestObjects [_posrad, ServerNoBuildList, ServerIllegalRadius]);   if (_cntrad > 0) then { _cancel = true; _reason = format["- Building is restricted %1m near Trader Cities and Millitary Loot Areas", ServerIllegalRadius]; };   Hope it helps :)
  22. Like
    pr0dukt reacted to Zupa in [Release] Advanced Trading 2.1 !UPDATED!   
    Version 2.1 Released.
    Alternative selling/buying system. ( Run default & this one next to each other ).
    Supported:
    Config traders Single Currency & Default Currency Selling/Buying everything from and to Gear/Vehicle/Backpack Not supported
     No database traders (database traders make your server slow)  No ability to buy or sell vehicles. What was added to 2.0  Default Currency Supported Item Filter Info display of selected Item Buying to gear and backpack What was added to 2.1Fixed content display of vehicles and backpacks. Description
    Sell directly from backpack, gear or the vehicle ( close) where you were driver from. Decide which items you sell. Traders will only make it possible to trade the items they accept ( goes fully automatic, so only items they accept will be listed on the left).
    You push items to the right to sell, only the items on the right willl get sold.
    Safety measurements
    Double checks what was deleted from backpacks/vehicles so that people can not cheat. Can only sell from your backpack and the vehicle were u was the last driver from ( in 30m radius)  
    Update 1.0 - 2.0 instructions  Delete your old 'zupa' folder  Paste the new 'zupa' folder  Edit the config.sqf to match your server  Done https://github.com/DevZupa/AdvancedTrading/releases/tag/v2.1   Items only show for admins when using infiSTAR AH & Admintools ?! Update infiSTAR to latest version. edit config.sqf to reflect your server correctly.  
    Installation instructions
    Code:
    https://github.com/DevZupa/AdvancedTrading/releases/tag/v2.1
    Install Instructions
    0. Drop the zupa folder in your mission file   1. In your fn_selfactions.sqf
    Place:
    _buyV = player addAction ["<t color='#0059FF'>Advanced Trading</t>", "zupa\advancedTrading\init.sqf",(_traderMenu select 0), 999, true, false, "",""]; s_player_parts set [count s_player_parts,_buyV]; above
    // Database menu _buy = player addAction [localize "STR_EPOCH_PLAYER_289", "\z\addons\dayz_code\actions\show_dialog.sqf",(_traderMenu select 0), 999, true, false, "",""]; s_player_parts set [count s_player_parts,_buy]; 2. in description.ext, add the following on the bottom
    #include "zupa\advancedTrading\ZSCdefines.hpp" // if u don't have it from ZSC #include "zupa\advancedTrading\advancedTrading.hpp" 3. Add the following exceptions to your antihack if needed
    AdvancedTrading 711197 4. Edit the config.sqf to match your server.
     
    Screenshots:
     
     

     
  23. Like
    pr0dukt got a reaction from ElDubya in Looking for pro scripter that can help with adding banking   
    You dont have to be a pro scripter to put banking on a server. A trained monkey can do it
  24. Like
    pr0dukt reacted to 3steN8igall in Server load fps   
    #login password Log in as the admin #logout Admin log out #mission filename Select mission with known name #missions Select mission #restart Restart mission #reassign Start over and reassign roles #kick (name, ID or Player#) Allows you to kick the nickname #shutdown Shuts down the server #init Reload server config file loaded by –config option #monitor (interval in sec) Shows performance information of the server. Interval 0 means to stop monitoring #debug (command) (interval) Commands can be checkfile, console, totalsent, usersent, userinfo, userqueue #exec ban (name, ID or Player#) Allows you to Ban the nickname or the player #, thier ID will be added to ban.txt, example #exec ban 63. google is your friend!
  25. Like
    pr0dukt got a reaction from happydayz in So tired of all the disrespect towards community scripters   
    If you make a script, and you sign up for giving support. Some people dont care about the time you put in it becuase they take it for granted, that doesnt mean they are disrespecting your work. They just want to get the script working. 
×
×
  • Create New...