[0.3C]Einen Message - Dialog mit Farben erstellen.

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 Tag.
    In diesem Tutorial zeige ich euch, wie ihr einen Info Dialog erstellt der Farben hat.


    Was brauchen wir ?
    - Pawno
    - HTML Color Picker


    - - - - - - - - -
    Dann fange ich mal an.


    Als erstes Definiert ihr erstmal euren Dialog damit ihr ihn später unter dem Namen wieder findet.
    #define MSGDIALOG 1
    Danach sucht ihr euch eine Stelle aus, wo der Dialog erscheinen soll.
    Ich mache es hier erstmal mit einem Command.




    if(strcmp( "/info", cmdtext, true, 10) == 0)
    {
    ShowPlayerDialog(playerid, MSGDIALOG, DIALOG_STYLE_MSGBOX, "..:: INFO ::..","Hallo, dies ist der Tutorial Dialog von ]BDC[Aldi","_","_");
    }

    Nun ist der Dialog noch komplett weiss....

    Da wir ihn aber Bunt haben wollen, müssen wir den
    HTML Color Picker einsetzen. Ich bevorzuge diesen hier:
    http://www.colorpicker.com/
    Dort wählt ihr einfach eine Farbe aus.
    Ich nehme hier jetzt mal mehrere damit ihr seht was passiert.


    Folgende Farben kommen:
    Rot - FF0000
    Gelb - FFCC00
    Orange - FF7700
    die Buchstaben und Zahlen sind der Farbcode.
    Nun wollt ihr ja die Farben drine haben.
    Dies geht so:
    Ihr nehmt den Dialog.
    ShowPlayerDialog(playerid, MSGDIALOG, DIALOG_STYLE_MSGBOX, "..:: INFO ::..","Hallo, dies ist der Tutorial Dialog von ]BDC[Aldi","_","_");
    Und fügt die Farben so vor den Text ein:
    {CODE}
    Also für mein Rot: {FF0000}
    Die Farbe wird so lange benutz bis sie geändert wird in dem Dialog.
    Also der Name wird rot.
    {FF0000}
    Vom Fenster der Titel wird Gelb.
    {FFCC00}
    und der komplette Text bis zum Namen wird Orange
    {FF7700}
    Also müsste der Dialog dann so aussehen:
    ShowPlayerDialog(playerid, MSGDIALOG, DIALOG_STYLE_MSGBOX, "{FFCC00}..:: INFO ::..","{FF7700}Hallo, dies ist der Tutorial Dialog von {FF0000}]BDC[Aldi","_","_");
    Im Spiel sähe der Dialog dann so aus:



    Ich hoffe dieses kleine Tutorial hilft euch weiter.
    Mit der gleich Methode macht ihr auch die 3D Text Labels Bunt.


    /* Edit *\
    Wie ihr auf den Bildern sehen könnt, ist beim Einlogg Text Scripter & Mapper Farbe auch Bunt.
    Das geht natürlich auch mit den Codes...

    Mit vielen Grüßen,
    ]BDC[Aldi

    Einmal editiert, zuletzt von ]BDC[Aldi ()

  • jop für neulinge sher gut erklärt eigentlich sehr simple nur vor dem Text in klammern nen zahlencode einfügen 10/10 von mir. ;)

  • Danke für deine Bewertung.


    @Alle:
    In meinem Post habe ich eine kleine Veränderung vorgenommen.
    Schaut ganz unten unter
    /* Edit *\


    MFG

  • naja, dadurch würde jede "(" und ")" mit geschweiften klammern ersetzt werden, auch wenn der spieler gar keine farbcodes beabsichtigt.
    für alle, die farbcodes auch im chat ermöglichen wollen, bitteschön:



    //Y_Less ;)
    ReColour(text[])
    {
    new
    pos = -1;
    while ((pos = strfind(text, "(", false, pos + 1)) != -1)
    {
    new
    c = pos + 1,
    n = 0,
    ch;
    // Note that the order of these is important!
    while ((ch = text[code=c]) && n != 6)
    {
    if (!('a' <= ch <= 'f' || 'A' <= ch <= 'F' || '0' <= ch <= '9'))
    {
    break;
    }
    ++c;
    ++n;
    }
    if (n == 6 && ch == ')')
    {
    text[pos] = '{';
    text[code=c] = '}';
    }
    }
    }

    public OnPlayerText(playerid, text[])
    {
    // Recolour the text
    ReColour(text);
    return 1;
    }

    Keine Scripting-Fragen per PM!

  • Lieber Timo ,


    Dieses Tutorial ist sehr schön formuliert und auch sonst kennen wir uns ja und ich weiss
    ja wie gut du Arbeiten kannst.


    10/10


    Mit freundlichen Grüßen Teddy

  • danke an alle.
    Eure netten Kommentare ermutigen mich weitere Tutorials zu machen.
    Die Tutorials sich dann später auch eventuell Videos sein.
    Also wenn ihr Tutorials braucht, schickt mir einfach eine 'PN' und ich schaue ob ich dieses Tutorial auch machen werde.
    Dazu muss ich aber auch Zeit haben und mit SAMP 0.3c muss ich mein Gamemode auch weiter ausbauen.


    /* EDIT *\ an Thommylee:
    Du musst das mit den Farben in den Klammern genauso machen wie in den Dialogen auch. ^^
    Wenn du das mit den Dialogen verstehst, kannst du das auch mit 3D-Labels und SendClientMessage machen.
    Das Prinzip ist genau das selbe ;)

    Einmal editiert, zuletzt von ]BDC[Aldi ()

  • Ich bitte euch jetzt, hier nicht einfach rein zu Spamen.
    Ich will keine Namen nennen oder Thaiboxer ?
    Was mich freuen würde, wäre wenn Leute verbesserungen und Anregungen hier rein Posten würden.


    MFG........

  • ich hab eine frage


    ich habs jetzt mit den farben versucht, das vor den text {0xFF0000AA}
    aber das ging nicht, danach hab ich von dir ein farbcod genommen und der ging {FF0000}


    warum gehen die normal farbcodes nicht, und woher bkomme ich die anderen gibts da ein tool?

  • Der meint meine Zeile ist zu lang -.-
    C:\Users\---\Desktop\Games\GTA-San Andreas\SAMP-Server\gamemodes\Reallife.pwn(276) : error 075: input line too long (after substitutions)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Hier die Zele mit dem Dialog:
    ShowPlayerDialog(playerid,DIALOG_Tutorial,DIALOG_STYLE_MSGBOX,"{FF0000}Serverregeln","{0000FF}Wie auf jeden anderen gibt es auf diesem Server gewisse {FF0000}Regeln{0000FF}, die man zu befolgen hat.\n{0000FF}Bei Regelverstößen gibt es je nach dem eine {FF0000}Warnung, Kick oder Bann.\n\n{00BC00}n1. {FF7A00}Kein Bugusing / Cheaten / Hacking\n{00BC00}2. {FF7A00}Nur 1 Account pro User\n{00BC00}3. {FF7A00}Keine Werbung für andere Server\n{00BC00}4. {FF7A00}Kein Spaming / Flooding","Akzeptieren","Ablehnen");

  • versuchs mal so


    ShowPlayerDialog(playerid,DIALOG_Tutorial,DIALOG_STYLE_MSGBOX,"{FF0000}Serverregeln",
    "{0000FF}Wie auf jeden anderen gibt es auf diesem Server gewisse {FF0000}Regeln{0000FF}, die man zu befolgen hat.\n{0000FF}Bei Regelverstößen gibt es je nach dem eine {FF0000}Warnung, Kick oder Bann.\n\n{00BC00}n1. {FF7A00}Kein Bugusing / Cheaten / Hacking\n{00BC00}2. {FF7A00}Nur 1 Account pro User\n{00BC00}3. {FF7A00}Keine Werbung für andere Server\n{00BC00}4. {FF7A00}Kein Spaming / Flooding"
    ,"Akzeptieren","Ablehnen");


  • new string1[128];
    new string2[128];
    new string3[128];
    new string4[128];
    new stringende[512];


    format(string1, (sizeof string1), "{0000FF}Wie auf jeden anderen gibt es auf diesem Server gewisse {FF0000}Regeln{0000FF}, die man zu befolgen hat.");


    format(string2, (sizeof string2), "{0000FF}Bei Regelverstößen gibt es je nach dem eine {FF0000}Warnung, Kick oder Bann.");


    format(string3, (sizeof string3), "\n{00BC00}n1. {FF7A00}Kein Bugusing / Cheaten / Hacking\n{00BC00}2. {FF7A00}Nur 1 Account pro User.");


    format(string4, (sizeof string4),
    {00BC00}3. {FF7A00}Keine Werbung für andere Server\n{00BC00}4. {FF7A00}Kein Spaming / Flooding");


    format(stringende, (sizeof stringende), "%s\n%s\n%s\n%s",string1, string2, string3, string4);
    ShowPlayerDialog(playerid, DIALOG_Tutorial, DIALOG_STYLE_MSGBOX, stringende, "Akzeptieren","Ablehnen");


    Viel Spaß...
    Das klappt auf jedenfall..