Armed-Assault.de Twitter
 
 
Themen-Optionen Ansicht
Alt 13.04.2014, 18:09   #1 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard Moral

Moin.
Bin zur Zeit viel am scripten was Arma angeht. Von Selbstmordattentätern zur einzelnen Moral der Zivilisten. Lasse mich eigentlich von VBS inspirieren und um zugleich weiter in der Materie "Programmiersprache" einzudringen.

Ich habe ein GUI erstellt, welches auch gut funktioniert, dabei gibt es also keine Probleme. In dem GUI, welches via Actionmenü aufrufbar ist, kann man den Zivilisten vor einem gewisse Fragen stellen. Ich probiere als erstes ein einfaches "How are you?" zu lösen.

Ich habe es zwar hinbekommen, dass er eine Antwort gibt, kann den Wert aber nicht speichern.

Um es ersteinmal zu zeigen:


Habe es hinbekommen!



War einfacher als erwartet muss ich zugeben. Habe entdeckt, dass es einen Moral Wert gibt. Für alle, die zufällig mal hier vorbei stoßen:

Main.sqf
Code:
while {true} do {

CIV_Object = nearestObject [player, "Civilian"];
_dist = CIV_Object distance player;


if (_dist < 2 && cursorTarget == CIV_Object) then {CIV_Menu = player addAction ["Interaction", "Int.sqf"]; WaitUntil {CIV_Object distance Player > 3};
}
else {
player removeAction CIV_Menu;
player removeAction CIV_Menu;
};
};


Moral.sqf

Code:
_a = morale Civ_object;

switch (true) do {





if (_a > 0.2) then {confusedT = True;};
if (_a >= 0.4) then {ConfusedT = false; OkayT =true;};
if (_a >= 0.6) then {OkayT = false; FineT =true;};
if (_a > 0.8) then {FineT = false; happyT = true}; 




case (_a <= 0.2): {
HintSilent "I'm mad.";};

case (_a > 0.2 && confusedT ): {
HintSilent "I'm confused";};

case (_a >= 0.4 && okayT): {
HintSilent "I'm okay";};

case (_a >= 0.6 && FineT): {
HintSilent "I'm fine";};

case (_a >= 0.8 && happyT): {
HintSilent "I'm happy";}; 

};

Geändert von JSR (13.04.2014 um 18:43 Uhr).
JSR ist offline  
Alt 13.04.2014, 21:00   #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

Das Skript zum Ein- und Ausschalten der Aktion. Der Skriptname der Aktion ist noch anzupassen.

Code:
while {true} do
 {
  CIV_Object = nearestObject [player, "Civilian"];
  if (not isNull CIV_Object) then
   {
    _dist = CIV_Object distance player;

    if (_dist < 3 && cursorTarget == CIV_Object) then
     {
      CIV_Menu = player addAction ["Interaction", "Int.sqf",[],5,true,true];
      WaitUntil {sleep 0.5; CIV_Object distance Player > 3.1 or not alive CIV_Object};
      player removeAction CIV_Menu
     }                                                       
   };
  sleep 0.5   
 };
Vienna ist offline  
Alt 14.04.2014, 12:48   #3 (permalink)
JSR
500 Beiträge1000 Beiträge
 
Registriert seit: 29.10.2008
Beiträge: 1.192
Standard

Ich hatte vorher das Problem, dass wenn ich zwei Zivilisten nah nebeneinander gestellt habe, das Menü manchmal doppelt in der Actionbar war. Jetzt ist es, mit deinem script den du hier als letztes gepostet hast weg.

Glaube ich zumindest. Dann wurde es auch nur einmal removed und ich hatte das Menü manchmal doppelt und es wurde immer nur eins von beiden removed.

Was genau ist der Grund dafür, dass es jetzt weg ist?


Ebenfalls habe ich eine Abfrage, ob der Zivilist feindliche Soldaten gesehen hat. Diese funktioniert mal ja, mal nicht. Komplett willkürlich.


Code:
while {true} do {
_enemy = east;
_enemyM = nearestObjects [Civ_Object, ["Man"], 500]; 
if (true) exitWith {
{if (side _x == _enemy) then { if (Civ_Object knowsabout _x > 0.5) then {HintSilent "Yes, I have seen something suspicious.";};};} forEach _enemym;
{if (side _x == _enemy) then { if (Civ_Object knowsabout _x < 0.5) then {HintSilent "No, I did not see something suspicious.";};};} forEach _enemyM; 
};
};
JSR ist offline  
Alt 14.04.2014, 17:29   #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

Zitat von JSR Beitrag anzeigen

...

Was genau ist der Grund dafür, dass es jetzt weg ist?

Ebenfalls habe ich eine Abfrage, ob der Zivilist feindliche Soldaten gesehen hat. Diese funktioniert mal ja, mal nicht. Komplett willkürlich.

In meinem Skript wird das Skript so lange gestoppt, bis der angesprochene Zivilist weiter als 3,1m weg ist.


Es ist zu hinterfragen, wann ein Zivilist wen als Feind ansieht.
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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Evil Microsoft INNOCENT&CLUELESS Diskussionsplattform 4 19.05.2013 12:55


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