Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 24.04.2013, 08:09   #1 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Standard 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";
};
Ziel ist, dass wenn die Seite East ist und die Einheit tot ist, dann kommt ein Hint. Wenn die getroffene Einheit noch lebt, ein anderer Hint. Und wenn die Einheit nicht East dann eine Friendly Fire Meldung...

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 08:17 Uhr).
HptmBastardo ist offline   Mit Zitat antworten
Alt 24.04.2013, 17:01   #2 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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
Der "Hit" EventHandler ist Lokal. Für eine publike Textausgabe musst du sorgen.
Vienna ist offline   Mit Zitat antworten
Alt 24.04.2013, 19:48   #3 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Standard

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...?
HptmBastardo ist offline   Mit Zitat antworten
Alt 25.04.2013, 13:12   #4 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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 {...
Vienna ist offline   Mit Zitat antworten
Alt 26.04.2013, 07:25   #5 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Icon9

isKindOf habe ich eingebaut, aber es bringt immer noch hintereinander alle Meldungen.

Ich denke dass
Code:
if (!alive _this select 0) then {hint "..."}
das Problem ist. Egal ob die Person verletzt oder tot ist, es wird immer der Hint angezeigt.
HptmBastardo ist offline   Mit Zitat antworten
Alt 26.04.2013, 17:36   #6 (permalink)
SQF Zauberer 10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Vienna
 
Registriert seit: 12.07.2004
Ort: Wien
Beiträge: 1.917
Standard

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]

    };    
  }
 ];
Übrigens, deine Abfrage ist falsch. In diesem Fall ist _this select 0 in Klammern zu setzen.

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 17:48 Uhr).
Vienna ist offline   Mit Zitat antworten
Alt 28.04.2013, 11:34   #7 (permalink)
Newbie
 
Benutzerbild von HptmBastardo
 
Registriert seit: 03.01.2008
Beiträge: 14
Standard

Vielen Dank für die Hilfe. Nun funktioniert es wie ich will. Etwas peinlich, aber der Hauptfehler war, dass ich das Script mit exec auslöste, und nicht mit execVM. Mit execVm funktioniert alles perfekt....
HptmBastardo ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Beta-Patch für OpA erschienen det99 Community 1429 18.07.2014 16:51
Eventhandler im MP JoeJoe87577 Editing & Scripting 18 12.03.2013 09:08
Day & Weather Script Moerderhoschi Editing & Scripting 13 02.12.2012 10:29
Ammobox Script problem G36Firestorm Editing & Scripting 11 18.07.2011 15:04
marker über script erzeugen hypercop Editing & Scripting 2 28.08.2010 22:40


Kontakt - HX3.de - Archiv - Nach oben

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