KindOfVehicle

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Guten Abend,


    ich habe ein kleines Include geschrieben, womit man die Art vom Fahrzeug herausfinden kann!
    //return 0 = Fahrzeug existiert nicht!
    //return 1 = Auto
    //return 2 = Motorrad / Roller
    //return 3 = Flugzeug
    //return 4 = Helikopter
    //return 5 = Boot
    //return 6 = LKW / Kleintransporter
    //return 7 = Anhänger
    //return 8 = RC Fahrzeuge
    //return 9 = Bus
    //return 10 = Panzer
    //return 11 = Monster Truck
    //return 12 = Teile der Straßenbahn
    //return 13 = Fahrrad
    //return 14 = Teile des Zuges
    //return 15 = Luftkissen


    Ihr könnt mit dieser Funktion abfragen, ob das Fahrzeug (vehicleid) ein Auto, etc. ist.
    Es wird jeweils immer eine Zahl returnt, wodurch ihr euch orientieren könnt was das Fahrzeug ist.




    Pastenbin: Pastebin


    Beispiel Befehl:
    ocmd:check(playerid,params[]){
    new veh;
    if(sscanf(params,"i",veh))return SendClientMessage(playerid,-1,"/check [Veh]");
    if(KindOfVehicle(veh) == 0)return SendClientMessage(playerid,-1,"Fahrzeug exstiert nicht!");
    return 1;
    }


    Ich hoffe, ihr könnt damit etwas anfangen.


    Bugs, oder Verbesserungsvorschläge bitte umgehend schicken!


    ( Kaliber: Danke für die Hilfe beim finden des Fehlers!)


    EDIT:
    Goldkiller: Ich habe es nun geändert, weiß auch nicht warum ich es nicht direkt gemacht habe. :pinch:


    Mit freundlichen Grüßen,
    [NGD]Manne

  • Ich habe vorhin ein Scripting Problem gesehen, wo er abfragen wollte ob die VehicleID ein Auto ist.
    Dafür wäre es nützlich.

  • Aber die Inkludierung von der samp include brauchst du doch eigendlich nicht, oder täusche ich mich da?


    Nun, sicher ist sicher ;)


    #include <a_samp>
    #include <KindVehicle>
    Das würde ohne Fehler funktionieren, da könnte man auch das Includieren weg lassen, da man es ja im Gamemode schon macht.


    Aber folgendes:


    #include <KindVehicle>
    #include <a_samp>
    Das würde zu Fehlern kommen, da auf Funktionen zugegriffen werden, die in der a_samp Include sind ;)


    Aus diesem Grund ist es halt sicherer, dass es auch ja nicht zu Fehlern kommt und durch die Directives in der a_samp Include kann sie auch nicht 2x includiert werden ;)


    Aus diesem Grund ist das besser so, wie er es gemacht hat ;)


    //Edit:
    Was er noch machen sollte wäre sowas:
    #if defined _KindaVehicle
    #endinput
    #endif
    #define _KinaVehicle
    Damit sein Include nicht 2x includiert werden kann ;)


    mfg. :thumbup:

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Hiermit pushe ich den Thread einmal, da ich in letzter Zeit viele Fragen darüber gesehen habe.


    MfG

  • Verbesserungsvorschlag:
    #define NONE (1)
    #define CAR (2)
    #define MBIKE (3)
    ....
    #define BICYCLE (14)
    ...
    case xyz[...]: return BICYCLE;
    Dann könnte man, wenn ich mich nicht täusche in seinem Script einfach das hier nutzen:
    if(KindOfVehicle(veh) == BYCYCLE)return SendClientMessage(playerid,-1,"Fahhrad[...] etc pp.");
    Wäre halt deutlich einfacher, als sich die Zahlen zu merken.
    Man müsste halt achten, dass man nicht 2x definiert (falls jemand random den gleichen Namen in seinem eigentlichen Script benutzt). Aber ich glaube man kann halt wieder irgendwie sowas machen #if !defined NAME #define [...]

  • In PAWN (von mir aus auch SA:MP) sind die meisten daran gewöhnt, dass eine Funktion wahr zurück gibt wenn es keine Probleme gab (Ist zumindest bei sehr vielen Funktionen der Fall, spontan fällt mir nur strcmp und strfind ein wo es nicht so ist). Bei KindOfVehicle klappt das nicht, was sicherlich viele dazu bringen wird, gleich 2x hinzusehen:

    Zitat

    //return 1 = Fahrzeug existiert nicht!


    if(KindOfVehicle(veh) )return SendClientMessage(playerid,-1,"Cooles Fahrzeug, oder eben nicht da return 1");


    Daher würde ich es auf 0 schieben, sollte das Fahrzeug nicht existieren.

  • Ich habe es geändert, Goldkiller.
    Beim Erstellen der Include habe ich wohl nicht richtig nachgedacht, wodurch mir dieser Fehler unterkam. :whistling:


    alva:
    Die Personen, die es gerne so haben möchten, können sich den Code ja gerne so umschreiben, wie sie es möchten. Ich, für meinen Teil, belasse es bei den Zahlen.

  • Doch habe ich schon, bloß die Personen, die sich die Zahlen nicht merken möchten / können, die könnten sich das selbst umschreiben, wie bei deinem Beispiel.
    Ich belasse es jedoch bei meinem Beispiel. Wenn du Lust hast, kannst du es ja auch umschreiben, und es hier drunter schreiben, ich werde es jedoch nicht machen, da ich das lieber mit den Zahlen machen würde. :thumbup:

    EDIT:

    alva:
    Und ob ich dich richtig verstanden habe. Wenn du aber meinst, dass das zu hoch für mich ist, dann lasse doch einfach deine dummen Kommentare bei dir!
    Mit deinem Beispiel kann man mit einem "Wort" z.B. if(KindOfVehicle(veh) == CAR)abfragen, anstatt wie bei mir mit einer Zahl.
    Woran habe ich da nun nichts verstanden? Du solltest dir meine Texte vielleicht nochmals genauer durchlesen. Alles weitere kläre ich mit dir nur noch per PN, soweit du noch Klärungsbedarf hast! :pinch:

    2 Mal editiert, zuletzt von AirM4X ()