Hallo zusammen,
ich habe auf meine Altis Life Server ein Admintool eingefügt dass man per Mausrad bedienen kann. Bestimmt kennen dies einige. Wenn nicht führe ich es unten grob noch mal auf. Funktionen wie GODMODE, Repair oder Heal sind natürlich dabei aber ich möchte noch eine Revive Funktion dabei haben. Dass wenn man auf Revive Player, wie beim Heilen eines Spielers, erst die Spielerliste kommt und dann auf dem Spieler er wiederbelebt wird.
[Jeder der Arma 3 spielt müsste das Befehlsmenü kennen. Was man per Mausrad oder Tasten wie BackSpace oder die F Tasten bedienen kann. So funktioniert auch das Admintool. Man dreht das Mausrad, dort steht Admintool, und wenn man drauf klickt dann hat man in einem "Befehlsmenü" Tools zur Auswahl.]
Hier mal das Admintool in Grundausführung:
So sieht das Tool als .zip aus:
Spoiler anzeigen
Ein Tool, nehmen wir zum Beispiel das Spieler heilen, sieht so aus:
Spoiler anzeigen
//Healing Others Script
_max = 10; snext = false; plist = []; pselect5 = "";
{if ((_x != player) && (getPlayerUID _x != "")) then {plist set [count plist, name _x];};} forEach entities "CAManBase";
{if ((count crew _x) > 0) then {{if ((_x != player) && (getPlayerUID _x != "")) then {plist set [count plist, name _x];};} forEach crew _x;};} foreach (entities "LandVehicle" + entities "Air" + entities "Ship");
smenu =
{
_pmenu = [["Heal Other Player",true]];
for "_i" from (_this select 0) to (_this select 1) do
{_arr = [format['%1', plist select (_i)], [12], "", -5, [["expression", format ["pselect5 = plist select %1;", _i]]], "1", "1"]; _pmenu set [_i + 2, _arr];};
if (count plist > (_this select 1)) then {_pmenu set [(_this select 1) + 2, ["Next", [13], "", -5, [["expression", "snext = true;"]], "1", "1"]];}
else {_pmenu set [(_this select 1) + 2, ["", [-1], "", -5, [["expression", ""]], "1", "0"]];};
_pmenu set [(_this select 1) + 3, ["Exit", [13], "", -5, [["expression", "pselect5 = 'exit';"]], "1", "1"]];
showCommandingMenu "#USER:_pmenu";
};
_j = 0; _max = 10; if (_max>9) then {_max = 10;};
while {pselect5 == ""} do
{
[_j, (_j + _max) min (count plist)] call smenu; _j = _j + _max;
WaitUntil {pselect5 != "" or snext};
snext = false;
};
if (pselect5 != "exit") then
{
_name = pselect5;
{
if(name _x == _name) then
{
hint format ["Healing %1", _name];
_x setDamage 0;
sleep 0.25;
};
} forEach entities "CAManBase";
};
Die Datei activate.sqf:
Spoiler anzeigen
waituntil {!alive player ; !isnull (finddisplay 46)};
if ((getPlayerUID player) in ["76561198147581866"]) then {
sleep 30;
player addaction [("<t color=""#FF0000"">" + ("Admin Menu") +"</t>"),"AdminTool\Admin-Pfad.sqf","",5,false,true,"",""];
};
Die Datei Admin-Pfad.sqf:
Spoiler anzeigen
[] execVM "AdminTool\AdminToolMenu.sqf";
Die Datei AdminToolMenu.sqf:
Spoiler anzeigen
_pathtovehiclescars = "AdminTool\vehicles\Autos\";
_pathtovehicleshelis = "AdminTool\vehicles\Helis\";
_pathtoweapon = "AdminTool\weapons\";
_pathtotools = "AdminTool\tools\";
_EXECscript1 = 'player execVM "'+_pathtovehiclescars+'%1"';
_EXECscript2 = 'player execVM "'+_pathtovehicleshelis+'%1"';
_EXECscript3 = 'player execVM "'+_pathtoweapon+'%1"';
_EXECscript4 = 'player execVM "'+_pathtotools+'%1"';
//customise these menus to fit your server
if ((getPlayerUID player) in ["76561198055058465"]) then { // Admin PlayerID Eintragen
if ((getPlayerUID player) in ["######","######"]) then { // Mod PlayerID Eintragen
adminmenu =
[
["",true],
["Tools Menu", [2], "#USER:ModToolsMenu", -5, [["expression", ""]], "1", "1"],
["", [-1], "", -5, [["expression", ""]], "1", "0"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];};
if ((getPlayerUID player) in ["######","######"]) then { // Admin PlayerID Eintragen
adminmenu =
[
["",true],
["Tools Menu", [2], "#USER:AdminToolsMenu", -5, [["expression", ""]], "1", "1"],
["", [-1], "", -5, [["expression", ""]], "1", "0"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];};
if ((getPlayerUID player) in ["76561198055058465"]) then { // Super Admin PlayerID Eintragen
adminmenu =
[
["",true],
["Tools Menu", [2], "#USER:ToolsMenu", -5, [["expression", ""]], "1", "1"],
["Spawn Manu", [3], "#USER:SpawnMenu", -5, [["expression", ""]], "1", "1"],
["", [-1], "", -5, [["expression", ""]], "1", "0"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];};
};
//customise to fit
ModToolsMenu =
[
["",true],
["God Mode", [2], "", -5, [["expression", format[_EXECscript4,"Godmode.sqf"]]], "1", "1"],
["", [-1], "", -5, [["expression", ""]], "1", "0"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
//customise to fit
AdminToolsMenu =
[
["",true],
["God Mode", [2], "", -5, [["expression", format[_EXECscript4,"Godmode.sqf"]]], "1", "1"],
["", [-1], "", -5, [["expression", ""]], "1", "0"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
ToolsMenu =
[
["",true],
["God Mode", [2], "", -5, [["expression", format[_EXECscript4,"Godmode.sqf"]]], "1", "1"],
["Selber Heilen", [3], "", -5, [["expression", format[_EXECscript4,"heal.sqf"]]], "1", "1"],
["Spieler Heilen", [4], "", -5, [["expression", format[_EXECscript4,"healp.sqf"]]], "1", "1"],
["Car God", [5], "", -5, [["expression", format[_EXECscript4,"cargod.sqf"]]], "1", "1"],
["Spectate Player", [6], "", -5, [["expression", format[_EXECscript4,"spectate.sqf"]]], "1", "1"],
["Teleport To Me", [7], "", -5, [["expression", format[_EXECscript4, "TPtoME.sqf"]]], "1", "1"],
["Teleport", [8], "", -5, [["expression", format[_EXECscript4, "Tele.sqf"]]], "1", "1"],
["ESP", [9], "", -5, [["expression", format[_EXECscript4, "ESP.sqf"]]], "1", "1"],
["Autos Repair und Flipen", [10], "", -5, [["expression", format[_EXECscript4, "repairflip.sqf"]]], "1", "1"],
["Cash", [11], "", -5, [["expression", format[_EXECscript4, "cash.sqf"]]], "1", "1"],
["", [-1], "", -5, [["expression", ""]], "1", "0"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
SpawnMenu =
[
["Spawn",true],
["Waffen", [12], "#USER:WeaponMenu", -5, [["expression", ""]], "1", "1"],
["Vehicle", [12], "#USER:VehicleMenu", -5, [["expression", ""]], "1", "1"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
WeaponMenu =
[
["Waffen",true],
["MX", [2], "", -5, [["expression", format[_EXECscript3,"mx.sqf"]]], "1", "1"],
["MK 200", [3], "", -5, [["expression", format[_EXECscript3,"mk200.sqf"]]], "1", "1"],
["LRR", [4], "", -5, [["expression", format[_EXECscript3,"lrr.sqf"]]], "1", "1"],
["EBR", [5], "", -5, [["expression", format[_EXECscript3,"ebr.sqf"]]], "1", "1"],
["GM6", [6], "", -5, [["expression", format[_EXECscript3,"gm6.sqf"]]], "1", "1"],
["P07", [7], "", -5, [["expression", format[_EXECscript3,"phgun.sqf"]]], "1", "1"],
["Next page", [12], "#USER:WeaponMenu2", -5, [["expression", ""]], "1", "1"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
WeaponMenu2 =
[
["Waffen 2",true],
//Add Weapons Here Gave another page because it could get a little confusing
["MXSil", [2], "", -5, [["expression", format[_EXECscript3,"MXSil.sqf"]]], "1", "1"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
VehicleMenu =
[
["Vehicles",true],
["Autos", [12], "#USER:AutoMenu", -5, [["expression", ""]], "1", "1"],
["Helis", [12], "#USER:HeliMenu", -5, [["expression", ""]], "1", "1"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
AutoMenu =
[
["Autos",true],
["ATV", [2], "", -5, [["expression", format[_EXECscript1,"ATV.sqf"]]], "1", "1"],
["Hunter Armed", [3], "", -5, [["expression", format[_EXECscript1,"hunter.sqf"]]], "1", "1"],
["Offroad Truck HMG .50", [4], "", -5, [["expression", format[_EXECscript1,"offroad.sqf"]]], "1", "1"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
HeliMenu =
[
["Helis",true],
["Ka60", [2], "", -5, [["expression", format[_EXECscript2,"Ka60.sqf"]]], "1", "1"],
["Kat", [3], "", -5, [["expression", format[_EXECscript2,"Kat.sqf"]]], "1", "1"],
["Exit", [13], "", -3, [["expression", ""]], "1", "1"]
];
showCommandingMenu "#USER:adminmenu";
Und die Datei loop.sqf:
Spoiler anzeigen
while {true} do
{
waitUntil {alive vehicle player};
[] execVM "AdminTool\activate.sqf";
waitUntil {!alive player};
};
Ich weiß nicht wie viel Arbeit das in Anspruch nimmt aber würde mich sehr freuen wenn mir jemand eine Revive Funktion für dieses Admintool geben könnte (Script wie Healplayer oder ähnliches).
Danke im vorraus und mit freundlichen Grüßen
Timo Goeres