mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
0.3.9.0 b552
zombie fixes removed armed vtol prices for APEX vehicles message when NVG disabed due to lack of energy
This commit is contained in:
parent
02761bb4cf
commit
eaf23d4e31
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@ -1,4 +1,4 @@
|
|||||||
/*%FSM<COMPILE "D:\Program Files (x86)\Bohemia Interactive\Tools\FSM Editor Personal Edition\scriptedFSM.cfg, zombie">*/
|
/*%FSM<COMPILE "F:\Program Files (x86)\Steam\steamapps\common\Arma 3 Tools\FSMEditor\scriptedFSM.cfg, zombie">*/
|
||||||
/*%FSM<HEAD>*/
|
/*%FSM<HEAD>*/
|
||||||
/*
|
/*
|
||||||
item0[] = {"brainz",0,250,-25.000000,-25.000000,75.000000,25.000000,0.000000,"brainz"};
|
item0[] = {"brainz",0,250,-25.000000,-25.000000,75.000000,25.000000,0.000000,"brainz"};
|
||||||
@ -29,9 +29,9 @@ item24[] = {"sight___target",4,218,550.000000,-350.000000,650.000000,-300.000000
|
|||||||
item25[] = {"hearing___target",4,218,650.000000,-325.000000,750.000000,-275.000000,80.000000,"hearing / target"};
|
item25[] = {"hearing___target",4,218,650.000000,-325.000000,750.000000,-275.000000,80.000000,"hearing / target"};
|
||||||
item26[] = {"nearest_target",4,218,725.000000,0.000000,825.000000,50.000000,75.000000,"nearest" \n "target"};
|
item26[] = {"nearest_target",4,218,725.000000,0.000000,825.000000,50.000000,75.000000,"nearest" \n "target"};
|
||||||
item27[] = {"spin",2,250,0.000000,-500.000000,100.000000,-450.000000,0.000000,"spin"};
|
item27[] = {"spin",2,250,0.000000,-500.000000,100.000000,-450.000000,0.000000,"spin"};
|
||||||
item28[] = {"wait",4,218,100.000000,-425.000000,200.000000,-375.000000,0.000000,"wait"};
|
item28[] = {"wait",4,4314,100.000000,-425.000000,200.000000,-375.000000,0.000000,"wait"};
|
||||||
item29[] = {"scream",4,218,200.000000,-475.000000,300.000000,-425.000000,80.000000,"scream"};
|
item29[] = {"scream",4,218,200.000000,-475.000000,300.000000,-425.000000,80.000000,"scream"};
|
||||||
item30[] = {"____FAKE____",9,352,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"};
|
item30[] = {"____FAKE____",9,0,0.000000,0.000000,0.000000,0.000000,0.000000,"____FAKE____"};
|
||||||
link0[] = {0,17};
|
link0[] = {0,17};
|
||||||
link1[] = {1,2};
|
link1[] = {1,2};
|
||||||
link2[] = {2,3};
|
link2[] = {2,3};
|
||||||
@ -79,8 +79,8 @@ link43[] = {30,10};
|
|||||||
link44[] = {30,19};
|
link44[] = {30,19};
|
||||||
link45[] = {30,22};
|
link45[] = {30,22};
|
||||||
link46[] = {30,26};
|
link46[] = {30,26};
|
||||||
globals[] = {0.000000,0,0,0,0,640,480,1,266,6316128,1,-207.474609,835.795471,312.554321,-630.442322,978,884,1};
|
globals[] = {0.000000,0,0,0,0,640,480,1,266,6316128,1,-207.474609,835.795471,312.554321,-630.442322,978,854,1};
|
||||||
window[] = {2,-1,-1,-1,-1,707,182,1207,182,3,996};
|
window[] = {2,-1,-1,-1,-1,655,130,1155,130,3,996};
|
||||||
*//*%FSM</HEAD>*/
|
*//*%FSM</HEAD>*/
|
||||||
class FSM
|
class FSM
|
||||||
{
|
{
|
||||||
@ -91,6 +91,7 @@ class FSM
|
|||||||
class brainz
|
class brainz
|
||||||
{
|
{
|
||||||
name = "brainz";
|
name = "brainz";
|
||||||
|
itemno = 0;
|
||||||
init = /*%FSM<STATEINIT""">*/"_zombie = _this select 0;" \n
|
init = /*%FSM<STATEINIT""">*/"_zombie = _this select 0;" \n
|
||||||
"_sBomb = _this select 1;" \n
|
"_sBomb = _this select 1;" \n
|
||||||
"_head = objNull;" \n
|
"_head = objNull;" \n
|
||||||
@ -110,7 +111,7 @@ class FSM
|
|||||||
"//Behaviour Vars" \n
|
"//Behaviour Vars" \n
|
||||||
"_attackDist = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""attackDist"");" \n
|
"_attackDist = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""attackDist"");" \n
|
||||||
"_groanTrig = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""groanTrig"");" \n
|
"_groanTrig = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""groanTrig"");" \n
|
||||||
"_zRange = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""range"");" \n
|
"_zDisposeRange = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""disposeRange"");" \n
|
||||||
"_sHideTrig = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""hideLevel""); " \n
|
"_sHideTrig = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""hideLevel""); " \n
|
||||||
"_moveTrig = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""chargeLevel""); " \n
|
"_moveTrig = getNumber (getMissionConfig ""CfgEpochRyanZombie"" >> ""chargeLevel""); " \n
|
||||||
"_sHardness = floor (random 6) max 1;" \n
|
"_sHardness = floor (random 6) max 1;" \n
|
||||||
@ -269,6 +270,7 @@ class FSM
|
|||||||
/*%FSM<LINK "Wait_random">*/
|
/*%FSM<LINK "Wait_random">*/
|
||||||
class Wait_random
|
class Wait_random
|
||||||
{
|
{
|
||||||
|
itemno = 17;
|
||||||
priority = 10.000000;
|
priority = 10.000000;
|
||||||
to="reset_vars";
|
to="reset_vars";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -283,6 +285,7 @@ class FSM
|
|||||||
class instinct
|
class instinct
|
||||||
{
|
{
|
||||||
name = "instinct";
|
name = "instinct";
|
||||||
|
itemno = 2;
|
||||||
init = /*%FSM<STATEINIT""">*/"//systemchat format[""I %1"",diag_tickTime];" \n
|
init = /*%FSM<STATEINIT""">*/"//systemchat format[""I %1"",diag_tickTime];" \n
|
||||||
"" \n
|
"" \n
|
||||||
"" \n
|
"" \n
|
||||||
@ -294,6 +297,7 @@ class FSM
|
|||||||
/*%FSM<LINK "dispose">*/
|
/*%FSM<LINK "dispose">*/
|
||||||
class dispose
|
class dispose
|
||||||
{
|
{
|
||||||
|
itemno = 9;
|
||||||
priority = 200.000000;
|
priority = 200.000000;
|
||||||
to="pre_dispose";
|
to="pre_dispose";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -313,16 +317,18 @@ class FSM
|
|||||||
/*%FSM<LINK "dispose_1">*/
|
/*%FSM<LINK "dispose_1">*/
|
||||||
class dispose_1
|
class dispose_1
|
||||||
{
|
{
|
||||||
|
itemno = 5;
|
||||||
priority = 100.000000;
|
priority = 100.000000;
|
||||||
to="instinct";
|
to="instinct";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"!(alive _zombie) || _traderDispose || _trgtDist > _zRange;"/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"!(alive _zombie) || _traderDispose || _trgtDist > _zDisposeRange;"/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/"_doDispose = true;"/*%FSM</ACTION""">*/;
|
action=/*%FSM<ACTION""">*/"_doDispose = true;"/*%FSM</ACTION""">*/;
|
||||||
};
|
};
|
||||||
/*%FSM</LINK>*/
|
/*%FSM</LINK>*/
|
||||||
/*%FSM<LINK "attack">*/
|
/*%FSM<LINK "attack">*/
|
||||||
class attack
|
class attack
|
||||||
{
|
{
|
||||||
|
itemno = 20;
|
||||||
priority = 90.000000;
|
priority = 90.000000;
|
||||||
to="spin";
|
to="spin";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -341,6 +347,7 @@ class FSM
|
|||||||
/*%FSM<LINK "scream">*/
|
/*%FSM<LINK "scream">*/
|
||||||
class scream
|
class scream
|
||||||
{
|
{
|
||||||
|
itemno = 29;
|
||||||
priority = 80.000000;
|
priority = 80.000000;
|
||||||
to="instinct";
|
to="instinct";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -355,6 +362,7 @@ class FSM
|
|||||||
/*%FSM<LINK "moan">*/
|
/*%FSM<LINK "moan">*/
|
||||||
class moan
|
class moan
|
||||||
{
|
{
|
||||||
|
itemno = 16;
|
||||||
priority = 70.000000;
|
priority = 70.000000;
|
||||||
to="instinct";
|
to="instinct";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -369,6 +377,7 @@ class FSM
|
|||||||
/*%FSM<LINK "move">*/
|
/*%FSM<LINK "move">*/
|
||||||
class move
|
class move
|
||||||
{
|
{
|
||||||
|
itemno = 11;
|
||||||
priority = 60.000000;
|
priority = 60.000000;
|
||||||
to="instinct";
|
to="instinct";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -384,6 +393,7 @@ class FSM
|
|||||||
/*%FSM<LINK "check">*/
|
/*%FSM<LINK "check">*/
|
||||||
class check
|
class check
|
||||||
{
|
{
|
||||||
|
itemno = 3;
|
||||||
priority = 5.000000;
|
priority = 5.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -401,6 +411,7 @@ class FSM
|
|||||||
class pre_dispose
|
class pre_dispose
|
||||||
{
|
{
|
||||||
name = "pre_dispose";
|
name = "pre_dispose";
|
||||||
|
itemno = 4;
|
||||||
init = /*%FSM<STATEINIT""">*/"_nrTrgts = _zedPos nearEntities [_trgtArr, 480];" \n
|
init = /*%FSM<STATEINIT""">*/"_nrTrgts = _zedPos nearEntities [_trgtArr, 480];" \n
|
||||||
"_canSee = [];" \n
|
"_canSee = [];" \n
|
||||||
"{" \n
|
"{" \n
|
||||||
@ -420,6 +431,7 @@ class FSM
|
|||||||
/*%FSM<LINK "wait_dispose">*/
|
/*%FSM<LINK "wait_dispose">*/
|
||||||
class wait_dispose
|
class wait_dispose
|
||||||
{
|
{
|
||||||
|
itemno = 6;
|
||||||
priority = 0.000000;
|
priority = 0.000000;
|
||||||
to="end";
|
to="end";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -434,6 +446,7 @@ class FSM
|
|||||||
class reset_vars
|
class reset_vars
|
||||||
{
|
{
|
||||||
name = "reset_vars";
|
name = "reset_vars";
|
||||||
|
itemno = 7;
|
||||||
init = /*%FSM<STATEINIT""">*/"//System Vars" \n
|
init = /*%FSM<STATEINIT""">*/"//System Vars" \n
|
||||||
"_t = diag_tickTime;" \n
|
"_t = diag_tickTime;" \n
|
||||||
"_u = _t;" \n
|
"_u = _t;" \n
|
||||||
@ -491,6 +504,7 @@ class FSM
|
|||||||
/*%FSM<LINK "dispose">*/
|
/*%FSM<LINK "dispose">*/
|
||||||
class dispose
|
class dispose
|
||||||
{
|
{
|
||||||
|
itemno = 9;
|
||||||
priority = 200.000000;
|
priority = 200.000000;
|
||||||
to="pre_dispose";
|
to="pre_dispose";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -510,6 +524,7 @@ class FSM
|
|||||||
/*%FSM<LINK "_">*/
|
/*%FSM<LINK "_">*/
|
||||||
class _
|
class _
|
||||||
{
|
{
|
||||||
|
itemno = 1;
|
||||||
priority = 0.000000;
|
priority = 0.000000;
|
||||||
to="instinct";
|
to="instinct";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -524,6 +539,7 @@ class FSM
|
|||||||
class checking_status
|
class checking_status
|
||||||
{
|
{
|
||||||
name = "checking_status";
|
name = "checking_status";
|
||||||
|
itemno = 12;
|
||||||
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@ -531,6 +547,7 @@ class FSM
|
|||||||
/*%FSM<LINK "done">*/
|
/*%FSM<LINK "done">*/
|
||||||
class done
|
class done
|
||||||
{
|
{
|
||||||
|
itemno = 15;
|
||||||
priority = 100.000000;
|
priority = 100.000000;
|
||||||
to="reset_vars";
|
to="reset_vars";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -542,6 +559,7 @@ class FSM
|
|||||||
/*%FSM<LINK "pre_vars___check">*/
|
/*%FSM<LINK "pre_vars___check">*/
|
||||||
class pre_vars___check
|
class pre_vars___check
|
||||||
{
|
{
|
||||||
|
itemno = 23;
|
||||||
priority = 95.000000;
|
priority = 95.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -600,6 +618,7 @@ class FSM
|
|||||||
/*%FSM<LINK "smell">*/
|
/*%FSM<LINK "smell">*/
|
||||||
class smell
|
class smell
|
||||||
{
|
{
|
||||||
|
itemno = 13;
|
||||||
priority = 90.000000;
|
priority = 90.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -631,6 +650,7 @@ class FSM
|
|||||||
/*%FSM<LINK "sight___target">*/
|
/*%FSM<LINK "sight___target">*/
|
||||||
class sight___target
|
class sight___target
|
||||||
{
|
{
|
||||||
|
itemno = 24;
|
||||||
priority = 85.000000;
|
priority = 85.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -673,6 +693,7 @@ class FSM
|
|||||||
/*%FSM<LINK "hearing___target">*/
|
/*%FSM<LINK "hearing___target">*/
|
||||||
class hearing___target
|
class hearing___target
|
||||||
{
|
{
|
||||||
|
itemno = 25;
|
||||||
priority = 80.000000;
|
priority = 80.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -689,6 +710,7 @@ class FSM
|
|||||||
/*%FSM<LINK "do_attack">*/
|
/*%FSM<LINK "do_attack">*/
|
||||||
class do_attack
|
class do_attack
|
||||||
{
|
{
|
||||||
|
itemno = 8;
|
||||||
priority = 70.000000;
|
priority = 70.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -701,6 +723,7 @@ class FSM
|
|||||||
/*%FSM<LINK "stuck">*/
|
/*%FSM<LINK "stuck">*/
|
||||||
class stuck
|
class stuck
|
||||||
{
|
{
|
||||||
|
itemno = 21;
|
||||||
priority = 30.000000;
|
priority = 30.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -723,6 +746,7 @@ class FSM
|
|||||||
/*%FSM<LINK "final_checks___r">*/
|
/*%FSM<LINK "final_checks___r">*/
|
||||||
class final_checks___r
|
class final_checks___r
|
||||||
{
|
{
|
||||||
|
itemno = 14;
|
||||||
priority = 10.000000;
|
priority = 10.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -773,6 +797,7 @@ class FSM
|
|||||||
class end
|
class end
|
||||||
{
|
{
|
||||||
name = "end";
|
name = "end";
|
||||||
|
itemno = 18;
|
||||||
init = /*%FSM<STATEINIT""">*/"if (!isNull _zombie) then {" \n
|
init = /*%FSM<STATEINIT""">*/"if (!isNull _zombie) then {" \n
|
||||||
"deleteVehicle _zombie;//Move to cleanup" \n
|
"deleteVehicle _zombie;//Move to cleanup" \n
|
||||||
"};" \n
|
"};" \n
|
||||||
@ -791,6 +816,7 @@ class FSM
|
|||||||
class spin
|
class spin
|
||||||
{
|
{
|
||||||
name = "spin";
|
name = "spin";
|
||||||
|
itemno = 27;
|
||||||
init = /*%FSM<STATEINIT""">*/"_t = diag_tickTime;" \n
|
init = /*%FSM<STATEINIT""">*/"_t = diag_tickTime;" \n
|
||||||
"_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];"/*%FSM</STATEINIT""">*/;
|
"_zombie setVelocityTransformation [_aslPos,_aslPos,_unitV,_unitV,_unitvDir,_vDir,_unitvUp,_unitvUp,2];"/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
@ -799,11 +825,12 @@ class FSM
|
|||||||
/*%FSM<LINK "wait">*/
|
/*%FSM<LINK "wait">*/
|
||||||
class wait
|
class wait
|
||||||
{
|
{
|
||||||
|
itemno = 28;
|
||||||
priority = 0.000000;
|
priority = 0.000000;
|
||||||
to="instinct";
|
to="instinct";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
condition=/*%FSM<CONDITION""">*/"diag_tickTime - _t > 0.6;"/*%FSM</CONDITION""">*/;
|
condition=/*%FSM<CONDITION""">*/"diag_tickTime - _t > 0.6;"/*%FSM</CONDITION""">*/;
|
||||||
action=/*%FSM<ACTION""">*/"_zombie switchMove ""AwopPercMstpSgthWnonDnon_throw"";"/*%FSM</ACTION""">*/;
|
action=/*%FSM<ACTION""">*/"[_zombie,_trgt] call EPOCH_client_bitePlayer;"/*%FSM</ACTION""">*/;
|
||||||
};
|
};
|
||||||
/*%FSM</LINK>*/
|
/*%FSM</LINK>*/
|
||||||
};
|
};
|
||||||
@ -813,6 +840,7 @@ class FSM
|
|||||||
class ____FAKE____
|
class ____FAKE____
|
||||||
{
|
{
|
||||||
name = "____FAKE____";
|
name = "____FAKE____";
|
||||||
|
itemno = 30;
|
||||||
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
init = /*%FSM<STATEINIT""">*/""/*%FSM</STATEINIT""">*/;
|
||||||
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
precondition = /*%FSM<STATEPRECONDITION""">*/""/*%FSM</STATEPRECONDITION""">*/;
|
||||||
class Links
|
class Links
|
||||||
@ -820,6 +848,7 @@ class FSM
|
|||||||
/*%FSM<LINK "check_threat">*/
|
/*%FSM<LINK "check_threat">*/
|
||||||
class check_threat
|
class check_threat
|
||||||
{
|
{
|
||||||
|
itemno = 10;
|
||||||
priority = 80.000000;
|
priority = 80.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -860,6 +889,7 @@ class FSM
|
|||||||
/*%FSM<LINK "nearest_target">*/
|
/*%FSM<LINK "nearest_target">*/
|
||||||
class nearest_target
|
class nearest_target
|
||||||
{
|
{
|
||||||
|
itemno = 26;
|
||||||
priority = 75.000000;
|
priority = 75.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -878,6 +908,7 @@ class FSM
|
|||||||
/*%FSM<LINK "check_target">*/
|
/*%FSM<LINK "check_target">*/
|
||||||
class check_target
|
class check_target
|
||||||
{
|
{
|
||||||
|
itemno = 19;
|
||||||
priority = 60.000000;
|
priority = 60.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
@ -901,6 +932,7 @@ class FSM
|
|||||||
/*%FSM<LINK "feeling">*/
|
/*%FSM<LINK "feeling">*/
|
||||||
class feeling
|
class feeling
|
||||||
{
|
{
|
||||||
|
itemno = 22;
|
||||||
priority = 50.000000;
|
priority = 50.000000;
|
||||||
to="checking_status";
|
to="checking_status";
|
||||||
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
precondition = /*%FSM<CONDPRECONDITION""">*/""/*%FSM</CONDPRECONDITION""">*/;
|
||||||
|
@ -125,7 +125,8 @@ switch _unitClass do {
|
|||||||
case "EPOCH_RyanZombie_1": {
|
case "EPOCH_RyanZombie_1": {
|
||||||
for "_i" from 1 to (_spawnLimit - _currentLimit) do
|
for "_i" from 1 to (_spawnLimit - _currentLimit) do
|
||||||
{
|
{
|
||||||
[] call EPOCH_zombieSpawn;
|
_unit = [] call EPOCH_zombieSpawn;
|
||||||
|
_units pushBack _unit;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -23,38 +23,27 @@
|
|||||||
params [["_justSpawn",false]];
|
params [["_justSpawn",false]];
|
||||||
private ["_zRange","_disableAI","_unitClass","_unit","_clutterPos","_zedHandle","_zMax"];
|
private ["_zRange","_disableAI","_unitClass","_unit","_clutterPos","_zedHandle","_zMax"];
|
||||||
_disableAI = {{_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"];};
|
_disableAI = {{_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"];};
|
||||||
_units = [];
|
|
||||||
_zRange = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "range");
|
_zRange = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "range");
|
||||||
_zeds = getArray (getMissionConfig "CfgEpochRyanZombie" >> "zeds");
|
_zeds = getArray (getMissionConfig "CfgEpochRyanZombie" >> "zeds");
|
||||||
_zMax = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "maxNumber");
|
// _zMax = getNumber (getMissionConfig "CfgEpochRyanZombie" >> "maxNumber");
|
||||||
_zDoCnt = 0;
|
|
||||||
//Check for horde
|
|
||||||
_nrZeds = nearestObjects [player,_zeds,_zRange];
|
|
||||||
_currZCount = count _nrZeds;
|
|
||||||
if(_currZCount < _zMax)then{_zDoCnt = _zMax - _currZCount;};
|
|
||||||
for "_i" from 1 to _zDoCnt step 1 do{
|
|
||||||
|
|
||||||
_unitClass = selectRandom _zeds;
|
_unitClass = selectRandom _zeds;
|
||||||
_unit = createAgent[_unitClass, position player, [], _zRange, "FORM"];
|
_unit = createAgent[_unitClass, position player, [], _zRange, "FORM"];
|
||||||
// todo cleanup this object after some time
|
// todo cleanup this object after some time
|
||||||
//_clutterPos = getPosATL _unit;
|
//_clutterPos = getPosATL _unit;
|
||||||
//if!(isOnRoad _unit)then{
|
//if!(isOnRoad _unit)then{
|
||||||
// _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"];
|
// _grave = createVehicle ["Land_Grave_dirt_F", _clutterPos, [], 0, "CAN_COLLIDE"];
|
||||||
//};
|
//};
|
||||||
_unit call _disableAI;
|
_unit call _disableAI;
|
||||||
_unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut";
|
_unit switchMove "AmovPercMstpSnonWnonDnon_SaluteOut";
|
||||||
[[_unit,player], 4, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
|
[[_unit,player], 4, Epoch_personalToken] remoteExec ["EPOCH_server_handle_switchMove",2];
|
||||||
|
|
||||||
_unit setmimic "dead";
|
_unit setmimic "dead";
|
||||||
_unit setface (selectRandom ["RyanZombieFace1", "RyanZombieFace2", "RyanZombieFace3", "RyanZombieFace4", "RyanZombieFace5"]);
|
_unit setface (selectRandom ["RyanZombieFace1", "RyanZombieFace2", "RyanZombieFace3", "RyanZombieFace4", "RyanZombieFace5"]);
|
||||||
removegoggles _unit;
|
removegoggles _unit;
|
||||||
_zedHandle = [_unit,true] execFSM "epoch_code\system\EPOCH_zombie_brain.fsm";
|
_zedHandle = [_unit,true] execFSM "epoch_code\system\EPOCH_zombie_brain.fsm";
|
||||||
_unit addEventHandler ["FiredNear", "(_this select 0) setVariable [""zFiredNear"",[_this select 1, _this select 2]];"];
|
_unit addEventHandler ["FiredNear", "(_this select 0) setVariable [""zFiredNear"",[_this select 1, _this select 2]];"];
|
||||||
_unit addEventHandler ["Hit", "(_this select 0) setVariable [""zHit"",[_this select 1, _this select 2]];"];
|
_unit addEventHandler ["Hit", "(_this select 0) setVariable [""zHit"",[_this select 1, _this select 2]];"];
|
||||||
_units pushBack _unit;
|
|
||||||
|
|
||||||
};
|
_unit
|
||||||
|
|
||||||
if !(_units isEqualTo []) then {
|
|
||||||
_units remoteExec ["EPOCH_localCleanup",2];
|
|
||||||
};
|
|
||||||
|
@ -27,6 +27,7 @@ if (currentVisionMode player == 1) then { //NV enabled
|
|||||||
_energyValue = _energyValue - _energyCostNV;
|
_energyValue = _energyValue - _energyCostNV;
|
||||||
if (EPOCH_playerEnergy == 0) then {
|
if (EPOCH_playerEnergy == 0) then {
|
||||||
player action["nvGogglesOff", player];
|
player action["nvGogglesOff", player];
|
||||||
|
["Night Vision Goggles: Need Energy", 5] call Epoch_message;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -6,7 +6,7 @@ _prevEnergy = EPOCH_playerEnergy;
|
|||||||
|
|
||||||
// init config data
|
// init config data
|
||||||
EPOCH_sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
EPOCH_sapperRndChance = ["CfgEpochClient", "sapperRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||||
EPOCH_zombieRndChance = ["CfgEpochClient", "zombieRndChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
EPOCH_zombieRndChance = ["CfgEpochClient", "zombieRndChance", 50] call EPOCH_fnc_returnConfigEntryV2;
|
||||||
EPOCH_droneRndChance = ["CfgEpochClient", "droneRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
EPOCH_droneRndChance = ["CfgEpochClient", "droneRngChance", 100] call EPOCH_fnc_returnConfigEntryV2;
|
||||||
_baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2;
|
_baseHTLoss = ["CfgEpochClient", "baseHTLoss", 8] call EPOCH_fnc_returnConfigEntryV2;
|
||||||
_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] call EPOCH_fnc_returnConfigEntryV2;
|
_energyCostNV = ["CfgEpochClient", "energyCostNV", 3] call EPOCH_fnc_returnConfigEntryV2;
|
||||||
|
@ -67,7 +67,7 @@ if(EPOCH_AirDropChance < 0)then{EPOCH_AirDropChance = 101;EPOCH_AirDropCheck = 9
|
|||||||
|
|
||||||
EPOCH_droneRndChance = 100;
|
EPOCH_droneRndChance = 100;
|
||||||
EPOCH_sapperRndChance = 100;
|
EPOCH_sapperRndChance = 100;
|
||||||
EPOCH_zombieRndChance = 30;
|
EPOCH_zombieRndChance = 50;
|
||||||
|
|
||||||
// Custom Keys
|
// Custom Keys
|
||||||
EPOCH_keysActionPressed = false; //prevents EH spam
|
EPOCH_keysActionPressed = false; //prevents EH spam
|
||||||
|
@ -158,11 +158,13 @@ class CfgEpochCloak
|
|||||||
};
|
};
|
||||||
class CfgEpochRyanZombie
|
class CfgEpochRyanZombie
|
||||||
{
|
{
|
||||||
|
zeds[] = {"EPOCH_RyanZombie_1","EPOCH_RyanZombie_2","EPOCH_RyanZombie_3","EPOCH_RyanZombie_4","EPOCH_RyanZombie_5"};
|
||||||
attackDist = 1.6; //Attack Distance.
|
attackDist = 1.6; //Attack Distance.
|
||||||
range = 108; //Range at which to dispose old zombies and spawn new ones within.
|
range = 45; //Range at which to dispose old zombies and spawn new ones within.
|
||||||
maxNumber = 12; //Maximum number of zombies within range,
|
// maxNumber = 12; //Maximum number of zombies within range,
|
||||||
smell[] = {28,0.42}; //Distance in metres up to which the zombie can smell a target. | Skill (0 - 1). 0 - Disable
|
disposeRange = 800; // distance before zombie is disposed
|
||||||
sight[] = {18,0.72}; //Zombie sight distance | Skill (0 - 1).
|
smell[] = {38,0.42}; //Distance in metres up to which the zombie can smell a target. | Skill (0 - 1). 0 - Disable
|
||||||
|
sight[] = {28,0.72}; //Zombie sight distance | Skill (0 - 1).
|
||||||
hearing[] = {108,0.68}; //Zombie hearing distance / Skill. Max FiredNear EH Limit ?
|
hearing[] = {108,0.68}; //Zombie hearing distance / Skill. Max FiredNear EH Limit ?
|
||||||
memory[] = {480,0.8}; //Memory time. / Weighting. WIP - Not Used
|
memory[] = {480,0.8}; //Memory time. / Weighting. WIP - Not Used
|
||||||
reflexSpeed = 0.25; //Zombie brain will pause for this time when checking for new stimulus during each thought process. Lower number equals a more reactive zombie. (Guide Min 0.25 - Max 2.5).
|
reflexSpeed = 0.25; //Zombie brain will pause for this time when checking for new stimulus during each thought process. Lower number equals a more reactive zombie. (Guide Min 0.25 - Max 2.5).
|
||||||
|
@ -1093,6 +1093,21 @@ class CfgPricing
|
|||||||
class CUP_B_Ural_Empty_CDF {price = 1000;};
|
class CUP_B_Ural_Empty_CDF {price = 1000;};
|
||||||
class CUP_C_DC3_CIV {price = 2400;};
|
class CUP_C_DC3_CIV {price = 2400;};
|
||||||
|
|
||||||
|
// APEX
|
||||||
|
class C_Boat_Transport_02_F {price = 1200;};
|
||||||
|
class C_Scooter_Transport_01_F {price = 1200;};
|
||||||
|
class C_Offroad_02_unarmed_F {price = 3500;};
|
||||||
|
class I_C_Offroad_02_unarmed_F {price = 3500;};
|
||||||
|
class B_T_LSV_01_unarmed_F {price = 4400;};
|
||||||
|
class O_LSV_02_unarmed_F {price = 4300;};
|
||||||
|
class O_T_LSV_02_unarmed_F {price = 4600;};
|
||||||
|
class C_Plane_Civil_01_F {price = 5000;};
|
||||||
|
class C_Plane_Civil_01_racing_F {price = 5000;};
|
||||||
|
class B_CTRG_LSV_01_light_F {price = 4400;};
|
||||||
|
class B_LSV_01_unarmed_F {price = 4400;};
|
||||||
|
class B_T_VTOL_01_infantry_F {price = 10000;};
|
||||||
|
class B_T_VTOL_01_vehicle_F {price = 10000;};
|
||||||
|
|
||||||
//Mission Items
|
//Mission Items
|
||||||
class B_UavTerminal {price = 10;};
|
class B_UavTerminal {price = 10;};
|
||||||
class O_UavTerminal {price = 10;};
|
class O_UavTerminal {price = 10;};
|
||||||
|
@ -1 +1 @@
|
|||||||
build=547;
|
build=552;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=547;
|
build=552;
|
||||||
|
@ -37,8 +37,8 @@ if (!isNull _target) then {
|
|||||||
case "PHANTOM": {
|
case "PHANTOM": {
|
||||||
"PHANTOM" remoteExec ['EPOCH_unitSpawnIncrease',_target];
|
"PHANTOM" remoteExec ['EPOCH_unitSpawnIncrease',_target];
|
||||||
};
|
};
|
||||||
case "EPOCH_RyanZombie_1": {
|
case "Zombie": {
|
||||||
"EPOCH_RyanZombie_1" remoteExec ['EPOCH_unitSpawnIncrease',_target];
|
["EPOCH_RyanZombie_1",12] remoteExec ['EPOCH_unitSpawnIncrease',_target];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@ -20,16 +20,22 @@ if(_return isEqualTo[]) then {
|
|||||||
_weightedArray = [];
|
_weightedArray = [];
|
||||||
{
|
{
|
||||||
if(_x isEqualType []) then {
|
if(_x isEqualType []) then {
|
||||||
_lootTableArray pushBack(_x select 0);
|
_x params ["_tname","_tqty"];
|
||||||
for "_i" from 1 to(_x select 1) do {
|
if (!(_tname isEqualTo "Zombie") || (_tname isEqualTo "Zombie") && EPOCH_mod_Ryanzombies_Enabled) then {
|
||||||
|
_lootTableArray pushBack _tname;
|
||||||
|
for "_i" from 1 to _tqty do {
|
||||||
_weightedArray pushBack _forEachIndex;
|
_weightedArray pushBack _forEachIndex;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
} else {
|
} else {
|
||||||
|
if (!(_x isEqualTo "Zombie") || (_x isEqualTo "Zombie") && EPOCH_mod_Ryanzombies_Enabled) then {
|
||||||
_lootTableArray pushBack _x;
|
_lootTableArray pushBack _x;
|
||||||
_weightedArray pushBack _forEachIndex;
|
_weightedArray pushBack _forEachIndex;
|
||||||
};
|
};
|
||||||
|
};
|
||||||
}forEach getArray(configFile >> _configName >> _keyName >> _arrayName);
|
}forEach getArray(configFile >> _configName >> _keyName >> _arrayName);
|
||||||
_return = [_lootTableArray,_weightedArray];
|
_return = [_lootTableArray,_weightedArray];
|
||||||
missionNamespace setVariable[format["EPOCH_LT_%1_%2_%3",_configName,_keyName,_arrayName],_return];
|
missionNamespace setVariable[format["EPOCH_LT_%1_%2_%3",_configName,_keyName,_arrayName],_return];
|
||||||
|
diag_log format["EPOCH_LT_%1_%2_%3 = %4",_configName,_keyName,_arrayName,_return];
|
||||||
};
|
};
|
||||||
_return
|
_return
|
||||||
|
@ -1 +1 @@
|
|||||||
build=547;
|
build=552;
|
||||||
|
@ -1 +1 @@
|
|||||||
build=547;
|
build=552;
|
||||||
|
@ -21,10 +21,11 @@ class CfgMainTable
|
|||||||
LootMax = 1;
|
LootMax = 1;
|
||||||
tables[] = { "Food" };
|
tables[] = { "Food" };
|
||||||
antagonists[] = {
|
antagonists[] = {
|
||||||
{ "UAV", 30 },
|
{ "Zombie", 40 },
|
||||||
{ "Cloak", 25 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
|
{ "UAV", 15 },
|
||||||
{ "Sapper", 25 },
|
{ "Cloak", 10 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
|
||||||
{ "SapperB", 15 },
|
{ "Sapper", 20 },
|
||||||
|
{ "SapperB", 10 },
|
||||||
{ "PHANTOM", 5 }
|
{ "PHANTOM", 5 }
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -61,10 +62,11 @@ class CfgMainTable
|
|||||||
{ "GenericLarge", 18 }
|
{ "GenericLarge", 18 }
|
||||||
};
|
};
|
||||||
antagonists[] = {
|
antagonists[] = {
|
||||||
{ "UAV", 30 }, // I_UAV_01_F
|
{ "Zombie", 45 },
|
||||||
{ "Cloak", 30 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
|
{ "UAV", 15 },
|
||||||
{ "Sapper", 25 }, // Epoch_Sapper_F
|
{ "Cloak", 10 }, // Night = Epoch_Cloak_F, Day = Epoch_Sapper_F
|
||||||
{ "SapperB", 15 } // Epoch_SapperB_F
|
{ "Sapper", 20 },
|
||||||
|
{ "SapperB", 10 }
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
class TrashSmall : Default
|
class TrashSmall : Default
|
||||||
|
@ -81,8 +81,6 @@ class Tanoa : Default
|
|||||||
{"C_Plane_Civil_01_racing_F",1},
|
{"C_Plane_Civil_01_racing_F",1},
|
||||||
{"B_CTRG_LSV_01_light_F",2},
|
{"B_CTRG_LSV_01_light_F",2},
|
||||||
{"B_LSV_01_unarmed_F",2},
|
{"B_LSV_01_unarmed_F",2},
|
||||||
{"O_T_VTOL_02_infantry_F",1},
|
|
||||||
{"O_T_VTOL_02_vehicle_F",1},
|
|
||||||
{"B_T_VTOL_01_infantry_F",1},
|
{"B_T_VTOL_01_infantry_F",1},
|
||||||
{"B_T_VTOL_01_vehicle_F",1}
|
{"B_T_VTOL_01_vehicle_F",1}
|
||||||
};
|
};
|
||||||
@ -189,8 +187,6 @@ class Tanoa : Default
|
|||||||
{"C_Plane_Civil_01_racing_F",1},
|
{"C_Plane_Civil_01_racing_F",1},
|
||||||
{"B_CTRG_LSV_01_light_F",2},
|
{"B_CTRG_LSV_01_light_F",2},
|
||||||
{"B_LSV_01_unarmed_F",2},
|
{"B_LSV_01_unarmed_F",2},
|
||||||
{"O_T_VTOL_02_infantry_F",1},
|
|
||||||
{"O_T_VTOL_02_vehicle_F",1},
|
|
||||||
{"B_T_VTOL_01_infantry_F",1},
|
{"B_T_VTOL_01_infantry_F",1},
|
||||||
{"B_T_VTOL_01_vehicle_F",1}
|
{"B_T_VTOL_01_vehicle_F",1}
|
||||||
};
|
};
|
||||||
|
Loading…
Reference in New Issue
Block a user