Random Kennzeichen

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
  • Hallo,
    Ich brauche eure hilfe :D
    Ich habe mit der SuFu leider nichts brauchbares gefunden.
    Denn ich suche ein System wo man ins Rathaus gehen muss um sein Auto anzumelden.
    Also das man dann in so ein i geht und für so und soviel geld sein Auto anmelden kann... (Befehl)


    Format:


    Stadt-2 anfangsbuchstaben des namens oder 2 zufällige Buchstaben - 3 Zufallszahlen


    Ein Bsp:


    LS-BU-824


    MfG :thumbup:

  • String und ne Random-Zahl zwischen 100 und 999
    Oder die VehicleID mal 10 ;)


    Könnte dann so aussehen:
    new kennzeichen[MAX_VEHICLES];
    kennzeichen[vehicleid] = vehicleid*10;


    Dann halt nen String und den 3D Text Attachen.
    wichtig: Musst irgendwie die Vehicle-ID rausfinden.
    Ambesten nit ner for-schleife bei OnGameModeInit




    Fertig.

  • Ungetestet:
    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20];
    kennzeichen[vehicleid] = vehicleid*10;
    format(string, sizeof(string), "SA-%s",kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


  • "kennzeichen" ist ein Integr und kein string, folglich wirst du mit %s nicht weitkommen

  • Integer %d anstatt String %s


    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20];
    kennzeichen[vehicleid] = vehicleid*10;
    format(string, sizeof(string), "SA-%d",kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


    Kannst natürlich auch nicht von der Vehicleid anhängen lassen


    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20];
    kennzeichen[vehicleid] = random(98)+1;
    format(string, sizeof(string), "SA-%s",kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


    edit: Wenn du da noch zwei Buchstaben zwischen haben willst würd ich die ersten zwei des Playername nehmen.


    new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES],string[20],pname[20],nname[3];;
    GetPlayerName(playerid,pname,sizeof(pname));
    strmid(nname,pname,0,1);
    kennzeichen[vehicleid] = random(98)+1;
    format(string, sizeof(string), "SA-%s-%d",nname,kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    }


    Sollte eigentlich funktionieren.
    Dafür musst du natürlich das Auto euf einem bestimmten Spieler zuschreiben. Aber wenn du ihn in der Stadthalle anmeldest weißt duw arscheinlich wies geht.

    Einmal editiert, zuletzt von Hagi ()

  • Hi,
    ich habs gerade compiliert und ... ähm 2 Errors ...
    Ich benutzte ein editiertes LoH-GM.
    Das Autohaus ist warscheinlich von DT_Sniper


    D:\BuzZ\SAMP\LoHGM\gamemodes\LoH.pwn(12841) : error 036: empty statement
    D:\BuzZ\SAMP\LoHGM\gamemodes\LoH.pwn(12842) : error 017: undefined symbol "playerid"


    Zeilen:


    new Text3D:vehicle3d[MAX_VEHICLES],string[20],pname[20],nname[3];;
    GetPlayerName(playerid,pname,sizeof(pname));


    Den ersten fehler hab ich grad selber behoben :) ein ; zuviel ... nur noch das playerid dings ^^


    MfG.


  • new kennzeichen[MAX_VEHICLES];//-----[Ganz oben ins Script]
    public OnVehicleSpawn(vehicleid)
    {
    new Text3D:vehicle3d[MAX_VEHICLES], string[20], buchstaben[26];
    format(buchstaben, sizeof(buchstaben), "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
    kennzeichen[vehicleid] = random(98)+1;
    format(string, sizeof(string), "SA-%s%s-%d", buchstaben[random(sizeof(buchstaben))], buchstaben[random(sizeof(buchstaben))], kennzeichen[vehicleid]);
    vehicle3d[vehicleid] = Create3DTextLabel(string,COLOR_RED,30.0,30.0,5.0,30.0,0);
    Attach3DTextLabelToVehicle(vehicle3d[vehicleid],vehicleid, 0.0, 0.0, 0.0);
    return 1;
    }


    So müsste es gehen.

  • Das ist ja sogesehen nur der "Generator" für das Nummernschild, nicht das ganze System.
    nimmSendClientMessage(playerid, 0xffffffff, string);raus und füge in die Variable, in der das Nummernschild gespeichert werden soll einfach CreateNummernSchild(playerid)ein, den Rest, wie es z.b. ans Auto heften, musst du machen :D


    z.b.//oben irgendwo
    new mein_nummernschild[MAX_PLAYERS];
    //bei dem Befehl etc bei dem der spieler das Nummernschild erhalten soll
    mein_nummernschild[playerid] = CreateNummernSchild(playerid)

  • Was gibt es denn jetzt noch für ein Problem und was für ein CMD willst du?

  • Also wie mach ich das beim cmd mit das :


    //oben irgendwo new mein_nummernschild[MAX_PLAYERS]; //bei dem Befehl etc bei dem der spieler das Nummernschild erhalten soll mein_nummernschild[playerid] = CreateNummernSchild(playerid)


    Also das habe ich ja schonmal^^


    if(strcmp(cmdtext, "/Kennzeichen", true)
    {
    }