diff --git a/CHANGE LOG 1.0.6.txt b/CHANGE LOG 1.0.6.txt index 161ee1fb5..7921f6232 100644 --- a/CHANGE LOG 1.0.6.txt +++ b/CHANGE LOG 1.0.6.txt @@ -42,6 +42,7 @@ [FIXED] Opening supply crates over water no longer drops the items on the sea floor @pj999 @icomrade #1558 [FIXED] Plot pole required message not updating to reflect DZE_PlotPole radius @mathewjknott @icomrade #1274 [FIXED] Slow login timer and incorrect loading screen message when login times out @icomrade +[FIXED] Combine mags not working for Revolver and M1911 ammo @Terrien @ebaydayz #1313 [UPDATED] .hpp files updated in dayz_epoch_b CfgLootPos > CfgBuildingPos. @Uro1 [UPDATED] .bat files updated in Config-Examples @Raziel23x diff --git a/SQF/dayz_code/actions/player_reloadMags.sqf b/SQF/dayz_code/actions/player_reloadMags.sqf index 8e0ab0341..5dc1dc15b 100644 --- a/SQF/dayz_code/actions/player_reloadMags.sqf +++ b/SQF/dayz_code/actions/player_reloadMags.sqf @@ -1,27 +1,34 @@ -private ["_item","_config","_consumeArr","_consumeMagAmmo","_consume","_create","_item_ammo","_consume_magsize","_create_magsize","_consume_type","_slotstart","_slotend","_dialog","_qty_total_ammo","_qty_consume_ammo","_qty_create_ammo","_qty_consume_mags","_qty_create_mags","_qty_free_slots","_control","_mag","_qtynew_create_ammo","_qtynew_consume_ammo","_qtynew_create_mags","_qtynew_consume_mags","_qtynew_consume_mags_full","_qtynew_create_mags_full","_qtynew_consume_ammo_rest","_qtynew_create_ammo_rest"]; - +private ["_item","_config","_consume","_create","_item_ammo","_consume_magsize","_create_magsize","_consume_type","_slotstart","_slotend","_dialog","_qty_total_ammo","_qty_consume_ammo","_qty_create_ammo","_qty_consume_mags","_qty_create_mags","_qty_free_slots","_control","_mag","_qtynew_create_ammo","_qtynew_consume_ammo","_qtynew_create_mags","_qtynew_consume_mags","_qtynew_consume_mags_full","_qtynew_create_mags_full","_qtynew_consume_ammo_rest","_qtynew_create_ammo_rest"]; disableSerialization; call gear_ui_init; //note - one slot ammo can be used! +r_action_count = r_action_count + 1; +if (r_action_count != 1) exitWith { cutText [localize "str_player_actionslimit", "PLAIN DOWN"]; }; +_item = _this; -_item = _this; +if (!(_item in magazines player)) exitWith {r_action_count = 0;}; -_config = configFile >> "CfgMagazines" >> _item; +_config = configFile >> "CfgMagazines" >> _item; -_consumeArr = getArray (_config >> "ItemActions" >> "ReloadMag" >> "use"); -_consume = _consumeArr select 0; -_create = getArray (_config >> "ItemActions" >> "ReloadMag" >> "output") select 0; +_consume = getArray (_config >> "ItemActions" >> "ReloadMag" >> "use") select 0; +_create = getArray (_config >> "ItemActions" >> "ReloadMag" >> "output") select 0; _item_ammo = gearSlotAmmoCount (uiNamespace getVariable 'uiControl'); -//add check if weapon can use create (if not - show message) +//add check if weapon can use _create (if not - show message) +/* +if (currentWeapon player != "") then { + _mags = [] + getArray (configFile >> "cfgWeapons" >> (currentWeapon player) >> "magazines"); +}; +if !(_create in _mags) exitWith {cutText [localize "str_must_have_weapon", "PLAIN DOWN"];}; +*/ player playActionNow "PutDown"; -_consume_magsize = getNumber(configFile >> "CfgMagazines" >> _consume >> "count"); -_create_magsize = getNumber(configFile >> "CfgMagazines" >> _create >> "count"); +_consume_magsize = getNumber(configFile >> "CfgMagazines" >> _consume >> "count"); +_create_magsize = getNumber(configFile >> "CfgMagazines" >> _create >> "count"); _consume_type = getNumber(configFile >> "CfgMagazines" >> _consume >> "type"); @@ -31,8 +38,8 @@ _slotend = 0; if (_consume_type == 256) then { _slotstart = 109; _slotend = 120; -}; -if ( _consume_type == 16) then { +}; +if (_consume_type == 16) then { _slotstart = 122; _slotend = 129; }; @@ -45,22 +52,18 @@ _qty_create_ammo = 0; _qty_consume_mags = 0; _qty_create_mags = 0; _qty_free_slots = 0; -_consumeMagAmmo = 0; for "_i" from _slotstart to _slotend do { _control =_dialog displayCtrl _i; _mag = gearSlotData _control; if (_mag == _consume) then { _qty_total_ammo = _qty_total_ammo + gearSlotAmmoCount _control; - _consumeMagAmmo = gearSlotAmmoCount _control; - _qty_consume_ammo = _qty_consume_ammo + _consumeMagAmmo; - if (_consumeMagAmmo >= (floor (0.85 * _consume_magsize))) then { - _qty_consume_mags = _qty_consume_mags + 1; - }; + _qty_consume_ammo = _qty_consume_ammo + gearSlotAmmoCount _control; + _qty_consume_mags = _qty_consume_mags+1; }; - if (_mag == _create) then { + if (_mag == _create) then { _qty_total_ammo = _qty_total_ammo + gearSlotAmmoCount _control; _qty_create_ammo = _qty_create_ammo + gearSlotAmmoCount _control; - _qty_create_mags = _qty_create_mags + 1; + _qty_create_mags = _qty_create_mags+1; }; if (_mag == "") then { _qty_free_slots = _qty_free_slots + 1; @@ -78,7 +81,7 @@ _qtynew_consume_ammo_rest = 0; _qtynew_create_ammo_rest = 0; -if ( _consume_magsize > _create_magsize) then { +if (_consume_magsize > _create_magsize) then { _qtynew_create_ammo = _qty_create_ammo + _item_ammo; _qtynew_consume_ammo = _qty_consume_ammo - _item_ammo; _qtynew_create_mags = ceil(_qtynew_create_ammo/_create_magsize); @@ -89,6 +92,7 @@ if ( _consume_magsize > _create_magsize) then { }; if ((_qtynew_create_mags + _qtynew_consume_mags) > (_qty_create_mags + _qty_consume_mags + _qty_free_slots)) exitWith { + r_action_count = 0; cutText [localize "str_player_24", "PLAIN DOWN"]; }; _qtynew_consume_mags_full = floor(_qtynew_consume_ammo/_consume_magsize); @@ -96,16 +100,9 @@ _qtynew_create_mags_full = floor(_qtynew_create_ammo/_create_magsize); _qtynew_consume_ammo_rest = _qtynew_consume_ammo - (_qtynew_consume_mags_full*_consume_magsize); _qtynew_create_ammo_rest = _qtynew_create_ammo - (_qtynew_create_mags_full*_create_magsize); -// abort if no complete mags || partial mag is less than 15% full -if(_qtynew_create_ammo_rest > 0 && _qty_consume_mags >= (count _consumeArr)) exitWith { cutText [(localize "str_epoch_player_81"), "PLAIN DOWN"]; }; - -//remove all _consume && _create mags (we already have total ammo count) - -{ - player removeMagazines _x; -} count _consumeArr; - -player removeMagazines _create; +//remove all _consume and _create mags (we already have total ammo count) +player removeMagazines _consume; +player removeMagazines _create; for "_i" from 1 to _qtynew_consume_mags_full do { player addMagazine _consume; @@ -118,4 +115,6 @@ for "_i" from 1 to _qtynew_create_mags_full do { }; if (_qtynew_create_ammo_rest != 0) then { player addMagazine [_create,_qtynew_create_ammo_rest]; -}; \ No newline at end of file +}; +sleep 1; +r_action_count = 0; \ No newline at end of file diff --git a/SQF/dayz_code/actions/player_wearClothes.sqf b/SQF/dayz_code/actions/player_wearClothes.sqf index 09d99642d..41846d15d 100644 --- a/SQF/dayz_code/actions/player_wearClothes.sqf +++ b/SQF/dayz_code/actions/player_wearClothes.sqf @@ -9,7 +9,7 @@ DZE_ActionInProgress = true; _item = _this; call gear_ui_init; - +r_action_count = 0; //reset for strange glitch _onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1; if (_onLadder) exitWith {DZE_ActionInProgress = false; cutText [(localize "str_player_21") , "PLAIN DOWN"]}; diff --git a/SQF/dayz_code/init/variables.sqf b/SQF/dayz_code/init/variables.sqf index 36211022a..667e535a8 100644 --- a/SQF/dayz_code/init/variables.sqf +++ b/SQF/dayz_code/init/variables.sqf @@ -317,6 +317,9 @@ isInTraderCity = false; NORRN_dropAction = -1; DZE_PROTOBOX = objNull; +//count actions +r_action_count = 0; + //ammo routine r_player_actions2 = []; r_action2 = false; diff --git a/SQF/dayz_epoch_b/stringtable.xml b/SQF/dayz_epoch_b/stringtable.xml index 10724e879..399079891 100644 --- a/SQF/dayz_epoch_b/stringtable.xml +++ b/SQF/dayz_epoch_b/stringtable.xml @@ -710,6 +710,14 @@ Son nom était %1, il semble qu'il soit mort d' %2 Jeho jméno bylo %1, vypadá to, že je mrtvý kvůli %2 + + Wait for the previous action to complete to perform another! + Du musst erst das eine beenden, bevor du etwas neues startest! + Дождитесь завершения предыдущего действия, перед тем, как начинать новое! + ¡Espera a terminar la acción previa para realizar otra! + Attendez la fin de l'action en cours avant d'en commencer une autre ! + Než začnete dělat něco jiného, musíte dokončit aktuální akci. + a gunshot to the head a gunshot to the head