HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing & Scripting (https://hx3.de/editing-scripting-167/)
-   -   Frage zu Addaction (https://hx3.de/editing-scripting-167/frage-addaction-18771/)

Ghost_Aut 15.03.2010 12:51

Frage zu Addaction
 
Hallo leute hätte mal ne frage würde gerne über ein sqf script
eine addaction einfügen!
die nur einmal ausgefürt wird !

if (mission1) then
}
_Action1 = playeraddAction ["*** test2 ***", "tests1.sqf",[]-0,false,true,""];
};
playerremoveAction_Action1;

if (true) execVM {};

nur leider geht das nicht so da die addaction noch im actionsmenü ist!

Lg. Ghost_AUT

Pfandgiraffe 15.03.2010 13:16

benutze eine zusätzliche variable die prüft ob dein addAction-befehl schon beutzt wurde.

dazu änder das script wiefolgt:

Code:

if (mission1 AND (not action_done)) then
{
Action1 = player addAction ["*** test2 ***", "tests1.sqf",[]-0,false,true,""];
};
if (true) exitWith {};

den befehl
Code:

player removeAction action1
schreibst du in die "test1.sqf" und dort setzt du auch die variable action_done auf true. achte darauf das die action1 jetzt global ist. außerdem solltest du die prüfvariable vorher definieren, d.h. das du sie in deiner init.sqf auf false setzt.
das wiederum darf nur der server bei missionsstart machen und nich ein evtl. neu connectender player.

erreichen tust du das mit diesen zeilen in der init.sqf:
Code:

if (local Server) then
{
action_done = false;
};

...dort könntest du nun auch noch allen möglichen anderen krahm definieren der nur vom server bei missionsstart ausgeführt werden soll.



mfg

Ghost_Aut 15.03.2010 17:08

ne klappt leider nicht ganz so! die addAction verschwendet nicht hmm?

Pfandgiraffe 15.03.2010 17:40

doch funktioniert. ich habs mal nachgebaut.

2 fehler:

1. dir fehlt bestimmt eine spiellogik namens "server" auf der map.
2. es existiert noch ein allgemeiner fehler in deinem addaction ausdruck. da er bei dir aber ausgeführt wird nehme ich an das du ihn nur falsch ins forum übertragen hast. also setzte einfach die spiellogik.

:daumen:

Ghost_Aut 15.03.2010 19:14

if (local Server) then
{
action_done =
false;
};
 
if (mission1 AND (not action_done)) then {Action3 = playeraddAction ["*** test1 ***", "tests.sqf", [],-0,false,true,""]};
if (mission2 AND (not action_done)) then {Action4 = playeraddAction ["*** test2 ***", "tests1.sqf",[],-0,false,true,""]};
if (mission3 AND (not action_done)) then {Action5 = playeraddAction ["*** test3 ***", "tests2.sqf",[],-0,false,true,""]};
 
sleep 1;
hintc "ok";
if (true) exitWith {};


tests.sgf
action_done = true;
playerremoveAction action3;

hmm?

Ghost_Aut 15.03.2010 19:25

Danke
 
Ja danke hatte zwar die Spiel logik mit den server aber der fehler war das ich den unter strich behalten habe _action1

Danke noch mal für die schnelle hilfe

Buliwyf 15.03.2010 20:05

Wenn ihr statt local Server den Befehl isServer verwendet, dann spart ihr euch die Gamelogik und der Effekt ist der gleiche...

:rolleyes:

Ghost_Aut 16.03.2010 12:36

Problem mit clint
 
Jetzt ist nur noch das problem aufgetaucht das der Clint die tests.sqf. nicht starten kann, ob wohl er die addaction drin hat ??


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:15 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