Jump to content

Seelanpro

Member
  • Posts

    6
  • Joined

  • Last visited

Reputation Activity

  1. Like
    Seelanpro got a reaction from Donnovan in Boundary markers for AGN safe zone script?   
    Yes, I also use Infistar safezone just for the markers :D But @Donnovan arma 2 safezone is very good too! I don't presonally like agn but to preference :D
  2. Like
    Seelanpro reacted to Shawn in [Release] Autorun   
    By pressing 0, it lets the player run without the need to hold W. It automatically exits the script if the player walks into water, has a broken leg, or becomes either unconscious or dead.
    1. Create a file called AutoRun.sqf
    2. Open it, and paste the following:
    if (player != vehicle player) exitWith {}; if (surfaceIsWater (getPosASL player)) exitWith {systemChat('Autorun currently unavailable.');}; if (r_fracture_legs or r_player_unconscious or deathHandled) exitWith {}; if (autoRunActive == 0) then { autoRunActive = 1; systemChat('Autorun Activated'); systemChat('Check for missions or obstacles you may run into'); autoRunThread = [] spawn { while {autoRunActive == 1} do { if ((player != vehicle player) or (surfaceIsWater (getPosASL player)) or r_fracture_legs or r_player_unconscious or deathHandled) exitWith {call autoRunOff; systemChat('Autorun Deactivated');}; player playAction "FastF"; uiSleep 0.5; }; }; } else { call autoRunOff; systemChat('Autorun Deactivated'); }; _handled = true; 3. Open up compiles.sqf and find:
    dze_surrender_off = { player setVariable ["DZE_Surrendered", false, true]; DZE_Surrender = false; }; 4. Paste the following directly below it:
    autoRunOff = { autoRunActive = 0; terminate autoRunThread; player playActionNow "Stop"; }; 5. Open up variables.sqf and find:
    DZE_SaveTime = 30; 6. Paste this line underneath:
    autoRunActive = 0; 7. Finally open up dayz_spaceInterrupt.sqf and find:
    // Disable ESC after death if (_dikCode == 0x01 && r_player_dead) then { _handled = true; }; 8. Insert directly below:
    if (_dikCode == 0x0B) then { []execVM "Path\To\AutoRun.sqf"; }; Remember, it does not have to be 0 to activate the script. You can change 0 by replacing 0x0B in the dayz_spaceInterrupt.sqf edit you made. Here is a link for other DIK KeyCodes:
    https://community.bistudio.com/wiki/DIK_KeyCodes
  3. Like
    Seelanpro 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.
  4. Like
    Seelanpro reacted to Shak in Suicide in safezone false   
    This is an old suicide script that seemed to stop people attempting to dupe, a long long time ago. Don't know if it still works.
     
  5. Like
    Seelanpro got a reaction from juandayz in Boundary markers for AGN safe zone script?   
    Yes, I also use Infistar safezone just for the markers :D But @Donnovan arma 2 safezone is very good too! I don't presonally like agn but to preference :D
  6. Like
    Seelanpro reacted to theduke in Looking to make a "paintball" event   
    this seems in the right direction. but way over my head lol
    to me this
    player addEventHandler ["fired",{if ((_this select 4) == "B_556x45_Ball") then {[]exec"knockout.sqf"}}] seems like it would work
    and in knockout.sqf have something like this
    player addEventHandler ['handleDamage', {false}]; player allowDamage false; player setVariable["NORRN_unconscious",true,true]; player setVariable["unconsciousTime",120,true]; but im sure this isnt correct lol
  7. Like
    Seelanpro reacted to BigEgg in Suicide in safezone false   
    Find this:
    if (_exitWith == "nil") then { and replace it with:
    if (_exitWith == "nil" && !inSafeZone) then {  
    Keep in mind this will only work if you have the safezone defined as a trader city in the mission.sqm
    Let me know how it works :)
  8. Like
    Seelanpro reacted to Shawn in [RESOURCE] A collection of Anti-Dupes   
    Alright, with these changes, it prevents someone from giving coins to another person if they are already trading, whether it be to a banker, or another player. This is a much better, cleaner fix than to the other option. I have tested it, and it works.
    First, find your bank_dialog.sqf, and replace everything in there with:
    if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_10") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; private ["_dialog"]; _dialog = createdialog "BankDialog"; call BankDialogUpdateAmounts; player setVariable ["tradingmoney", true, true]; DZE_ActionInProgress = false; waitUntil {uiSleep 1; !dialog}; player setVariable ["tradingmoney", false, true]; Then go to your init.sqf for your coin system, and find:
    GivePlayerAmount = { private ["_amount","_target","_wealth"]; _amount = parseNumber (_this select 0); _target = cursorTarget; _wealth = player getVariable["cashMoney",0]; _twealth = _target getVariable["cashMoney",0]; _InTrd = _target getVariable ["TrBsy",false]; _isMan = _target isKindOf "Man"; if (_amount < 1 or _amount > _wealth) exitWith { cutText ["You can not give more than you currently have.", "PLAIN DOWN"]; }; if (!_isMan) exitWith { cutText ["You are not facing anyone.", "PLAIN DOWN"]; }; if (_wealth == _twealth) exitWith { cutText ["FAILED : Both Targets have same amount of money.", "PLAIN DOWN"]; }; if (_InTrd) exitWith { cutText ["Other Player is busy, please wait.", "PLAIN DOWN"]; }; Replace it with:
    GivePlayerAmount = { private ["_amount","_target","_wealth"]; _amount = parseNumber (_this select 0); _target = cursorTarget; _wealth = player getVariable["cashMoney",0]; _twealth = _target getVariable["cashMoney",0]; _isMan = _target isKindOf "Man"; if (_target getVariable ["tradingmoney", false]) exitWith { cutText ["You can not give to someone who is already trading.", "PLAIN DOWN"]; }; if (_amount < 1 or _amount > _wealth) exitWith { cutText ["You can not give more than you currently have.", "PLAIN DOWN"]; }; if (!_isMan) exitWith { cutText ["You are not looking correctly at a player", "PLAIN DOWN"]; }; if (_InTrd == 1) exitWith { cutText ["Other Player is busy, please wait.", "PLAIN DOWN"]; }; Finally, replace your give_player_dialog.sqf with:
    private ["_dialog"]; GivePlayerTarget = _this select 3; if (GivePlayerTarget getVariable ["tradingmoney", false]) exitWith { cutText ["You can not give to someone who is already trading.", "PLAIN DOWN"]; }; _dialog = createdialog "GivePlayerDialog"; call GivePlayerDialogAmounts; player setVariable ["tradingmoney", true, true]; [] spawn { while {dialog} do { if (GivePlayerTarget getVariable ["tradingmoney", false]) exitWith { closeDialog 0; }; uiSleep 0.25; }; }; waitUntil {uiSleep 1; !dialog}; player setVariable ["tradingmoney", false, true]; This should fix the issue you mentioned :)
  9. Like
    Seelanpro reacted to Shawn in [RESOURCE] A collection of Anti-Dupes   
    Block ESC Menu if gear was just/is accessed + Black screen if gear is accessed and fps is dropped
    For this method, all credit goes to JustBullet!

    What it does: Blocks the escape menu for 30 seconds after opening your inventory, but also displays a black screen if a player enters his inventory, and reduces his/her fps to less than or equal to 4. 
    Start by opening up dayz_spaceInterrupt.sqf and find this:
    // esc if (_dikCode == 0x01) then { DZE_cancelBuilding = true; call dayz_EjectPlayer; }; Above it, add the following:
    /* Anti-Duping by JustBullet */ if (_dikCode in actionKeys "Gear") then { _nill = execvm "path\to\esc-dupe.sqf"; }; Then create an sqf file in the desired location called esc-dupe.sqf, and inside, add:
    ///////////////////////////////////////////////////// //////////////* Author by JustBullet */////////////// ///////////* BLOCK ESC MENU ver. 1.0.3 *///////////// ///////////////////////////////////////////////////// if (isNil "JustBlock") then { private ["_timer","_fps"]; JustBlock = true; disableSerialization; waituntil{!isnull (finddisplay 46)}; _timer = 30; _trigger = false; while {_timer > 0} do { _timer = _timer - 0.1; if !(isnull (finddisplay 49)) then { findDisplay 106 closeDisplay 1; finddisplay 49 closeDisplay 2; _fps = round(diag_fps); switch true do { case (!(_trigger) && (_fps <= 4)): {_trigger = true; disableUserInput true;}; case ((_trigger) && (_fps > 4)): {endLoadingScreen; _trigger = false; disableUserInput false;}; }; if (_trigger) then {startLoadingScreen ["Very low FPS, you are blocked...", "DayZ_loadingScreen"];} else {systemchat format["Cannot exit game 30 seconds after accessing your inventory.", round(_timer)];}; }; uiSleep 0.1; }; if (_trigger) then {endLoadingScreen; disableUserInput false;}; JustBlock = nil; }; *******************************************
    Block duping via skin change
    The goal of this method is to create a blacked screen for a player when he changes clothes. Of course, this won't be noticed, but those that decrease their fps, they are blacked out, and messaged with: "Anti Dupe: Changing clothes".
    Open up player_switchModel.sqf and paste the following at the very top:
    disableUserInput true; startLoadingScreen ["Anti Dupe: Changing clothes", "DayZ_loadingScreen"]; And at the very bottom, paste the following:
    endLoadingScreen; disableUserInput false; The disableUserInput is included to prevent those that have memorized the required spots to click to dupe with.
    *******************************************
    Prevent skin change if backpack is worn
    The following addition is to block skin changing when a backpack is worn.
    Find your player_wearClothes.sqf, and replace:
    if (!isNull (unitBackpack player)) exitWith { DZE_ActionInProgress = false; cutText [(localize "STR_EPOCH_ACTIONS_9"), "PLAIN DOWN"] }; With the following:
    if (!isNull (unitBackpack player)) exitWith { DZE_ActionInProgress = false; cutText [("Please drop your backpack to change clothing"), "PLAIN DOWN"] }; *******************************************
    Prevent packing of safe with player/zombie nearby
    What this does is prevents a player from packing a safe if a player or zombie is within 15 meters.
    Simply open up player_packVault.sqf and find:
    if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_15") , "PLAIN DOWN"]; }; Right after this, paste the following:
    _countplayers = count nearestObjects [player, ["CAManBase"], 15]; if (_countplayers > 1) exitWith { cutText [format["Cannot perform this action if a player or zombie is within 15 metres!"], "PLAIN DOWN"]; }; *******************************************
    Check wallet dupe
    What this does is, instead of checking the wallet of an ai/player when their coins are at "0", which would cause your _cashMoney becoming scalar, it instead exits with a pleasant message :)
    In fn_selfAction.sqf, find this:
    if (_isMan && !_isZombie && !_isAnimal) then { _player_studybody = true; } And replace that block of code with:
    if (_isMan && !_isZombie && !_isAnimal && _ownerID != "0") then { _player_studybody = true; } IMPORTANT! If you are using plot for life, change this:
    _ownerID != "0" to this:
    _characterID != "0" And replace your check_wallet.sqf with:
    private ["_body", "_hisMoney", "_myMoney", "_killsH", "_test2", "_headShots", "_test","_playeridke","_humanity"]; _body = _this select 3; _hisMoney = _body getVariable ["cashMoney",0]; if(_hisMoney < 1) exitWith { cutText ["This is one poor MOTHERFUCKER!", "PLAIN DOWN"]; }; _PlayerNear = _body call dze_isnearest_player; if (_PlayerNear) exitWith {cutText [localize "str_pickup_limit_4", "PLAIN DOWN"]}; _name = _body getVariable ["bodyName","unknown"]; _hisMoney = _body getVariable ["cashMoney",0]; _myMoney = player getVariable ["cashMoney",0]; _myMoney = _myMoney + _hisMoney; _body setVariable ["cashMoney", 0 , true]; player setVariable ["cashMoney", _myMoney , true]; systemChat format ['You took %1 coins, ID says %2 !',_hisMoney,_name]; sleep 2; _cid = player getVariable ["CharacterID","0"]; _cashMoney = player getVariable ["cashMoney",0]; if(_cashMoney > 0) then{ } else { _cashMoney = 0; }; *******************************************
    Give Money dupe fix
    First, find your bank_dialog.sqf, and replace everything in there with:
    if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_10") , "PLAIN DOWN"]; }; DZE_ActionInProgress = true; private ["_dialog"]; _dialog = createdialog "BankDialog"; call BankDialogUpdateAmounts; player setVariable ["tradingmoney", true, true]; DZE_ActionInProgress = false; waitUntil {uiSleep 1; !dialog}; player setVariable ["tradingmoney", false, true]; Then go to your init.sqf for your coin system, and find:
    GivePlayerAmount = { private ["_amount","_target","_wealth"]; _amount = parseNumber (_this select 0); _target = cursorTarget; _wealth = player getVariable["cashMoney",0]; _twealth = _target getVariable["cashMoney",0]; _InTrd = _target getVariable ["TrBsy",false]; _isMan = _target isKindOf "Man"; if (_amount < 1 or _amount > _wealth) exitWith { cutText ["You can not give more than you currently have.", "PLAIN DOWN"]; }; if (!_isMan) exitWith { cutText ["You are not facing anyone.", "PLAIN DOWN"]; }; if (_wealth == _twealth) exitWith { cutText ["FAILED : Both Targets have same amount of money.", "PLAIN DOWN"]; }; if (_InTrd) exitWith { cutText ["Other Player is busy, please wait.", "PLAIN DOWN"]; }; Replace it with:
    GivePlayerAmount = { private ["_amount","_target","_wealth"]; _amount = parseNumber (_this select 0); _target = cursorTarget; _wealth = player getVariable["cashMoney",0]; _twealth = _target getVariable["cashMoney",0]; _isMan = _target isKindOf "Man"; if (_target getVariable ["tradingmoney", false]) exitWith { cutText ["You can not give to someone who is already trading.", "PLAIN DOWN"]; }; if (_amount < 1 or _amount > _wealth) exitWith { cutText ["You can not give more than you currently have.", "PLAIN DOWN"]; }; if (!_isMan) exitWith { cutText ["You are not looking correctly at a player", "PLAIN DOWN"]; }; Finally, replace your give_player_dialog.sqf with:
    private ["_dialog"]; GivePlayerTarget = _this select 3; if (GivePlayerTarget getVariable ["tradingmoney", false]) exitWith { cutText ["You can not give to someone who is already trading.", "PLAIN DOWN"]; }; _dialog = createdialog "GivePlayerDialog"; call GivePlayerDialogAmounts; player setVariable ["tradingmoney", true, true]; [] spawn { while {dialog} do { if (GivePlayerTarget getVariable ["tradingmoney", false]) exitWith { closeDialog 0; }; uiSleep 0.25; }; }; waitUntil {uiSleep 1; !dialog}; player setVariable ["tradingmoney", false, true]; *******************************************
    An important tip I recommend to anyone is, prevent any form of "punishment" which kicks players to the lobby, such as speaking in side chat, x amount of wrong codes for guessing a door code. These can all be easily used for duping. The well known anti hack which I won't name has a lot of kicks to lobby which can be triggered by players. This involves typing anything in chat from the _veryBadTexts array. As a result, the notorious backpack dupe can be achieved. As I mentioned, simply fix this issue by adding:   
    player setDamage 5; Along with a message as to why they were killed:
    systemChat 'You were killed to prevent hacking and duping!'; To the block of code that executes the kick.
    I won't state every single block that requires this added, as there are quite a lot, but it is very simple once you know what to look for.
    *******************************************
    If anyone has more ways of preventing duping, please feel free of commenting the fixes below. I can test it out and happily add it to the collection.
    Please remember that all credit goes to the rightful creators of the scripts.
    Thanks.
  10. Like
    Seelanpro reacted to Shawn in [Dupe Fix] Arma Cheats   
    With Arma 2 came along the option for players to cheat by holding left shift and the numpad minus key. This can be abused as it is a backdoor to complete the backpack dupe, for which most servers have a fix for. To fix this, it's very simple:
    1. Open up dayz_spaceInterrupt.sqf
    2. Find the following: 
    _shift = _this select 2; _ctrl = _this select 3; _alt = _this select 4; And paste the following below:
    if (_shift) then { if(_dikCode == 0x4A) then { execVM "PATH\TO\ArmaCheatFix.sqf"; _handled = true; }; }; 3. Create an sqf file called ArmaCheatFix.sqf to your specified directory and paste the following inside:
    uiSleep 0.1; disableuserinput true;disableuserinput true;disableuserinput true; (findDisplay 49) closedisplay 0; closeDialog 0; systemchat "You've been frozen for 20 seconds."; uiSleep 21; disableuserinput false;disableuserinput false;disableuserinput false; This goes along with:
    I use this on my server and it works fantastically!
    Thanks.
  11. Like
    Seelanpro reacted to Hoplox in [Release] New players get starting money   
    A very simple trigger to add a certain amount of money into a players bank when they join!
    Requirements:
    Access to MYSQL Database.
    Single Currency 2.0
    CREATE TRIGGER `StartingMoney` AFTER INSERT ON `player_data` FOR EACH ROW INSERT INTO banking_data ( PlayerUID, PlayerName, BankSaldo, LastUpdated) VALUES (NEW.PlayerUID, NEW.PlayerName, 100000, NOW()) Select your database and insert this code by pasting it into your query and running it.
    Now everytime a new player joins your server, 100k should be added to their bank account.
    You can change the 100000 to any amount you wish.
    Please like if this helped you out!
    -Hoplox, Thanks taking a look.
    -Credit to Rocu

     
  12. Like
    Seelanpro reacted to Shawn in How to make one building in god mod   
    I use this to make any buildings/items indestructible:
    Just add  MBG_Killhouse_4_InEditor in the indestructible array.
  13. Like
    Seelanpro reacted to juandayz in How to make one building in god mod   
    @Akku14 allowdamege is local... works is every player had the file , i think.
     
    _this addEventHandler ["handleDamage", {false}];  is global  , i use it for custom traders and vehicles added by arma2oaeditor...
    dont know if works with buildings but try.
     
    example:
    _vehicle_50 = objNull;
    if (true) then
    {
      _this = createVehicle ["Land_covering_hut_big_EP1", [6348.437, 7788.6201, 3.0517578e-005], [], 0, "CAN_COLLIDE"];
      _vehicle_50 = _this;
      _this setDir -55.186554;
      _this addEventHandler ["handleDamage", {false}];
    };
  14. Like
    Seelanpro reacted to icomrade in Kick all players prior to restart   
    You should be able to use your BEC scheduler.xml file to do this. Here's an example using maxping to kick all players, you should warn them beforehand that they will be kicked to prevent confusion. I haven't tested this example, but it should work, be sure to edit the start time and job id.
     
    Edit: Just tested and this works, it takes about 10 seconds for the maxping to update and kick players, but it works. Also, don't forget to issue the lock command to prevent players from rejoining before restart.
    <job id="9"> <start>035800</start> <runtime>000000</runtime> <day>1,2,3,4,5,6,7</day> <loop>0</loop> <cmd>maxping 0</cmd> <cmdtype>0</cmdtype> </job>
×
×
  • Create New...