05.02.2011, 09:20 | #21 (permalink) |
Registriert seit: 03.09.2006
Beiträge: 716
|
Super Vienna, hab das mal mit deiner Beispielmission getestet.
Was mir besonders gefällt ist der Radarberreich.Einen Radar haben wir in unserer Missi schon drin, doch so einen Berreich leider nicht. Wird schwer das mit dem bestehenden Skript und deinem zu kombinieren.... Aber gut gemacht
__________________
Event: Jeden Freitag & Sonntag Projekt: crCTI Proman Spruch: I am washed with all waters... |
06.02.2011, 12:13 | #23 (permalink) |
Registriert seit: 03.09.2006
Beiträge: 716
|
Ja das Skript ist SQS!
Ab einem bestimmten Berreich (< 4000) werden feindliche Aircrafts auf der Map angezeigt. Cool wäre es jetzt noch den Berreich mit deinem blinkenden Kreis zu markieren... Code:
; args: [si] _GroupLetters = ["A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R"] #Begin _si = _this select 0 _return = "Update" ? (_si == siWest): _textSide = "West"; _textSideEnemy = "East"; _siEnemy = siEast; goto "Start" ? (_si == siEast): _textSide = "East"; _textSideEnemy = "West"; _siEnemy = siWest; goto "Start" ? (_si == siCiv):goto "StartSpectator" Exit #Start _groups = groupMatrix select playerSideIndex _groupNames = groupNameMatrix select playerSideIndex _PlayerNames = call compile format["SQ_Names%1",[west,east]select playerSideIndex] _count = count _groups #Update ~1 _PlayerNames = call compile format["SQ_Names%1",[west,east]select playerSideIndex] ?((_si == siWest)&&(pvCommHacked1)):player sidechat "Comm Hacked";_hackedSide = siWest;playsound "Track3";goto "StartSpectator" ?((_si == siEast)&&(pvCommHacked0)):player sidechat "Comm Hacked";_hackedSide = siEast;playsound "Track3";goto "StartSpectator" ? ((_si == siWest)&& pvbase1W && (count (BaseMatrix select _si)>=1)):"Base1" setMarkerPosLocal ((BaseMatrix select _si) select 0);player sidechat"Base-1 Established";pvbase1W = false ? ((_si == siEast)&& pvbase1E && (count (BaseMatrix select _si)>=1)):"Base1" setMarkerPosLocal ((BaseMatrix select _si) select 0);player sidechat"Base-1 Established";pvbase1E = false ? ((_si == siWest)&& pvbase2W && (count (BaseMatrix select _si)==2)):"Base2" setMarkerPosLocal ((BaseMatrix select _si) select 1);player sidechat"Base-2 Established";pvbase2W = false ? ((_si == siEast)&& pvbase2E && (count (BaseMatrix select _si)==2)):"Base2" setMarkerPosLocal ((BaseMatrix select _si) select 1);player sidechat"Base-2 Established";pvbase2E = false ? (0 == count ([playerSideIndex, stComm] call funcGetWorkingStructures)): goto "HideAll" ; LEADERS _index = 0 {_leader=leader _x; _markerType= (["mil_objective","Dot"] select (alive _leader));_marker=Format ["%1 %2 Marker", _textSide, _groupNames select _index];if(isplayer _leader)then{ _marker setmarkertextlocal (_PlayerNames select _index)}else{_marker setmarkertextlocal ((groupNameMatrix select _si)select _index)}; _marker setMarkerPosLocal getPos _leader; _marker setMarkerTypeLocal _markerType; _wpPos = [_x] call fn_getExpectedGroupDestPos; [_marker+"_1", position _leader, _wpPos, "ColorBlue"] call fn_drawMapLine; _index = _index + 1} foreach _groups ; GROUP MEMBER MARKERS _gi = 0 _countGroups = count (groupMatrix select playerSideIndex) #CheckGroup _group = (groupMatrix select playerSideIndex) select _gi _units = units _group - [leader _group] ;//_units = units _group _count = count _units _index = 0 #CheckAI _marker = Format["UnitMarker_%1_%2_%3", playerSideIndex, _gi, _index] _marker2 = Format["UnitWpMarker_%1_%2_%3", playerSideIndex, _gi, _index] ? !((_index < _count) && (_gi == playerGroupIndex || giMarkersAI == _gi || giMarkersAI == _countGroups)): _marker setMarkerPosLocal hiddenMarkerPos; [_marker2, [0,0,0], [0,0,0], "ColorRed"] call fn_drawMapLine; goto "CheckNextAI"; _ai = _units select _index _marker setMarkerPosLocal getPos _ai ? (_gi != playerGroupIndex): goto "CheckNextAI"; _destRecord = expectedDestination _ai _wpPos = [0,0,0] ?(count _destRecord > 0): _wpPos = _destRecord select 0 [_marker2, position _ai, _wpPos, "ColorRed"] call fn_drawMapLine #CheckNextAI _index = _index + 1 ? (_index < 11): goto "CheckAI" _gi = _gi + 1 ? (_gi < _countGroups): goto "CheckGroup" ; VEHICLES OWN _vehicleMapping = (vehicleMarkerMapping select playerSideIndex) - [0] _index = 0 _count = count _vehicleMapping ? (_count == 0): goto "NoVehiclesOwn" #CheckVehicleOwn _vehicle = (_vehicleMapping select _index) select 0 _marker = format["%1 Vehicle %2", _textSide, (_vehicleMapping select _index) select 1] ? (isNull _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleOwn" ? (_vehicle != mhq) && !(alive _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleOwn" _marker setMarkerPosLocal getPos _vehicle _marker setMarkerDirLocal getDir _vehicle #CheckNextVehicleOwn _index = _index + 1 ? (_index < _count): goto "CheckVehicleOwn" #NoVehiclesOwn ? (2 != (upgMatrix select playerSideIndex) select upgRadarAircraft): goto "Update" ; VEHICLES ENEMY _vehicleMapping = (vehicleMarkerMapping select _siEnemy) - [0] _index = 0 _count = count _vehicleMapping ? (_count == 0):goto "NoVehiclesEnemy" #CheckVehicleEnemy _vehicle = (_vehicleMapping select _index) select 0 _marker = format["%1 Vehicle %2", _textSideEnemy, (_vehicleMapping select _index) select 1] ? (isNull _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" ? (50 > ((getPos _vehicle) select 2)): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" _inrange = false _radars = [playerSideIndex, stAAradar] call funcGetWorkingStructures { if ((_vehicle distance _x) < 4000) then { _inrange = true } } foreach _radars ? !_inrange: _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" ? !(alive _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" _marker setMarkerPosLocal getPos _vehicle _marker setMarkerDirLocal getDir _vehicle #CheckNextVehicleEnemy _index = _index + 1 ? (_index < _count): goto "CheckVehicleEnemy" #NoVehiclesEnemy goto "Update" #StartSpectator _groupsWest = groupMatrix select siWest _groupsEast = groupMatrix select siEast _groupNamesWest = groupNameMatrix select siWest _groupNamesEast = groupNameMatrix select siEast #UpdateSpectator ;~2 ?((_hackedSide == siWest)&&(!(pvCommHacked1))):player sidechat "Lost Comm Hack";_return = "Begin";goto "HideAll" ?((_hackedSide == siEast)&&(!(pvCommHacked0))):player sidechat "Lost Comm Hack";_return = "Begin";goto "HideAll" ; LEADERS _index = 0 {_leader=leader _x; _markerType= (["mil_objective","Dot"] select (alive _leader));_marker=Format ["West %1 Marker", _groupNamesWest select _index]; _marker setMarkerPosLocal getPos _leader; _marker setMarkerTypeLocal _markerType; _marker+"_1" setMarkerSizeLocal [0,0]; _wpPos = [_x] call fn_getExpectedGroupDestPos; [_marker+"_1", position _leader, _wpPos, "ColorBlue"] call fn_drawMapLine; _index = _index + 1} foreach _groupsWest _index = 0 {_leader=leader _x; _markerType= (["mil_objective","Dot"] select (alive _leader));_marker=Format ["East %1 Marker", _groupNamesEast select _index]; _marker setMarkerPosLocal getPos _leader; _marker setMarkerTypeLocal _markerType; _marker+"_1" setMarkerSizeLocal [0,0]; _wpPos = [_x] call fn_getExpectedGroupDestPos; [_marker+"_1", position _leader, _wpPos, "ColorBlue"] call fn_drawMapLine; _index = _index + 1} foreach _groupsEast ; GROUP MEMBER MARKERS _si = 0 #SpecCheckSide _countGroups = count (groupMatrix select _si) _gi = 0 #SpecCheckGroup _group = (groupMatrix select _si) select _gi _units = units _group - [leader _group] _count = count _units _index = 0 #SpecCheckAI _marker = Format["UnitMarker_%1_%2_%3", _si, _gi, _index] ; _marker2 = Format["UnitWpMarker_%1_%2_%3", _si, _gi, _index] ; ? (_index >= _count): _marker setMarkerPosLocal hiddenMarkerPos; [_marker2, [0,0,0], [0,0,0], "ColorYellow"] call fn_drawMapLine; goto "SpecCheckNextAI" ? (_index >= _count): _marker setMarkerPosLocal hiddenMarkerPos; goto "SpecCheckNextAI" _ai = _units select _index _marker setMarkerPosLocal getPos _ai ; _marker setmarkerTextlocal (_GroupLetters select _gi) _destRecord = expectedDestination _ai _wpPos = [0,0,0] ?(count _destRecord > 0): _wpPos = _destRecord select 0 ; [_marker2, position _ai, _wpPos, "ColorYellow"] call fn_drawMapLine #SpecCheckNextAI _index = _index + 1 ? (_index < 11): goto "SpecCheckAI" _gi = _gi + 1 ? (_gi < _countGroups): goto "SpecCheckGroup" _si = _si + 1 ? (_si < 2): goto "SpecCheckSide" ; VEHICLES WEST _si = siWest _textSide = "West" _vehicleMapping = (vehicleMarkerMapping select _si) - [0] _index = 0 _count = count _vehicleMapping ? (_count == 0): goto "NoVehiclesWest" #CheckVehicleWest _vehicle = (_vehicleMapping select _index) select 0 _marker = format["%1 Vehicle %2", _textSide, (_vehicleMapping select _index) select 1] ? (isNull _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleWest" ? !(alive _vehicle) && (_vehicle != mhqWest): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleWest" _marker setMarkerPosLocal getPos _vehicle _marker setMarkerDirLocal getDir _vehicle #CheckNextVehicleWest _index = _index + 1 ? (_index < _count): goto "CheckVehicleWest" #NoVehiclesWest ; VEHICLES EAST _si = siEast _textSide = "East" _vehicleMapping = (vehicleMarkerMapping select _si) - [0] _index = 0 _count = count _vehicleMapping ? (_count == 0): goto "NoVehiclesEast" #CheckVehicleEast _vehicle = (_vehicleMapping select _index) select 0 _marker = format["%1 Vehicle %2", _textSide, (_vehicleMapping select _index) select 1] ? (isNull _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEast" ? !(alive _vehicle) && (_vehicle != mhqEast): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEast" _marker setMarkerPosLocal getPos _vehicle _marker setMarkerDirLocal getDir _vehicle #CheckNextVehicleEast _index = _index + 1 ? (_index < _count): goto "CheckVehicleEast" #NoVehiclesEast goto "UpdateSpectator" #HideAll ; LEADERS _index = 0 { _leader=leader _x; _marker=Format ["%1 %2 Marker", _textSide, _groupNames select _index]; _marker setMarkerPosLocal hiddenMarkerPos; _marker+"_1" setMarkerSizeLocal [0,0]; _index = _index + 1} foreach _groups ; GROUP MEMBER MARKERS _gi = 0 #HideUnitMarkersGroup _index = 0 #HideUnitMarker Format["UnitMarker_%1_%2_%3", playerSideIndex, _gi, _index] setMarkerPosLocal hiddenMarkerPos ?(_return == "Begin"): Format["UnitMarker_%1_%2_%3", _siEnemy, _gi, _index] setMarkerPosLocal hiddenMarkerPos _index = _index + 1 ? (_index < 11): goto "HideUnitMarker" _gi = _gi + 1 ? (_gi < 9): goto "HideUnitMarkersGroup" ; VEHICLES OWN _vehicleMapping = vehicleMarkerMapping select playerSideIndex { _marker = format["%1 Vehicle %2", _textSide, _x select 1]; _marker setMarkerPosLocal hiddenMarkerPos } foreach _vehicleMapping ; VEHICLES ENEMY _vehicleMapping = vehicleMarkerMapping select _siEnemy { _marker = format["%1 Vehicle %2", _textSideEnemy, _x select 1]; _marker setMarkerPosLocal hiddenMarkerPos } foreach _vehicleMapping goto _return Code:
; VEHICLES ENEMY _vehicleMapping = (vehicleMarkerMapping select _siEnemy) - [0] _index = 0 _count = count _vehicleMapping ? (_count == 0):goto "NoVehiclesEnemy" #CheckVehicleEnemy _vehicle = (_vehicleMapping select _index) select 0 _marker = format["%1 Vehicle %2", _textSideEnemy, (_vehicleMapping select _index) select 1] ? (isNull _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" ? (50 > ((getPos _vehicle) select 2)): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" _inrange = false _radars = [playerSideIndex, stAAradar] call funcGetWorkingStructures { if ((_vehicle distance _x) < 4000) then { _inrange = true } } foreach _radars ? !_inrange: _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" ? !(alive _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" _marker setMarkerPosLocal getPos _vehicle _marker setMarkerDirLocal getDir _vehicle #CheckNextVehicleEnemy _index = _index + 1 ? (_index < _count): goto "CheckVehicleEnemy" #NoVehiclesEnemy
__________________
Event: Jeden Freitag & Sonntag Projekt: crCTI Proman Spruch: I am washed with all waters... |
06.02.2011, 20:09 | #25 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Das würde ich auch vorschlagen. Beim Lesen des SQS Skripts bekommt man Kopfschmerzen
Erstelle ein Skript mit Namen Radar.sqf und dem Code aus Post #20. Das Skript ruf dann so auf: temp = [player,4000,10] execVM "Radar.sqf"; Wenn das Radar nicht alle sehen sollen, dann musst du das über den Aufruf des Skripts regeln. |
07.02.2011, 12:56 | #26 (permalink) |
Registriert seit: 03.09.2006
Beiträge: 716
|
Ja das hatte ich schon gemacht.Generell ist das Problem das ich einige Skripte in SQS habe und bei manchen nur weitere SQS aufrufen kann.Es geht dann über Umwege.... Wie gesagt interessiert mich nur der Radarbereich, denn der schon eingebaute funktioniert sehr gut und zeigt die Aircrafts mit den vorher schon festgelegten Markern auf.Dann kommt noch hinzu daß das Skript von anderen aufgerufen wird. Ich will da nicht zuviel umbauen, weil Rattenschwanz Egal, ich werd da nochmal was anderes versuchen.
__________________
Event: Jeden Freitag & Sonntag Projekt: crCTI Proman Spruch: I am washed with all waters... |
07.02.2011, 20:09 | #27 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Wenn du zu viel änderst kann das natürlich zu Problemen führen.
Füge in euer SQS-Skript an der ersichtlichen Stelle die lange Zeile ein: Code:
; VEHICLES ENEMY _vehicleMapping = (vehicleMarkerMapping select _siEnemy) - [0] _index = 0 _count = count _vehicleMapping ? (_count == 0):goto "NoVehiclesEnemy" #CheckVehicleEnemy _vehicle = (_vehicleMapping select _index) select 0 _marker = format["%1 Vehicle %2", _textSideEnemy, (_vehicleMapping select _index) select 1] ? (isNull _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" ? (50 > ((getPos _vehicle) select 2)): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" _inrange = false [_vehicle,4000,0.3] spawn {private ["_v","_d","_t","_r"];_v=_this select 0;_d=_this select 1;_t=_this select 2;_r=createMarkerLocal["RA4711", position _v];_r setMarkerShapeLocal"ELLIPSE";_r setMarkerBrushLocal"BORDER";_r setMarkerSizeLocal[_d,_d];_r setMarkerColorLocal"ColorOrange";sleep _t;deleteMarkerLocal _r} _radars = [playerSideIndex, stAAradar] call funcGetWorkingStructures { if ((_vehicle distance _x) < 4000) then { _inrange = true } } foreach _radars ? !_inrange: _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" ? !(alive _vehicle): _marker setMarkerPosLocal hiddenMarkerPos; goto "CheckNextVehicleEnemy" _marker setMarkerPosLocal getPos _vehicle _marker setMarkerDirLocal getDir _vehicle #CheckNextVehicleEnemy _index = _index + 1 ? (_index < _count): goto "CheckVehicleEnemy" #NoVehiclesEnemy PS: Ich hoffe die Zeile steht am richtigen Ort. Wenn nicht, dann teste die Zeile an einer anderen Stelle. Geändert von Vienna (07.02.2011 um 20:14 Uhr). |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Radar/Aircontroller | Al Simmons | Mod und Addon Ecke | 5 | 15.06.2006 19:50 |