mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-14 04:02:37 +03:00
Merge branch 'master' of https://github.com/vbawol/DayZ-Epoch
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
[NEW] Napf Island with permission from #momo# now included by default. http://forums.bistudio.com/showthread.php?136469-Napf-Island-beta\
|
[NEW] Napf Island v0.99 with permission from #momo# now included by default. http://forums.bistudio.com/showthread.php?136469-Napf-Island-beta\
|
||||||
[NEW] WIP Sauerland Map v1.7.00.2 with permission from falconsan now included by default. http://www.s6computer.de/
|
[NEW-WIP] Sauerland Map v1.7.00.2 with permission from falconsan now included by default. https://github.com/falconsan/DayZ_Sauerland/blob/master/changelog.txt - http://www.s6computer.de/
|
||||||
|
|
||||||
[NEW] Optimized Server/Client Communication with PVS+PVC methods from DayZ Mod 1.8. @Skaronator
|
[NEW] Optimized Server/Client Communication with PVS+PVC methods from DayZ Mod 1.8. @Skaronator
|
||||||
[NEW] Modular building spawning now ahead on server start, vehicles spawning after it. @Skaronator @zabn
|
[NEW] Modular building spawning now ahead on server start, vehicles spawning after it. @Skaronator @zabn
|
||||||
[NEW] Maintain Area should work now much better. The Server update the Object itself and doesnt remove and rebuild it anymore. @Skaronator
|
[NEW] Maintain Area should work now much better. The Server update the Object itself and doesnt remove and rebuild it anymore. @Skaronator
|
||||||
[NEW] Updated Hive Dll to latest from rajkosto and added custom child 396 and 397 call to update the datestamp of base objects. *See notes below! @Tansien @vbawol
|
[NEW] Updated Hive Dll to latest from rajkosto and added custom child 396 and 397 call to update the datestamp of base objects. *See notes below! @Tansien @vbawol
|
||||||
|
[NEW] Trading now makes change and auto combines into the highest denomination. @vbawol
|
||||||
|
|
||||||
[ADDED] Trading now makes change and auto combines into the highest denomination. @vbawol
|
|
||||||
[ADDED] Cars, small Trucks, and Boats now able to be lifting with Chinooks only. Lifted vehicle must be unlocked and unmanned. Enabled by default use DZE_HeliLift = false; in init.sqf to disable. @Zabn @vbawol
|
[ADDED] Cars, small Trucks, and Boats now able to be lifting with Chinooks only. Lifted vehicle must be unlocked and unmanned. Enabled by default use DZE_HeliLift = false; in init.sqf to disable. @Zabn @vbawol
|
||||||
[ADDED] 40% chance to payout a single gem on removal of mine ruins. @vbawol
|
[ADDED] 40% chance to payout a single gem on removal of mine ruins. @vbawol
|
||||||
[ADDED] M107_DZ to Military, MilitarySpecial, IndustrialMilitary and Helicrash loottable. @Sequisha
|
[ADDED] M107_DZ to Military, MilitarySpecial, IndustrialMilitary and Helicrash loottable. @Sequisha
|
||||||
@@ -14,25 +14,24 @@
|
|||||||
[ADDED] New enterable building added for Chernarus and other maps. @Sequisha
|
[ADDED] New enterable building added for Chernarus and other maps. @Sequisha
|
||||||
[ADDED] Allow Admins To Customize Loot Spawn Timer using DZE_LootSpawnTimer via init.sqf. Default: 10 @SGanthony
|
[ADDED] Allow Admins To Customize Loot Spawn Timer using DZE_LootSpawnTimer via init.sqf. Default: 10 @SGanthony
|
||||||
[ADDED] Provide option to have loot tables loaded from mission file. DZE_MissionLootTable = true; will look for loot configs via missionConfigFile. @vbawol
|
[ADDED] Provide option to have loot tables loaded from mission file. DZE_MissionLootTable = true; will look for loot configs via missionConfigFile. @vbawol
|
||||||
[ADDED] Added Craftable/Buildable Wood Crate Storage. Recipe 6 x PartWoodLumber = ItemWoodCrateKit. @Mochnant
|
[ADDED] Added Craftable/Buildable Wood Crate Storage. Recipe 6 x PartWoodLumber = ItemWoodCrateKit. @Mochnant
|
||||||
[ADDED] BAF_Merlin_DZE - transportMaxWeapons 15, transportMaxMagazines 150, transportmaxbackpacks 5. @Skaronator
|
[ADDED] BAF_Merlin_DZE - transportMaxWeapons 15, transportMaxMagazines 150, transportmaxbackpacks 5. @Skaronator
|
||||||
[ADDED] Added back BAF_AS50_scoped_DZ configs, still not on traders or loot tables. @vbawol
|
[ADDED] Added back BAF_AS50_scoped_DZ configs, still not on traders or loot tables. @vbawol
|
||||||
[ADDED] Placing a plot pole now creates a preview of the "safe" build area protected by the plot pole. This is only viewable
|
[ADDED] Placing a plot pole now creates a preview of the "safe" build area protected by the plot pole. This is only viewable
|
||||||
by the plot owner, will disappear upon logout, and is only re-creatable by re-placing the plot pole. @dayz10k @vos
|
by the plot owner, will disappear upon logout, and is only re-creatable by re-placing the plot pole. @dayz10k @vos
|
||||||
[ADDED] Global variabsle to allow building on roads with DZE_BuildOnRoads = true; (Default: DZE_BuildOnRoads = false;) @dayz10k
|
[ADDED] Global variable to allow building on roads with DZE_BuildOnRoads = true; (Default: DZE_BuildOnRoads = false;) @dayz10k
|
||||||
[ADDED] Global variable to set plot pole radius and exclusion zone, enabled via mission file. DZE_PlotPole = [x,y] in the mission file controls the [Radius, Exclusion zone].
|
[ADDED] Global variable to set plot pole radius and exclusion zone, enabled via mission file. DZE_PlotPole = [x,y] in the mission file controls the [Radius, Exclusion zone].
|
||||||
Default: DZE_PlotPole = [30,45]. @dayz10k @Skaronator
|
Default: DZE_PlotPole = [30,45]. @dayz10k @Skaronator
|
||||||
[ADDED] Global variable to disable Player Zombies with DZE_PlayerZed = false; (Default: DZE_PlayerZed = true;) @Skaronator
|
[ADDED] Global variable to disable Player Zombies with DZE_PlayerZed = false; (Default: DZE_PlayerZed = true;) @Skaronator
|
||||||
|
|
||||||
|
|
||||||
[FIXED] Anti-Teleport Log System. @Skaronator
|
[FIXED] Anti-Teleport Log System. @Skaronator
|
||||||
[FIXED] Wrong german translation "Holzkiste geöffnet.". @Fank @vbawol
|
[FIXED] Wrong German translations. @Fank
|
||||||
[FIXED] Fix medical actions in vehicles. @icomrade
|
[FIXED] Fix medical actions in vehicles. @icomrade
|
||||||
[FIXED] Wrong KSVK class spawning on mass graves. @Skaronator via MGT
|
[FIXED] Wrong KSVK class spawning on mass graves. @Skaronator via MGT
|
||||||
[FIXED] Armor value for RBWheel on SUV was lower than it should have been. @SGanthony
|
[FIXED] Armor value for RBWheel on SUV was lower than it should have been. @SGanthony
|
||||||
[FIXED] Fixed issues with losing weapons when on graves @vbawol - http://epochmod.com/forum/index.php?/topic/5092-player-grave/?p=33281
|
[FIXED] Fixed issues with losing weapons when on graves @vbawol - http://epochmod.com/forum/index.php?/topic/5092-player-grave/?p=33281
|
||||||
[FIXED] More Localization (translations). @dayz10k, @VeryBigBro (Russian), @JoSchaap (Dutch), @Geodar (Czech), @krazey (German)
|
[FIXED] More Localization (translations). @dayz10k, @VeryBigBro (Russian), @JoSchaap (Dutch), @Geodar (Czech), @krazey (German)
|
||||||
[FIXED] Fixed incorect spelling of chainsaw name was horlite needed to be hermlite. @vbawol
|
[FIXED] Fixed incorrect spelling of chainsaw name was horlite needed to be hermlite. @vbawol
|
||||||
[FIXED] Remove nearest tranktrap via toolbox not working properly. @dayz10k
|
[FIXED] Remove nearest tranktrap via toolbox not working properly. @dayz10k
|
||||||
[FIXED] Lingor trader spawn. @dayz10k @sekra
|
[FIXED] Lingor trader spawn. @dayz10k @sekra
|
||||||
[FIXED] Disappearing of Vault while unlocking. (Need Feedback!) @Skaronator
|
[FIXED] Disappearing of Vault while unlocking. (Need Feedback!) @Skaronator
|
||||||
@@ -41,19 +40,20 @@
|
|||||||
[FIXED] You will no longer get a 3 by 3H - barrier cube if you remove a 5H - barrier cube @Skaronator
|
[FIXED] You will no longer get a 3 by 3H - barrier cube if you remove a 5H - barrier cube @Skaronator
|
||||||
[FIXED] BattlEye kicks for some players on death. @Skaronator
|
[FIXED] BattlEye kicks for some players on death. @Skaronator
|
||||||
|
|
||||||
[CHANGED] Drastically increased base wood and cinder building armor levels. Doors now have higher armor than walls. @vbawol
|
[CHANGED] Changed currency conversion rates to multiples of 10. @vbawol
|
||||||
|
[CHANGED] Drastically increased base building armor levels. Doors now have much higher armor than walls. @vbawol
|
||||||
[CHANGED] Extended Trader logging and fix for sold itemnames @ctc.Sebi
|
[CHANGED] Extended Trader logging and fix for sold itemnames @ctc.Sebi
|
||||||
[CHANGED] Balance Loottable. @Sequisha
|
[CHANGED] Balance Loot table. @Sequisha
|
||||||
[CHANGED] Lowered Safe weapon storage count to 25, to address reports of more safe inventory issues after it was rasied to 50. @vbawol
|
[CHANGED] Lowered Safe weapon storage count to 25, to address reports of more safe inventory issues after it was raised to 50. @vbawol
|
||||||
[CHANGED] Prices were reviewed and modified for many of the higher tiered weapons/ammo/vehicles/food. @dayz10k
|
[CHANGED] Prices were reviewed and modified for many of the higher tiered weapons/ammo/vehicles/food. @dayz10k
|
||||||
[CHANGED] All copper prices have been changed to 2 silver to buy, 1 silver to sell. @dayz10k
|
[CHANGED] All copper prices have been changed to 2 silver to buy, 1 silver to sell. @dayz10k
|
||||||
[CHANGED] Radius check for Remove Nearest Camo Net (from 10m to 3m). @dayz10k
|
[CHANGED] Radius check for Remove Nearest Camo Net (from 10m to 3m). @dayz10k
|
||||||
[CHANGED] Loot Improvments (Based on the Feedback of the Skaronator.com Server) @Skaronator
|
[CHANGED] Loot Improvements (Based on the Feedback of the Skaronator.com Server) @Skaronator
|
||||||
|
|
||||||
[REMOVED] Copper is no longer a usable currency. Existing copper will remain in game, but has no current use. @dayz10k
|
[REMOVED] Copper is no longer a usable currency. Existing copper will remain in game, but has no current use. @dayz10k
|
||||||
|
|
||||||
[SERVER INFO] Updated Hive dll requires DatabaseMySql.dll in arma 2 oa root and visual studio 2013 redistributable x86 installed: http://www.microsoft.com/en-us/download/details.aspx?id=40784
|
[SERVER INFO] Updated Hive dll requires DatabaseMySql.dll in arma 2 oa root and visual studio 2013 redistributable x86 installed: http://www.microsoft.com/en-us/download/details.aspx?id=40784
|
||||||
[SERVER INFO] Removed dayz_vb.bikey and dayz.bikey keys and added new versioned dayz_epoch104.bikey key. Thanks to @Tansien for the suggestion. @vbawol
|
[SERVER INFO] Removed dayz_vb.bikey and dayz.bikey keys and added new version ed dayz_epoch104.bikey key. Thanks to @Tansien for the suggestion. @vbawol
|
||||||
[SERVER INFO] Also moved external bikeys to sub folder, for best security use only the bikeys for the map your running.
|
[SERVER INFO] Also moved external bikeys to sub folder, for best security use only the bikeys for the map your running.
|
||||||
[SERVER INFO] pook_H13_amphib, GNT_C185F and GNT_C185E causes Server FPS issues and should not be used. https://github.com/vbawol/DayZ-Epoch/issues/969
|
[SERVER INFO] pook_H13_amphib, GNT_C185F and GNT_C185E causes Server FPS issues and should not be used. https://github.com/vbawol/DayZ-Epoch/issues/969
|
||||||
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_veh","_location","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
|
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||||
|
|
||||||
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
|
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
|
||||||
DZE_ActionInProgress = true;
|
DZE_ActionInProgress = true;
|
||||||
@@ -21,79 +21,96 @@ _textPartOut = (_this select 3) select 6;
|
|||||||
_traderID = (_this select 3) select 7;
|
_traderID = (_this select 3) select 7;
|
||||||
_bos = 0;
|
_bos = 0;
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
if(_buy_o_sell == "sell") then {
|
||||||
_qty = {_x == _part_in} count magazines player;
|
|
||||||
} else {
|
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
|
|
||||||
_qty = count _obj;
|
|
||||||
_bos = 1;
|
_bos = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_qty >= _qty_in) then {
|
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
||||||
|
|
||||||
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
|
||||||
|
|
||||||
[1,1] call dayz_HungerThirst;
|
[1,1] call dayz_HungerThirst;
|
||||||
// force animation
|
// force animation
|
||||||
player playActionNow "Medic";
|
player playActionNow "Medic";
|
||||||
|
|
||||||
r_interrupt = false;
|
r_interrupt = false;
|
||||||
|
_animState = animationState player;
|
||||||
|
r_doLoop = true;
|
||||||
|
_started = false;
|
||||||
|
_finished = false;
|
||||||
|
|
||||||
|
while {r_doLoop} do {
|
||||||
_animState = animationState player;
|
_animState = animationState player;
|
||||||
r_doLoop = true;
|
_isMedic = ["medic",_animState] call fnc_inString;
|
||||||
_started = false;
|
if (_isMedic) then {
|
||||||
_finished = false;
|
_started = true;
|
||||||
|
|
||||||
while {r_doLoop} do {
|
|
||||||
_animState = animationState player;
|
|
||||||
_isMedic = ["medic",_animState] call fnc_inString;
|
|
||||||
if (_isMedic) then {
|
|
||||||
_started = true;
|
|
||||||
};
|
|
||||||
if (_started and !_isMedic) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
_finished = true;
|
|
||||||
};
|
|
||||||
if (r_interrupt) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
};
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
};
|
||||||
r_doLoop = false;
|
if (_started and !_isMedic) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
_finished = true;
|
||||||
|
};
|
||||||
|
if (r_interrupt) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
};
|
||||||
|
sleep 0.1;
|
||||||
|
};
|
||||||
|
r_doLoop = false;
|
||||||
|
|
||||||
if (!_finished) exitWith {
|
if (!_finished) exitWith {
|
||||||
r_interrupt = false;
|
r_interrupt = false;
|
||||||
if (vehicle player == player) then {
|
if (vehicle player == player) then {
|
||||||
[objNull, player, rSwitchMove,""] call RE;
|
[objNull, player, rSwitchMove,""] call RE;
|
||||||
player playActionNow "stop";
|
player playActionNow "stop";
|
||||||
|
};
|
||||||
|
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_finished) then {
|
||||||
|
|
||||||
|
_canAfford = false;
|
||||||
|
if(_bos == 1) then {
|
||||||
|
|
||||||
|
_distance = dayz_sellDistance_vehicle;
|
||||||
|
if (_part_in isKindOf "Air") then {
|
||||||
|
_distance = dayz_sellDistance_air;
|
||||||
|
};
|
||||||
|
if (_part_in isKindOf "Ship") then {
|
||||||
|
_distance = dayz_sellDistance_boat;
|
||||||
|
};
|
||||||
|
_count = {(typeOf _x) == _part_in} count (nearestObjects [(getPosATL player), [_part_in], _distance]);
|
||||||
|
if (_count >= _qty_in) then {
|
||||||
|
_canAfford = true;
|
||||||
|
};
|
||||||
|
diag_log format["DEBUG vehicle sell count: %1", _count];
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
//buy
|
||||||
|
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
|
||||||
|
_total_currency = call epoch_totalCurrency;
|
||||||
|
_return_change = _total_currency - _trade_total;
|
||||||
|
if (_return_change >= 0) then {
|
||||||
|
_canAfford = true;
|
||||||
};
|
};
|
||||||
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_finished) then {
|
|
||||||
|
|
||||||
// Double check for items
|
if (_canAfford) then {
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
_qty = {_x == _part_in} count magazines player;
|
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||||
|
// if (isNil "_obj") then { _obj = "Unknown Vehicle" };
|
||||||
|
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
||||||
|
if(_bos == 1) then {
|
||||||
|
// Selling
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
||||||
} else {
|
} else {
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
|
// Buying
|
||||||
_qty = count _obj;
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
||||||
};
|
};
|
||||||
|
publicVariableServer "PVDZE_obj_Trade";
|
||||||
if (_qty >= _qty_in) then {
|
|
||||||
|
|
||||||
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
|
||||||
if (isNil "_obj") then { _obj = "Unknown Vehicle" };
|
|
||||||
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
|
||||||
if(_bos == 1) then {
|
|
||||||
// Selling
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
|
||||||
} else {
|
|
||||||
// Buying
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
|
||||||
};
|
|
||||||
publicVariableServer "PVDZE_obj_Trade";
|
|
||||||
|
|
||||||
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
||||||
|
|
||||||
|
if(_buy_o_sell == "buy") then {
|
||||||
|
|
||||||
waitUntil {!isNil "dayzTradeResult"};
|
waitUntil {!isNil "dayzTradeResult"};
|
||||||
|
|
||||||
@@ -101,107 +118,123 @@ if (_qty >= _qty_in) then {
|
|||||||
|
|
||||||
if(dayzTradeResult == "PASS") then {
|
if(dayzTradeResult == "PASS") then {
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
||||||
|
if (_done) then {
|
||||||
|
|
||||||
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
|
// spawn vehicle
|
||||||
if(_removed == _qty_in) then {
|
_dir = round(random 360);
|
||||||
_dir = round(random 360);
|
|
||||||
|
|
||||||
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
|
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
|
||||||
if(count _helipad > 0) then {
|
if(count _helipad > 0) then {
|
||||||
_location = (getPosATL (_helipad select 0));
|
_location = (getPosATL (_helipad select 0));
|
||||||
} else {
|
|
||||||
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
|
|
||||||
};
|
|
||||||
|
|
||||||
//place vehicle spawn marker (local)
|
|
||||||
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
|
|
||||||
|
|
||||||
_location = (getPosATL _veh);
|
|
||||||
|
|
||||||
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
|
|
||||||
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,true,dayz_characterID,_activatingPlayer];
|
|
||||||
publicVariableServer "PVDZE_veh_Publish2";
|
|
||||||
|
|
||||||
player reveal _veh;
|
|
||||||
|
|
||||||
cutText [format[(localize "str_epoch_player_180"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
|
|
||||||
};
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
_obj = _obj select 0;
|
|
||||||
|
|
||||||
//check to make sure vehicle has no more than 75% average tire damage
|
|
||||||
_hitpoints = _obj call vehicle_getHitpoints;
|
|
||||||
_okToSell = true;
|
|
||||||
|
|
||||||
// count parts
|
|
||||||
_tires = 0;
|
|
||||||
|
|
||||||
// total damage
|
|
||||||
_tireDmg = 0;
|
|
||||||
|
|
||||||
_damage = 0;
|
|
||||||
{
|
|
||||||
if(["Wheel",_x,false] call fnc_inString) then {
|
|
||||||
_damage = [_obj,_x] call object_getHit;
|
|
||||||
_tireDmg = _tireDmg + _damage;
|
|
||||||
_tires = _tires + 1;
|
|
||||||
};
|
|
||||||
} forEach _hitpoints;
|
|
||||||
|
|
||||||
// find average tire damage
|
|
||||||
if(_tireDmg > 0 and _tires > 0) then {
|
|
||||||
if((_tireDmg / _tires) > 0.75) then {
|
|
||||||
_okToSell = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
if(local _obj) then {
|
|
||||||
|
|
||||||
if(_okToSell) then {
|
|
||||||
|
|
||||||
if(!isNull _obj and alive _obj) then {
|
|
||||||
|
|
||||||
for "_x" from 1 to _qty_out do {
|
|
||||||
player addMagazine _part_out;
|
|
||||||
};
|
|
||||||
|
|
||||||
_objectID = _obj getVariable ["ObjectID","0"];
|
|
||||||
_objectUID = _obj getVariable ["ObjectUID","0"];
|
|
||||||
|
|
||||||
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
|
|
||||||
publicVariableServer "PVDZE_obj_Delete";
|
|
||||||
|
|
||||||
deleteVehicle _obj;
|
|
||||||
|
|
||||||
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
|
|
||||||
};
|
|
||||||
} else {
|
} else {
|
||||||
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
|
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
//place vehicle spawn marker (local)
|
||||||
|
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
_location = (getPosATL _veh);
|
||||||
|
|
||||||
|
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
|
||||||
|
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,true,dayz_characterID,_activatingPlayer];
|
||||||
|
publicVariableServer "PVDZE_veh_Publish2";
|
||||||
|
|
||||||
|
cutText [format[(localize "STR_EPOCH_PLAYER_180"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
|
|
||||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
|
||||||
s_player_parts_crtl = -1;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
dayzTradeResult = nil;
|
} else {
|
||||||
|
|
||||||
|
//sell
|
||||||
|
_distance = dayz_sellDistance_vehicle;
|
||||||
|
if (_part_in isKindOf "Air") then {
|
||||||
|
_distance = dayz_sellDistance_air;
|
||||||
|
};
|
||||||
|
if (_part_in isKindOf "Ship") then {
|
||||||
|
_distance = dayz_sellDistance_boat;
|
||||||
|
};
|
||||||
|
|
||||||
|
_objects = nearestObjects [(getPosATL player), [_part_in], _distance];
|
||||||
|
|
||||||
|
diag_log format["DEBUG vehicle sell objects: %1", _objects];
|
||||||
|
|
||||||
|
_qty = ({(typeOf _x) == _part_in} count _objects);
|
||||||
|
|
||||||
|
if (_qty >= _qty_in) then {
|
||||||
|
|
||||||
|
_obj = (_objects select 0);
|
||||||
|
|
||||||
|
//check to make sure vehicle has no more than 75% average tire damage
|
||||||
|
_hitpoints = _obj call vehicle_getHitpoints;
|
||||||
|
_okToSell = true;
|
||||||
|
|
||||||
|
// count parts
|
||||||
|
_tires = 0;
|
||||||
|
|
||||||
|
// total damage
|
||||||
|
_tireDmg = 0;
|
||||||
|
|
||||||
|
_damage = 0;
|
||||||
|
{
|
||||||
|
if(["Wheel",_x,false] call fnc_inString) then {
|
||||||
|
_damage = [_obj,_x] call object_getHit;
|
||||||
|
_tireDmg = _tireDmg + _damage;
|
||||||
|
_tires = _tires + 1;
|
||||||
|
};
|
||||||
|
} forEach _hitpoints;
|
||||||
|
|
||||||
|
// find average tire damage
|
||||||
|
if(_tireDmg > 0 and _tires > 0) then {
|
||||||
|
if((_tireDmg / _tires) > 0.75) then {
|
||||||
|
_okToSell = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
_objectID = _obj getVariable ["ObjectID","0"];
|
||||||
|
_objectUID = _obj getVariable ["ObjectUID","0"];
|
||||||
|
|
||||||
|
_notSetup = (_objectID == "0" && _objectUID == "0");
|
||||||
|
|
||||||
|
if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {
|
||||||
|
|
||||||
|
if(_okToSell) then {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//if(_objectID != "0" && _objectUID != "0") then {
|
||||||
|
|
||||||
|
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
|
||||||
|
publicVariableServer "PVDZE_obj_Delete";
|
||||||
|
|
||||||
|
deleteVehicle _obj;
|
||||||
|
|
||||||
|
// payout
|
||||||
|
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
|
||||||
|
|
||||||
|
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
dayzTradeResult = nil;
|
||||||
|
|
||||||
} else {
|
|
||||||
_needed = _qty_in - _qty;
|
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
|
|
||||||
};
|
if(_buy_o_sell == "buy") then {
|
||||||
|
_qty = {_x == _part_in} count magazines player;
|
||||||
|
_needed = _qty_in - _qty;
|
||||||
|
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||||
|
} else {
|
||||||
|
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
DZE_ActionInProgress = false;
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_okToSell","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
|
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||||
|
|
||||||
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
|
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
|
||||||
DZE_ActionInProgress = true;
|
DZE_ActionInProgress = true;
|
||||||
@@ -21,80 +21,96 @@ _textPartOut = (_this select 3) select 6;
|
|||||||
_traderID = (_this select 3) select 7;
|
_traderID = (_this select 3) select 7;
|
||||||
_bos = 0;
|
_bos = 0;
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
if(_buy_o_sell == "sell") then {
|
||||||
_qty = {_x == _part_in} count magazines player;
|
|
||||||
} else {
|
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_boat];
|
|
||||||
_qty = count _obj;
|
|
||||||
_bos = 1;
|
_bos = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
||||||
if (_qty >= _qty_in) then {
|
|
||||||
|
|
||||||
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
|
||||||
|
|
||||||
[1,1] call dayz_HungerThirst;
|
[1,1] call dayz_HungerThirst;
|
||||||
// force animation
|
// force animation
|
||||||
player playActionNow "Medic";
|
player playActionNow "Medic";
|
||||||
|
|
||||||
r_interrupt = false;
|
r_interrupt = false;
|
||||||
|
_animState = animationState player;
|
||||||
|
r_doLoop = true;
|
||||||
|
_started = false;
|
||||||
|
_finished = false;
|
||||||
|
|
||||||
|
while {r_doLoop} do {
|
||||||
_animState = animationState player;
|
_animState = animationState player;
|
||||||
r_doLoop = true;
|
_isMedic = ["medic",_animState] call fnc_inString;
|
||||||
_started = false;
|
if (_isMedic) then {
|
||||||
_finished = false;
|
_started = true;
|
||||||
|
|
||||||
while {r_doLoop} do {
|
|
||||||
_animState = animationState player;
|
|
||||||
_isMedic = ["medic",_animState] call fnc_inString;
|
|
||||||
if (_isMedic) then {
|
|
||||||
_started = true;
|
|
||||||
};
|
|
||||||
if (_started and !_isMedic) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
_finished = true;
|
|
||||||
};
|
|
||||||
if (r_interrupt) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
};
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
};
|
||||||
r_doLoop = false;
|
if (_started and !_isMedic) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
_finished = true;
|
||||||
|
};
|
||||||
|
if (r_interrupt) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
};
|
||||||
|
sleep 0.1;
|
||||||
|
};
|
||||||
|
r_doLoop = false;
|
||||||
|
|
||||||
if (!_finished) exitWith {
|
if (!_finished) exitWith {
|
||||||
r_interrupt = false;
|
r_interrupt = false;
|
||||||
if (vehicle player == player) then {
|
if (vehicle player == player) then {
|
||||||
[objNull, player, rSwitchMove,""] call RE;
|
[objNull, player, rSwitchMove,""] call RE;
|
||||||
player playActionNow "stop";
|
player playActionNow "stop";
|
||||||
|
};
|
||||||
|
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_finished) then {
|
||||||
|
|
||||||
|
_canAfford = false;
|
||||||
|
if(_bos == 1) then {
|
||||||
|
|
||||||
|
_distance = dayz_sellDistance_vehicle;
|
||||||
|
if (_part_in isKindOf "Air") then {
|
||||||
|
_distance = dayz_sellDistance_air;
|
||||||
|
};
|
||||||
|
if (_part_in isKindOf "Ship") then {
|
||||||
|
_distance = dayz_sellDistance_boat;
|
||||||
|
};
|
||||||
|
_count = {(typeOf _x) == _part_in} count (nearestObjects [(getPosATL player), [_part_in], _distance]);
|
||||||
|
if (_count >= _qty_in) then {
|
||||||
|
_canAfford = true;
|
||||||
|
};
|
||||||
|
diag_log format["DEBUG vehicle sell count: %1", _count];
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
//buy
|
||||||
|
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
|
||||||
|
_total_currency = call epoch_totalCurrency;
|
||||||
|
_return_change = _total_currency - _trade_total;
|
||||||
|
if (_return_change >= 0) then {
|
||||||
|
_canAfford = true;
|
||||||
};
|
};
|
||||||
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_finished) then {
|
|
||||||
|
|
||||||
// Double check for items
|
if (_canAfford) then {
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
_qty = {_x == _part_in} count magazines player;
|
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||||
|
// if (isNil "_obj") then { _obj = "Unknown Vehicle" };
|
||||||
|
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
||||||
|
if(_bos == 1) then {
|
||||||
|
// Selling
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
||||||
} else {
|
} else {
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_boat];
|
// Buying
|
||||||
_qty = count _obj;
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
||||||
};
|
};
|
||||||
|
publicVariableServer "PVDZE_obj_Trade";
|
||||||
if (_qty >= _qty_in) then {
|
|
||||||
|
|
||||||
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
|
||||||
if (isNil "_obj") then { _obj = "Unknown Vehicle" };
|
|
||||||
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
|
||||||
if(_bos == 1) then {
|
|
||||||
// Selling
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
|
||||||
} else {
|
|
||||||
// Buying
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
|
||||||
};
|
|
||||||
publicVariableServer "PVDZE_obj_Trade";
|
|
||||||
|
|
||||||
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
||||||
|
|
||||||
|
if(_buy_o_sell == "buy") then {
|
||||||
|
|
||||||
waitUntil {!isNil "dayzTradeResult"};
|
waitUntil {!isNil "dayzTradeResult"};
|
||||||
|
|
||||||
@@ -102,99 +118,108 @@ if (_qty >= _qty_in) then {
|
|||||||
|
|
||||||
if(dayzTradeResult == "PASS") then {
|
if(dayzTradeResult == "PASS") then {
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
// First select key color
|
||||||
|
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
|
||||||
|
|
||||||
// First select key color
|
// then select number from 1 - 2500
|
||||||
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
|
_keyNumber = (floor(random 2500)) + 1;
|
||||||
|
|
||||||
// then select number from 1 - 2500
|
// Combine to key (eg.ItemKeyYellow2494) classname
|
||||||
_keyNumber = (floor(random 2500)) + 1;
|
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
|
||||||
|
|
||||||
// Combine to key (eg.ItemKeyYellow2494) classname
|
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
|
||||||
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
|
|
||||||
|
|
||||||
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
|
|
||||||
|
|
||||||
_config = _keySelected;
|
_config = _keySelected;
|
||||||
_isOk = [player,_config] call BIS_fnc_invAdd;
|
_isOk = [player,_config] call BIS_fnc_invAdd;
|
||||||
waitUntil {!isNil "_isOk"};
|
|
||||||
if (_isOk and _isKeyOK) then {
|
|
||||||
|
|
||||||
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
|
waitUntil {!isNil "_isOk"};
|
||||||
if(_removed == _qty_in) then {
|
|
||||||
_dir = round(random 360);
|
|
||||||
|
|
||||||
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
|
if (_isOk and _isKeyOK) then {
|
||||||
if(count _helipad > 0) then {
|
|
||||||
_location = (getPosATL (_helipad select 0));
|
|
||||||
} else {
|
|
||||||
_location = [(position player),0,20,1,2,2000,0] call BIS_fnc_findSafePos;
|
|
||||||
};
|
|
||||||
|
|
||||||
//place vehicle spawn marker (local)
|
|
||||||
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
|
|
||||||
|
|
||||||
_location = (getPosATL _veh);
|
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
||||||
|
if (_done) then {
|
||||||
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
|
|
||||||
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
|
|
||||||
publicVariableServer "PVDZE_veh_Publish2";
|
|
||||||
|
|
||||||
player reveal _veh;
|
// spawn vehicle
|
||||||
|
_dir = round(random 360);
|
||||||
|
|
||||||
cutText [format[(localize "STR_EPOCH_ACTIONS_11"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
|
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
|
||||||
|
if(count _helipad > 0) then {
|
||||||
|
_location = (getPosATL (_helipad select 0));
|
||||||
} else {
|
} else {
|
||||||
player removeMagazine _keySelected;
|
_location = [(position player),0,20,1,2,2000,0] call BIS_fnc_findSafePos;
|
||||||
};
|
};
|
||||||
} else {
|
|
||||||
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
|
//place vehicle spawn marker (local)
|
||||||
|
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
_location = (getPosATL _veh);
|
||||||
|
|
||||||
|
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
|
||||||
|
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
|
||||||
|
publicVariableServer "PVDZE_veh_Publish2";
|
||||||
|
|
||||||
|
cutText [format[(localize "STR_EPOCH_ACTIONS_11"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
|
||||||
_obj = _obj select 0;
|
|
||||||
|
|
||||||
_okToSell = true;
|
|
||||||
if(!local _obj) then {
|
|
||||||
_okToSell = false;
|
|
||||||
};
|
|
||||||
|
|
||||||
if(_okToSell and !isNull _obj and alive _obj) then {
|
|
||||||
|
|
||||||
for "_x" from 1 to _qty_out do {
|
|
||||||
player addMagazine _part_out;
|
|
||||||
};
|
|
||||||
|
|
||||||
_objectID = _obj getVariable ["ObjectID","0"];
|
|
||||||
_objectUID = _obj getVariable ["ObjectUID","0"];
|
|
||||||
|
|
||||||
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
|
|
||||||
publicVariableServer "PVDZE_obj_Delete";
|
|
||||||
|
|
||||||
deleteVehicle _obj;
|
|
||||||
|
|
||||||
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
|
||||||
} else {
|
|
||||||
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
|
||||||
s_player_parts_crtl = -1;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
dayzTradeResult = nil;
|
} else {
|
||||||
};
|
|
||||||
};
|
//sell
|
||||||
|
_distance = dayz_sellDistance_vehicle;
|
||||||
|
if (_part_in isKindOf "Air") then {
|
||||||
|
_distance = dayz_sellDistance_air;
|
||||||
|
};
|
||||||
|
if (_part_in isKindOf "Ship") then {
|
||||||
|
_distance = dayz_sellDistance_boat;
|
||||||
|
};
|
||||||
|
|
||||||
|
_objects = nearestObjects [(getPosATL player), [_part_in], _distance];
|
||||||
|
|
||||||
} else {
|
diag_log format["DEBUG vehicle sell objects: %1", _objects];
|
||||||
_needed = _qty_in - _qty;
|
|
||||||
if(_buy_o_sell == "buy") then {
|
_qty = ({(typeOf _x) == _part_in} count _objects);
|
||||||
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
|
||||||
|
if (_qty >= _qty_in) then {
|
||||||
|
|
||||||
|
_obj = (_objects select 0);
|
||||||
|
|
||||||
|
_objectID = _obj getVariable ["ObjectID","0"];
|
||||||
|
_objectUID = _obj getVariable ["ObjectUID","0"];
|
||||||
|
|
||||||
|
_notSetup = (_objectID == "0" && _objectUID == "0");
|
||||||
|
|
||||||
|
if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {
|
||||||
|
|
||||||
|
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
|
||||||
|
publicVariableServer "PVDZE_obj_Delete";
|
||||||
|
|
||||||
|
deleteVehicle _obj;
|
||||||
|
|
||||||
|
// payout
|
||||||
|
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
|
||||||
|
|
||||||
|
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
|
|
||||||
|
} else {
|
||||||
|
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
dayzTradeResult = nil;
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
|
|
||||||
|
if(_buy_o_sell == "buy") then {
|
||||||
|
_qty = {_x == _part_in} count magazines player;
|
||||||
|
_needed = _qty_in - _qty;
|
||||||
|
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||||
|
} else {
|
||||||
|
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
DZE_ActionInProgress = false;
|
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_removed","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_playerNear"];
|
private ["_veh","_location","_isOk","_part_out","_part_in","_qty_out","_qty_in","_qty","_buy_o_sell","_obj","_objectID","_objectUID","_bos","_started","_finished","_animState","_isMedic","_dir","_helipad","_keyColor","_keyNumber","_keySelected","_isKeyOK","_config","_damage","_tireDmg","_tires","_okToSell","_hitpoints","_needed","_activatingPlayer","_textPartIn","_textPartOut","_traderID","_canAfford","_trade_total","_total_currency","_return_change","_done"];
|
||||||
|
|
||||||
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
|
if(DZE_ActionInProgress) exitWith { cutText [(localize "str_epoch_player_103") , "PLAIN DOWN"]; };
|
||||||
DZE_ActionInProgress = true;
|
DZE_ActionInProgress = true;
|
||||||
@@ -21,88 +21,96 @@ _textPartOut = (_this select 3) select 6;
|
|||||||
_traderID = (_this select 3) select 7;
|
_traderID = (_this select 3) select 7;
|
||||||
_bos = 0;
|
_bos = 0;
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
if(_buy_o_sell == "sell") then {
|
||||||
_qty = {_x == _part_in} count magazines player;
|
|
||||||
} else {
|
|
||||||
|
|
||||||
if (_part_in isKindOf "Air") then {
|
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_air];
|
|
||||||
} else {
|
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
|
|
||||||
};
|
|
||||||
_qty = count _obj;
|
|
||||||
_bos = 1;
|
_bos = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_qty >= _qty_in) then {
|
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
||||||
|
|
||||||
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
|
||||||
|
|
||||||
[1,1] call dayz_HungerThirst;
|
[1,1] call dayz_HungerThirst;
|
||||||
// force animation
|
// force animation
|
||||||
player playActionNow "Medic";
|
player playActionNow "Medic";
|
||||||
|
|
||||||
r_interrupt = false;
|
r_interrupt = false;
|
||||||
|
_animState = animationState player;
|
||||||
|
r_doLoop = true;
|
||||||
|
_started = false;
|
||||||
|
_finished = false;
|
||||||
|
|
||||||
|
while {r_doLoop} do {
|
||||||
_animState = animationState player;
|
_animState = animationState player;
|
||||||
r_doLoop = true;
|
_isMedic = ["medic",_animState] call fnc_inString;
|
||||||
_started = false;
|
if (_isMedic) then {
|
||||||
_finished = false;
|
_started = true;
|
||||||
|
|
||||||
while {r_doLoop} do {
|
|
||||||
_animState = animationState player;
|
|
||||||
_isMedic = ["medic",_animState] call fnc_inString;
|
|
||||||
if (_isMedic) then {
|
|
||||||
_started = true;
|
|
||||||
};
|
|
||||||
if (_started and !_isMedic) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
_finished = true;
|
|
||||||
};
|
|
||||||
if (r_interrupt) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
};
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
};
|
||||||
r_doLoop = false;
|
if (_started and !_isMedic) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
_finished = true;
|
||||||
|
};
|
||||||
|
if (r_interrupt) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
};
|
||||||
|
sleep 0.1;
|
||||||
|
};
|
||||||
|
r_doLoop = false;
|
||||||
|
|
||||||
if (!_finished) exitWith {
|
if (!_finished) exitWith {
|
||||||
r_interrupt = false;
|
r_interrupt = false;
|
||||||
if (vehicle player == player) then {
|
if (vehicle player == player) then {
|
||||||
[objNull, player, rSwitchMove,""] call RE;
|
[objNull, player, rSwitchMove,""] call RE;
|
||||||
player playActionNow "stop";
|
player playActionNow "stop";
|
||||||
|
};
|
||||||
|
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_finished) then {
|
||||||
|
|
||||||
|
_canAfford = false;
|
||||||
|
if(_bos == 1) then {
|
||||||
|
|
||||||
|
_distance = dayz_sellDistance_vehicle;
|
||||||
|
if (_part_in isKindOf "Air") then {
|
||||||
|
_distance = dayz_sellDistance_air;
|
||||||
|
};
|
||||||
|
if (_part_in isKindOf "Ship") then {
|
||||||
|
_distance = dayz_sellDistance_boat;
|
||||||
|
};
|
||||||
|
_count = {(typeOf _x) == _part_in} count (nearestObjects [(getPosATL player), [_part_in], _distance]);
|
||||||
|
if (_count >= _qty_in) then {
|
||||||
|
_canAfford = true;
|
||||||
|
};
|
||||||
|
diag_log format["DEBUG vehicle sell count: %1", _count];
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
//buy
|
||||||
|
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
|
||||||
|
_total_currency = call epoch_totalCurrency;
|
||||||
|
_return_change = _total_currency - _trade_total;
|
||||||
|
if (_return_change >= 0) then {
|
||||||
|
_canAfford = true;
|
||||||
};
|
};
|
||||||
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_finished) then {
|
|
||||||
|
|
||||||
// Double check for items
|
if (_canAfford) then {
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
_qty = {_x == _part_in} count magazines player;
|
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||||
|
// if (isNil "_obj") then { _obj = "Unknown Vehicle" };
|
||||||
|
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
||||||
|
if(_bos == 1) then {
|
||||||
|
// Selling
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
||||||
} else {
|
} else {
|
||||||
if (_part_in isKindOf "AIR") then {
|
// Buying
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_air];
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
||||||
} else {
|
|
||||||
_obj = nearestObjects [(getPosATL player), [_part_in], dayz_sellDistance_vehicle];
|
|
||||||
};
|
|
||||||
_qty = count _obj;
|
|
||||||
};
|
};
|
||||||
|
publicVariableServer "PVDZE_obj_Trade";
|
||||||
if (_qty >= _qty_in) then {
|
|
||||||
|
|
||||||
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
|
||||||
if (isNil "_obj") then { _obj = "Unknown Vehicle" };
|
|
||||||
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
|
||||||
if(_bos == 1) then {
|
|
||||||
// Selling
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
|
||||||
} else {
|
|
||||||
// Buying
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
|
||||||
};
|
|
||||||
publicVariableServer "PVDZE_obj_Trade";
|
|
||||||
|
|
||||||
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
||||||
|
|
||||||
|
if(_buy_o_sell == "buy") then {
|
||||||
|
|
||||||
waitUntil {!isNil "dayzTradeResult"};
|
waitUntil {!isNil "dayzTradeResult"};
|
||||||
|
|
||||||
@@ -110,125 +118,143 @@ if (_qty >= _qty_in) then {
|
|||||||
|
|
||||||
if(dayzTradeResult == "PASS") then {
|
if(dayzTradeResult == "PASS") then {
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
// First select key color
|
||||||
|
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
|
||||||
|
|
||||||
// First select key color
|
// then select number from 1 - 2500
|
||||||
_keyColor = ["Green","Red","Blue","Yellow","Black"] call BIS_fnc_selectRandom;
|
_keyNumber = (floor(random 2500)) + 1;
|
||||||
|
|
||||||
// then select number from 1 - 2500
|
// Combine to key (eg.ItemKeyYellow2494) classname
|
||||||
_keyNumber = (floor(random 2500)) + 1;
|
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
|
||||||
|
|
||||||
// Combine to key (eg.ItemKeyYellow2494) classname
|
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
|
||||||
_keySelected = format[("ItemKey%1%2"),_keyColor,_keyNumber];
|
|
||||||
|
|
||||||
_isKeyOK = isClass(configFile >> "CfgWeapons" >> _keySelected);
|
|
||||||
|
|
||||||
_config = _keySelected;
|
_config = _keySelected;
|
||||||
_isOk = [player,_config] call BIS_fnc_invAdd;
|
_isOk = [player,_config] call BIS_fnc_invAdd;
|
||||||
waitUntil {!isNil "_isOk"};
|
|
||||||
if (_isOk and _isKeyOK) then {
|
|
||||||
|
|
||||||
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
|
waitUntil {!isNil "_isOk"};
|
||||||
if(_removed == _qty_in) then {
|
|
||||||
_dir = round(random 360);
|
|
||||||
|
|
||||||
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
|
if (_isOk and _isKeyOK) then {
|
||||||
if(count _helipad > 0) then {
|
|
||||||
_location = (getPosATL (_helipad select 0));
|
|
||||||
} else {
|
|
||||||
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
|
|
||||||
};
|
|
||||||
|
|
||||||
//place vehicle spawn marker (local)
|
|
||||||
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
|
|
||||||
|
|
||||||
_location = (getPosATL _veh);
|
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
||||||
|
if (_done) then {
|
||||||
|
|
||||||
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
|
// spawn vehicle
|
||||||
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
|
_dir = round(random 360);
|
||||||
publicVariableServer "PVDZE_veh_Publish2";
|
|
||||||
|
_helipad = nearestObjects [player, ["HeliHCivil","HeliHempty"], 100];
|
||||||
cutText [format[(localize "STR_EPOCH_ACTIONS_11"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
|
if(count _helipad > 0) then {
|
||||||
|
_location = (getPosATL (_helipad select 0));
|
||||||
} else {
|
} else {
|
||||||
player removeMagazine _keySelected;
|
_location = [(position player),0,20,1,0,2000,0] call BIS_fnc_findSafePos;
|
||||||
};
|
};
|
||||||
} else {
|
|
||||||
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
|
//place vehicle spawn marker (local)
|
||||||
|
_veh = createVehicle ["Sign_arrow_down_large_EP1", _location, [], 0, "CAN_COLLIDE"];
|
||||||
|
|
||||||
|
_location = (getPosATL _veh);
|
||||||
|
|
||||||
|
//["PVDZE_veh_Publish",[_veh,[_dir,_location],_part_out,false,_keySelected]] call callRpcProcedure;
|
||||||
|
PVDZE_veh_Publish2 = [_veh,[_dir,_location],_part_out,false,_keySelected,_activatingPlayer];
|
||||||
|
publicVariableServer "PVDZE_veh_Publish2";
|
||||||
|
|
||||||
|
cutText [format[(localize "STR_EPOCH_ACTIONS_11"),_qty_in,_textPartIn,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
|
cutText [(localize "str_epoch_player_107"), "PLAIN DOWN"];
|
||||||
_obj = _obj select 0;
|
|
||||||
|
|
||||||
//check to make sure vehicle has no more than 75% average tire damage
|
|
||||||
_hitpoints = _obj call vehicle_getHitpoints;
|
|
||||||
_okToSell = true;
|
|
||||||
|
|
||||||
// count parts
|
|
||||||
_tires = 0;
|
|
||||||
|
|
||||||
// total damage
|
|
||||||
_tireDmg = 0;
|
|
||||||
|
|
||||||
_damage = 0;
|
|
||||||
{
|
|
||||||
if(["Wheel",_x,false] call fnc_inString) then {
|
|
||||||
_damage = [_obj,_x] call object_getHit;
|
|
||||||
_tireDmg = _tireDmg + _damage;
|
|
||||||
_tires = _tires + 1;
|
|
||||||
};
|
|
||||||
} forEach _hitpoints;
|
|
||||||
|
|
||||||
// find average tire damage
|
|
||||||
if(_tireDmg > 0 and _tires > 0) then {
|
|
||||||
if((_tireDmg / _tires) > 0.75) then {
|
|
||||||
_okToSell = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
if(local _obj and !isNull _obj and alive _obj) then {
|
|
||||||
|
|
||||||
if(_okToSell) then {
|
|
||||||
|
|
||||||
for "_x" from 1 to _qty_out do {
|
|
||||||
player addMagazine _part_out;
|
|
||||||
};
|
|
||||||
|
|
||||||
_objectID = _obj getVariable ["ObjectID","0"];
|
|
||||||
_objectUID = _obj getVariable ["ObjectUID","0"];
|
|
||||||
|
|
||||||
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
|
|
||||||
publicVariableServer "PVDZE_obj_Delete";
|
|
||||||
|
|
||||||
deleteVehicle _obj;
|
|
||||||
|
|
||||||
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
|
||||||
|
|
||||||
} else {
|
|
||||||
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
|
|
||||||
};
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
|
||||||
s_player_parts_crtl = -1;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
dayzTradeResult = nil;
|
} else {
|
||||||
|
|
||||||
|
//sell
|
||||||
|
_distance = dayz_sellDistance_vehicle;
|
||||||
|
if (_part_in isKindOf "Air") then {
|
||||||
|
_distance = dayz_sellDistance_air;
|
||||||
|
};
|
||||||
|
if (_part_in isKindOf "Ship") then {
|
||||||
|
_distance = dayz_sellDistance_boat;
|
||||||
|
};
|
||||||
|
|
||||||
|
_objects = nearestObjects [(getPosATL player), [_part_in], _distance];
|
||||||
|
|
||||||
|
diag_log format["DEBUG vehicle sell objects: %1", _objects];
|
||||||
|
|
||||||
|
_qty = ({(typeOf _x) == _part_in} count _objects);
|
||||||
|
|
||||||
|
if (_qty >= _qty_in) then {
|
||||||
|
|
||||||
|
_obj = (_objects select 0);
|
||||||
|
|
||||||
|
//check to make sure vehicle has no more than 75% average tire damage
|
||||||
|
_hitpoints = _obj call vehicle_getHitpoints;
|
||||||
|
_okToSell = true;
|
||||||
|
|
||||||
|
// count parts
|
||||||
|
_tires = 0;
|
||||||
|
|
||||||
|
// total damage
|
||||||
|
_tireDmg = 0;
|
||||||
|
|
||||||
|
_damage = 0;
|
||||||
|
{
|
||||||
|
if(["Wheel",_x,false] call fnc_inString) then {
|
||||||
|
_damage = [_obj,_x] call object_getHit;
|
||||||
|
_tireDmg = _tireDmg + _damage;
|
||||||
|
_tires = _tires + 1;
|
||||||
|
};
|
||||||
|
} forEach _hitpoints;
|
||||||
|
|
||||||
|
// find average tire damage
|
||||||
|
if(_tireDmg > 0 and _tires > 0) then {
|
||||||
|
if((_tireDmg / _tires) > 0.75) then {
|
||||||
|
_okToSell = false;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
_objectID = _obj getVariable ["ObjectID","0"];
|
||||||
|
_objectUID = _obj getVariable ["ObjectUID","0"];
|
||||||
|
|
||||||
|
_notSetup = (_objectID == "0" && _objectUID == "0");
|
||||||
|
|
||||||
|
if(local _obj and !isNull _obj and alive _obj and !_notSetup) then {
|
||||||
|
|
||||||
|
if(_okToSell) then {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//if(_objectID != "0" && _objectUID != "0") then {
|
||||||
|
|
||||||
|
PVDZE_obj_Delete = [_objectID,_objectUID,_activatingPlayer];
|
||||||
|
publicVariableServer "PVDZE_obj_Delete";
|
||||||
|
|
||||||
|
deleteVehicle _obj;
|
||||||
|
|
||||||
|
// payout
|
||||||
|
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
|
||||||
|
|
||||||
|
cutText [format[(localize "str_epoch_player_181"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
|
|
||||||
|
|
||||||
|
} else {
|
||||||
|
cutText [format[(localize "str_epoch_player_182"),_textPartIn] , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
} else {
|
||||||
|
cutText [(localize "str_epoch_player_245"), "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
dayzTradeResult = nil;
|
||||||
|
|
||||||
} else {
|
|
||||||
_needed = _qty_in - _qty;
|
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
|
if(_buy_o_sell == "buy") then {
|
||||||
};
|
_qty = {_x == _part_in} count magazines player;
|
||||||
|
_needed = _qty_in - _qty;
|
||||||
|
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||||
|
} else {
|
||||||
|
cutText [format[(localize "str_epoch_player_185"),_textPartIn] , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
DZE_ActionInProgress = false;
|
|
||||||
@@ -6,6 +6,8 @@ DZE_ActionInProgress = true;
|
|||||||
|
|
||||||
_activatingPlayer = player;
|
_activatingPlayer = player;
|
||||||
|
|
||||||
|
diag_log format["DEBUG BACKPACK: %1", _this];
|
||||||
|
|
||||||
_part_out = (_this select 3) select 0;
|
_part_out = (_this select 3) select 0;
|
||||||
_part_in = (_this select 3) select 1;
|
_part_in = (_this select 3) select 1;
|
||||||
_qty_out = (_this select 3) select 2;
|
_qty_out = (_this select 3) select 2;
|
||||||
@@ -14,89 +16,96 @@ _buy_o_sell = (_this select 3) select 4;
|
|||||||
_textPartIn = (_this select 3) select 5;
|
_textPartIn = (_this select 3) select 5;
|
||||||
_textPartOut = (_this select 3) select 6;
|
_textPartOut = (_this select 3) select 6;
|
||||||
_traderID = (_this select 3) select 7;
|
_traderID = (_this select 3) select 7;
|
||||||
_bos = 0;
|
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
_bos = 0;
|
||||||
_qty = {_x == _part_in} count magazines player;
|
if(_buy_o_sell == "sell") then {
|
||||||
} else {
|
|
||||||
_bos = 1;
|
_bos = 1;
|
||||||
_qty = 0;
|
|
||||||
_bag = unitBackpack player;
|
|
||||||
_class = typeOf _bag;
|
|
||||||
if(_class == _part_in) then {
|
|
||||||
_qty = 1;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_qty >= _qty_in) then {
|
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
||||||
|
|
||||||
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
|
||||||
|
|
||||||
[1,1] call dayz_HungerThirst;
|
// force animation
|
||||||
// force animation
|
player playActionNow "Medic";
|
||||||
player playActionNow "Medic";
|
[1,1] call dayz_HungerThirst;
|
||||||
|
|
||||||
|
r_interrupt = false;
|
||||||
|
_animState = animationState player;
|
||||||
|
r_doLoop = true;
|
||||||
|
_started = false;
|
||||||
|
_finished = false;
|
||||||
|
|
||||||
r_interrupt = false;
|
while {r_doLoop} do {
|
||||||
_animState = animationState player;
|
_animState = animationState player;
|
||||||
r_doLoop = true;
|
_isMedic = ["medic",_animState] call fnc_inString;
|
||||||
_started = false;
|
if (_isMedic) then {
|
||||||
_finished = false;
|
_started = true;
|
||||||
|
|
||||||
while {r_doLoop} do {
|
|
||||||
_animState = animationState player;
|
|
||||||
_isMedic = ["medic",_animState] call fnc_inString;
|
|
||||||
if (_isMedic) then {
|
|
||||||
_started = true;
|
|
||||||
};
|
|
||||||
if (_started and !_isMedic) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
_finished = true;
|
|
||||||
};
|
|
||||||
if (r_interrupt) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
};
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
};
|
||||||
r_doLoop = false;
|
if (_started and !_isMedic) then {
|
||||||
|
r_doLoop = false;
|
||||||
if (!_finished) exitWith {
|
_finished = true;
|
||||||
r_interrupt = false;
|
|
||||||
if (vehicle player == player) then {
|
|
||||||
[objNull, player, rSwitchMove,""] call RE;
|
|
||||||
player playActionNow "stop";
|
|
||||||
};
|
|
||||||
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
|
if (r_interrupt) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
};
|
||||||
|
sleep 0.1;
|
||||||
|
};
|
||||||
|
r_doLoop = false;
|
||||||
|
|
||||||
if (_finished) then {
|
if (!_finished) exitWith {
|
||||||
|
r_interrupt = false;
|
||||||
|
if (vehicle player == player) then {
|
||||||
|
[objNull, player, rSwitchMove,""] call RE;
|
||||||
|
player playActionNow "stop";
|
||||||
|
};
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
|
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
|
||||||
// Double check we still have parts
|
if (_finished) then {
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
_qty = {_x == _part_in} count magazines player;
|
_canAfford = false;
|
||||||
} else {
|
if(_bos == 1) then {
|
||||||
_qty = 0;
|
|
||||||
_bag = unitBackpack player;
|
//sell
|
||||||
_class = typeOf _bag;
|
_qty = 0;
|
||||||
if(_class == _part_in) then {
|
_bag = unitBackpack player;
|
||||||
_qty = 1;
|
_class = typeOf _bag;
|
||||||
};
|
if(_class == _part_in) then {
|
||||||
|
_qty = 1;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_qty >= _qty_in) then {
|
if (_qty >= _qty_in) then {
|
||||||
|
if((typeOf (unitBackpack player)) == _part_in) then {
|
||||||
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
removeBackpack player;
|
||||||
if (isNil "_bag") then { _bag = "Unknown Backpack" };
|
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
|
||||||
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
|
||||||
if(_bos == 1) then {
|
|
||||||
// Selling
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
|
||||||
} else {
|
|
||||||
// Buying
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
|
||||||
};
|
};
|
||||||
publicVariableServer "PVDZE_obj_Trade";
|
};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
//buy
|
||||||
|
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
|
||||||
|
_total_currency = call epoch_totalCurrency;
|
||||||
|
_return_change = _total_currency - _trade_total;
|
||||||
|
if (_return_change >= 0) then {
|
||||||
|
_canAfford = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_canAfford) then {
|
||||||
|
|
||||||
|
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||||
|
if (isNil "_bag") then { _bag = "Unknown Backpack" };
|
||||||
|
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
||||||
|
if(_bos == 1) then {
|
||||||
|
// Selling
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
||||||
|
} else {
|
||||||
|
// Buying
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
||||||
|
};
|
||||||
|
publicVariableServer "PVDZE_obj_Trade";
|
||||||
|
|
||||||
//diag_log format["DEBUG Starting to wait for answer: %1", PVDZE_obj_Trade];
|
if(_bos == 0) then {
|
||||||
|
|
||||||
waitUntil {!isNil "dayzTradeResult"};
|
waitUntil {!isNil "dayzTradeResult"};
|
||||||
|
|
||||||
@@ -104,38 +113,25 @@ if (_qty >= _qty_in) then {
|
|||||||
|
|
||||||
if(dayzTradeResult == "PASS") then {
|
if(dayzTradeResult == "PASS") then {
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
||||||
|
if (_done) then {
|
||||||
_num_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
|
removeBackpack player;
|
||||||
if(_num_removed == _qty_in) then {
|
player addBackpack _part_out;
|
||||||
removeBackpack player;
|
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
player addBackpack _part_out;
|
|
||||||
};
|
|
||||||
} else {
|
|
||||||
// Sell
|
|
||||||
if((typeOf (unitBackpack player)) == _part_in) then {
|
|
||||||
removeBackpack player;
|
|
||||||
for "_x" from 1 to _qty_out do {
|
|
||||||
player addMagazine _part_out;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
|
||||||
|
|
||||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
|
||||||
s_player_parts_crtl = -1;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
dayzTradeResult = nil;
|
|
||||||
|
} else {
|
||||||
|
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
|
dayzTradeResult = nil;
|
||||||
|
} else {
|
||||||
|
_needed = _qty_in - _qty;
|
||||||
|
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
|
|
||||||
} else {
|
|
||||||
_needed = _qty_in - _qty;
|
|
||||||
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
|
|
||||||
DZE_ActionInProgress = false;
|
DZE_ActionInProgress = false;
|
||||||
@@ -15,8 +15,6 @@ _textPartIn = (_this select 3) select 5;
|
|||||||
_textPartOut = (_this select 3) select 6;
|
_textPartOut = (_this select 3) select 6;
|
||||||
_traderID = (_this select 3) select 7;
|
_traderID = (_this select 3) select 7;
|
||||||
|
|
||||||
_removed = 0;
|
|
||||||
|
|
||||||
_bos = 0;
|
_bos = 0;
|
||||||
if(_buy_o_sell == "sell") then {
|
if(_buy_o_sell == "sell") then {
|
||||||
_bos = 1;
|
_bos = 1;
|
||||||
@@ -29,6 +27,7 @@ r_autoTrade = true;
|
|||||||
while {r_autoTrade} do {
|
while {r_autoTrade} do {
|
||||||
|
|
||||||
_removed = 0;
|
_removed = 0;
|
||||||
|
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
||||||
|
|
||||||
[1,1] call dayz_HungerThirst;
|
[1,1] call dayz_HungerThirst;
|
||||||
player playActionNow "Medic";
|
player playActionNow "Medic";
|
||||||
@@ -113,19 +112,16 @@ while {r_autoTrade} do {
|
|||||||
publicVariableServer "PVDZE_obj_Trade";
|
publicVariableServer "PVDZE_obj_Trade";
|
||||||
|
|
||||||
if(_bos == 0) then {
|
if(_bos == 0) then {
|
||||||
|
|
||||||
// only wait for result when buying
|
// only wait for result when buying
|
||||||
waitUntil {!isNil "dayzTradeResult"};
|
waitUntil {!isNil "dayzTradeResult"};
|
||||||
|
|
||||||
if(dayzTradeResult == "PASS") then {
|
if(dayzTradeResult == "PASS") then {
|
||||||
|
|
||||||
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
||||||
if (_done) then {
|
if (_done) then {
|
||||||
for "_x" from 1 to _qty_out do {
|
for "_x" from 1 to _qty_out do {
|
||||||
player addMagazine _part_out;
|
player addMagazine _part_out;
|
||||||
};
|
};
|
||||||
|
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ DZE_ActionInProgress = true;
|
|||||||
|
|
||||||
_activatingPlayer = player;
|
_activatingPlayer = player;
|
||||||
|
|
||||||
|
diag_log format["DEBUG WEAPONS: %1", _this];
|
||||||
|
|
||||||
_part_out = (_this select 3) select 0;
|
_part_out = (_this select 3) select 0;
|
||||||
_part_in = (_this select 3) select 1;
|
_part_in = (_this select 3) select 1;
|
||||||
_qty_out = (_this select 3) select 2;
|
_qty_out = (_this select 3) select 2;
|
||||||
@@ -14,118 +16,170 @@ _buy_o_sell = (_this select 3) select 4;
|
|||||||
_textPartIn = (_this select 3) select 5;
|
_textPartIn = (_this select 3) select 5;
|
||||||
_textPartOut = (_this select 3) select 6;
|
_textPartOut = (_this select 3) select 6;
|
||||||
_traderID = (_this select 3) select 7;
|
_traderID = (_this select 3) select 7;
|
||||||
_bos = 0;
|
|
||||||
|
|
||||||
if(_buy_o_sell == "buy") then {
|
_bos = 0;
|
||||||
_qty = {_x == _part_in} count magazines player;
|
_abort = false;
|
||||||
|
_msg = "";
|
||||||
|
if(_buy_o_sell == "sell") then {
|
||||||
|
_bos = 1;
|
||||||
|
|
||||||
|
_msg = "Need the weapon in your hands before you can sell it.";
|
||||||
|
_config = (configFile >> "CfgWeapons" >> _part_in);
|
||||||
|
_configName = configName(_config);
|
||||||
|
|
||||||
|
_abort = (!(_configName in (weapons player)));
|
||||||
|
|
||||||
|
if(_isToolBelt or _isBinocs) then {
|
||||||
|
_msg = "Need the item on your toolbelt before you can sell it.";
|
||||||
|
};
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
_qty = {_x == _part_in} count weapons player;
|
|
||||||
_bos = 1;
|
// buying item type must NOT exist if rifle or pistol
|
||||||
|
_msg = "Drop or sell your current weapon before you can buy a new one.";
|
||||||
|
_config = (configFile >> "CfgWeapons" >> _part_out);
|
||||||
|
_configName = configName(_config);
|
||||||
|
_wepType = getNumber(_config >> "Type");
|
||||||
|
|
||||||
|
_isPistol = (_wepType == 2);
|
||||||
|
_isRifle = (_wepType == 1);
|
||||||
|
_isToolBelt = (_wepType == 131072);
|
||||||
|
_isBinocs = (_wepType == 4096);
|
||||||
|
|
||||||
|
if (_isRifle) then {
|
||||||
|
_abort = ((primaryWeapon player) != "");
|
||||||
|
};
|
||||||
|
if (_isPistol) then {
|
||||||
|
_secondaryWeapon = "";
|
||||||
|
{
|
||||||
|
if ((getNumber (configFile >> "CfgWeapons" >> _x >> "Type")) == 2) exitWith {
|
||||||
|
_secondaryWeapon = _x;
|
||||||
|
};
|
||||||
|
} forEach (weapons player);
|
||||||
|
_abort = (_secondaryWeapon != "");
|
||||||
|
};
|
||||||
|
if(_isToolBelt or _isBinocs) then {
|
||||||
|
_abort = (_configName in (weapons player));
|
||||||
|
_msg = "Drop or sell your current toolbelt item before you can buy a new one.";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
if (_qty >= _qty_in) then {
|
if (_abort) exitWith {
|
||||||
|
cutText [_msg, "PLAIN DOWN"];
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
|
};
|
||||||
|
|
||||||
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
cutText [(localize "str_epoch_player_105"), "PLAIN DOWN"];
|
||||||
|
|
||||||
[1,1] call dayz_HungerThirst;
|
// force animation
|
||||||
// force animation
|
player playActionNow "Medic";
|
||||||
player playActionNow "Medic";
|
[1,1] call dayz_HungerThirst;
|
||||||
|
|
||||||
//_dis=20;
|
r_interrupt = false;
|
||||||
//_sfx = "repair";
|
_animState = animationState player;
|
||||||
//[player,_sfx,0,false,_dis] call dayz_zombieSpeak;
|
r_doLoop = true;
|
||||||
//[player,_dis,true,(getPosATL player)] spawn player_alertZombies;
|
_started = false;
|
||||||
|
_finished = false;
|
||||||
r_interrupt = false;
|
|
||||||
|
while {r_doLoop} do {
|
||||||
_animState = animationState player;
|
_animState = animationState player;
|
||||||
r_doLoop = true;
|
_isMedic = ["medic",_animState] call fnc_inString;
|
||||||
_started = false;
|
if (_isMedic) then {
|
||||||
_finished = false;
|
_started = true;
|
||||||
|
|
||||||
while {r_doLoop} do {
|
|
||||||
_animState = animationState player;
|
|
||||||
_isMedic = ["medic",_animState] call fnc_inString;
|
|
||||||
if (_isMedic) then {
|
|
||||||
_started = true;
|
|
||||||
};
|
|
||||||
if (_started and !_isMedic) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
_finished = true;
|
|
||||||
};
|
|
||||||
if (r_interrupt) then {
|
|
||||||
r_doLoop = false;
|
|
||||||
};
|
|
||||||
sleep 0.1;
|
|
||||||
};
|
};
|
||||||
r_doLoop = false;
|
if (_started and !_isMedic) then {
|
||||||
|
r_doLoop = false;
|
||||||
if (!_finished) exitWith {
|
_finished = true;
|
||||||
r_interrupt = false;
|
|
||||||
if (vehicle player == player) then {
|
|
||||||
[objNull, player, rSwitchMove,""] call RE;
|
|
||||||
player playActionNow "stop";
|
|
||||||
};
|
|
||||||
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
|
||||||
};
|
};
|
||||||
|
if (r_interrupt) then {
|
||||||
|
r_doLoop = false;
|
||||||
|
};
|
||||||
|
sleep 0.1;
|
||||||
|
};
|
||||||
|
r_doLoop = false;
|
||||||
|
|
||||||
if (_finished) then {
|
if (!_finished) exitWith {
|
||||||
|
r_interrupt = false;
|
||||||
|
if (vehicle player == player) then {
|
||||||
|
[objNull, player, rSwitchMove,""] call RE;
|
||||||
|
player playActionNow "stop";
|
||||||
|
};
|
||||||
|
DZE_ActionInProgress = false;
|
||||||
|
cutText [(localize "str_epoch_player_106") , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
|
|
||||||
// double check for all parts
|
if (_finished) then {
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
_qty = {_x == _part_in} count magazines player;
|
|
||||||
} else {
|
|
||||||
_qty = {_x == _part_in} count weapons player;
|
|
||||||
};
|
|
||||||
|
|
||||||
|
_canAfford = false;
|
||||||
|
if(_bos == 1) then {
|
||||||
|
|
||||||
|
//sell
|
||||||
|
_qty = {_x == _part_in} count weapons player;
|
||||||
if (_qty >= _qty_in) then {
|
if (_qty >= _qty_in) then {
|
||||||
|
_part_inClass = configFile >> "CfgWeapons" >> _part_in;
|
||||||
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
_removed = ([player,_part_inClass,_qty_in] call BIS_fnc_invRemove);
|
||||||
if (isNil "_part_out") then { _part_out = "Unknown Weapon/Magazine" };
|
if (_removed == _qty_in) then {
|
||||||
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
_canAfford = [[[_part_out,_qty_out]],1] call epoch_returnChange;
|
||||||
if(_bos == 1) then {
|
|
||||||
// Selling
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
|
||||||
} else {
|
|
||||||
// Buying
|
|
||||||
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
|
||||||
};
|
};
|
||||||
publicVariableServer "PVDZE_obj_Trade";
|
};
|
||||||
|
|
||||||
|
} else {
|
||||||
|
|
||||||
|
//buy
|
||||||
|
_trade_total = [[_part_in,_qty_in]] call epoch_itemCost;
|
||||||
|
_total_currency = call epoch_totalCurrency;
|
||||||
|
_return_change = _total_currency - _trade_total;
|
||||||
|
if (_return_change >= 0) then {
|
||||||
|
_canAfford = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
if (_canAfford) then {
|
||||||
|
|
||||||
|
//["PVDZE_obj_Trade",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||||
|
if (isNil "_part_out") then { _part_out = "Unknown Weapon/Magazine" };
|
||||||
|
if (isNil "inTraderCity") then { inTraderCity = "Unknown Trader City" };
|
||||||
|
if(_bos == 1) then {
|
||||||
|
// Selling
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_in,inTraderCity,_part_out,_qty_out];
|
||||||
|
} else {
|
||||||
|
// Buying
|
||||||
|
PVDZE_obj_Trade = [_activatingPlayer,_traderID,_bos,_part_out,inTraderCity,_part_in,_qty_in];
|
||||||
|
};
|
||||||
|
publicVariableServer "PVDZE_obj_Trade";
|
||||||
|
|
||||||
|
if(_bos == 0) then {
|
||||||
|
|
||||||
waitUntil {!isNil "dayzTradeResult"};
|
waitUntil {!isNil "dayzTradeResult"};
|
||||||
|
|
||||||
//diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
//diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||||
|
|
||||||
if(dayzTradeResult == "PASS") then {
|
if(dayzTradeResult == "PASS") then {
|
||||||
|
|
||||||
_removed = ([player,_part_in,_qty_in] call BIS_fnc_invRemove);
|
_done = [[[_part_in,_qty_in]],0] call epoch_returnChange;
|
||||||
|
if (_done) then {
|
||||||
if(_removed == _qty_in) then {
|
player addWeapon _part_out;
|
||||||
for "_x" from 1 to _qty_out do {
|
|
||||||
if(_buy_o_sell == "buy") then {
|
|
||||||
player addWeapon _part_out;
|
|
||||||
} else {
|
|
||||||
player addMagazine _part_out;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
|
||||||
s_player_parts_crtl = -1;
|
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
cutText [format[(localize "str_epoch_player_183"),_textPartOut] , "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
dayzTradeResult = nil;
|
} else {
|
||||||
|
// selling
|
||||||
|
cutText [format[(localize "str_epoch_player_186"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||||
};
|
};
|
||||||
};
|
|
||||||
|
|
||||||
} else {
|
dayzTradeResult = nil;
|
||||||
_needed = _qty_in - _qty;
|
} else {
|
||||||
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
if(_bos == 0) then {
|
||||||
|
_qty = {_x == _part_in} count magazines player;
|
||||||
|
} else {
|
||||||
|
_qty = {_x == _part_in} count weapons player;
|
||||||
|
};
|
||||||
|
_needed = _qty_in - _qty;
|
||||||
|
cutText [format[(localize "str_epoch_player_184"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
DZE_ActionInProgress = false;
|
DZE_ActionInProgress = false;
|
||||||
|
|||||||
@@ -111,7 +111,7 @@ _allowedDistance = 4;
|
|||||||
_isAir = cursorTarget isKindOf "Air";
|
_isAir = cursorTarget isKindOf "Air";
|
||||||
_isShip = cursorTarget isKindOf "Ship";
|
_isShip = cursorTarget isKindOf "Ship";
|
||||||
if(_isAir or _isShip) then {
|
if(_isAir or _isShip) then {
|
||||||
_allowedDistance = 6;
|
_allowedDistance = 8;
|
||||||
};
|
};
|
||||||
|
|
||||||
if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target
|
if (!isNull cursorTarget and !_inVehicle and !_isPZombie and (player distance cursorTarget < _allowedDistance) and _canDo) then { //Has some kind of target
|
||||||
|
|||||||
@@ -123,7 +123,7 @@ TraderDialogLoadItemList = {
|
|||||||
if (_name isKindOf "Ship") then {
|
if (_name isKindOf "Ship") then {
|
||||||
_distance = dayz_sellDistance_boat;
|
_distance = dayz_sellDistance_boat;
|
||||||
};
|
};
|
||||||
_count = {(typeOf _x) == _name} count (nearestObjects [player, [_name], _distance]);
|
_count = {(typeOf _x) == _name} count (nearestObjects [(getPosATL player), [_name], _distance]);
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -27,7 +27,6 @@
|
|||||||
5 "_30"
|
5 "_30"
|
||||||
5 "_ied"
|
5 "_ied"
|
||||||
5 "_CRV7"
|
5 "_CRV7"
|
||||||
5 "_MEEWS"
|
|
||||||
5 "_SMAW"
|
5 "_SMAW"
|
||||||
5 "_GRAD"
|
5 "_GRAD"
|
||||||
5 "_SABOT"
|
5 "_SABOT"
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
move these to arma 2 oa root.
|
Move these to arma 2 oa root.
|
||||||
2
Server Files/Configs/DayZ_Epoch_instance_24_Napf.bat
Normal file
2
Server Files/Configs/DayZ_Epoch_instance_24_Napf.bat
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
@echo off
|
||||||
|
start "arma2" /min "Expansion\beta\arma2oaserver.exe" -port=2302 "-config=instance_24_Napf\config.cfg" "-cfg=instance_24_Napf\basic.cfg" "-profiles=instance_24_Napf" -name=instance_24_Napf "-mod=@DayZ_Epoch;@DayZ_Epoch_Server;"
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
@echo off
|
||||||
|
start "arma2" /min "Expansion\beta\arma2oaserver.exe" -port=2302 "-config=instance_25_sauerland\config.cfg" "-cfg=instance_25_sauerland\basic.cfg" "-profiles=instance_25_sauerland" -name=instance_25_sauerland "-mod=@DayZ_Epoch;@DayZ_Epoch_Server;"
|
||||||
79
Server Files/Configs/instance_24_Napf/HiveExt.ini
Normal file
79
Server Files/Configs/instance_24_Napf/HiveExt.ini
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
;This is a comment
|
||||||
|
;Comments above a certain setting will provide it's description
|
||||||
|
|
||||||
|
;The format for a setting is
|
||||||
|
;Variable = Value
|
||||||
|
|
||||||
|
;If you see a commented line of that form, it means that the setting is optional, and the Value shows the default
|
||||||
|
;To change from the default, simply uncomment the line and change the Value
|
||||||
|
|
||||||
|
;This configuration file should be placed inside your server instance's configuration directory (like cfgdayz)
|
||||||
|
|
||||||
|
[Time]
|
||||||
|
;Possible values: Local, Custom, Static
|
||||||
|
;You cannot use Static on OFFICIAL Hive, it will just revert to Local
|
||||||
|
Type = Static
|
||||||
|
;If using Custom type, offset from UTC in hours (can be negative as well)
|
||||||
|
;Offset = -8
|
||||||
|
;If using Static type (Hour value always the same on every server start), the value (0-24) to set the Hour to
|
||||||
|
Hour = 13
|
||||||
|
|
||||||
|
[Database]
|
||||||
|
;Hostname or IP of the server to connect to
|
||||||
|
;If you leave this line commented or blank, HiveExt will connect to the OFFICIAL Hive, which requires registration
|
||||||
|
;See support.dayzmod.com for more information on what OFFICIAL Hive means, what are the rules, etc.
|
||||||
|
;If using OFFICIAL hive, the rest of the settings in this section have no effect
|
||||||
|
Host = localhost
|
||||||
|
|
||||||
|
;Currently, only MySQL is supported
|
||||||
|
Type = MySQL
|
||||||
|
|
||||||
|
;Port to connect to. The default is the default listening port of a server of the selected Type
|
||||||
|
;Instead of specifying Port, you can specify Socket and set Value to the socket name
|
||||||
|
Port = 3306
|
||||||
|
|
||||||
|
;Database name to connect to.
|
||||||
|
Database = dayz_epoch
|
||||||
|
|
||||||
|
;Username to connect with
|
||||||
|
Username = dayz
|
||||||
|
;Password to authenticate with (default is blank)
|
||||||
|
Password = 123456
|
||||||
|
|
||||||
|
;If using OFFICIAL hive, the settings in this section have no effect, appropriate layout will be used
|
||||||
|
[Characters]
|
||||||
|
;The field name that Player's IDs are stored in (unique per game license)
|
||||||
|
;Some table layouts have this as PlayerID, and some as PlayerUID, that's why this is configurable
|
||||||
|
;IDField = PlayerUID
|
||||||
|
;The field name that Player's World Position and rotation is stored in
|
||||||
|
;Enables you to run multiple different maps (different instances) off the same character table
|
||||||
|
;WSField = Worldspace
|
||||||
|
|
||||||
|
;If using OFFICIAL hive, the settings in this section have no effect, as it will clean up by itself
|
||||||
|
[Objects]
|
||||||
|
;Which table should the objects be stored and fetched from ?
|
||||||
|
;Table = Object_DATA
|
||||||
|
|
||||||
|
;Negative values will disable this feature
|
||||||
|
;0 means that ALL empty placed items will be deleted every server restart
|
||||||
|
;A positive number is how old (in days) a placed empty item must be, in order for it to be deleted
|
||||||
|
;CleanupPlacedAfterDays = 6
|
||||||
|
|
||||||
|
;Flag indicating whether hiveext should detect vehicles out of map boundaries (X < 0, or Y > 15360) and reset their position to []
|
||||||
|
;Note: YOU MUST have a proper dayz_server.pbo that supports this feature, otherwise you will get script errors
|
||||||
|
;You can find that file under the SQF directory for your server version
|
||||||
|
;ResetOOBVehicles = false
|
||||||
|
|
||||||
|
;If using OFFICIAL hive, the settings in this section have no effect, it will manage objects on its own
|
||||||
|
[ObjectDB]
|
||||||
|
;Setting this to true separates the Object fetches from the Character fetches
|
||||||
|
;That means that the Object Table must be on this other database
|
||||||
|
;Use = false
|
||||||
|
|
||||||
|
;The settings here have the same meaning as in [Database], and are only used if the setting above is set to true
|
||||||
|
;Type = MySQL
|
||||||
|
;Host = localhost
|
||||||
|
;Port = 3306
|
||||||
|
;Database = dayz
|
||||||
|
;Username = root
|
||||||
|
;Password =
|
||||||
35
Server Files/Configs/instance_24_Napf/config.cfg
Normal file
35
Server Files/Configs/instance_24_Napf/config.cfg
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
hostName = "DayZ Epoch Napf Server (1.0.4/103718)";
|
||||||
|
password = "";
|
||||||
|
passwordAdmin = "changeme";
|
||||||
|
maxPlayers = 50;
|
||||||
|
logFile = "server_log.txt";
|
||||||
|
voteThreshold = 2;
|
||||||
|
voteMissionPlayers = 3;
|
||||||
|
reportingIP = "arma2oapc.master.gamespy.com";
|
||||||
|
timeStampFormat = "short";
|
||||||
|
motd[] = {"DayZ Epoch","Have fun!"};
|
||||||
|
motdInterval = 0;
|
||||||
|
vonCodecQuality = 11;
|
||||||
|
disableVoN = 0;
|
||||||
|
kickduplicate = 1;
|
||||||
|
verifySignatures = 2;
|
||||||
|
persistent = 1;
|
||||||
|
BattlEye = 1;
|
||||||
|
doubleIdDetected = "";
|
||||||
|
onUserConnected = "";
|
||||||
|
onUserDisconnected = "";
|
||||||
|
onUnsignedData = "kick (_this select 0)";
|
||||||
|
onHackedData = "kick (_this select 0)";
|
||||||
|
onDifferentData = "";
|
||||||
|
regularCheck = "";
|
||||||
|
requiredBuild = 103718;
|
||||||
|
|
||||||
|
class Missions
|
||||||
|
{
|
||||||
|
class Mission1
|
||||||
|
{
|
||||||
|
template = "DayZ_Epoch_24.Napf";
|
||||||
|
difficulty="veteran";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
79
Server Files/Configs/instance_25_sauerland/HiveExt.ini
Normal file
79
Server Files/Configs/instance_25_sauerland/HiveExt.ini
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
;This is a comment
|
||||||
|
;Comments above a certain setting will provide it's description
|
||||||
|
|
||||||
|
;The format for a setting is
|
||||||
|
;Variable = Value
|
||||||
|
|
||||||
|
;If you see a commented line of that form, it means that the setting is optional, and the Value shows the default
|
||||||
|
;To change from the default, simply uncomment the line and change the Value
|
||||||
|
|
||||||
|
;This configuration file should be placed inside your server instance's configuration directory (like cfgdayz)
|
||||||
|
|
||||||
|
[Time]
|
||||||
|
;Possible values: Local, Custom, Static
|
||||||
|
;You cannot use Static on OFFICIAL Hive, it will just revert to Local
|
||||||
|
Type = Static
|
||||||
|
;If using Custom type, offset from UTC in hours (can be negative as well)
|
||||||
|
;Offset = -8
|
||||||
|
;If using Static type (Hour value always the same on every server start), the value (0-24) to set the Hour to
|
||||||
|
Hour = 13
|
||||||
|
|
||||||
|
[Database]
|
||||||
|
;Hostname or IP of the server to connect to
|
||||||
|
;If you leave this line commented or blank, HiveExt will connect to the OFFICIAL Hive, which requires registration
|
||||||
|
;See support.dayzmod.com for more information on what OFFICIAL Hive means, what are the rules, etc.
|
||||||
|
;If using OFFICIAL hive, the rest of the settings in this section have no effect
|
||||||
|
Host = localhost
|
||||||
|
|
||||||
|
;Currently, only MySQL is supported
|
||||||
|
Type = MySQL
|
||||||
|
|
||||||
|
;Port to connect to. The default is the default listening port of a server of the selected Type
|
||||||
|
;Instead of specifying Port, you can specify Socket and set Value to the socket name
|
||||||
|
Port = 3306
|
||||||
|
|
||||||
|
;Database name to connect to.
|
||||||
|
Database = dayz_epoch
|
||||||
|
|
||||||
|
;Username to connect with
|
||||||
|
Username = dayz
|
||||||
|
;Password to authenticate with (default is blank)
|
||||||
|
Password = 123456
|
||||||
|
|
||||||
|
;If using OFFICIAL hive, the settings in this section have no effect, appropriate layout will be used
|
||||||
|
[Characters]
|
||||||
|
;The field name that Player's IDs are stored in (unique per game license)
|
||||||
|
;Some table layouts have this as PlayerID, and some as PlayerUID, that's why this is configurable
|
||||||
|
;IDField = PlayerUID
|
||||||
|
;The field name that Player's World Position and rotation is stored in
|
||||||
|
;Enables you to run multiple different maps (different instances) off the same character table
|
||||||
|
;WSField = Worldspace
|
||||||
|
|
||||||
|
;If using OFFICIAL hive, the settings in this section have no effect, as it will clean up by itself
|
||||||
|
[Objects]
|
||||||
|
;Which table should the objects be stored and fetched from ?
|
||||||
|
;Table = Object_DATA
|
||||||
|
|
||||||
|
;Negative values will disable this feature
|
||||||
|
;0 means that ALL empty placed items will be deleted every server restart
|
||||||
|
;A positive number is how old (in days) a placed empty item must be, in order for it to be deleted
|
||||||
|
;CleanupPlacedAfterDays = 6
|
||||||
|
|
||||||
|
;Flag indicating whether hiveext should detect vehicles out of map boundaries (X < 0, or Y > 15360) and reset their position to []
|
||||||
|
;Note: YOU MUST have a proper dayz_server.pbo that supports this feature, otherwise you will get script errors
|
||||||
|
;You can find that file under the SQF directory for your server version
|
||||||
|
;ResetOOBVehicles = false
|
||||||
|
|
||||||
|
;If using OFFICIAL hive, the settings in this section have no effect, it will manage objects on its own
|
||||||
|
[ObjectDB]
|
||||||
|
;Setting this to true separates the Object fetches from the Character fetches
|
||||||
|
;That means that the Object Table must be on this other database
|
||||||
|
;Use = false
|
||||||
|
|
||||||
|
;The settings here have the same meaning as in [Database], and are only used if the setting above is set to true
|
||||||
|
;Type = MySQL
|
||||||
|
;Host = localhost
|
||||||
|
;Port = 3306
|
||||||
|
;Database = dayz
|
||||||
|
;Username = root
|
||||||
|
;Password =
|
||||||
35
Server Files/Configs/instance_25_sauerland/config.cfg
Normal file
35
Server Files/Configs/instance_25_sauerland/config.cfg
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
hostName = "DayZ Epoch Sauerland Server (1.0.4/103718)";
|
||||||
|
password = "";
|
||||||
|
passwordAdmin = "changeme";
|
||||||
|
maxPlayers = 50;
|
||||||
|
logFile = "server_log.txt";
|
||||||
|
voteThreshold = 2;
|
||||||
|
voteMissionPlayers = 3;
|
||||||
|
reportingIP = "arma2oapc.master.gamespy.com";
|
||||||
|
timeStampFormat = "short";
|
||||||
|
motd[] = {"DayZ Epoch","Have fun!"};
|
||||||
|
motdInterval = 0;
|
||||||
|
vonCodecQuality = 11;
|
||||||
|
disableVoN = 0;
|
||||||
|
kickduplicate = 1;
|
||||||
|
verifySignatures = 2;
|
||||||
|
persistent = 1;
|
||||||
|
BattlEye = 1;
|
||||||
|
doubleIdDetected = "";
|
||||||
|
onUserConnected = "";
|
||||||
|
onUserDisconnected = "";
|
||||||
|
onUnsignedData = "kick (_this select 0)";
|
||||||
|
onHackedData = "kick (_this select 0)";
|
||||||
|
onDifferentData = "";
|
||||||
|
regularCheck = "";
|
||||||
|
requiredBuild = 103718;
|
||||||
|
|
||||||
|
class Missions
|
||||||
|
{
|
||||||
|
class Mission1
|
||||||
|
{
|
||||||
|
template = "DayZ_Epoch_25.sauerland";
|
||||||
|
difficulty="veteran";
|
||||||
|
};
|
||||||
|
|
||||||
|
};
|
||||||
@@ -1,88 +1,33 @@
|
|||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Set any buy value of copper to 2 silver
|
-- Set any buy value of copper to 2 silver
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[2,"ItemCopperBar10oz",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[4,"ItemSilverBar10oz",1]' WHERE `buy`='[2,"ItemCopperBar10oz",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[1,"ItemCopperBar10oz",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar10oz",1]' WHERE `buy`='[1,"ItemCopperBar10oz",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[9,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[9,"ItemSilverBar",1]' WHERE `buy`='[9,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[8,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[8,"ItemSilverBar",1]' WHERE `buy`='[8,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[7,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[7,"ItemSilverBar",1]' WHERE `buy`='[7,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[6,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[6,"ItemSilverBar",1]' WHERE `buy`='[6,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[5,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[5,"ItemSilverBar",1]' WHERE `buy`='[5,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[4,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[4,"ItemSilverBar",1]' WHERE `buy`='[4,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[3,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[3,"ItemSilverBar",1]' WHERE `buy`='[3,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[2,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[2,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[1,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemSilverBar",1]' WHERE `buy`='[1,"ItemCopperBar",1]';
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Set any sell value of copper to 1 silver
|
-- Set any sell value of copper to 1 silver only run if not updating
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[2,"ItemCopperBar10oz",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[2,"ItemSilverBar10oz",1]' WHERE `sell`='[2,"ItemCopperBar10oz",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[1,"ItemCopperBar10oz",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar10oz",1]' WHERE `sell`='[1,"ItemCopperBar10oz",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[9,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[9,"ItemSilverBar",1]' WHERE `sell`='[9,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[8,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[8,"ItemSilverBar",1]' WHERE `sell`='[8,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[7,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[7,"ItemSilverBar",1]' WHERE `sell`='[7,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[6,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[6,"ItemSilverBar",1]' WHERE `sell`='[6,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[5,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[5,"ItemSilverBar",1]' WHERE `sell`='[5,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[4,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[4,"ItemSilverBar",1]' WHERE `sell`='[4,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[3,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[3,"ItemSilverBar",1]' WHERE `sell`='[3,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[2,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[2,"ItemSilverBar",1]' WHERE `sell`='[2,"ItemCopperBar",1]';
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[1,"ItemCopperBar",1]';
|
UPDATE `Traders_DATA` SET `sell`= '[1,"ItemSilverBar",1]' WHERE `sell`='[1,"ItemCopperBar",1]';
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- Set any buy value of 30 silver to 1 gold
|
|
||||||
-- ----------------------------
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[1,"ItemGoldBar",1]' WHERE `buy`='[3,"ItemSilverBar10oz",1]]';
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
|
|
||||||
-- ----------------------------
|
|
||||||
-- PRICE REVIEW
|
|
||||||
-- ----------------------------
|
|
||||||
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[4,"ItemGoldBar10oz",1]' WHERE `item`='["BAF_LRR_scoped",3]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[5,"ItemGoldBar",1]' WHERE `item`='["5Rnd_86x70_L115A1",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[3,"ItemGoldBar10oz",1]' WHERE `item`='["VSS_vintorez",3]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[3,"ItemGoldBar",1]' WHERE `item`='["20Rnd_9x39_SP5_VSS",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["MK_48_DZ",3]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[3,"ItemGoldBar",1]' WHERE `item`='["100Rnd_762x51_M240",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[3,"ItemGoldBar",1]' WHERE `item`='["100Rnd_762x54_PK",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["m240_scoped_EP1_DZE",3]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["M249_m145_EP1_DZE",3]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar",1]' WHERE `item`='["200Rnd_556x45_M249",1]';
|
|
||||||
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[6,"ItemBriefcase100oz",1]' WHERE `item`='["HMMWV_M1151_M2_CZ_DES_EP1_DZE",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[7,"ItemGoldBar10oz",1]' WHERE `item`='["GAZ_Vodnik_DZE",2]' and `buy`='[6,"ItemGoldBar10oz",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `sell`= '[5,"ItemGoldBar10oz",1]' WHERE `item`='["GAZ_Vodnik_DZE",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_TK_CIV_EP1",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Blue",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Charcoal",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Green",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Orange",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Pink",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Red",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Silver",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_White",2]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar10oz",1]' WHERE `item`='["SUV_Yellow",2]';
|
|
||||||
|
|
||||||
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[5,"ItemGoldBar",1]' WHERE `item`='["PartEngine",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[5,"ItemGoldBar",1]' WHERE `item`='["PartVRotor",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar",1]' WHERE `item`='["PartWheel",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[1,"ItemGoldBar",1]' WHERE `item`='["PartGlass",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar",1]' WHERE `item`='["PartGeneric",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar",1]' WHERE `item`='["PartFueltank",1]';
|
|
||||||
|
|
||||||
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[4,"ItemGoldBar",1]' WHERE `item`='["Binocular_Vector",3]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[4,"ItemGoldBar",1]' WHERE `item`='["NVGoggles",3]';
|
|
||||||
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[1,"ItemGoldBar",1]' WHERE `item`='["FoodrabbitCooked",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[2,"ItemGoldBar",1]' WHERE `item`='["ItemTroutCooked",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[3,"ItemGoldBar",1]' WHERE `item`='["ItemSeaBassCooked",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[4,"ItemGoldBar",1]' WHERE `item`='["ItemTunaCooked",1]';
|
|
||||||
UPDATE `Traders_DATA` SET `buy`= '[1,"ItemSilverBar10oz",1]' WHERE `item`='["FoodMRE",1]';
|
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- WEAPON UPDATE
|
-- WEAPON UPDATE
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
|||||||
BIN
Server Files/Server Files.7z
Normal file
BIN
Server Files/Server Files.7z
Normal file
Binary file not shown.
Reference in New Issue
Block a user