PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Repair / Heal / Refuel area ?


Croshy
25.06.2008, 14:17
Ist es möglich ein gebiet festzulegen in welchem Fahrzeuge repariert, re-fueld und Soldaten geheilt werden?

Habe irgendwie im kopf das es in OFP ging, aber habe das total vergessen ...

Buliwyf
25.06.2008, 14:31
Hm.. ich habe mal aus XENO`s Domination Maps die Servicepunkte etwas verfeinert..

In diesem Beispiel ein reiner Servicepunkt für Kettenfahrzeuge:

1. Du brauchst einen Auslöser, der wie folgt aussieht:

class Item1
{
position[]={9668.559570,139.994995,9804.745117};
a=15.000000;
b=6.000000;
rectangular=1;
activationBy="ANY";
repeating=1;
age="UNKNOWN";
expCond="(""TANK"" countType thislist > 0) && ((getpos (thislist select 0)) select 2 < 2 && speed (thislist select 0) < 2)";
expActiv="nil = [(thislist select 0)] execVM ""vcl_service.sqf"";";
class Effects
{
};
};

2. Brauchst Du die vcl_service.sqf-Funktion:
private ["_vcl","_type","_dmg","_fuel","_vclClass","_vclName","_dspName","_class","_mags","_i"];

_vcl = _this select 0;
_type = typeOf _vcl;
_dmg = getDammage _vcl;
_fuel = fuel _vcl;

_vcl engineOn false;

if (true) then {
_vcl vehicleChat format["Servicing %1... ready in a few seconds.", getText (configFile >> "cfgVehicles" >> _type >> "displayName")];

_class = _vclClass >> "Turrets" >> "MainTurret" >> "magazines";
if (isArray _class) then {
_mags = getArray _class;
{_vcl removeMagazines _x} forEach _mags;
sleep 1;
{_vcl addMagazine _x; sleep 1;} forEach _mags;
} else {
_class = _vclClass >> "magazines";
_mags = getArray _class;
{_vcl removeMagazines _x} forEach _mags;
sleep 1;
{_vcl addMagazine _x; sleep 1;} forEach _mags;
};

for [{_i=_dmg}, {_i > 0}, {_i=_i-0.01}] do {
_vcl setDamage _i;
sleep 0.25;
};

for [{_i=_fuel}, {_i < 1}, {_i=_i+0.01}] do {
_vcl setFuel _i;
sleep 0.25;
};

if (getDammage _vcl < 0) then {_vcl setDamage 0};
if (fuel _vcl > 1) then {_vcl setFuel 1};

_vcl vehicleChat format["%1 repaired, refueled and rearmed - have a good trip %2!",getText (configFile >> "cfgVehicles" >> _type >> "displayName"), name effectiveCommander _vcl];
};

if(true)exitWith{};

Damit wir das Fahrzeug aufmunitioniert, betankt, und repariert.

Wenn Du noch Radfahrzeuge, Helikopter und/oder Flugzeuge dort verarzten willst, dann brauchst Du nur die Bedingung ändern, indem Du dem ""TANK"" countType thislist > 0 noch ""CAR"" countType thislist > 0, ""HELICOPTER"" countType thislist > 0 und/oder ""PLANE"" countType thislist > 0 hinzufügst.

Für Infanterie würde ich dann was eigenes Scripten oder ein abgeschlossenes Sani-Fahrzeug oder ein Zelt hinstellen.

:rolleyes:

Croshy
27.06.2008, 00:06
Ich danke fürs Erste, jedoch hält mich vor allem anderen der Respawn erstmal auf ;)

Mr-Murray
27.06.2008, 00:12
Ich glaube nicht ;)