PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Munnitionskiste mit unendlich Munition


Christian
11.03.2009, 18:24
Hallo liebe community ;)

ich mache gerade eine Mission und habe dort auch eine Munitionskiste stehen die so ziemlich alle Waffen beinhaltet. Nun möchte ich aber nicht von jeder Waffe 50 Stück reinpacken sondern nur ungefähr 5 und will das nach ungefähr 30 Sekunden wieder genau die gleiche Anzahl an Waffen drin sind.
Sprich, die Waffen die drin sind spawnen praktisch nach einiger Zeit wieder in dieser Kiste. :D

Mfg Christian


Ps: Kann mir vielleicht jemand das Script geben wo man aus einem Fahrzeug heraus eine Ammobox mit bestimten Waffen spawnen lassen kann? :D:D:D

Vienna
11.03.2009, 19:29
Willst wohl nicht schwer tragen?

Zum Starten des Sktipts in die Initialisierungszeile der Kiste eintragen:

this exec "waffen.sqs"


Skript: waffen.sqs


#loop

clearMagazineCargo _this
clearWeaponCargo _this

_this AddWeaponCargo ["M4AIM",5]
_this AddWeaponCargo ["M16A2GL",5]
_this AddMagazineCargo ["1Rnd_HE_M203",20]
_this AddMagazineCargo ["30Rnd_556x45_Stanag",50]

_this AddWeaponCargo ["MP5SD",5]
_this AddMagazineCargo ["30Rnd_9x19_MP5",50]

_this AddWeaponCargo ["M240",5]
_this AddMagazineCargo ["100Rnd_762x51_M240",25]

_this AddWeaponCargo ["M136",5]
_this AddMagazineCargo ["M136",25]

_this AddWeaponCargo ["STINGER",5]
_this AddMagazineCargo ["STINGER",5]

_this AddMagazineCargo ["HandGrenade",50]
_this AddMagazineCargo ["SmokeShell",50]

_this AddMagazineCargo ["PipeBomb",5]

~30

goto "Loop"


Die Waffen sind nur ein Beispiel, die musst du nach deinen Wünschen abändern.

Garstiger Hobbit
11.03.2009, 20:23
Hier mal als Sqf syntax.

if(!IsServer)exitwith{};
_crate=_this select 0;
while{true}do{

clearMagazineCargo _crate;
clearWeaponCargo _crate;

_crate AddWeaponCargo ["M4AIM",5];
_crateAddWeaponCargo ["M16A2GL",5];

_crate AddMagazineCargo ["1Rnd_HE_M203",20];
_crate AddMagazineCargo ["30Rnd_556x45_Stanag",50];

_crate AddWeaponCargo ["MP5SD",5];
_crate AddMagazineCargo ["30Rnd_9x19_MP5",50];

_crate AddWeaponCargo ["M240",5];
_crate AddMagazineCargo ["100Rnd_762x51_M240",25];

_crate AddWeaponCargo ["M136",5];
_crate AddMagazineCargo ["M136",25];

_this AddWeaponCargo ["STINGER",5];
_this AddMagazineCargo ["STINGER",5];

_crate AddMagazineCargo ["HandGrenade",50];
_crate AddMagazineCargo ["SmokeShell",50];

_crate AddMagazineCargo ["PipeBomb",5];

sleep 30;
};
if(true)exitwhith{};
Starten kannst du es in der Init der Kiste mit handle=[this] execVM "Crate.sqf"

Du kannst natürlich auch einen Auslöser machen der Auf deiner Spieler Seite fungiert.

auslöser auf mehrfach.
Seite: Spielerseite (west, east usw)
Bedingung: this
Aktivierung: handele=[name der kiste] execVM "Crate.sqf";

das Crate script müsste dann so Aussehen.
if(!IsServer)exitwith{};
_crate=_this select 0;

clearMagazineCargo _crate;
clearWeaponCargo _crate;

_crate AddWeaponCargo ["M4AIM",5];
_crate AddWeaponCargo ["M16A2GL",5];
_crate AddMagazineCargo ["1Rnd_HE_M203",20];
_crate AddMagazineCargo ["30Rnd_556x45_Stanag",50];

if(true)exitwhith{};

Christian
11.03.2009, 20:26
Funktioniert super. Danke sehr. :daumen::daumen::daumen: Bräuchte nun nur noch das wo man eine ammo box durch einen butten in einem auto, neben dem auto spawnen lassen kann. Ist kein 'muss' aber währe ganz cool,

Garstiger Hobbit
11.03.2009, 20:52
Tja das ist wenn man es richtig machen will nicht so ganz einfach.

Schau doch mal in die Domina rein da ist so was drin.aber nicht so ganz einfach da durch zublicken,dort kann man Munikisten so erstellen.
Hier mal was ganz einfaches nur als

if (!(local player)) exitWith {};

_vehicle= _this select 0;
_player = _this select 1;

if (_player != driver _vehicle) exitWith {_unit vehicleChat "Du musst Fahrer sein um eine Ammokiste zu erstellen"};
_ammobox=(
switch (Playerside) do {
case EAST : {"WeaponBoxEast"};
case WEST: {"WeaponBoxWest"};
);

_box = _ammobox createVehicle (position _unit);
_box setvehicleinit "handle=[this] execvm ""crate.sqf"";"
processInitCommands;

_vehicle vehicleChat "Ammobox created !!!!!!!!";

if (true) exitWith {};
Das in die Init des Fahrzeugs dann sollte es klappen.
this addAction ["Drop Ammobox", "dropbox.sqf",[],-1,false];

Dies ist nur ein Beispiel schau dir das in der Domina an dort werden die sogar wieder gelöscht wenn sich das Fahrzeug mehr als 30m von der kiste entfernt.

Christian
12.03.2009, 11:54
Hei Garstiger Hobbit,

danke für deine Antwort und deinem Vorschlag. Ich werde deins, sowohl auch das von der Domination mal versuchen.

Garstiger Hobbit
12.03.2009, 12:16
Diese Variante ist sehr einfach gehalten.

Christian
12.03.2009, 12:35
Habe dein Script mal benutzt und dort bekam ich ein Fhler das etwas Fehlen soll. Irgendwie "fehlendes ) ":komisch:

Vienna
12.03.2009, 18:46
Es fehlt die } am Ende von switch () do {}

Christian
14.03.2009, 10:30
Habe nun die } da hingesetzt doch es kam immernoch ein fehler. Dann habe ich die sqs in eine sqf gemacht und das beispiel von garstiger hobbit hat nicht funktioniert. andauernd Fehlt irgendwas

Vienna
14.03.2009, 11:56
In dieser Zeile ist der ; falsch gesetzt:
_box setvehicleinit "handle=[this] execvm ""crate.sqf"";"

soll so aussehen:
_box setvehicleinit "handle=[this] execvm ""crate.sqf""";

Warum nimmst du nicht mein waffen.sqs Beispiel? Die SQS-Syntax ist nicht so problematisch was Fehler betrifft. Allerdings wirst du dadurch auch nicht auf Fehler aufmerksam. Für die ersten Schritte mit Skripten aber jedenfalls besser geeignet.

Christian
14.03.2009, 12:53
Danke für deine Antwort,
ich habe doch deine Waffen.sqs genommen und mich doch auch schon bedankt. :) Hat einwandfrei geklappt.

Aber es geht ja zur zeit darum das man aus einem Fahrzeug eine Ammobox erstellen lassen kann.

Christian
14.03.2009, 13:14
Habe den Fehler korrigiert aber es kommt immer und immer wieder ein anderer Fehler. Verstehe das einfach nicht.

Cyborg11
14.03.2009, 13:39
Der Abschnitt mit switch
switch (Playerside) do {
case EAST : {"WeaponBoxEast"};
case WEST: {"WeaponBoxWest"};
);

muss auch so heißen:
switch (Playerside) do {
case EAST : {"WeaponBoxEast"};
case WEST: {"WeaponBoxWest"};
};

Da war eine falsche Klammer gesetzt ")". Da gehört aber eine "}" hin :)

Vienna
14.03.2009, 14:57
Da stimmen auch die Variablenamen nicht.

Im Anhang findest du eine Beispielmission. Die Kisten werden hinter dem Lkw. ausgeladen und je nach dem Fahrer enthält der Inhalt West- oder Ostwaffen. Die Kisten werden nach 1 Minute neu befüllt.

Garstiger Hobbit
14.03.2009, 15:17
Ich habe den kram mal fix per copy and paste aus meiner Mission rausgenommen und auf das einfachste reduziert es kann dann schon mal passieren das da nen fehler oder 2 drin sind.

Ich würde aber die Muni nicht in nem loop oder ner while do schleife laufen lassen zwegs performance auf dem Server.!

Christian
14.03.2009, 16:15
Vielen Dank. :daumen:

Nun klappt alles so wie es soll.
Großes Dankeschön an euch alle, auch wenn es anfangs ein paar Probleme mit den Scripts gab. das Beispiel war eine gute vorlage.

Vienna
14.03.2009, 19:31
Ich würde aber die Muni nicht in nem loop oder ner while do schleife laufen lassen zwegs performance auf dem Server.!
Mit den Munikisten gab es meist Probleme in Multiplayer. Glaube nicht, dass die Neubefüllung der Kisten da synchronisiert wird. Also sollte das Nachfüllen auf den Clients laufen.

Das müsste man austesten, wenn man das in MP verwenden will.

[GNC]Lord-MDB
14.03.2009, 19:40
Musikkisten die Clientseitig erstellt und befühlt werden sind Lokal und werden nur auf dem Clientden befühlt.Schleifen großer 5-10 Sek machen keine Probleme.

Musikkisten die von Server erstellt befühlt werden sind auch Lokal,aber beim Clientden ist dann die Kiste leer bzw die Standartsachen sind da nur drin.
Schleifen großer 5-10 Sek machen keine Probleme.

Christian
15.03.2009, 01:20
Wenn ich das Waffen.sqs script benutze dann habe ich irgendwan nach 30 Minuten 4 k waffen un dmunition^^

[GNC]Lord-MDB
15.03.2009, 01:54
Das von Vienna (http://hx3.de/members/vienna.html) ? Dann wird da nicht die Kiste geleer wieder.
sollte aber gehen :oh:

das macht doch so

[this] exec "waffen.sqs"


_kiste=_this select 0;

clearMagazineCargo _kiste
clearWeaponCargo _kiste

_kiste AddWeaponCargo ["M4AIM",5]
_kiste AddWeaponCargo ["M16A2GL",5]
_kiste AddMagazineCargo ["1Rnd_HE_M203",20]
_kiste AddMagazineCargo ["30Rnd_556x45_Stanag",50]

usw

Vienna
15.03.2009, 09:59
Hast du vielleicht diese beiden Zeilen gelöscht?

clearMagazineCargo _this;
clearWeaponCargo _this;

Wenn nicht, dann stell deine Mission hier rein, damit man den Fehler finden kann.