more custom stuff

This commit is contained in:
Aaron Clark
2012-11-09 06:48:59 -06:00
parent f8681b1b5a
commit e9e55f912b
14 changed files with 450 additions and 11 deletions

View File

@@ -0,0 +1,21 @@
private["_buy_item1","_buy_item2","_buy_item3","_buy_item4","_buy_item5","_buy_item6","_buy_item7"];
{player removeAction _x} forEach s_player_bank;s_player_bank = [];
_activatingPlayer = _this select 1;
_uid = getPlayerUID player;
if(isNil "dayzBankBalance") then {
dayzPublishBank = [_uid,0,"deposit",_activatingPlayer];
publicVariable "dayzPublishBank";
if (isServer) then {
dayzPublishBank call server_publishBank;
};
};
waitUntil {!isNil "dayzBankBalance"};
cutText [format["You have %1 Gold Bars",dayzBankBalance], "PLAIN DOWN"];
s_player_bankvault_crtl = -1;

View File

@@ -0,0 +1,28 @@
private["_qty","_uid","_buy_item3","_buy_item4","_buy_item5","_buy_item6","_buy_item7"];
{player removeAction _x} forEach s_player_bank;s_player_bank = [];
_activatingPlayer = _this select 1;
_qty = {_x == "ItemGoldBar"} count magazines player;
if ("ItemGoldBar" in magazines player) then {
for "_x" from 1 to _qty do {
player removeMagazine "ItemGoldBar";
};
_uid = getPlayerUID player;
dayzPublishBank = [_uid,_qty,"deposit",_activatingPlayer];
publicVariable "dayzPublishBank";
if (isServer) then {
dayzPublishBank call server_publishBank;
};
[player,"refuel",0,false] call dayz_zombieSpeak;
cutText [format["Deposited %1 Gold Bars",_qty], "PLAIN DOWN"];
} else {
cutText ["Need Gold Bars" , "PLAIN DOWN"];
};
s_player_bankvault_crtl = -1;

View File

@@ -0,0 +1,18 @@
private["_buy_item1","_buy_item2","_buy_item3","_buy_item4","_buy_item5","_buy_item6","_buy_item7"];
{player removeAction _x} forEach s_player_bank;s_player_bank = [];
// [part_out, part_in, qty_out, qty_in,];
_buy_item1 = player addAction ["Withdraw 1 Gold Bar", "\z\addons\dayz_code\actions\bank_withdraw_gold.sqf",["ItemGoldBar",1], 99, true, false, "",""];
_buy_item2 = player addAction ["Withdraw 3 Gold Bars", "\z\addons\dayz_code\actions\bank_withdraw_gold.sqf",["ItemGoldBar",3], 98, true, false, "",""];
_buy_item3 = player addAction ["Withdraw 6 Gold Bars", "\z\addons\dayz_code\actions\bank_withdraw_gold.sqf",["ItemGoldBar",6], 97, true, false, "",""];
_buy_item4 = player addAction ["Withdraw 12 Gold Bars", "\z\addons\dayz_code\actions\bank_withdraw_gold.sqf",["ItemGoldBar",12], 96, true, false, "",""];
_buy_item8 = player addAction ["Cancel", "\z\addons\dayz_code\actions\trade_cancel.sqf",["bank"], 92, true, false, "",""];
s_player_bank set [count s_player_bank,_buy_item1];
s_player_bank set [count s_player_bank,_buy_item2];
s_player_bank set [count s_player_bank,_buy_item3];
s_player_bank set [count s_player_bank,_buy_item4];
s_player_bank set [count s_player_bank,_buy_item8];
s_player_bank_crtl = 1;

View File

@@ -0,0 +1,41 @@
private["_buy_item1","_buy_item2","_buy_item3","_buy_item4","_buy_item5","_buy_item6","_buy_item7"];
_activatingPlayer = _this select 1;
_iarray = _this select 3;
// "ItemGoldBar",1
_part_out = (_iarray) select 0;
_qty_out = (_iarray) select 1;
_uid = getPlayerUID player;
if(isNil "dayzBankBalance") then {
dayzPublishBank = [_uid,0,"deposit",_activatingPlayer];
publicVariable "dayzPublishBank";
if (isServer) then {
dayzPublishBank call server_publishBank;
};
};
waitUntil {!isNil "dayzBankBalance"};
_currentBalance = parseNumber (dayzBankBalance);
if(_currentBalance >= _qty_out) then {
for "_x" from 1 to _qty_out do {
player addMagazine _part_out;
};
dayzPublishBank = [_uid,_qty_out,"withdraw",_activatingPlayer];
publicVariable "dayzPublishBank";
if (isServer) then {
dayzPublishBank call server_publishBank;
};
[player,"refuel",0,false] call dayz_zombieSpeak;
cutText [format["Withdrawn %1 Gold Bars",_qty_out], "PLAIN DOWN"];
} else {
cutText [format["Insufficient funds you have %1 Gold Bars",dayzBankBalance], "PLAIN DOWN"];
};

View File

@@ -0,0 +1,60 @@
private["_activatingPlayer","_trader_id","_category","_action","_id","_type","_loc","_name","_qty","_cost","_qty","_sell","_cur","_order","_tid","_currency","_actionFile","_in","_out","_part","_cat","_cancel","_Display","_File","_textCurrency","_textPart"];
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
// [ _trader_id, _category, _action ];
_activatingPlayer = _this select 1;
_trader_id = (_this select 3) select 0;
_category = (_this select 3) select 1;
dayzTraderMenu = [_activatingPlayer,_trader_id,_category,_action];
publicVariable "dayzTraderMenu";
if (isServer) then {
dayzTraderMenu call server_traders;
};
waitUntil {!isNil "dayzTraderMenuResult"};
//diag_log format["DEBUG Buy: %1", dayzTraderMenuResult];
{
_id = parseNumber (_x select 0);
_type = _x select 1;
_loc = _x select 2;
_name = _x select 3;
_qty = parseNumber (_x select 4);
_cost = parseNumber (_x select 5);
_sell = parseNumber (_x select 6);
_cur = _x select 7;
_cat = _x select 8;
_order = parseNumber (_x select 9);
_tid = parseNumber (_x select 10);
_currency = _x select 11;
_actionFile = _x select 12;
_textPart = getText(configFile >> _type >> _name >> "displayName");
_File = "\z\addons\dayz_code\actions\" + _actionFile + ".sqf";
_part_out = _name;
_part_in = _currency;
_out = 1;
_in = _cost;
_textCurrency = getText(configFile >> "CfgMagazines" >> _part_in >> "displayName");
_Display = "Buy " + _textPart + " for " + str(_cost) + " " + _textCurrency;
// trade_items.sqf | [part_out, part_in, qty_out, qty_in,];
_part = player addAction [_Display, _File,[_part_out,_part_in,_out,_in], _order, true, true, "",""];
//diag_log format["DEBUG TRADER: %1", _part];
s_player_metals set [count s_player_metals,_part];
} forEach dayzTraderMenuResult;
_cancel = player addAction ["Cancel", "\z\addons\dayz_code\actions\trade_cancel.sqf",["medical"], 92, true, false, "",""];
s_player_metals set [count s_player_metals,_cancel];
// Clear Data maybe consider cacheing results
dayzTraderMenuResult = nil;
s_player_parts_crtl = 1;

View File

@@ -0,0 +1,40 @@
private["_hasKnife","_qty","_item","_text","_string","_type","_loop","_meat","_timer"];
_item = _this select 3;
_hasKnife = "ItemKnife" in items player;
_type = typeOf _item;
_hasHarvested = _item getVariable["meatHarvested",false];
_config = configFile >> "CfgSurvival" >> "Meat" >> _type;
player removeAction s_player_butcher;
s_player_butcher = -1;
if (_hasKnife and !_hasHarvested) then {
//Get Animal Type
_loop = true;
_isListed = isClass (_config);
_text = getText (configFile >> "CfgVehicles" >> _type >> "displayName");
player playActionNow "Medic";
[player,"gut",0,false] call dayz_zombieSpeak;
_item setVariable["meatHarvested",true,true];
_qty = 1;
if (_isListed) then {
_qty = getNumber (_config >> "yield");
};
_id = [player,100,true,(getPosATL player)] spawn player_alertZombies;
_array = [_item,_qty];
if (local _item) then {
_array spawn local_gutObjectZ;
} else {
dayzGutBodyZ = _array;
publicVariable "dayzGutBodyZ";
};
sleep 6;
_string = format["Successfully Gutted Zombie",_text,_qty];
cutText [_string, "PLAIN DOWN"];
};

View File

@@ -0,0 +1,61 @@
private["_activatingPlayer","_trader_id","_category","_action","_id","_type","_loc","_name","_qty","_cost","_qty","_sell","_cur","_order","_tid","_currency","_actionFile","_in","_out","_part","_cat","_cancel","_Display","_File","_textCurrency","_textPart"];
{player removeAction _x} forEach s_player_parts;s_player_parts = [];
// [ _trader_id, _category, _action ];
_activatingPlayer = _this select 1;
_trader_id = (_this select 3) select 0;
_category = (_this select 3) select 1;
diag_log format["DEBUG TRADER OBJ: %1", _trader];
dayzTraderMenu = [_activatingPlayer,_trader_id,_category,_action];
publicVariable "dayzTraderMenu";
if (isServer) then {
dayzTraderMenu call server_traders;
};
waitUntil {!isNil "dayzTraderMenuResult"};
//diag_log format["DEBUG Sell: %1", dayzTraderMenuResult];
{
_id = parseNumber (_x select 0);
_type = _x select 1;
_loc = _x select 2;
_name = _x select 3;
_qty = parseNumber (_x select 4);
_cost = parseNumber (_x select 5);
_sell = parseNumber (_x select 6);
_cur = _x select 7;
_cat = _x select 8;
_order = parseNumber (_x select 9);
_tid = parseNumber (_x select 10);
_currency = _x select 11;
_actionFile = _x select 12;
_textPart = getText(configFile >> _type >> _name >> "displayName");
_File = "\z\addons\dayz_code\actions\" + _actionFile + ".sqf";
_part_out = _cur;
_part_in = _name;
_out = _sell;
_in = 1;
_textCurrency = getText(configFile >> "CfgMagazines" >> _part_out >> "displayName");
_Display = "Sell " + _textPart + " for " + str(_sell) + " " + _textCurrency;
// trade_items.sqf | [part_out, part_in, qty_out, qty_in,];
_part = player addAction [_Display, _File,[_part_out,_part_in,_out,_in], _order, true, true, "",""];
//diag_log format["DEBUG TRADER: %1", _part];
s_player_parts set [count s_player_parts,_part];
} forEach dayzTraderMenuResult;
_cancel = player addAction ["Cancel", "\z\addons\dayz_code\actions\trade_cancel.sqf",["medical"], 99, true, false, "",""];
s_player_parts set [count s_player_parts,_cancel];
dayzTraderMenuResult = nil;
s_player_parts_crtl = 1;

View File

@@ -0,0 +1,9 @@
private["_sellgeneric1"];
{player removeAction _x} forEach s_player_tradecans;s_player_tradecans = [];
{player removeAction _x} forEach s_player_metals;s_player_metals = [];
{player removeAction _x} forEach s_player_bank;s_player_bank = [];
s_player_tradecans_crtl = -1;
s_player_metal_crtl = -1;
s_player_bank_crtl = -1;

View File

@@ -0,0 +1,36 @@
private["_iarray","_part_out","_part_in","_qty_out","_qty_in","_qty"];
// [part_out,part_in, qty_out, qty_in,];
_part_out = (_this select 3) select 0;
_part_in = (_this select 3) select 1;
_qty_out = (_this select 3) select 2;
_qty_in = (_this select 3) select 3;
_textPartIn = getText(configFile >> "CfgMagazines" >> _part_in >> "displayName");
_textPartOut = getText(configFile >> "CfgMagazines" >> _part_out >> "displayName");
// not portable yet
//{player removeAction _x} forEach s_player_metals;s_player_metals = [];
//s_player_metal_crtl = -1;
_qty = {_x == _part_in} count magazines player;
if (_qty >= _qty_in) then {
for "_x" from 1 to _qty_in do {
player removeMagazine _part_in;
};
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"];
} else {
_needed = _qty_in - _qty;
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
};