Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 03.11.2013, 15:47   #1 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard Verwundeter Pilot als Objekt

hi werte Arma-Gemeinde.

Ich hoffe eigtl., dass dieser Punkt nicht weiter problematisch ist. Leider komm ich aber nicht vorwärts. In einer PvP-Mission (angelehnt an die Map SF CSAR aus Americas Army 2) soll es neben der Zerstörung eines abgestützten Helis auch einen verwundeten Piloten als Objekt geben.
D.h. ich möchte gern eine Figur auf „verletzt“ an einem bestimmten Ort platzieren. Da die Runde enden soll, wenn beide Objekte gemacht sind, braucht diese Figur nicht spielbar zu sein und muss an sich nicht einmal aufstehen.
Leider kann ich aber auch mit dem =BTC= Revive Figuren nur tot oder lebendig angeben. Es gibt doch aber eine Art zwischenzustand. Die Figur soll also weder angeschossen rumlaufen, noch reglos am Boden liegen. In einigen Missionen online konnte ich schon sehen, dass es dieses "am Boden winden" gibt.


Hat jemand eine Idee wie ich diesen einstellen kann?

Besten Dank

Paspertou

PS: vielleicht noch eine weitere Frage: ich wollte gern einen Laptop auf den Tisch stellen. Leider fällt der aber immer durch. Selbst mit der entsprechenden Höhenangabe und auch dem Eintrag
Zitat:

laptop setPos [(getPos this select 0),(getPos this select 1),1.0]

fällt er immer zu Boden, wie bekomme ich das teil schwebend?

Geändert von Paspertou (03.11.2013 um 18:17 Uhr). Grund: Nachtrag
Paspertou ist offline   Mit Zitat antworten
Alt 03.11.2013, 20:14   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.108
Standard

Pilotenname: wasweißich

Init des Piloten: this setDammage 0.6 ( 0 = fit wie ein Turnschuhe; 1 = Ruhe sanft)
Rufst du seinen Schaden wo anders auf:
wasweißich setDammage 0.6;

Darf der Pilot getötet werden?
Falls nein: this allowDammage false; << unverwundbar

das Winden ist eine Loop funktion in der immer wieder eine Animation abgespielt wird:
http://community.bistudio.com/wiki/playAction

Den loop erzeugst du mit while {true} do {...}; und einer sleep Funktion
Statt true kannst du auch eine andere bedingung nehmen.#

Du kannst ihn auch mit der Animation ablegen und dann "einfrieren";
Dann in die Init:
Code:
this allowDammage false; this setDammage 0.7; this playerAction "PlayerProne"; this disableAI "anim";
erzeugt:
unverwundbar
setzt Schaden auf 0.7 (da sieht man definitv blut am körper)
spielt eine Aktion ab, kA was Player Prone ist
friert die Puppe ein

zum Laptop:
http://community.bistudio.com/wiki/attachTo

Geändert von Drunken Officer (03.11.2013 um 20:22 Uhr).
Drunken Officer ist offline   Mit Zitat antworten
Alt 03.11.2013, 22:58   #3 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Clausewitz
 
Registriert seit: 05.11.2004
Ort: Kassel
Alter: 44
Beiträge: 1.259
Clausewitz eine Nachricht über ICQ schicken Clausewitz eine Nachricht über AIM schicken
Standard

Die Animationen kannst du im Pausenmenü des Editors anschauen und dir die passende raussuchen. Dieser Animation Viewer ist ne nützliche Erfindung...
__________________

*****
Das ständige Nachgeben der Klugen begründet die Diktatur der Dummen.
Clausewitz ist offline   Mit Zitat antworten
Alt 03.11.2013, 23:27   #4 (permalink)
50 Beiträge
 
Registriert seit: 11.02.2010
Beiträge: 69
Standard

Den Laptop auf die gewünschte Höhe setzen und "this enableSimulation false" in die Initzeile geht auch.
romans ist offline   Mit Zitat antworten
Alt 04.11.2013, 00:27   #5 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard

Besten Dank für die schnelle Hilfe!
Vieles hat schon wunderbar geklappt aber leider stell ich mich wohl doch etwas dumm an.

"this allowDammage false;" (brauche ich tatsächlich) und "this setDammage 0.7;" funtionieren super. Ich habe der Figur noch alle Items weggenommen, weil sie sich sonst immer sofort selbst geheilt hat. Der Eintrag:
"this playerAction "PlayerProne";" klappt so leider nicht. Kann es sein, dass es "playAction" heißen muss? Aber auch dann macht er leider nichts. Auf den Befehl "setUnitPos "down";" legt er sich zwar hin aber, wenn ich mir dann die gewünschte Animation raussuche und statt "down" einsetze (hier: "AinjPpneMstpSnonWnonDnon_injuredHealed") passiert leider nichts. Wie und wo ich den loop erzeuge habe ich wohl auch noch nicht verstanden. In der Init-Zeile oder als Bewegung klappen meine Einträge (z.B: "while {true} do {JumpOff};" jedenfalls nicht.

Auch die Sache mit dem Laptop klingt zwar wie eine große Hilfe, leider tue ich mich aber schwer den Befehl "SuitcaseObject attachTo [FoldingTableObject, [0,0,0]];" auf meinen Fall zu übertragen. Wo trage ich das eigtl. ein und woher kenne ich die korrekten Namen für Laptop und Tisch? Im Konfig-Viewer hab ich mich schon wund gesucht.

Sorry, wenn ich mich so anstelle aber falls ihr mir hier nochmal helfen könnt wäre das super. Danke.
Paspertou ist offline   Mit Zitat antworten
Alt 04.11.2013, 00:36   #6 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard

Zitat von romans Beitrag anzeigen

Den Laptop auf die gewünschte Höhe setzen und "this enableSimulation false" in die Initzeile geht auch.

super - ja, besten dank
Paspertou ist offline   Mit Zitat antworten
Alt 04.11.2013, 08:46   #7 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 07.08.2009
Ort: Niedersachsen
Alter: 52
Beiträge: 426
Standard

Dem Trigger für die Pilotenanimation schreibste z.B. das in die Aktivierungszeile:
Code:
Pilot setDamage 0.8;
Pilot playMove "AinjPpneMstpSnonWrflDnon_rolltofront"; 
Pilot playMove "AinjPpneMstpSnonWrflDnon_rolltoback"; 
Pilot playMove "AinjPpneMstpSnonWnonDnon_injuredHealed"
Erst dreht und wendet er sich, dann bleibt er verwundet liegen.
__________________
Panzergrenadiere - Dran! Drauf! Drüber!
Jekko ist offline   Mit Zitat antworten
Alt 04.11.2013, 08:52   #8 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Registriert seit: 07.08.2009
Ort: Niedersachsen
Alter: 52
Beiträge: 426
Standard

sorry Doppelpost
__________________
Panzergrenadiere - Dran! Drauf! Drüber!

Geändert von Jekko (04.11.2013 um 09:50 Uhr).
Jekko ist offline   Mit Zitat antworten
Alt 04.11.2013, 09:52   #9 (permalink)
50 Beiträge
 
Benutzerbild von JeeperCreeper
 
Registriert seit: 18.10.2013
Alter: 36
Beiträge: 64
Standard

Zitat von Paspertou Beitrag anzeigen

Wo trage ich das eigtl. ein und woher kenne ich die korrekten Namen für Laptop und Tisch? Im Konfig-Viewer hab ich mich schon wund gesucht.

Die Namen der Dinge findest am schnellsten und einfachsten, wenn du ihnen erstmal im Editor einen Namen gibst und sie dann in der mission.sqm suchst. Durch den gegebenen Namen findet man die Sachen recht zügig.

Code:
class Vehicles
 {
  items=2;
  class Item0
  {
   position[]={1670.2821,5.5,5566.4346};
   azimut=100.378;
   id=1;
   side="EMPTY";
   vehicle="Land_TableDesk_F";
   skill=0.60000002;
   text="Tisch";
  };
  class Item1
  {
   position[]={1670.3402,5.5,5566.4409};
   azimut=99.940598;
   offsetY=2;
   id=2;
   side="EMPTY";
   vehicle="Land_Laptop_unfolded_F";
   skill=0.60000002;
   text="Laptop";
  };
 };
Das Rot ist der Classname den du suchst und das Blau ist der Name den du im Editor angegeben hast.
Und wie du sehen kannst gehören die beiden Sachen zu der Oberklasse Vehicles, also kannst Du sie jetzt auch im Konfigbrowser unter CfgVehicles finden.
JeeperCreeper ist offline   Mit Zitat antworten
Alt 04.11.2013, 10:04   #10 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard

toll - so klappt alles,
1000 Dank
Paspertou ist offline   Mit Zitat antworten
Alt 04.11.2013, 12:47   #11 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.108
Standard

Ah, doch nicht so kompliziert. Du kannst den Objekten einen Namen geben und damit direkt ansprechen.
laptop = schleppi
tisch = tisch
Für attachto reicht der Name völlig aus, er will es doch nicht spawnen lassen, sondern setzt es bereits im Editor.

schleppi Attachto [tisch,[x,y,z]]
Mit 0 0 0 wird das Ding in die Geometrische Mitte des Objekts gesetzt und kann somit "unsichtbar" werden.

Du mit mit den Zahlen spielen und dir deinen Laptop zurecht schieben.
Drunken Officer ist offline   Mit Zitat antworten
Alt 10.11.2013, 19:49   #12 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard

liebe Arma-Gemeinde,

besten Dank für die Hilfe. Dieses Problem ist somit gelöst.
Nun ergeben sich noch Details:
Der Pilot liegt nun rum und windet sich. Ich habe eine Action daruf gelegt und so kann der Pilot als Objekt "gemacht" werden.
Allerdings ist er noch "heilbar". D.h. wenn ihn jemand mit einem Sanipack aufmuntert, läuft er einfach fröhlich los. Das würde ich gern verhindern:

Frage 1: Kann ich die Heilung einer Figur deaktivieren?

Zudem soll den Pilot nur eine der beiden Seiten "machen" können (genau wie ein anderes Objekt, dass zur Endauslösung führt).

Frage 2: Wie kann ich definieren, dass nur Blue bzw. Red ein Objekt machen darf?

Und zuletzt: ich habe als "Objekt machen" die Angaben
Zitat:

this addAction ["Objekt machen", {Objekt=true},0, 3, true, true, "", "(_this distance _target)< 1"];

geschrieben. Leider ist dazu aber "nur" ein kurzer Klick nötig.

Frage 3: Kann ich eine Art Prozess (z.B.: halte die Leertaste 3 Sekunden) im Ideal mit einer Fortschrittsanzeige vergeben oder wenigstens eine Prozess (z.B. nach Druck auf die Leertaste beginnt ein sichtbarer Prozess von x Sekunden) starten?

Vielleicht hat jemand von euch wieder so eine tolle Idee.
Danke Pasper
Paspertou ist offline   Mit Zitat antworten
Alt 12.11.2013, 03:24   #13 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.108
Standard

Frage 3:
Der Balken wäre ein Dialog. Viel Spaß dabei...
Alternativ könntest du aber über
Code:
cuttext [format ["Text %1 ",_variable],"PLAIN",1];
eine Zeit einblenden lassen.
Die Variable mußt du natürlich vorher definieren.

Rufe ein Script auf oder schreibe den Code in den addaction-befehl
Code:
private ["_zeit"];
_zeit = 20;
while {_zeit != 0} do
{cuttext [format ["Ärztliche Versorgung daurt an. \n Warten sie %1 Sekunden",_zeit],"PLAIN",1];
_zeit = _zeit - 1;
sleep 1;};
cutText ["Versorgung abgeschlossen","Plain Down",0.5];
Frage 2:
Wie meinst du das mit Objekt machen darf?
Ansonsten hänge einen Auslöser 4/4 über den Piloten. Ausgelöst durch Blau / Einmal.
Bedingung: this
Akt: pilot addaction .....

Frage 1:
Das kann ich fir nicht benatworten. Ich wüßte nur, dass du den Wert wieder anders setzt. Aber das ist glaube ich nicht die saubere Lösung.
Code:
while {alive pilot} do
 {
_dam = getDammage Pilot;
waitUntil {_dam < 0.1};
Pilot setDammage 0.7;
};

Geändert von Drunken Officer (14.11.2013 um 19:49 Uhr). Grund: Fehler in der cuttext formatierung behoben
Drunken Officer ist offline   Mit Zitat antworten
Alt 12.11.2013, 20:49   #14 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard

Hi Drunken Officer,

vielen Dank für deine Hilfe. Noch habe ich ein paar Problem in der Umsetzung.
Meine Bemühungen die Zeitangabe in den addAction-Befehl einzutragen sind bislang nicht erfolgreich gewesen. So sieht es aktuell bei mir aus:

Zitat:

addAction private ["_zeit"]; _zeit = 20; while {_zeit != 0} do {cutText [format["Ärztliche Versorgung dauert an. \n Warten sie %1 Sekunden","Plain Down",1],_varibable]; _zeit = _zeit - 1; sleep 1;}; cutText ["Versorgung abgeschlossen","Plain Down",0.5]; ["rescue the pilot", {pil1=true},0, 3, true, true, "", "(_this distance _target)< 5"];

Dabei mache ich wohl aber was verkehrt.

Zu meiner Frage zwei: Alle Funktionen die ich einbringe (also so wie der o.g. "rescue the pilot" sind ja zunächst nicht auf eine Seite begrenzt. Also praktisch könnte auch ein Spieler der Gegenseite das Objekt machen. Kann ich festlegen, das ein Objekt nur druch eine Seite "machbar" ist?

Dein Tipp für meine Frage 1 ist erstmal ganz gut. Zwar verschwindet das Blut, aber das ist mir nicht so wichtig. Hauptsache der Gute bleibt liegen. Fall es mal hitzig wird, wäre es natürlich noch besser man könnte diese (Heilen)-Option aus dem Kontextmenü ganz entfernen.

Lieben Dank
Pasper
Paspertou ist offline   Mit Zitat antworten
Alt 12.11.2013, 21:01   #15 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Code:
private ["_zeit"];
_zeit = 20;
while {_zeit != 0} do
{ cutText [format["Ärztliche Versorgung daurt an. \n Warten sie %1 Sekunden","Plain Down",1],_varibable];
_zeit = _zeit - 1;
sleep 1;};
cutText ["Versorgung abgeschlossen","Plain Down",0.5];
Nimm mal statt "_varibable" den Eintrag "_zeit"

LG
Jan
JanIs ist offline   Mit Zitat antworten
Alt 13.11.2013, 07:17   #16 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.108
Standard

Sorry, für den Fehler mit Variable und Zeit. Ich hatte mein Post abgeändert und vergessen diesen Wert zu ändern.

Aus dem BIS Forum:
Code:
this addaction ["interact",{hint "Give me a ride"},0,0,true,true,"","(side _this == blufor)"];

mußt mal probieren
Drunken Officer ist offline   Mit Zitat antworten
Alt 13.11.2013, 09:02   #17 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.108
Standard

Gerade getest:
Hänge das auf den Piloten drauf:
Code:
tod = this addaction["gefunden",{ [15,2]spawn {_zeit = _this select 0; while {_zeit != 0} do {cuttext [format ["Ärztliche Versorgung daurt an. \n Warten sie %1 Sekunden",_zeit],"PLAIN",1]; sleep (_this select 1); _Zeit = _zeit - 1};cutText ["Versorgung abgeschlossen","PLAIN",0.5];};},"",0,true,true,"","(side _this == blufor)" ];
Allerding verschwindet der ActionEintrag nicht obwohl er es müßte. Hide ist auf true. Einfach mit RemoveAction arbeiten, falls du es nicht hinbekommst.

Der Actioneintrag ist nur für Blau sichtbar. Das mit der Distanze kleiner 5 ist egal, weil der Eintrag eh erst auf 5 Meter erscheint. Wäre nur interessant, wenn es kleiner 2 oder 1 Meter sein soll.
Drunken Officer ist offline   Mit Zitat antworten
Alt 14.11.2013, 14:27   #18 (permalink)
Newbie
 
Registriert seit: 05.10.2013
Ort: Erfurt
Alter: 40
Beiträge: 26
Standard

Hi DrunkenOfficer,

super - das klappt toll soweit.
Nun hab ich (dank meiner nicht vorhandenen Programmierungskünste) noch ein kleines Problem. Ich habe überall versucht in deinen Code den Hinweis für den Auslöser "{pil1=true}" einzufügen. leider aber ohne Erfolg. Entweder bleibt die Funktion ganz aus, zählt bis 1 und stoppt oder es passiert einfach nichts im Anschluss. Nach dem Prozess soll ja aber der Auslöser mit der Bedingung "pil1" aktiviert werden. Wo füge ich das innerhalb deines Codes den ein?
Wäre super, wenn du mir damit nocheinmal behilflich sein kannst.
Thx Pasper
Paspertou ist offline   Mit Zitat antworten
Alt 14.11.2013, 19:39   #19 (permalink)
50 Beiträge100 Beiträge
 
Registriert seit: 02.11.2010
Beiträge: 113
Standard

Na ganz einfach:
Code:
tod = this addaction["gefunden",{ [15,2]spawn {_zeit = _this select 0; while {_zeit != 0} do {cuttext [format ["Ärztliche Versorgung daurt an. \n Warten sie %1 Sekunden",_zeit],"PLAIN",1]; sleep (_this select 1); _Zeit = _zeit - 1}; pil1=true; cutText ["Versorgung abgeschlossen","PLAIN",0.5];};},"",0,true,true,"","(side _this == blufor)"];
Greetz
Jan
JanIs ist offline   Mit Zitat antworten
Alt 14.11.2013, 19:43   #20 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.108
Standard

Sobald der addAction Befehl aufgerufen wird, ist der wert true.
Code:
tod = this addaction["gefunden",{ [15,2]spawn {_zeit = _this select 0; pil1 = true; while {_zeit != 0} do {cuttext [format ["Ärztliche Versorgung daurt an. \n Warten sie %1 Sekunden",_zeit],"PLAIN",1]; sleep (_this select 1); _Zeit = _zeit - 1};cutText ["Versorgung abgeschlossen","PLAIN",0.5];};},"",0,true,true,"","(side _this == blufor)" ];
Willst du es erst am Ende haben:
Code:
tod = this addaction["gefunden",{ [15,2]spawn {_zeit = _this select 0; while {_zeit != 0} do {cuttext [format ["Ärztliche Versorgung daurt an. \n Warten sie %1 Sekunden",_zeit],"PLAIN",1]; sleep (_this select 1); _Zeit = _zeit - 1};cutText ["Versorgung abgeschlossen","PLAIN",0.5]; pil1 = true};},"",0,true,true,"","(side _this == blufor)" ];
Ach ja der aufruf [15,2] gibt an:
15 Sekunden bis 0
2 Sekunden Pause
tod ist einfach nur eine Varibale. Kannst auch Apfelkuchen nehmen.
Setze den Wert Pil1 in der init.sqf auf pil1 = false;
Drunken Officer 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
Fun Thread - alles was lustig ist hier rein! Kompost Offtopic 5585 18.02.2018 13:44
Ein Objekt als Auslöser & Rundenmodus Paspertou Editing & Scripting 2 05.10.2013 23:05
Objekt wird nicht gespawnt MagicStyle Editing & Scripting 2 13.08.2013 14:33
Objekt im Inventar, Mission erfüllt Marscl Editing & Scripting 16 10.04.2012 23:10
ActionMenue an ein Objekt hängen Drunken Officer Editing & Scripting 2 10.03.2012 10:11


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