[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • Du musst das hier:

    C
    new vehicleid=GetPlayerVehicleID(playerid);


    vor

    C
    if(HSirene[playerid] == 0)

    setzen.

  • Kann mir das jemand mal erklären? Ich möchte die Chatfarbe ändern doch erhalte immer wieder ein Error :pinch:



    C
    // Send them welcome messages
    	SendClientMessage(playerid, -1, ""COL_PRIM"It's {FFFFFF}Bulletproof"COL_PRIM". Your bullets are fruitless. You can't take it down!");
        SendClientMessage(playerid, -1, ""COL_PRIM"Get started: {FFFFFF}/help "COL_PRIM"and {FFFFFF}/cmds");
        SendClientMessage(playerid, -1, ""COL_PRIM"Don't miss our updates: {FFFFFF}/checkversion");
        SendClientMessage(playerid, -1, ""COL_PRIM"Check {FFFFFF}/changelog "COL_PRIM"out to see what's up with this version!");
        SendClientMessage(playerid, -1, ""COL_PRIM"Developers: {FFFFFF}Whitetiger"COL_PRIM" & {FFFFFF}[KHK]Khalid"COL_PRIM"");
        new str[128];
        format(str,sizeof(str),""COL_PRIM"Server limits:  Min FPS = {FFFFFF}%d "COL_PRIM"| Max Ping = {FFFFFF}%d "COL_PRIM"| Max PL = {FFFFFF}%.2f", Min_FPS, Max_Ping, Float:Max_Packetloss);
    	SendClientMessage(playerid, -1, str);

    Ich änder COL_PRIM immer zu GRUEN um und erhalte diese Errors. Ja, Grün ist oben definiert, so : #define GRUEN 0x00FF5AFF


    Errors:


    Mit freundlichen Grüßen
    JustMe.77 8)

  • @Jeffry


    Ja das versuche ich wenn's mit diesem Schritt nicht klappt. Habe die Include mal hier geöffnet:



    Und by the way, was für eine Code Hervorhebung soll ich immer benutzen?


    Mit freundlichen Grüßen
    JustMe.77 8)

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Du könntest ja eine Funktion bauen, ähnlich wie "isNumeric".
    Also du willst doch "FF0088" "0x88FDA0" und solche Strings auslesen oder nicht?


  • Du könntest ja eine Funktion bauen, ähnlich wie "isNumeric".
    Also du willst doch "FF0088" "0x88FDA0" und solche Strings auslesen oder nicht?


    Sowas hab ich mir vorgestellt. Nur sollte das Format 0xFFFFFFFF abgeprüft werden

  • @Apokrate
    Also der Code, den ich gesendet habe, der nimmt alle HEX Formate.
    Sowohl FF8800 als auch 0xFF8800 wären gültig.


    Hier nochmal eine Alternative. Einfach 'strict_0x' auf 'true' setzen, dann werden nur noch Hexadezimale Zahlen gewertet, welche auch mit '0x' anfangen.


    Source Code + Test:

  • @Apokrate
    Also der Code, den ich gesendet habe, der nimmt alle HEX Formate.
    Sowohl FF8800 als auch 0xFF8800 wären gültig.


    Hier nochmal eine Alternative. Einfach 'strict_0x' auf 'true' setzen, dann werden nur noch Hexadezimale Zahlen gewertet, welche auch mit '0x' anfangen.


    Source Code + Test:

    Dieser Code lässt aber auch 0x123 zu.
    Hab ich eben getestet

  • 0x123 ist ja auch eine Hexadezimale Zahl ^^ Geht ja von '0' bis 'F'


    0x123 = 291


    Wenn du eine bestimme Länge möchtest, musst du halt noch gleichzeitig mit [wiki]strlen[/wiki] arbeiten.


    Sonst bau halt noch eine "len" Funktion rein :P
    Für eine RGBA Farbe müsstest du dann (logischerweise) len = 10 angeben.


  • 0x123 ist ja auch eine Hexadezimale Zahl ^^ Geht ja von '0' bis 'F'


    0x123 = 291


    Wenn du eine bestimme Länge möchtest, musst du halt noch gleichzeitig mit [wiki]strlen[/wiki] arbeiten.

    Ich wollte es halt so machen, dass man einen Pawn HEX Code eingibt, welcher dann gespeichert wird.
    Weiß halt nur nicht, wie ich dem Spieler dann "sage", dass er keinen gültigen angegeben hat.

  • Naja, es ihm zu "sagen" ist einfach.


    C
    if(IsHex(inputtext)) {
    	// Gültige Hexadezimale Zahl
    	SendClientMessage(playerid,-1,"Erfolgreich");
    }
    else if(!IsHex(inputtext)) {
    	// Ungültige Hexadezimale Zahl
    	SendClientMessage(playerid,-1,"Deine Eingabe muss Hexadezimal sein.");
    }


    Oder was meinst du nun?

  • Naja, es ihm zu "sagen" ist einfach.


    C
    if(IsHex(inputtext)) {
    	// Gültige Hexadezimale Zahl
    	SendClientMessage(playerid,-1,"Erfolgreich");
    }
    else if(!IsHex(inputtext)) {
    	// Ungültige Hexadezimale Zahl
    	SendClientMessage(playerid,-1,"Deine Eingabe muss Hexadezimal sein.");
    }

    Oder was meinst du nun?

    Ja, das hab ich ja :D
    Gibt mir 0x123 aber auch eine Farbe wieder?

  • Ne, wenn du eine Farbe möchtest, muss es (je nachdem) im RBG- (6 Stellen) oder RGBA-Format (8 Stellen) sein.
    Ich habe vorhin meine Antwort editiert, aber hier nochmal. Du kannst einfach den Parameter "len" in der Funktion hinzufügen (damit es einfach bleibt).




    Und deine Abfrage machst du dann einfach so (entweder len = 8 (RGB) oder len = 10 (RGBA))


    C
    if(IsHex(inputtext, true, 10)) { /* Gültige RGBA-Farbe */ }
    if(IsHex(inputtext, true, 8)) { /* Gültige RGB-Farbe */ }
  • do.de - Domain-Offensive - Domains für alle und zu super Preisen