Jump to content
iben

[RE-RELEASE, v1.2] 'fn_SC_uniCoins' dev function for Single Currency (rewritten and updated for Epoch 1.0.6.1+)

Recommended Posts

Hello guys,

because I was couple times asked for updated and unified dev function for single currency (originally posted in ZSC thread),
I've decided release it here so you can have all info in one place.
So here it is with specific example (with detailed comments) you can try for fun...

===

First thing first - let's start with giving credits for these great guys:

===

This function was reworked and updated for Epoch 1.0.6.1+

===

Changelog:

  • [2017-05-08], v1.0 | Initial release, published at Epoch forum
  • [2017-05-28], v1.1 | Added: debug (parameters check, exec time to analyze code performace in game)
  • [2017-05-31], v1.2 | Improved: removed unnecessary checks during player sync

===

Read "Goodbye". Wish you the best guys!

===

How it looks like:

Check source code (Github)

===

FEATURES:

  • Function is able to manage money processing with single line code (see bellow) and can be easily integrated into your code
  • You can use debug option to check your fnc parameters + exec time (code performance) showed on screen (global chat):
    just uncoment line: '#define: __ DEBUG__' is src code;
  • It's pretty fast but remember: use it only if you're developing some addon or you know exactly what to do.
    Otherwise, you can stil use common methods used by addons authors - mostly it's even faster their way, because of scoped approach;
  • It's a function - you can easily maintain your "money" code...

===

How to install:

It's actually very easy: practical example is the best way to explain, what needs to be done - see repo structure and files.

Source files are available at Github repo (specific usage example included!). You can download them from here.

===

How to use it:

= General usage:

// [_player,_amount,_action,_target] call fnc_SC_uniCoins;
// '_player' : object : player, _killer...etc
// '_amount' : number : 1000
// '_action' : string : 'add'   / 'remove'
// '_target' : string : 'cache' / 'bank'
// ==========================================================
// @example 01: Remove 5.000 Coins from player's wallet:
[player,5000,'remove','cache'] call fnc_SC_uniCoins;

// @example 02: Add 1.000 Coins to player's wallet:
[player,1000,'add','cache'] call fnc_SC_uniCoins;

// @example 03: Remove 7.000 Coins from player's bank account:
[player,7000,'remove','bank'] call fnc_SC_uniCoins;

// @example 04: Add 15.000 Coins to player's bank account:
[player,15000,'add','bank'] call fnc_SC_uniCoins;

===

...easy enough, isn't it?

===

Specific usage (with detailed description):

// === Scenario:

// Award player for killing local zombies.
// If player kills zombie, he will receive random amount of money from 0 to 250 Coins for kill.
// Let's make it interesting - player receive money only in case he used the gun defined by you:

// === What to do:

// Save file "local_eventKill.sqf" to your custom compiles folder, load it in your custom compiles file
// outside (!isDedicated) and (isServer) - we need this file for both client and server.
// (it's in 'dayz_code' folder: you can download file from:
// https://github.com/EpochModTeam/DayZ-Epoch/blob/master/SQF/dayz_code/compile/local_eventKill.sqf)

// Open your custom variables file (or add bellow code to your init.sqf file) and add:
playerZedKillAward = true; // ... so you can quickly turn ON/OFF your script

// Now, let's create some code in 'local_eventKill.sqf' file:


if (local _zed) then {
private["_killer","_fnc_uniCoinsTest","_allowedWps"];

  // code

  // ...find last line of code:
  _killer setVariable["humanity",_humanity,true];
  // Bellow we define local function "_fnc_killZedsAward" so we can call it easily:

  // ===

  _fnc_killZedsAward = {
    private ["_action","_target","_money","_curWep"];

    _action = _this select 0; // @info: we take parameter from call in main code bellow this fnc and assign value to local var
    _target = _this select 1; // @info: we take parameter from call in main code bellow this fnc and assign value to local var
    _money = (round(random 5) * 50); // @info: now from 0 to 250 Coins, define to your liking
    _curWep = getText (configFile >> 'CfgWeapons' >> currentWeapon _killer >> 'displayName'); // @info: What's the name of player current weapon? We need this for info in hint or dayz_rollingMessages

    call {
      // Player has 20% chance to get 0 coins from random (if you will use round(random 5) - meaning staying with 5, scale from 0 to 4)
      // So let's check it first and prevent display msg on screen in such a case
      if (_money == 0) exitWith {
      //@info: You can pick 'dayz_rollingMessages' and comment 'hintSilent' if your hint layer is occupied by your debug monitor
      ["Sorry, our bank is low on money!"] call dayz_rollingMessages;
      hintSilent "Sorry, our bank is low on money!";
      };
      // If random money are above zero, let's call dev fnc_SC_uniCoins.
      // First parameter '_killer' is defined by original code; _money param was defined above,
      // _action and _target parameters we defined in main code bellow...
      if ([_killer,_money,_action,_target] call fnc_SC_uniCoins) exitWith {
      //@info: You can pick 'dayz_rollingMessages' and comment 'hintSilent' if your hint layer is occupied by your debug monitor
        hintSilent format ["Zed kill award!\nweapon: [%1]\nReceived: [%2 %3]",_curWep,_money,CurrencyName];
        [format["Zed kill award! Weapon: [%1] Received: [%2 %3]",_curWep,_money,CurrencyName]] call dayz_rollingMessages;
      };
      // Do not put any default code for call here - if you do, you will trigger code action in cases,
      // like zombie is killed close to you by some accident (from experience)
    };
  };

// Now let's create main procedure:
  if (playerZedKillAward) then {
  // @info: define your custom array of weapons here:
    _allowedWps = [ 
      'M110_NVG_EP1',
      'M9_SD_DZ','DMR_DZ',
      'M9_DZ'
    ];
    if ((currentWeapon _killer) in _allowedWps) exitWith {
       // @info: if player used allowed weapon, tell '_fnc_killZedsAward', what to do with money.
       // You can be creative here :))
      ["add","cache"] call _fnc_killZedsAward;
    };
  };

};

// === Done!

===

...that's all, you can use it wherever money are... Have Fun!!
Cheers...

===

Share this post


Link to post
Share on other sites
1 minute ago, juandayz said:

@iben why the hell i need a function....to add coins?.hahah @DAmNRelentless @Anhor lets finish here that we start in dblood mod.. hsha joke. Nice iben. And the examples are separates mods lol.

:tongue: Thx buddy... as I said in your thread... let's keep the mod (Epoch) alive and thx to all lifekeepers... you deserves a huge THX for you dedication to mod... thx

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By JakeQue
      Hi, me again.
       
      For some reason when i spawn in and collect coins or loadout the next time i disconnect and come back it puts me back into spawn and money is all disappeared. 

      There's no hive errors.
      The only error in the Server RPT is :
      And I have 2 errors in my client RPT. Looks like they relate to zsc but I have reinstalled it from scratch and still the same.
      and 
       
      Sorry to be such a noob with this one!!
    • By Mattiman338
      Hi all, doing up a server for myself and a few friends but am having one issue which I am clueless as to why it is happening. It doesn't really affect game play but does make it difficult navigating through certain tasks.
      The issue arises with ZSC and Virtual Garage dialogs only as far as I have tested. Certain buttons within dialogs do not show, such as the deposit and withdraw buttons for the bankers and the store vehicle button in the Virtual Garage dialog.
      I am running InfiSTAR admin tools and antihack and as far as I know, that could be the culprit with these problems but I have checked the servers .RPT and checked for errors with ZSC and the Virtual Garage with nothing coming up.
      There are InfiSTAR logs showing though and one refers to a dialog. 
       
      In-game screens
      And my .RPT from the last restart to when I tested the dialogs to gather screenshots
       
       
      All help is appreciated as I can't find anything to do with infiSTAR in the script installs.
      Thanks all!
    • By MessiGamer
      Alright!
      i tried to instal this five times. clean installation without other scripts. I see this work without battleye, but with it I get three restrictions. I tried to fix this with bfe.marma.io because I'm noob. but I get another constraint that I can not fix.
      this log are pure clean install without my modifications: i have edited for not showing my useless data.     .  
      RPT.log 
      script.log
      server.log
      script.txt
      //new2 5 addAction !raddAction !"\"addAction\", " !", \"\\z\\addons\\dayz_code\\" !"],DZE_build_vector_file,[vectorActionState," 5 addBackpack !"addBackpackCargoGlobal [_x,(_objWpnQty select _counter)];\n_counter = _counter + 1;\n} count _objWpnTypes;" !"addBackpack _item;\n};\n};\nformat[localize \"str_c" !"case 3: {_holder addBackpackCargoGlobal [_item,_amount];};\n};\n\n\n" !"}) then {\n_newUnit addBackpack _newBackpackType;\n\nd" !"(_this select 0)) then\n{\n(_this select 0) addBackpack (_x select 1);\n};\n};" !"(_this select 0) addBackpackCargoGlobal [_x select 1, 1];\n};\n};\n} cou" !"addBackpack _backpackType; \ndayz_myBackpack = unitBackpack player;\n\n\n\n_backpackWpnT" !"};\n} count _wpns;\n\nif (_bcpk != \"\") then {\nplayer addBackpack" !"1 == \"trade_backpacks\") then {\nDZE_myVehicle addBackpack" !"7 addBackpackCargoGlobal [_create,_qty];\n};\nif (surfaceIsWater" !"case 5: {_item addBackpackCargoGlobal [_itemOut,_countOut]};\n};\n} else" 5 addMagazine !raddMagazine !"\"addMagazine\", " !"if (isClass (configfile >> \"cfgmagazines\" >> (_item))) then {_unit addMagazine _item;};\n};\n};\n};\n};" !"_vehicle addMagazineTurret [_ammo,_turret];\nplayer removeMagazine" !"if (dayz_actionInProgress) exitWith {" !"addMagazine _x;\n};\n} foreach _items;\nformat[loc" !"addMagazine 'Hatchet_Swing'" !"addMagazine \"ItemAntibiotic\" + str(_remain" !"sumeDrop\") == 0) then\n{\nplayer addMagazine" !"ion) do {\ncase \"CfgWeapons\":\n{\nplayer addWeapon _item;\n};\ncase \"CfgMagazines\":\n{\nplayer addMagazine" !"addMagazine [\"12Rnd_Quiver_Wood\",_qty_quiv" !" >> \"containerEmpty\")" !"plant) select 1;\n{\n_item addMagazine" !"addMagazineCargoGlobal [_itemtodrop,1];\n\nformat[localize \"str_f" !"addMagazine _attachment;\n\n\n(findDisplay 10" !"addMagazine getText (configFile >> \"CfgMagazines\" >> _x >> _water" !"};\n};\n\n\nswitch _type do {\ncase 1: {_holder addMagazine" !"do {\n_animalbody addMagazine _rawfoodtype" !"addMagazine _item;\n};\n};\n_idc = _idc" !"_newUnit addMagazine [_x select 0,_x select 1]" !"addMagazine _x } count MeleeMagazines;\n} e" !"_meleeNum < 1) then {\nplayer addMagazine" !"addMagazine _qtyRemaining;\n};\n};\ntrue" !"bag\";\n};\n};\n(_this select 0) addMagazine" !"addMagazineCargoGlobal [_item, 1];\nif (surfaceIsWater (_this s" !"addMagazine \"wholeBloodBagBNEG\";\n};\n};" !"_qty > 0) then {\n_firePlace addMagazine" !"ONEG\" }; \n};\ndayz_myBackpack addMagazine" !"addMagazine _x;\n_countmags = _countmags +1;\n};\n} count _gmag" !"E\"];\n_lootpile addMagazineCargoGlobal [\"TrapBear\", 1]" !"With\n{\nplayer addMagazine (_this select 1" !"lder addMagazineCargoGlobal [_x,(_objWpnQty select _counter)];\n_counter = _counter + 1;\n};\n} co" !"soldItem\"];\n{\n_object addMagazine" !"systemChat localize \"STR_EPOCH_TRADE_" !"if (_silver_1oz > 0) then {\nif (_silver_1oz == 1) then {\nplayer addMagazine" 5 addWeapon !raddWeapon !"\"addWeapon\", " !"if (isClass (configfile >> \"cfgweapons\" >> (_item))) then {_unit addWeapon _item;}\nelse" !",0]] call dayz_NutritionSystem;\n" !"Remove) == 1}) then {\nplayer addWeapon _create;" !"Display 0;\n\n\nif (_weaponInUse) then\n{\n_muz" !"failChance) then {\nswitch (_selection) do {\ncase \"CfgWeapons\":\n{\nplayer addWeapon" !"addWeapon _fixedItem;\nformat[localize \"str_f" !"_wepcounts = (getWeaponCargo _plant) select 1;\n{\n_item addWeapon" !"addWeapon _repair;\n} else {\n\n[_repair" !"player addWeapon dayz_onBack\n] select 0;\n};\n\n" !"player addWeapon _addWeapon;\n\nif (vehicle player != player) then {\n_display = find" !"};\n};\n\n\nswitch _type do {\ncase 1: {_holder addMagazineCargoGlobal [_item,_amount];};\ncase 2: {_holder addWeapon" !"l fn_chance) then {\nplayer removeWeapon _x;\nplayer addWeapon _rem" !"else {\n_body addWeapon dayz_onBack;\n};\n};\n\n\n_infect" !"\" >> _x)) then {\nplayer addWeapon _x;\n};\n} count _wpns;\n};" !"lder addWeaponCargoGlobal [_x,(_objWpnQty select _counter)];\n_counter = _counter + 1;\n} co" !"WpnQtys = [];\nif (count _backpackWpn > 0) then {\n_backpackWpnTypes = _backpackWpn sel" !"addWeapon (\"Item\"+str(_remain)+\"Matchbox" !"{\nswitch (_x select 0) do\n{\ncase 2:\n{\n(_this select 0) addWeapon" !"E\"];\n_vehicle addWeaponCargoGlobal [_lootInfo select 1, 1" !"addWeaponCargoGlobal [_bcpkWpn, 1];\n};\n};\n};\n};" !"s;\n};\n\n\nplayer addWeapon \"Loot" !"With\n{\nplayer addWeapon (_this select 1" !"\") then {\n_newUnit addWeapon _secweapon;\n};\n\n" !"soldItem\"];\n{\n_object addWeapon" !"then {\nsystemChat format[localize \"STR_EPOCH_" !"DuplicateTool;\n} else {\nplayer addWeapon" 5 allDead !"} count allDead;\n\n\nif (dayz_oldBodyCount > _bodyCount) then {" 5 allGroups !"publicVariableServer \"PVDZ_Server_UpdateGroup\";\n};\n} count allGroups;" 5 allMissionObjects !"[_x,2,0,false,false] spawn BIS_Effects_Burn;\n};\n} count allMissionObjects \"SpawnableWreck\";" 5 allowDammage 5 allUnits !"} count allUnits;\nlbSort _playerList;" !"if (getPlayerUID _x == _this) exitWith {\n_player = _x;\n};\n} count allUnits;" !"owner _x publicVariableClient \"PVDZ_groupInvite\";\n};\n} count allUnits;" 5 attachTo !"(_variation * 2)) - _variation)];\n_bolt attachTo [_hitObject,_val,_hitMemoryPt];" !"player playActionNow \"PutDown\";\nuiSleep 2;\n_flare attachTo [player,[0,0,0],\"granat2\"];" !"tchmove \"ainjpfalmstpsnonwrfldnon_carried_still\";\n_dragee attachto [_unit,[-0.2, 0.2, 0]];" !"_source setDropInterval 0.02;\n_point attachTo [_unit,_modelPos,_wound];" !" attachto [_v,[0,0,0],\"destructionEffect" !"publicVariable \"PVDZ_drg_RaDrag\";\n\n_dragee attachto [_unit,[0.1, 1.01, 0]];" !="_l1 attachTo [_lh,[0,0,0],\"light\"];" !"_objectHelper attachTo [player,_offset];" !"_object attachTo [player,_offset];\n\n_position = getPosATL _object;" !="_vehicle attachTo [_liftHeli,[0,0,-7]];" !="_obj attachTo [_axis];" !"_objectSnapGizmo attachTo [_object,[_x select 0,_x select 1,_x select 2]];" !="_vehicle attachTo [_towTruck,[1.3,-2,2.3]];" !"localize \"STR_EPOCH_ACTIONS_ATTACHTOHELI\"," 5 buttonSetAction 5 callExtension 5 camCreate !"camCreate (player modeltoWorld [0,0,2]);\n0.2 fadeSound 0.1;\nDayz_" !"_body;\n_playerID = getPlayerUID player;\n\n\n_camera = \"camera\" camCreate _death" !="_camera = \"camera\" camCreate [12222.323, 3415.7791, -0.059190542]" 5 cameraEffect !"0.2 fadeSound 0.1;\nDayz_BuildCamera cameraeffect [\"External\", \"TOP\"];" !"cameraEffect [\"Internal\",\"TOP\"];\n_camera camSetTarget _deathPos;\n_camera camSetPos [_deathPos select" !"r_Simulation\";\n\n_camera cameraEffect [\"Terminate" !"cameraEffect [\"internal\",\"back\"]\n\n_camera camPrepareTarget [6433.5" 5 closeDisplay !"'closeDisplay'" !"closeDisplay 0" !"closeDisplay 2" !"if (!isNil \"closeDisplay\") then {" 1 compile !"ca\\communityconfiguration" !"ca\\Data\\" !"ca\\missions" !"ca\\modules" !"ca\\ui\\" !"ca\\Warfare2\\" !"scriptName \"Functions\\systems\\fn_inv" !"scriptName \"MP\\data\\script" !"code = compile preprocessFileLineNumbers (BIS_PathMPscriptCommands" !"t = missionConfigFile >> \"onMinimapScript" !="_this call (call compile GetText (configFile >> \"CfgAmmo\" >> _amm >> \"muzzleEffect\"));" !"z\\addons\\dayz_code\\" !"_menu ctrlSetEventHandler [\"ButtonClick\",_compile];\n};\n_pos set [3" !"{ _x set [1, compile (_x select 1)]; }" !"silver_1oz_b);\n\n{ \nif (!isNil {call compile" !"Var = compile format[\"epoch_death_board_record_" 5 createAgent !="_agent = createAgent [_type, _position, [], _radius, \"CAN_COLLIDE\"];" !="_agent = if (_type == \"Pastor\") then {createAgent [_type, _Pos, [], 0, \"NONE\"]} else {createAgent [_type, _Pos, [], 0, \"FORM\"]};" !="_dog = createAgent [_type, _Pos, [], 0, \"NONE\"];" 5 createDialog !="_region = createDialog \"RscDisplaySpawnSelecter\";" !="_gender = createDialog 'RscDisplayGenderSelect';" !="_dialog = createDialog \"bloodTest\";" !="createDialog 'RscDisplayCraftingMenu';" !="createDialog \"DAYZ_PADLOCK\";" !"createDialog 'horde_journal_" !"Z_ResetContainer = true;\ncreateDialog \"AdvancedTrading\";" !"createDialog \"DoorManagement\";\ncall DoorNearbyHumans;" !="createDialog \"ComboLockUI\";" !"createdialog \"PlotManagement\";\ncall PlotNearbyHumans;" !"_trader_data = (_this select 3);\n\n_dialog = createdialog \"TraderDialog\";" !"_ok = createdialog \"KeypadUI\";" !"EpochDeathBoardLoad = {\ncreatedialog \"EpochDeathBoardDialog\";" !="if(DZE_doorManagement) then {createdialog \"DoorAccess\";} else {createdialog \"ComboLockUI\";};" !"\ndisableSerialization;\ncreateDialog \"DZ_GroupDialog\";"!"createDialog \"atmDialog\";"!="createDialog \"BankDialog\";" !="createDialog \"GivePlayerDialog\";" 5 createDisplay 5 createMarker !"\"createMarkerLocal\"," !"rcreateMarkerLocal" !"if (isnil 'BIS_GITA_fnc_createMarkers' || false) then {" !"_marker = createMarkerLocal [format[\"groupMember" 5 createUnit !="_newUnit = _group createUnit [_class,respawn_west_original,[],0,\"NONE\"];" !="BIS_MPF_logic = BIS_MPF_dummygroup createUnit [\"Logic\", [1000,10,0], [], 0, \"NONE\"];" 5 createVehicleLocal !="_object = (_x select 1) createVehicleLocal [0,0,0];" !="_plant = _x createVehicleLocal (getMarkerPos \"center\");" !="_point = \"Logic\" createVehicleLocal getPosATL _unit;" !"_object = _type createVehicleLocal [0,0,0];" !="_obj = _class createVehicleLocal (getMarkerpos \"respawn_west\");" !" = \"#lightpoint\" createVehicleLocal " !" = \"#particlesource\" createVehicleLocal " !="_object = _ghost createVehicleLocal getMarkerpos \"respawn_west\";" !="_cursorTarget = _upgrade createVehicleLocal getMarkerpos \"respawn_west\";" !="_para = \"ParachuteWest\" createVehicleLocal [0,0,0];" !="_sign = \"Sign_arrow_down_large_EP1\" createVehicleLocal [0,0,0];" !"_obj = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !="_objectSnapGizmo = \"Sign_sphere10cm_EP1\" createVehicleLocal [0,0,0];" !"_object2 = _ghost2 createVehicleLocal [0,0,0];\nhideObject _object;" 5 ctrlAddEventHandler 5 ctrlSetPosition !="_control ctrlSetPosition [_posX, _posY];" !"3,_h]};\n_control ctrlsetposition _pos;" !="_control ctrlSetPosition [0, (_y + _deltaY)];" !="_disp_ctrl ctrlSetPosition [_posX, _posY];" !="_control ctrlSetPosition _grpPos;" !="_group ctrlSetPosition _pos;" !="_control ctrlSetPosition [_controlPos select 0, _controlPos select 1, _controlPos select 2, 0.03921 * _lines];" !="((uiNamespace getVariable 'DAYZ_GUI_waiting') displayCtrl 1400) ctrlSetPosition _sandLevel;" !="_delayControl ctrlSetPosition [0, _pos];" !="_icon ctrlSetPosition [(_screen select 0),(_screen select 1),.99,.65];" 5 cutText !"_layer cuttext [\"\",\"plain\"];\n};\nmissionnamespace" !"\n\n\n3100 cuttext [\"\",\"plain\"];" !"} else {\n16 cutText [\"\",\"PLAIN\"];" !"exitWith {\n1 cutText [localize \"" !"progress_monitor.sqf\";\n0 cutText ['','BLACK',0]" !="8 cutText [\"\",\"PLAIN\"];" 5 deleteMarker !"} count allDead;\n\n\nif (dayz_oldBodyCount > _bodyCount) then {" 5 displayAddEventHandler !"bis_fnc_halo_keydown_eh = (finddisplay 46) displayaddeventhandler [\"keydown\",\"_this call bis_fnc_halo_keydown;\"];" 5 displaySetEventHandler 5 enableEnvironment 5 endMission !rendMission !"clearWeaponCargo\",\n\"endMission\"," !"enablesimulation\", \"endMission\"," !"lize \"str_player_login_timeout\", \"PLAIN DOWN\"];\nuiSleep 5;\nendMission" !"\npublicVariableServer \"PVDZ_sec_atp\";\nendMission \"LOSER\";\n};\n" !"Terminate\",\"BACK\"];\ncamDestroy _camera;\n\nendMission" !"endMission \"END1\";\n\n\ndayz_authed = true" 1 execVM !rexecVM !"\"execVM\", " !="[] execVM \"initJIPcompatible.sqf\";" !="_script = [] execVM (BIS_MP_Path + BIS_PATH_SQF + \"JIPWaitFor.sqf\");" !"execVM \"\\ca\\Data\\" !"execVM '\\ca\\Data\\" !"execVM \"\\ca\\missions" !"execVM 'ca\\modules\\" !"execVM \"ca\\modules\\" !"'\\ca\\ui\\" !"\"\\ca\\ui\\" !"scriptName \"MP\\data\\script" !"_handle\"];\n_handle = [_display] execVM _script;\n}" !"execVM '\\z\\addons\\dayz_code\\" !"execVM 'z\\addons\\dayz_code\\" !"execVM \"z\\addons\\dayz_code\\" !"execVM \"\\z\\addons\\dayz_code\\" !"execVM (\"\\z\\addons\\dayz_code\\" !="dayz_rulesHandle = execVM \"rules.sqf\";" !"execvm '\\ASC\\" !"\\usec_ch53\\scripts\\" !"execVM (_actionDir + \"warn.sqf" 5 failMission !rfailMission !"failMission\",\n\"titleCut\"," !"fadeSound\", \"failMission\"," !"if (_debug == 1) then {\ndiag_log (\"End Mission\");\n};\n\nfailMission" 5 forceEnd 5 groupIcon 5 HelicopterExplo !"(isNull _who) then {\nif (_ammo != \"\" && _ammo isKindOf \"HelicopterExplo" !"_v = thisTrigger getVariable [\"obj\", objNull];\n" !"_v = thisTrigger getVariable [\"\"obj\"\", objNull];\n" !"\n\n\nremoveallweapons _v;\n\nif (local _v) then {_expl=\"HelicopterExplo" 5 hideObject !rhideObject !"\"hideObject\"" !"(_x select 0) nearestObject (_x select 1);\n_object hideObject" !"_object2 = _ghost2 createVehicleLocal [0,0,0];\nhideObject _object;" 5 hint !", \"_postFix\"" !rhint !rtaskHint !"\"hint\", " !"\"hintC\", " !"\"taskHint\"," !"_controlHintButton ctrlSettext \"Objectives\";" !"hint (localize \"strwf" !"'BIS_fnc_hints'" !sched_planthint !"call ui_initDisplay;\nhintSilent \"\"" !"hintSilent localize \"str_player_low" 5 lbCurSel !"_selectedUserIndex = lbCurSel _lbUsersControl;" !="profileNamespace setVariable ['statusUI',(lbCurSel (_this select 0))];" !="profileNamespace setVariable ['streamerMode',(lbCurSel (_this select 0))];" !"_index = lbCurSel _lbcontrol;\n_selectedItem" !"_selected = lbCurSel _list;\n_classname = _list lnbData [_selected, 2];" !="_friendName = _userList lbText (lbCurSel _userList);" !")] call Z_" !"(lbCurSel 7421) call Z_fillCategoryList" !"] call Door" !"] call Plot" !"[(lbCurSel 12001)] " !="[(lbCurSel 21000), ((ctrlParent (_this select 0)) displayCtrl 21001)] spawn EpochDeathBoardClick;" !"((ctrlParent (_this select 0)) closeDisplay 2);" !="_uid = _playerList lbData (lbCurSel _playerList);" !"_myGroup lbData (lbCurSel _myGroup);" 5 lbSet !"_lbUsersControl lbSetColor [_x, [1,0,0,1]];" !"\n_control lbSetColor [_x, _color];\n};" !"_weaponsLBSetFocus" !="(_this select 0) displayCtrl _idc lbSetCurSel (profileNamespace getVariable [_var,_default]);" !="(_display displayCtrl 105) lbSetColor [_i, [0.06, 0.05, 0.03, 1]];" !" [7421," !"lbSetPicture [7422, _index" !"lbSetPicture [7402, _index" !"lbSetPicture [7401, _index" !="_userList lbSetData [(lbSize _userList) -1,_friendUID];" !" [TraderDialogItemList, _index, " !"_myGroup lbSetData [_index,getPlayerUID _x];" 5 loadFile 5 menu !",\"MenuSelected\",\"Draw\",\"VideoStop" !"_menu = _parent displayCtrl (1600 + _i);\n_menu ctrlShow " !="createDialog 'RscDisplayCraftingMenu';" !"BIS_fnc_commsMenu" !"BIS_fnc_kbMenu" !"call gear_ui_offMenu;" !"dayz_inflame_showMenu" !"\"showCommandingMenu\", " !"rshowCommandingMenu" !"menu_" !"use action menu to " !"\"_menu\",\"_menu1\"" !"PVDZE_plr_TradeMenu" !"fn_gearMenuChecks" !"fn_pauseMenuChecks" 5 onMapSingleClick 5 player_humanityMorph !"fn_surfaceNoise.sqf\";\nplayer_humanityMorph = compile preprocessFileLineNumbers \"\\z" !"addMagazine _itemNew;\n_morphHandle = [dayz_playerUID,dayz_characterID,_model] spawn player_humanityMorph;\n}" !"<= -2000) then {\nif (_isMen || _isMenH) then {\n[dayz_playerUID,dayz_characterID,\"Bandit1_DZ\"] spawn player_humanityMorph" !"#line 1 \"z\\addons\\dayz_code\\compile\\player_humanityMorph.sqf" 5 playableUnits !"for [{_y=0},{_y < count(playableUnits)},{_y=_y+1}] do {" !"typeName player == \"OBJECT\" && {(player in playableUnits" !"AND {((alive _x) AND {((vehicle _x) distance _obj < 150)})}} count playableUnits)}) then {" !="_local = { _unit distance _x < _dis; } count playableUnits <= 1;" !"if (!_isOk) exitWith {false};\nuiSleep 0.001;\n} forEach playableUnits;" !"ManagementMustBeClose) then { player nearEntities [\"CAManBase\", 10] } else { playableUnits };" 5 positionCameraToWorld 5 removeAllEventHandlers !"_WarnFuel = false;\n};\n\n};\n\n_vehicle removeAllEventHandlers \"IncomingMissile" !"leep _wait;} else {sleep (_wait * 4);};\n};\n\n_vehicle removeAllEventHandlers \"Dammaged" !"lse\"];\n{\n(findDisplay 12) displayCtrl 51 ctrlRemoveAllEventHandlers" !"select 1,0] nearestObject (_x select 2);\n_building removeAllEventHandlers" !"\n\n\n\nif (_this isKindOf \"AllVehicles\") then {\n\n_this removeAllEventHandlers" !"With {};\n\n_old = player;\n_old removeAllEventHandlers \"FiredN" !"\npublicVariableServer \"PVDZ_veh_Save\";\n};\n};\n\n\n_unit removeAllEventHandlers" 5 selectPlayer !"addSwitchableUnit dayz_originalPlayer;\nsetPlayable dayz_originalPlayer;\nselectPlayer dayz_originalPlayer;" !"addSwitchableUnit _newUnit;\nsetPlayable _newUnit;\nselectPlayer _newUnit;" 5 serverCommand !="_character = if (serverCommandAvailable \"#kick\") then { call sched_tg_follow } else { player };" !"serverCommand (\"#vote kick \" + _selectedName);" 5 setAperture !"select 1);\n\nif(_NVOn == \"ON\") exitwith\n{\nsetaperture -1" !"+_inc;\n\n_NVOn = (_NV select 0);\n\nif(_NVOn == \"ON\") then {\n\nsetAperture" 5 setCamUseTI 5 setDamage !"if (_entity isKindOf \"Animal\") then {\n_entity setDamage 1;" !"player setDamage 1;\n};\n\nif (dayz_onBack != \"\") then {\nif (dayz_onBack in w" !"if (_ent isKindOf \"Animal\" || _ent isKindOf \"zZombie_base\") then {\n_ent setDamage 1;" 5 setDammage 5 setDate !rsetDate !"\"setDate\", " !"\n\n\nif (!isDedicated) then {\n\"dayzSetDate\" addPublicVariableEventHandler {" !"if (_x != _newdate select _forEachIndex) exitWith {\nsetDate _newdate" !"plr_Login1]; \nPVDZ_send = [player,\"dayzSetDate\",[player]];\npublicVariableServer" !="!isNil \"dayzSetDate\"" !"diag_log ['Date & time received:', dayzSetDate];\nsetDate dayzSetDate;\ndiag" 5 SetEventHandler !"\n_menu ctrlSetEventHandler [\"ButtonClick\",_compile];\n};" !"inGameUISetEventHandler [\"Action\",\"false\"];" 5 setMarkerAlpha 5 setMarkerBrush 5 setMarkerColor !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";" 5 setMarkerDir 5 setMarkerPos !"\"setMarkerPosLocal\"," !"rsetMarkerPosLocal" 5 setMarkerShape 5 setMarkerSize 5 setMarkerText !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";" 5 setMarkerType !",if (_vehicle == _x) then {name _x} else {_vehicle call dayz_getCrew}];\n_marker setMarkerColorLocal \"ColorGreen\";" 5 setPosASL !="_unit setPosAsl [(_position select 0), (_position select 1), (LHA_height+1)];" !="_flame setPosASL [_pos select 0,_pos select 1,(_pos select 2)+0.2];" !="_fire setPosASL _location;" !"_objectHelper setPosASL _position;\n} else {" !"_b0x1337 setPosASL (getPosASL player);\n} else {" !"_obj setPosASL [_center select 0, _a, _b];" !"_objectSnapGizmo setPosASL " !"_para setposasl [\n" !"_thingy setPosASL (ATLToASL _pos);\n} else {" 5 setTerrainGrid !"if (dayz_REsec == 1) then {call compile preprocessFileLineNumbers \"" 5 setUnitRecoilCoefficient 5 setVehicle !"if(_status) then {\n_vehicle setVehicleLock \"LOCKED\";\n} else {\n_vehicle setVehicleLock \"UNLOCKED\";\n};" 5 setViewDistance 5 sideLogic !"publicVariable \"BIS_MPF_logic\";" 5 switchCamera !"\"switchCamera\", " !"rswitchCamera" !="player switchCamera (Dayz_constructionContext select 2);" !"player switchCamera _currentCamera;\nif (_currentWpn !=" 5 systemChat !="systemChat format[localize \"str_missing_to_do_this\", _x];" !"systemChat (localize " !"systemChat format[localize \"STR_EPOCH_" !"systemChat localize \"STR_EPOCH_" !"case \"system\": {systemChat _message;};" 5 title !"titleCut [\"\", \"BLACK " !"\"titleCut\", " !"\"titleText\"" !="rtitleCut = 'titleCut'" !"rtitleCutc" !="rtitleText = 'titleText'" !"rtitleTextc" !"(_missionTextListPath >> \"titles\")" !"(_display displayCtrl _titleIDC) ctrlShow false;" !"titleText [format[localize \"str_return_lobby\", _x" !",\"_titleText\"" !"localize 'STR_UI_GENDER_TITLE';\n_timeNem" !="scriptName \"MP\\data\\scriptCommands\\titleText.sqf\";" !_fillTradeTitle !_bldTxtStringTitle !"localize \"str_halo_altitude_speed" 5 toString !"_animCheck = toString ([(_animStateArray select 0),(_animStateArray select 1)" !="_skinToModel = toString (_finalArray);" !="{_textArrayTemp = _textArrayTemp + [tostring [_x]]} foreach _line;" !="_cmpt = toString _cmpt;" !="_objName = toLower(toString(_objName));" !"if (toString _hayArr != _needle) then {" !="_type = toString _typeA;" !="_anim4 = toString _anim4;" !"{(count _stance>17)}) then {toString [_stance select 17]}" !"BIS_fnc_timeToString" !"02, if (typeName _name == \"ARRAY\") then {toString _name} else {_name}];"!"_input = parseNumber (toString (_input));" 5 worldTo !="_relPos = _building worldToModel _point;" !"if (_isPlayer) then {\n_x = _pos worldToModel _new;" !"_w2m = _x worldToModel (getPosATL player);\n_bb = (boundingbox _x) select 1;" !="_h = _offset + ((_o worldToModel (getPosATL _o)) select 2);" !"_pos set [2,(_pos select 2) + 1.5];\n_screen = worldToScreen _pos;\n_text = composeText [image" //The best use of this file is filtering commonly used scripting commands, because they are always the same when compiled and executed. See: https://community.bistudio.com/wiki/Category:Scripting_Commands_ArmA2 //Filtering strings, variable names and code snippets is less effective because they can easily be changed or obfuscated in a near infinite number of ways //Always test after modifying by executing code on yourself. Ensure you are kicked or logged appropriately. One error in this file can break functionality of all filters and exceptions beyond that point. //Note ! and != currently behave identically in scripts.txt, there is no advantage to using one over the other //Note currently scripts.txt does not support regex, so the only characters that need to be escaped are literal double quotes " and literal backslash \ //Note tabs and spaces used as indents are stripped out automatically and do not need to be included in exceptions //Note code is filtered as it appears when it is executed. Macros in scripts and % in formats will be replaced with their real values. Double quotes ""x"" or ''x'' nested in strings will appear as single quotes. Formatting characters will be stripped from FSMs.  
    • By Thug
      I have an overpoch Sauerland server. The vehicle traders are not spawning when you buy. The SOB takes your money and gives you a key, but no vehicle.  The arrow comes up for about 12 seconds.  After the restart, they are there, all on top of each other.
      NO, I do not have infistar installed.  It brakes the server. No admin tools at all.
      Here are my server and client RPTs. Can someone please take a look for me?
      Client
      Server
      All other traders work.
       
    • By chi
      Can someone tell me if im doing something wrong here? Im trying to spawn a random amount of coins on Zombies when they die.
      This is my zombie_generate.sqf and im calling it from my custom compiles. Sorry, but im on my phone and cant find a spoiler box button.
      #include "\z\addons\dayz_code\loot\Loot.hpp"
      private ["_bypass","_position","_unitTypes","_radius","_method","_agent","_maxlocalspawned","_doLoiter","_wildspawns","_maxControlledZombies",
      "_cantSee","_isOk","_zPos","__FILE__","_fov","_safeDistance","_farDistance","_xasl","_eye","_ed","_deg","_skipFOV","_wildSpawns","_tooClose",
      "_type","_loot","_array","_rnd","_lootType","_index","_weights","_loot_count","_favStance","_lootGroup"];
      _position = _this select 0;
      _doLoiter = _this select 1; // wonder around
      _unitTypes = _this select 2; // class of wanted models
      //_wildspawns = _this select 3;
      _bypass = _this select 3;
      _maxlocalspawned = round(dayz_spawnZombies);
      //Lets check if we need to divide the amount of zeds
      if (r_player_divideinvehicle > 0) then {
          _maxlocalspawned = round(dayz_spawnZombies / r_player_divideinvehicle);
      };
      _maxControlledZombies = round(dayz_maxLocalZombies);
      _cantSee = {
          private "_isOk";
          _isOk = true;
          _zPos = +(_this select 0);
          if (count _zPos < 3) exitWith {
              diag_log format["%1::_cantSee illegal pos %2", __FILE__, _zPos];
              false
          };
          _zPos = ATLtoASL _zPos;
          _fov = _this select 1; // players half field of view
          _safeDistance = _this select 2; // minimum distance. closer is wrong
          _farDistance = _this select 3; // distance further we won't check
          _zPos set [2, (_zPos select 2) + 1.7];
          {
              _xasl = getPosASL _x;
              if (_xasl distance _zPos < _farDistance) then {
                  if (_xasl distance _zPos < _safeDistance) then {
                      _isOk = false;
                  } else {
                      _eye = eyePos _x; // ASL
                      _ed = eyeDirection _x;
                      _ed = (_ed select 0) atan2 (_ed select 1);
                      _deg = [_xasl, _zPos] call BIS_fnc_dirTo;
                      _deg = (_deg - _ed + 720) % 360;
                      if (_deg > 180) then { _deg = _deg - 360; };
                      if ((abs(_deg) < _fov) && {( // in right angle sector?
                              (!(terrainIntersectASL [_zPos, _eye]) // no terrain between?
                              && {(!(lineIntersects [_zPos, _eye]))}) // and no object between?
                          )}) then {
                          _isOk = false;
                      };
                  };
              };
              if (!_isOk) exitWith {false};
          uiSleep 0.001;
          } forEach playableUnits;
          _isOk
      };
      _skipFOV = false;
      if ((_maxlocalspawned < _maxControlledZombies) && (dayz_CurrentNearByZombies < dayz_maxNearByZombies) && (dayz_currentGlobalZombies < dayz_maxGlobalZeds)) then {
          if (_bypass) then {  
              _skipFOV = true;
              _position = [_position,3,20,1] call fn_selectRandomLocation;
          };
          if (surfaceIsWater _position) exitWith { diag_log "Location is in Water Abort"; };
          if ((_skipFOV) or {([_position, 15, 10, 70] call _cantSee)}) then {
              _tooClose = {isPlayer _x} count (_position nearEntities ["CAManBase",30]) > 0;
              if (_tooClose) exitwith { diag_log "Zombie_Generate: was too close to player."; };
              
              if (count _unitTypes == 0) then {
                  _unitTypes = getArray (missionConfigFile >> "CfgLoot" >> "Buildings" >> "Default" >> "zombieClass");
              };
              
              // lets create an agent
              _type = _unitTypes call BIS_fnc_selectRandom;
              _radius = 5;
              //_method = if (_doLoiter) then {"CAN_COLLIDE"} else {"NONE"};
              _agent = createAgent [_type, _position, [], _radius, "CAN_COLLIDE"]; 
              uiSleep 0.03;
              
              //add to global counter 
              dayz_spawnZombies = dayz_spawnZombies + 1;
              dayz_CurrentNearByZombies = dayz_CurrentNearByZombies + 1;
              dayz_currentGlobalZombies = dayz_currentGlobalZombies + 1;
              
              //Add some loot
              if (0.3 > random 1) then {
                  _lootGroup = configFile >> "CfgVehicles" >> _type >> "zombieLoot";
                  if (isText _lootGroup) then {
                      //_lootGroup = dayz_lootGroups find getText (_lootGroup);
                      _lootGroup = Loot_GetGroup(getText _lootGroup);
                      //[_agent, _lootGroup, 1] call loot_insert;
                      Loot_Insert(_agent, _lootGroup, 1);
                  };
              };
              
              _agent setVariable["agentObject",_agent];
              if (!isNull _agent) then {
                  _agent setDir random 360;
                  uiSleep 0.03;
                  _position = getPosATL _agent;
                  _favStance = (
                      switch ceil(random(3^0.5)^2) do {
                          //case 3: {"DOWN"}; // prone
                          case 2: {"middle"}; // Kneel "middle"
                          default {"Up"}; // stand-up
                      }
                  );
                  _agent setUnitPos _favStance;
                  _agent setVariable ["stance", _favStance];
                  _agent setVariable ["BaseLocation", _position];
                  _agent setVariable ["doLoiter", _doLoiter]; // true: Z will be wandering, false: stay still
                  
                  _coinsRandom = random 1;
                  if (_coinsRandom <= 0.5) then {
                  _cash = round(random 20) * 5; // number between 0 and 200 Add Coins to Zombie
                  _agent setVariable["CashMoney",_cash ,true]; // Add Coins to Zombie
                  };
              };
          };
      };
       
  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...