shoXy sobald ich am pc bin schicke ich dir die keyhandler
Beiträge von Natic
-
-
Also profileNamespace setVariable [“newbe“,true];
Und in der Datei für niederschlagen
If ((profileNamespace getVariable [“newbe“,true])) then ....
Bin am Handy ? so in etwa ?
-
Kuchenplatte ich meine mit dem Wort unnötig, dass die Fehler unnötig verursacht werden.
-
Sind das die Gründe oder Willst du mich lediglich daraufhin Weisen das es unnötige Fehler gibt
-
Habe die nicht durchgelesen, hat der Projektleiter mit der Begründung "Steht nichts drin" rein geschrieben xD
Hier bitte schön
-
Abend,
der Adminmode ist nicht so wichtig wie dieser hier, deshalb wollte ich fragen ob mir hier wer helfen kann.
Code
Alles anzeigen/* Author: Natic Description: Take Care and watch ! Reclaimer: nobody is allowed to/edit this Script */ if (playerside != civilian) then { if (!(life_firstSpawn)) then { hint format["Du besitzt den NewBie Schutz, dieser verschwindet wenn du aggressive Handlungen unternimmst!"]; sleep 1; uc_active_nb = true; profileNamespace setVariable ["uc_active_nb", true]; saveprofileNamespace; sleep 1; hint format["Dein NewBie Schutz von in deinem Profil aktiviert, solltest du die Serverdatein aus deinem Profil entfernen, deaktivierst du auch deinen Schutz!"]; }; if (uc_active_nb = false) then { profileNamespace setVariable ["uc_active_nb", false]; saveprofileNamespace; player allowDamage = true; }; if (uc_active_nb = true) then { //player cant be robbed/killed //query if a player do a aggressive thing if ((isPlayer _source) && (vehicle _source != _source)) then { if(_part == "body" && (player getVariable["limit",true]) && playerSide in [west,independent,civilian,east]) then { player setVariable ["limit",false]; [_source] spawn { _driver = _this select 0; hint format["Da du eine aggressive Handlung unternommen hast, hast du deinen NewBewSchutz verloren"]; uc_active_nb = false; profileNamespace setVariable ["uc_active_nb", false]; saveprofileNamespace; sleep(10); player setVariable ["limit",true]; }; }; 0 spawn { while {true} do { if (weapons player isEqualTo []) then { } else { hint format["Da du eine Waffe besitzt, wurde dein NewBie Schutz deaktivierst!"]; uc_active_nb = false; profileNamespace setVariable ["uc_active_nb", false]; saveprofileNamespace; }; }; }; }; };
Das ist der Anfängerschutz, ich hoffe er funktioniert so aber er wird noch getestet. Bevor ich es testen kann, muss hier noch geschrieben werden, dass dich keiner Überfallen kann.
Weiß jemand wie man das schreibt, dass man dich nicht überfallen kann?
-
Steht nichts drin
Sonst hätte ich diese angehangen
-
Moin, ich habe mal eine Frage, und zwar hatte Lucian ein Script geschrieben, dass den Admins über eine Taste den Adminmodus aktivert.
Dieses würde ich gerne ebenfalls tuen. Ich habe es etwas geändert doch es funktioniert nicht. Irgendwie bin ich zu Blöd ein einfaches Script gerade zum Laufen zu bringen.
Liegt vielleicht daran das ich Müde bin -.-
Zum Code:
Code
Alles anzeigen/* File: fn_adminmode.sqf Date: 2016-08-02 18:15:42 Author: Patrick "Lucian" Schmidt Edit by: Natic */ private["_display","_list","_side","_name"]; _name = name player; if((life_adminlevel) == 0) exitWith { ["Diese Taste ist für dich Deaktiviert!", true, "fast"] spawn ESG_fnc_notify; }; /*if (player getVariable ["admin",0] == 0) then { [player] call life_fnc_saveGear; life_safeGear = life_gear; player setVariable ["admin",(call life_adminlevel),true]; */ [player] call life_fnc_saveGear; life_safeGear = life_gear; sleep 1; player setUnitLoadout [["LMG_03_F","muzzle_snds_M","","optic_ERCO_blk_F",["200Rnd_556x45_Box_F",40000],[],""],[],["hgun_P07_F","","","",["30Rnd_9x21_Mag",40000],[],""],["U_I_HeliPilotCoveralls",[]],[],["B_Carryall_cbr",[]],"","",[],["","ItemGPS","ItemRadio","","","NVGoggles"]]; if !(missionNamespace getVariable ["life_godmode",false]) then { player removeAllEventHandlers"HandleDamage"; player addEventHandler["HandleDamage",{false}]; }; ["Du bist nun im Adminstrator - Modus", true, "fast"] spawn ESG_fnc_notify; missionNamespace getVariable ["life_adminmode_active",true]; if (life_HC_isActive) then { [format["%1(UID: %2) hat den Adminmodus aktiviert.",_name,getPlayerUID player],"AdminLog"] remoteExec ["A3Log",HC_Life]; } else { [format["%1(UID: %2) hat den Adminmodus deaktiviert.",_name,getPlayerUID player],"AdminLog"] remoteExec ["A3Log",2]; }; } else { if !(missionNamespace getVariable ["life_godmode",false]) then { player removeAllEventHandlers"HandleDamage"; player addEventHandler["HandleDamage",{_this call life_fnc_handleDamage}]; }; missionNamespace getVariable ["life_adminmode_active",false]; life_gear = life_safeGear; [] call life_fnc_Loadgear; ["Adminmodus deaktiviert",false,"fast"] call life_fnc_notification_system; }; [] call life_fnc_updateClothing; [] call life_fnc_playerTags;
-
Danke dir #closed
-
wie war die gleich nochma?
if (playtime < 30) oder so?
-
Moin Moin,
ich bin gerade etwas Doof und weiß nicht wie ich den Quellcode schreiben soll.
Es geht im Grunde darum, dass wenn ich mich zum XY mal eingeloggt habe, ich einen
Bonus von XY Items und oder Geldbeträge bekomme.
Damit dies nicht ausgenutzt wird und ich mich XY mal hintereinander einlogge/auslogge.
Möchte ich eine antiDupe oder antiAusnutz
(Kreativ) schreiben.
Ich habe daran gedacht abzufragen, dass wenn der Spieler sich unter 30 Minuten mehr als 2 x einloggt er keinen Bonus
bekommt.
Doch bin gerade Doof was ich schreiben soll. Habe zu viel andere Sprachen in meinem Kopf gerade.
Kann mir wer Helfen?
MfG
Natic
-
wir können uns auch zusammen setzen und das Tutorial von mir etwas überarbeiten. Dann hätten wir es
-
moeck daran habe ich gar nicht Gedacht
Wenn du Zeit und Laune hast, wäre es Supii wenn du die DB Abfrage hier einmal einfügen kannst, da ich aktuell Zeitlich bedingt bin.
Sollte es nicht möglich sein, werde ich bis morgen dafür Zeit finden
-
Habe ein Tutorial für dich erstellt
-
Wäre schön wenn das einer testen könnte
-
B4v4r!4n_Str!k3r da hast du recht,
da habe ich wohl nicht aufgepasst. Muss ich dann mal ändern aber Mann kann die Speicherung auch als Datei im lifeserver machen mit async und diese dann einfach aufrufen
-
Moin NN,
Der XFireFighter und ich haben uns mal hingesetzt und das Nummernschild System von DE100 nutzbar gemacht.
Copy & Paste ist nicht möglich Quellcode durchlesen und verstehen
Schritt 1:
erstelle eine Datei Namens fn_changePlate.sqf
Code
Alles anzeigen/* Author: McKenzie Edit by: Natic Description: Allows to Customize the Number Plate of any Vehicle. */ params[ ["_myPlate","",[""]] ]; private["_query"]; private _myVehicle = CursorTarget; if (!(_myVehicle isKindOf "Car")) exitWith { hint format["Du kannst nur an Bodenfahrzeuge das Nummernschild verändern!"]; }; if (_myVehicle distance Player > 6) exitWith { hint format["Du stehst zu weit weg, um das Nummernschild zu verändern!"]; }; if (side player isEqualTo west) exitWith { hint format["Du bist im Dienst, lasse lieber die Finge davon"]; }; if (_myPlate isEqualTo " ") exitWith { hint format ["Das Nummernschild ist ungültig"]; }; life_action_inUse = true; _action = [ format ["Soll das Nummernschild permanent geändert werden?"], "Nummernschild - Generator", localize "STR_Global_Yes", localize "STR_Global_No" ] call BIS_fnc_guiMessage; private _oldPlate = getPlateNumber _myVehicle; if (_action) then { _query = format["SELECT FROM vehicles (plate) WHERE '%1'",_oldPlate]; diag_log format["Query: %1",_query]; waitUntil{!DB_Async_Active}; [_query,1] call DB_fnc_asyncCall; _query = format["INSERT INTO vehicles WHERE (plate) '%1'",_myplate]; diag_log format["Query: %1",_query]; waitUntil{!DB_Async_Active}; [_query,1] call DB_fnc_asyncCall; _myVehicle setPlateNumber _myPlate; hint format["Du hast dein Nummernschild erfolgreich von %1 in %2 umgemeldet",_oldPlate,_myPlate]; } else { _myVehicle setPlateNumber _myPlate; hint format["Du hast dein Nummernschild verändert!"]; };
Schritt 2:
erstelle eine Datei Namens fn_requestOwner.sqf
Code
Alles anzeigen/* Author: McKenzie Edit: Natic Description: Provides the Owner of the NumberPlate */ params [ ["_PlateNumber","",[""]] ]; private["_query","_owner","_plate"]; if (!(side player in [WEST,INDEPENDENT])) exitWith { hint format["Du hast keinen Zugang, zu einem Haltersystem"]; }; if (Vehicle player isEqualTo player) exitWith { hint format ["Du musst in einem Fahrzeug sitzen um den Bordcomputer bedienen zu können"]; }; if (_PlateNumber isEqualTo " ") exitWith { Hint format ["Ungültiges Nummernschild"]; }; _query = format["SELECT FROM vehicles (plate) WHERE '%1'",_plate]; diag_log format["Query: %1",_query]; waitUntil{!DB_Async_Active}; [_query,1] call DB_fnc_asyncCall; if (_plate == _PlateNumber) then { _query = format["SELECT FROM vehicles (owner) WHERE '%1'",_owner]; diag_log format["Query: %1",_query]; waitUntil{!DB_Async_Active}; [_query,1] call DB_fnc_asyncCall; hint format["Der Halter des Fahrzeuges ist: %1",_owner]; } else { hint format["Das Kennzeichen ist ungültig"]; };
Schritt 3:
erstelle eine Datei Namens fn_checkPlate.hpp
Code
Alles anzeigenclass checkPlate { idd =4001; movingenable = 0; class Controlsbackground { class TBackground: Life_RscText { idc = -1; x = 0.333298 * safezoneW + safezoneX; y = 0.346 * safezoneH + safezoneY; w = 0.335156 * safezoneW; h = 0.286 * safezoneH; colorBackground[] = {1,1,1,0.3}; colorActive[] = {1,1,1,0.3}; text = ""; }; class THeader: Life_RscText { idc = -1; text = "Straßenverkehrsamt - Halterabfrage"; //--- ToDo: Localize; x = 0.42 * safezoneW + safezoneX; y = 0.379 * safezoneH + safezoneY; w = 0.228 * safezoneW; h = 0.044 * safezoneH; colorText[] = {0,1,0,0.8}; colorBackground[] = {1,1,1,0}; colorActive[] = {1,1,1,0.3}; sizeEx = 0.06; }; }; class Controls { class TButton: Life_RscButton { idc = -1; text = "Schließen"; //--- ToDo: Localize; x = 0.572187 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0876563 * safezoneW; h = 0.033 * safezoneH; colorBorder[] = {0,1,0,0.3}; colorDisabled[] = {0,1,0,0.3}; colorBackground[] = {0,1,0,0.3}; colorBackgroundDisabled[] = {0,1,0,0.3}; colorBackgroundActive[] = {0,1,0,0.3}; colorFocused[] = {0,1,0,0.5}; colorActive[] = {0,1,0,0.5}; action = "closeDialog 0;"; }; class TButton2: Life_RscButton { idc = -1; text = "Überprüfen"; //--- ToDo: Localize; x = 0.45875 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0876563 * safezoneW; h = 0.033 * safezoneH; colorBorder[] = {0,1,0,0.3}; colorDisabled[] = {0,1,0,0.3}; colorBackground[] = {0,1,0,0.3}; colorBackgroundDisabled[] = {0,1,0,0.3}; colorFocused[] = {0,1,0,0.5}; colorBackgroundActive[] = {0,1,0,0.3}; colorActive[] = {0,1,0,0.5}; tooltip = "Bitte beachte, dass das Kennzeichen geklaut sein könnte"; //--- ToDo: Localize; action = "([ctrlText 5001]) call mis_fnc_requestOwner;closeDialog 0;"; }; class TPlateNumber: Life_RscEdit { idc = 5001; text = ""; x = 0.365937 * safezoneW + safezoneX; y = 0.467 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {1,1,1,0.8}; colorActive[] = {1,1,1,0.8}; }; }; };
Schritt 4:
Erstelle eine Datei Namens numberPlate.hpp
Code
Alles anzeigenclass numberPlate { idd =4000; movingenable = 0; class Controlsbackground { class TBackground: Life_RscText { idc = 2200; x = 0.333298 * safezoneW + safezoneX; y = 0.346 * safezoneH + safezoneY; w = 0.335156 * safezoneW; h = 0.286 * safezoneH; colorBackground[] = {1,1,1,0.3}; colorActive[] = {1,1,1,0.3}; text = ""; }; class THeader: Life_RscText { idc = 1000; text = "Nummernschild Generator"; //--- ToDo: Localize; x = 0.391094 * safezoneW + safezoneX; y = 0.379 * safezoneH + safezoneY; w = 0.228 * safezoneW; h = 0.044 * safezoneH; colorText[] = {0,1,0,0.8}; colorBackground[] = {1,1,1,0}; colorActive[] = {1,1,1,0.3}; sizeEx = 0.06; }; }; class Controls { class TButton: Life_RscButton { idc = 1600; text = "Schließen"; //--- ToDo: Localize; x = 0.572187 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0876563 * safezoneW; h = 0.033 * safezoneH; colorBorder[] = {0,1,0,0.3}; colorDisabled[] = {0,1,0,0.3}; colorBackground[] = {0,1,0,0.3}; colorBackgroundDisabled[] = {0,1,0,0.3}; colorBackgroundActive[] = {0,1,0,0.3}; colorFocused[] = {0,1,0,0.5}; colorActive[] = {0,1,0,0.5}; action = "closeDialog 0;"; }; class TButton3: Life_RscButton { idc = 1602; text = "Hilfe"; //--- ToDo: Localize; x = 0.345313 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0876563 * safezoneW; h = 0.033 * safezoneH; colorBorder[] = {0,1,0,0.3}; colorDisabled[] = {0,1,0,0.3}; colorBackground[] = {0,1,0,0.3}; colorBackgroundDisabled[] = {0,1,0,0.3}; colorBackgroundActive[] = {0,1,0,0.3}; colorFocused[] = {0,1,0,0.5}; colorActive[] = {0,1,0,0.5}; action = "Hint format [""mit diesem Werkzeug, kannst du das KFZ-Kennzeichen eines Autos manipulieren, dazu muss du nahe an das Auto heran und das Item nutzen. Beachte, dass du Kennzeichen von anderen Fahrzeugen nutzen kannst um deine Identität zu verschleiern. Leider haben nicht alle Arma 3 Autos ein Kennzeichen""];"; }; class TButton2: Life_RscButton { idc = 1601; text = "Anpassen"; //--- ToDo: Localize; x = 0.45875 * safezoneW + safezoneX; y = 0.577 * safezoneH + safezoneY; w = 0.0876563 * safezoneW; h = 0.033 * safezoneH; colorBorder[] = {0,1,0,0.3}; colorDisabled[] = {0,1,0,0.3}; colorBackground[] = {0,1,0,0.3}; colorBackgroundDisabled[] = {0,1,0,0.3}; colorFocused[] = {0,1,0,0.5}; colorBackgroundActive[] = {0,1,0,0.3}; colorActive[] = {0,1,0,0.5}; tooltip = "Bitte beachte, dass das Kennzeichen max 12 - 15 Zeichen haben sollte, weiterhin besitzen nicht alle Fahrzeuge ein sichtbares Kennzeichen!"; //--- ToDo: Localize; action = "([ctrlText 5000]) call mis_fnc_changePlate;closeDialog 0;"; }; class TPlateNumber: Life_RscEdit { idc = 5000; text = ""; x = 0.365937 * safezoneW + safezoneX; y = 0.467 * safezoneH + safezoneY; w = 0.273281 * safezoneW; h = 0.033 * safezoneH; colorBackground[] = {1,1,1,0.8}; colorActive[] = {1,1,1,0.8}; }; }; };
Schritt 5:
Erstelle eine Datei namens fn_getPlateNumber.sqf
Code
Alles anzeigen/* Author: McKenzie Edit by: Natic Description: gets the license Plate Number of Any Vehicle */ private _checkVehicle = CursorTarget; if ((Vehicle player != player) && (_checkVehicle distance player > 25) ) exitWith { hint format ["Du bist zu weit weg um das Kennzeichen eindeutig zu lesen."]; }; if ((_checkVehicle distance player > 20) && (!(currentWeapon player in ["Binocular", "Rangefinder"])) && (Vehicle player isEqualTo player)) exitWith { hint format ["Du bist zu weit weg um das Kennzeichen eindeutig zu lesen. Nehme ein Binocular oder einen Rangefinder in die Hand"]; }; if ((_checkVehicle distance player > 50) && (currentWeapon player in ["Binocular", "Rangefinder"]) && (Vehicle player isEqualTo player)) exitWith { hint format ["Du bist zu weit weg um das Kennzeichen eindeutig zu lesen."]; }; _checkVehiclePlate = getPlateNumber _checkVehicle; hint format ["Du konntest folgendes Kennzeichen entziffern: %1",_checkVehiclePlate];
Dinge wie Einträge in der Functions.hpp, Master_Handle.hpp und der rest sollte selbsterklärend sein
Weiterentwicklungen wie Items für Manipulation des Nummernschildes und oder das Abfragen via Knopfdruck sollte ebenfalls selbsterklärend sein, wenn man die SuFu von NN nutzt
Fragen?? Erst Sufu dann Kommentar
Mit freundlichen Grüßen Natic & XFireFighter
-
Risk kannst du gerne machen, ich werde mich aber noch heute dran setzen
Aber besser Zwei als keins
-
XFireFighter wir schreiben morgen mal via PN
-
XFireFighter kann ich gerne machen.
Doch zurzeit habe ich nur bedingt Zeit, da ich sehr viele Programmier Aufträge habe. Ich werde es versuchen noch diese Woche fertig zu machen