24.04.2013, 09:09 | #1 (permalink) |
Registriert seit: 03.01.2008
Beiträge: 14
|
eventhandler 'hit' Script
Hallo zusammen
mit dem eventhandler 'hit' möchte ich mir ein einfaches Treffermeldesystem basteln. Aber irgendwie bekomme ich das nicht hin...der code ist so: Code:
if (side _this select 1 == east) then { if (!alive _this select 1) then { hint "blablabla"; } else { hint "blublublu"; }; } else { hint "bliblibli"; }; Aber es funktioniert nicht so wie ich will. Grrr. Bei einem Treffer werden die Hints alle nacheinander eingeblendet, am Anfang kommt 'blublubblu'. Was mache ich nur falsch, wo liegt mein Denkfehler? Danke für jegliche Hilfe... Geändert von HptmBastardo (24.04.2013 um 09:17 Uhr). |
24.04.2013, 18:01 | #2 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Deine Abfrage bezieht sich hier offensichtlich auf das falsche Objekt.
Code:
"Hit" Array: _this = [Einheit, Verursacher, Schaden] select 0: Objekt dem der Event-Handler zugeordnet ist select 1: Objekt das den Schaden verursacht hat select 2: Höhe des Schadens durch den Treffer |
24.04.2013, 20:48 | #3 (permalink) |
Registriert seit: 03.01.2008
Beiträge: 14
|
Danke für die Antwort. Das Objekt habe ich korrigiert, eber es funktioniert immer noch nicht richtig. Es zeigt mir immer nacheinander alle Hints an, beginnend mit dem "bliblibli". Stimmt da was mit dem Syntax nicht? Übersehe ich etwas...?
|
25.04.2013, 14:12 | #4 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Ein Soldat wird nach dem Tod als Zivilist geführt. Darum ergibt die Abfrage side (_this select 0) == EAST für einen toten EAST-Soldaten false!
Es ist aber möglich die Seite einer Spielfigur abzufragen. Ersetze deine Abfrage nach der Seite durch: if (_this select 0 isKindOf "SoldierEB") then {... |
26.04.2013, 08:25 | #5 (permalink) |
Registriert seit: 03.01.2008
Beiträge: 14
|
isKindOf habe ich eingebaut, aber es bringt immer noch hintereinander alle Meldungen.
Ich denke dass Code:
if (!alive _this select 0) then {hint "..."} |
26.04.2013, 18:36 | #6 (permalink) |
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
|
Kopiere den folgenden Code in die Initalisierungszeile von Einheiten unterschiedlicher Seiten und teste dann das Ergebnis.
Code:
temp = this addEventHandler [ "Hit", { _this spawn { hint format [ "Return-Array: _this select\n\n0 = %1\n1 = %2\n2 = %3", _this select 0, _this select 1, _this select 2 ] }; player groupChat format ["Seite von %1: %2",_this select 0, side(_this select 0)]; if (_this select 0 isKindOf "SoldierEB") then { if (!alive (_this select 0)) then { player groupChat format ["%1 ist tot!",_this select 0] } else { player groupChat format ["%1 lebt noch!",_this select 0] } } else { player groupChat format ["%1 ist nicht von EAST!",_this select 0] }; } ]; Damit dir eine falsche Syntax angezeigt wird muss du beim Aufruf von Arma Parameter hizufügen: z.B. "C:\Program Files\Bohemia Interactive\ArmA 2\arma2.exe" -nosplash -showscripterrors Geändert von Vienna (26.04.2013 um 18:48 Uhr). |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
Themen-Optionen | |
Ansicht | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Beta-Patch für OpA erschienen | det99 | Community | 1429 | 18.07.2014 17:51 |
Eventhandler im MP | JoeJoe87577 | Editing & Scripting | 18 | 12.03.2013 10:08 |
Day & Weather Script | Moerderhoschi | Editing & Scripting | 13 | 02.12.2012 11:29 |
Ammobox Script problem | G36Firestorm | Editing & Scripting | 11 | 18.07.2011 16:04 |
marker über script erzeugen | hypercop | Editing & Scripting | 2 | 28.08.2010 23:40 |