Also keine Ahnung aber eigentlich geht Spyglass ganz gut
man muss es halt nur richtig einstellen
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.
Also keine Ahnung aber eigentlich geht Spyglass ganz gut
man muss es halt nur richtig einstellen
Wichtig ist nur das du die Mods dann nicht auf der karte selbst aktivierst den sonst sieht es bald schlecht aus für deine Spieler
Richtig beim Karte bearbeiten die mods aus lassen
den Rest ist egal xD
Aber da du für ACE Module auf der Karte setzten musst gehts nicht ![]()
Aber bei z.b. einem Auto würde es gehn
Module auf der Map setzen und nach deinen wünschen einstellen
Nette Sache wenn ich jetzt Verwendung dafür hatte würde ich aber
Den 2 Parameter ändern das man die zeit beim aufrufen einstellt ![]()
1. Bei manchen Spielern buggen unsere (Mod)Fahrzeuge. Sie sind dann ca. 2km/h schnell und lassen sich nicht steuern. Dies tritt nur bei manchen Spielern auf und auch nicht immeru
Um was für Modfahrzeuge handelt es sich ?
2. Beim Ausloggen hat der Timer mehrere Nachkommastellen und vergeht teilweise nur langsam.
Bitte mal RPT Log so wie die fn_escInterupt.sqf anhängen
3. Wo gibt es eine Anleitung wie ich ACE3 auf dem Server richtig installiere?
Anleitung weiß Ich nicht da jeder das ACE anders haben möchte du musst Module auf der Karte Setzen um es einzustellen
4. Wie kann auch bei Mod-Fahrzeugen Farben über das Dropdown Menü anbieten?
Ist Möglich sagen wir mal z.b. bei Ivory
Auszug aus der config_vehicles.hpp
class ivory_veyron {
vItemSpace = 20;
price = 3975000;
textures[] = {
{ "Schwarz", "civ", {
"#(argb,8,8,3)color(0,0,0,1.0)"
} },
{ "Weiß", "civ", {
"#(argb,8,8,3)color(1,1,1,1.0)"
} },
{ "Rot", "civ", {
"#(argb,8,8,3)color(1,0,0,1.0)"
} },
{ "Blau", "civ", {
"#(argb,8,8,3)color(0,0,1,1.0)"
} },
{ "Grün", "civ", {
"#(argb,8,8,3)color(0,1,0.392,1.0)"
} },
{ "Orange", "civ", {
"#(argb,8,8,3)color(1,0.501,0,1.0)"
} },
{ "Gelb", "civ", {
"#(argb,8,8,3)color(1,1,0,1.0)"
} },
{ "Pink", "civ", {
"#(argb,8,8,3)color(1,0,0.498,1.0)"
} },
{ "Silber", "civ", {
"#(argb,8,8,3)color(0.752,0.752,0.752,1.0)"
} },
{ "Gold", "civ", {
"#(argb,8,8,3)color(0.854,0.843,0.125,1.0)"
} },
{ "Lila", "civ", {
"#(argb,8,8,3)color(0.368,0,1,1.0)"
} },
{ "Auqua", "civ",{
"#(argb,8,8,3)color(0,1,1,1.0)"
} }
};
};
Alles anzeigen
dan kann ich beim Händler die Farben wählen also musst du nur wir bei normalen Autos auch eintragen
mod signieren
Ja einmal
Bitte Log-Datei schicken...
Moin ich nutze die Version 4.5
wo zum Teufel gibt es die Version 4.5 ... ???
Also enpack die Task_force_radio_item.pbo
dan öffnest du die config.cpp
Beispiel such nach tf_anprc148jem
dan siest du das
class tf_anprc148jem: ItemRadio
{
author = "Raspu";
displayName = "AN/PRC-148 JEM";
descriptionShort = "AN/PRC-148 JEM personal radio 5km";
scope = 2;
scopeCurator = 2;
model = "\task_force_radio_items\models\tfr_anprc148";
picture = "\task_force_radio_items\anprc148jem\148_icon.paa";
tf_prototype = 1;
tf_range = 5000;
tf_dialog = "anprc148jem_radio_dialog";
tf_encryptionCode = "tf_guer_radio_code";
tf_dialogUpdate = "call TFAR_fnc_updateSWDialogToChannel;";
tf_subtype = "digital";
tf_parent = "tf_anprc148jem";
tf_additional_channel = 1;
};
Alles anzeigen
ander nun
tf_range = 5000; zu tf_range = 25000;
jetzt hatt das Funkgerät mit dem className
tf_anprc148jem
eine Reichweite von 25Km
Nimm dir das Impounden
dan änderst das er das Fahrzeug in der DB auf Alive 0 Setzt fertig ![]()
Dan ist das Auto Nach Server Restart Gelöscht
Ja mhhh ich glaube Performac = RIP
warum ???? in der fn_survival
wobei seit der 4.4 extra eine fn_playerSkin.sqf eingefürt wurde die meiner meinung nach Sehr Sehr gut Funktioniert
Sonst würde ich mal TS kommen wenn vorhanden
Schau mal wie die datei aufgerufen wird mit nem call oder spawn ?
wow jetzt bin ich verwirt
habe es mal bei mir getestet und
habe noch was geändert
bitte testen
#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.
//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_rs4","Ivory_m3"])) 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;
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];
};
};
//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_rs4","Ivory_m3"]) 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];
};
[1,_spawntext] remoteExecCall ["life_fnc_broadcast",_unit];
serv_sv_use deleteAt _servIndex;
Alles anzeigen