Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 18.10.2012, 17:23   #1 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Icon5 Zivilisten Counter

Hallo,

suche zurzeit ein Script das das Spiel beendet wenn zu viele Zivilisten getötet wurden hab leider nur das hier gefunden.
Code:
SHK_DeadCivilianCount = 0;
SHK_DeadCivilianLimit = 10;
SHK_fnc_deadCivilians = {
  hintsilent format ["Civilian death toll: %1",_this];
  if (_this >= SHK_DeadCivilianLimit) then {
    server execVM "Abort.sqf"; // whatever
  };
};
if isserver then {
  {
    if (side _x == Civilian && _x iskindof "Man") then {
      _x addEventHandler ["killed", {
        SHK_DeadCivilianCount = SHK_DeadCivilianCount + 1;
        publicvariable "SHK_DeadCivilianCount";
        if !isdedicated then {
          SHK_DeadCivilianCount call SHK_fnc_deadCivilians;
        };
      }];
    };
  } foreach allunits;
} else {
  "SHK_DeadCivilianCount" addpublicvariableeventhandler { (_this select 1) call SHK_fnc_deadCivilians };
};
Hab die ganze Mission runtergeladen finde nur keine Zusammenhänge
ich schicke am besten einen Link zur Mission woher ich das Script habe viel. kann mir dann einer erklären wie es wirkt:

=RTY= Immediate Action Co-08 - Co-op missions - Armaholic

Oder viel. findet jemand ein besseres

Danke schon mal voraus.
Q_W_E_R ist offline  
Alt 18.10.2012, 17:55   #2 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

civcounter.sqf
Code:
_kills = 5;
_count = {civilian countside allUnits};
_startcount = call _count;

while {isNil"ende1"} do {

if ((call _count) <= (_startcount - _kills)) then {

ende1=true;
publicvariable "ende1";

};
sleep 1;
};
noch ein trigger auf die karte mit bedingung ende1 und vom typ endeX, dann sollte es passen.

gruß
hoschi
__________________


Moerderhoschi ist offline  
Alt 18.10.2012, 19:23   #3 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Standard

Leider klappt das nicht wie es soll das Spiel ist leider sofort zu ende.
Habe mal Debug Konsole benutzt und mal die Variablen aus deinem Script global gestellt:


Es scheint so als würde
Code:
count = {civilian countside allUnits};
nicht ganz zu funktionieren

Geändert von Q_W_E_R (18.10.2012 um 19:38 Uhr).
Q_W_E_R ist offline  
Alt 18.10.2012, 22:01   #4 (permalink)
Armed-Assault.de Team10 Jahre hx3
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Moerderhoschi
 
Registriert seit: 01.07.2006
Ort: Kabul
Alter: 38
Beiträge: 2.666
Standard

Also ich habe das Script von meinem Beitrag gerade kopiert und nocheinmal getestet, es klappt bei mir ohne Probleme. Ich habe Dir noch ein Beispiel gebaut und in diesem Beitrag angehangen.

gruß
hoschi
Angehängte Dateien
Dateityp: rar count_civs.Takistan.rar (1,2 KB, 66x aufgerufen)
__________________


Moerderhoschi ist offline  
Alt 19.10.2012, 12:37   #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

Das verwendete Skript hat den Nachteil, dass die Zivilisten vor dem Spielstart erstellt werden müssen und keine weiteren im Spiel hinzukommen dürfen. Beim folgenden Skript ist das egal.

Skript: maxCivKills.sqf"
Code:
//Zum Beenden der Mission über 'ende1', wenn die als Parameter
//  übergebene Anzahl an Zivilisten getötet wurde.
//
//Aufrufbeispiel für 5 tote Zivilisten:
//  5 execVM "maxCivKills.sqf"
//
//Die Zivilisten können vor oder während des Spielens erstellt werden.
 
private = ["_tote","_CivsNeu","_CivsAlt"];

_tote    = 0; //Zähler für tote Zivilisten
_CivsAlt = 0;      
while {_tote < _this} do //Schleife läuft solange Totengrenze nicht erreicht
  {
    waitUntil {civilian countside allUnits != _CivsAlt};
    _CivsNeu = civilian countside allUnits; //aktuell vorhandene Zivilisten
    if (_CivsNeu < _CivsAlt) then
      {
        _tote = _tote + (_CivsAlt - _CivsNeu) 
      };
    _CivsAlt = _CivsNeu
  };
ende1 = true;
publicvariable "ende1";

//Nur zum Testen:
player groupChat format["Tote Zivilisten: %1  Spielende ende1 erreicht!",_tote];
Vienna ist offline  
Alt 19.10.2012, 18:18   #6 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Standard

OK danke hat geklappt .

mein Fehler war das starten des Scripts, hab das in den Editor geschrieben:
Code:
 [] exec "civcount.sqf"
hab jetzt auch gleich das Script von Vienna benutzt, da ich noch vorhabe das Zivilisten Modul einzubauen.
Also Danke
Q_W_E_R ist offline  
Alt 19.10.2012, 20:18   #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

Beim Aufrufen von Skripten im Editor ist eine Variable voranzustellen! Die Variable kann immer die selbe sein, die wird sonst nicht mehr benötigt.

z.B. für das maxCivKills-Skript sieht das so aus: temp = 5 execVM "maxCivKills.sqf";

Im Editor kannst du mit einem Auslöser Variable initialisieren und Skripte Aufrufen. Die Bedingung des Auslösers ist dabei auf true zu setzen!

Auslöserbeispiel:
Code:
Achse A - B: 0
Aktivierung: Keine  Einmal
Bedingung  : true
Bei Akt.   : Punkte = 0; temp = 5 execVM "maxCivKills.sqf"; temp = [1,2,3] execVM "SkriptXY.sqf";
Vienna ist offline  
 


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
ArmA 2 Zivilisten Modul Argonaut1 Editing & Scripting 20 13.07.2014 19:48
Feindl. Zivilisten + Sturmhauben Nova Editing & Scripting 2 28.07.2012 10:36
Zivilisten mit East verfeinden Pfandgiraffe Editing & Scripting 9 30.05.2012 09:15
Zufallsgenerierte Zivilisten und Feinder über die ganze Karte Clawhammer Editing & Scripting 5 28.03.2011 13:39
Zivilisten durch Auslöser erschießen comrade91 Editing & Scripting 16 02.12.2010 18:06


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