Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 17.02.2010, 15:02   #1 (permalink)
r3D
50 Beiträge100 Beiträge
 
Registriert seit: 29.04.2008
Beiträge: 139
Standard Spieler löschen und neue Spielereinheit erstellen?

Hallo,

ich suche nach einer Möglichkeit, die Spieler_Unit zu wechseln. Also wie folgt:

Der Spieler hat eine Einheit xy, dann blendet der Bildschirm aus, die Player_Unit wird gelöscht und eine Neue_player_Unit erstellt, dann blendet der Bildschirm wieder ein und der Spieler steuert eine neue/andere Einheit.

hat da jemand eine Idee? Danke, r3D
r3D ist offline   Mit Zitat antworten
Alt 17.02.2010, 15:11   #2 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Schau dir mein Skript mal an: Uniform ändern.
Das macht genau das was du willst.

Problem ist aber, dass du alle Skripte, die auf die alte Einheit liefen auf die neue nochmal ausführen musst.
Cyborg11 ist offline   Mit Zitat antworten
Alt 17.02.2010, 15:53   #3 (permalink)
r3D
50 Beiträge100 Beiträge
 
Registriert seit: 29.04.2008
Beiträge: 139
Standard

Das Script ist ziemlich gut und funktioniert soweit ohne Probleme. Allerdings habe ich es bis jetzt noch nicht geschafft, dass Backpack Script von Xeno zugleich laufen zu lassen.

Eventuell wäre es hilfreich wenn es eine Variable gäbe, die immer zwischen true und false wechselt, wenn sich der Spieler umkleidet.

also Kleidung 1 -> x = true;
und Kleidung 2 -> x = false;

dann könnte man diese Variable als Bedingung nehmen, um die Anderen Skripte auszuführen.

Halt so eine Idee, vom Scripten selbst habe ich nicht so den Plan.

Eventuell kannst du da ja noch was basteln wenn du Lust hast. Auf jeden Fall schon eine sehr schöne Arbeit, danke dafür !! Grüße r3D
r3D ist offline   Mit Zitat antworten
Alt 17.02.2010, 16:11   #4 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Kann ich noch mit rein skripten

Frage ist halt, wie du das dann mit der Einheit regeln möchtest. Du müsstest der Einheit dann immer über den Editornamen die neuen Skripte hinzufügen.

Übrigens: Die Variable braucht es eigentlich gar nicht, da jedes Mal bei Skriptaufruf eine neue Einheit erstellt wird.
Du könntest einfach noch am Ende des Skriptes deine Skripte hinschreiben, damit die wieder ausgelöst werden
Cyborg11 ist offline   Mit Zitat antworten
Alt 17.02.2010, 16:26   #5 (permalink)
r3D
50 Beiträge100 Beiträge
 
Registriert seit: 29.04.2008
Beiträge: 139
Standard

ok, ich habe jetzt einfach in dein Script, In der Zeile vor exit, folgendes eingefügt:

handle = [] execVM "x_setupbackpack.sqf";

Das funktioniert, nur habe ich nach dem 2ten mal Kleidung wechseln dann zwei Backpack menü Einträge, komm noch nicht so ganz dahinter wie ich das weg bekomme.

Wenn das Uniform Script aktiv ist, und ich an eine Waffenkiste trete, dann erscheint mittig auf dem Bildschirm Uniform wechseln, sicherlich weil dies im Seitenmenü der erste Eintrag ist, aber ich würde empfehlen, diesen Mittigen text raus zu nehmen. Oder wenn nicht, mir eventl sagen wie ich das wenigstens bei mir machen kann?

Ach und wo ich einmal dabei bin, frage ich mal ganz frech, kannst du das auch so umschreiben dass es mit backpack funktioniert, also der spieler nicht nur die Handwaffe sondern auch den Rucksack nach dem wechsel hat? sorry, ich weiß das ist wohl etwas viel

Geändert von r3D (17.02.2010 um 16:30 Uhr).
r3D ist offline   Mit Zitat antworten
Alt 17.02.2010, 16:58   #6 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Ach das mit dem Rucksack ist doch nicht schwierig zu skripten. Du meinst schon die ACE Rucksäcke oder?
Oder hast du hier geskriptete Rucksäcke im Einsatz?

Wenn du dein Setup Backpack Skript startest, fügst du doch bestimmt eine Action hinzu.
Weise der Action doch einfach eine ID zu. Einfach vor dem Befehl
Code:
xyz = _unit addAction [...];
Dann kannst du vorher nämlich die Action entfernen, das würde dann verhindern, dass du deine Action zum zweiten mal bekommst:
Code:
_unit removeAction xyz;
Cyborg11 ist offline   Mit Zitat antworten
Alt 17.02.2010, 17:08   #7 (permalink)
r3D
50 Beiträge100 Beiträge
 
Registriert seit: 29.04.2008
Beiträge: 139
Standard

mh,.... ich werde dafür sicher etwas Zeit benötigen. Aber ich versuchs. Bis jetzt klingt das alles noch ein wenig wie Bohemische Dörfer, aber wir werden sehen. ich gebe Bescheid wenn ich alles mal rumprobiert habe. Danke auf jeden Fall !!

Ach und ich benutze derzeit noch nicht ACE. Ich benutze das Backpack Script von Xeno (finde jetzt den genauen Link leider nicht).

Hier mal das Script:

x_Backpack.sqf:

// by Xeno
private ["_p"];
_p = player;
_p removeAction pbp_id;

if (count player_backpack == 0) then {
_primary = primaryWeapon _p;
if (_primary != "") then {
_mag_types = getArray(configFile>> "cfgWeapons" >> _primary >> "magazines");
_magazines = magazines _p;
_mags_backpack = [];
{
if (_x in _mag_types) then {_mags_backpack = _mags_backpack + [_x]};
} forEach _magazines;
_muzzles = getArray(configFile>> "cfgWeapons" >> _primary >> "muzzles");
if (count _muzzles == 2) then {
_mag_types = getArray(configFile>> "cfgWeapons" >> _primary >> (_muzzles select 1) >> "magazines");
{
if (_x in _mag_types) then {_mags_backpack = _mags_backpack + [_x]};
} forEach _magazines;
};
player_backpack = [_primary, _mags_backpack];
_weapons = weapons _p;
_pistol = "";
{
scopeName "pistolsearch";
_base = inheritsFrom (configFile >> "cfgWeapons" >> _x);
for "_xs" from 1 to 3 do {
if (configName _base == "Pistol") then {
_pistol = _x;
breakOut "pistolsearch";
};
_base = inheritsFrom (configFile >> "cfgWeapons" >> (configName _base));
};
} forEach _weapons;
if (_pistol != "") then {
_p removeWeapon _pistol;
};
{
_p removeMagazine _x;
} forEach _mags_backpack;
_p removeWeapon _primary;
_anim = animationState _p;
WaitUntil {animationState player != _anim};
_s = format ["Weapon %1", _primary];
if (_pistol != "") then {
_p addWeapon _pistol;
_p selectWeapon _pistol;
};
pbp_id = _p addAction [_s, "x_backpack.sqf",[],-1,false];
} else { // has no primary
};
} else { // switch weapon
_primary = primaryWeapon _p;
if (_primary == "") then {
{
_p addMagazine _x;
} forEach (player_backpack select 1);
_p addWeapon (player_backpack select 0);
_muzzles = getArray(configFile>>"cfgWeapons" >> (player_backpack select 0) >> "muzzles");
_p selectWeapon (player_backpack select 0);
_p selectWeapon (_muzzles select 0);
_s = format ["%1 to Backpack", (player_backpack select 0)];
player_backpack = [];
_p removeAction pbp_id;
pbp_id = _p addAction [_s, "x_backpack.sqf",[],-1,false];
} else {
_mag_types = getArray(configFile>> "cfgWeapons" >> _primary >> "magazines");
_magazines = magazines _p;
_mags_backpack = [];
{
if (_x in _mag_types) then {_mags_backpack = _mags_backpack + [_x]};
} forEach _magazines;
_muzzles = getArray(configFile>> "cfgWeapons" >> _primary >> "muzzles");
if (count _muzzles == 2) then {
_mag_types = getArray(configFile>> "cfgWeapons" >> _primary >> (_muzzles select 1) >> "magazines");
{
if (_x in _mag_types) then {_mags_backpack = _mags_backpack + [_x]};
} forEach _magazines;
};
{
_p removeMagazine _x;
} forEach _mags_backpack;
_weapons = weapons _p;
_pistol = "";
{
scopeName "pistolsearch2";
_base = inheritsFrom (configFile >> "cfgWeapons" >> _x);
for "_xs" from 1 to 3 do {
if (configName _base == "Pistol") then {
_pistol = _x;
breakOut "pistolsearch2";
};
_base = inheritsFrom (configFile >> "cfgWeapons" >> (configName _base));
};
} forEach _weapons;
if (_pistol != "") then {
_p removeWeapon _pistol;
};
_p removeWeapon _primary;
sleep 1;
_anim = animationState _p;
WaitUntil {animationState player != _anim};
{
_p addMagazine _x;
} forEach (player_backpack select 1);
if (_pistol != "") then {
_p addWeapon _pistol;
};
_p addWeapon (player_backpack select 0);
_muzzles = getArray(configFile>> "cfgWeapons" >> (player_backpack select 0) >> "muzzles");
_p selectWeapon (player_backpack select 0);
_p selectWeapon (_muzzles select 0);
player_backpack = [_primary, _mags_backpack];
_s = format ["Weapon %1", _primary];
pbp_id = _p addAction [_s, "x_backpack.sqf",[],-1,false];
};
};

if (true) exitWith {};
__________________________________________________ __________________________________
und x_setupbackpack.sqf

// by Xeno
private ["_p","_pos","_trigger","_s"];
if (!local player) exitWith {};

_p = player;
_pos = position _p;

player_backpack = [];

pbp_id = -1000;

prim_weap_player = primaryWeapon _p;
_s = format ["%1 to Backpack", prim_weap_player];
if (prim_weap_player != "") then {
pbp_id = _p addAction [_s, "x_backpack.sqf",[],-1,false];
};

// No Weapon fix for backpack
_trigger = createTrigger["EmptyDetector" ,_pos];
_trigger setTriggerArea [0, 0, 0, false];
_trigger setTriggerActivation ["NONE", "PRESENT", true];
_trigger setTriggerStatements["primaryWeapon player != prim_weap_player","prim_weap_player = primaryWeapon player;if (pbp_id != -1 && count player_backpack == 0) then {player removeAction pbp_id;pbp_id = -1;};if (pbp_id == -1 && count player_backpack == 0 && prim_weap_player != """") then {pbp_id = player addAction [format [""%1 to Backpack"", prim_weap_player], ""x_backpack.sqf"",[],-1,false];};",""];

while {true} do {
waitUntil {!alive player};
_p = player;
_weapons = weapons _p;
_magazines = magazines _p;
if (pbp_id != -1000) then {
_p removeAction pbp_id;
};
waitUntil {alive player};
_p = player;
removeAllWeapons _p;
{_p addMagazine _x;} forEach _magazines;
{_p addWeapon _x;} forEach _weapons;
_primw = primaryWeapon _p;
if (_primw != "") then {
_p selectWeapon _primw;
_muzzles = getArray(configFile>>"cfgWeapons" >> _primw >> "muzzles");
_p selectWeapon (_muzzles select 0);
};
if (count player_backpack == 0) then {
_s = format ["%1 to Backpack", primaryWeapon _p];
pbp_id = _p addAction [_s, "x_backpack.sqf",[],-1,false];
} else {
_s = format ["Weapon %1", (player_backpack select 0)];
pbp_id = _p addAction [_s, "x_backpack.sqf",[],-1,false];
};
};

if (true) exitWith {};

Geändert von r3D (17.02.2010 um 17:12 Uhr).
r3D ist offline   Mit Zitat antworten
Alt 17.02.2010, 17:49   #8 (permalink)
500 Beiträge1000 Beiträge2.500 Beiträge
 
Benutzerbild von Cyborg11
 
Registriert seit: 26.03.2008
Beiträge: 2.822
Standard

Für ACE kann ich das Skript ganz leicht umschreiben, aber auf Xeno's Backpack Skript schreib ich meins nicht um Zu viel Gefummelei.

Außerdem müsste man sein Skript auch noch abändern

Geändert von Cyborg11 (17.02.2010 um 17:54 Uhr).
Cyborg11 ist offline   Mit Zitat antworten
Antwort


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
Kann man eine neue Seite erstellen? Hercules-HH Editing 2 30.05.2009 00:41
Spieler suchen Spieler ic3dog Die Litfaßsäule 2 09.08.2008 17:33
Objekte löschen?! Garry Editing 9 12.07.2005 18:54


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