Armed-Assault.de Twitter


 
 
Themen-Optionen Ansicht
Alt 04.01.2013, 22:01   #1 (permalink)
Newbie
 
Registriert seit: 12.12.2012
Beiträge: 20
Standard Meldung bei Teamkill

Hallo

Will in meiner Karte ein Script einbauen welche eine Meldung anzeigt (für alle Spieler sichtbar), wenn ein Spieler einen anderen Spieler der selben Seite anschießt bzw. tötet.

Hab mir als Basis das Script von Kronzky genommen. Aber ehrlich gesagt versteh ich das nicht richtig.

Wie stelle ich fest das einer von der eigenen Seite getroffen wurde?

Kann mir einer erklären wie ich das verwende?

addEventHandler ["hit" und addEventHandler ["killed"
Maddog_aut ist offline  
Alt 05.01.2013, 10:18   #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

Erstelle die beiden Auslöser im Editor. Sie sind für "Killed" ausgelegt. Ein Testen ist nur mit wenigstens zwei Spielern möglich.

Der erste Auslöser ist ein "Einmal-Auslöser" und aktiviert den EventHandler und die Variablen. Sollte es erforderlich sein, dass der EventHandler nach einem Respawn erneuert werden muss, dann diesen Auslöser von Einmal auf Mehrfach umstellen. Das addrating für den Team-Killer ist notwendig, weil er sonst ein negatives Rating erreicht und aus seiner Seite "ausgeschlossen" wird, wodurch die Seite-Abfrage nicht mehr stimmen würde.

Der zweite Auslöser ist ein "Mehrfach-Auslöser" und hat die Aufgabe den Kill-Text bei allen Spielern der selben Seite auszugeben.

Code:
1. Auslöser
Achse A und B: 0
Aktivierung  : Keiner | Einmal
Bedingung    : alive player
Bei Akt.     : folgenden Code reinkopieren

MeldungTeamkill = [];
MeineSeite = playerSide;
player addEventHandler 
 [
  "killed",
  {
   if (MeineSeite == side (_this select 1)) then
    {
     MeldungTeamkill = _this;
     publicVariable "MeldungTeamkill";
     _this select 1 addrating 1000
    }
  }
 ];

2. Auslöser:
Achse A und B: 0
Aktivierung  : Keiner | Mehrfach
Bedingung    : count MeldungTeamkill > 0
Bei Akt.     : folgenden Code reinkopieren

[side(MeldungTeamkill select 1),"HQ"] sideChat format
["Der Irre %1 hat unseren %2 gekillt!",
name(MeldungTeamkill select 1),
name(MeldungTeamkill select 0)];
MeldungTeamkill = [];
Es sollte dir möglich sein, das auch für "Hit" in zwei anderen Auslösern entsprechend abzuändern. Dazu wäre die globale Variable MeldungTeamkill durch eine andere zu ersetzen und der Meldetext abzuändern.
Vienna ist offline  
Alt 05.01.2013, 13:22   #3 (permalink)
Newbie
 
Registriert seit: 12.12.2012
Beiträge: 20
Standard

Wenn ich im Trigger bei Akt. den Code kopiere funktioniert es nicht.

Hab dann bei Akt. [] exec script1.sqf eingegügt und beim 2. Trigger [] exec script2.sqf die beiden Dateien erstellt.

Die Meldung im SideChat wird nicht angezeigt.

habe dann in Script2 zum test folgendes hinzugefügt:

hint format["Der Irre %1 hat unseren %2 gekillt!",name(MeldungTeamkill select 1),name(MeldungTeamkill select 0)];

Jetzt kommt die Meldung aber leider ohne Namen.

Geändert von Maddog_aut (05.01.2013 um 14:40 Uhr).
Maddog_aut ist offline  
Alt 05.01.2013, 14:52   #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

Das muss auch ohne Skripte gehen!

Hast du das in MP mit einem 2. Spieler getestet? Allein in MP oder im Editor ist das nicht möglich.

Im Anhang ein Beispiel. Teste das einmal zu zweit in MP.
Angehängte Dateien
Dateityp: zip KILL_Teamkill_Meldung_MP-utes.zip (1,1 KB, 61x aufgerufen)
Vienna ist offline  
Alt 05.01.2013, 15:26   #5 (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

Ich sehe gerade, für Teamkill gibt es minus 1400 Punkte. Erhöhe das addrating im 1. Auslöser auf 2000.

Wenn du die Routinen der beiden Auslöser im Editor mit einer KI testen willst, dann kopiere dem KI-Soldaten folgenden Code in die Initialisierungszeile:

Code:
this addEventHandler 
 [
  "killed",
  {
   if (MeineSeite == side (_this select 1)) then
    {
     MeldungTeamkill = _this;
     publicVariable "MeldungTeamkill";
     _this select 1 addrating 2000
    }
  }
 ];
Ab addEvenHandler ist alles gleich wie im 1. Auslöser. Dieser Code darf nicht einem spielbaren Soldaten stehen!!!

Die KI muss natürlich von der eigenen Seite sein. Wenn du sie tötest wird jetzt die Meldung kommen. Den eigentlichen Test musst du mit einem zweiten Spieler machen.
Vienna ist offline  
Alt 05.01.2013, 16:53   #6 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Was ist hiermit: MPKilled

__________________
Buliwyf ist offline  
Alt 05.01.2013, 19:12   #7 (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

Damit wird in Arma2_OA der Code des EventHandlers zu den anderen PCs übertragen. Das erfordert dann anstelle des 2. Auslösers ein Skript.

Die Anwendung wird dadurch einfacher, aber es werden mehr Daten übers Netz gesendet.
Vienna ist offline  
Alt 06.01.2013, 15:29   #8 (permalink)
500 Beiträge
 
Benutzerbild von DirtyHarryTPC
 
Registriert seit: 18.07.2008
Alter: 44
Beiträge: 560
DirtyHarryTPC eine Nachricht über ICQ schicken
Standard

Hat denn der Vienna vieleicht eine Abfrage oder EventH das der Teamkiller
dann per script an eine andere Position gesetzt wird.


Gruß Harry
DirtyHarryTPC ist offline  
Alt 06.01.2013, 20:07   #9 (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

Das Strafversetzen ist recht einfach zu ergänzen:

Im 2. Auslöser fügst du den fett dargestellten Befehl hinzu. Anstelle von xxxxx deine Wunschposition.

Sollte für den Spieler jeder Seite eine andere Position gewünscht werden, dann ist das mit einer Seitenabfrage vor setPos zu ergänzen.

Code:
2. Auslöser:
Achse A und B: 0
Aktivierung  : Keiner | Mehrfach
Bedingung    : count MeldungTeamkill > 0
Bei Akt.     : folgenden Code reinkopieren

[side(MeldungTeamkill select 1),"HQ"] sideChat format
["Der Irre %1 hat unseren %2 gekillt!",
name(MeldungTeamkill select 1),
name(MeldungTeamkill select 0)];
if (player == MeldungTeamkill select 1) then 
{(MeldungTeamkill select 1) setPos xxxxxx};
MeldungTeamkill = [];
Vienna ist offline  
Alt 06.01.2013, 20:15   #10 (permalink)
500 Beiträge
 
Benutzerbild von DirtyHarryTPC
 
Registriert seit: 18.07.2008
Alter: 44
Beiträge: 560
DirtyHarryTPC eine Nachricht über ICQ schicken
Standard

thx
DirtyHarryTPC ist offline  
Alt 12.01.2013, 14:43   #11 (permalink)
Newbie
 
Registriert seit: 12.12.2012
Beiträge: 20
Standard

Danke Vienna es läuft
Maddog_aut ist offline  
Alt 13.01.2013, 18:35   #12 (permalink)
Newbie
 
Registriert seit: 12.12.2012
Beiträge: 20
Standard

Das stimmt hier nicht?

Code:
hint format ["%1", localize "STR_ifmp_teamkill", "%2!", name(MeldungTeamkill select 1), name(MeldungTeamkill select 0)];
Die Meldung sollte wie folgt aussehen:

Spieler A beging einen Teamkill an Spieler B!
Maddog_aut ist offline  
Alt 13.01.2013, 21:25   #13 (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

Versuche es einmal so:
Code:
hint format ["%1 %2 %3!",name(MeldungTeamkill select 1),localize "STR_ifmp_teamkill", name(MeldungTeamkill select 0)];
Vienna ist offline  
Alt 13.01.2013, 21:48   #14 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 52
Beiträge: 1.930
Standard

Der Klump mit dem %1 etc muss mit in die Stringtable.csv.

Beispiel:
Stringtable.csv:
Code:
my_Text, "Spielername: %1\nSchaden: %2", "Players name: %1\nDamage: %2"
Aufruf:
Code:
hintSilent format[localize ""my_Text"", name player, getDammage player];
__________________

Geändert von Buliwyf (13.01.2013 um 21:50 Uhr).
Buliwyf ist offline  
Alt 13.01.2013, 22:25   #15 (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

Es sind beide Varianten möglich!

localize "..." gibt einen String zurück, warum sollte das nicht wie in meinem Beispiel anwendbar sein sein?
Vienna ist offline  
Alt 14.01.2013, 13:55   #16 (permalink)
Newbie
 
Registriert seit: 12.12.2012
Beiträge: 20
Standard

Zitat von Vienna Beitrag anzeigen

Versuche es einmal so:

Code:
hint format ["%1 %2 %3!",name(MeldungTeamkill select 1),localize "STR_ifmp_teamkill", name(MeldungTeamkill select 0)];
Funktioniert! Danke
Hatte es bereits auch so, nur hatte ich ich einen Fehler ind der Stringtable.


Das hab ich auch getestet:
Code:
hintSilent format[localize ""my_Text"", name player, getDammage player];
Hier kommt keine Meldung

Geändert von Maddog_aut (14.01.2013 um 14:30 Uhr).
Maddog_aut ist offline  
Alt 14.01.2013, 14:57   #17 (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

Muss aber gehen. Nur die doppelten Anführungszeichen sind falsch. Das sieht dann so aus:
Code:
hint format [localize "STR_ifmp_teamkill", name(MeldungTeamkill select 1), name(MeldungTeamkill select 0)];
In STR_ifmp_teamkill muss dann stehen: "Spieler %1 hat Spieler %2 gekillt!"

Welche Variante du verwendest kommt auf deinen Text an. Bei der von mir muss der Text in der Mitte und die Namen außen stehen. Bei obiger können die Namen innerhalb des Textes stehen.
Vienna ist offline  
 


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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


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 117 118 119