Ich schick es dir demnächst privat.
Mach es doch öffentlich...
Oder erweitere das Tutorial oder so...
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.
Ich schick es dir demnächst privat.
Mach es doch öffentlich...
Oder erweitere das Tutorial oder so...
[...] Hat schon jemand eine lösung gefunden die Fahrzeugskins anzeigen zu lassen ?. [...]
Direkt über deiner Frage:
Aber schon mal sehr nett von dir, das du es überhaupt machst
![]()
ACE3 arbeitet nicht mit dem Damage System von Bohemia (setDamage / setHit etc).
Somit sind alle weiteren Revieve Scripte, die nicht auf ACE3 aufgebaut sind, hinfällig.
- Deal with it -
Siehe infos:
[...] we do not use the arma damage (setDamage etc) but use our own implementation. Revive scripts will have to be made compatible to deal with this.If you or someone else needs help with that, please join us on Slack or create a suppor ticket here on github and we can assist.
Im ACE3 Wiki:
1.2 Revive system
The revive system lets you bring downed units back up. Upon receiving a deadly amount of damage a unit will fall unconscious for a determined amount of time. In that time a medic will need to treat them and give them epinephrine to bring them back up.
Das heisst grob übersetzt, dass die Einheit für eine gewisse Zeit bewusstlos wird. Medics haben dann die chance, diese Person mit Epinephrine wieder zurück zu holen. Wenn sie es nicht schaffen: TOT!
#Lightpoint macht das ganze in der Nacht auch sichtbar, weis gar nicht ob du das schon drinnen hattest
JOP, habe ich drin
_pos = [24262,18053,0];
_oldDir = getDir player;
_oldPos = visiblePositionASL player;
_light = "#lightpoint" createVehicleLocal [24262,18053,0];
_light setLightBrightness 1;
_light setLightAmbient [1.0, 1.0, 1.0];
Ich glaube, dann schreibe ich meins erstmal als "Nur für Modcars" aus
Bei deiner Variante, Fahrzeuge am Meer zu spawnen wäre das eher unpraktisch,
Hehe... Das Meer gibt ein gewisses Ambiente
P.s. ich habe ein andere Art, und bei mir klappt es mit den Texturen
Das was du vorgeschlagen hast, ist der Inhalt der fn_colorVehicle.sqf
Und dies funktioniert nicht so.
Wie wäre es, wenn du dein Script mal zeigen würdest, dann könnte ich oder wer anders, vllt was draus ableiten...
Das wäre ganz im Sinne einer Community.
Nur so zur Zwischenmeldung: Ich habe es mit den Textruren noch nicht hinbekommen,...
Den Ansatz von @ddosantos bin ich nachgegangen, er funktioniert leider nicht.
Ich denke dass die Textrurenwahl nur über "onLBChanged" in der VehicleShop.h (IDD 2304) zu bewerkstelligen ist.
Denn solange ich
In der fn_vehicleShopLBCange.sqf hatte ich es versucht die colorVehicle.sqf aufzurufen, die ja für die Texturen ist, jedoch ohne erfolg...
_colorIndex = lbValue[2304,(lbCurSel 2304)];
[[_className,_colorIndex],"life_fnc_colorVehicle",true,false] spawn life_fnc_MP;
Da ich aber in den nächsten Tagen etwas weniger Zeit dafür habe (Eigenes Projekt, Kinder, Ostern ... etc),
Dachte ich, ich gebe es hier mal als Anstoß...
Vllt findet es ja jemand in der Zeit raus.
hmmm gute frage,.. ich nutzte zwar auch standart autos, aber ohne Texturen...
Werde ich mal am WE testen... Es sei denn jemand schafft es vorher.
Ist so nicht drin.
Dazu musst du die vehicleShop.h selber anpassen
Das habe ich jetzt nicht gemacht...
Dieses Script ändert die Ansicht in dem Vehicle Shop.
Der Spieler wird an den Strand von Altis geportet, und das ausgewähle Fahrzeug erscheint rotierend im Hintergrund des Menü´s.
Vorschau:
Vorab:
Ich werde dies nicht für die 4.0 machen!
Wer möchte, kann dies gerne tun!
Auch bin ich oder Native-Gamer in keinster Weise dafür Verantwortlich, wenn ihr eure Life-Version zerschießt.
MACHT VORHER EIN BACKUP!
____________________________________________________________________
HINWEIS
Dieses Script funktioniert derzeit nicht mit eigenen Skins!
Es ist im Grunde nur für ModCars geeignet. - bis jetzt -
Weitere Änderungen können folgen!
____________________________________________________________________
Öffnet die functions.h und legt unter Shops eine neue Class an.
Erstellt in core\shops eine neue Datei namens fn_vehicleRotate.sqf mit folgendem Inhalt:
private "_oldDir";
params["_vehicle"];
while {!isNull _vehicle} do
{
_oldDir = getDir _vehicle;
_vehicle setDir (_oldDir + 0.5);
uiSleep 0.01;
};
Erstellt in der core\configuration.sqf unter den Backend_Variables eine neue Variable:
Ersetzt nun unter core\shops diese 2 Dateien:
fn_vehicleShopMenu.sqf und fn_vehicleShopLBCange.sqf mit den Inhalten:
fn_vehicleShopMenu.sqf
/*
File: fn_vehicleShopMenu.sqf
Author: Bryan "Tonic" Boardwine
Description:
Blah
*/
private["_shop","_sideCheck","_spawnPoints","_shopFlag","_disableBuy"];
_shop = [(_this select 3),0,"",[""]] call BIS_fnc_param;
_sideCheck = [(_this select 3),1,sideUnknown,[civilian]] call BIS_fnc_param;
_spawnPoints = [(_this select 3),2,"",["",[]]] call BIS_fnc_param;
_shopFlag = [(_this select 3),3,"",[""]] call BIS_fnc_param;
_disableBuy = [(_this select 3),5,false,[true]] call BIS_fnc_param;
disableSerialization;
//Long boring series of checks
if(dialog) exitWith {};
if(_shop == "") exitWith {};
if(_sideCheck != sideUnknown && {playerSide != _sideCheck}) exitWith {hint localize "STR_Shop_Veh_NotAllowed"};
if(!createDialog "Life_Vehicle_Shop_v2") exitWith {};
life_veh_shop = [_shop,_spawnpoints,_shopFlag,_disableBuy]; //Store it so so other parts of the system can access it.
ctrlSetText [2301,((_this select 3) select 4)];
if(_disableBuy) then {
//Disable the buy button.
ctrlEnable [2309,false];
};
//Fetch the shop config.
_vehicleList = [_shop] call life_fnc_vehicleListCfg;
_control = ((findDisplay 2300) displayCtrl 2302);
lbClear _control; //Flush the list.
ctrlShow [2330,false];
ctrlShow [2304,false];
// ::: NEW SHOP CAM ::: \\
_pos = [24262,18053,0];
_oldDir = getDir player;
_oldPos = visiblePositionASL player;
_light = "#lightpoint" createVehicleLocal [24262,18053,0];
_light setLightBrightness 1;
_light setLightAmbient [1.0, 1.0, 1.0];
player setPosASL _pos;
player setDir 90;
{if(_x != player) then {_x hideObject true;};} foreach playableUnits;
player switchMove "";
life_CarPreview = "Sign_Arrow_Yellow_F" createVehicleLocal (getPosATL player);
life_CarPreview setPos (player modelToWorld [3,9,0]);
life_CarPreview setDir ([life_CarPreview,player] call BIS_fnc_dirTo);
life_CarPreview enableSimulation false;
life_CarCAMPreview = "CAMERA" camCreate getPos player;
showCinemaBorder false;
life_CarCAMPreview cameraEffect ["Internal","Back"];
life_CarCAMPreview camSetTarget (life_CarPreview modelToWorld [3,0,0]);
life_CarCAMPreview camSetPos (player modelToWorld [1,0,5]);
life_CarCAMPreview camSetFovRange [0.1,0.7];
life_CarCAMPreview camSetFocus [50,0];
life_CarCAMPreview camCommit 0;
//Loop through
{
_className = _x select 0;
_basePrice = _x select 1;
_vehicleInfo = [_className] call life_fnc_fetchVehInfo;
_control lbAdd (_vehicleInfo select 3);
_control lbSetPicture [(lbSize _control)-1,(_vehicleInfo select 2)];
_control lbSetData [(lbSize _control)-1,_className];
_control lbSetValue [(lbSize _control)-1,_ForEachIndex];
} foreach _vehicleList;
waitUntil {isNull (findDisplay 2300)};
{if(_x != player) then {_x hideObject false;};} foreach playableUnits;
player setPosASL _oldPos;
player setDir _oldDir;
{deleteVehicle _x;} foreach [_light];
life_CarCAMPreview cameraEffect ["TERMINATE","BACK"];
camDestroy life_CarCAMPreview;
if((!isNil "life_CarPreview") AND (!isNull life_CarPreview)) then{
deleteVehicle life_CarPreview;
};
Alles anzeigen
fn_vehicleShopLBCange.sqf
#include <macro.h>
/*
File: fn_vehicleShopLBChange.sqf
Author: Bryan "Tonic" Boardwine
Description:
Called when a new selection is made in the list box and
displays various bits of information about the vehicle.
*/
disableSerialization;
private["_control","_index","_className","_basePrice","_vehicleInfo","_colorArray","_ctrl"];
_control = _this select 0;
_index = _this select 1;
//Fetch some information.
_className = _control lbData _index;
_vIndex = _control lbValue _index;
_vehicleList = [life_veh_shop select 0] call life_fnc_vehicleListCfg; _basePrice = (_vehicleList select _vIndex) select 1;
_vehicleInfo = [_className] call life_fnc_fetchVehInfo;
_trunkSpace = [_className] call life_fnc_vehicleWeightCfg;
ctrlShow [2330,true];
(getControl(2300,2303)) ctrlSetStructuredText parseText format[
(localize
"STR_Shop_Veh_UI_Rental")+ " <t
color='#8cff9b'>$%1</t><br/>" +(localize
"STR_Shop_Veh_UI_Ownership")+ " <t
color='#8cff9b'>$%2</t><br/>" +(localize
"STR_Shop_Veh_UI_MaxSpeed")+ " %3 km/h<br/>" +(localize
"STR_Shop_Veh_UI_HPower")+ " %4<br/>" +(localize
"STR_Shop_Veh_UI_PSeats")+ " %5<br/>" +(localize
"STR_Shop_Veh_UI_Trunk")+ " %6<br/>" +(localize
"STR_Shop_Veh_UI_Fuel")+ " %7<br/>" +(localize
"STR_Shop_Veh_UI_Armor")+ " %8",
[_basePrice] call life_fnc_numberText,
[round(_basePrice * 2)] call life_fnc_numberText,
_vehicleInfo select 8,
_vehicleInfo select 11,
_vehicleInfo select 10,
if(_trunkSpace == -1) then {"None"} else {_trunkSpace},
_vehicleInfo select 12,
_vehicleInfo select 9
];
if((!isNil "life_CarPreview") AND (!isNull life_CarPreview)) then{
deleteVehicle life_CarPreview;
};
life_CarPreview = _className createVehicleLocal (getPosATL player);
life_CarPreview setPos (player modelToWorld [3,9,0]);
life_CarPreview setDir ([life_CarPreview,player] call BIS_fnc_dirTo);
life_CarPreview enableSimulation false;
[life_CarPreview] spawn life_fnc_vehicleRotate;
life_CarCAMPreview = "CAMERA" camCreate getPos player;
showCinemaBorder false;
life_CarCAMPreview cameraEffect ["Internal","Back"];
life_CarCAMPreview camSetTarget (life_CarPreview modelToWorld [3,0,0]);
life_CarCAMPreview camSetPos (player modelToWorld [1,0,5]);
life_CarCAMPreview camSetFovRange [0.1,0.7];
life_CarCAMPreview camSetFocus [50,0];
life_CarCAMPreview camCommit 0;
_ctrl = getControl(2300,2304);
lbClear _ctrl;
_colorArray = [_className] call life_fnc_vehicleColorCfg;
for "_i" from 0 to count(_colorArray)-1 do {
if((_colorArray select _i) select 1 == (life_veh_shop select 2)) then {
_temp = [_className,_i] call life_fnc_vehicleColorStr;
_ctrl lbAdd format["%1",_temp];
_ctrl lbSetValue [(lbSize _ctrl)-1,_i];
};
};
if(_className in (__GETC__(life_vShop_rentalOnly))) then {
ctrlEnable [2309,false];
} else {
if(!(life_veh_shop select 3)) then {
ctrlEnable [2309,true];
};
};
lbSetCurSel[2304,0];
if((lbSize _ctrl)-1 != -1) then {
ctrlShow[2304,true];
} else {
ctrlShow[2304,false];
};
true;
Alles anzeigen
ACHTUNG:
Wenn ihr eine andere Vorschau Location haben wollt, müsst ihr in der fn_vehicleShopMenu.sqf diese Zeilen ändern!
EBENSO, WENN IHR NICHT AUF ALTIS SPIELT!!
_pos = [24262,18053,0];
_light = "#lightpoint" createVehicleLocal [24262,18053,0];
In bezug darauf, das es auch die MOD "CUSTOM BUILDINGS" gibt, gehe ich davon aus, dass das A3L Gate auch eine variable nutzt.
ALLERDINGS KANN ICH DIR NICHT SAGEN OB BEI A3L DIE VARIABLE DIE SELBE IST!
DAS MUSST DU SELBST HERAUSFINDEN UND ENTSPRECHEND ÄNDERN!
CUSTOM BUILDINGS
Die Tore haben standadmäßig die prüfung ob die Variable "CopLevel" > 0 ist.
Du musst also dafür sorgen, dass die Spieler, diese Variable bekommen. Allerdings auch wieder verlieren, da sie sonst die Gefängnistore öffnen können.
Da ich nun zB ein Tor habe, welches auch Spieler aufmachen dürfen, diese aber nicht das Gefängnis öffnen dürfen, habe ich
erstmal den CIV die Variable zugewiesen.
in der fn_initCiv.sqf
player setVariable ["copLevel",0,true];
Somit haben die CIV, besagte Variable, aber sie ist 0 und die Tore können nicht geöffnet werden.
Über das entsprechende Tor, welches sie öffnen dürfen wurde ein Marker gesetzt.
Markername = "TOR1"
Und in der init_survival.sqf (kann man auch anders aufrufen, fand es hier aber am schnellsten)
[] spawn {
while{true}do
{
if(playerSide != civilian) exitwith{};
if (
(player distance getMarkerPos "TOR1" < 2.5) &&
(player getVariable "copLevel" == 0)
)then
{
player setVariable ["copLevel",1,true];
}else{
sleep 4;
player setVariable ["copLevel",0,true];
};
sleep 1;
};
};
Alles anzeigen
Dieser Code bewirkt, dass bei CIV, geprüft wird, ob sie sich im Marker befinden.
Wenn ja, und ihre Variable ist = 0, wird die Variable auf 1 gesetzt, und sie können das Tor öffnen.
Entfernen sie sich aus dem Marker, wird die Variable wieder auf 0 gesetzt, damit sie die Gefängnistore nicht öffnen können.
AUS SICHERHEITSGRÜNDEN HAT DER SPIELER IMMER NUR 5 SEKUNDEN DIE VARIABLE AUF 1.
Du könntest dies nun mit einer Lizenz verbinden, indem du abfragst:
ACE geht eh zurzeit nicht. Da BattleEye .dll datein blockiert!
Hast du oder wer anderes nähere Infos?
Habe nämlich auch ein paar Probs mit ACE3.
Ab und an spawnt man mit Blutungen, oder man kann mit "H" das Menü nicht aufrufen.
Ebenso bekomme ich ständig diesen Fehler:
Selbst nach Update von CBA und ACE3!
Für alle, die hier einen Kompass haben wollen, statt der Koordinaten
Öffnet die monitor.sqf
und schreibt UNTER
// Kompass im Hud //////////////////////////////////////////
_compass = "";
_mydir = getDirVisual player;
switch (true) do {
case ((_mydir >= 348.75) || (_mydir < 11.25)) : {_compass = "N"};
case ((_mydir >= 11.25) && (_mydir < 33.75)) : {_compass = "NNO"};
case ((_mydir >= 33.75) && (_mydir < 56.25)) : {_compass = "NO"};
case ((_mydir >= 56.25) && (_mydir < 78.75)) : {_compass = "ONO"};
case ((_mydir >= 78.75) && (_mydir < 101.25)) : {_compass = "O"};
case ((_mydir >= 101.25) && (_mydir < 123.75)) : {_compass = "OSO"};
case ((_mydir >= 123.75) && (_mydir < 146.25)) : {_compass = "SO"};
case ((_mydir >= 146.25) && (_mydir < 168.75)) : {_compass = "SSO"};
case ((_mydir >= 168.75) && (_mydir < 191.25)) : {_compass = "S"};
case ((_mydir >= 191.25) && (_mydir < 213.75)) : {_compass = "SSW"};
case ((_mydir >= 213.75) && (_mydir < 236.25)) : {_compass = "SW"};
case ((_mydir >= 236.25) && (_mydir < 258.75)) : {_compass = "WSW"};
case ((_mydir >= 258.75) && (_mydir < 281.25)) : {_compass = "W"};
case ((_mydir >= 281.25) && (_mydir < 303.75)) : {_compass = "WNW"};
case ((_mydir >= 303.75) && (_mydir < 326.25)) : {_compass = "NW"};
case ((_mydir >= 326.25) && (_mydir < 348.75)) : {_compass = "NNW"};
default {_compass = ""};
};
Alles anzeigen
Danach:
Ersetzt icons\Statusbar\ico_map.paa mit icons\Statusbar\compass.paa
und
format["%1/%2",_xx,_yy] mit _compass
Sollte dann so aussehen:
(Ich habe es, um es besser lesen zu können, unterenander stehen.)
((uiNamespace getVariable "osefStatusBar")displayCtrl 555556)ctrlSetStructuredText parseText
format["<t shadow='1' shadowColor='#000000'>
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#FFFFFF'/>%1
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#3399FF'/>%2
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#009933'/>%3
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\players.paa' color='#CC0000'/>%4
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\compass.paa'/>%5
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\hunger.paa' color='%7'/>%6
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\thirst.paa' color='%9'/>%8
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\damage.paa' color='%11'/>%10
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\stamina.paa' color='%13'/>%12
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\monitor_fps.paa' color='%15'/>%14
<img size='1.6' shadowColor='#000000' image='icons\Statusbar\restart.paa' color='%17'/>%16</t>"
,_CivplayHUD,
_WestplayHUD,
_IndepplayHUD,
_EastplayHUD,
_compass,
_hunger,
_colourHunger,
_thirst,
_colourThirst,
_damage,
_colourDamage,
_stamina,
_colourStamina,
_FpsHud,
_colourFps,
_UpTimeHUD,
_colourUpTimeHUD,
_players,
_energyPercent,
_colourDefault];
};
};
Alles anzeigen
Zuletzt das icon aus dem Anhang zu den anderen icons packen.
FERTIG.
So sieht es aus:
Was genau meint ihr mit "gehört das da so hin?"
In der functions.h wird eine neue Class erstellt, so wie ich es geschrieben habe.
Jedoch würde ein Fehler dort, nicht dazu führen, das der Laptop im Markt nicht erscheint.
Eher dazu, dass das Script nicht richtig läuft, oder im schlimmsten fall mehrere scripte.
Wie 'DerOnkel' schon sagte, "config, varhandle, vartostr, virtshop und ggf, itemweight her"
Es ist ein z-Item welches im Shop nicht angezeigt wird.
Allerdings scheinen deine Zeilen korrekt zu sein. (nach erster Begutachtung - keine typo etc.)
Leider habe ich derzeit keinen Server installiert, um mir deinen Fehler genauer anzusehen.
Was ich dir (allerdings erst am Wochenende) anbieten könnte, wäre eine Teamviewer Sitzung, dann schaue ich mir dies genauer an.
Ist dir aber überlassen.
Falls du den Fehler vorher findest, solltest du aber deinen Lösungsweg posten, für diejenigen, die evtll den selben Fehler haben.
Stimmt! Wir haben es geklärt.
Es ist also kein Shitstorm etc. mehr nötig.
Zu dem Problem mit dem Z Inventar:
Setzt an das ende der fn_hackthebank.sqf aus dem Ordner "core\HackTheBank" ein
Zu Battleye:
Meine erste Zeile aus der PublicVariable.txt meiner alten Mission, wo ich es eingebaut hatte:
Bei mir war eine 7 am Anfang. Ich habe leider nicht viel Ahnung von Battleye, aber so funtkionierte es bei mir.
7 "" !="life_fnc_MP_packet" !="BIS_fnc_MP_packet" !="JipTimeNow" !="life_HC_isActive" !="HC_UID" !="life_gang_list" !="bank_addfunds" !"IL_SetScore" !"tcb_ais_in_agony" !="PVAHR_[a-z,0-9]{10,16}" !="PVAH_AdminReq" !="radio_request_([0-9]{16,19})(WEST|EAST|CIVILIAN|RESISTANCE)" !="tf_([a-z]{5})([0-9]{3})([a-z]{3})_(1|2)_settings" !="life_market_prices" !="life_ATMhacked" !="drn_AskServerDynamicWeatherEventArgs" !="IL_SetMass" !="IL_SetScore" !="IL_SetDir"
ich nutze ja die 3.1.4.8
Aber wie gesagt, Fehler...
testet das hier mal: Extdb2
Das hatte ich versucht. Gab in der fn_asyncCall.sqf fehler...
Wenn es einer hinbekommt, und dies teilen würde, wäre ich dankbar =)
Hat jemand ne kurze Einführung, wie ich die 3.1.4.8 auf extDB2 umstelle?
Ich machs immer so, und es funktioniert. Ist zwar länger als dein Code.
Aber was solls?
Spieler 0.05 Schaden nehmen
Spieler 0.05 Schaden geben
Lade mir mal deine veränderten Dateien Hoch, oder schick sie mir via PM...