ist dich schon erledigt ... habs ja noch hinbekommen ..
Beiträge von Tronic
-
-
und genau das habe ich auch nun rausgefunden ... aber danke trotzdem ...
-
Guten Morgen ..
Folgendes:
Habe IGload auf dem server ... funtioniert alles wunderbar. Nur die Boxen machen mich wahnsinnig, Kaufen, Schlüssel, "T" inventar usw alles funktioniert, nur habe ich das problem das ich die 2 Kisten - Land_CargoBox_V1_F und Land_Cargo20_blue_F nicht wieder aus der garrage abrufen kann bzw sie mir dort nicht angezeigt werden ..
Sie werden in der datenbank gespeichert als type: "ThingX" (habe ich so eingestellt)
und ich kann sie auch an der garage einparken .... nur bekomme ich es nicht hin das sie nun von der Datenbank in der garage angezeigt werden Bzw. wieder abgerufen werden können ..Jemand eine Idee ??
Meine fn_spawnVehicle.sqf
Spoiler anzeigen
#include "\life_server\script_macros.hpp"
/*
File: fn_spawnVehicle.sqf
Author: Bryan "Tonic" BoardwineDescription:
Sends the query request to the database, if an array is returned then it creates
the vehicle if it's not in use or dead.
*/
private["_vid","_sp","_pid","_query","_sql","_vehicle","_nearVehicles","_name","_side","_tickTime","_dir","_servIndex","_damage","_wasIllegal","_location","_thread"];
_vid = [_this,0,-1,[0]] call BIS_fnc_param;
_pid = [_this,1,"",[""]] call BIS_fnc_param;
_sp = [_this,2,[],[[],""]] call BIS_fnc_param;
_unit = [_this,3,ObjNull,[ObjNull]] call BIS_fnc_param;
_price = [_this,4,0,[0]] call BIS_fnc_param;
_dir = [_this,5,0,[0]] call BIS_fnc_param;
_spawntext = _this select 6;
_unit_return = _unit;
_name = name _unit;
_side = side _unit;
_unit = owner _unit;if (_vid isEqualTo -1 II _pid isEqualTo "") exitWith {};
if (_vid in serv_sv_use) exitWith {};
serv_sv_use pushBack _vid;
_servIndex = serv_sv_use find _vid;_query = format["SELECT id, side, classname, type, pid, alive, active, plate, color, inventory, gear, fuel, damage, blacklist FROM vehicles WHERE id='%1' AND pid='%2'",_vid,_pid];
_tickTime = diag_tickTime;
_queryResult = [_query,2] call DB_fnc_asyncCall;if (EXTDB_SETTING(getNumber,"DebugMode") isEqualTo 1) then {
diag_log "------------- Client Query Request -------------";
diag_log format["QUERY: %1",_query];
diag_log format["Time to complete: %1 (in seconds)",(diag_tickTime - _tickTime)];
diag_log format["Result: %1",_queryResult];
diag_log "------------------------------------------------";
};if (_queryResult isEqualType "") exitWith {};
_vInfo = _queryResult;
if (isNil "_vInfo") exitWith {serv_sv_use deleteAt _servIndex;};
if (count _vInfo isEqualTo 0) exitWith {serv_sv_use deleteAt _servIndex;};if ((_vInfo select 5) isEqualTo 0) exitWith {
serv_sv_use deleteAt _servIndex;
[1,format[(localize "STR_Garage_SQLError_Destroyed"),(_vInfo select 2)]] remoteExecCall ["life_fnc_broadcast",_unit];
};if ((_vInfo select 6) isEqualTo 1) exitWith {
serv_sv_use deleteAt _servIndex;
[1,format[(localize "STR_Garage_SQLError_Active"),(_vInfo select 2)]] remoteExecCall ["life_fnc_broadcast",_unit];
};if (!(_sp isEqualType "")) then {
_nearVehicles = nearestObjects[_sp,["Car","Air","Ship","ThingX"],10];
} else {
_nearVehicles = [];
};if (count _nearVehicles > 0) exitWith {
serv_sv_use deleteAt _servIndex;
[_price,_unit_return] remoteExecCall ["life_fnc_garageRefund",_unit];
[1,(localize "STR_Garage_SpawnPointError")] remoteExecCall ["life_fnc_broadcast",_unit];
};_query = format["UPDATE vehicles SET active='1', damage='""[]""' WHERE pid='%1' AND id='%2'",_pid,_vid];
_trunk = [(_vInfo select 9)] call DB_fnc_mresToArray;
_gear = [(_vInfo select 10)] call DB_fnc_mresToArray;
_damage = [(_vInfo select 12)] call DB_fnc_mresToArray;
_wasIllegal = (_vInfo select 13);
_wasIllegal = if (_wasIllegal isEqualTo 1) then { true } else { false };[_query,1] call DB_fnc_asyncCall;
if (_sp isEqualType "") then {
_vehicle = createVehicle[(_vInfo select 2),[0,0,999],[],0,"NONE"];
waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
_vehicle allowDamage false;
_hs = nearestObjects[getMarkerPos _sp,["Land_Hospital_side2_F"],50] select 0;
_vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]);
uiSleep 0.6;
} else {
_vehicle = createVehicle [(_vInfo select 2),_sp,[],0,"NONE"];
waitUntil {!isNil "_vehicle" && {!isNull _vehicle}};
_vehicle allowDamage false;
_vehicle setPos _sp;
_vehicle setVectorUp (surfaceNormal _sp);
_vehicle setDir _dir;
};
_vehicle allowDamage true;
//Send keys over the network.
[_vehicle] remoteExecCall ["life_fnc_addVehicle2Chain",_unit];
[_pid,_side,_vehicle,1] call TON_fnc_keyManagement;
_vehicle lock 2;
//Reskin the vehicle
[_vehicle,(_vInfo select 8)] remoteExecCall ["life_fnc_colorVehicle",_unit];
_vehicle setVariable["vehicle_info_owners",[[_pid,_name]],true];
_vehicle setVariable["dbInfo",[(_vInfo select 4),(_vInfo select 7)],true];
_vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive.
[_vehicle] call life_fnc_clearVehicleAmmo;// Avoid problems if u keep changing which stuff to save!
if (LIFE_SETTINGS(getNumber,"save_vehicle_virtualItems") isEqualTo 1) then {
_vehicle setVariable["Trunk",_trunk,true];
if (_wasIllegal) then {
if (_sp isEqualType "") then {
_location= (nearestLocations [getPos _sp,["NameCityCapital","NameCity","NameVillage"],1000]) select 0;
} else {
_location= (nearestLocations [_sp,["NameCityCapital","NameCity","NameVillage"],1000]) select 0;
};
_location = text _location;
_msg = format[localize "STR_NOTF_BlackListedVehicle", _location ,_name];[1,_msg,false] remoteExecCall ["life_fnc_broadcast",west];
_query = format["UPDATE vehicles SET blacklist='0' WHERE id='%1' AND pid='%2'",_vid,_pid];
_thread = [_query,1] call DB_fnc_asyncCall;
};
}else{
_vehicle setVariable["Trunk",[[],0],true];
};if (LIFE_SETTINGS(getNumber,"save_vehicle_fuel") isEqualTo 1) then {
_vehicle setFuel (_vInfo select 11);
}else{
_vehicle setFuel 1;
};if (count _gear > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_inventory") isEqualTo 1)) then {
_items = _gear select 0;
_mags = _gear select 1;
_weapons = _gear select 2;
_backpacks = _gear select 3;for "_i" from 0 to ((count (_items select 0)) - 1) do {
_vehicle addItemCargoGlobal [((_items select 0) select _i), ((_items select 1) select _i)];
};
for "_i" from 0 to ((count (_mags select 0)) - 1) do {
_vehicle addMagazineCargoGlobal [((_mags select 0) select _i), ((_mags select 1) select _i)];
};
for "_i" from 0 to ((count (_weapons select 0)) - 1) do {
_vehicle addWeaponCargoGlobal [((_weapons select 0) select _i), ((_weapons select 1) select _i)];
};
for "_i" from 0 to ((count (_backpacks select 0)) - 1) do {
_vehicle addBackpackCargoGlobal [((_backpacks select 0) select _i), ((_backpacks select 1) select _i)];
};
};if (count _damage > 0 && (LIFE_SETTINGS(getNumber,"save_vehicle_damage") isEqualTo 1)) then {
_parts = getAllHitPointsDamage _vehicle;for "_i" from 0 to ((count _damage) - 1) do {
_vehicle setHitPointDamage [format["%1",((_parts select 0) select _i)],_damage select _i];
};
};//Sets of animations
if ((_vInfo select 1) isEqualTo "civ" && (_vInfo select 2) isEqualTo "B_Heli_Light_01_F" && !((_vInfo select isEqualTo 13)) then {
[_vehicle,"civ_littlebird",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
};if ((_vInfo select 1) isEqualTo "cop" && ((_vInfo select 2)) in ["C_Offroad_01_F","B_MRAP_01_F","C_SUV_01_F","C_Hatchback_01_sport_F","B_Heli_Light_01_F","B_Heli_Transport_01_F"]) then {
[_vehicle,"cop_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
};if ((_vInfo select 1) isEqualTo "med" && (_vInfo select 2) isEqualTo "C_Offroad_01_F") then {
[_vehicle,"med_offroad",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit];
};[1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
serv_sv_use deleteAt _servIndex;meine fn_vehicleCreate.sqf
Spoiler anzeigen
/*
File: fn_vehicleCreate.sqf
Author: Bryan "Tonic" BoardwineDescription:
Answers the query request to create the vehicle in the database.
*/
private["_uid","_side","_type","_classname","_color","_plate"];
_uid = [_this,0,"",[""]] call BIS_fnc_param;
_side = [_this,1,sideUnknown,[west]] call BIS_fnc_param;
_vehicle = [_this,2,ObjNull,[ObjNull]] call BIS_fnc_param;
_color = [_this,3,-1,[0]] call BIS_fnc_param;//Error checks
if (_uid isEqualTo "" II _side isEqualTo sideUnknown II isNull _vehicle) exitWith {};
if (!alive _vehicle) exitWith {};
_className = typeOf _vehicle;
_type = switch (true) do {
case (_vehicle isKindOf "Car"): {"Car"};
case (_vehicle isKindOf "Air"): {"Air"};
case (_vehicle isKindOf "Ship"): {"Ship"};
case (_vehicle isKindOf "ThingX"): {"ThingX"};
};_side = switch (_side) do {
case west:{"cop"};
case civilian: {"civ"};
case independent: {"med"};
default {"Error"};
};_plate = round(random(1000000));
[_uid,_side,_type,_classname,_color,_plate] call DB_fnc_insertVehicle;_vehicle setVariable["dbInfo",[_uid,_plate],true];
Danke schonmal
-
JA also das selbe Menü einfach ind den civ Ordner packen und aufrufen lassen .. und halt gewissen knöpfe anpassen bzw ausblenden ?.!
-
Guten tag ... und zwar hab ich das Problem das wenn Rebellen Spieler festnehmen es kein Menü gibt oder sich öffnet wie bei den Polizisten .. Also das interaktionsmenü ...
Komisch war auch das bei der 4.4R3 nicht drin war das civs festnehmen können ...Das musste ich selbst einstellen.
Wieleicht weiß ja jemand wie ich es hinbekommen das rebellen (civs) auch das interaktions Menü bekommen wenn jemand gefesselt ist
-
[] call life_fnc_gangWithdraw";
-
life_gangCooldown = true;
sleep 5;
life_gangCooldown = false;Er sagt mir
allgemeiner fehler im ausdruck ... Bei sleep ????
-
Werde es mal ausprobieren ... nur denke die este variante ist interessnter .. da bei der 2. variante ja trozdem 2 spieler abholen können .. !! somit ist der bug ja immernoch aktiv .. !! aber danke an beide
-
Guten tag ... Undzwar gibt es ja in Altis Momentan den Bug das wenn man mit 2 leuten und nem Speedklicker was vom gangkonto holt das ged dupliziert wird .. möchte diese funktion gerne drin lassen .. allerdings sobald man was vom gängkonto holt eine abfrage einfügen um das speedklicken zu umgehen ,, !!! nur habe ich damit nicht viel erfahrung ..
Vieleicht kann ja jemand helfen .. DANKE
-
Habe alles so gemacht .. mein problem , die alte statusbar wir noch angezeigt Kann einer helfen ?
-
Das ist bei mir genaus so der Fall! Keine Fehlermeldung nichts... man kann ganz einfach spawnen eben ohne den gewünschten Effekt!Erbitte Hilfe !!!
Vielen Dank @Killarobo @alleandernnatürlichauch
EDIT : Gefixt
In der fn_spawnConfirm.sqf bei Zeile 57-60if(life_firstSpawn) then {
life_firstSpawn = false;
[] call life_fnc_welcomeNotification;
};DAS AUSKOMMENTIERT MIT//
also bei mir unter der Version 4.4R3 Funktioniert es problemlos ... Wichtig ist nur wie im Zitat
In der fn_spawnConfirm.sqf bei Zeile 57-60 ausklammern.
und in der description.ext alle #include nicht zu ersetzen , erst darunter den rest einfügen aus dem tutorial .. !!