Scheine an Fahrzeugen zuordnen und abfragen

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

  • Scheine an Fahrzeugen zuordnen und abfragen

    Hey,
    Erst einmal habe ich ein kleines Problem:

    Ich bin dabei ein Fahrschulsystem zu machen und habe erst einmal nur den Auto-Schein. Jetzt möchte ich wenn man die Fahrstunde startet das sozusagen der Spieler in das Fahrschulauto kann
    Das habe ich auch hinbekommen, aber dann steht da das er kein Auto-Schein hat.

    Quellcode

    1. if(newstate == PLAYER_STATE_DRIVER)
    2. {
    3. for(new p; p < sizeof(Fahrschulauto); p++)
    4. {
    5. new vehid=GetPlayerVehicleID(playerid);
    6. if(vehid == Fahrschulauto[p])
    7. {
    8. if(pInfo[playerid][pFahrstunde] != 1)
    9. {
    10. SendClientMessage(playerid, -1,"{c45461}Du musst zuerst die Fahrstunde starten, um mit der Prüfung anzufangen.");
    11. return RemovePlayerFromVehicle(playerid);
    12. }
    13. }
    14. }
    15. }
    16. new vehicleid=GetPlayerVehicleID(playerid);
    17. if(WithoutMotor(vehicleid))
    18. {
    19. if(newstate == PLAYER_STATE_DRIVER)
    20. if(pInfo[playerid][pAutoschein]== 0)
    21. {
    22. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Auto-Schein.");
    23. return RemovePlayerFromVehicle(playerid);
    24. }
    25. else
    26. {
    27. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    Alles anzeigen

    Hier ist auch ein Video dazu damit man es besser versteht:



    Mein zweites Problem ist ich steige in jedes Auto und jedes hat sozusagen den Autoschein außer Fahrräder soll ich so etwas auch 3x kopieren und es in einer Gruppe einteilen und dann kompliziert immer abfragen? Also nach meiner Art währen das bestimmt 250 Zeilen


    Quellcode

    1. stock WithoutMotor(vehicleid)
    2. {
    3. switch(GetVehicleModel(vehicleid))
    4. {
    5. case 510,509,481: return 0;
    6. }
    7. return 1;
    8. }
    Hoffe einer von euch hat einen Plan :)
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo

    Beitrag von Harry. ()

    Dieser Beitrag wurde von seegras gelöscht ().
  • versuch es mal so...

    PAWN-Quellcode

    1. new vehicleid=GetPlayerVehicleID(playerid);
    2. if(WithoutMotor(vehicleid))
    3. {
    4. if(newstate == PLAYER_STATE_DRIVER)
    5. {
    6. for(new p; p < sizeof(Fahrschulauto); p++)
    7. {
    8. if(vehicleid == Fahrschulauto[p])
    9. {
    10. if(pInfo[playerid][pFahrstunde] != 1)
    11. {
    12. SendClientMessage(playerid, -1,"{c45461}Du musst zuerst die Fahrstunde starten, um mit der Prüfung anzufangen.");
    13. return RemovePlayerFromVehicle(playerid);
    14. }
    15. else
    16. {
    17. return SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    18. }
    19. }
    20. }
    21. if(pInfo[playerid][pAutoschein]== 0)
    22. {
    23. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Auto-Schein.");
    24. return RemovePlayerFromVehicle(playerid);
    25. }
    26. else
    27. {
    28. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    29. }
    30. }
    31. }
    Alles anzeigen
    MFG. Mogly1


    Du willst scripten Lernen hier...
    TuTorial

    (vom Register und Login bis zum eigenen Multichar-system)
  • Danke dir! ♥
    Jetzt hat ja jedes Fahrzeug einen Autoschein außer Fahrräder wie frage ich ab ob er den gewissen schein dafür hat, also mit z.b nur Autoschein würde ich das ja hinkriegen aber bei mehreren Sachen habe ich Probleme

    PAWN-Quellcode

    1. stock sAutos(vehicleid)
    2. {
    3. switch(GetVehicleModel(vehicleid))
    4. {
    5. case 510: return 0;
    6. }
    7. return 1;
    8. }


    PAWN-Quellcode

    1. stock sMotorrad(vehicleid)
    2. {
    3. switch(GetVehicleModel(vehicleid))
    4. {
    5. case 481: return 0;
    6. }
    7. return 1;
    8. }
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo
  • PAWN-Quellcode

    1. if(sAutos(vehicleid))
    2. {
    3. if(pInfo[playerid][pAutoschein] == 0)
    4. {
    5. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Auto-Schein.");
    6. RemovePlayerFromVehicle(playerid);
    7. }
    8. else
    9. {
    10. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    11. }
    12. }
    13. else if(sMotorrad(vehicleid))
    14. {
    15. if(pInfo[playerid][pMotorradschein] == 0)
    16. {
    17. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Motorrad-Schein.");
    18. RemovePlayerFromVehicle(playerid);
    19. }
    20. else
    21. {
    22. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    23. }
    24. }
    Alles anzeigen
  • Er sagt mir bei jedem Fahrzeug das ich kein Autoschein habe, komisch

    PAWN-Quellcode

    1. if(sAuto(vehicleid))
    2. {
    3. if(pInfo[playerid][pAutoschein] == 0)
    4. {
    5. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Auto-Schein.");
    6. RemovePlayerFromVehicle(playerid);
    7. }
    8. else
    9. {
    10. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    11. }
    12. }
    13. else if(sMotorrad(vehicleid))
    14. {
    15. if(pInfo[playerid][pMotorradschein] == 0)
    16. {
    17. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Motorrad-Schein.");
    18. RemovePlayerFromVehicle(playerid);
    19. }
    20. else
    21. {
    22. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    23. }
    24. }
    25. else if(sBoot(vehicleid))
    26. {
    27. if(pInfo[playerid][pBootschein] == 0)
    28. {
    29. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Boot-Schein.");
    30. RemovePlayerFromVehicle(playerid);
    31. }
    32. else
    33. {
    34. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    35. }
    36. }
    37. else if(sLKW(vehicleid))
    38. {
    39. if(pInfo[playerid][pLKWschein] == 0)
    40. {
    41. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen LKW-Schein.");
    42. RemovePlayerFromVehicle(playerid);
    43. }
    44. else
    45. {
    46. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    47. }
    48. }
    49. else if(sFlugzeug(vehicleid))
    50. {
    51. if(pInfo[playerid][pFlugschein] == 0)
    52. {
    53. SendClientMessage(playerid, -1,"{c45461}Du hast noch keinen Flug-Schein.");
    54. RemovePlayerFromVehicle(playerid);
    55. }
    56. else
    57. {
    58. SendClientMessage(playerid,-1,"{FAFAFA}Benutze den Befehl{009BFF} /Motor{FAFAFA} um den Motor zu starten. Mit den Befehl {009BFF}/Licht{FAFAFA} schaltest du das Licht ein.");
    59. }
    60. }
    61. }
    62. }
    Alles anzeigen
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo

  • Da ist Return 0 und 1

    PAWN-Quellcode

    1. stock sMotorrad(vehicleid)
    2. {
    3. switch(GetVehicleModel(vehicleid))
    4. {
    5. case 461,463,468,471,521,522,523,581,586: return 0;
    6. }
    7. return 1;
    8. }
    9. stock sAuto(vehicleid)
    10. {
    11. switch(GetVehicleModel(vehicleid))
    12. {
    13. case 549,546,547,545,540,541,542,543,533,534,531,535,536,539,527,528,529,530,526,516,517,
    14. 500,518,502,503,504,505,506,507,489,490,491,492,494,495,496,482,483,485,
    15. 477,478,479,480,474,475,466,470,467,459,458,451,400,401,402,404,405,409,
    16. 410,411,412,413,415,418,419,420,421,422,424,426,429,434,436,438,439,440,
    17. 556,557,558,559,560,561,562,550,551,552,554,555,442,443,444,585,587,588,
    18. 580,582,583,579,575,576,574,445,565,566,567,568,571,572,589,596,597,
    19. 598,599,600,601,602,603,604,605: return 0;
    20. }
    21. return 1;
    22. }
    23. stock sLKW(vehicleid)
    24. {
    25. switch(GetVehicleModel(vehicleid))
    26. {
    27. case 532,524,525,514,515,508,499,498,486,403,406,407,408,414,416,423,427,
    28. 578,573,428,431,432,433,437,455,456,544,609: return 0;
    29. }
    30. return 1;
    31. }
    32. stock sFlugzeug(vehicleid)
    33. {
    34. switch(GetVehicleModel(vehicleid))
    35. {
    36. case 577,563,553,548,497,417,425,447,460,469,487,488,511,512,513,519,520,
    37. 592,593: return 0;
    38. }
    39. return 1;
    40. }
    41. stock sBoot(vehicleid)
    42. {
    43. switch(GetVehicleModel(vehicleid))
    44. {
    45. case 493,430,446,452,453,454,472,473,476,484,595: return 0;
    46. }
    47. return 1;
    48. }
    Alles anzeigen
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo
  • Entweder bin ich doof oder es funktioniert nicht

    Quellcode

    1. stock sFlugzeug(vehicleid)
    2. {
    3. switch(GetVehicleModel(vehicleid))
    4. {
    5. case 577,563,553,548,497,417,425,447,460,469,487,488,511,512,513,519,520,592,
    6. 593: return 1;
    7. }
    8. return 0;
    9. }
    10. stock sBoot(vehicleid)
    11. {
    12. switch(GetVehicleModel(vehicleid))
    13. {
    14. case 493,430,446,452,453,454,472,473,476,484,595: return 1;
    15. }
    16. return 0;
    17. }
    Alles anzeigen
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo
  • Wenn die anderen Funktionen auch so aussehen, dann ist das korrekt und sollte auch funktionieren.
    Lass dir ansonsten mal die Model-ID per print ausgeben, falls es nicht klappt, und prüfen dann, ob die vielleicht doch im switch drin steht.
    Vor den if-Abfragen:

    PAWN-Quellcode

    1. printf("vehicleid: %d / Model-ID: %d / sAuto: %d", vehicleid, GetVehicleModel(vehicleid), sAuto(vehicleid));
  • //EDIT

    Habe nochmal alles nachgeschaut eine Funktion habe ich vergessen geht doch danke!

    Also erst einmal funktioniert alles gut nur das der Spieler ganz normal bei der Fahrstunde aussteigen kann was nicht der Fall sein soll, also wenn er das Auto verlässt will ich das die Fahrstunde gestoppt wird und das Auto wieder zum Spawn geschickt wird, wie soll ich anfangen bei onplayervehicleexit oder kann das noch hier mit rein? ( ist das erste mal das ich damit arbeite das jemand ein Fahrzeug verlässt )

    PAWN-Quellcode

    1. public OnPlayerEnterCheckpoint(playerid)
    2. {
    3. switch(IsInCheckpoint(playerid,FS_Points<FAHRSCHUL_ROUTE>))
    4. {
    5. case FINAL_CHECKPOINT:
    6. {
    7. if(isPlayerInFSCar(playerid))
    8. {
    9. GameTextForPlayer(playerid, "~w~Fahrstunde\n~g~Bestanden", 5000, 3);
    10. SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    11. ClearCheckpoint<FAHRSCHUL_ROUTE>(playerid);
    12. pInfo[playerid][aFahrstunde] =-1;
    13. }
    14. else SendClientMessage(playerid,-1,"{c45461}Du befindest dich in keinem Fahrschul-Auto.");
    15. }
    16. case NORMAL_CHECKPOINT:
    17. {
    18. if(isPlayerInFSCar(playerid))
    19. {
    20. NextCheckpoint(playerid, FS_Points<FAHRSCHUL_ROUTE>, 5.0);
    21. }
    22. else SendClientMessage(playerid,-1,"* Du bist in keinem FS Auto!");
    23. }
    24. }
    25. return 1;
    26. }
    Alles anzeigen
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von BrightLeaN ()

  • Also, irgendwie verstehe ich es nicht warum oldstate nicht definiert ist?

    PAWN-Quellcode

    1. public OnPlayerExitVehicle(playerid, vehicleid)
    2. {
    3. if(pInfo[playerid][aFahrstunde] == 1);
    4. {
    5. if(oldstate == PLAYER_STATE_DRIVER) return RemovePlayerFromVehicle(playerid);
    6. }
    7. return 1;
    8. }


    Quellcode

    1. (2012) : error 036: empty statement
    2. (2014) : error 017: undefined symbol "oldstate"
    3. Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
    4. 2 Errors.
    EyL, German Roleplay. Opening 2019
    youtube.com/watch?v=MjWlICSj6Jo