HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   RemoveAction prob (https://hx3.de/editing-139/removeaction-prob-15996/)

DirtyHarryTPC 28.03.2009 13:44

RemoveAction prob
 
hi

mein problem ist ,hab früher immer sqs benutzt und da funzte es wunderbar wenn man ein objekt mit nem action button hatte und ihn benutzt hat der addaction nach script aufruf weg war weil im script stand drin obj1 removeAction ID , nun benutzte ich nur noch sqf und da funzt das nicht :(.
gibts da eine möglichkeit ??



mfg Harry

S4mmy 28.03.2009 14:28

Ich glaube so war das:

Erstelle eine Gamelogik und schreib in die Init Zeile
obj1=position this nearestObject 5555 | 5555 ist die ID Nummer..
und schiebe die Logik auf das Haus.

In die Sqf schreibst du dann dein Script und die befehle addaction und removeaction fügst du mit ein.

Code:

_action = obj1 addaction ["Hallo..","hallo.sqf"];

obj1 removeaction _action;

Möge mich einer verbessern wenn's nicht stimmt.^^

DirtyHarryTPC 28.03.2009 14:36

also es ist kein obj mit ner ID es istn computer.;)
der addAction steht in der init.sqf , im script steht nur ein bischen hint "bla bla bla"
hab deinen vorschlag mal am anfang geschrieben ,scheint aber nich zu gehen.

S4mmy 28.03.2009 14:53

warum schreibst du die addaction in die init.sqf :komisch: naja

was willst du denn genau haben^^ ?

du kannst auch einen kleinen auslöser machen auf mehrfach stellen den um den pc machen

bei aktivierung:
_action = computer1 addaction ["Pc benutzen","usqpc.sqf"];

und bei deaktivierung:
computer1 removeaction _action;

DirtyHarryTPC 28.03.2009 15:04

naja ich machs schon immer so und wie gesagt per sqs hatts auch immer geklappt :D

S4mmy 28.03.2009 15:06

stell dich langsam mal auf sqf ein sqs gibts mit arma 2 nicht mehr ;)

probiers mal so wie ichs dir geschrieben hab mit dem auslöser.

Garstiger Hobbit 28.03.2009 15:42

Wenn ihr das schon über nen auslöser machen wollt.

Dann wohl eher so.

Action = computer1 addaction ["Pc benutzen","usqpc.sqf"];

computer1 removeaction action;

Bei der anderen Variante wird wohl ein error kommen von wegen locale Variable im Globalen bereich.

DirtyHarryTPC 28.03.2009 15:48

richtig :D

hab aber nicht vor das über nen auslöser zu machen , sollte es nich im script funzen lass ich eben weg, auch nich so schlimm .

Vienna 28.03.2009 19:22

Beim Aufrufen einer Aktion wird automatisch das Objekt mit der Aktion und die Nummer der Aktion als Parameter übergeben.

Wenn ihr ins aufgerufene Skript die Zeile

(_this select 0)removeaction(_this select 2);

schreibt, dann wird die Aktion, die aufgerufen wurde, aus dem Objekt gelöscht.


Die Parameter, die in ein Skript übergeben werden, könnt ihr euch anzeigen lassen, wenn ihr diese Zeile in das Skript schreibt:

player groupchat format["%1",_this];

DirtyHarryTPC 28.03.2009 19:23

aha mal probieren. :)

TeRp 28.03.2009 19:50

Zitat:

Zitat von Vienna (Beitrag 223436)
Beim Aufrufen einer Aktion wird automatisch das Objekt mit der Aktion und die Nummer der Aktion als Parameter übergeben.

Wenn ihr ins aufgerufene Skript die Zeile

(_this select 0)removeaction(_this select 2);

schreibt, dann wird die Aktion, die aufgerufen wurde, aus dem Objekt gelöscht.


Die Parameter, die in ein Skript übergeben werden, könnt ihr euch anzeigen lassen, wenn ihr diese Zeile in das Skript schreibt:

player groupchat format["%1",_this];

Nicht machen, das ist nicht MP-kompatibel.
Allgemein gehe ich davon aus, dass du falsche Variablennamen für die ID benutzt (wahrscheinlich beim Löschen). Es wäre daher äußerst sinnvoll, mal deine Mission hier zu posten.
So ist das leider nur reines Rätselraten, was bei dir denn genau der Fehler sein könnte (sprich: Syntaxfehler, vergessenes ;, falsche Variablennamen, ...).

Aber gut, ich mach's dir vor:

Ich würde dir, aufgrund der MP-Sache, einfach einen Trigger empfehlen, auch wenn man das sicherlich elegant per Script lösen kann.

Init.sqf:
dein Kram

kondition = false;
meineAktion = objekt addAction ["Titel","script.sqf"];

Script.sqf:
dein Kram

kondition = true; publicVariable "kondition";

Trigger:
Auslösung: once
Bedingung: kondition
Bei Aktivierung: object removeAction meineAktion

Fertig.


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:55 Uhr.

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias


SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119