中国虚拟军事网(VME)- 专注于武装突袭系列虚拟军事游戏

 找回密码
 加入VME

QQ登录

只需一步,快速开始

搜索
查看: 3070|回复: 4

最新武装突袭3版战地2预告

[复制链接]
发表于 2015-11-18 23:29:19 | 显示全部楼层 |阅读模式
本帖最后由 qevhytpl 于 2016-6-30 04:49 编辑

  好久没有发布任务了,最近又重新搞了一下战地2的程序集,觉得还有点儿灵感,放个预告吧。另外为什么BI论坛上不去了呢?大家遇到这情况没有?

Have a nice day!
  1. QBF_fnc_Side_Array = {     //得到地图内同一阵营所有人员
  2. private["_side","_array"];
  3. _side = _this select 0;
  4. _array = [];
  5. {if(side _x == _side)then{_array = _array + [_x]}}foreach allunits;
  6. _array;
  7. };
  8. QBF_fnc_Show_Order = {
  9. private["_unit","_text"];
  10. _unit = _this select 0;
  11. if(leader group _unit == _unit)then{_text = "leader"}else{_text = "soldier"};
  12. hint format["rank:%1\nmy order:%2\nfeat:%3\nchance:%4\narray:%5\n%6\nname:%7",rank _unit,_unit getVariable"order",_unit getVariable"feat",_unit getVariable"chance",_unit getVariable"array",_text,_unit];
  13. };
  14. QBF_fnc_Side_D_Array = {  //得到检测范围内我方步兵
  15. private["_side","_side","_d","_array","_array_0"];
  16. _unit = _this select 0;
  17. _d = (_unit getVariable"array") select 0;
  18. _side = side _unit;
  19. _array = nearestObjects [_unit,["Man"],_d];
  20. _array_0 = [];
  21. {if(side _x == _side && !(_x in In_Use_Array)&& _unit != _x)then{_array_0 = _array_0 + [_x]}}foreach _array;
  22. _array_0;
  23. };
  24. QBF_fnc_Side_D_GL_Array = {//得到检测范围内我方步兵组长
  25. private["_side","_side","_d","_array","_array_0"];
  26. _unit = _this select 0;
  27. _array = [_unit] call QBF_fnc_Side_D_Array;
  28. _array_GL = [];
  29. {if(count units group _x > 0 && group _x != group _unit && !(leader group _x in _array_GL))then{_array_GL = _array_GL + [leader group _x]}}foreach _array;
  30. //_unit globalChat format["%1",_array_GL];
  31. _array_GL;
  32. };

  33. QBF_fnc_Authority = {
  34. private["_unit","_rank","_authority"];
  35. _unit = _this select 0;
  36. _rank = rank _unit;
  37. switch (_rank) do
  38. {
  39.     case "PRIVATE":{_authority = 0};
  40.         case "CORPORAL":{_authority = 1};
  41.         case "SERGEANT":{_authority = 2};
  42.         case "LIEUTENANT":{_authority = 3};
  43.         case "CAPTAIN":{_authority = 4};
  44.         case "MAJOR":{_authority = 5};
  45.         case "COLONEL":{_authority = 6};
  46. };
  47. _authority;
  48. };
  49. QBF_fnc_Recruit_Array = {
  50. private["_unit","_array","_Num","_Num_0","_grp","_recruit_array"];
  51. _unit = _this select 0;
  52. _Num = (_unit getVariable"array") select 1;
  53. _grp = group _unit;
  54. _array = [_unit] call QBF_fnc_Side_D_Array;
  55. _recruit_array = [];
  56. {if([_unit,_x] call QBF_fnc_Judge_S isEqualTo [1,1,0,1] || [_unit,_x] call QBF_fnc_Judge_S isEqualto [1,1,1,0])then{_recruit_array = _recruit_array + [_x]}}foreach _array;
  57. {if(_x getVariable "order" isEqualTo ["group",2])then{_recruit_array = _recruit_array - [_x]}}foreach _recruit_array;
  58. //_unit globalChat format["%1",_recruit_array];
  59. //copyToClipboard str format ["caller:%1>>recruit:%2",_unit,_recruit_array];
  60. _recruit_array;
  61. };
  62. QBF_fnc_Recruit = {
  63. private["_unit","_array","_Num","_grp","_recruit_array"];
  64. _unit = _this select 0;
  65. _Num = (_unit getVariable"array") select 1;
  66. _grp = group _unit;
  67. _array = [_unit] call QBF_fnc_Recruit_Array;
  68. _unit globalChat format["%1 can Recruit",_unit];
  69. if(_Num > count _array)then{
  70.           _Num = count _array;
  71.           for [{_i=0}, {_i<_Num}, {_i=_i+1}] do{
  72.                                _man = [_array] call Qevhytpl_Randomselect_function;
  73.                                            _array = _array - [_man];
  74.                                            [_man] join _grp;
  75.                   };
  76.                   {In_Use_Array = In_Use_Array + [_x];}foreach units _grp;
  77. }else{
  78.                        for [{_i=0}, {_i<_Num}, {_i=_i+1}] do{
  79.                                _man = [_array] call Qevhytpl_Randomselect_function;
  80.                                            _array = _array - [_man];
  81.                                            [_man] join _grp;
  82.                                                                     };
  83.                                {In_Use_Array = In_Use_Array + [_x];}foreach units _grp;
  84.       };
  85. };
  86. QBF_fnc_Judge_S = {//判断士兵是否符合入队条件
  87. private["_unit","_leader","_array","_Num_0","_Num_1","_Num_2","_Num_3"];
  88. _leader = _this select 0;
  89. _unit = _this select 1;
  90. if(count units group _unit == 1)then{_Num_0 = 1}else{_Num_0 = 0};  //组中一人  返还 1
  91. if(!(_unit in In_Use_Array))then{_Num_1 = 1}else{_Num_1 = 0};      //!(_unit in In_Use_Array) 返还 1
  92. if([_leader] call QBF_fnc_Authority > [_unit] call QBF_fnc_Authority)then{_Num_2 = 1;}else{_Num_2 = 0};    //军衔低于领导    返还 1
  93. if([_leader] call QBF_fnc_Authority == [_unit] call QBF_fnc_Authority && _leader getVariable"chance" > _unit getVariable"chance")then{_Num_3 = 1;}else{_Num_3 = 0};
  94. _array = [_Num_0,_Num_1,_Num_2,_Num_3];//_array = [1,1,0,1] or [1,1,1,0]均符合要求;
  95. _array;
  96. };
  97. QBF_fnc_Judge_L = {//判断军官是否有征兵权限
  98. private["_unit","_array","_Num_0","_Num_1"];
  99. _unit = _this select 0;
  100. if(count units group _unit < _unit getVariable "array" select 1)then{_Num_0 = 1}else{_Num_0 = 0};  //部队存在损失  返还 1
  101. if([_unit] call QBF_fnc_Compare == 1)then{_Num_1 = 1;}else{_Num_1 = 0};
  102. _array = [_Num_0,_Num_1];//_array == [1,1] 符合要求;
  103. _unit globalChat format["%1",_array];
  104. //copyToClipboard str _array;
  105. //_array = _array + [_unit];
  106. //array_EX = array_EX + _array;
  107. //copyToClipboard str array_EX;
  108. _array;
  109. };
  110. QBF_fnc_Chance = {
  111. private["_unit","_chance","_array","_chance_array","_same_rank_array","_Num"];
  112. _unit = _this select 0;
  113. _chance =  _unit getVariable"chance";
  114. _array = [_unit] call QBF_fnc_Side_D_GL_Array;
  115. _same_rank_array = [];
  116. _chance_array = [];
  117. {if([_unit] call QBF_fnc_Authority == [_x] call QBF_fnc_Authority)then{_same_rank_array = _same_rank_array + [_x]}}foreach _array;
  118. {_chance_array = _chance_array + [_x getVariable"chance"]}foreach _same_rank_array;
  119. _max = [_chance_array] call Qevhytpl_Max_function;
  120. if(_chance > _max)then{_Num = 1}else{_Num = 0};
  121. //hint format["%1",_chance_array];
  122. //copyToClipboard str _chance_array;
  123. _Num;
  124. };
  125. QBF_fnc_Compare = {
  126. private["_unit","_d","_array","_higher_rank_array","_same_rank_array","_Num","_Num_0","_Num_1"];
  127. _unit = _this select 0;
  128. _array = [_unit] call QBF_fnc_Side_D_GL_Array;
  129. _higher_rank_array = [];
  130. _same_rank_array = [];
  131. {if([_unit] call QBF_fnc_Authority < [_x] call QBF_fnc_Authority)then{_higher_rank_array = _higher_rank_array + [_x]}}foreach _array;
  132. {if([_unit] call QBF_fnc_Authority == [_x] call QBF_fnc_Authority)then{_same_rank_array = _same_rank_array + [_x]}}foreach _array;
  133. _Num_0 = count _higher_rank_array;
  134. _Num_1 = count _same_rank_array;
  135. if(_Num_0 == 0 && _Num_1 == 0)then{_Num = 1};
  136. if(_Num_0 > 0 && _Num_1 == 0)then{_Num = 0};
  137. if(_Num_0 == 0 && _Num_1 > 0)then{
  138.            if([_unit] call QBF_fnc_Chance == 1)then{_Num = 1}else{_Num = 0};
  139.                                  };//*
  140. if(_Num_0 > 0 && _Num_1 > 0)then{_Num = 0};
  141. //hint format["%1",_Num];
  142. _Num;
  143. };
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
 楼主| 发表于 2015-12-1 16:44:40 | 显示全部楼层
更新进度 50%

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
发表于 2015-11-19 19:42:27 | 显示全部楼层
哪里预告
发表于 2015-11-27 13:39:50 | 显示全部楼层
看到战地2 我就激动了
 楼主| 发表于 2016-4-4 19:40:43 | 显示全部楼层
有日子没有更新进度了……

测试中

夺旗模式

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入VME

x
您需要登录后才可以回帖 登录 | 加入VME

本版积分规则

小黑屋|中国虚拟军事网

GMT+8, 2024-3-28 16:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表