Mehrere Heli Tankstellen

  • Frage
  • Ich verstehe nicht ganz, was du meinst... Ein Helikopter kann doch genauso wie jedes andere Fahrzeug an einer normalen Zapfsäule auftanken...
  • Spike schrieb:

    Ich verstehe nicht ganz, was du meinst... Ein Helikopter kann doch genauso wie jedes andere Fahrzeug an einer normalen Zapfsäule auftanken...
    Ware für mich auch interessant.

    Aber bei mir geht es nicht mehr dass ein Heli an ner normalen Zapfseule tankt. Der bekommt aktuell nur noch an der Heli_Station seinen Sprit. Habe ein Tankstellensystem eingebaut, mit kaufbaren Tankstellen und da wird den Fahrzeugen Benzin / super oder Diesel zugeordnet und der verbrauch ist von der Ladung und dem Zustand des Fahrzeugs abhängig. Die Spieler können für ihre erworbene Tankstelle den Preis für die Treibstoff Sorten festlegen und müssen die Tanks der Tankstelle auch regelmäßig auffüllen. Und bekommt auch so das Geld, dass die Spieler beim Tanken bezahlen.

    Bräuchte auch noch so ne "Heli_Station" für die Boote. Da die Tanks auch in der DB gespeichert werden.


    Forum:
    outlawisland.de
    TS3: 89.163.140.167:9987

    Altis-Life-Server: 89.163.140.167:2302
    Wasteland-Server: 89.163.140.167:2502
  • Das ganze sollte dann so aussehen:


    C-Quellcode: fn_serviceChopper.sqf

    1. #include "..\..\script_macros.hpp"
    2. /*
    3. File: fn_serviceChopper.sqf
    4. Author: Bryan "Tonic" Boardwine
    5. Description:
    6. Main functionality for the chopper service paid, to be replaced in later version.
    7. */
    8. private ["_serviceCost"];
    9. disableSerialization;
    10. private ["_search","_ui","_progress","_cP","_pgText","_airSP","_sp"];
    11. if (life_action_inUse) exitWith {hint localize "STR_NOTF_Action"};
    12. _sp = [air_sp]; // <<< da deine anderen pads eintragen
    13. _airSP = [_sp,player] call BIS_fnc_nearestPosition;
    14. _serviceCost = LIFE_SETTINGS(getNumber,"service_chopper");
    15. _search = nearestObjects[getPos _airSP, ["Air"],10];
    16. if (count _search isEqualTo 0) exitWith {hint localize "STR_Service_Chopper_NoAir"};
    17. if (CASH < _serviceCost) exitWith {hint localize "STR_Serive_Chopper_NotEnough"};
    18. life_action_inUse = true;
    19. "progressBar" cutRsc ["life_progress","PLAIN"];
    20. _ui = uiNamespace getVariable "life_progress";
    21. _progress = _ui displayCtrl 38201;
    22. _pgText = _ui displayCtrl 38202;
    23. _pgText ctrlSetText format [localize "STR_Service_Chopper_Servicing","waiting..."];
    24. _progress progressSetPosition 0.01;
    25. _cP = 0.01;
    26. for "_i" from 0 to 1 step 0 do {
    27. sleep 0.2;
    28. _cP = _cP + 0.01;
    29. _progress progressSetPosition _cP;
    30. _pgText ctrlSetText format [localize "STR_Service_Chopper_Servicing",round(_cP * 100)];
    31. if (_cP >= 1) exitWith {};
    32. };
    33. if (!alive (_search select 0) || (_search select 0) distance _airSP > 15) exitWith {life_action_inUse = false; hint localize "STR_Service_Chopper_Missing"};
    34. CASH = CASH - _serviceCost;
    35. if (!local (_search select 0)) then {
    36. [(_search select 0),1] remoteExecCall ["life_fnc_setFuel",(_search select 0)];
    37. } else {
    38. (_search select 0) setFuel 1;
    39. };
    40. (_search select 0) setDamage 0;
    41. "progressBar" cutText ["","PLAIN"];
    42. titleText [localize "STR_Service_Chopper_Done","PLAIN"];
    43. life_action_inUse = false;
    Alles anzeigen
    Wenn ich das ganze für Boote machen will, muss ich doch nur diese Zeile ändern, oder?

    _search = nearestObjects[getPos _airSP, ["Air"],10];

    zu

    _search = nearestObjects[getPos _airSP, ["Ship"],10];

    Ok natürlich alle Hint-Texte noch bearbeiten :)


    Forum:
    outlawisland.de
    TS3: 89.163.140.167:9987

    Altis-Life-Server: 89.163.140.167:2302
    Wasteland-Server: 89.163.140.167:2502
  • Um das ganze auch für Boote bereit zu stellen, erstellt man nochmal solche Stationen. Helipad Name = boot_sp , boot_sp_1, boot_sp_2.

    Dann einen NPC mit der gleichen Init wie die heli-Stationen nur dort steht statt fnc_serviceChoper dann fnc_serviceBoot drin in der addAction.

    In der function.hpp dann die class serviceBoot {}; einfügen unter actions

    und erstellt im Ordner core\actions\fn_serviceBoot.sqf mit diesem Inhalt:

    C-Quellcode: fn_serviceBoot.sqf

    1. #include "..\..\script_macros.hpp"
    2. /*
    3. File: fn_serviceChopper.sqf
    4. Author: Bryan "Tonic" Boardwine
    5. Description:
    6. Main functionality for the chopper service paid, to be replaced in later version.
    7. */
    8. private ["_serviceCost"];
    9. disableSerialization;
    10. private ["_search","_ui","_progress","_cP","_pgText","_bootSP","_bsp"];
    11. if (life_action_inUse) exitWith {hint localize "STR_NOTF_Action"};
    12. _bsp = [boot_sp, boot_sp_1, boot_sp_2]; // <<< da deine anderen pads eintragen
    13. _bootSP = [_bsp,player] call BIS_fnc_nearestPosition;
    14. _serviceCost = LIFE_SETTINGS(getNumber,"service_chopper");
    15. _search = nearestObjects[getPos _bootSP, ["Ship"],10];
    16. if (count _search isEqualTo 0) exitWith {hint "Es ist kein Schiff am Pier!"};
    17. if (CASH < _serviceCost) exitWith {hint "Du hast nicht genug Geld um dein Schiff aufzutanken und zu reparieren!"};
    18. life_action_inUse = true;
    19. "progressBar" cutRsc ["life_progress","PLAIN"];
    20. _ui = uiNamespace getVariable "life_progress";
    21. _progress = _ui displayCtrl 38201;
    22. _pgText = _ui displayCtrl 38202;
    23. _pgText ctrlSetText format ["Schiff wird gewartet [%1]...","waiting..."];
    24. _progress progressSetPosition 0.01;
    25. _cP = 0.01;
    26. for "_i" from 0 to 1 step 0 do {
    27. sleep 0.2;
    28. _cP = _cP + 0.01;
    29. _progress progressSetPosition _cP;
    30. _pgText ctrlSetText format ["Schiff wird gewartet [%1]...",round(_cP * 100)];
    31. if (_cP >= 1) exitWith {};
    32. };
    33. if (!alive (_search select 0) || (_search select 0) distance _bootSP > 15) exitWith {life_action_inUse = false; hint "Das Fahrzeug wurde zerstört oder befindest sich nicht mehr auf dem Helikopterlandeplatz!"};
    34. CASH = CASH - _serviceCost;
    35. if (!local (_search select 0)) then {
    36. [(_search select 0),1] remoteExecCall ["life_fnc_setFuel",(_search select 0)];
    37. } else {
    38. (_search select 0) setFuel 1;
    39. };
    40. (_search select 0) setDamage 0;
    41. "progressBar" cutText ["","PLAIN"];
    42. titleText ["Dein Schiff ist nun repariert und aufgetankt.","PLAIN"];
    43. life_action_inUse = false;
    Alles anzeigen
    Schon kann man dort genauso tanken wie an den HeliStationen.


    Forum:
    outlawisland.de
    TS3: 89.163.140.167:9987

    Altis-Life-Server: 89.163.140.167:2302
    Wasteland-Server: 89.163.140.167:2502