Dynamichen Chat

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 Versuche ein Chat System zu bauen nur will es nicht so ganz denn immer wenn ich jetzt /irgendwas eingebe kommt immer Blabla obwohl es nur passieren soll wenn meine abfrage mit einer for schleife durch einen MAX_CHATS 24 gefunden hat also einer der 24 soll dann ein string sein wo z.b steht /fchat und wenn dies übereinstimmt soll es funktionieren und nich wenn man egal was eingibt...


    hier mal mein code: for(new i = 1; i < MAX_CHATS; i++)
    {
    if(strcmp(cmdtext,CInfo[i][CKuerzel],true)==0)
    {
    SendClientMessage(playerid,Rot,"Blabla");
    return 1;
    }
    }

  • ja aber das ist ja nicht die hauptsache das problem ist das wenn ich irgendwas mit / eingebe BlaBla angezeigt wird was eigl nicht sollte wenn ich ja was unbekanntes eigebe muss ja Unkown Command kommen.


    und normalerweise so so kommt es bei der schleife für bizzes bei mir und player usw oder wie kommtst du darauf?

  • Ist das überhaupt zulässig?:
    if(strcmp(cmdtext,CInfo[i][CKuerzel],true)==0)


    Ansonsten poste einfach mal dein Code /schick ihn mir per PN, dann bastel ich das mal in OCMD um, falls das gewünscht ist.

  • hab das jetzt so aber klappt immernoch nicht : public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/r", true))
    {
    for(new i = 0; i < max_p; i++)
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Eingeloggt")==1)
    {
    SavePlayer(i);
    }
    }
    SetTimer("restart",5000,0);
    return 1;
    }
    else if(!strcmp(cmdtext, "/handy") || !strcmp(cmdtext, "/h"))
    {
    Handy(playerid);
    return 1;
    }
    if(!strcmp(cmdtext,"/chatein",true))
    {
    format(CInfo[1][CKuerzel],24,"/fraktion");
    SendClientMessage(playerid,Lila,CInfo[1][CKuerzel]);
    return 1;
    }
    else for(new i = 1; i < MAX_CHATS; i++)
    {
    if(!strcmp(cmdtext,CInfo[i][CKuerzel],true))
    {
    SendClientMessage(playerid,Rot,"Blabla");
    return 1;
    }
    }
    return 0;
    }


    MFG

  • geht leider nicht ... hab schon alles probiert...


    das problem ist das ich praktisch die for schleife nach der abfrage machen müsste oder etwas stimmt mit der abfrage nicht das die angibt das der befehl übereinstimmt obwohl es nicht so ist


    // edit hab es jetzt mal so aber geht immernoch nit : public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(!strcmp(cmdtext, "/r", true))
    {
    for(new i = 0; i < max_p; i++)
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Eingeloggt")==1)
    {
    SavePlayer(i);
    }
    }
    SetTimer("restart",5000,0);
    return 1;
    }
    if(!strcmp(cmdtext, "/handy") || !strcmp(cmdtext, "/h"))
    {
    Handy(playerid);
    return 1;
    }
    if(!strcmp(cmdtext,"/chatein",true))
    {
    format(CInfo[1][CKuerzel],24,"/fraktion");
    SendClientMessage(playerid,Lila,CInfo[2][CKuerzel]);
    return 1;
    }
    else for(new i = 1; i < MAX_CHATS; i++)
    {
    SendClientMessage(playerid,Rot,CInfo[i][CKuerzel]);
    if(!strlen(cmdtext))
    {
    return 0;
    }
    else
    {
    if(!strcmp(cmdtext,CInfo[i][CKuerzel],true))
    {
    SendClientMessage(playerid,Rot,"Blabla");
    return 1;
    }
    else
    {
    SendClientMessage(playerid,Rot,"Diesen Befehl gibt es nicht.");
    }
    }
    return 0;
    }
    return 0;
    }
    // edit frage hinzugefügt


    geht das wenn ich als erstes abfrage ob z.b if(!strcmp(cmdtext, "/c", true))
    eingegeben wurde müsste ja dann mach ich das so das mit dem chat system immer erst /c(und dann da hinter der verschiedene text währe wie z.b fraktion oder f) hier ein beispiel /cf oder /cfraktion

    2 Mal editiert, zuletzt von janpplayer ()

  • geht das wenn ich als erstes abfrage ob z.b if(!strcmp(cmdtext, "/c", true))
    eingegeben wurde müsste ja dann mach ich das so das mit dem chat system immer erst /c(und dann da hinter der verschiedene text währe wie z.b fraktion oder f) hier ein beispiel /cf oder /cfraktion


    Verwende doch bitte Satzzeichen.
    Meinst du, 2 Commands für einen Befehl?


    Würde so aussehen:

    if (!strcmp(cmdtext, "/cf") || !strcmp(cmdtext, "/cfraktion")) {