Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 22.04.2011, 08:17   #1 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von CptMike
 
Registriert seit: 10.01.2010
Alter: 68
Beiträge: 175
Standard Rucksack

Hallo Leute!
Ich verwende ein script von Xeno glaube ich jedenfalls das ich das mal von dir bekommen habe, und habe seit dem Patch 1.59 folgendes Problem:
Wenn man stirbt hat man die letzte Bewaffnung einschließlich die selbe Bewaffnung im Rucksack soweit ist alles gut;
Wenn man aber jetzt zu dem respawnten Spieler geht; den Rucksack öffnet bzw.in den Rucksack reinschaut sieht man nicht mehr was drinnen ist.
Der respawnte Spieler sieht schon was er hat nur ein anderer eben nicht wenn man reinschaut, dadurch kann ich mir auch von meinem Mitspieler nichts rausnehmen. Hier das script vielleicht kann mir bitte wer sagen welche Zeile ich ändern müßte.
Aufrufen tue ich das script über die init.sqf mit execVM "scripts\Rucksack.sqf";
Danke Mike
Zitat:

WaitUntil{isDedicated || not isNull player};
player addEventHandler ["Killed",{
player spawn {
_unit = _this;
private ['_magazines','_weapons','_backpack','_backpackweap ','_backpackmags'];
if(isNil "savedloadout") then {
_weapons = weapons _unit;
_magazines = magazines _unit;
_backpack = typeOf unitBackpack _unit;
_backpackmags = getMagazineCargo unitBackpack _unit;
_backpackweap = getWeaponCargo unitBackpack _unit;
} else {
_weapons = savedloadout select 0;
_magazines = savedloadout select 1;
_backpack = savedloadout select 2;
_backpackmags = savedloadout select 3;
_backpackweap = savedloadout select 4;
};
WaitUntil{alive player};

removeAllWeapons player;
removeAllItems player;
removeBackpack player;
{player addMagazine _x} foreach _magazines;
{player addWeapon _x} foreach _weapons;
if (primaryWeapon player != "") then {
player selectWeapon (primaryWeapon player);
_muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
player selectWeapon (_muzzles select 0);
};
if(_backpack != "") then {
player addBackpack _backpack; clearWeaponCargo (unitBackpack player); clearMagazineCargo (unitBackpack player);
for "_i" from 0 to (count (_backpackmags select 0) - 1) do {
(unitBackpack player) addMagazineCargo [(_backpackmags select 0) select _i,(_backpackmags select 1) select _i];
};
for "_i" from 0 to (count (_backpackweap select 0) - 1) do {
(unitBackpack player) addWeaponCargo [(_backpackweap select 0) select _i,(_backpackweap select 1) select _i];
};
};
};
}];


Geändert von CptMike (22.04.2011 um 10:10 Uhr).
CptMike ist offline   Mit Zitat antworten
Alt 22.04.2011, 09:17   #2 (permalink)
10 Jahre hx3
500 Beiträge1000 Beiträge
 
Benutzerbild von Buliwyf
 
Registriert seit: 11.03.2005
Ort: HH
Alter: 46
Beiträge: 1.927
Standard

Mit v1.59 kamen neue Scripting-Befehle heraus. Schau HIER... die könnten hilfreich sein...

__________________
Buliwyf ist gerade online   Mit Zitat antworten
Alt 22.04.2011, 13:10   #3 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von CptMike
 
Registriert seit: 10.01.2010
Alter: 68
Beiträge: 175
Standard

Ersteinmal Danke Buliwyf auch wenn ich wüßte was da steht könnte ich mir das in das bestehende script nicht einfügen weil ich keine Ahnung davon habe, aber vielleicht ändert mir wer das script wenn mal wer Zeit hat.
Mike
CptMike ist offline   Mit Zitat antworten
Alt 23.04.2011, 16:02   #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

Versuche es einmal so:

Code:
WaitUntil{isDedicated || not isNull player};
player addEventHandler ["Killed",{
player spawn {
_unit = _this;
private ['_magazines','_weapons','_backpack','_backpackweap ','_backpackmags'];
if(isNil "savedloadout") then {
_weapons = weapons _unit;
_magazines = magazines _unit;
_backpack = typeOf unitBackpack _unit;
_backpackmags = getMagazineCargo unitBackpack _unit;
_backpackweap = getWeaponCargo unitBackpack _unit;
} else {
_weapons = savedloadout select 0;
_magazines = savedloadout select 1;
_backpack = savedloadout select 2;
_backpackmags = savedloadout select 3;
_backpackweap = savedloadout select 4;
};
WaitUntil{alive player};

removeAllWeapons player;
removeAllItems player;
removeBackpack player;
{player addMagazine _x} foreach _magazines;
{player addWeapon _x} foreach _weapons;
if (primaryWeapon player != "") then {
player selectWeapon (primaryWeapon player);
_muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
player selectWeapon (_muzzles select 0);
};

if(_backpack != "") then 
 {
  player addBackpack _backpack;
  clearWeaponCargoGlobal (unitBackpack player);
  clearMagazineCargoGlobal (unitBackpack player);
  for "_i" from 0 to (count (_backpackmags select 0) - 1) do
   {
    (unitBackpack player) addMagazineCargoGlobal [(_backpackmags select 0) select _i,(_backpackmags select 1) select _i]
   };
  for "_i" from 0 to (count (_backpackweap select 0) - 1) do
   {
    (unitBackpack player) addWeaponCargoGlobal [(_backpackweap select 0) select _i,(_backpackweap select 1) select _i]
   };
 };

};
}];
Vienna ist offline   Mit Zitat antworten
Alt 23.04.2011, 21:03   #5 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von CptMike
 
Registriert seit: 10.01.2010
Alter: 68
Beiträge: 175
Standard

Vielen Dank Vienna es funktioniert wieder alles.
Mike
CptMike ist offline   Mit Zitat antworten
Alt 25.10.2011, 14:55   #6 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Wolkenbeisser
 
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 294
Standard

Zitat von Vienna Beitrag anzeigen

Versuche es einmal so:

Code:
WaitUntil{isDedicated || not isNull player};
player addEventHandler ["Killed",{
player spawn {
_unit = _this;
private ['_magazines','_weapons','_backpack','_backpackweap ','_backpackmags'];
if(isNil "savedloadout") then {
_weapons = weapons _unit;
_magazines = magazines _unit;
_backpack = typeOf unitBackpack _unit;
_backpackmags = getMagazineCargo unitBackpack _unit;
_backpackweap = getWeaponCargo unitBackpack _unit;
} else {
_weapons = savedloadout select 0;
_magazines = savedloadout select 1;
_backpack = savedloadout select 2;
_backpackmags = savedloadout select 3;
_backpackweap = savedloadout select 4;
};
WaitUntil{alive player};
 
removeAllWeapons player;
removeAllItems player;
removeBackpack player;
{player addMagazine _x} foreach _magazines;
{player addWeapon _x} foreach _weapons;
if (primaryWeapon player != "") then {
player selectWeapon (primaryWeapon player);
_muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
player selectWeapon (_muzzles select 0);
};
 
if(_backpack != "") then 
 {
  player addBackpack _backpack;
  clearWeaponCargoGlobal (unitBackpack player);
  clearMagazineCargoGlobal (unitBackpack player);
  for "_i" from 0 to (count (_backpackmags select 0) - 1) do
   {
    (unitBackpack player) addMagazineCargoGlobal [(_backpackmags select 0) select _i,(_backpackmags select 1) select _i]
   };
  for "_i" from 0 to (count (_backpackweap select 0) - 1) do
   {
    (unitBackpack player) addWeaponCargoGlobal [(_backpackweap select 0) select _i,(_backpackweap select 1) select _i]
   };
 };
 
};
}];

Sorry, dass ich dieses Thema nochmals ausgrabe.

Ich verwende zurzeit das von Vienna gepostete Script (siehe oben) für meine "Vortodes-Respawn-Bewaffnung". Nun ist mir aufgefallen, dass damit zwar die Magazine im Rucksack nach dem Respawn enthalten sind, wenn ich jedoch eine zweite Hauptwaffe in den Rucksack packe anstelle der Magazine, dann ist diese nach dem Respawn weg.

Um es präzis auszudrücken. Ich packe eine OA-Waffe in den Rucksack, welche genau dieselben Magazine benötigt, wie die andere Hauptwaffe, die ich in den Händen halte. Deshalb befinden sich vor dem Respawn keine Magazine im Rucksack (sondern eben nur die zweite Hauptwaffe).

Ich verwnde übrigens A2OA auf Patch 1.59 ohne Addons.

Zwei Fragen:

- Wo könnte hier das Problem liegen?
- Gibt es evtl. eine neuere/andere Version dieses Scripts?

P.S: Wenn ich nach Rucksack und Respawn google, lande ich immer wieder auf diesem "Fred"...
Wolkenbeisser ist offline   Mit Zitat antworten
Alt 25.10.2011, 15:59   #7 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Code:
WaitUntil {isDedicated || not isNull player};

player addEventHandler ["Killed", {
	player spawn {
		_unit = _this;
		private ['_magazines','_weapons','_backpack','_backpackweap','_backpackmags'];
		_weapons = weapons _unit;
		_magazines = magazines _unit;
		_backpack = if (!isNull unitBackpack _unit) then {typeOf unitBackpack _unit} else {""};
		if (_backpack != "") then {
			_backpackmags = getMagazineCargo _backpack;
			_backpackweap = getWeaponCargo _backpack;
		};
		_items = items player;

		WaitUntil{alive player};
		
		removeAllWeapons player;
		removeAllItems player;
		removeBackpack player;
		{player addMagazine _x} foreach _magazines;
		{player addWeapon _x} foreach _weapons;
		{if !(player hasWeapon _x) then {player addWeapon _x}} forEach _items;
		if (primaryWeapon player != "") then {
		player selectWeapon (primaryWeapon player);
			_muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
			player selectWeapon (_muzzles select 0);
		};
		 
		if(_backpack != "") then {
			player addBackpack _backpack;
			clearWeaponCargoGlobal (unitBackpack player);
			clearMagazineCargoGlobal (unitBackpack player);
			for "_i" from 0 to (count (_backpackmags select 0) - 1) do {
				(unitBackpack player) addMagazineCargoGlobal [(_backpackmags select 0) select _i,(_backpackmags select 1) select _i]
			};
			for "_i" from 0 to (count (_backpackweap select 0) - 1) do {
				(unitBackpack player) addWeaponCargoGlobal [(_backpackweap select 0) select _i,(_backpackweap select 1) select _i]
			};
		};
	};
}];


gefixt

EDIT: nochmal geändert. produzierte fehlermeldungen in der .rpt wenn kein rucksack vorhanden war. außerdem werden jetzt auch gegenstände wie karten und dergleichen gespeichert.
__________________
Niemand hat die Absicht eine Tüte zu bauen!

Geändert von Pfandgiraffe (25.10.2011 um 16:14 Uhr).
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 25.10.2011, 22:07   #8 (permalink)
5000 Beiträge
 
Benutzerbild von Xeno
 
Registriert seit: 03.01.2008
Alter: 77
Beiträge: 6.547
Standard

*deleted*

Xeno
__________________
In arma everything is made of refined explodium, armored with wet paper towels.

Geändert von Xeno (03.01.2014 um 08:50 Uhr).
Xeno ist offline   Mit Zitat antworten
Alt 26.10.2011, 01:22   #9 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Das mag alles sein aber es ist verdammt anwenderfreundlich!
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 26.10.2011, 07:12   #10 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Wolkenbeisser
 
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 294
Standard

Danke Psycho, für die schnelle Hilfe

Ich werde das abgeänderte Script sobald wie möglich in meinen Missionen testen/austauschen.

Leider verstehe ich von Xeno's Abhandlung nicht sehr viel (wahrscheinlich weil ich von Programmieren und Scripten nicht viel Ahnung habe ).

Ich gehe jetzt aber einfach mal davon aus, dass das korrigierte Script von Psycho den von mir gemeldeten 'Fehler' behebt und ansonsten das tut, was das alte Script getan hat. Das reicht für meine Zwecke absolut.

Nochmals danke Psycho . Melder mich nach erfolgtem Test nochmals hier.
Wolkenbeisser ist offline   Mit Zitat antworten
Alt 26.10.2011, 09:51   #11 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von CptMike
 
Registriert seit: 10.01.2010
Alter: 68
Beiträge: 175
Standard

Hallo Psycho!

Habe ebenfalls deine Version des scriptes getestet funktioniert eigentlich einwandfrei.
Wie müßte aber dieses script jetzt der Ordnunghalber richtig geschrieben sein so wie es Xeno meint?
CptMike ist offline   Mit Zitat antworten
Alt 26.10.2011, 13:14   #12 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

So sollte es sauber sein:


Code:
if (isMultiplayer && isDedicated) exitWith {};
WaitUntil {!isNull player};

player addEventHandler ["Killed", {
    _unit = _this select 0;
    private ['_magazines','_weapons','_backpack','_backpackweap','_backpackmags','_unit'];
    _weapons = weapons _unit;
    _magazines = magazines _unit;
    _backpack = if (!isNull unitBackpack _unit) then {typeOf unitBackpack _unit} else {""};
    if (_backpack != "") then {
        _backpackmags = getMagazineCargo unitBackpack _unit;
        _backpackweap = getWeaponCargo unitBackpack _unit;
        _unit setVariable ["players_bp_content",[_backpack,_backpackweap,_backpackmags]];
    } else {
        _unit setVariable ["players_bp_content",""];    
    };
    _items = items player;
    _unit setVariable ["players_content",[_weapons,_magazines,_items]];
}];

player addEventHandler ["Respawn", {
    _unit = _this select 0;
    private ['_a_stuff','_unit','_a_bp','_bp','_bpw','_bpm','_pi'];
    removeAllWeapons player;
    removeAllItems player;
    if (!isNull unitBackpack _unit) then {removeBackpack _unit};
    _a_stuff = _unit getVariable "players_content";
    _pw = _a_stuff select 0;
    _pm = _a_stuff select 1;
    _pi = _a_stuff select 2;
    {player addMagazine _x} foreach _pm;
    {player addWeapon _x} foreach _pw;
    {if !(player hasWeapon _x) then {player addWeapon _x}} forEach _pi;
    player selectWeapon (primaryWeapon player);
    _muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
    player selectWeapon (_muzzles select 0);
    
    _a_bp = _unit getVariable "players_bp_content";
    _bp = _a_bp select 0;
    if(_bp != "") then {
        player addBackpack _bp;
        clearWeaponCargoGlobal (unitBackpack player);
        clearMagazineCargoGlobal (unitBackpack player);
        _bpw = _a_bp select 1;
        _bpm = _a_bp select 2;
        for "_i" from 0 to (count (_bpm select 0) - 1) do {
            (unitBackpack player) addMagazineCargoGlobal [(_bpm select 0) select _i,(_bpm select 1) select _i]
        };
        for "_i" from 0 to (count (_bpw select 0) - 1) do {
            (unitBackpack player) addWeaponCargoGlobal [(_bpw select 0) select _i,(_bpw select 1) select _i]
        };
    };
}];
...aber es gibt bestimmt immer irgendetwas zu verbessern.
gruß
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 26.10.2011, 13:49   #13 (permalink)
50 Beiträge100 Beiträge
 
Benutzerbild von CptMike
 
Registriert seit: 10.01.2010
Alter: 68
Beiträge: 175
Standard

Hallo Psycho!

Erstmal Danke für das script aber ich habe folgenden Eintrag in der rpt könntest du da nochmal drüberschauen bitte.
Zitat:

Error in expression <iable "players_bp_content";
_bp = _a_bp select 0;
if(_bp != "") then {
player ad>
Error position: <select 0;
if(_bp != "") then {
player ad>
Error select: Typ Zeichenfolge, erwartet Array,Config entry

CptMike ist offline   Mit Zitat antworten
Alt 26.10.2011, 13:59   #14 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Wolkenbeisser
 
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 294
Standard

Irgendwie staune ich ein bisschen darüber, dass der arme Psychobastard das Rad selbst neu erfinden (bzw. korrigieren) musste...

Werden solche "Respawns mit Vortodesbewaffnung" mittlerweile nicht fast in jeder Multiplayer-Misison verwendet? Ich dachte mir, dass es da bereits dutzende fertige Scripts geben müsste, und deshalb einige davon in diesem Post auftauchen werden. Naja, so kann man sich irren.

Da kann ich nur sagen: Zum Glück gibt's Leute wie Psycho: Merci!

Ich werde jetzt natürlich die neueste, (xenotaugliche ) Version einbauen/testen, sobald ich Zeit dazu habe.
Wolkenbeisser ist offline   Mit Zitat antworten
Alt 26.10.2011, 14:05   #15 (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 Xeno Beitrag anzeigen

...
*deleted*

Kannst du mir bitte sagen, wie man den aufruft? So: "Number = object addEventHandler ["Respawn", command]", geht es nicht (auch nicht mit "RespawnMP").

Geändert von Xeno (03.01.2014 um 08:50 Uhr).
Vienna ist offline   Mit Zitat antworten
Alt 26.10.2011, 20:09   #16 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Wolkenbeisser
 
Registriert seit: 05.11.2010
Ort: Schweiz
Beiträge: 294
Standard

Zitat von CptMike Beitrag anzeigen

Hallo Psycho!

Erstmal Danke für das script aber ich habe folgenden Eintrag in der rpt könntest du da nochmal drüberschauen bitte.

...ja, da bin ich auch gespannt. Ich habe versucht den Fehler zu finden, aber dazu müsste ich wohl zuerst einen Kurs belegen .
Wolkenbeisser ist offline   Mit Zitat antworten
Alt 26.10.2011, 23:51   #17 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

Code:
if (isMultiplayer && isDedicated) exitWith {};
WaitUntil {!isNull player};
player addEventHandler ["Killed", {
    _unit = _this select 0;
    private ['_magazines','_weapons','_backpack','_backpackweap','_backpackmags','_unit'];
    _weapons = weapons _unit;
    _magazines = magazines _unit;
    _backpack = if (!isNull unitBackpack _unit) then {typeOf unitBackpack _unit} else {""};
    if (_backpack != "") then {
        _backpackmags = getMagazineCargo unitBackpack _unit;
        _backpackweap = getWeaponCargo unitBackpack _unit;
        _unit setVariable ["players_bp_content",[_backpack,_backpackweap,_backpackmags]];
    } else {
        _unit setVariable ["players_bp_content",["","",""]];    
    };
    _items = items player;
    _unit setVariable ["players_content",[_weapons,_magazines,_items]];
}];
player addEventHandler ["Respawn", {
    _unit = _this select 0;
    private ['_a_stuff','_unit','_a_bp','_bp','_bpw','_bpm','_pi'];
    removeAllWeapons player;
    removeAllItems player;
    if (!isNull unitBackpack _unit) then {removeBackpack _unit};
    _a_stuff = _unit getVariable "players_content";
    _pw = _a_stuff select 0;
    _pm = _a_stuff select 1;
    _pi = _a_stuff select 2;
    {player addMagazine _x} foreach _pm;
    {player addWeapon _x} foreach _pw;
    {if !(player hasWeapon _x) then {player addWeapon _x}} forEach _pi;
    player selectWeapon (primaryWeapon player);
    _muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon player >> "muzzles"); // Fix for weapons with grenade launcher
    player selectWeapon (_muzzles select 0);
    
    _a_bp = _unit getVariable "players_bp_content";
    _bp = _a_bp select 0;
    if(_bp != "") then {
        player addBackpack _bp;
        clearWeaponCargoGlobal (unitBackpack player);
        clearMagazineCargoGlobal (unitBackpack player);
        _bpw = _a_bp select 1;
        _bpm = _a_bp select 2;
        for "_i" from 0 to (count (_bpm select 0) - 1) do {
            (unitBackpack player) addMagazineCargoGlobal [(_bpm select 0) select _i,(_bpm select 1) select _i]
        };
        for "_i" from 0 to (count (_bpw select 0) - 1) do {
            (unitBackpack player) addWeaponCargoGlobal [(_bpw select 0) select _i,(_bpw select 1) select _i]
        };
    };
}];

ja, sorry. war ein kleiner fehler der dann auftrat wenn der spieler keinen rucksack hat. ist gefixt.
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 27.10.2011, 14:50   #18 (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

Der Respawn EventHandler funktioniert nur in Arma2 OA. Dann nur wenn man nicht zuvor an Arma2 programmiert hat.

Hier ein Beispiel für den Respawn der Spieler. Der EventHandler ruft ein Skript auf. Die Bewaffnung wird von der Leiche des Spielers übernommen, die der EventHandler übermittelt.

Einmaliger Aufruf des Eventhandlers für die Spieler:
temp = player addEventHandler ["Respawn", {_this execVM "Respawn_mit_Waffen_der_Leiche.sqf"}]

Skript "Respawn_mit_Waffen_der_Leiche.sqf"
Code:
// Skript für Respawn mit Bewaffnung der getöteten Unit.
//
//Einmaliger Aufruf für Spieler: temp = player addEventHandler ["Respawn", {_this execVM "Respawn_mit_Waffen_der_Leiche.sqf"}]


if (isNull player) exitWith {}; //Wenn EventHandler nur für die Spieler

//nur zum Testen: titleText["Respawn-Skript ausgeführt!","plain"];

private ["_UnitNeu","_UnitLeiche","_magazines","_weapons","_backpack","_backpackweap","_backpackmags","_i"];

_UnitNeu    = _this select 0;
_UnitLeiche = _this select 1;

_weapons   = weapons   _UnitLeiche;
_magazines = magazines _UnitLeiche;
_items     = items     _UnitLeiche;

_backpack = if (!isNull unitBackpack _UnitLeiche) then {typeOf unitBackpack _UnitLeiche} else {""};
if (_backpack != "") then
 {
  _backpackmags = getMagazineCargo _backpack;
  _backpackweap = getWeaponCargo   _backpack
 };

removeAllWeapons _UnitNeu;
removeAllItems   _UnitNeu;
removeBackpack   _UnitNeu;

{_UnitNeu addMagazine _x} foreach _magazines;
{_UnitNeu addWeapon   _x} foreach _weapons;
{_UnitNeu addWeapon   _x} forEach _items;

if (primaryWeapon _UnitNeu != "") then
 {
  _UnitNeu selectWeapon (primaryWeapon _UnitNeu);
  _muzzles = getArray(configFile>>"cfgWeapons" >> primaryWeapon _UnitNeu >> "muzzles"); // Fix for weapons with grenade launcher
  _UnitNeu selectWeapon (_muzzles select 0)
 };
 
 if(_backpack != "") then
  {
   _UnitNeu addBackpack _backpack;
   clearWeaponCargoGlobal   (unitBackpack _UnitNeu);
   clearMagazineCargoGlobal (unitBackpack _UnitNeu);
   for "_i" from 0 to (count (_backpackmags select 0) - 1) do
    {
     (unitBackpack _UnitNeu) addMagazineCargoGlobal [(_backpackmags select 0) select _i,(_backpackmags select 1) select _i]
    };
   for "_i" from 0 to (count (_backpackweap select 0) - 1) do
    {
     (unitBackpack _UnitNeu) addWeaponCargoGlobal [(_backpackweap select 0) select _i,(_backpackweap select 1) select _i]
    }
  }
Der Skriptablauf entspricht dem aus dem Post #7 von Psychobastard. Ich habe es nur mit Bewaffnung ohne Rucksack getestet.
Vienna ist offline   Mit Zitat antworten
Alt 27.10.2011, 16:17   #19 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Pfandgiraffe
 
Registriert seit: 16.09.2008
Ort: Berlin
Alter: 31
Beiträge: 1.724
Pfandgiraffe eine Nachricht über ICQ schicken Pfandgiraffe eine Nachricht über Skype™ schicken
Standard

@vienna, da sind 2 bugs enthalten. ;-)
__________________
Niemand hat die Absicht eine Tüte zu bauen!
Pfandgiraffe ist offline   Mit Zitat antworten
Alt 27.10.2011, 21:01   #20 (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 ist nicht in einer ordentlichen MP-Umgebung getestet und der Rucksack überhaupt nicht. Ich wollte nur aufzeigen, wie das allein mit dem "Respawn" EventHandler geht. Auch habe ich den "RespawnMP" nicht nachvollzogen wo der Unterschied liegt.

Du wirst die Bugs schon rausnehmen ;-)
Vienna ist offline   Mit Zitat antworten
Antwort

Stichworte
rucksack


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
ARMA 2: OA - UAV & ULB mit Terminal Backpack nutzen pestbeule Editing & Scripting 28 16.07.2010 21:44
UAV Rucksack todyoungblood Editing & Scripting 8 16.07.2010 18:24


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