Tankstelle System: Verschiedene Tankarten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Tankstelle System: Verschiedene Tankarten

    Quellcode

    1. public FillVehicle(playerid, vehicleid, bizid)
    2. {
    3. if(!IsPlayerConnected(playerid))return 1;
    4. if(!IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[bizid][tPickupX], Tanke[bizid][tPickupY], Tanke[bizid][tPickupZ]))return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du befindest dich an keiner Tankstelle.");
    5. if(GetPlayerVehicleSeat(playerid) != 0)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Du bist nicht der Fahrer eines Fahrzeuges.");
    6. new Float:pBenzin = (VehicleData[GetVehicleModel(vehicleid)-400][vehMaxTank] - Vehicle[vehicleid][vehFuel]);
    7. new string[128], zPreis;
    8. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 1)
    9. {
    10. if(Tanke[bizid][tLiter] < pBenzin)
    11. {
    12. pBenzin = Tanke[bizid][tLiter];
    13. zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter]));
    14. format(string, sizeof(string), "{33CCFF}Es konnten nur %.02f Liter aufgetankt werden. Die Tankstelle hat kein Benzin mehr. (-$%d)", pBenzin, zPreis);
    15. SendClientMessage(playerid, COLOR_WHITE, string);
    16. Vehicle[vehicleid][vehFuel] += pBenzin;
    17. GiveMoney(playerid, -zPreis);
    18. Tanke[bizid][tKasse] += zPreis;
    19. Tanke[bizid][tLiter] -= pBenzin;
    20. }
    21. else
    22. {
    23. zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter]));
    24. format(string, sizeof(string), "{33CCFF}Es wurden %.02f Liter Benzin aufgetankt. (-$%d)", pBenzin, zPreis);
    25. SendClientMessage(playerid, COLOR_WHITE, string);
    26. Vehicle[vehicleid][vehFuel] += pBenzin;
    27. GiveMoney(playerid, -zPreis);
    28. Tanke[bizid][tKasse] += zPreis;
    29. Tanke[bizid][tLiter] -= pBenzin;
    30. }
    31. }
    32. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 2)
    33. {
    34. if(Tanke[bizid][tLiter] < pBenzin)
    35. {
    36. pBenzin = Tanke[bizid][tLiter];
    37. zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter]));
    38. format(string, sizeof(string), "{33CCFF}Es konnten nur %.02f Liter aufgetankt werden. Die Tankstelle hat kein Diesel mehr. (-$%d)", pBenzin, zPreis);
    39. SendClientMessage(playerid, COLOR_WHITE, string);
    40. Vehicle[vehicleid][vehFuel] += pBenzin;
    41. GiveMoney(playerid, -zPreis);
    42. Tanke[bizid][tKasse] += zPreis;
    43. Tanke[bizid][tLiter] -= pBenzin;
    44. }
    45. else
    46. {
    47. zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter]));
    48. format(string, sizeof(string), "{33CCFF}Es wurden %.02f Liter Diesel aufgetankt. (-$%d)", pBenzin, zPreis);
    49. SendClientMessage(playerid, COLOR_WHITE, string);
    50. Vehicle[vehicleid][vehFuel] += pBenzin;
    51. GiveMoney(playerid, -zPreis);
    52. Tanke[bizid][tKasse] += zPreis;
    53. Tanke[bizid][tLiter] -= pBenzin;
    54. }
    55. }
    56. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 3)
    57. {
    58. if(Tanke[bizid][tLiter] < pBenzin)
    59. {
    60. pBenzin = Tanke[bizid][tLiter];
    61. zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter]));
    62. format(string, sizeof(string), "{33CCFF}Es konnten nur %.02f Liter aufgetankt werden. Die Tankstelle hat kein Kerosin mehr. (-$%d)", pBenzin, zPreis);
    63. SendClientMessage(playerid, COLOR_WHITE, string);
    64. Vehicle[vehicleid][vehFuel] += pBenzin;
    65. GiveMoney(playerid, -zPreis);
    66. Tanke[bizid][tKasse] += zPreis;
    67. Tanke[bizid][tLiter] -= pBenzin;
    68. }
    69. else
    70. {
    71. zPreis = (floatround(pBenzin*Tanke[bizid][tPreisProLiter]));
    72. format(string, sizeof(string), "{33CCFF}Es wurden %.02f Liter Kerosin aufgetankt. (-$%d)", pBenzin, zPreis);
    73. SendClientMessage(playerid, COLOR_WHITE, string);
    74. Vehicle[vehicleid][vehFuel] += pBenzin;
    75. GiveMoney(playerid, -zPreis);
    76. Tanke[bizid][tKasse] += zPreis;
    77. Tanke[bizid][tLiter] -= pBenzin;
    78. }
    79. }
    80. pRefillVehicle[playerid] = 0;
    81. UnfreezePlayer(playerid);
    82. UpdateTankLabel(bizid, Tanke[bizid][tOwned]);
    83. return 1;
    84. }
    Alles anzeigen

    Quellcode

    1. enum e_VehicleData_Info
    2. {
    3. vehModelID,
    4. Float:vehMaxTank,
    5. Float:vehTankVerbrauch,
    6. vehTankType
    7. }



    Habe das nun so gestaltet:

    Funktioniert auch aber die Frage ist...

    Wie kann ich das am besten Mit Dialog machen.

    Heißt wen er jetzt Diesel auswählt "Sollte er nicht können = Fehlermeldung"


    @Jeffry

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Dr. Frauenarzt ()

  • Neu

    Moin,

    spontan würde ich sagen, dass du FillVehicle() noch einen weiteren Parameter mitgibst z.B. fueltype und dann abfragen, ob vehTankType von vehicleData gleich dieser ID ist. Die ID, die er anklickt bekommst du ja durch OnDialogResponse() und dem Parameter listitem.

    Hoffe das ist soweit klar - gerne nachfragen.
  • Neu

    Hey,

    Das Fahrzeug darf nichts tanken 8| Kein Bezin, Diesel, Kerosin?

    Spoiler anzeigen


    Quellcode

    1. case DIALOG_TANKEN:
    2. {
    3. if(response)
    4. {
    5. if(listitem == 0)
    6. {
    7. for(new i=1;i<MAX_TANKEN;i++)
    8. {
    9. if(Tanke[i][tCreated] == 1)
    10. {
    11. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    12. {
    13. new vehicleid = GetPlayerVehicleID(playerid);
    14. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 1)return SendClientMessage(playerid, COLOR_WHITE, "Dieses Fahrzeug kann keinen Bezin Tanken!");
    15. FreezePlayer(playerid);
    16. SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
    17. SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    18. pRefillVehicle[playerid] = 1;
    19. }
    20. }
    21. }
    22. }
    23. if(listitem == 1)
    24. {
    25. for(new i=1;i<MAX_TANKEN;i++)
    26. {
    27. if(Tanke[i][tCreated] == 1)
    28. {
    29. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    30. {
    31. new vehicleid = GetPlayerVehicleID(playerid);
    32. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 1)return SendClientMessage(playerid, COLOR_WHITE, "Dieses Fahrzeug kann keinen Diesel Tanken!");
    33. FreezePlayer(playerid);
    34. SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
    35. SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    36. pRefillVehicle[playerid] = 1;
    37. }
    38. }
    39. }
    40. }
    41. if(listitem == 2)
    42. {
    43. for(new i=1;i<MAX_TANKEN;i++)
    44. {
    45. if(Tanke[i][tCreated] == 1)
    46. {
    47. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    48. {
    49. new vehicleid = GetPlayerVehicleID(playerid);
    50. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 1)return SendClientMessage(playerid, COLOR_WHITE, "Dieses Fahrzeug kann keinen Kerosin Tanken!");
    51. FreezePlayer(playerid);
    52. SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
    53. SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    54. pRefillVehicle[playerid] = 1;
    55. }
    56. }
    57. }
    58. }
    Alles anzeigen
  • Neu

    Spoiler anzeigen

    Quellcode

    1. case DIALOG_TANKEN:
    2. {
    3. if(response)
    4. {
    5. if(listitem == 0)
    6. {
    7. for(new i=1;i<MAX_TANKEN;i++)
    8. {
    9. if(Tanke[i][tCreated] == 1)
    10. {
    11. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    12. {
    13. new vehicleid = GetPlayerVehicleID(playerid);
    14. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 1)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Fahrzeug kann keinen Bezin Tanken!");
    15. FreezePlayer(playerid);
    16. SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
    17. SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    18. pRefillVehicle[playerid] = 1;
    19. }
    20. }
    21. }
    22. }
    23. if(listitem == 1)
    24. {
    25. for(new i=1;i<MAX_TANKEN;i++)
    26. {
    27. if(Tanke[i][tCreated] == 1)
    28. {
    29. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    30. {
    31. new vehicleid = GetPlayerVehicleID(playerid);
    32. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 2)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Fahrzeug kann keinen Diesel Tanken!");
    33. FreezePlayer(playerid);
    34. SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
    35. SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    36. pRefillVehicle[playerid] = 1;
    37. }
    38. }
    39. }
    40. }
    41. if(listitem == 2)
    42. {
    43. for(new i=1;i<MAX_TANKEN;i++)
    44. {
    45. if(Tanke[i][tCreated] == 1)
    46. {
    47. if(IsPlayerInRangeOfPoint(playerid, 5.0, Tanke[i][tPickupX], Tanke[i][tPickupY], Tanke[i][tPickupZ]))
    48. {
    49. new vehicleid = GetPlayerVehicleID(playerid);
    50. if(VehicleData[GetVehicleModel(vehicleid)-400][vehTankType] == 3)return SendClientMessage(playerid, COLOR_WHITE, "{AFAFAF}Dieses Fahrzeug kann keinen Kerosin Tanken!");
    51. FreezePlayer(playerid);
    52. SendClientMessage(playerid, COLOR_WHITE, "Dein Fahrzeug wird getankt ...");
    53. SetTimerEx("FillVehicle", 5000, 0, "iii", playerid, vehicleid, i);
    54. pRefillVehicle[playerid] = 1;
    55. }
    56. }
    57. }
    58. }
    Alles anzeigen



    Habe ich nun umgeändert wen ich auf Kerosin gehe tankt das Fahrzeug Troztzdem warum?