|
本帖最后由 qevhytpl 于 2016-6-30 04:49 编辑
好久没有发布任务了,最近又重新搞了一下战地2的程序集,觉得还有点儿灵感,放个预告吧。另外为什么BI论坛上不去了呢?大家遇到这情况没有?
Have a nice day!
- QBF_fnc_Side_Array = { //得到地图内同一阵营所有人员
- private["_side","_array"];
- _side = _this select 0;
- _array = [];
- {if(side _x == _side)then{_array = _array + [_x]}}foreach allunits;
- _array;
- };
- QBF_fnc_Show_Order = {
- private["_unit","_text"];
- _unit = _this select 0;
- if(leader group _unit == _unit)then{_text = "leader"}else{_text = "soldier"};
- 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];
- };
- QBF_fnc_Side_D_Array = { //得到检测范围内我方步兵
- private["_side","_side","_d","_array","_array_0"];
- _unit = _this select 0;
- _d = (_unit getVariable"array") select 0;
- _side = side _unit;
- _array = nearestObjects [_unit,["Man"],_d];
- _array_0 = [];
- {if(side _x == _side && !(_x in In_Use_Array)&& _unit != _x)then{_array_0 = _array_0 + [_x]}}foreach _array;
- _array_0;
- };
- QBF_fnc_Side_D_GL_Array = {//得到检测范围内我方步兵组长
- private["_side","_side","_d","_array","_array_0"];
- _unit = _this select 0;
- _array = [_unit] call QBF_fnc_Side_D_Array;
- _array_GL = [];
- {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;
- //_unit globalChat format["%1",_array_GL];
- _array_GL;
- };
- QBF_fnc_Authority = {
- private["_unit","_rank","_authority"];
- _unit = _this select 0;
- _rank = rank _unit;
- switch (_rank) do
- {
- case "PRIVATE":{_authority = 0};
- case "CORPORAL":{_authority = 1};
- case "SERGEANT":{_authority = 2};
- case "LIEUTENANT":{_authority = 3};
- case "CAPTAIN":{_authority = 4};
- case "MAJOR":{_authority = 5};
- case "COLONEL":{_authority = 6};
- };
- _authority;
- };
- QBF_fnc_Recruit_Array = {
- private["_unit","_array","_Num","_Num_0","_grp","_recruit_array"];
- _unit = _this select 0;
- _Num = (_unit getVariable"array") select 1;
- _grp = group _unit;
- _array = [_unit] call QBF_fnc_Side_D_Array;
- _recruit_array = [];
- {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;
- {if(_x getVariable "order" isEqualTo ["group",2])then{_recruit_array = _recruit_array - [_x]}}foreach _recruit_array;
- //_unit globalChat format["%1",_recruit_array];
- //copyToClipboard str format ["caller:%1>>recruit:%2",_unit,_recruit_array];
- _recruit_array;
- };
- QBF_fnc_Recruit = {
- private["_unit","_array","_Num","_grp","_recruit_array"];
- _unit = _this select 0;
- _Num = (_unit getVariable"array") select 1;
- _grp = group _unit;
- _array = [_unit] call QBF_fnc_Recruit_Array;
- _unit globalChat format["%1 can Recruit",_unit];
- if(_Num > count _array)then{
- _Num = count _array;
- for [{_i=0}, {_i<_Num}, {_i=_i+1}] do{
- _man = [_array] call Qevhytpl_Randomselect_function;
- _array = _array - [_man];
- [_man] join _grp;
- };
- {In_Use_Array = In_Use_Array + [_x];}foreach units _grp;
- }else{
- for [{_i=0}, {_i<_Num}, {_i=_i+1}] do{
- _man = [_array] call Qevhytpl_Randomselect_function;
- _array = _array - [_man];
- [_man] join _grp;
- };
- {In_Use_Array = In_Use_Array + [_x];}foreach units _grp;
- };
- };
- QBF_fnc_Judge_S = {//判断士兵是否符合入队条件
- private["_unit","_leader","_array","_Num_0","_Num_1","_Num_2","_Num_3"];
- _leader = _this select 0;
- _unit = _this select 1;
- if(count units group _unit == 1)then{_Num_0 = 1}else{_Num_0 = 0}; //组中一人 返还 1
- if(!(_unit in In_Use_Array))then{_Num_1 = 1}else{_Num_1 = 0}; //!(_unit in In_Use_Array) 返还 1
- if([_leader] call QBF_fnc_Authority > [_unit] call QBF_fnc_Authority)then{_Num_2 = 1;}else{_Num_2 = 0}; //军衔低于领导 返还 1
- 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};
- _array = [_Num_0,_Num_1,_Num_2,_Num_3];//_array = [1,1,0,1] or [1,1,1,0]均符合要求;
- _array;
- };
- QBF_fnc_Judge_L = {//判断军官是否有征兵权限
- private["_unit","_array","_Num_0","_Num_1"];
- _unit = _this select 0;
- if(count units group _unit < _unit getVariable "array" select 1)then{_Num_0 = 1}else{_Num_0 = 0}; //部队存在损失 返还 1
- if([_unit] call QBF_fnc_Compare == 1)then{_Num_1 = 1;}else{_Num_1 = 0};
- _array = [_Num_0,_Num_1];//_array == [1,1] 符合要求;
- _unit globalChat format["%1",_array];
- //copyToClipboard str _array;
- //_array = _array + [_unit];
- //array_EX = array_EX + _array;
- //copyToClipboard str array_EX;
- _array;
- };
- QBF_fnc_Chance = {
- private["_unit","_chance","_array","_chance_array","_same_rank_array","_Num"];
- _unit = _this select 0;
- _chance = _unit getVariable"chance";
- _array = [_unit] call QBF_fnc_Side_D_GL_Array;
- _same_rank_array = [];
- _chance_array = [];
- {if([_unit] call QBF_fnc_Authority == [_x] call QBF_fnc_Authority)then{_same_rank_array = _same_rank_array + [_x]}}foreach _array;
- {_chance_array = _chance_array + [_x getVariable"chance"]}foreach _same_rank_array;
- _max = [_chance_array] call Qevhytpl_Max_function;
- if(_chance > _max)then{_Num = 1}else{_Num = 0};
- //hint format["%1",_chance_array];
- //copyToClipboard str _chance_array;
- _Num;
- };
- QBF_fnc_Compare = {
- private["_unit","_d","_array","_higher_rank_array","_same_rank_array","_Num","_Num_0","_Num_1"];
- _unit = _this select 0;
- _array = [_unit] call QBF_fnc_Side_D_GL_Array;
- _higher_rank_array = [];
- _same_rank_array = [];
- {if([_unit] call QBF_fnc_Authority < [_x] call QBF_fnc_Authority)then{_higher_rank_array = _higher_rank_array + [_x]}}foreach _array;
- {if([_unit] call QBF_fnc_Authority == [_x] call QBF_fnc_Authority)then{_same_rank_array = _same_rank_array + [_x]}}foreach _array;
- _Num_0 = count _higher_rank_array;
- _Num_1 = count _same_rank_array;
- if(_Num_0 == 0 && _Num_1 == 0)then{_Num = 1};
- if(_Num_0 > 0 && _Num_1 == 0)then{_Num = 0};
- if(_Num_0 == 0 && _Num_1 > 0)then{
- if([_unit] call QBF_fnc_Chance == 1)then{_Num = 1}else{_Num = 0};
- };//*
- if(_Num_0 > 0 && _Num_1 > 0)then{_Num = 0};
- //hint format["%1",_Num];
- _Num;
- };
复制代码 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?加入VME
x
|