13.07.2016, 13:20 | #1 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Zivilistenscript wirft Fehler beim Start
Hallo zusammen
Ich verwende nun schon ziemlich lange das COS-Script von BangaBob (https://forums.bistudio.com/topic/16...on-system-cos/). Nun bekomme ich die Fehlermeldung im Anhang, wenn ich das Script auf Tanoa einsetzen will (auf Stratis/Altis klappt das problemlos... oder kam das Problem mit Apex?). Die Meldung bezieht sich auf das Script cosCore.sqf (eines von mehreren Scripts in einem Folder voller Scripts), welche wie folgt aussieht: Code:
if (!isServer) exitWith {}; private ["_groupCount","_localGrpCount","_grp","_rdCount","_n","_r","_tempUnit","_tempVeh"]; _mkr= (_this select 0); // Get trigger status _trigID=format["trig%1", _mkr]; _isActive=server getvariable _trigID; // Get stored town variables _popVar=format["population%1", _mkr]; _information=server getvariable _popVar; _civilians=(_information select 0); _vehicles=(_information select 1); _parked=(_information select 2); _roadPosArray=(_information select 3); IF (debugCOS) then { COSGlobalSideChat=[_civilians,_vehicles,_parked, _mkr];publicvariable "COSGlobalSideChat"; player groupChat (format ["Town:%4 .Civilians:%1 .Vehicles:%2 .Parked:%3",_civilians,_vehicles,_parked, _mkr]);//for singleplayer }; _showRoads=false; IF (_showRoads) then { { _txt=format["roadMkr%1",_x]; _debugMkr=createMarker [_txt,getpos _x]; _debugMkr setMarkerShape "ICON"; _debugMkr setMarkerType "hd_dot"; }foreach _roadPosArray; }; _glbGrps=server getvariable "cosGrpCount"; _townGrp=createGroup DefaultSide; _localGrps=1; waituntil {!populating_COS}; populating_COS=true; _glbGrps=server getvariable "cosGrpCount"; //SPAWN CIVILIANS NOW _civilianArray=[]; _vehicleArray=[]; _PatrolVehArray=[]; _ParkedArray=[]; _roadPosArray=_roadPosArray call BIS_fnc_arrayShuffle; _UnitList=COScivPool call BIS_fnc_arrayShuffle; _vehList=COSmotPool call BIS_fnc_arrayShuffle; _countVehPool=count _vehList; _countPool=count _UnitList; _v=0; _n=0; _rdCount=0; // SPAWN PEDESTRIANS for "_i" from 1 to _civilians do { if (!(server getvariable _trigID)) exitwith {_isActive=false;}; if (_i >= _countPool) then { if (_n >= _countPool) then {_n=0;}; _tempUnit=_UnitList select _n; _n=_n+1; }; if (_i < _countPool) then { _tempUnit=_UnitList select _i; }; _tempPos=_roadPosArray select _rdCount; _rdCount=_rdCount+1; if (COSmaxGrps < (_glbGrps+_localGrps+1)) then { _grp=_townGrp; }else{ _grp=createGroup DefaultSide; _localGrps=_localGrps+1; }; _unit = _grp createUnit [_tempUnit, _tempPos, [], 0, "NONE"]; _civilianArray set [count _civilianArray,_grp]; null =[_unit] execVM "cos\addScript_Unit.sqf"; IF (debugCOS) then { _txt=format["INF%1,MKR%2",_i,_mkr]; _debugMkr=createMarker [_txt,getpos _unit]; _debugMkr setMarkerShape "ICON"; _debugMkr setMarkerType "hd_dot"; _debugMkr setMarkerText "Civ Spawn"; }; }; // SPAWN VEHICLES for "_i" from 1 to _vehicles do { if (!(server getvariable _trigID)) exitwith {_isActive=false;}; if (_i >= _countVehPool) then { if (_v >= _countVehPool) then {_v=0;}; _tempVeh=_vehList select _v; _v=_v+1; }; if (_i < _countVehPool) then { _tempVeh=_vehList select _i; }; if (_i >= _countPool) then { if (_n >= _countPool) then {_n=0;}; _tempUnit=_UnitList select _n; _n=_n+1; }; if (_i < _countPool) then { _tempUnit=_UnitList select _i; }; _tempPos=_roadPosArray select _rdCount; _rdCount=_rdCount+1; _roadConnectedTo = roadsConnectedTo _tempPos; _connectedRoad = _roadConnectedTo select 0; _direction = [_tempPos, _connectedRoad] call BIS_fnc_DirTo; if (COSmaxGrps < (_glbGrps+_localGrps+1)) then { _grp=_townGrp; }else{ _grp=createGroup DefaultSide; _localGrps=_localGrps+1; }; _veh = createVehicle [_tempVeh, _tempPos, [], 0, "NONE"]; _unit = _grp createUnit [_tempUnit, getpos _veh, [], 0, "CAN_COLLIDE"]; _veh setdir _direction; _unit assignAsDriver _veh; _unit moveInDriver _veh; _vehPack=[_veh,_unit,_grp]; _PatrolVehArray set [count _PatrolVehArray,_grp]; _vehicleArray set [count _vehicleArray,_vehPack]; null =[_veh] execVM "cos\addScript_Vehicle.sqf"; null =[_unit] execVM "cos\addScript_Unit.sqf"; IF (debugCOS) then { _txt=format["veh%1,mkr%2",_i,_mkr]; _debugMkr=createMarker [_txt,getpos _unit]; _debugMkr setMarkerShape "ICON"; _debugMkr setMarkerType "hd_dot"; _debugMkr setMarkerText "VEH Spawn"; }; }; // SPAWN PARKED VEHICLES for "_i" from 1 to _parked do { if (!(server getvariable _trigID)) exitwith {_isActive=false;}; if (_i >= _countVehPool) then { if (_v >= _countVehPool) then {_v=0;}; _tempVeh=_vehList select _v; _v=_v+1; }; if (_i < _countVehPool) then { _tempVeh=_vehList select _i; }; _tempPos=_roadPosArray select _rdCount; _rdCount=_rdCount+1; _roadConnectedTo = roadsConnectedTo _tempPos; _connectedRoad = _roadConnectedTo select 0; _direction = [_tempPos, _connectedRoad] call BIS_fnc_DirTo; _veh = createVehicle [_tempVeh, _tempPos, [], 0, "NONE"]; _veh setdir _direction; _veh setPos [(getPos _veh select 0)-6, getPos _veh select 1, getPos _veh select 2]; _ParkedArray set [count _ParkedArray,_veh]; null =[_veh] execVM "cos\addScript_Vehicle.sqf"; IF (debugCOS) then { _txt=format["Park%1,mkr%2",_i,_mkr]; _debugMkr=createMarker [_txt,getpos _veh]; _debugMkr setMarkerShape "ICON"; _debugMkr setMarkerType "hd_dot"; _debugMkr setMarkerText "Park Spawn"; }; }; // Apply Patrol script to all units null =[_civilianArray,_PatrolVehArray,_roadPosArray] execVM "cos\CosPatrol.sqf"; if (debugCOS) then {player sidechat (format ["Roads used:%1. Roads Stored %2",_rdCount,count _roadPosArray])}; // Count groups _glbGrps=server getvariable "cosGrpCount"; _glbGrps=_glbGrps+_localGrps; server setvariable ["cosGrpCount",_glbGrps]; populating_COS=false; // Show town label if town still active if (showTownLabel and (server getvariable _trigID)) then { COSTownLabel=[(_civilians+_vehicles),_mkr];PUBLICVARIABLE "COSTownLabel"; _population=format ["Population: %1",_civilians+_vehicles]; 0=[markerText _mkr,_population] spawn BIS_fnc_infoText;// FOR USE IN SINGLEPLAYER }; // Check every second until trigger is deactivated while {_isActive} do { _isActive=server getvariable _trigID; if (!_isActive) exitwith {}; sleep 1; }; // If another town is populating wait until it has finished before deleting population waituntil {!populating_COS}; // Delete all pedestrians _counter=0; { _grp=_x; _counter=_counter+1; if (debugCOS) then { deletemarker (format["INF%1,MKR%2",_counter,_mkr]);}; { deleteVehicle _x } forEach units _grp; deleteGroup _grp; }foreach _civilianArray; // Delete all vehicles and crew _counter=0; { _veh=_x select 0; _unit=_x select 1; _grp=_x select 2; _counter=_counter+1; if (debugCOS) then {deletemarker (format["veh%1,mkr%2",_counter,_mkr]);}; // CHECK VEHICLE IS NOT TAKEN BY PLAYER if ({isPlayer _veh} count (crew _veh) == 0) then {}; }foreach _vehicleArray; // Delete all parked vehicles _counter=0; { _counter=_counter+1; if (debugCOS) then {deletemarker (format["Park%1,mkr%2",_counter,_mkr]);}; // CHECK VEHICLE IS NOT TAKEN BY PLAYER if ({isPlayer _x} count (crew _x) == 0) then { }; }foreach _ParkedArray; deletegroup _townGrp; // Update global groups _glbGrps=server getvariable "cosGrpCount"; _glbGrps=_glbGrps-_localGrps; server setvariable ["cosGrpCount",_glbGrps]; P.S: Ich wollte zuerst mal hier im deutschen Forum schreiben, bevor ich mich ins englische (und somit direkt an BangaBob) wage. Jetzt schon vielen Dank für eure Unterstützung. |
14.07.2016, 08:08 | #2 (permalink) |
Registriert seit: 20.06.2016
Beiträge: 37
|
Das script is mir zu fett um es mal eben schnell zu debuggen, aber versuch mal das
_direction = [_tempPos, _connectedRoad] call BIS_fnc_DirTo; hiermit zu ersetzen: if(!isNil "_connectedRoad") then {_direction = [_tempPos, _connectedRoad] call BIS_fnc_DirTo} else {_direction = 0;}; P.S. BongaBob wirst du nicht errei hen, der ist inaktiv. Soll dich aber n8cht davon abhalten im release thread nachzufragen... vielleicht weiß dort jemand mehr...
__________________
Sarogahtyps Spawn Script Creator - SSSC the easy way to cache ur units, vehicles and their waypoints Geändert von Sarogahtyp (14.07.2016 um 08:11 Uhr). |
27.07.2016, 10:10 | #3 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Ich habe festgestellt, dass sich das Skript - je nach Ort auf Tanoa, wo die Spielerfigur steht - anders verhält.
Starte ich die Missionsvorschau beispielsweise auf der Airbase Tuvanaka (oder wie die heisst, dort im Nordwesten), kommt keine Fehlermeldung . Ich muss hier noch ein wenig weiter herumprobieren und auch die mögliche Lösung von Sarogahtyp mit einbeziehen. Kann also noch eine Weile dauern, bis ich hier mehr weiss.... |
27.07.2016, 10:25 | #4 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Ich werde mal meine Version auf Tanoa testen und die bescheid geben. Es ist an BangaBob seiner Version angelehnt. Ich arbeite allerdings ohne Trigger
__________________
Bewegende Momente bei ArmA 3 |
27.07.2016, 16:12 | #6 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Ich lasse mir die Marker auszählen. Ich komme auf 60. Bei 49 z.B. gibt es Probleme. Ich muss noch die anderen Sorgenkinder finden. Auf ALTIS hat da Script 1a funktioniert. Das kann man aber mit manuellen Markern kompensieren
Problem erkannt- Schaut man sich mal das hier an, weiß man, warum das Script teilweise spinnt: Genau wie BangaBob sein Script hat auch meines einen Suchraduis beginnt. Irgendwo muss man ja anfangen, und ein Startparament festlegen. Wenn dann nix drin ist, kann es Probleme geben. Hier dieser Marker liegt einfach zwischen den Inseln und es wird kein Haus erkannt. Laß dir mal bei Banga seinem Script die Marker anzeigen und haue die Problemfälle aus dem Array raus. Dann sollte es hinhauen.
__________________
Bewegende Momente bei ArmA 3 Geändert von Drunken Officer (27.07.2016 um 16:32 Uhr). |
15.08.2016, 09:40 | #7 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Bis jetzt habe ich das (Marker anzeigen lassen und die "faulen" ausmisten) noch nicht ausprobiert, weil die Fehlermeldungen plötzlich nicht mehr auftauchen.
Ich vermute, es kommt darauf an, wo auf der Map die Logik platziert wird. Je nach Ort, wo man diese Logik hinschiebt kommen Fehlermeldungen (oder eben keine). Ich vermute mal, die Marker werden je nach Standort der Logik anders platziert...? Wie auch immer. Im Moment scheint's zu klappen. Ich denke ich nehme mir die Sache erst wieder vor, wenn ich wieder auf Probleme stosse. |
22.08.2016, 14:10 | #8 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Ich habe mich hier wohl zu früh gefreut . Wenn der Spieler sich (z.B. in einem Flugzeug) über die Insel bewegt, tauchen die Fehlermeldungen wieder auf. Sobald ich also dazu komme, werde ich versuchen, diejenigen Marker, welche im Wasser liegen auszuschliessen.....
|
22.08.2016, 20:33 | #9 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Jo, lasse dir die MArker anzeigen und lösche die aus der Liste.
__________________
Bewegende Momente bei ArmA 3 |
23.08.2016, 11:49 | #10 (permalink) |
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 297
|
Ups, hab's mir noch halb gedacht: Wie man die Marker anzeigt habe ich zwar herausgefunden, aber...
Ich befürchte meine (ziemlich rudimentären) Scriptkenntnisse reichen dafür nicht aus. Wie soll ich bei dieser Aufgabe vorgehen? Wäre froh, wenn mir das jemand beschreiben könnte. Vielen Dank. |
24.08.2016, 22:38 | #11 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
ich schaue mir am WE mal das COS an. Welche Karte? Tanoa?
__________________
Bewegende Momente bei ArmA 3 |
28.08.2016, 19:13 | #13 (permalink) |
Registriert seit: 15.05.2011
Beiträge: 1.109
|
Ich war am WE bei dieser Hitze ( 37°C im Schatten ! ) einfach zu faul...
__________________
Bewegende Momente bei ArmA 3 |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Kein Update und Start von Arma3 mehr möglich | mstolle | Technische Fragen & Probleme | 6 | 09.06.2016 13:28 |
Arma 3 start fehler | DeluxeSchnidde | Technische Fragen & Probleme | 1 | 28.06.2015 17:38 |
A.C.E Mod Fehler beim Start | Jukeman | Operation Flashpoint | 3 | 21.11.2014 20:59 |
Stammtisch Webinstaller | Rockhount | Multiplayer | 106 | 07.01.2014 14:09 |