Artillerie Script Problem, Artillerie schießt nicht

  • Multiplayer

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Artillerie Script Problem, Artillerie schießt nicht

    Hey Leute, habe ein Script was ein Artilleriegeschütz zufällig in einem festgelegten Radius, eine festgelegte Anzahl an Geschosse niedergehen lässt.

    Mein Problem, im Singleplayer macht die Arti auch genau das, im MP auf dem Server jedoch nicht, im MP richtet sich das Geschütz kurz aus und dreht danach seinen Turm wieder in Ausgangsstellung ohne dabei zu schießen... in der Vergangenheit hat dieser Code schon funktioniert daher habe ich kein Plan warum es jetzt nicht mehr geht.

    Das Script wird per "call compile preProcessFileLineNumbers "scripts\fire.sqf";" aufgerufen

    Quellcode: fire.sqf

    1. if (!isServer) exitWith {};
    2. [] spawn {
    3. private _artyAndTarget = [
    4. [arti_1, pad_1],
    5. [arti_2, pad_2],
    6. [arti_3, pad_3]
    7. ];
    8. private _radius = 250;
    9. for "_i" from 0 to 12 do
    10. {
    11. {
    12. _x params ["_arti", "_target"];
    13. if (alive _arti) then {
    14. _center = getPos _target;
    15. _pos = [(_center select 0) - _radius + (2 * random _radius),(_center select 1) - _radius + (2 * random _radius),0];
    16. [leader group _arti,[_pos,"12Rnd_230mm_rockets",1]] remoteExecCall ["doArtilleryFire", groupOwner group _arti];
    17. };
    18. } foreach _artyAndTarget;
    19. sleep 7;
    20. };
    21. };
    Alles anzeigen
  • Mit commandArtilleryFire geht es leider auch nicht, wobei es an sich auch das gleiche wie doArtilleryFire ist nur das die AI dabei spricht... habe es dennoch gelöst bekommen auch wenn nicht zu meiner vollsten Zufriedenheit

    Über Zeus bzw. dank Ares (MOD) wechsel ich die Ownership der Arti von Server zu Zeus, führe dann den Code minimal abgeändert also ohne remoteExecCall und der if !(isServer) abfrage und schon gehts... wenn ich genannten Code ausführe während die Arti den Server gehört geht es immer noch nicht... echt manchmal einfach nur Arma, aber so geht es und für ein einmaliges Ding geht es so klar

    abgeänderter Code

    Quellcode: fire.sqf

    1. [] spawn {
    2. private _artyAndTarget = [
    3. [arti_1, pad_1],
    4. [arti_2, pad_2],
    5. [arti_3, pad_3]
    6. ];
    7. private _radius = 250;
    8. for "_i" from 0 to 12 do
    9. {
    10. {
    11. _x params ["_arti", "_target"];
    12. if (alive _arti) then {
    13. _center = getPos _target;
    14. _pos = [(_center select 0) - _radius + (2 * random _radius),(_center select 1) - _radius + (2 * random _radius),0];
    15. _arti doArtilleryFire [_pos,"12Rnd_230mm_rockets",1];
    16. };
    17. } foreach _artyAndTarget;
    18. sleep 7;
    19. };
    20. };
    Alles anzeigen
  • Neu

    Reimchen schrieb:

    wenn ich genannten Code ausführe während die Arti den Server gehört geht es immer noch nicht
    Du hast bei RE ganz viel unnötiges Zeug geschrieben. Der Befehl muss auf der Maschine ausgeführt werden, der die Artillerie gehört. Mit der Maschine der Gruppe der Artillerie stimmt das nicht unbedingt überein. Außerdem hast du dem Gruppenführer der Artillerie den Befehl gegeben. Aber laut Wiki muss man es dem Fahrzeug (!) geben. Also selbst wenn der Gruppenführer im Mörser sitzt, hat der Soldat den Befehl bekommen und nicht das Fahrzeug.

    [leader group _arti,[_pos,"12Rnd_230mm_rockets",1]] remoteExecCall ["doArtilleryFire", groupOwner group _arti];
    ->
    [_arti, [_pos, "12Rnd_230mm_rockets", 1]] remoteExec ["doArtilleryFire", _arti];
  • Neu

    tja da habe ich das falsche Wort genutzt ^^ hätte besser Bereich und nicht Radius schreiben sollen, mir ist bewusst das es kein Kreis sondern ein Quadrat ist, aber es macht keinen Unterschied, denn der Spieler merkt ganz und gar nicht ob die Arti in einem Kreis oder Quadrat ihre Kugeln runter lässt sondern nur das sie nicht alle auf ein und den selben Punkt runtergehen, aber dennoch danke für die Alternative mit den Kreis Code...

    @Redd vom HC geblacklistet und dann sogar mit HC habe ich beides getestet, keine Änderung

    ich bin sogar nochmal hin und habe die remotExec Anmerkung umgesetzt, wobei meine letzte Lösung auf dem Server ausgeführt ja genau das gleiche ist, da die Arti den Server gehört und die remoteExec Sache ja nur sicher geht das auch nur der Owner der Arti das doArtilleryFire ausführt -> gebracht hat es nichts, die AI dreht weiterhin einfach nur ihren Turm in Richtung Ziel und danach wieder in Ausgangsstellung ohne dabei das Rohr anzuheben, geschweige denn zu schießen...

    wenn ich jedoch der Owner der Arti und der AI dadrin bin geht es, der Ursprüngliche Code, meine abgeänderte Form und die mit der remoteExec Änderung... ob das Problem nun ein Arma Problem oder eins durch Mods verursacht wird kann ich nicht bestätigen da ich kein Zugriff auf ein reinen Vanilla Server habe... naja ich habe meine einmalige Lösung ja bereits gefunden, danke aber trotzdem nochmal für entsprechende Anmerkungen / Lösungsansätze
    und bevor es jemand anmerkt, es ist kein AI-Mod in Nutzung

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Reimchen ()