Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 23.05.2010, 11:49   #1 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von todyoungblood
 
Registriert seit: 29.05.2009
Ort: Reutlingen
Alter: 43
Beiträge: 134
todyoungblood eine Nachricht über AIM schicken
Standard Leichen verstecken?

Hallo Leute,

gibt es eine Möglichkeit in Arma2 Leichen via Ziehen oder Tragen (wie bei Verletzten) zu verstecken?

Gruß Tod
__________________

Langsam ist präzise.....und präzise ist schnell....
http://www.astore.de
http://www.astore-shop.de
http://www.voodoo-puppe.net
todyoungblood ist offline   Mit Zitat antworten
Alt 23.05.2010, 13:59   #2 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Rettich
 
Registriert seit: 06.04.2008
Ort: bei Kiel
Alter: 44
Beiträge: 313
Rettich eine Nachricht über Skype™ schicken
Standard

Das ziehen und Tragen von Leichen funktionier recht gut. Das Problem ist das Verstecken, da die KI anscheinend tote Mitstreiter durch Gebäude erkennen kann, den Spieler aber nicht?!

Kannst dir die Beispielmission ja mal angucken
Angehängte Dateien
Dateityp: rar alarmCountdown.utes.rar (5,2 KB, 68x aufgerufen)
Rettich ist offline   Mit Zitat antworten
Alt 23.05.2010, 14:57   #3 (permalink)
Imperator fori nocturni - This sucks more than anything that has ever sucked before 10 Jahre hx3
20.000 Beiträge
 
Benutzerbild von burns
 
Registriert seit: 13.04.2003
Ort: Monerica
Alter: 35
Beiträge: 32.183
Standard

hideBody - OFPEC Command Reference
__________________

burns ist offline   Mit Zitat antworten
Alt 23.05.2010, 16:23   #4 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

jep, oder einfach eine special-forces spielen... die haben automatisch den action-eintrag leiche verbergen.
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 24.05.2010, 09:24   #5 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von todyoungblood
 
Registriert seit: 29.05.2009
Ort: Reutlingen
Alter: 43
Beiträge: 134
todyoungblood eine Nachricht über AIM schicken
Standard

Habs getestet und ist soweit ganz gut aber funktioniert das mit dem Modul auch im Multiplayer? Diese Modulgeschichten gehen doch nur Serverseitig oder?
Wie lautet den der Code für den Hide Body Eintrag im Aktion-Menue?

Gruß Tod
__________________

Langsam ist präzise.....und präzise ist schnell....
http://www.astore.de
http://www.astore-shop.de
http://www.voodoo-puppe.net
todyoungblood ist offline   Mit Zitat antworten
Alt 25.05.2010, 09:06   #6 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von todyoungblood
 
Registriert seit: 29.05.2009
Ort: Reutlingen
Alter: 43
Beiträge: 134
todyoungblood eine Nachricht über AIM schicken
Standard

Ich habs ausprobiert und es funktioniert.
Danke
__________________

Langsam ist präzise.....und präzise ist schnell....
http://www.astore.de
http://www.astore-shop.de
http://www.voodoo-puppe.net
todyoungblood ist offline   Mit Zitat antworten
Alt 02.06.2012, 15:35   #7 (permalink)
Newbie
 
Registriert seit: 19.05.2011
Beiträge: 22
Standard Leiche versteckt abfragen!

Hi,

die AlarmCount-Demomission habe ich getestet und fand sie gut.

Ich habe noch eine andere (wahrscheinlich nicht neue) Idee, an deren Umsetzung ich gelegentlich schon länger, ohne Erfolg, herumbastele.

Folgendes plane ich:
Der Spieler (SpecOp) wird im Briefing darüber informiert, das er in der Nähe von Basen oder Camps des Gegners alle Wachen, die er eliminiert, per addaction-Befehl "Leiche verbergen", innerhalb von 2 min verstecken muß, da sonst Alarm ausgelöst wird. Aus der Ferne alles wegsnipen soll damit unterbunden werden. Man muß sich sehr genau überlegen, welche Einheiten man angreift.

Problem:
Abfrage, ob die eliminierte Einheit per hidebody gelöscht wurde.
Das funktioniert im Trigger über eine Distanzabfrage,
z.B. player distance _guard > 100000, sehr gut.
In einem von einen addeventhandler "killed" ausgelösten Script aber nicht.
Per Try and Error habe ich da schon vieles probiert, ohne Erfolg.

Vielleicht kann mir jemand helfen?
Danke
SOAR_ONE ist offline   Mit Zitat antworten
Alt 02.06.2012, 17:27   #8 (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

Poste das Skript.
Vienna ist offline   Mit Zitat antworten
Alt 03.06.2012, 12:12   #9 (permalink)
Newbie
 
Registriert seit: 19.05.2011
Beiträge: 22
Standard

Hi,

Vienna, hast natürlich voll recht.
Nur ein komplettes Script habe ich noch nicht geschrieben, da ich immer noch an den Hauptsachen scheitere. Das wäre z.B. die Entfernungsabfrage.

Ich poste mal meine Ergebnisse.
Ich erstellt einen West-Player, s1, und eine East-KI, r1.

Auslösung:
In die Init-Zeile von r1

this addMPEventHandler ["MPKilled", {[_this select 0,_this select 1] execVM "takehidebody.sqf"}]


"takehidebody.sqf":

If (not local player) : exitwith {};

_unit = _this select 0;
_player = _this select 1;

//Zum Testen ausgeführt und funzt
//if (_unit == r1) then {hint "r1"};
//if (player == s1) then {hint "s1"};
/*Frage: In der Wiki las ich, das der Player immer automatisch erkannt wird beim addeventhandler killed, weil Dieser local wäre?*/

//1.Dies wird komplett "überlesen"
if (player distance _unit >= 100000) then {hint "Leiche versteckt"};

//2.Funzt auch nicht
If (player distance _guard >= 100000) then
{titleText ["Leiche versteckt - Kein Alarm", "PLAIN"]}
else
{titleText ["Alarm ausgelöst", "PLAIN"]};


Ich weiß, das ich noch einen Loop für die 2 min brauche, aber soweit bin ich noch garnicht.
Mein Hauptproblem ist die Distanzabfrage.
Aber vielleicht ist mein grundsätzlicher Ansatz falsch?
SOAR_ONE ist offline   Mit Zitat antworten
Alt 03.06.2012, 18:18   #10 (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 das als Code in deinem Skript:

Code:
if (! local player) exitwith {};

private ["_unit","_time","_maxZeit"];

_toter   = _this select 0;

_maxZeit = floor(player distance _toter); //maximale Sekunden um die Leiche zu entfernen 

player groupChat format ["%1 Sekunden um die Leiche zu entfernen! Entfernung: %1m",floor(player distance _toter)];

//Schleife bis Zeit abgelaufen oder Leiche entfernt
_time = time+_maxZeit;
while {_time > time and player distance _toter < 10000} do
  {
    if (player distance _toter < 3) then
      {
        deleteVehicle _toter;
        hint ""
      }
    else
      {
        hintSilent format ["Noch %1m und\n%2 Sekunden!",floor(player distance _toter),floor(_time-time)]  
      };
      sleep 0.1
  };


//Auswertung
if (player distance _toter > 10000) then
  {
    player groupChat "Leiche versteckt - Kein Alarm!"    
  }
else
  {
    titleText ["Alarm! Alarm! Alarm! Alarm! Alarm! Alarm!", "PLAIN"];
    //MeinAmlarm = true; publicVariable "MeinAmlarm"
  }
Für die Zeit zum Entfernen der Leiche wird pro Meter Abstand eine Sekunde vorgegeben.

Die Leiche wird automatisch beim Eintreffen bei ihr entfernt.

Ich würde hier den normalen Event-Handler mit "Killed" nehmen und beim Alarm z.B. mit einer publiken Variablen MeinAlarm einen Auslöser publik für MP aktivieren (siehe die deaktivierte letzte Zeile). Die Variable musst du zuvor z.B. in der init.sqf auf false setzen: MeinAmlarm = false;
Vienna ist offline   Mit Zitat antworten
Alt 05.06.2012, 22:47   #11 (permalink)
Newbie
 
Registriert seit: 19.05.2011
Beiträge: 22
Standard Danke!

Hi,

werde ich Testen - Bericht folgt später!

Danke Vienna!

Tschüß
SOAR_ONE ist offline   Mit Zitat antworten
Alt 07.06.2012, 17:16   #12 (permalink)
Newbie
 
Registriert seit: 19.05.2011
Beiträge: 22
Icon14 Funzt!

Hi,

Danke nochmal, das ganze funktioniert.
Allerdings habe ich kleine Änderungen vorgenommen. Einiges passte nicht, weil ich meinen Ansatz vielleicht nicht klar genug dargelegt habe.

Also, das ganze soll nur bei Nacht bei Geheimmissionen stattfinden. Wenn Alarm ausgelöst wird, soll die Ausführungsmöglichkeiten für die Spieler erheblich erschwert werden. Nur SpecOp haben die Möglichkeit, die Addaction "Leiche verbergen", bzw "Hidebody" durchzuführen. Bekommen also noch eine Sonderrolle (außerdem hat es mich schon immer gestört, daß man mit dieser Addaction nichts anfangen konnte). Gleichzeitig wollte ich auch nichts Kompliziertes machen (Leichen verstecken, wie bei Splintercell, würde viel Arbeit bedeuten, die dem Spieler aber innerhalb von Arma 2 kaum mehr Spielspaß bringt.

Auslösung: In die Init-Line der Unit

this addEventHandler ["Killed", {[_this select 0,_this select 1,_this select 2] execVM "takehidebody.sqf"}];

Script takehidebody.sqf:

if (! local player) exitwith {};
private ["_unit","_time","_maxZeit"];
_toter = _this select 0;
_maxZeit = floor(player distance _toter)+120; //maximale Sekunden um die Leiche zu entfernen
player groupChat format ["%1 Sekunden um die Leiche zu entfernen! Entfernung: %1m",floor(player distance _toter)];

//Schleife bis Zeit abgelaufen oder Leiche entfernt
_time = time+_maxZeit;
while {_time > time and player distance _toter < 10000} do
{
if (player distance _toter < 3) then
{

hint ""
}
else
{
hintSilent format ["Noch %1m und\n%2 Sekunden!",floor(player distance _toter),floor(_time-time)]; //Bei mehreren erschossenen Gegnern nervig
};
sleep 0.1
};

//Auswertung
if (player distance _toter > 10000) then
{
player groupChat "Leiche versteckt - Kein Alarm!"
}
else
{
titleText ["Alarm! Alarm! Alarm! Alarm! Alarm! Alarm!", "PLAIN"];
//MeinAmlarm = true; publicVariable "MeinAmlarm"
}


Ich habe einfach die automatische Löschung entfernt und etwas mehr Zeit dazugegeben, da die hidebody-action 30-40 sec lang ist. Der Körper sinkt wohl sehr tief, oder Routinen des Programms, die ablaufen müssen.

Störend ist das hintsilent der Meter- und Zeitabfrage, wenn der Player mehrere Gegner erschießt. Aber auszuhalten.

Außerdem fehlt noch die Abfrage, ob der Alarm nicht schon ausgelöst wurde.
es gibt noch viel zu tun.

Frage: Ihr kopiert Eure scripte immer in weiße Felder.
Wie macht man das denn?
Nochmal Danke
Tschüß
SOAR_ONE ist offline   Mit Zitat antworten
Alt 07.06.2012, 17:23   #13 (permalink)
User gesperrt
5000 Beiträge
 
Registriert seit: 20.10.2009
Ort: Jetzt auch im BIF
Alter: 33
Beiträge: 9.163
Standard

Zitat von SOAR_ONE Beitrag anzeigen

Hi,...

Frage: Ihr kopiert Eure scripte immer in weiße Felder.
Wie macht man das denn?
Nochmal Danke
Tschüß

Wenn du links unten auf Antworten klickst kommt eine neue Seite und dort im grauen Feld sind oben Symbole. Du musst das # Symbol anklicken und dann "[cote]"hier"[/code]" den Code rein kopieren.
AHTNTEPPOP ist offline   Mit Zitat antworten
Alt 07.06.2012, 18:40   #14 (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 Skript ist ja nur als Beispiel gedacht. Du sollst es natürlich nach deinen Bedürfnissen abändern.

Für die Steuerung des Alarms kannst du die vorhandene Variable MeinAmlarm verwenden. Die ist zur Zeit deaktiviert.
Vienna ist offline   Mit Zitat antworten
Alt 08.06.2012, 00:53   #15 (permalink)
Newbie
 
Registriert seit: 19.05.2011
Beiträge: 22
Standard Vorläufige Endversion!

//this addEventHandler ["Killed", {[_this select 0,_this select 1,_this select 2] execVM "takehidebody.sqf"}];


if (! local player) exitwith {};
If (MeinAlarm) exitwith {};
private ["_unit","_time","_maxZeit"];
_toter = _this select 0;
_maxZeit = floor(player distance _toter)+140; //maximale Sekunden um die Leiche zu entfernen
player groupChat format ["%1 Sekunden um die Leiche zu entfernen! ",floor(player distance _toter)+120];

//Schleife bis Zeit abgelaufen oder Leiche entfernt
_time = time+_maxZeit;
while {_time > time and player distance _toter < 10000} do
{
if (player distance _toter < 5) then
{

hint ""
}
else
{

};
sleep 0.1
};

//Auswertung
if (player distance _toter > 10000) then
{
player groupChat "Die Leiche ist versteckt - Kein Alarm!";deletevehicle _toter;hint "";
}
else
{
player groupChat "Verdammt, Alarm!";
MeinAlarm = true; publicVariable "MeinAlarm";
}


Erklärung:

Das hint format war nicht machbar. Die Probleme sind, wenn der player mehrere Einheiten abschießt, das hint format durcheinandergeriet. Auch, wenn ein player _toter erschießt, ein anderer player ihn "verbirgt", gab´s Probleme.

Durch das deleten von _toter konnte ich die Arbeitszeit von "hidebody" von 40 auf 15 sec verkürzen. Durch den Unterschied von _maxzeit und der dem Player angegebenen Zeit, konnte ich die Arbeitszeit von hidebody auspuffern.
D.H., wenn ein player noch in der letzten Sekunde hidebody auslöst, kann er den Alarm verhindern.
Ich bin nicht überzeugt, das das verständlich rüberkommt. Läßt sich auch schwer erklären.

Na ja, klappt jetzt aber genauso, wie ich´s wollte.
Nochmals Danke, Vienna.

Tschüß, ich muß in´s Bett.
SOAR_ONE ist offline   Mit Zitat antworten
Antwort

Stichworte
leichen im keller, leichen verstecken


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


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