+ added more already in progress code locks.
+ Building and vault pitching now checks if player has item just before
placement.
+ Fixed vault packing status was left in an incorrect state when caneled
durning packing. Fixes #182
+ Fixed insuffucent funds message when buying vehicles. Fixes #181
+ Fix for just purchased vehicles disappering. Still have issue with
player killed if they get into vehicle to early.
+ Fixed typo in takistan and chernarus dynamic vehicle spawn config and
removed remainng boats.
This commit is contained in:
vbawol
2013-03-05 10:19:52 -06:00
parent 864b282aaf
commit 18cddc8f84
16 changed files with 1922 additions and 749 deletions

View File

@@ -41,7 +41,7 @@ AllowedVehiclesList = [
["SUV_Orange",1],
["SUV_Charcoal",1],
["SUV_Blue",1],
["ArmoredSUV_PMC_DZ",2]
["ArmoredSUV_PMC_DZ",2],
["UH1H_DZ",2],
["Mi17_Civilian_DZ",3],
["Mi17_DZ",1],
@@ -49,8 +49,6 @@ AllowedVehiclesList = [
["LandRover_CZ_EP1",2],
["HMMWV_Ambulance",2],
["HMMWV_DES_EP1",1],
["Smallboat_1",2],
["Smallboat_2",2],
["M113Ambul_UN_EP1",1],
["KamazRefuel",1],
["UralRefuel_TK_EP1",1],

File diff suppressed because it is too large Load Diff

View File

@@ -1260,67 +1260,67 @@ class Mission
};
class Item2
{
position[]={9555.1016,394.7858,8154.6816};
position[]={8603.9141,292.76035,7735.3867};
name="spawn0";
type="Empty";
};
class Item3
{
position[]={2833.4211,314.53534,7299.1558};
position[]={3899.7437,372.565,7278.7085};
name="spawn1";
type="Empty";
};
class Item4
{
position[]={3463.3022,192.54607,8816.6094};
position[]={8615.4102,325.48184,5291.0664};
name="spawn2";
type="Empty";
};
class Item5
{
position[]={5637.0093,74.171867,9899.7666};
position[]={5649.7935,426.08795,4253.7886};
name="spawn3";
type="Empty";
};
class Item6
{
position[]={8249.167,179.04948,9585.9102};
position[]={6211.9707,129.37137,8806.0615};
name="spawn4";
type="Empty";
};
class Item7
{
position[]={3536.2224,243.46027,4113.1885};
position[]={4486.1792,310.78815,4621.6045};
name="spawn5";
type="Empty";
};
class Item8
{
position[]={9188.5762,374.82568,4833.4727};
position[]={4802.3354,230.25961,8407.5059};
name="spawn6";
type="Empty";
};
class Item9
{
position[]={5717.2676,538.00879,3460.9285};
position[]={7621.5938,223.7644,8554.4775};
name="spawn7";
type="Empty";
};
class Item10
{
position[]={7717.8608,407.96811,3660.7988};
position[]={7423.8193,385.30939,4388.8999};
name="spawn8";
type="Empty";
};
class Item11
{
position[]={9769.9141,234.16997,6462.6924};
position[]={8740.1338,330.44122,6432.0054};
name="spawn9";
type="Empty";
};
class Item12
{
position[]={2858.8721,211.25105,5644.4614};
position[]={3730.855,229.78453,5860.3472};
name="spawn10";
type="Empty";
};
@@ -1334,17 +1334,17 @@ class Mission
};
class Item14
{
position[]={7818.2983,467.56793,5592.2051};
name="Trader_City_GurDur";
text="Trader City GurDur";
position[]={1958.948,51.60416,12555.685};
name="Trader_City_Nur";
text="Trader City Nur";
type="mil_circle";
colorName="ColorGreen";
};
class Item15
{
position[]={9397.8838,497.31366,3307.2654};
name="Trader_City_Manara";
text="Trader City Manara";
position[]={12179.906,682.84894,6019.5557};
name="Trader_City_Garm";
text="Trader City Garm";
type="mil_circle";
colorName="ColorGreen";
};
@@ -1358,7 +1358,7 @@ class Mission
};
class Item17
{
position[]={11130.963,77.23333,12658.044};
position[]={11270.841,115.92039,12660.39};
name="Wholesaler_1";
text="Wholesaler";
type="mil_dot";
@@ -1367,8 +1367,8 @@ class Mission
class Item18
{
position[]={5261.8662,83.96122,11163.853};
name="Air Plane Dealer";
text="Air Plane Dealer";
name="Airplane Dealer";
text="Airplane Dealer";
type="mil_dot";
colorName="ColorRed";
};
@@ -1396,15 +1396,15 @@ class Mission
};
class Item1
{
position[]={7817.9443,467.54111,5591.3789};
position[]={1958.594,51.581875,12554.858};
activationBy="WEST";
repeating=1;
interruptable=1;
age="UNKNOWN";
name="zone2";
expCond="(player distance zone2) < 50;";
expActiv="TitleText[""Now entering trader city GurDur"",""PLAIN DOWN""]; placevault = false;";
expDesactiv="TitleText[""Now leaving trader city GurDur"",""PLAIN DOWN""]; placevault = true;";
expActiv="TitleText[""Now entering trader city Nur"",""PLAIN DOWN""]; placevault = false;";
expDesactiv="TitleText[""Now leaving trader city Nur"",""PLAIN DOWN""]; placevault = true;";
class Effects
{
soundDet="arabian_market_1";
@@ -1412,15 +1412,15 @@ class Mission
};
class Item2
{
position[]={9398.1055,497.21521,3303.7666};
position[]={12180.128,682.91718,6016.0566};
activationBy="WEST";
repeating=1;
interruptable=1;
age="UNKNOWN";
name="zone3";
expCond="(player distance zone3) < 50;";
expActiv="TitleText[""Now entering trader city Manara"",""PLAIN DOWN""]; placevault = false;";
expDesactiv="TitleText[""Now leaving trader city Manara"",""PLAIN DOWN""]; placevault = true;";
expActiv="TitleText[""Now entering trader city Garm"",""PLAIN DOWN""]; placevault = false;";
expDesactiv="TitleText[""Now leaving trader city Garm"",""PLAIN DOWN""]; placevault = true;";
class Effects
{
soundDet="arabian_market_1";

View File

@@ -31,7 +31,7 @@ AllowedVehiclesList = [
["UAZ_RU",1],
["UAZ_INS",1],
["Ikarus",3],
["SUV_TK_CIV_EP1",2],
["SUV_TK_CIV_EP1",2],
["SUV_Green",1],
["SUV_Yellow",1],
["SUV_White",1],
@@ -41,7 +41,7 @@ AllowedVehiclesList = [
["SUV_Orange",1],
["SUV_Charcoal",1],
["SUV_Blue",1],
["ArmoredSUV_PMC_DZ",2]
["ArmoredSUV_PMC_DZ",2],
["UH1H_DZ",2],
["Mi17_Civilian_DZ",3],
["Mi17_DZ",1],

View File

@@ -1,4 +1,8 @@
private["_location","_isOk","_dir","_classname","_item"];
if(TradeInprogress) exitWith { cutText ["Building already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_location = player modeltoworld [0,1,0];
_location set [2,0];
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
@@ -74,6 +78,9 @@ _built_location set [2,0];
if(!_cancel) then {
_hasbuilditem = _this in magazines player;
if (!_hasbuilditem) exitWith {cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]};
_dir = getDir player;
player removeMagazine _item;
@@ -108,4 +115,5 @@ if(!_cancel) then {
} else {
cutText [format["Canceled construction of %1.",_text], "PLAIN DOWN"];
};
};
TradeInprogress = false;

View File

@@ -1,11 +1,15 @@
private["_location","_isOk","_dir","_classname","_item"];
if(TradeInprogress) exitWith { cutText ["Building already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_location = player modeltoworld [0,1,0];
// _location set [2,0];
_onLadder = (getNumber (configFile >> "CfgMovesMaleSdr" >> "States" >> (animationState player) >> "onLadder")) == 1;
_isWater = (surfaceIsWater _location) or dayz_isSwimming;
_bypass = false;
call gear_ui_init;
// call gear_ui_init;
if(_isWater) exitWith {cutText [localize "str_player_26", "PLAIN DOWN"];};
if(_onLadder) exitWith {cutText [localize "str_player_21", "PLAIN DOWN"];};
@@ -80,6 +84,9 @@ if (_hasrequireditem or _bypass) then {
deleteVehicle _tmpbuilt;
if(!_cancel) then {
_hasbuilditem = _this in magazines player;
if (!_hasbuilditem) exitWith {cutText [format[(localize "str_player_31"),_text,"build"] , "PLAIN DOWN"]};
_dir = getDir player;
player removeMagazine _item;
@@ -119,4 +126,6 @@ if (_hasrequireditem or _bypass) then {
} else {
cutText [format[localize "str_build_failed_01",_text], "PLAIN DOWN"];
};
};
TradeInprogress = false;

View File

@@ -55,12 +55,14 @@ if (_qty >= _qty_in) then {
//place tent (local)
_veh = createVehicle [_part_out, _location, [], 0, "CAN_COLLIDE"];
_veh setVariable ["JustSpawned",true,true];
_veh setdir _dir;
_veh setpos _location;
//_veh setPosATL _position;
player reveal _veh;
_location = getPosATL _veh;
_veh setVariable ["characterID",dayz_playerUID,true];
@@ -75,6 +77,8 @@ if (_qty >= _qty_in) then {
_veh call fnc_vehicleEventHandler;
player reveal _veh;
cutText [format[("Bought %3 %4 for %1 %2"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
@@ -111,7 +115,11 @@ if (_qty >= _qty_in) then {
} else {
_needed = _qty_in - _qty;
cutText [format[("No %1 found within 20 meters."),_textPartOut] , "PLAIN DOWN"];
if(_buy_o_sell == "buy") then {
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
} else {
cutText [format[("No %1 found within 20 meters."),_textPartOut] , "PLAIN DOWN"];
};
};
TradeInprogress = false;

View File

@@ -61,15 +61,16 @@ if (_qty >= _qty_in) then {
//place tent (local)
_veh = createVehicle [_part_out, _location, [], 0, "CAN_COLLIDE"];
_veh setVariable ["JustSpawned",true,true];
_veh setdir _dir;
_veh setpos _location;
//_veh setPosATL _position;
player reveal _veh;
_location = getPosATL _veh;
//_veh setVariable ["characterID",dayz_playerUID,true];
//_veh setVariable ["ObjectUID",dayz_playerUID,true];
clearWeaponCargoGlobal _veh;
clearMagazineCargoGlobal _veh;
@@ -77,10 +78,12 @@ if (_qty >= _qty_in) then {
//["dayzPublishVeh",[_veh,[_dir,_location],_part_out,false,dayz_playerUID]] call callRpcProcedure;
dayzPublishVeh = [_veh,[_dir,_location],_part_out,false,dayz_playerUID];
publicVariableServer "dayzPublishVeh";
// event handlers to correctly track damage client side
_veh call fnc_vehicleEventHandler;
player reveal _veh;
cutText [format[("Bought %3 %4 for %1 %2"),_qty_in,_textPartIn,_qty_out,_textPartOut], "PLAIN DOWN"];
} else {
@@ -117,7 +120,12 @@ if (_qty >= _qty_in) then {
} else {
_needed = _qty_in - _qty;
cutText [format[("No %1 found within 20 meters. "),_textPartOut] , "PLAIN DOWN"];
if(_buy_o_sell == "buy") then {
cutText [format[("Need %1 More %2"),_needed,_textPartIn] , "PLAIN DOWN"];
} else {
cutText [format[("No %1 found within 20 meters."),_textPartOut] , "PLAIN DOWN"];
};
};
TradeInprogress = false;

View File

@@ -1,6 +1,9 @@
private["_position","_tent","_location","_isOk","_backpack","_tentType","_trg","_key"];
//check if can pitch here
if(TradeInprogress) exitWith { cutText ["Vault pitching already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
disableSerialization;
_playerPos = getPosATL player;
@@ -15,10 +18,8 @@ _location = player modeltoworld [_offset_x,_offset_y,_offset_z];
// Allow placement anywhere.
_isOk = true;
//diag_log ("Pitch Tent: " + str(_isok) );
_config = configFile >> "CfgMagazines" >> _item;
@@ -101,7 +102,12 @@ deleteVehicle _tmpvault;
if(!_cancel) then {
if (!_isOk) then {
//remove tentbag
//remove safe
_hastentitem = _this in magazines player;
if (!_hastentitem) exitWith {cutText [format[(localize "str_player_31"),_text,"pitch"] , "PLAIN DOWN"]};
player removeMagazine _item;
call dayz_forceSave;
@@ -150,4 +156,6 @@ if(!_cancel) then {
} else {
cutText ["Canceled construction of Safe.", "PLAIN DOWN"];
};
};
TradeInprogress = false;

View File

@@ -2,6 +2,10 @@
[_obj] spawn player_unlockVault;
*/
private["_objectID","_objectUID","_obj","_ownerID","_dir","_pos","_bag","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr"];
if(TradeInprogress) exitWith { cutText ["Lock already in progress." , "PLAIN DOWN"]; };
TradeInprogress = true;
_obj = _this;
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
@@ -56,4 +60,5 @@ if(_ownerID == dayz_playerUID) then {
cutText ["Your Safe has been locked", "PLAIN DOWN"];
} else {
cutText ["You cannot lock this Safe, it is not yours", "PLAIN DOWN"];
};
};
TradeInprogress = false;

View File

@@ -2,6 +2,10 @@
[_obj] spawn player_packVault;
*/
private["_obj","_ownerID","_objectID","_objectUID","_alreadyPacking","_location1","_location2","_dir","_pos","_bag","_holder","_weapons","_magazines","_backpacks","_objWpnTypes","_objWpnQty","_countr"];
if(TradeInprogress) exitWith { cutText ["That Safe is already being packed." , "PLAIN DOWN"]; };
TradeInprogress = true;
_obj = _this;
_ownerID = _obj getVariable["CharacterID","0"];
_objectID = _obj getVariable["ObjectID","0"];
@@ -22,7 +26,8 @@ if(_ownerID == dayz_playerUID) then {
_location2 = getPosATL player;
if(_location1 distance _location2 > 0.1) exitWith {
cutText ["Packing Safe canceled." , "PLAIN DOWN"]
cutText ["Packing Safe canceled." , "PLAIN DOWN"];
_obj setVariable["packing",0];
};
player playActionNow "Medic";
@@ -92,4 +97,6 @@ if(_ownerID == dayz_playerUID) then {
cutText ["You cannot pack this Safe, it is not yours", "PLAIN DOWN"];
};
s_player_packvault = -1;
s_player_packvault = -1;
TradeInprogress = false;

View File

@@ -40,7 +40,7 @@ class CfgMods
hidePicture = 0;
hideName = 0;
action = "http://www.dayzepoch.com";
version = "0.992";
version = "0.993";
hiveVersion = 0.96; //0.93
};
};

View File

@@ -137,7 +137,7 @@ class RscDisplayMain : RscStandardDisplay
class DAYZ_Version : CA_Version
{
idc = -1;
text = "DayZ Epoch 0.992 (1.7.6.1)";
text = "DayZ Epoch 0.993 (1.7.6.1)";
y = "(SafeZoneH + SafeZoneY) - (1 - 0.95)";
};
delete CA_TitleMainMenu;

View File

@@ -76,6 +76,8 @@ _key = format["CHILD:308:%1:%2:%3:%4:%5:%6:%7:%8:%9:",dayZ_instance, _class, _da
diag_log ("HIVE: WRITE: "+ str(_key));
_key call server_hiveWrite;
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
// Switched to spawn so we can wait a bit for the ID
[_object,_uid,_fuel,_damage,_array,_characterID,_class] spawn {
private["_object","_uid","_fuel","_damage","_array","_characterID","_done","_retry","_key","_result","_outcome","_oid","_selection","_dam","_class"];
@@ -133,7 +135,7 @@ _key call server_hiveWrite;
_object call fnc_vehicleEventHandler;
dayz_serverObjectMonitor set [count dayz_serverObjectMonitor,_object];
_object setVariable ["JustSpawned",nil,true];
diag_log ("PUBLISH: Created " + (_class) + " with ID " + str(_uid));
};

View File

@@ -10,6 +10,9 @@ _isNotOk = false;
_objectID = _object getVariable ["ObjectID","0"];
_uid = _object getVariable ["ObjectUID","0"];
_justSpawned = _object getVariable ["JustSpawned",false];
if (_justSpawned) exitWith { diag_log(format["Vehicle Just Spawned do nothing: %1", typeOf _object]); };
if ((typeName _objectID != "string") || (typeName _uid != "string")) then
{

View File

@@ -1,4 +1,4 @@
/*%FSM<COMPILE "C:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Server Cleanup">*/
/*%FSM<COMPILE "F:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, DayZ Server Cleanup">*/
/*%FSM<HEAD>*/
/*
item0[] = {"init",0,250,-75.000000,-400.000000,25.000000,-350.000000,0.000000,"init"};
@@ -11,7 +11,7 @@ item6[] = {"cleanup_objects",2,250,-25.000000,50.000000,75.000000,100.000000,0.0
item7[] = {"time_sync",4,218,-275.000000,-25.000000,-175.000000,25.000000,1.000000,"time" \n "sync"};
item8[] = {"sync_the_time",2,250,-275.000000,50.000000,-175.000000,100.000000,0.000000,"sync" \n "the time"};
item9[] = {"true",8,218,-75.000000,125.000000,25.000000,175.000000,0.000000,"true"};
item10[] = {"general_cleanup",2,250,-75.000000,200.000000,25.000000,250.000000,0.000000,"general" \n "cleanup"};
item10[] = {"general_cleanup",2,4346,-75.000000,200.000000,25.000000,250.000000,0.000000,"general" \n "cleanup"};
item11[] = {"",7,210,-304.000000,220.999985,-296.000000,229.000015,0.000000,""};
item12[] = {"",7,210,-304.000000,-154.000000,-296.000000,-146.000000,0.000000,""};
item13[] = {"",7,210,221.000000,-79.000000,229.000000,-71.000000,0.000000,""};
@@ -19,7 +19,7 @@ item14[] = {"",7,210,221.000000,146.000000,229.000000,154.000000,0.000000,""};
item15[] = {"initialized",4,218,-75.000000,-325.000000,25.000000,-275.000000,0.000000,"initialized"};
item16[] = {"prepare",2,250,-75.000000,-250.000000,25.000000,-200.000000,0.000000,"prepare"};
item17[] = {"update_objects",2,250,100.000000,50.000000,200.000000,100.000000,0.000000,"update objects"};
item18[] = {"need_update",4,4314,100.000000,-25.000000,200.000000,25.000000,1.000000,"need update"};
item18[] = {"need_update",4,218,100.000000,-25.000000,200.000000,25.000000,1.000000,"need update"};
item19[] = {"",7,210,221.000000,-79.000000,229.000000,-71.000000,0.000000,""};
link0[] = {0,15};
link1[] = {1,2};
@@ -45,8 +45,8 @@ link20[] = {15,16};
link21[] = {16,1};
link22[] = {17,9};
link23[] = {18,17};
globals[] = {25.000000,1,0,0,0,640,480,1,24,6316128,1,-396.580658,354.272186,289.802856,-205.002594,912,601,1};
window[] = {2,-1,-1,-32000,-32000,890,110,1439,110,3,929};
globals[] = {25.000000,1,0,0,0,640,480,1,24,6316128,1,-378.181000,335.872437,502.526184,-187.229050,911,880,1};
window[] = {2,-1,-1,-1,-1,936,156,1485,156,3,929};
*//*%FSM</HEAD>*/
class FSM
{
@@ -335,7 +335,7 @@ class FSM
" if(vehicle _x != _x && !(vehicle _x in _safety) && (typeOf vehicle _x) != ""ParachuteWest"") then {" \n
" diag_log (""CLEANUP: KILLING A HACKER "" + (name _x) + "" "" + str(_x) + "" IN "" + (typeOf vehicle _x));" \n
" (vehicle _x) setDamage 1;" \n
" _x setDamage 1;" \n
" _x setDamage 1; " \n
" };" \n
" } forEach allUnits;" \n
"" \n