[TUTORIAL] Flug/Fahrzeug Händler mit 3D Ansicht und eigenen Skins.
-
- Altis Life
-
nflug -
28. August 2016 um 22:41
-
-
Musst noch in beiden Datein die Position abändern:
vehicleShop3DInitPreview:
Spoiler anzeigen
/**
* Bibliothèque de fonctions permettant la visualisation 3D d'objets
*
* Copyright (C) 2014 Team ~R3F~
*
* This program is free software under the terms of the GNU General Public License version 3.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <@@c4d007c2b07654d56ab632a6d069304b4f4dec38@@>.
*//*
File: fn_vehicleShopInit3DPreview.sqf
Modified By: NiiRoZzDescription:
Called when a player open the vehicle shop and setup cam and the while for rotate around the vehicle
*/
// Creating a camera.
life_preview_3D_vehicle_cam = "camera" camCreate [DEINE,KAMERA,POSITION];
life_preview_3D_vehicle_cam cameraEffect ["Internal", "BACK"];
life_preview_3D_vehicle_cam camSetFocus [-1, -1];
showCinemaBorder false;
life_preview_3D_vehicle_cam camCommit 0;life_preview_3D_vehicle_object = objNull;
// Thread execution performing a continuous rotation of the camera around the view object.
0 spawn
{
// Until we left the visualization.
for "_i" from 0 to 1 step 0 do {
if (isNull life_preview_3D_vehicle_cam) exitWith {};
private ["_object","_distanceCam","_azimuthCam"];// Waiting for a view object.
waitUntil {!isNull life_preview_3D_vehicle_object};_object = life_preview_3D_vehicle_object;
if(_object isKindOf "Ship") then {
if(getPos life_preview_3D_vehicle_cam != [DEINE,KAMERA,POSITIONFÜRDIEBOOTE]) then {
life_preview_3D_vehicle_cam camSetPos [DEINE,KAMERA,POSITIONFÜRDIEBOOTE];
};
};_distanceCam = 2.25 * (
[boundingBoxReal _object select 0 select 0, boundingBoxReal _object select 0 select 2]
distance
[boundingBoxReal _object select 1 select 0, boundingBoxReal _object select 1 select 2]
);
_azimuthCam = 0;life_preview_3D_vehicle_cam camSetTarget _object;
life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]);
life_preview_3D_vehicle_cam camCommit 0;// Rotation around the object.
for "_i" from 0 to 1 step 0 do {
if (!(life_preview_3D_vehicle_object isEqualTo _object)) exitWith {};
_azimuthCam = _azimuthCam + 1.00;life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]);
life_preview_3D_vehicle_cam camCommit 0.05;sleep 0.05;
};
};
};vehicleShop3DPreview
Spoiler anzeigen
/**
* Bibliothèque de fonctions permettant la visualisation 3D d'objets
*
* Copyright (C) 2014 Team ~R3F~
*
* This program is free software under the terms of the GNU General Public License version 3.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <@@efa05bd5061dea4349d51d345f83a84c81508cc4@@>.
*//*
File: fn_vehicleShop3DPreview.sqf
Modified By: NiiRoZzDescription:
Called when a new selection is made in the list box and
displays the new vehicle selected.
*/private ["_classView","_object","_id"];
if (isNil "life_preview_3D_vehicle_cam") then
{
[] call life_fnc_vehicleShopInit3DPreview;
};_classView = _this select 0;
// Ignore non instantiable objects.
if (_classView != "" && {isClass (configFile >> "CfgVehicles" >> _classView) && {getNumber (configFile >> "CfgVehicles" >> _classView >> "scope") > 0}}) then
{
// Skip if object view is the same as previous.
if (isNull life_preview_3D_vehicle_object {_classView != typeOf life_preview_3D_vehicle_object}) then
{
if (!isNull life_preview_3D_vehicle_object) then {detach life_preview_3D_vehicle_object; deleteVehicle life_preview_3D_vehicle_object;};
// Create and place the object in the sky
if (!life_pos_exist) then {
if(_classView isKindOf "Ship") then {
life_pos_attach = [DEINE, SCHIFFS, POSITION];
} else {
life_pos_attach = [DEINE, ANDERE, POSITION];
};
life_pos_exist = true;
life_preview_light = "#lightpoint" createVehicle life_pos_attach;
life_preview_light setLightBrightness 0.5;
life_preview_light setLightColor [1,1,1];
life_preview_light setLightAmbient [1,1,1];
};
_object = _classView createVehicle life_pos_attach;
_id = owner player;
[_object] remoteExecCall ["life_fnc_hideObj",-_id];
[life_preview_light] remoteExecCall ["life_fnc_hideObj",-_id];
[_object] call life_fnc_clearVehicleAmmo;
_object attachTo [life_attachment_point, life_pos_attach];_object hideObject false;
life_preview_light hideObject false;_object allowDamage false;
life_preview_3D_vehicle_object = _object;
};
}; -
Werden dann endlich die Autos an gezeigt? Benutze die 3.1.4.8
-
Das ist für Stizle nicht für dich
Schick dochmal deine jetzigen Datein @Team-Wings -
Klar warte
-
if (isNull life_preview_3D_vehicle_object
DAAAAAAAAAAAAAAAAAAAAAAAANKE @Flyyying_nflug
-
So hier die Datein:
Code
Alles anzeigen/** * Bibliothèque de fonctions permettant la visualisation 3D d'objets * * Copyright (C) 2014 Team ~R3F~ * * This program is free software under the terms of the GNU General Public License version 3. * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ /* File: fn_vehicleShopInit3DPreview.sqf Modified By: NiiRoZz Description: Called when a player open the vehicle shop and setup cam and the while for rotate around the vehicle */ // Creating a camera. life_preview_3D_vehicle_cam = "camera" camCreate [21708.67, 5972.299, 200]; life_preview_3D_vehicle_cam cameraEffect ["Internal", "BACK"]; life_preview_3D_vehicle_cam camSetFocus [-1, -1]; showCinemaBorder false; life_preview_3D_vehicle_cam camCommit 0; life_preview_3D_vehicle_object = objNull; // Thread execution performing a continuous rotation of the camera around the view object. 0 spawn { // Until we left the visualization. for "_i" from 0 to 1 step 0 do { if (isNull life_preview_3D_vehicle_cam) exitWith {}; private ["_object","_distanceCam","_azimuthCam"]; // Waiting for a view object. waitUntil {!isNull life_preview_3D_vehicle_object}; _object = life_preview_3D_vehicle_object; _distanceCam = 2.25 * ( [boundingBoxReal _object select 0 select 0, boundingBoxReal _object select 0 select 2] distance [boundingBoxReal _object select 1 select 0, boundingBoxReal _object select 1 select 2] ); _azimuthCam = 0; life_preview_3D_vehicle_cam camSetTarget _object; life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]); life_preview_3D_vehicle_cam camCommit 0; // Rotation around the object. for "_i" from 0 to 1 step 0 do { if (!(life_preview_3D_vehicle_object isEqualTo _object)) exitWith {}; _azimuthCam = _azimuthCam + 1.00; life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]); life_preview_3D_vehicle_cam camCommit 0.05; sleep 0.05; }; }; };
Code
Alles anzeigen#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; [_className] call life_fnc_vehicleShop3DPreview; ctrlShow [2330,true]; (getControl(2300,2303)) ctrlSetStructuredText parseText format[ "Rental Price: <t color='#8cff9b'>$%1</t><br/>Ownership Price: <t color='#8cff9b'>$%2</t><br/>Max Speed: %3 km/h<br/>Horse Power: %4<br/>Passenger Seats: %5<br/>Trunk Capacity: %6<br/>Fuel Capacity: %7<br/>Armor Rating: %8", [_basePrice] call life_fnc_numberText, [round(_basePrice * 1.5)] 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 ]; _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;
Code
Alles anzeigen/* 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 {hintSilent localize "STR_Shop_Veh_NotAllowed"}; if(!createDialog "Life_Vehicle_Shop_v2_3D") 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]; //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; [] call life_fnc_vehicleShopInit3DPreview; ((findDisplay 2300) displayCtrl 2302) lbSetCurSel 0;
Falls du noch andere Dateien brauch sag einfach welche!
Mfg Pius von Team-Wings
-
Ehmm ich hab da keinen Smiley hier.
Hans nochma abgeändert kopier sie jetzt nochma -
und bei dir TeamWings fehlt eine Datei. Versuch mal die 200 Höhe bei deiner Position weg zu machen obs dann geht.
-
Habe jetzt überall die höhe 200 gemacht mal gucken ob es geht!
-
Nope habs geändert und es geht immer noch nicht!
-
Was genau geht bei dir nicht @Team-Wings
Bin mobil drin.. . -
Was genau geht bei dir nicht @Team-Wings
Bin mobil drin.. .Er sieht das Auto nicht ^^.
@Team-Wings
Entweder du enfernten überall mal die Höhe.
Oder du Versuchst noch _object enableSimulation false; in der vehicleMenu3DPreview unter dem hideObject hinzuzufügen -
Ich könnte ihm morgen früh helfen.. . Hab ausgerechnet heute mein lappi nicht dabei
-
Er sieht das Auto nicht ^^.
@Team-Wings
Entweder du enfernten überall mal die Höhe.
Oder du Versuchst noch _object enableSimulation false; in der vehicleMenu3DPreview unter dem hideObject hinzuzufügenNope geht immer noch nicht
-
Ich schick dir nachher mal alle Datein für deine Version die müssten dann gehen :P.
Aber jetzt muss ich erstmal zu Schule. -
Ok viel Spaß!
-
@Team-Wings
Bitte nochmal komplettes Tutorial durch gehen.
Dann anstatt die Datein im Tutorial diese hier im Anhang benutzen. -
Ok das mit den Booten klappt. Habe noch versucht das ganze für die Flugzeuge zu machen. Das klappt nicht, die Flugzeuge spawnen dort wo die Autos auch spawnen.
fn_vehicleShop3DPreviewCode
Alles anzeigen/** * Bibliothèque de fonctions permettant la visualisation 3D d'objets * * Copyright (C) 2014 Team ~R3F~ * * This program is free software under the terms of the GNU General Public License version 3. * You should have received a copy of the GNU General Public License * along with this program. If not, see <@@efa05bd5061dea4349d51d345f83a84c81508cc4@@>. */ /* File: fn_vehicleShop3DPreview.sqf Modified By: NiiRoZz Description: Called when a new selection is made in the list box and displays the new vehicle selected. */ private ["_classView","_object","_id"]; if (isNil "life_preview_3D_vehicle_cam") then { [] call life_fnc_vehicleShopInit3DPreview; }; _classView = _this select 0; // Ignore non instantiable objects. if (_classView != "" && {isClass (configFile >> "CfgVehicles" >> _classView) && {getNumber (configFile >> "CfgVehicles" >> _classView >> "scope") > 0}}) then { // Skip if object view is the same as previous. if (isNull life_preview_3D_vehicle_object || {_classView != typeOf life_preview_3D_vehicle_object}) then { if (!isNull life_preview_3D_vehicle_object) then {detach life_preview_3D_vehicle_object; deleteVehicle life_preview_3D_vehicle_object;}; // Create and place the object in the sky if (!life_pos_exist) then { if(_classView isKindOf "Ship") then { life_pos_attach = [12659.153,14504.985]; } else { if(_classView isKindOf "Plane") then { life_pos_attach = [11844.76,13084.747,0]; } else { life_pos_attach = [12196.492,2966.558,0]; } }; life_pos_exist = true; life_preview_light = "#lightpoint" createVehicle life_pos_attach; life_preview_light setLightBrightness 0.5; life_preview_light setLightColor [1,1,1]; life_preview_light setLightAmbient [1,1,1]; }; _object = _classView createVehicle life_pos_attach; _id = owner player; [_object] remoteExecCall ["life_fnc_hideObj",-_id]; [life_preview_light] remoteExecCall ["life_fnc_hideObj",-_id]; [_object] call life_fnc_clearVehicleAmmo; _object attachTo [life_attachment_point, life_pos_attach]; _object hideObject false; life_preview_light hideObject false; _object allowDamage false; life_preview_3D_vehicle_object = _object; }; };
fn_vehicleShop3DInitPreview
Code
Alles anzeigen/** * Bibliothèque de fonctions permettant la visualisation 3D d'objets * * Copyright (C) 2014 Team ~R3F~ * * This program is free software under the terms of the GNU General Public License version 3. * You should have received a copy of the GNU General Public License * along with this program. If not, see <@@c4d007c2b07654d56ab632a6d069304b4f4dec38@@>. */ /* File: fn_vehicleShopInit3DPreview.sqf Modified By: NiiRoZz Description: Called when a player open the vehicle shop and setup cam and the while for rotate around the vehicle */ // Creating a camera. life_preview_3D_vehicle_cam = "camera" camCreate [12196.492,2966.558,0]; life_preview_3D_vehicle_cam cameraEffect ["Internal", "BACK"]; life_preview_3D_vehicle_cam camSetFocus [-1, -1]; showCinemaBorder false; life_preview_3D_vehicle_cam camCommit 0; life_preview_3D_vehicle_object = objNull; // Thread execution performing a continuous rotation of the camera around the view object. 0 spawn { // Until we left the visualization. for "_i" from 0 to 1 step 0 do { if (isNull life_preview_3D_vehicle_cam) exitWith {}; private ["_object","_distanceCam","_azimuthCam"]; // Waiting for a view object. waitUntil {!isNull life_preview_3D_vehicle_object}; _object = life_preview_3D_vehicle_object; if(_object isKindOf "Ship") then { if(getPos life_preview_3D_vehicle_cam != [12659.153,14504.985]) then { life_preview_3D_vehicle_cam camSetPos [12659.153,14504.985]; }; }; if(_object isKindOf "Plane") then { if(getPos life_preview_3D_vehicle_cam != [11844.76,13084.747,0]) then { life_preview_3D_vehicle_cam camSetPos [11844.76,13084.747,0]; }; }; _distanceCam = 2.25 * ( [boundingBoxReal _object select 0 select 0, boundingBoxReal _object select 0 select 2] distance [boundingBoxReal _object select 1 select 0, boundingBoxReal _object select 1 select 2] ); _azimuthCam = 0; life_preview_3D_vehicle_cam camSetTarget _object; life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]); life_preview_3D_vehicle_cam camCommit 0; // Rotation around the object. for "_i" from 0 to 1 step 0 do { if (!(life_preview_3D_vehicle_object isEqualTo _object)) exitWith {}; _azimuthCam = _azimuthCam + 1.00; life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]); life_preview_3D_vehicle_cam camCommit 0.05; sleep 0.05; }; }; };
-
Versuchs ma so Stizzle ^^:
vehicleShop3DInitPreview:
Spoiler anzeigen
/**
* Bibliothèque de fonctions permettant la visualisation 3D d'objets
*
* Copyright (C) 2014 Team ~R3F~
*
* This program is free software under the terms of the GNU General Public License version 3.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <@@c4d007c2b07654d56ab632a6d069304b4f4dec38@@>.
*/
/*
File: fn_vehicleShopInit3DPreview.sqf
Modified By: NiiRoZz
Description:
Called when a player open the vehicle shop and setup cam and the while for rotate around the vehicle
*/
// Creating a camera.
life_preview_3D_vehicle_cam = "camera" camCreate [12196.492,2966.558,0];
life_preview_3D_vehicle_cam cameraEffect ["Internal", "BACK"];
life_preview_3D_vehicle_cam camSetFocus [-1, -1];
showCinemaBorder false;
life_preview_3D_vehicle_cam camCommit 0;
life_preview_3D_vehicle_object = objNull;
// Thread execution performing a continuous rotation of the camera around the view object.
0 spawn
{
// Until we left the visualization.
for "_i" from 0 to 1 step 0 do {
if (isNull life_preview_3D_vehicle_cam) exitWith {};
private ["_object","_distanceCam","_azimuthCam"];
// Waiting for a view object.
waitUntil {!isNull life_preview_3D_vehicle_object};
_object = life_preview_3D_vehicle_object;if(_object isKindOf "Ship") then {
if(getPos life_preview_3D_vehicle_cam != [12659.153,14504.985]) then {
life_preview_3D_vehicle_cam camSetPos [12659.153,14504.985];
};
};if(_object isKindOf "Plane") then {
if(getPos life_preview_3D_vehicle_cam != [11844.76,13084.747,0]) then {
life_preview_3D_vehicle_cam camSetPos [11844.76,13084.747,0];
};
};_distanceCam = 2.25 * (
[boundingBoxReal _object select 0 select 0, boundingBoxReal _object select 0 select 2]
distance
[boundingBoxReal _object select 1 select 0, boundingBoxReal _object select 1 select 2]
);
_azimuthCam = 0;
life_preview_3D_vehicle_cam camSetTarget _object;
life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]);
life_preview_3D_vehicle_cam camCommit 0;
// Rotation around the object.
for "_i" from 0 to 1 step 0 do {
if (!(life_preview_3D_vehicle_object isEqualTo _object)) exitWith {};
_azimuthCam = _azimuthCam + 1.00;
life_preview_3D_vehicle_cam camSetPos (_object modelToWorld [_distanceCam * sin _azimuthCam, _distanceCam * cos _azimuthCam, _distanceCam * 0.33]);
life_preview_3D_vehicle_cam camCommit 0.05;
sleep 0.05;
};
};
};vehicleShop3DPreview
Spoiler anzeigen
/**
* Bibliothèque de fonctions permettant la visualisation 3D d'objets
*
* Copyright (C) 2014 Team ~R3F~
*
* This program is free software under the terms of the GNU General Public License version 3.
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <@@efa05bd5061dea4349d51d345f83a84c81508cc4@@>.
*/
/*
File: fn_vehicleShop3DPreview.sqf
Modified By: NiiRoZz
Description:
Called when a new selection is made in the list box and
displays the new vehicle selected.
*/
private ["_classView","_object","_id"];
if (isNil "life_preview_3D_vehicle_cam") then
{
[] call life_fnc_vehicleShopInit3DPreview;
};
_classView = _this select 0;
// Ignore non instantiable objects.
if (_classView != "" && {isClass (configFile >> "CfgVehicles" >> _classView) && {getNumber (configFile >> "CfgVehicles" >> _classView >> "scope") > 0}}) then
{
// Skip if object view is the same as previous.
if (isNull life_preview_3D_vehicle_object {_classView != typeOf life_preview_3D_vehicle_object}) then
{
if (!isNull life_preview_3D_vehicle_object) then {detach life_preview_3D_vehicle_object; deleteVehicle life_preview_3D_vehicle_object;};
// Create and place the object in the skyif (!life_pos_exist) then {
if(_classView isKindOf "Ship" OR _classView isKindOf "Plane") then {
if(_classView isKindOf "Plane") then {
life_pos_attach = [11844.76,13084.747,0];
} else {
life_pos_attach = [12659.153,14504.985];
};} else {
life_pos_attach = [12196.492,2966.558,0];
};life_pos_exist = true;
life_preview_light = "#lightpoint" createVehicle life_pos_attach;
life_preview_light setLightBrightness 0.5;
life_preview_light setLightColor [1,1,1];
life_preview_light setLightAmbient [1,1,1];
};
_object = _classView createVehicle life_pos_attach;
_id = owner player;
[_object] remoteExecCall ["life_fnc_hideObj",-_id];
[life_preview_light] remoteExecCall ["life_fnc_hideObj",-_id];
[_object] call life_fnc_clearVehicleAmmo;
_object attachTo [life_attachment_point, life_pos_attach];
_object hideObject false;
life_preview_light hideObject false;
_object allowDamage false;
life_preview_3D_vehicle_object = _object;
};
}; -