Bombenleger altes SQS Skript

  • Multiplayer

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

  • Bombenleger altes SQS Skript

    Hi, ich hab noch ein Skript aus OFP hier liegen, und bekomme es nicht ans laufen in A3.
    Ich hänge das Skript einer KI Einheit in die Init.
    Funktion: Wenn die Einheit in einem 200m Umkreis gegnerische Gebäude hat, geht sie hin und legt dort satchels.
    Leider macht die nichts. In der RPT finde ich null dazu. Vermutlich ist das auch einfach durch. Meinungen würden mich aber schon interessieren.

    C-Quellcode

    1. _unit = _this select 0
    2. _si = _this select 1
    3. _gi = _this select 2
    4. call compile busySet
    5. #Check
    6. ? !(alive _unit) : goto "Exit"
    7. ? _unit != (vehicle _unit) || !(SatchelCharge_Remote_Mag in (magazines _unit)) : goto "Exit"
    8. _res = [getPos _unit, _si] call funcGetClosestEnemyObject
    9. _object = _res select 0
    10. ? (_unit distance _object) > 200 : goto "Exit"
    11. _posDrop = [getPos _object, 5, 5] call funcGetRandomPos
    12. _unit doMove _posDrop
    13. _timeAbort = time + 2*60
    14. #CheckDropPosReached
    15. ~5
    16. ? !(alive _unit): goto "Exit"
    17. ? !(alive _object): goto "Check"
    18. ? time > _timeAbort : goto "Check"
    19. ? (_unit distance _object) > 10 : goto "CheckDropPosReached"
    20. _cBefore = {_x == SatchelCharge_Remote_Mag} count (magazines _unit)
    21. _unit fire [SatchelCharge_Remote_Mag]
    22. ~1
    23. ? !(alive _unit) : goto "Exit"
    24. _unit action ["SETTIMER"]
    25. _cAfter = {_x == SatchelCharge_Remote_Mag} count (magazines _unit)
    26. ? _cAfter == 1 && _cBefore == 1 : _unit removeMagazine SatchelCharge_Remote_Mag
    27. #MoveAway
    28. _posMove = [getPos _object, 100, 100] call funcGetRandomPos
    29. _unit doMove _posMove
    30. ~30
    31. goto "Check"
    32. #Exit
    33. call compile busyClear
    34. exit
    Alles anzeigen
    Warum reiben sich Frauen morgens nach dem Aufstehen die Augen?
    Weil sie keine Eier zum Kratzen haben!


    tactical faction action & insurrection
    steamcommunity.com/sharedfiles/filedetails/?id=697756742
  • dedmen schrieb:

    mit dem exec befehl? Denn die Init box im Editor ist SQF nicht SQS.
    Nein nicht im Editor. Sorry blöd ausgedrückt.

    Ich hab das Skript AI_CheckDropBomb.sqs hier an die Einheit gehangen. Das wird serverseitig dann aufgerufen sobald der Kollege spawnt.
    InitSaboteur.sqf ist z.B die komplette Uniformierung. Also Skripte starten hierüber geht wunderbar.

    C-Quellcode

    1. udName = 0;
    2. udCost = 1;
    3. udSide = 2;
    4. udBuildTime = 3;
    5. udModel = 4;
    6. udFactoryType = 5;
    7. udCrew = 6;
    8. udMarkerType = 7;
    9. udScriptsServer = 8;
    10. udScriptsPlayer = 9;
    11. udRearm = 10;
    12. unitDefs set [_type, ["Saboteur (Ghillie,MAR-10,SD,Satchels)", 300, siWest, 7, "B_Soldier_F", stBarracks, [], sQSoldier, ["InitSaboteur.sqf","AI_CheckDropBomb.sqs"], [],[] ] ];
    13. _SaboteurW = _type;
    14. _type = _type + 1;
    Alles anzeigen


    dedmen schrieb:

    undefinierte variable?
    SatchelCharge_Remote_Mag ist einfach nur der Classname für die Zeitbomben (Satchles)


    In Zeile 31: _unit action ["SETTIMER"]
    Das ist glaub auch nicht mehr aktuell. Jedenfalls kann ich der Einheit über Taste 6 Actions befehlen die normal nur ich selbst habe.
    Irgendwas ist da nicht rund. 8|
    Warum reiben sich Frauen morgens nach dem Aufstehen die Augen?
    Weil sie keine Eier zum Kratzen haben!


    tactical faction action & insurrection
    steamcommunity.com/sharedfiles/filedetails/?id=697756742
  • Muecke schrieb:

    unitDefs set
    Sagt mir immer noch nichts, da das irgendwas custom ist.


    Muecke schrieb:

    SatchelCharge_Remote_Mag ist einfach nur der Classname für die Zeitbomben (Satchles)
    Ich weiß. In dem code steht das aber nicht als String.

    Muecke schrieb:

    Das ist glaub auch nicht mehr aktuell.
    community.bistudio.com/wiki/ac…a_3_Actions_List#SetTimer
    Wiki sagt, es ist halb aktuell. Es braucht die Bombe, die auf dem boden liegt als Argument. Dafür kannst du nearestObject benutzen, musst nur den namen für die bombe finden.