hast mal ein rpt log bitte
Beiträge von br1zey
-
-
naja ich habe die fiele mal bearbeitet probiers mal bitte
C: fn_vehicleShopbuy.sqf
Alles anzeigen#include "..\..\script_macros.hpp" /* File: fn_vehicleShopBuy.sqf Author: Bryan "Tonic" Boardwine Description: Does something with vehicle purchasing. */ private["_mode","_vIndex","_spawnPoints","_className","_purchasePrice","_buyMultiplier","_rentMultiplier","_colorIndex","_spawnPoint","_vehicle","_vehicleList","_shopSide","_licenses","_licensesName","_exit","_initalPrice"]; _mode = _this select 0; _exit = false; if ((lbCurSel 2302) isEqualTo -1) exitWith {hint localize "STR_Shop_Veh_DidntPick";closeDialog 0;}; _className = lbData[2302,(lbCurSel 2302)]; _vIndex = lbValue[2302,(lbCurSel 2302)]; _vehicleList = M_CONFIG(getArray,"CarShops",(life_veh_shop select 0),"vehicles"); _shopSide = M_CONFIG(getText,"CarShops",(life_veh_shop select 0),"side"); _licenses = switch (playerSide) do { case civilian: {(M_CONFIG(getArray,"LifeCfgVehicles",_className,"licenses") select 0)}; case west: {(M_CONFIG(getArray,"LifeCfgVehicles",_className,"licenses") select 1)}; case independent: {(M_CONFIG(getArray,"LifeCfgVehicles",_className,"licenses") select 2)}; case east: {(M_CONFIG(getArray,"LifeCfgVehicles",_className,"licenses") select 3)}; }; _initalPrice = M_CONFIG(getNumber,"LifeCfgVehicles",_className,"price"); switch (playerSide) do { case civilian: { _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_CIVILIAN"); _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_CIVILIAN"); }; case west: { _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_COP"); _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_COP"); }; case independent: { _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_MEDIC"); _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_MEDIC"); }; case east: { _buyMultiplier = LIFE_SETTINGS(getNumber,"vehicle_purchase_multiplier_OPFOR"); _rentMultiplier = LIFE_SETTINGS(getNumber,"vehicle_rental_multiplier_OPFOR"); }; }; if (_mode) then { _purchasePrice = round(_initalPrice * _buyMultiplier); } else { _purchasePrice = round(_initalPrice * _rentMultiplier); }; _colorIndex = lbValue[2304,(lbCurSel 2304)]; _licensesName = ""; { if (!(_x isEqualTo "") && {!(LICENSE_VALUE(_x,_shopSide))}) then { _licensesName = _licensesName + localize M_CONFIG(getText,"Licenses",_x,"displayName") + "<br/>"; _exit = true; }; } forEach _licenses; if (_exit) exitWith {hint parseText format[(localize "STR_Shop_Veh_NoLicense")+ "<br/><br/>%1",_licensesName];closeDialog 0;}; if (_purchasePrice < 0) exitWith {closeDialog 0;}; //Bad price entry if (CASH < _purchasePrice) exitWith {hint format[localize "STR_Shop_Veh_NotEnough",[_purchasePrice - CASH] call life_fnc_numberText];closeDialog 0;}; _spawnPoints = life_veh_shop select 1; _spawnPoint = ""; if (((life_veh_shop select 0) == "med_air_hs")) then { if ((nearestObjects[(getMarkerPos _spawnPoints),["Air"],35]) isEqualTo []) exitWith {_spawnPoint = _spawnPoints}; } else { //Check if there is multiple spawn points and find a suitable spawnpoint. if (_spawnPoints isEqualType []) then { //Find an available spawn point. {if ((nearestObjects[(getMarkerPos _x),["Car","Ship","Air"],5]) isEqualTo []) exitWith {_spawnPoint = _x};} forEach _spawnPoints; } else { if ((nearestObjects[(getMarkerPos _spawnPoints),["Car","Ship","Air"],5]) isEqualTo []) exitWith {_spawnPoint = _spawnPoints}; }; }; if (_spawnPoint isEqualTo "") exitWith {hint localize "STR_Shop_Veh_Block";closeDialog 0;}; CASH = CASH - _purchasePrice; [0] call SOCK_fnc_updatePartial; hint format[localize "STR_Shop_Veh_Bought",getText(configFile >> "CfgVehicles" >> _className >> "displayName"),[_purchasePrice] call life_fnc_numberText]; //Spawn the vehicle and prep it. if ((life_veh_shop select 0) == "med_air_hs") then { _vehicle = createVehicle [_className,[0,0,999],[], 0, "NONE"]; waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait? _vehicle allowDamage false; _hs = nearestObjects[getMarkerPos _spawnPoint,["Land_Hospital_side2_F"],50] select 0; _vehicle setPosATL (_hs modelToWorld [-0.4,-4,12.65]); sleep 0.6; } else { _vehicle = createVehicle [_className, (getMarkerPos _spawnPoint), [], 0, "NONE"]; waitUntil {!isNil "_vehicle" && {!isNull _vehicle}}; //Wait? _vehicle allowDamage false; //Temp disable damage handling.. _vehicle setPos (getMarkerPos _spawnPoint); _vehicle setVectorUp (surfaceNormal (getMarkerPos _spawnPoint)); _vehicle setDir (markerDir _spawnPoint); }; _vehicle lock 2; [_vehicle,_colorIndex] call life_fnc_colorVehicle; [_vehicle] call life_fnc_clearVehicleAmmo; [_vehicle,"trunk_in_use",false,true] remoteExecCall ["TON_fnc_setObjVar",RSERV]; [_vehicle,"vehicle_info_owners",[[getPlayerUID player,profileName]],true] remoteExecCall ["TON_fnc_setObjVar",RSERV]; _vehicle disableTIEquipment true; //No Thermals.. They're cheap but addictive. _Ivory = ["Ivory_rs4","Ivory_m3"]; //Side Specific actions. switch (playerSide) do { case west: { [_vehicle,"cop_offroad",true] spawn life_fnc_vehicleAnimate; }; case civilian: { if ((life_veh_shop select 2) isEqualTo "civ" && {_className == "B_Heli_Light_01_F"}) then { [_vehicle,"civ_littlebird",true] spawn life_fnc_vehicleAnimate; }; if ((life_veh_shop select 2) isEqualTo "civ" && {_className in _Ivory}) then { _vehicle animate["spoiler",1]; [_vehicle, "HeheCom"] call ivory_fnc_setLicense; [_vehicle, ["","Matte"], "Red", 1, 1] call ivory_fnc_initVehicle; }; }; case independent: { [_vehicle,"med_offroad",true] spawn life_fnc_vehicleAnimate; }; }; _vehicle allowDamage true; life_vehicles pushBack _vehicle; //Always handle key management by the server [getPlayerUID player,playerSide,_vehicle,1] remoteExecCall ["TON_fnc_keyManagement",RSERV]; if (_mode) then { if (!(_className in (LIFE_SETTINGS(getArray,"vehicleShop_rentalOnly")))) then { if (life_HC_isActive) then { [(getPlayerUID player),playerSide,_vehicle,_colorIndex] remoteExecCall ["HC_fnc_vehicleCreate",HC_Life]; } else { [(getPlayerUID player),playerSide,_vehicle,_colorIndex] remoteExecCall ["TON_fnc_vehicleCreate",RSERV]; }; }; }; if (LIFE_SETTINGS(getNumber,"player_advancedLog") isEqualTo 1) then { if (LIFE_SETTINGS(getNumber,"battlEye_friendlyLogging") isEqualTo 1) then { advanced_log = format [localize "STR_DL_AL_boughtVehicle_BEF",_className,[_purchasePrice] call life_fnc_numberText,[CASH] call life_fnc_numberText,[BANK] call life_fnc_numberText]; } else { advanced_log = format [localize "STR_DL_AL_boughtVehicle",profileName,(getPlayerUID player),_className,[_purchasePrice] call life_fnc_numberText,[CASH] call life_fnc_numberText,[BANK] call life_fnc_numberText]; }; publicVariableServer "advanced_log"; }; closeDialog 0; //Exit the menu. true;und
C: fn_spawnVehicle.sqf
Alles anzeigen#include "\life_server\script_macros.hpp" /* File: fn_spawnVehicle.sqf Author: Bryan "Tonic" Boardwine Description: 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["_query","_sql","_vehicle","_nearVehicles","_name","_side","_tickTime","_servIndex","_damage","_wasIllegal","_location","_thread"]; params [ ["_vid",-1,[0]], ["_pid","",[""]], ["_sp",[],[[],""]], ["_unit",objNull,[objNull]], ["_price",0,[0]], ["_dir",0,[0]], ["_spawntext","",[""]] ]; _unit_return = _unit; _name = name _unit; _side = side _unit; _unit = owner _unit; if (_vid isEqualTo -1 || _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,"STR_Garage_SQLError_Destroyed",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit]; }; if ((_vInfo select 6) isEqualTo 1) exitWith { serv_sv_use deleteAt _servIndex; [1,"STR_Garage_SQLError_Active",true,[_vInfo select 2]] remoteExecCall ["life_fnc_broadcast",_unit]; }; if (!(_sp isEqualType "")) then { _nearVehicles = nearestObjects[_sp,["Car","Air","Ship"],10]; } else { _nearVehicles = []; }; if (count _nearVehicles > 0) exitWith { serv_sv_use deleteAt _servIndex; [_price,_unit_return] remoteExecCall ["life_fnc_garageRefund",_unit]; [1,"STR_Garage_SpawnPointError",true] 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; [1,"STR_NOTF_BlackListedVehicle",true,[_location,_name]] 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]; }; }; _Ivory = ["Ivory_rs4","Ivory_m3"]; //Sets of animations if ((_vInfo select 1) isEqualTo "civ" && (_vInfo select 2) isEqualTo "B_Heli_Light_01_F" && !((_vInfo select 8) isEqualTo 13)) then { [_vehicle,"civ_littlebird",true] remoteExecCall ["life_fnc_vehicleAnimate",_unit]; }; if ((_vInfo select 1) isEqualTo "civ" && (_vInfo select 2) in _Ivory) then { _vehicle animate["spoiler",1]; [_vehicle, "HeheCom"] call ivory_fnc_setLicense; [_vehicle, ["","Matte"], "Red", 1, 1] call ivory_fnc_initVehicle; }; 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]; }; this animate["spoiler",1]; [this, ["","Matte"], "Red", 1, 1] call ivory_fnc_initVehicle; [this, "HeheCom"] call ivory_fnc_setLicense; [1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit]; serv_sv_use deleteAt _servIndex; -
zeiog mal deine Datei
-
hier ein Beispiel
aus der VehicleShopbuy.sqf
C
Alles anzeigen_Ivory = ["className","className"]; case civilian: { if ((life_veh_shop select 2) isEqualTo "civ" && {_className in _Ivory}) then { _vehicle animate["spoiler",1]; [_vehicle, "ayylmao"] call ivory_fnc_setLicense; [_vehicle, ["Red","Matte"], "Red", 1, 1] call ivory_fnc_initVehicle; }; }; -
-
Dan hast du aber das Problem wenn Person 1 was abgehoben hat kann Person 2 Die auf der anderen Seite der Karte für 5 Sec nichts abheben
die Idee an sich ist gut aber würde vielleicht mit ne Variable auf den Spieler setzten die nach 10Sec auf false gesetzt wird
oder noch einfacher
in Zeile 21
Code_time = random [1,3,4]; hint "Bitte warten (bis zu 5 sek) wärend das Geld abgehoben wird"; uiSleep _time;einfügen
-
Welche Altis Version hast du ?
-
Wow war am schreiben da hast du das abgeschickt ....
-
nein dan spanst du an den markern
was das macht ist nur das er den Spieler in ein haus spant auf altis aber die Häuser gibt es auf Australia ja nicht also stehst du auf der spawn Insel
-
-
Lösche mal
Bashciv_spawn_1 = nearestObjects[getMarkerPos "civ_spawn_1", ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"],250]; civ_spawn_2 = nearestObjects[getMarkerPos "civ_spawn_2", ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"],250]; civ_spawn_3 = nearestObjects[getMarkerPos "civ_spawn_3", ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"],250]; civ_spawn_4 = nearestObjects[getMarkerPos "civ_spawn_4", ["Land_i_Shop_01_V1_F","Land_i_Shop_01_V2_F","Land_i_Shop_01_V3_F","Land_i_Shop_02_V1_F","Land_i_Shop_02_V2_F","Land_i_Shop_02_V3_F"],250];aus der initCiv
dan sollte auch das civ Spawn gehn
-
initciv.sqf bitte
-
wenn müstest du das in
fn_verhicleShopbuy.sqf
und
fn_spawnVehicle.sqf eintragen
dazu würde ich aber noch eine abfrage einbauen für die Fahrzeuge bei denen das gesetzt werden soll

so das es nicht z.b. auch auf dem Hunter oder so gesetzt wird
-
und als civ mit dem Spawn auf welcher Map ????? wenn es nicht Altis ist zeig bitte mal deine
initCiv.sqf
-
mhhhh ich würde sagen dazu musst du ne Mod machen wie z.b. die Talon Backpacks für Taskforce
aber da währe es doch einfacher gleich beim Kleine Funkgerät die Reichweiter zu ändern
-
das wird so nicht gehn ...
mach erstmal ein Z-Item z.b. Zamak Baukasten den du craften kannst
wenn du den hast musst du nur noch dem Baukasten Beim Benutzen Funktion fürs spawn + in die DB schreiben setzten
-
mhhh ich würde sagen Neue kleidung in den schop mit classname
und dan schau mal in die
fn_playerSkins.sqf
ist seit der 4.4 standart drine
-
-
Ja wenn er aber z.b. die kenzeichen nur umschreiben will z.b. server name geht das da
aber um die anderen sachen wie farbe ect würde ich halt auch nicht mit den dummen variablen machen sonder über das eingebaute system
-
Dan würdest du die aber immer und immer weider geben wenn der Person stirbt un neu Spawnt
Könntest auch ein NPC stellen wo man die abholen muss