доброго времени суток всем. у меня скрипт аномалий и я пытаюсь сделать рандомный спавн маркера аномалий.
инициализация:
*/ //diag_log "Server side initializing..."; tf_Anomalies = []; tf_ActiveAnomalies = []; private ["_cnt, _Atext, _mark"]; _cnt = count allMapMarkers - 1; for "_x" from 0 to _cnt do { _Atext = markerText (allMapMarkers select _x); if (_Atext in ["jarka","electra","teleport","gravy"]) then { _mark = allMapMarkers select _x; tf_Anomalies append [_mark]; }; }; publicVariable "tf_Anomalies"; _null = [] spawn { private ["_Aname, _Aactive, _Aplayers"]; while {true} do { sleep 1; { _Aname = _x; _Aactive = VAR getVariable [_Aname,false]; diag_log str tf_ActiveAnomalies; diag_log format["Anomaly %1 is %2",_Aname, str _Aactive]; if (_Aactive) then { diag_log format["Checking anomaly %1",_Aname]; _Aplayers = false; scopeName "ifAnomalyisactive"; { diag_log format["Checking Player %1",_x]; if (markerPos _Aname distance (_x) < 7) then { diag_log format["Player %1 in range of anomaly %2",_x,_Aname]; if (alive _x) then { diag_log format["Player %1 is alive",_x]; _Aplayers = true; breakout "ifAnomalyisactive"; }; }; } forEach allPlayers; if (!_Aplayers) then { VAR setVariable [_Aname, false, true]; [[_Aname],"anomaly_fnc_Ahide",true,false] call BIS_fnc_MP; diag_log str tf_ActiveAnomalies; diag_log format["Hide it: %1",_Aname]; tf_ActiveAnomalies = tf_ActiveAnomalies - [_Aname]; diag_log str tf_ActiveAnomalies; }; }; } forEach tf_ActiveAnomalies; }; };
а вот кусок кода действия если игрок встанет на маркер
if (alive Player) then { _APlayer = Player; switch (markerText _Aname) do { case "jarka": { if (Player == _APlayer) then { if (_APlayer != vehicle _APlayer) then { (vehicle _APlayer) setDamage (damage vehicle _APlayer + random(0.3)); _APlayer setVariable ["AGM_AllowUnconscious", true]; _APlayer setVariable ["AGM_Blood", ((_APlayer getVariable "AGM_Blood") - random(0.1)), True]; _APlayer setVariable ["AGM_isBleeding", false, True]; _APlayer setVariable ["AGM_Pain", ((_APlayer getVariable "AGM_Pain") + random(0.4)), True]; _APlayer setHitPointDamage ["HitBody", (_APlayer getHitPointDamage "HitBody")+random(0.3)]; _APlayer setHitPointDamage ["HitLeftLeg", (_APlayer getHitPointDamage "HitLeftLeg")+random(0.1)]; _APlayer setHitPointDamage ["HitRightLeg", (_APlayer getHitPointDamage "HitRightLeg")+random(0.1)]; "dynamicBlur" ppEffectAdjust [8];
Проблема состоит в том, что созданный маркер в 2D редакторе с параметром Text "teleport", text "gravy" и.т.д работает с данный скриптом. созданный через скрипт например не реагирует
вот пример спавна маркера
private ["_pos","_centerPos","_anomal","_markArray"]; _markArray = ["jarka","electra","teleport","gravy"]; _anomal = _markArray select floor random count _markArray; _pos = [getMarkerPos "center",5,10,10,0,25,0] call BIS_fnc_findSafePos; randomMarkerCoord = _pos; randomMarkerName = _anomal; randomMarkerName = createMarker [_anomal, randomMarkerCoord]; randomMarkerName setMarkerColor "ColorRed"; randomMarkerName setMarkerType "mil_objective"; randomMarkerName setMarkerText format ["%1", _anomal]; sleep 4;
прошу помочь в данном вопросе. может кто сталкивался с аналогичной проблемой.
Сообщение отредактировал Targon: 27 November 2015 - 08:32