Manuell Wanteds hinzufügen

Aus Nitradopedia
Wechseln zu: Navigation, Suche
Arma3Altis header.png

Miete dir jetzt deinen eigenen prepaid ArmA 3 Altis Life Server auf nitrado.net

Dieser Artikel wurde mit ArmA 3: Altis Life (Version 3.1.4.8-extDB von Tonic) getestet.

In diesem Artikel wird erläutert, wie man manuell Wanteds vergeben kann.

Hier findest du einen Download Link zu allen Dateien die du für dieses Script benötigst: http://customer.static.nistored.de/wanteds.rar

Wenn du das Script nicht selbst umschreiben möchtest, findest du hier auch den direkten Download Link zu den bereits editierten und getesteten Dateien: http://customer.static.nistored.de/wanteds_ready.rar

  • Wichtiger Hinweis: Eine Sicherung / Bitte erstelle ein Backup aller Dateien du die verändern wirst
  • Gameserver stoppen
  • Lade dir das oben genannte Archiv herunter, entpacke es und lade den kompletten MPMissions Ordner auf deinen Altis Life Server in den Ordner /arma3 hoch. In diesem Archiv ist die teargas.sqf enthalten.

1. Die Datei Functions.h aus dem Verzeichnis /arma3/MPMissions/Altis_Life.Altis öffnen 1.1. Folgende Zeile in der Datei suchen:

	class Player_Menu


1.2. Diese Zeilen an die vorhandenen Einträge anfügen:


		class wantedadd2 {};
		class wanted2 {};

1.3. Der Abschnitt sollte nun folgendermaßen aussehen:


	class Player_Menu
	{
		file = "core\pmenu";
		class wantedList {};
		class wantedInfo {};
		class wantedMenu {};
		class pardon {};
		class giveItem {};
		class giveMoney {};
		class p_openMenu {};
		class p_updateMenu {};
		class removeItem {};
		class useItem {};
		class cellphone {};
		class keyMenu {};
		class keyGive {};
		class keyDrop {};
		class s_onSliderChange {};
		class updateViewDistance {};
		class settingsMenu {};
		class settingsInit {};
		class wantedadd2 {};
		class wanted2 {};
	};

2. Die Datei fn_wanted2.sqf im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/core/pmenu mit folgendem Inhalt erstellen:


private["_unit","_amount"];

ctrlShow[2001,false];
if((lbCurSel 9902) == -1) exitWith {hint "Niemand wurde ausgewaehlt!";ctrlShow[2001,true];};
_unit = lbData [9902,lbCurSel 9902];
_unit = call compile format["%1",_unit];
_amount = lbData [9991,lbCurSel 9991];
if(isNil "_unit") exitWith {ctrlShow[2001,true];};
//if(_unit == player) exitWith {ctrlShow[2001,true];};
if(isNull _unit) exitWith {ctrlShow[2001,true];};

[[1,format["Nach %1 wird nun gefahndet.",name _unit,_amount,getPlayerUID _unit]],"life_fnc_broadcast",west,false] spawn life_fnc_MP;

[[getPlayerUID _unit,name _unit,_amount],"life_fnc_wantedAdd",false,false] spawn life_fnc_MP;


2.1. Die Datei fn_wantedadd2.sqf im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/core/pmenu mit folgendem Inhalt erstellen:


//fn_wantedadd2.sqf

private["_display","_list","_side"];
disableSerialization;
waitUntil {!isNull (findDisplay 9900)};
_display = findDisplay 9900;
_list = _display displayCtrl 9902;

//Purge List
lbClear _list;


{
    _side = switch(side _x) do {case west: {"Cop"}; case civilian : {"Civ"}; default {"Unknown"};};
    _list lbAdd format["%1 - %2", name _x,_side];
    _list lbSetdata [(lbSize _list)-1,str(_x)];
} foreach playableUnits;


_list2 = _display displayCtrl 9991;
lbClear _list2;


//_index = lbAdd [_list2, "Name"];
//lbSetData [_list2, _index, "pfad/zum/bild.paa"];
//lbSetValue [_list2, _index, "pfad/zum/bild.paa"];

_text = "Fahren ohne Fuehrerschein $15000";
_data = "1";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Versuchter Fahrzeug Diebstahl pro Versuch $10000";
_data = "2";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Diebstahl von Fahrzeugen $20000";
_data = "3";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Fahren ohne Licht $1500";
_data = "4";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Ueberhoehte Geschwindigkeit $6000";
_data = "5";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Gefaehrliche Fahrweise $7500";
_data = "6";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Versuchter Diebstahl e. Polizeifahrzeugs $15000";
_data = "7";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Diebstahl von Polizeifahrzeugen $25000";
_data = "8";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];


_text = "Landen ohne Genehmigung $20000";
_data = "9";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Fahren von illegalen Fahrzeugen $100000";
_data = "10";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Unfallverursacher / Fahrerflucht nach Unfall $5000";
_data = "11";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Flucht vor der Polizei $17500";
_data = "12";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Ueberfahren eines anderen Spielers $1234567";
_data = "13";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Illegale Strassensperren $15000";
_data = "14";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Widerstand gegen die Staatsgewalt $45000";
_data = "15";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Nicht befolgen e. pol. Anordnung $5000";
_data = "16";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Beamtenbeleidigung $15000";
_data = "17";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Belaestigung eines Polizisten $14000";
_data = "18";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Betreten einer pol. Sperrzone $50000";
_data = "19";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Toeten eines Polizisten $1234567";
_data = "20";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Beschuss auf Polizei/Beamte/Eigentum $1234567";
_data = "21";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Zerstoerung von Polizeieigentum $15000";
_data = "22";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Drogendelikte $123456";
_data = "23";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Waffenbesitz ohne Lizenz $70000";
_data = "24";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Mit gez. Waffe durch Stadt $50000";
_data = "25";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Besitz einer illegalen Waffe $150000";
_data = "26";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Abfeuern einer Waffe innerhalb von Staedten $50000";
_data = "27";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Geiselnahme $1234567";
_data = "28";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Raubueberfall auf Personen/Fahrzeuge $60000";
_data = "29";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Bankraub $1234567";
_data = "30";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Mord $1234567";
_data = "31";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Aufstand $75000";
_data = "32";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Angriff durch Rebellen $75000";
_data = "33";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Angriff/Belagerung von Hauptstaedten/Checkpoints $1234567";
_data = "34";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Landung in einer Flugverbotszone $75000";
_data = "35";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Fliegen/Schweben unterhalb 150m ueber Stadt $2000";
_data = "36";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Ausbruch aus dem Gefaengnis $1234567";
_data = "37";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Fliegen ohne Fluglizenz $50000";
_data = "38";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Dauerhaftes hupen $7500";
_data = "39";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

_text = "Handel mit exotischen Gütern $500000";
_data = "40";
_list2 lbAdd format["%1 (%2)",_text,_data];
_list2 lbSetData [(lbSize _list2)-1,_data];

2.2. Die Datei wantedadd2.hpp im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/dialog mit folgendem Inhalt erstellen:


class life_wantedadd2 {
	idd = 9900;
	name= "life_wantedadd2";
	movingEnable = false;
	enableSimulation = true;
	onLoad = "[] spawn life_fnc_wantedadd2;";
	
	class controlsBackground {
		class Life_RscTitleBackground:Life_RscText {
			colorBackground[] = {"(profilenamespace getvariable ['GUI_BCG_RGB_R',0.3843])", "(profilenamespace getvariable ['GUI_BCG_RGB_G',0.7019])", "(profilenamespace getvariable ['GUI_BCG_RGB_B',0.8862])", "(profilenamespace getvariable ['GUI_BCG_RGB_A',0.7])"};
			idc = -1;
			x = 0.1;
			y = 0.2;
			w = 1.0;
			h = (1 / 25);
		};
		
		class MainBackground:Life_RscText {
			colorBackground[] = {0, 0, 0, 0.7};
			idc = -1;
			x = 0.1;
			y = 0.2 + (11 / 250);
			w = 1.0;
			h = 0.9 - (22 / 250);
		};
	};
	
	class controls {

		
		class Title : Life_RscTitle {
			colorBackground[] = {0, 0, 0, 0};
			idc = 2901;
			text = "Anzeige schreiben";
			x = 0.1;
			y = 0.2;
			w = 0.7;
			h = (1 / 25);
		};
		
		class PlayerList_Admin : Life_RscListBox 
		{
			idc = 9902;
			text = "";
			sizeEx = 0.035;
			//colorBackground[] = {0,0,0,0};
			onLBSelChanged = "[_this] spawn life_fnc_adminQuery";
			
			x = 0.12; y = 0.26;
			w = 0.30; h = 0.72;
		};
		
        class RSUCombo_2101: Life_RscListBox
        {
            idc = 9991;
			text = "";
			sizeEx = 0.035;
			x = 0.42;
			y = 0.26;
			w = 0.65;
			h = 0.72;
           // onLBSelChanged="call fnc_Cmb_changed;";
			//--- action/function to call when listbox or combobox has been changed
 
        };
		


		class CloseButtonKey : Life_RscButtonMenu {
			idc = -1;
			text = "$STR_Global_Close";
			onButtonClick = "closeDialog 0;";
			x = -0.06 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
			y = 1.1 - (1 / 25);
			w = (6.25 / 40);
			h = (1 / 25);
		};
		

		class Adminwanted : Life_RscButtonMenu {
			idc = -1;
			text = "Hinzufügen";
			onButtonClick = "[] call life_fnc_wanted2;";
			x = 0.1 + (6.25 / 40) + (1 / 250 / (safezoneW / safezoneH));
			y = 1.1 - (1 / 25);
			w = 0.18;
			//w = (6.25 / 40);
			h = (1 / 25);
		};		
		


	};
};


3. Die Datei masterhandler.h im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/dialog öffnen und folgende Zeilen unten anfügen:


#include "wantedadd2.hpp"


3.1. Die Datei player_inv.hpp im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/dialog öffnen und folgende Zeilen unten anfügen:


class ButtonWantedAdd : life_RscButtonMenu {
			idc = 9800;
			//shortcuts[] = {0x00050000 + 2};
			text = "Anzeige";
			onButtonClick = "createDialog ""life_wantedadd2"";";
			x = 0.42 + (6.25 / 19.8) + (1 / 250 / (safezoneW / safezoneH));
			y = 0.805;
			w = (6.25 / 40);
			h = (1 / 25);
		};


3.2. Die Datei fn_WantedAdd.sqf im Verzeichnis /arma3/@life_server/addons/life_server/functions/WantedSystem öffnen und folgende Zeilen unten anfügen:

/*
	File: fn_wantedAdd.sqf
	Author: Bryan "Tonic" Boardwine
	
	Description:
	Adds or appends a unit to the wanted list.
*/
private["_uid","_type","_index","_data","_crimes","_val","_customBounty","_name"];
_uid = [_this,0,"",[""]] call BIS_fnc_param;
_name = [_this,1,"",[""]] call BIS_fnc_param;
_type = [_this,2,"",[""]] call BIS_fnc_param;
_customBounty = [_this,3,-1,[0]] call BIS_fnc_param;
if(_uid == "" OR _type == "" OR _name == "") exitWith {}; //Bad data passed.

//What is the crime?
switch(_type) do
{
	case "187V": {_type = ["Überfahren eines Spielers",1234567]};
	case "187": {_type = ["Mord",1234567]};
	case "901": {_type = ["Ausbruch aus dem Gefängnis",1234567]};
	case "261": {_type = ["Rape",5000]}; //What type of sick bastard would add this?
	case "261A": {_type = ["Attempted Rape",3000]};
	case "215": {_type = ["Versuchter Fahrzeugdiebstahl",10000]};
	case "213": {_type = ["Use of illegal explosives",10000]};
	case "211": {_type = ["Raubueberfall",60000]};
	case "207": {_type = ["Geiselnahme",1234567]};
	case "207A": {_type = ["Versuchte Geiselnahme",1234567]};
	case "487": {_type = ["Fahrzeugdiebstahl",20000]};
	case "488": {_type = ["Diebstahl",15000]};
	case "480": {_type = ["Hit and run",1300]};
	case "481": {_type = ["Drogenbesitz",1234567]};
	case "482": {_type = ["Intent to distribute",5000]};
	case "483": {_type = ["Drogenhandel",1234567]};
	case "459": {_type = ["Hauseinbruch",50000]};
	case "390": {_type = ["Einfluss unter Alkoholeinfluss",15000]};
	case "919": {_type = ["Organ Handel",50000]};
	
	case "1": {_type = ["Fahren ohne Fuehrerschein",15000]};
    case "2": {_type = ["Versuchter Fahrzeugdiebstahl",10000]};
    case "3": {_type = ["Fuehren eines gestohlenen Fahrzeugs",20000]};
    case "4": {_type = ["Fahren ohne Licht",1500]};
    case "5": {_type = ["Ueberhoehte Geschwindigkeit",6000]};
    case "6": {_type = ["Gefaehrliche Fahrweise",7500]};
    case "7": {_type = ["Versuchter Diebstahl e. Polizeifahrzeugs",15000]};
    case "8": {_type = ["Diebstahl von Polizeifahrzeugen",25000]};
    case "9": {_type = ["Landen ohne Genehmigung",20000]};
    case "10": {_type = ["Fahren von illegalen Fahrzeugen", 100000]};
    case "11": {_type = ["Unfallverursacher / Fahrerflucht nach Unfall",5000]};
    case "12": {_type = ["Flucht vor der Polizei",17500]};
    case "13": {_type = ["Ueberfahren eines anderen Spielers",30000]};
    case "14": {_type = ["Illegale Strassensperren",15000]};
    case "15": {_type = ["Widerstand gegen die Staatsgewalt",45000]};
    case "16": {_type = ["Nicht befolgen e. pol. Anordnung",5000]};
    case "17": {_type = ["Beamtenbeleidigung",15000]};
    case "18": {_type = ["Belaestigung eines Polizisten",14000]};
    case "19": {_type = ["Betreten einer pol. Sperrzone",50000]};
    case "20": {_type = ["Toeten eines Polizisten",1234567]};
    case "21": {_type = ["Beschuss auf Polizei/Beamte/Eigentum",1234567]};
    case "22": {_type = ["Zerstoerung von Polizeieigentum",15000]};
    case "23": {_type = ["Drogendelikte",1234567]};
    case "24": {_type = ["Waffenbesitz ohne Lizenz",70000]};
    case "25": {_type = ["Mit gez. Waffe durch Stadt",50000]};
    case "26": {_type = ["Besitz einer illegalen Waffe",150000]};
    case "27": {_type = ["Abfeuern einer Waffe innerhalb einer Stadt",50000]};
    case "28": {_type = ["Geiselnahme",1234567]};
    case "29": {_type = ["Raubeuberfall",60000]};
    case "30": {_type = ["Bankraub",1234567]};
    case "31": {_type = ["Mord",1234567]};
    case "32": {_type = ["Aufstand",75000]};
    case "33": {_type = ["Angriff durch Rebellen",75000]};
    case "34": {_type = ["Angriff/Belagerung von Staedten/Checkpoints",1234567]};
    case "35": {_type = ["Landung in einer Flugverbotszone",75000]};
    case "36": {_type = ["Fliegen/Schweben unterhalb 150m ueber Stadt",20000]};
    case "37": {_type = ["Ausbruch aus dem Gefaengnis",1234567]};
    case "38": {_type = ["Fliegen ohne Fluglizenz",50000]};
    case "39": {_type = ["Dauerhaftes hupen",7500]};
    case "40": {_type = ["Handel mit exotischen Guetern",50000]};
	case "41": {_type = ["Umfahren eines Außenpostens",25000]};
	case "42": {_type = ["Kraftwerk manipulation",25000]};
	
	case "120S": {_type = ["Überhöte Geschwindigkeit",5000]};
	case "120H": {_type = ["Gewohntes Fahren",8000]};
	case "120WL": {_type = ["Driving W/O License",8000]};
	case "120FS": {_type = ["Gefährliche Fahrweise",8000]};
	default {_type = [];};
};

if(count _type == 0) exitWith {}; //Not our information being passed...
//Is there a custom bounty being sent? Set that as the pricing.
if(_customBounty != -1) then {_type set[1,_customBounty];};
//Search the wanted list to make sure they are not on it.
_index = [_uid,life_wanted_list] call TON_fnc_index;

if(_index != -1) then
{
	_data = life_wanted_list select _index;
	_crimes = _data select 2;
	_crimes pushBack (_type select 0);
	_val = _data select 3;
	life_wanted_list set[_index,[_name,_uid,_crimes,(_type select 1) + _val]];
}
	else
{
	life_wanted_list pushBack [_name,_uid,[(_type select 0)],(_type select 1)];
};


4. Die Datei fn_p_openMenu.sqf im Verzeichnis /arma3/MPMissions/Altis_Life.Altis/core/pmenu öffnen und folgende Zeile suchen:


case civilian: und case independent: 
  • unter der Zeile
ctrlShow[2011,false];


  • Die Zeile


ctrlShow[9800,false];
  • einfügen. Der Abschnitt sollte dann so aussehen:


{
	case west: 
	{
		ctrlShow[2011,false];
	};
	
	case civilian:
	{
		ctrlShow[2012,false];
                ctrlShow[9800,false];
	};
        case independent:
        {
                ctrlShow[9800,false];
                ctrlShow[2011,false];
                ctrlShow[2012,false];
        };
};