Visa ämne
Anrop » ArmA 2 » Editering
 Skriv ut ämne
if (condition) then {Code} else {Code}
Jag har denna kod:
spawntype = _this select 0;

Och när jag kör koden så ser det ut så här:
null0 = ["MtvrRepair"] execVM "myAirdrop.sqf";

Nu skulle jag vilja kolla av det så här:

If (spawntype=MtvrRepair) then {
hint "Box loaded.";
};
else {
hint "No Box.";
};

Men det funkar inte, och jag har testat med
If (spawntype==MtvrRepair)
Men det funkar inte heller.

Så då undrar jag, hur ser en sådan if sats ut som jag är ute efter?
testa spawntype == "MtvrRepair"

Citera

subroc skrev:
testa spawntype == "MtvrRepair"


Ah, tackar.

Jäkla fnuttar och förstöra ;)


Följdfråga:
Det jag gör är att ta reda på om jag får en MtvrRepair eller inte.
Och om jag får en sådan så skulle jag vilja ladda den med ammo och vapen.

Och jag får saken via "call BIS_fnc_supplyDrop;"

Hur kan jag fylla på med ammo och vapen i denna repair truck?


Här ser ni en del av koden som används för att få en repairtruck.
Och nedan har jag gjort en load funktion, men den funkar inte.
Några förslag på hur man kan ladda bilen med vapen/ammo?


Kod Källa  


// Drop stuff  ///////////////////////////////////////////////////////////////////////////////////////////////
      dropCode = {[SD_c1,spawntype] call BIS_fnc_supplyDrop; sleep 3; deleteVehicle smokePot;};
      waitUntil{dropNow};
      [] spawn dropCode;
      sleep 1;
      


// Load stuff  ///////////////////////////////////////////////////////////////////////////////////////////////
if (spawntype == "MtvrRepair") then
   {
   _crate = spawntype;
   // hint "Loading";
   _crate addWeaponCargo ["M16A2GL", 2];
   _crate addMagazineCargo ["30Rnd_556x45_Stanag", 10];
   } else { };

Redigerat av Kiptanoi den 2010-05-24 19:58
stora problemet är ju att addweaponcargo är lokalt på maskinen scriptet körs på.

prova att döpa MtvrRepair till MtvrRepair i namnfältet om det är placerat i editorn


Citera

subroc skrev:
stora problemet är ju att addweaponcargo är lokalt på maskinen scriptet körs på.

prova att döpa MtvrRepair till MtvrRepair i namnfältet om det är placerat i editorn





Det är ej placerat i editorn, utan jag får det jag begär via kod:
"call BIS_fnc_supplyDrop;"

Så om man kan döpa den MtvrRepair som släpps, så kan jag resten, men jag vet ej hur det ska gå till.

Ngn som har tips om att ge namn på det som droppas via "call BIS_fnc_supplyDrop;"?
testa med
_mycar = [] spawn dropCode;
Tack, jag löste det på ett annat sätt. (Genom att spawna en låda bredvid ett tält som jag sätter upp via script.)

Men jag har ett annat problem med denna kod.
Jag vet inte hur jag ska kolla om planet är levande eller inte.
Jag har testat med diverse saker som alive, !alive osv.
Men jag får ej till det.

if (!alive SD_c1) then {dropKilled=true} else {dropKilled=false};

Men jag får inte till det med att kolla om planet lever eller ej.

Raden som spawnar ut planet.
Kod Källa  


_dp = [[(_pos_start) select 0, (_pos_start) select 1, 50], 270, "C130J", _grp] call BIS_fnc_spawnVehicle;
   SD_c1 = _dp select 0;


Eller det jag vill veta är om planet blivit nedskjutet eller inte under sin färd.
Några tips på hur man kan kolla det?
Om jag erinrar mig korrekt, så spawnas planet dynamiskt med ett script?

Isf kan dina hickups bero på att planet inte ens finns... För du deletade väl planet en stund efter att den droppat sin box?

Citera

Ogion skrev:
Om jag erinrar mig korrekt, så spawnas planet dynamiskt med ett script?

Isf kan dina hickups bero på att planet inte ens finns... För du deletade väl planet en stund efter att den droppat sin box?


Jag håller på att uppdatera det scriptet som du tänker på, och nu har jag att den droppar saken, sedan sätter den ut en waypoint och flyger till den, väl framme så raderas allt.

Kod Källa  


// Spawn /////////////////////////////////////////////////////////////////////////////////////////////////////
   _dp = [[(_pos_start) select 0, (_pos_start) select 1, 50], 270, "C130J", _grp] call BIS_fnc_spawnVehicle;
   SD_c1 = _dp select 0;
   SD_c1 flyinHeight 200;
   sleep 5;
   (driver SD_c1) sideChat _incomingMessage;
   // Fly to targe
   _target = getMarkerPos "loc";
   _wp0 = _grp addwaypoint[_target,0];
   _wp0 setWaypointSpeed "NORMAL";
   _wp0 setwaypointtype "MOVE";
   _wp0 setWaypointStatements ["true", "dropNow=true;"];

// Drop stuff  ///////////////////////////////////////////////////////////////////////////////////////////////
      waitUntil{dropNow};
        [] spawn dropCode;
      sleep 2;
// Fly home      
      (driver SD_c1) sideChat _rtbMessage;
      _target2 = getPos ASpad;
      _wp1 = _grp addwaypoint[_target2,0];
      _wp1 setWaypointSpeed "NORMAL";
      _wp1 setwaypointtype "MOVE";
      _wp1 setWaypointStatements ["true", "(driver SD_c1) sideChat _endMessage; dropReady=true;"];



waitUntil{dropReady};
         sleep 10;
         (player) sideChat _readyMessage;
         deleteMarkerLocal "loc";
         deletevehicle SD_c1;
         doDelete   = false;
         dropNow   = false;
         dropReady = false;
         airDrop   = false;



Och om planet krachar så får jag inte fram
Kod Källa  


doDelete   = false;
dropNow   = false;
dropReady = false;
airDrop   = false;


Vilket jag behöver för att kunna köra samma kod igen.

Så jag tänkte dra en koll, och om planet krachar eller skjuts ner så sätter vi dit:
Kod Källa  


doDelete   = false;
dropNow   = false;
dropReady = false;
airDrop   = false;


Och meddelar spelaren om att planet skjutits ner, och att dom är redo att skicka ett nytt plan.

Men jag får ej till den kollen på om planer lever eller inte.
undvik "waitUntil{dropNow};"

slappa in lite till typ:

waitUntil{ sleep 2; dropNow || !alive SD_c1 || OdenRocks };

sen fångar du efter den
if(!alive SD_c1) exitWith { hint "hahaha VMiOS" };
if(odenRocks) exitWith { publicVariable "hellYEAH"; };

.. här vet du nu att SD_c1 lever och kom fram och "dropNow" triggade..

/räksmugglaren
odenhouse.servegame.com/OdenSig512.jpg
grpNull
Redigerat av ogion den 2010-05-25 20:10
Inget händer....

Jag har med mig en snubbe som heter "man2"
Om jag kör in denna snutt i koden som spawnar planet:
if(!alive man2)then { hint "Dead" };

Och jag skjuter min gubbe, så får jag en hint som det står "Dead" på.

Men om jag byter ut man2 mot SD_c1 så händer inget, trots att planet blir nedskjutet av fiender.


Uppdatering:
Om jag slänger in en trigger i editorn med
Condition: (!alive SD_c1)
On Act. hint "dead";

Så får jag fram en hint när planet sjuts ner, så jag ska testa med att skapa en trigger inne i scriptet som kollar det och se efter om det funkar med.
Så, nu har jag gjort om koden, och nu fungerar det, nu raderas det som ska raderas när planet skjuts ner och jag kan efter en stund skicka efter en ny drop med plan.

Jag publicerar koden i min andra tråd som handlar om just detta script med att kalla till sig ett plan som droppar det man önskar.
http://anrop.se/forum/viewthread.php?...ead_id=627