12.08.2012, 09:37 | #1 (permalink) |
Registriert seit: 03.12.2009
Ort: Österreich
Beiträge: 30
|
MP Deathmatch Score
Hallo,
ich möchte für meinen Freund und mich, eine Team-Deathmatch Mission erstellen. Ich kämpfe mit meinem Freund und der KI In der BLUFOR gegen die KI der OPFOR Seite. Doch Ich weiß nicht wie ich es schaffe das wir und die KI für jeden Kill einen Punkt bekommen. In der Description.ext steht folgendes: Code:
AIKills=1; disabledAI=1; respawn=3; respawnDelay=6; respawnVehicle=3; titleParam2 = "Score to win:"; valuesParam2[] = {10000, 5, 7, 10, 15, 20, 25, 30}; defValueParam2 = 5; textsParam2[] = {"Unlimited", 5, 7, 10, 15, 20, 25, 30}; Code:
Westscore = 0 Eastscore = 0 Auslöser1: Name: Punktende Bedingung: (Param2 < 10000 and (({score _x >= Param2}) count [s1, s2, s3, s4, s5, s6, s7, s8] > 0)) Aktivierung: Ende=true Auslöser2: Typ: Ende1 Bedingung: Ende Auslöser3: Funk Alpha Titletext [format [localize "STR_MP_STATUS", WestScore, EastScore], "Plain down"] Den Soldaten habe ich die Namen s1,s2,s3,... gegeben. Ich schätze Ich muss irgendwas mit "WestScore = Westscore +1" machen. Ich hoffe Ihr habt eine Lösung für das Problem. Mit freundlichen Grüßen. Geändert von flex14 (12.08.2012 um 10:42 Uhr). |
12.08.2012, 12:54 | #2 (permalink) |
Für KI funktioniert die Score-Abfrage nicht. Die ist nur für Spieler gemacht. Wenn du Abschüße der KI zählen möchtest wird das etwas komplizierter und nicht mit ein paar Auslösern machbar sein.
Du müßtest jeder Unit einen killed EVH geben mit dem dann ausgewertet wird wenn jemand einen anderen abgeschoßen hat. Anschließend das Ergebniss als Variable ausgeben lassen und in deinem Trigger durch den Befehl Score ersetzen. Sollte eigentlich auch relativ einfach möglich sein dank des MPkilled EVH. Grüße
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
13.08.2012, 15:22 | #3 (permalink) |
Registriert seit: 03.12.2009
Ort: Österreich
Beiträge: 30
|
vielen Dank für deine Antwort.
Ich kenn mich leider nicht so gut mit dem Editor aus. Kannst du mir so ne Art Schritt für Schritt Anleitung oder so etwas ähnliches geben. Ich habe es mal so probiert: ich hab bei den BLUFOR einheiten in die Initzeile geschrieben: this addMPEventHandler ["MPKilled",{EastScore = Eastscore +1;}]; und bei den OPFOR: this addMPEventHandler ["MPKilled",{WestScore = Westscore +1;}]; Das Punktelimit habe ich auf 5 gestellt. Es hat die Punkt gezählt aber nur bis es "West 3: 2 East" stand. Daraufhin habe ich 5 Kills gemacht und die Runde war vorbei. Mit freundlichen Grüßen Flex14! |
13.08.2012, 16:31 | #4 (permalink) |
Das liegt daran, dass die bereits einmal gestorbenen Einheiten bzw. wieder respawnten Einheiten diesen EVH wieder verloren haben. Wenn du eine Einheit abschießt die bereits einen respawn hatte wird dann die Score nicht mehr gezählt.
Du mußt also dafür sorgen, dass jede neue Einheit wieder diese Zeile bekommt. Nur bei einem Spieler ist das nicht nötig. Aber da wird es schonwieder kompliziert, weil du nun das auch noch prüfen müßtest. Nimm also am besten jeder toten Einheit auch den EVH wieder weg damit es sich nicht doppelt. Etwa so: Code:
this addMPEventHandler ["MPKilled",{EastScore = Eastscore +1; this removeAllMPEventHandlers "killed"}]; Die Frage ist jetzt nur noch wie wir deinen Einheiten einen neuen EVH bei respawn geben. Wie gestaltest du denn zur Zeit den KI Respawn?
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
13.08.2012, 16:53 | #6 (permalink) |
Gut, dann öffne die AI_respawn.sqf und schreibe in die vorletzte Zeile folgendes:
Code:
if (side _group == WEST) then { _leader addMPEventHandler ["MPkilled",{eastscore = eastscore + 1; (_this select 0) removeAllMPEventHandlers "MPkilled"}]; } else { _leader addMPEventHandler ["MPkilled",{westscore = westscore + 1; (_this select 0) removeAllMPEventHandlers "MPkilled"}]; }; Sollte so passen. btw: hab noch einen kleinen Fehler in der Codezeile meies letzten Posts. Die Zeile sollte natürlich wiefolgt lauten: Code:
this addMPEventHandler ["MPkilled",{westscore = westscore + 1; (_this select 0) removeAllMPEventHandlers "MPkilled"}];
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
13.08.2012, 17:29 | #7 (permalink) |
Registriert seit: 03.12.2009
Ort: Österreich
Beiträge: 30
|
Ok funktioniert.
Das letzte Problem ist jetzt allerdings noch, dass nur meine Punkte gewertet werden. Ich schätze ich muss bei diesem Auslöser die Bedingung ändern: Auslöser1: Name: Punktende Bedingung: (Param2 < 10000 and (({score _x >= Param2}) count [s1, s2, s3, s4, s5, s6, s7, s8] > 0)) Aktivierung: Ende=true Nur weiß ich nicht zu was ich die Bedingung ändern muss. Vielen Dank für deine Hilfe. |
13.08.2012, 17:44 | #8 (permalink) |
Du mußt statt Score die Variable EastScore bzw. WestScore eintragen. Erstelle dazu noch einen 2. Trigger und setzte ihn auf Ende2 statt Ende1.
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
13.08.2012, 21:47 | #9 (permalink) |
Registriert seit: 03.12.2009
Ort: Österreich
Beiträge: 30
|
Also ich hab in den 2 Auslösern folgendes hineingeschrieben:
1 Auslöser typ: Ende 1 Bedingung: (Param2 < 10000 and (({Eastscore _x >= Param2}) count [s6, s7, s8] > 0)); 2 Auslöser type: Ende 2 Bedingung: (Param2 < 10000 and (({Westscore_x >= Param2}) count [s1, s2, s3, s4, s5] > 0)); daraufhin bekam ich eine Fehlermeldung das ein Leerzeichen oder so nicht passt. Dann hab ich das Leerzeichen zwischen East/Westscore und _x entfernt: (Param2 < 10000 and (({Eastscore_x >= Param2}) count [s6, s7, s8] > 0)); und konnte ohne Fehlermedlung auf "ok" drücken. Leider werden die Punkte immer noch nicht gewertet. Tut mir Leid falls ich zuviel arbeit mache. Geändert von flex14 (13.08.2012 um 21:49 Uhr). |
14.08.2012, 07:36 | #10 (permalink) |
1. Auslöser:
Param2 < 10000 && (Eastscore >= Param2) 2. Auslöser: Param2 < 10000 && (Westscore >= Param2)
__________________
Niemand hat die Absicht eine Tüte zu bauen! ___<<<A3 Wounding System>>>___ |
|
Stichworte |
mehrspieler, todesspiel punktestand |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|
Ähnliche Themen | ||||
Thema | Autor | Forum | Antworten | Letzter Beitrag |
Wie mache ich eine einfache Deathmatch map? | fertigo | Editing & Scripting | 6 | 15.06.2011 19:04 |