mirror of
https://github.com/EpochModTeam/DayZ-Epoch.git
synced 2025-12-19 18:06:32 +03:00
0.85
This commit is contained in:
@@ -32,7 +32,6 @@ _config = (configFile >> _type >> _classname);
|
||||
_isOk = [player,_config] call BIS_fnc_invAdd;
|
||||
if (_isOk) then {
|
||||
deleteVehicle _holder;
|
||||
/*
|
||||
if (_classname in ["MeleeHatchet","MeleeCrowbar"]) then {
|
||||
|
||||
if (_type == "cfgWeapons") then {
|
||||
@@ -45,7 +44,6 @@ if (_isOk) then {
|
||||
};
|
||||
};
|
||||
};
|
||||
*/
|
||||
} else {
|
||||
_holder setVariable["claimed",0,true];
|
||||
cutText [localize "STR_DAYZ_CODE_2", "PLAIN DOWN"];
|
||||
|
||||
@@ -16,6 +16,13 @@ _bos = 0;
|
||||
if(_buy_o_sell == "buy") then {
|
||||
_qty = {_x == _part_in} count magazines player;
|
||||
} else {
|
||||
|
||||
// SELL ONLY check if item is bulk
|
||||
_bulkItem = "bulk_" + _part_in;
|
||||
_bulkqty = {_x == _bulkItem} count magazines player;
|
||||
|
||||
diag_log format["DEBUG bulk: %1", _bulkItem];
|
||||
|
||||
_bos = 1;
|
||||
_qty = 0;
|
||||
_bag = unitBackpack player;
|
||||
@@ -25,44 +32,120 @@ if(_buy_o_sell == "buy") then {
|
||||
};
|
||||
};
|
||||
|
||||
if (_qty >= _qty_in) then {
|
||||
if (_bulkqty >= 1) then {
|
||||
|
||||
|
||||
// TODO: optimize for one db call only
|
||||
|
||||
_part_in = "bulk_" + _part_in;
|
||||
player removeMagazine _part_in;
|
||||
diag_log format["DEBUG remove magazine %1", _part_in];
|
||||
|
||||
["dayzTradeObject",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||
// increment trader for each
|
||||
for "_x" from 1 to 12 do {
|
||||
["dayzTradeObject",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||
|
||||
waitUntil {!isNil "dayzTradeResult"};
|
||||
|
||||
diag_log format["DEBUG Starting to wait for answer: %1", dayzTradeObject];
|
||||
if(dayzTradeResult == "PASS") then {
|
||||
diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||
};
|
||||
};
|
||||
|
||||
waitUntil {!isNil "dayzTradeResult"};
|
||||
_qty_out = _qty_out * 12;
|
||||
|
||||
diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||
// gold = 36 copper
|
||||
// gold = 6 silver
|
||||
//
|
||||
|
||||
if(dayzTradeResult == "PASS") then {
|
||||
|
||||
if(_buy_o_sell == "buy") then {
|
||||
for "_x" from 1 to _qty_in do {
|
||||
player removeMagazine _part_in;
|
||||
if (_part_out == "ItemSilverBar") then {
|
||||
|
||||
if (_qty_out >= 6) then {
|
||||
|
||||
// find number of gold
|
||||
_gold_out = _qty_out / 6;
|
||||
|
||||
// whole number of gold bars
|
||||
_gold_qty_out = floor _gold_out;
|
||||
|
||||
_part_out = "ItemGoldBar";
|
||||
for "_x" from 1 to _gold_qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
removeBackpack player;
|
||||
player addBackpack _part_out;
|
||||
|
||||
// Find remainder
|
||||
_partial_qty_out = (_gold_out - _gold_qty_out) * 6;
|
||||
|
||||
// whole number of gold bars
|
||||
_silver_qty_out = floor _partial_qty_out;
|
||||
|
||||
_part_out = "ItemSilverBar";
|
||||
for "_x" from 1 to _silver_qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
|
||||
|
||||
} else {
|
||||
// Sell
|
||||
|
||||
for "_x" from 1 to _qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
removeBackpack player;
|
||||
// player addBackpack _part_out;
|
||||
};
|
||||
};
|
||||
|
||||
cutText [format[("Traded %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
} else {
|
||||
|
||||
for "_x" from 1 to _qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
};
|
||||
|
||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
||||
s_player_parts_crtl = -1;
|
||||
cutText [format[("Traded %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
|
||||
dayzTradeResult = nil;
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
|
||||
if (_qty >= _qty_in) then {
|
||||
|
||||
["dayzTradeObject",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||
|
||||
diag_log format["DEBUG Starting to wait for answer: %1", dayzTradeObject];
|
||||
|
||||
waitUntil {!isNil "dayzTradeResult"};
|
||||
|
||||
diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||
|
||||
if(dayzTradeResult == "PASS") then {
|
||||
|
||||
if(_buy_o_sell == "buy") then {
|
||||
for "_x" from 1 to _qty_in do {
|
||||
player removeMagazine _part_in;
|
||||
};
|
||||
removeBackpack player;
|
||||
player addBackpack _part_out;
|
||||
} else {
|
||||
// Sell
|
||||
for "_x" from 1 to _qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
removeBackpack player;
|
||||
// player addBackpack _part_out;
|
||||
};
|
||||
|
||||
cutText [format[("Traded %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
|
||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
||||
s_player_parts_crtl = -1;
|
||||
|
||||
} else {
|
||||
cutText [format[("Insufficient Stock %1"),_textPartOut] , "PLAIN DOWN"];
|
||||
};
|
||||
dayzTradeResult = nil;
|
||||
|
||||
} else {
|
||||
cutText [format[("Insufficient Stock %1"),_textPartOut] , "PLAIN DOWN"];
|
||||
_needed = _qty_in - _qty;
|
||||
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||
};
|
||||
dayzTradeResult = nil;
|
||||
|
||||
} else {
|
||||
_needed = _qty_in - _qty;
|
||||
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||
};
|
||||
@@ -17,52 +17,140 @@ if(_buy_o_sell == "buy") then {
|
||||
_qty = {_x == _part_in} count magazines player;
|
||||
|
||||
} else {
|
||||
// SELL ONLY check if item is bulk
|
||||
_bulkItem = "bulk_" + _part_in;
|
||||
_bulkqty = {_x == _bulkItem} count magazines player;
|
||||
|
||||
diag_log format["DEBUG bulk: %1", _bulkItem];
|
||||
|
||||
|
||||
_qty = {_x == _part_in} count weapons player;
|
||||
_bos = 1;
|
||||
};
|
||||
|
||||
if (_qty >= _qty_in) then {
|
||||
|
||||
|
||||
|
||||
["dayzTradeObject",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||
|
||||
waitUntil {!isNil "dayzTradeResult"};
|
||||
|
||||
diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||
|
||||
if(dayzTradeResult == "PASS") then {
|
||||
|
||||
for "_x" from 1 to _qty_in do {
|
||||
if(_buy_o_sell == "buy") then {
|
||||
player removeMagazine _part_in;
|
||||
} else {
|
||||
player removeWeapon _part_in;
|
||||
};
|
||||
};
|
||||
if (_bulkqty >= 1) then {
|
||||
|
||||
for "_x" from 1 to _qty_out do {
|
||||
if(_buy_o_sell == "buy") then {
|
||||
player addWeapon _part_out;
|
||||
} else {
|
||||
|
||||
// TODO: optimize for one db call only
|
||||
|
||||
_part_in = "bulk_" + _part_in;
|
||||
player removeMagazine _part_in;
|
||||
diag_log format["DEBUG remove magazine %1", _part_in];
|
||||
|
||||
// increment trader for each
|
||||
for "_x" from 1 to 12 do {
|
||||
["dayzTradeObject",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||
|
||||
waitUntil {!isNil "dayzTradeResult"};
|
||||
|
||||
if(dayzTradeResult == "PASS") then {
|
||||
diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
_qty_out = _qty_out * 12;
|
||||
|
||||
// gold = 36 copper
|
||||
// gold = 6 silver
|
||||
//
|
||||
|
||||
if (_part_out == "ItemSilverBar") then {
|
||||
|
||||
if (_qty_out >= 6) then {
|
||||
|
||||
// find number of gold
|
||||
_gold_out = _qty_out / 6;
|
||||
|
||||
// whole number of gold bars
|
||||
_gold_qty_out = floor _gold_out;
|
||||
|
||||
_part_out = "ItemGoldBar";
|
||||
for "_x" from 1 to _gold_qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
|
||||
// Find remainder
|
||||
_partial_qty_out = (_gold_out - _gold_qty_out) * 6;
|
||||
|
||||
// whole number of gold bars
|
||||
_silver_qty_out = floor _partial_qty_out;
|
||||
|
||||
_part_out = "ItemSilverBar";
|
||||
for "_x" from 1 to _silver_qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
for "_x" from 1 to _qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// [player,"repair",0,false] call dayz_zombieSpeak;
|
||||
cutText [format[("Traded %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
|
||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
||||
s_player_parts_crtl = -1;
|
||||
|
||||
} else {
|
||||
cutText [format[("Insufficient Stock %1"),_textPartOut] , "PLAIN DOWN"];
|
||||
|
||||
for "_x" from 1 to _qty_out do {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
cutText [format[("Traded %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
|
||||
dayzTradeResult = nil;
|
||||
|
||||
|
||||
} else {
|
||||
_needed = _qty_in - _qty;
|
||||
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||
|
||||
|
||||
if (_qty >= _qty_in) then {
|
||||
|
||||
["dayzTradeObject",[_activatingPlayer,_traderID,_bos]] call callRpcProcedure;
|
||||
|
||||
waitUntil {!isNil "dayzTradeResult"};
|
||||
|
||||
diag_log format["DEBUG Complete Trade: %1", dayzTradeResult];
|
||||
|
||||
if(dayzTradeResult == "PASS") then {
|
||||
|
||||
for "_x" from 1 to _qty_in do {
|
||||
if(_buy_o_sell == "buy") then {
|
||||
player removeMagazine _part_in;
|
||||
} else {
|
||||
player removeWeapon _part_in;
|
||||
};
|
||||
};
|
||||
|
||||
for "_x" from 1 to _qty_out do {
|
||||
if(_buy_o_sell == "buy") then {
|
||||
player addWeapon _part_out;
|
||||
} else {
|
||||
player addMagazine _part_out;
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
// [player,"repair",0,false] call dayz_zombieSpeak;
|
||||
cutText [format[("Traded %1 %2 for %3 %4"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
|
||||
|
||||
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
|
||||
s_player_parts_crtl = -1;
|
||||
|
||||
} else {
|
||||
cutText [format[("Insufficient Stock %1"),_textPartOut] , "PLAIN DOWN"];
|
||||
};
|
||||
dayzTradeResult = nil;
|
||||
|
||||
|
||||
} else {
|
||||
_needed = _qty_in - _qty;
|
||||
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
|
||||
};
|
||||
};
|
||||
Reference in New Issue
Block a user