VehicleNumberPlate auslesen

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
  • gibt es eine möglichkeit eine abfrage zu erstellen was auf dem Schild steht?


    sowas wie z.B.
    if(VehicleNumberPlate == "Admin"){[Hier dann das was dann gemacht werden soll]}

  • gibt es eine möglichkeit eine abfrage zu erstellen was auf dem Schild steht?


    Ja, das musst du allerdings in einer Variable zwischenspeichern.
    Auslesen per GetVehicleNumberPlate, geht somit nicht

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Natürlich geht das.


    Beispielsweise:



    new VehicleKZ[MAX_VEHICLES];
    VehicleKZ[vehicleid] = "XYZR 000";
    if(strcmp(VehicleKZ[vehicleid], "XYZR 000", true))
    // Was passiertw enn das Kennzeichen XYZR 000 ist.

    Wer ist der Mensch hinter der Uniform? Ist euch das bekannt?
    Es ist der selbe der noch eben in Zivil neben euch stand.
    Warum wird er gehasst und so selten respektiert?
    Warum ist er derjenige der seinen Hals für euch riskiert?
    Trägt der Bulle eine Weste, das hat er früher nie gemacht,
    die Zeiten haben sich geändert und jeder Dienst ist ein Kampf!
    Warum gibt’s das SEK und warum sind sie so brutal?
    Und wieso hat wieder einer mit seinem Leben bezahlt?

  • um vlt mal etwas mehr zu erzählen...
    ich habe ein autospawn befehl eingefügt der auch wunderbar klappt und dieses auto was ich dort spawne das hat halt ein nummernschild mit der aufschrift admin. Wenn nun dieses auto zerstört wird soll es gelöscht werden und nicht erneut gespawnt werden. Dafür habe ich folgendes geschrieben:
    public OnVehicleDeath(vehicleid, killerid){ if(vehicleid == Admincar) { DestroyVehicle(vehicleid); } return 1;}



    allerdings nützt mir das nichts. Denn wenn ein weiterer wagen gespawnt wird dann heißt der neue wagen admincar und der alte nicht mehr. wenn nun der alte kaputt geht dann wird er erneut gespawnt und ich dachte hier an das nummernschild. das ist überall gleich und darum möchte ich abfragen ob auf dem nummernschild admin steht wenn ja dann soll er es löschen wenn nein dann nicht. wenn ich eine variable mitlaufen lasse dann habe ich wieder das selbe problem wie mit admincar. wenn ich ein neues car spawne ist das also kein admincar mehr

  • Mach eine neue Variable z.B.:
    new NumberPlates[MAX_VEHICLES][128];


    Und bei dem aufruf von SetVehicleNumberPlate benutzt du dann:

    new vehicleid = GetPlayerVehicleID(playerid);
    SetVehicleNumberPlate(vehicleid,"Nummernschild-01");
    NumberPlates[vehicleid][128] = "Nummernschild-01";


    Und wenn du das Schild abrufen möchtest machst du:
    new Schild[128] = NumberPlates[GetPlayerVehicleID(playerid)];


    Ich hoffe es geht :thumbup:

  • NumberPlates[vehicleid][128] = "Nummernschild-01";
    new Schild[128] = NumberPlates[GetPlayerVehicleID(playerid)];


    Ihr steht ja förmlich auf Memoryleaks...


    Wozu gibt es die format Funktion überhaupt?
    Abgesehen davon ist der String viel zu groß 32 Zeichen reichen, SetVehicleNumberPlate nimmt eh nicht mehr an

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • omg so langsam blick ich garnichtmehr durch...


    ich habe nun das mal versucht irgendwie in variablen zu setzen wie es hier von euch geschrieben wurde jedoch bekomme ich nun folgende fehler:
    error 032: array index out of bounds (variable "NumberPlates")error 006: must be assigned to an array



    und mal etwas vorweg: Denkt bitte daran das ich mehrere Admincars habe und das auch mehrere kaputt gehen sollen und es soll ekins wieder gespawnt werden... Denn ich glaube so viel arbeit wie wir uns gerade machen ist sinnlos denn wenn ein neues auto gespawnt wird wird ja wieder alles überschrieben...


    Ich hoffe ihr könnt mir irgendwie weiterhelfen...
    Gibt es nicht eine möglichkeit schon beim spawnen die autos auf eine art liste zu setzen und da dann abzufragen ob sie dort drauf stehen oder nicht? irgenwie muss jedes auto einzigartig im script werden. dann kann ich diese auch einzeln löschen usw. ich weiß nurt nicht genau wie ich das anstellen muss ich dachte mithilfe das nummernschildes wäre es ja etwas was alle adminautos haben. aber wenn das nicht richtig möglich ist dann muss es damit auch nicht gemacht werden...

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • ocmd:newcar(playerid,params[]){ new Float:vehx,Float:vehy,Float:vehz; new vehid,cc1,cc2;if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, GELB,"INFO: /newcar [ID] [FARBE 1] [FARBE 2]"); if(IsPlayerAdmin(playerid)) {GetPlayerPos(playerid,vehx,vehy,vehz); Admincar = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1); PutPlayerInVehicle(playerid, Admincar, 0); SetVehicleNumberPlate(Admincar,SpielerName(playerid)); } else {SendClientMessage(playerid,ROT,"Du bist leider kein Admin!"); } return 1;}


    das ist der befehl der auch wunderbar funktioniert ohne die abfrage und hier derezti noch mit der nummershcildaufschrift = Spielername




    Edit:
    Sagt mal leute wie bekomme ich es hin das der PAWN Quelltext nicht immer in einer zeile ist sondern ordentlich angezit wird die zeilenumbrüche ignoriert das ding ja komplett...

  • Sagt mal leute wie bekomme ich es hin das der PAWN Quelltext nicht immer in einer zeile ist sondern ordentlich angezit wird die zeilenumbrüche ignoriert das ding ja komplett...


    Von Editor auf Quellcode umstellen...

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ok dann gibt es hier nochmla ordentlich den autospawn script_


    ocmd:newcar(playerid,params[])
    {
    new Float:vehx,Float:vehy,Float:vehz;
    new vehid,cc1,cc2;
    if(sscanf(params,"iii",vehid,cc1,cc2))return SendClientMessage(playerid, GELB,"INFO: /newcar [ID] [FARBE 1] [FARBE 2]");
    if(IsPlayerAdmin(playerid))
    {
    GetPlayerPos(playerid,vehx,vehy,vehz);
    Admincar = CreateVehicle(vehid,vehx,vehy,vehz,3,cc1,cc2,-1);
    PutPlayerInVehicle(playerid, Admincar, 0);
    SetVehicleNumberPlate(Admincar,SpielerName(playerid));
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist leider kein Admin!");
    }
    return 1;
    }

  • Das sieht ja schon gut aus und Danke auch schon mal jedoch komme ich damit irgendwie nicht zurecht. Du siehst ja schon unter meinem namen das ich noch blutiger anfänger bin. Ich habe nun also folgendes gemacht:


    public OnVehicleDeath(vehicleid, killerid)
    {
    if(GetVehicleNumberPlate(vehicleid)=="Admin")
    {
    DestroyVehicle(vehicleid);
    }
    return 1;
    }



    Mein Problem:
    error 033: array must be indexed (variable "GetVehicleNumberPlate")


    Du hast geschrieben das man ein String nutzen soll bei den Get sachen... nunja aber wie kann ich das in meinem Fall hinbekommen?
    wenn ich das von dir richtig verstanden habe dann sollte ja mein spawn befehl nach wie vor wunderbar funktionieren... oder?

  • Ich finde es zwar richtig peinlich aber ich hoffe das es nun gleich gehen wird... muss der befehl nciht so aussehen?
    if(strcmp(GetVehicleNumberPlate(vehicleid)=="Admin")


    wenn ja warum bekomme ich immer noch den oben stehenden error

  • Nein, er muss schon so aussehen


    if(!strcmp(GetVehicleNumberPlate(vehicleid),"Admin",true))

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Ok include ist drin Befehl ist drin und es kommt kein error..


    aber egal welches auto kaputt geht, es wird gelöscht egal ob admin oder XYZ123 drauf steht... muss ich das verstehen?


    meine abfrage nochmal hier wird doch eindeutig gefragt was da drauf steht...


    public OnVehicleDeath(vehicleid, killerid)
    {
    if(!strcmp(GetVehicleNumberPlate(vehicleid),"Admin",true))
    {
    DestroyVehicle(vehicleid);
    }
    return 1;
    }

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen