Brauche Hilfe - Chat System

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
  • Hey,


    ich habe gerade ein Chatsystem aber iwie klappt es nicht.


    Kann mir vielleicht irgendjemand die Funktion erstellen?


    Ich möchte es so:
    Wenn jemand schreibt, soll sein Text ganz unten stehen (weil der Beitrag neu ist),
    und dann sollen alle anderen einen weiter nach oben rutschen.
    Also genauso, wie der normale Sa-Mp Chat. Der Chat von mir hat 29 Zeilen.


    Mein System failt total, und ich bekomms einfach nicht hin ;/
    Wäre demjenigen sehr dankbar, wenn mir einer hilft.


    Mein Code momentan:

    Spoiler anzeigen
    stock ChatInput(playerid, text[])
    {
    new Ausgabe[128];
    format(Ausgabe,128,"~b~%s:~w~ %s",GetName(playerid),text);
    for(new i=0; i<30; i++)
    {
    if (strcmp("_", ChatInhalt[0], true, 10) == 0) {
    TextDrawSetString(ChatZeile[playerid][0],Ausgabe);
    format(ChatInhalt[0],128,"%s",Ausgabe);
    return 1;
    }
    else {
    TextDrawSetString(ChatZeile[playerid][0],Ausgabe);
    for(new x=1; x<30; x++)
    {
    TextDrawSetString(ChatZeile[playerid][x],ChatInhalt[i]);
    format(ChatInhalt[x],128,"%s",ChatInhalt[i]);
    }
    }
    }
    return 1;
    }


    //EDIT:
    ChatZeile[playerid][zahl] = Jeweils die 1-29 Zeile des Chats (Textdraw)
    ChatInhalt[zahl] = Jeweils die 1-29 Zeile des Chats (Nur der Inhalt)

  • Der Ansatz sieht einigermaßen logisch aus, ist jedoch um einiges komplizierter, als er sein müsste.
    stock ChatInput(playerid, text[])
    {
    new Ausgabe[128];
    format(Ausgabe,128,"~b~%s:~w~ %s",GetName(playerid),text);
    for(new i=0; i<30; i++)
    {
    if(i<29) format(ChatInhalt[i],128,"%s",ChatInhalt[i+1]);
    else format(ChatInhalt[i],128,"%s",Ausgabe);
    }
    return 1;
    }
    So sollte es funktionieren - Ggf. musst du das noch ein wenig umändern, als ich den Beitrag anfing, wusste ich noch genau wie das zu machen ist,
    als ich zum Code kam wusste ich es nicht mehr^^

    Ich bin
    .. seit etwa 2007 in der Webentwicklung tätig, seit 2013 professionell
    .. Erfahrener Entwickler in PHP, Swift, Javascript, Typescript und Ruby. Zusätzlich habe ich Erfahrung in Python, Java, C#, C++, Prolog und einigen esoterischen Programmiersprachen
    .. Luftfahrtenthusiast und Segelflieger


  • Und wo packe ich da dann mein TextDrawSetString rein?
    Nicht dass es wieder buggt :S


    Ich habs jetzt so gemacht, und nun wird mein Chat zugespammt ^^


    stock ChatInput(playerid, text[])
    {
    new Ausgabe[128];
    format(Ausgabe,128,"~b~%s:~w~ %s",GetName(playerid),text);
    for(new i=0; i<30; i++)
    {
    if(i>0) {
    format(ChatInhalt[i],128,"%s",ChatInhalt[i-1]);
    TextDrawSetString(ChatZeile[playerid][i], ChatInhalt[i]);
    }
    else {
    format(ChatInhalt[i],128,"%s",Ausgabe);
    TextDrawSetString(ChatZeile[playerid][i], ChatInhalt[i]);
    }
    }
    return 1;
    }

    2 Mal editiert, zuletzt von Sh12 ()