ACIM Script - Advanced Civilian Interaction - ACE extension - Probleme im MP

  • Moin,


    ich möchte dem in die Jahre gekommenen Script ACIM (http://www.armaholic.com/page.php?id=27355) gerne eine ACE-Extension verpassen und die einzelnen Menüpunkte in die entsprechenden ACE Menüs hinzufügen.


    Im Singleplayer / Editor funktioniert das Script schon wunderbar und Fehlerfrei... doch sobald ich das ganze nicht als Host (Multiplayer) starte geht gar nichts mehr.

    Ich hoffe einfach mal, dass ich vor einem wirklich wirklich dummen Fehler sitze und nur zu blind bin ihn zu finden.


    Mein RPTlog gibt mir folgende Fehlermeldung:



    Meine SQF zum hinzufügen der einzelnen Befehle zum ACE Menü ist:


    Im Anhang findet Ihr die Mission an sich (ACE / CBA).


    Wie bereits gesagt, hoffe ich dass es wirklich nur ein kleiner Denkfehler oder sonstiger Arma Shiiiit ist und man mir hier helfen kann. (Das fertige Script würde ich natürlich auch hier releasen)


    Grüße Gangolf

  • Moin,


    ich habe das Problem weiter eingrenzen können. Es ist nicht (wie ich dachte) das ACE Interactionmenü das Probleme macht, sondern das auszuführende Script um die KI machen zu lassen was ich möchte.


    Ich rufe die Prozedur mit folgendem Befehl über ACE auf:
    [_player] execVM "CW_ACIM\Scripts\Movement\stop.sqf" // _player wird von ACE mit dem Spieler ersetzet


    das Script führt folgende Zeilen aus:


    _caller = _this select 0;
    _pos = getpos _caller;
    _nearZiv = _pos nearObjects ["civilian",50];
    { _x disableAI "Move"}forEach _nearZiv;


    Dies funktioniert nicht! Während


    _caller = _this select 0;
    _pos = getpos _caller;
    _nearZiv = _pos nearObjects ["civilian",50];
    { _x setdammage 1}forEach _nearZiv;


    problemlos alles in der Umgebung killt.


    Jemand eine Idee? Das gleiche gilt übrigens für [_x,true] call ace_captives_fnc_setSurrendered


    BTW:Ich erhalte keinen Scripterror beim ausführen?

  • Moin,


    das Thema hat sich erledigt.


    Per ACE ausgeführte Scripts werden nur local gestartet.... einfach statt einem ExeC
    [[[_player], "CW_ACIM\Scripts\Movement\surrender.sqf"], "BIS_fnc_execVM", true] call BIS_fnc_MP;

    eingetragen und läuft wunderbar.


    @Fabi Das Ziel ist ein Rework des ACIM - Scriptes, mit dem man mit KIs interagieren kann ohne ständig irgendwelche Ace Menüs oder AddAction Menüs zu suchen....


    Szenario:
    Du sollst einen Compound auf Takistan räumen, in diesem befinden sich Zivilisten. Du kannst die dann quasi schon vom Tor her anschreien "Hände hoch" oder "auf den Boden".


    Mein Ziel jetzt ist es das ganze ein wenig mehr auszubauen und so mehr Interaktion zu ermöglich.


    Vielen Dank trotzdem für deine Nachricht!
    Thread kann geschlossen werden... eine Mütze Schlaf kann echt wunder bewirken.


    Grüße Gangolf

  • Super Arbeit!


    lädts Du bitte die "neue" Datei hier hoch!


    (hatte das Script auch schon oft im Visier. zum Beispiel für eine Schleuse/Checkpoint oder Suchen einer bestimmten Person. Wäre cool wenn sich das Bild im Ausweis, und das Alter irgendwie definieren lassen würden)

  • Ich hab das ganze aus Faulheit in nen Mod gepackt (lässt sich für mich besser händeln).


    Aktuell kann ich aus irgendeinem Grund die Init SQF mit [[60,[ADMINUID]],"fn_ACIM_init",true] call BIS_fnc_MP; nicht abrufen und hau mich jetzt auch ins Bett.


    Ihr könnt den Mod mit:
    duration = 60
    adminuid = [ADMINUID,ADMINUID]
    [duration] execVM "\CW_ACIM_002\CW_ACIM\Functions\fn_updateciv.sqf";
    [adminuid] execVM "\CW_ACIM_002\CW_ACIM\ace_actions.sqf";
    execVM "\CW_ACIM_002\CW_ACIM\ACIM_init.sqf";


    Aus eurer Init.sqf ausführen.


    Warum? Weil man einen solchen Mod nicht in jeder Mission braucht und ihn so einfach an schalten kann.


    Duration
    Damit auch nächträglich (per Zeus oder per Script) generierte Zivis die ACE Add Action Menüs erhalten, läuft hier ein Timer (60sec).
    Ich habe noch keine Ahnung wie viel Leistung das Frist, kann mir aber vorstellen bei viel KI viel (Ich überleg mir da noch ne bessere Lösung).


    AdminUID
    Dreimal darfst du raten, wass du damit kannst :P


    Wenn hier wirklich Interesse an dem fertigen Mod herrscht, halte ich euch gerne auf dem laufenden.


    Vorschläge und Ideen nehme ich mich gerne an @Fabi


    Grüße ein müder Gangolf

  • @Gangolf Danke Dir!


    Interesse auf jeden Fall. Und Ideen und wünsche habe ich auch :-) Ich wollte in Zukunft an einem Dienstausweis/Personalausweis basteln, deswegen beobachte ich dieses Thema hier sehr genau und freue mich das du das hier weiterführen möchtest. In Kombination mit den Actions ist das richtig gut.


    Wir haben in unserem Clan eine Kaserne und ich würde dort gerne für die Checkpoint/Gesprächsaufklärung etc Dienstausweise einführen welche an die ID der Spieler gekoppelt sind. Dazu wäre es halt super wenn:

    • bei Soldaten ein Dienstausweis (Vorlage kannst du von mir haben) und bei Zivilisten ein (Personalausweis) angezeigt wird
    • Name, Alter und Bild von der ID automatisch auf den Ausweis projeziert werden (evtl noch Dienstgrad)
    • Der Ausweis ein Objekt ist was im Inventar Platz findet und auch getauscht werden kann (Daten müssen am Objekt erhalten bleiben, heißt: beim Join auf dem Server einmal einen Ausweis im Inventar hinzufügen, und dieser behält die Daten bis zum Schluß) - evtl kann ich dir ein Modell zur Ausweis-Verfügung stellen
    • Eine Self-Interaktion - Ausweis zeigen - und andere Spieler in 1-2m Nähe sehen diesen (Also auch den Ausweis freiwillig zeigen können :-) )


    Ja...das wäre zumindest mal das grobe was einen so vorschwebt :-)

  • Duration
    Damit auch nächträglich (per Zeus oder per Script) generierte Zivis die ACE Add Action Menüs erhalten, läuft hier ein Timer (60sec).
    Ich habe noch keine Ahnung wie viel Leistung das Frist, kann mir aber vorstellen bei viel KI viel (Ich überleg mir da noch ne bessere Lösung).

    Ich kenne mich damit halt auch nicht aus, aber denke mal schon das da ne Menge Performance gebraucht wird.


    Genial wäre es ja, wenn man die ACE Action im Menü der Person (Attribute) an und abschalten könnte und auch gleich dort die Daten für Asuweis eintragen kann. So kann man Zivis spawnen und gleich sagen - hat ACE Menü...hab halt keine AHnung wie Aufwendig das ist. Habe dies aber schon bei einigen Mods gesehen - z.B. bei dem CH53 dort kann man Zahlen für die Beschriftung eingeben, Die Rotoren falten usw. Dort versteckt sich zumindest der Code für diese Menüeinträge :-)

  • Moin,


    hier bin ich wieder mit ein wenig Käse.... und nem großen Fragezeichen..


    Und Zar erhalte ich in für Zeile 20.. also den Sleep Befehl.
    "Error: Allgemeiner Fehler in Ausdruck"


    Unabhängig ob ich mit einer Variable oder mit "sleep 60;" arbeite.


    Jemand eine Idee? Ich wüsste nicht was man mit "Sleep" falsch machen könnte o.O


    Grüße Gangolf

  • C
    1. ["CAManBase", "Init", {
    2. params ["_unit"];
    3. if (side _unit != civilian) exitWith {};
    4. // your code
    5. }] call CBA_fnc_addClassEventHandler;

    so würde das mit dem CBA classen event system gehen und sollte dazu auch noch einiges an performance einsparen

  • Moin Greni...


    achja die lieben Eventhandler... Ich habe es bisher aus irgendeinem Grund vermieden mit diesen zu Arbeiten und schau es mir bei Zeit mal an .. Danke @Dorbedo


    @Greni altes Haus \o/
    Der wert kommt aus ein den Parameter mit dem ich die Prozedur aufrufe aber unabhängig davon tritt das auch mit sleep 60; auf.


    Danke für die Tipps!

  • Wenn du einen vernünftigen Mod machen willst hat ein While true loop mit nem forEach über allUnits darin nichts zu suchen.
    Also am besten mit den schon erwähnten Eventhändlern versuchen.


    Bist du sicher das der Fehler in Zeile 20 ist? Oder ist das nur das was Arma behauptet? Wenn du nen #include nach einem Kommentar in deiner Scriptdatei hast dann ist die Zeilenangabe falsch.

  • Kurzes Update:
    Mod läuft!


    Sobald der Spieler der Mission beigetreten ist und am Leben ist { waituntil (alive player); } wird für alle platzierten Zivilisten die entsprechenden Menüs hinzugefügt... Alle von Zeus gesetzten Einheiten erhalten mittels eines Event Handlers Ihre Menü-Punkte.


    Auch die von TaskForce Radio abhängige Hörreichweite funktioniert bereits. Aktuelle Einstellungen sind:
    Flüstern 2,5m
    Normal 5m
    Schreien 30m


    Ich werde den Mod aktuell noch weiter testen und anschließend Anfangen ein paar Features / zusätzliche Optionen hinzufügen.


    Grüße Gangolf

  • Moinsens,


    ein kleines Update und mal wieder meine Unwissenheit...


    Wir haben den Mod jetzt bei einer Mission testen können, dabei ist mir folgendes Problem aufgefallen:


    In einer Multiplayersession ist es mir nur möglich per Zeus erzeugte Zivilisten Befehle zu geben (Hände hoch / Auf den Boden), während vorgesetzte Zivilisten nicht reagieren.


    Folgender Code wird zum Ausführen von Befehlen verwendet:

    C
    1. _caller = _this select 0; //Ausführender Spieler
    2. _pos = getpos _caller;
    3. _nearZiv = _caller nearObjects ["civilian",(TF_speak_volume_meters / 2)];
    4. {[_x,true] call ace_captives_fnc_setSurrendered}forEach _nearZiv;

    Jemand eine Idee, warum die AI so reagiert?



    Grüße Gangolf