HX3 Foren

HX3 Foren (https://hx3.de/)
-   Editing (https://hx3.de/editing-139/)
-   -   Wer hat den Auslöser ausgelöst? (https://hx3.de/editing-139/hat-ausloeser-ausgeloest-15020/)

HptmBastardo 23.07.2008 12:40

Wer hat den Auslöser ausgelöst?
 
Hallo Zusammen

ich habe eine Frage:

- Wie kann ich im MP herausfinden, welcher Spieler einen Trigger (mit Funk Alpha) ausgelöst hat. Ich möchte den Namen des Spielers in dem Script, das er mit Funk Alpha auslöst, verwenden.

Vielen Dank im vorraus...

Vienna 23.07.2008 17:45

Der "Funkspruch" über Auslöser ist für Multiplayer eher nicht geeignet, da er publik ist, dass heißt, wenn einer der Spieler funkt, dann wird der Auslöser bei allen Spielern aktiv und es dürfte nicht möglich sein, den Auslösenden festzustellen.

Gib den Spielern eine Aktion fürs Funken ins Aktionsmenü, da ist im aufgerufenen Skript in _this ein Array enthalten, welches auch das Objekt des auslösenden Spielers enthält. Das sendest du dann in einer globalen Variablen mit publicVariable "Variabelname" zu den anderen Spielern. Das Aktivieren dieser Variablen kann bei den anderen Spielern auch ein Skript auslösen.

z.B.

Initialisieren der Variablen "Funker" bei allen Spielern: Funker = objNull

Eine Afbrage dann mit der Bedingung: NOT isNull Funker

Damit kannst du dann einen Skriptaufruf auslösen. Den Namen des Funkers erhältst du mit: name Funker

pspsps91 24.07.2008 10:39

Ich hätte da eine Idee für ein Workaround, aber ich kanns leider nicht im MP testen...

Also, einmal angenommen du hast 2 Spieler, dann nennst du einen s1 und den anderen s2.
Dann erstellst du zwei Trigger mit den folgenden Eigenschaften:

Auslöser1
  • Aktivierung: Radio Alpha
  • Bedingung: this && player==s1
  • Bei Aktivierung: nul=[s1] execVM "rad_alpha.sqf"

Auslöser2
  • Aktivierung: Radio Alpha
  • Bedingung: this && player==s2
  • Bei Aktivierung: nul=[s2] execVM "rad_alpha.sqf"

rad_alpha.sqf
Code:

_caller=_this select 0;
hint format["name _caller: %1\nname player: %2",name _caller,name player];

Das Script wird allerdings local ausgeführt, also nur auf dem Rechner, der Alpha angefunkt hat.

Vienna 24.07.2008 14:31

Das sollte auch in MP gehen. Leider benötigt man dann für jeden Spieler einen eigenen Auslöser und wie du schon sagst ist die Aktivierung dann nur lokal beim funkenden Spieler. Die Publikmachung ist so wie bei der Aktion separat erforderlich.

HptmBastardo 25.07.2008 07:36

Danke für die Antworten. Da es es sich um ein 3 Mann COOP handelt, ist das kein Problem mit je einem Auslöser pro Spieler.

Vienna 25.07.2008 10:13

Aber nicht vergessen, der "Funkspruch" ist so nur am PC des auslösenden Spielers "hörbar". Du mußt ihn mit "publicVariable" noch zu den anderen PCs übertragen.


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