Shawn Posted April 17, 2016 Report Share Posted April 17, 2016 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. looter809, Fully, juandayz and 4 others 7 Link to comment Share on other sites More sharing options...
DangerRuss Posted April 17, 2016 Report Share Posted April 17, 2016 I'd be interested in finding a fix for a dupe that I witness all of the time. It's very similar to this but instead of players duping coins with each other, they're able to do it at the banker. They deposit the exact same amount of money they have on their person, and instead of getting rid of the coins it just adds that amount to the bank, so they then have double. They repeat the process and very quickly have max coins. It seems that they need a vehicle nearby for some reason. Link to comment Share on other sites More sharing options...
creativv Posted April 18, 2016 Report Share Posted April 18, 2016 You can fix this by not allowing a player to deposit when another player is near . But it can also promote trolling . 9 hours ago, DangerRuss said: I'd be interested in finding a fix for a dupe that I witness all of the time. It's very similar to this but instead of players duping coins with each other, they're able to do it at the banker. They deposit the exact same amount of money they have on their person, and instead of getting rid of the coins it just adds that amount to the bank, so they then have double. They repeat the process and very quickly have max coins. It seems that they need a vehicle nearby for some reason. juandayz 1 Link to comment Share on other sites More sharing options...
DangerRuss Posted April 19, 2016 Report Share Posted April 19, 2016 Do you mind pm'ing me or OP and explain how they're doing this? I have only seen it through spectating but Im not actually sure how they're doing. The only thing I see is that they are able to deposit money without losing money, and then withdraw that money which effectively doubles their current money. Then they repeat. On 4/18/2016 at 4:08 AM, creativv said: You can fix this by not allowing a player to deposit when another player is near . But it can also promote trolling . Link to comment Share on other sites More sharing options...
creativv Posted April 20, 2016 Report Share Posted April 20, 2016 10 hours ago, DangerRuss said: Do you mind pm'ing me or OP and explain how they're doing this? I have only seen it through spectating but Im not actually sure how they're doing. The only thing I see is that they are able to deposit money without losing money, and then withdraw that money which effectively doubles their current money. Then they repeat. Is it Always in pairs or also players alone sometimes ? Link to comment Share on other sites More sharing options...
DangerRuss Posted April 20, 2016 Report Share Posted April 20, 2016 Well Ive seen it once before a long time ago but I've only recently started running overpoch again. I saw it once again the other day and there were 2 guys. And i believe they had very similar amounts of gold. Link to comment Share on other sites More sharing options...
creativv Posted May 6, 2016 Report Share Posted May 6, 2016 Yeah just dont allow people to bank at the same time it will put a stop to it Link to comment Share on other sites More sharing options...
DangerRuss Posted May 14, 2016 Report Share Posted May 14, 2016 Any idea how to do this? Link to comment Share on other sites More sharing options...
Shawn Posted May 14, 2016 Author Report Share Posted May 14, 2016 I don't recommend preventing people from banking if there is another players nearby. Just asking for griefing. Link to comment Share on other sites More sharing options...
DangerRuss Posted May 14, 2016 Report Share Posted May 14, 2016 17 minutes ago, Shawn said: I don't recommend preventing people from banking if there is another players nearby. Just asking for griefing. Im with you on this point, but no one has suggested or offered a better alternative to prevent this type of duping. I posted it in this thread hoping someone would have something or come up with something because this is beyond my ability to fix. But so far its basically the easiest, nastiest dupe method I've seen, just doubling your coins every 5 seconds, max money in no time for really any number of players doing it. Link to comment Share on other sites More sharing options...
Shawn Posted May 14, 2016 Author Report Share Posted May 14, 2016 I'll have a look to see what can be done. Link to comment Share on other sites More sharing options...
Shawn Posted May 14, 2016 Author Report Share Posted May 14, 2016 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 :) Seelanpro and DangerRuss 2 Link to comment Share on other sites More sharing options...
DangerRuss Posted May 15, 2016 Report Share Posted May 15, 2016 thanks I'll toss this on the test server! I dont even know how they're doing this dupe to see if this works lol but thank you! Link to comment Share on other sites More sharing options...
creativv Posted May 16, 2016 Report Share Posted May 16, 2016 (edited) .... Edited May 16, 2016 by creativv deleted for personal reasons :) Link to comment Share on other sites More sharing options...
Shawn Posted May 17, 2016 Author Report Share Posted May 17, 2016 Thanks for the input! I'll edit my comment when I get home. Link to comment Share on other sites More sharing options...
creativv Posted May 17, 2016 Report Share Posted May 17, 2016 Allrighty then , you talk about cleaner code you forgot to remove your old code wich is not being used anymore ... " if (_InTrd == 1) exitWith { cutText ["Other Player is busy, please wait.", "PLAIN DOWN"]; }; " Other then that we never have anyone griefing players with banks on a full 50 slot server so..... It works just fine but your way works nice to mate :) Link to comment Share on other sites More sharing options...
syco Posted October 5, 2016 Report Share Posted October 5, 2016 On 4/17/2016 at 9:05 AM, Shawn said: 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"]; }; This is my old code and the fix should not be here... Causes a big bug and the player has to relog to remove it and the real fix is done like this.... FIRST remove that code from the player_packVault.sqf Go to your fn_selfActions.sqf and find .. if (s_player_packvault < 0 && (_ownerID == dayz_combination || _ownerID == dayz_playerUID)) then { s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "\z\addons\dayz_code\actions\vault_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; CHANGE TO if (s_player_packvault < 0 && (_ownerID == dayz_combination || _ownerID == dayz_playerUID)) then { s_player_packvault = player addAction [format["<t color='#ff0000'>%1</t>",(format[localize "STR_EPOCH_ACTIONS_PACK",_text])], "PATH\TO\vault_pack.sqf",_cursorTarget, 0, false, true, "",""]; }; NOTE the "PATH\TO\vault_pack.sqf" change to your path to vault_pack.sqf Make a new file called vault_pack.sqf place it where ever your path was set above Place this code inside it private ["_obj","_countplayers"]; _countplayers = count nearestObjects [player, ["CAManBase"], 15]; if (_countplayers > 1) exitWith{systemchat "You cant dismantle your safe if a player or a zombie is within 15 meters.";}; _obj = _this select 3; _obj spawn player_packVault PROBLEM SOLVED Link to comment Share on other sites More sharing options...
syco Posted October 5, 2016 Report Share Posted October 5, 2016 On 4/17/2016 at 9:05 AM, Shawn said: ******************************************* 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. Should not use player setDamage 5; Use this instead.. [player,'sick'] spawn player_death; player setHit['Body',1]; Link to comment Share on other sites More sharing options...
syco Posted October 5, 2016 Report Share Posted October 5, 2016 Here's one for you.. Fixes several players using advanced trader to sell stuff from the same vehicle at the same time... How it works.. Player A and Player B have a vehicle with x50 briefcases. Player A gets in driver seat of vehicle then jumps out and goes to the trader clicks sell from vehicle. Puts all 50 briefs in the sell box to the right and WAITS now.. Player B gets in driver seat of the same vehicle then jumps out and goes to the trader click sell from vehicle. Puts all 50 briefs in the sell box to the right and WAITS now.. Now both players have 50 briefs from the same vehicle ready to sell because the check for if you was the last in the driver seat is done when you click sell from vehicle in advanced trader.. Now they both count down 3,2,1 and click sell at the same time.. Both of them will get the money for said items. BIG PROBLEM and this can be done with unlimited players.. To fix this do the following.... Open up z_at_getVehicleItems.sqf FIND _vehicle = objNull; ADD BELOW IT truevic = false; FIND _vehicle = _x; ADD BELOW IT truevic = true; FIND [_normalWeaps,_normalMags, typeOf _vehicle] call Z_checkArrayInConfig; ADD BELOW IT truevic = true; FIND _ctrltext = format["Get in driver seat first!"]; ADD ABOVE IT truevic = false; Now open up z_at_sellItems.sqf FIND _tempArray = Z_SellArray; ADD BELOW IT truevic = true; FIND if(Z_SellingFrom == 1)then{ _outcome = [Z_vehicle,_itemsArray,_weaponsArray,_bpArray] call ZUPA_fnc_removeWeaponsAndMagazinesCargo; }; REPLACE WITH if(Z_SellingFrom == 1)then{ call Z_getVehicleItems; _outcome = [Z_vehicle,_itemsArray,_weaponsArray,_bpArray] call ZUPA_fnc_removeWeaponsAndMagazinesCargo; }; FIND if (Z_SingleCurrency) then { _success = [player,_money] call SC_fnc_addCoins; systemChat format["Trade successfull, received %1 %2", _money , CurrencyName]; } else { _success = [_money, 0] call Z_returnChange; systemChat format["Trade successfull."]; }; REPLACE WITH if (Z_SingleCurrency && truevic) then { _success = [player,_money] call SC_fnc_addCoins; systemChat format["Trade successfull, received %1 %2", _money , CurrencyName]; } else { systemChat "Someone got in your vehicle. You must Get in the driver seat again!"; }; NOTE: This fix only works IF you are using Single currency coins ONLY as the } else { statement would give gold bars or briefs for sold items if Z_SingleCurrency is not found or set to false.. Also need these setting set in your config.sqf inside the advancedTrading folder. Z_SingleCurrency = true; Z_AllowTakingMoneyFromBackpack = false; Z_AllowTakingMoneyFromVehicle = false; If need be I could alter this so it also works with briefs/goldbars.. Let me know if you guys want it done.. PROBLEM SOLVED.. NOW it also checks again when the SELL button is clicked and only the last person in the vehicle will get the money and everyone else will get the message "Someone got in your vehicle. You must Get in the driver seat again!" Link to comment Share on other sites More sharing options...
syco Posted October 5, 2016 Report Share Posted October 5, 2016 Another quick one is... using advanced trader while someone has a give money trade dialog open with you.. This one goes right with and requires Gr8's fix for giving money to another player at the same time. Player A has advanced trader open and has something ready to buy. Player B has a trade money dialog open on player A and when player A clicks BUY, player B gives him money at the same time. The actions are done at the same time so the money is never taken from player A and he gets the item also. To fix this just open up init.sqf inside your advancedTrading folder... FIND createDialog "AdvancedTrading"; ADD ABOVE IT player setVariable["tradingmoney",true,true]; Now open up your advancedTrading.hpp FIND class ZSC_RscButtonMenu_AT28: AT_Zupa_BlueButton { idc = -1; x = 0.63 * safezoneW + safezoneX; y = 0.77 * safezoneH + safezoneY; w = 0.13 * safezoneW; onButtonClick = "((ctrlParent (_this select 0)) closeDisplay 9000);"; colorBackground[] = {1,1,1,1}; color[] = {0,0,0,1}; text = "Close"; }; REPLACE WITH class ZSC_RscButtonMenu_AT28: AT_Zupa_BlueButton { idc = -1; x = 0.63 * safezoneW + safezoneX; y = 0.77 * safezoneH + safezoneY; w = 0.13 * safezoneW; onButtonClick = "((ctrlParent (_this select 0)) closeDisplay 9000);player setVariable [""tradingmoney"",false,true];"; colorBackground[] = {1,1,1,1}; color[] = {0,0,0,1}; text = "Close"; }; Also just to be safe.. if the player does not use the close button in advanced trader to close it and uses ESC like 99% of them do out of habit.. OPEN dayz_spaceInterrupt.sqf FIND // esc if (_dikCode == 0x01) then { DZE_cancelBuilding = true; call dayz_EjectPlayer; }; REPLACE WITH if (_dikCode == 0x01) then { DZE_cancelBuilding = true; call dayz_EjectPlayer; if (player getVariable ["tradingmoney", true]) then { player setVariable ["tradingmoney",false,true]; }; }; PROBLEM solved... Link to comment Share on other sites More sharing options...
sGfU_tv Posted October 5, 2016 Report Share Posted October 5, 2016 2 hours ago, syco said: createDialog "AdvancedTrading"; Thanks for releasing this SyCo! Link to comment Share on other sites More sharing options...
WagnerMello Posted October 23, 2016 Report Share Posted October 23, 2016 hello friends a player has shown me that the money to double if it's that amount to his friend and when it disappear pressing ALT F4 and return the money'll be right back with him and his friend. Probably not giving time to the database update Anyone know how to solve? Link to comment Share on other sites More sharing options...
sercanatici Posted November 15, 2016 Report Share Posted November 15, 2016 I have seen people duplicate on the same way on vehicles any fix for that? its the same principle as the give to player. Are anyone able to block other people to go into the same coin storage? Link to comment Share on other sites More sharing options...
juandayz Posted November 15, 2016 Report Share Posted November 15, 2016 try something like this in your fn_selfactions.. this use a check for nearest player to not allow the storage.... if(_typeOfCursorTarget in ZSC_MoneyStorage && (player distance _cursorTarget < 5)) then { _playernearby = count nearestentities [player, ["CaManBase"], 15]; if ((_playernearby) > 1) exitWith { cutText [format["Players around Dupe prevention"], "PLAIN DOWN"]; }else{ if (s_bank_dialog < 0) then { s_bank_dialog = player addAction ["Money Storage", "ZSC\actions\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""]; }; }; } else { player removeAction s_bank_dialog; s_bank_dialog = -1; }; Liquid84 1 Link to comment Share on other sites More sharing options...
Liquid84 Posted November 23, 2016 Report Share Posted November 23, 2016 On 11/15/2016 at 8:44 AM, juandayz said: try something like this in your fn_selfactions.. this use a check for nearest player to not allow the storage.... if(_typeOfCursorTarget in ZSC_MoneyStorage && (player distance _cursorTarget < 5)) then { _playernearby = count nearestentities [player, ["CaManBase"], 15]; if ((_playernearby) > 1) exitWith { cutText [format["Players around Dupe prevention"], "PLAIN DOWN"]; }else{ if (s_bank_dialog < 0) then { s_bank_dialog = player addAction ["Money Storage", "ZSC\actions\bank_dialog.sqf",_cursorTarget, 3, true, true, "", ""]; }; }; } else { player removeAction s_bank_dialog; s_bank_dialog = -1; }; Thank you for all your support! You've been a huge help on your posts. juandayz 1 Link to comment Share on other sites More sharing options...
Recommended Posts
Please sign in to comment
You will be able to leave a comment after signing in
Sign In Now