Uisleep/sleep gehen.
The script, whether it is a file or a code, will run in scheduled environment, i.e. it is ok to use sleep.
Schön, dass du den Weg zu NodeZone.net gefunden hast! Aktuell bist du nicht angemeldet und kannst deshalb nur eingeschränkt auf unsere Community zugreifen. Um alle Funktionen freizuschalten, spannende Inhalte zu entdecken und dich aktiv einzubringen, registriere dich jetzt kostenlos oder melde dich mit deinem Account an.
Uisleep/sleep gehen.
The script, whether it is a file or a code, will run in scheduled environment, i.e. it is ok to use sleep.
Ah, moment....
Da das Objekt noch keinen Variablen Status hat, wird ja false gesetzt.
Hab's gedreht, nun sollte es gehen.
this addAction ["Takker", {_this param[0,ObjNull] setvariable ["soundoff",false,true];[_this param[0,ObjNull], "taker_sound"] call life_fnc_globalSound; uisleep 10;_this param[0,ObjNull] setvariable ["soundoff",true,true]},"",0,false,false,"",'_this param[0,ObjNull] getvariable ["soundoff",true];'];
Mal ein schuss ins blaue. Die addaction ist für 10 sekunden (uisleep 10) unsichtbar.
this addAction ["Takker", {_this param[0,ObjNull] setvariable ["soundon",true,true];[_this param[0,ObjNull], "taker_sound"] call life_fnc_globalSound; uisleep 10;_this param[0,ObjNull] setvariable ["soundon",false,true]},"",0,false,false,"",'_this param[0,ObjNull] getvariable ["soundon",false];'];
Im Paycheck hab ich sowas simples drin:
if (player distance life_pos > 1.5) then {...};
life_pos = getposATL player;
Moin,
did you fixed the random license plate, too?
Ja, weil das Script beim init mit einem Error (params array nicht plausibel) beendet wird.
Gerne auch ohne Meldung in den logs.
_queryResult params [
"_id",
"_name",
"_pid",
"_data",
"_timestamp",
"_phone_nr",
"_orig_name" <<<<<<<<<<<<<<<<-------------------------------
"_cash",
"_bank",
"_licenses",
"_arrested",
"_gear",
"_stats",
"_alive",
"_position",
"_coplevel",
"_blacklist",
"_mediclevel",
"_blueprints",
"_listings",
"_servicenumber"
];
private _return = [];
Alles anzeigen
Da fehlt ein KOMMA.
Ich gehe jetzt davon aus, das die fn_queryRequest.sqf entsprechend in der config.cpp vom Life_Server klassifiziert ist.
Dann würde ich darauf tippen, dass das Script wegen der unbekannten variable remoteExecutedOwner einen Serverseitigen error verursacht und deshalb das Script nicht geht.
private _ownerID = remoteExecutedOwner;
if (_ownerID isEqualTo 0) exitWith {};
Oh ja, hab mir das zweite File nicht richtig angeguckt.
Wo wird denn remoteExecutedOwner für den Server gesetzt?
bah, müll...
zu warm....
Es ist nicht relevant ob du mit einer Information auf eine echte natürliche Person zurückschließen kannst, lediglich ob diese Information dazu benutzen kannst eine Person eindeutig zu Identifizieren, dieses Merkmal erfüllt die Steam ID und daher fällt sie in die Gruppe der Personenebezogenen Daten.
Moin,
wenn die Speicherung der UID/GUID als Personen bezogen bewertet wird, dann kann man die Server Bannlisten in die Tonne treten, oder?
Ja, kannst Du auch via init klären, z.B. mit einer typeOf abfrage ob es das richtige Fahrzeug ist, wo das Horn wiedergegeben werden soll.
init.sqf
if(isNil "fox_hornsound") then {fox_hornsound = false}; // variable setzen
if(fox_hornsound) exitwith {}; // script schon mal geladen worden
if(isNil "fox_hornkey") then {fox_hornkey = 21}; // Kunde kann eigenen Key definieren via mission
fox_hornsound = true; // script geladen
fox_deh= (findDisplay 46) displayAddEventHandler ["KeyDown",
{
if (_this isEqualTo fox_hornkey && (typeOf (vehicle player)) IN ["Fox_1","Fox_2"] && (driver (vehicle player)) isEqualTo player ) then
{
_timeCurrent = time;
while {_timeCurrent < 0.2} do
{
_timeCurrent = _timeCurrent - time;
playSound3D ["A3\Sounds_F\sfx\blip1.wav",(vehicle player)];
};
};
};
];
Alles anzeigen
Ist ein Schuss ins blaue:
class Soundplay
{
displayName="<t color=""#ffff00"">Soundplay</t>";
position="PIP0_pos";
radius=1;
onlyForPlayer=1;
condition="Alive(this) && isEngineOn this && (driver this) isEqualTo player";
statement="[this] spawn deinsoundscript;";
shortcut="LeanLeft"; // z.B. Q Taste
showWindow=0;
hideOnUse=0;
};
Alles anzeigen
init.sqf:
deinsoundscript =
{
if(isNil "fox_playsound") then {fox_playsound=false};
if(fox_playsound) exitwith {};
private _veh = _this;
fox_deh= (findDisplay 46) displayAddEventHandler ["KeyDown",{
if (_this == 21) then {
fox_playsound = true;
_timeCurrent = time;
while {_timeCurrent < 0.2} do {
_timeCurrent = _timeCurrent - time;
playSound3D ["A3\Sounds_F\sfx\blip1.wav",_veh];
};
};
fox_deh2 = (findDisplay 46) displayAddEventHandler ["KeyUp",{
if (_this == 21) then {
uisleep 0.3
(findDisplay 46) displayRemoveEventHandler ["KeyDown",fox_deh];
(findDisplay 46) displayRemoveEventHandler ["KeyUp",fox_deh2];
fox_deh = nil;
fox_deh2 = nil;
fox_playsound = false;
};
};
publicVariable "deinsoundscript";
Alles anzeigen
Ein Weg wäre auch via Useraction im MOD.
class Soundplay
{
displayName="<t color=""#ffff00"">Soundplay</t>";
position="PIP0_pos";
radius=1;
onlyForPlayer=1;
condition="Alive(this) && isEngineOn this && (driver this) isEqualTo player && !(this getvariable ['deinesoundvar',false])";
statement="[this] spawn deinsoundscript;";
shortcut="LeanLeft"; // z.B. Q Taste
showWindow=0;
hideOnUse=0;
};
Alles anzeigen
so etwas ist nicht gut:
20:51:54 Warning Message: You cannot play/edit this mission; it is dependent on downloadable content that has been deleted.
a3_characters_f
ab hier wird's interessant:
21:49:50 Attempt to override final function - bis_fnc_controlpoint_edenunregisteredfromworld
21:49:50 Attempt to override final function - tfar_fnc_sendplayerinfo
21:49:50 Attempt to override final function - ace_disarming_fnc_verifymagazinesmoved
...
Alles anzeigen
Es sieht so aus, als ob ein Kopierschutz aktiviert wird und ein script nach dem anderen überschrieben wird.
Ich vertsehe es eher so, dass wenn die publicVariable zu oft im kurzen Zeitraum geändert wird, dann geht das auf die Performance oder kann zu Fehlern führen.
Ist auch nachvollziehbar, da jede Änderung an alle gesendet wird und wenn es bei einem nicht rechtzeit ankommt, dann hat dieser halt noch den alten Stand der Variable.
Dieser Bug mit dem Fahrersitz ist bei uns seit einem Update im Sommer aufgetaucht.
Der Platz wird einfach vom Server als belegt durch eine unbekannten Person markiert, daher kann man diesen Platz nicht im Scrollmenü auswählen.
Wir haben einen Hotfix dafür, dass man via WIN-Menü auf den ersten freien Platz einsteigen kann.
Man landet dann auf dem Fahrersitz und dann geht alles wieder normal.
moveInAny <- klick mich
Scrollmenü kann z.B. durch ACE Medical abgeschaltet werden, es kommt vor, das die Bedingungen für die Reaktivierung nicht erfüllt werden.