Nachricht wird nicht an den Spieler gesendet

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 liebe Scripter,


    ich probiere mich seit 2 Stunden an diesem Befehl, aber ich weiß nicht wieso ingame kein Text angezeigt wird... Ist da ein Fehler den ich nicht sehe?



    ocmd:funk(playerid, params[])
    {
    new string[128], text[128], sendernamee[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendernamee, sizeof(sendernamee));
    if(sscanf(params,"s[91]",text))return Nachricht(playerid,Rot,"Benutzen Sie: /f(unk) [Text]");
    if(strlen(text) > 90)return Nachricht(playerid,Rot,"Benutzen Sie: /f(unk) [Text darf maximal 90 Zeichen beinhalten]");
    if(SpielerInformation[playerid][FraktionsLeader] == 0 || SpielerInformation[playerid][FraktionsMember] == 0)
    {
    Nachricht(playerid, Rot,"Sie sind in keiner staatlichen Fraktion ");
    return 1;
    }
    else if(SpielerInformation[playerid][FraktionsLeader] == 1 || SpielerInformation[playerid][FraktionsMember] == 1)
    {
    format(string, sizeof(string), "%s %s: %s, over.", FraktionsRangNamen(playerid), sendernamee, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    Nachricht(i, HellBlau, string);
    }
    printf("OAMT - %s", string);
    OrdnungsamtFunkChat(string);
    return 1;
    }
    else if(SpielerInformation[playerid][FraktionsLeader] == 2 || SpielerInformation[playerid][FraktionsMember] == 2)
    {
    format(string, sizeof(string), "%s %s: %s, over.", FraktionsRangNamen(playerid), sendernamee, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    Nachricht(i , HellBlau, string);
    }
    printf("SAPD - %s", string);
    SAPDFunkChat(string);
    return 1;
    }
    return 1;
    }

    Mit freundlichen Grüßen,
    Dachdecker

    Einmal editiert, zuletzt von Dachdecker ()

  • Das hier "OrdnungsamtFunkChat(string);" ist der Log wo es dann drinn abgespeichert werden soll.


    Mein Kollege ist in der Fraktion 1 ( OAMT ) bekommt aber trotzdem die Meldung, dass er in keiner staatlichen Fraktion ist

    Mit freundlichen Grüßen,
    Dachdecker

  • Welche "Nachricht" Funktion meinst du?


    OrdnungsamtFunkChat

    Function OrdnungsamtFunkChat(string1[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s\n", string1);
    new File:hFile;
    hFile = fopen("/FraktionsChats/OrdnungsamtFunkChat.Log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    return 1;
    }



    SAPDFunkChat

    Function SAPDFunkChat(string1[])
    {
    new entry[256];
    format(entry, sizeof(entry), "%s\n", string1);
    new File:hFile;
    hFile = fopen("/FraktionsChats/SAPDFunkChat.Log", io_append);
    fwrite(hFile, entry);
    fclose(hFile);
    return 1;
    }

    Mit freundlichen Grüßen,
    Dachdecker

  • 1)
    format(string, sizeof(string), "%s %s: %s, over.", FraktionsRangNamen(playerid), sendernamee, text);


    2) Es wird kein Print an den Log geschickt, da er nicht erkennt das er in der Fraktion 1 ist. Er sagt das er in keiner staatlichen Fraktion ist, obwohl er in Fraktion 1 (OAMT) ist.


    3) nein

    Mit freundlichen Grüßen,
    Dachdecker

  • Dann ändere mal das:
    if(SpielerInformation[playerid][FraktionsLeader] == 0 || SpielerInformation[playerid][FraktionsMember] == 0)
    zu:
    if(SpielerInformation[playerid][FraktionsLeader] == 0 && SpielerInformation[playerid][FraktionsMember] == 0)

  • 1)
    format(string, sizeof(string), "%s %s: %s, over.", FraktionsRangNamen(playerid), sendernamee, text);


    2) Es wird kein Print an den Log geschickt, da er nicht erkennt das er in der Fraktion 1 ist. Er sagt das er in keiner staatlichen Fraktion ist, obwohl er in Fraktion 1 (OAMT) ist.


    3) nein



    Du fragst ab, ganz am Anfang ob Leader = 0 ist. Da bei allen Membern Leader 0 ist (denke ich mal) und du nur abfragst ob Leader ODER Member 0 sind, kommt die Fehlermeldung. Versuch es mal so:



    ocmd:funk(playerid, params[])
    {
    new string[128], text[128], sendernamee[MAX_PLAYER_NAME];
    GetPlayerName(playerid, sendernamee, sizeof(sendernamee));
    if(sscanf(params,"s[91]",text))return Nachricht(playerid,Rot,"Benutzen Sie: /f(unk) [Text]");
    if(strlen(text) > 90)return Nachricht(playerid,Rot,"Benutzen Sie: /f(unk) [Text darf maximal 90 Zeichen beinhalten]");
    if(SpielerInformation[playerid][FraktionsLeader] == 1 || SpielerInformation[playerid][FraktionsMember] == 1)
    {
    format(string, sizeof(string), "%s %s: %s, over.", FraktionsRangNamen(playerid), sendernamee, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    Nachricht(i, HellBlau, string);
    }
    printf("OAMT - %s", string);
    OrdnungsamtFunkChat(string);
    return 1;
    }
    else if(SpielerInformation[playerid][FraktionsLeader] == 2 || SpielerInformation[playerid][FraktionsMember] == 2)
    {
    format(string, sizeof(string), "%s %s: %s, over.", FraktionsRangNamen(playerid), sendernamee, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    Nachricht(i , HellBlau, string);
    }
    printf("SAPD - %s", string);
    SAPDFunkChat(string);
    return 1;
    }
    else
    {
    Nachricht(playerid, Rot,"Sie sind in keiner staatlichen Fraktion ");
    return 1;
    }
    return 1;
    }


    //jeffry war schneller :D

  • Dankeschön, dass mit dem && hat geklappt.



    Jetzt wird komischerweise der FraktionsRannamen nicht übernommen


    FraktionsRangNamen:

    stock FraktionsRangNamen(playerid)
    {
    new rang[256];
    if(IsPlayerConnected(playerid))
    {
    if(SpielerInformation[playerid][FraktionsLeader] == 1 || SpielerInformation[playerid][FraktionsMember] == 1)
    {
    if(SpielerInformation[playerid][FraktionsRang] == 12)
    {
    rang = "Leader";
    return rang;
    }
    }
    if(SpielerInformation[playerid][FraktionsLeader] == 2 || SpielerInformation[playerid][FraktionsMember] == 2)
    {
    if(SpielerInformation[playerid][FraktionsRang] == 12)
    {
    rang = "SAPD - Leader";
    return rang;
    }
    }
    }
    return rang;
    }

    Mit freundlichen Grüßen,
    Dachdecker

  • Füge vor dem:
    if(IsPlayerConnected(playerid))


    Das ein:
    printf("Leader: %d | Member: %d | Rang: %d", SpielerInformation[playerid][FraktionsLeader], SpielerInformation[playerid][FraktionsMember], SpielerInformation[playerid][FraktionsRang]);


    Was wird dann geprintet?




    EDIT: (Post unten)
    @Justin4TheWin: Da dein Problem behoben ist, wäre es gut, wenn du den Thread auf erledigt setzt. Danke! :)

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Ich habe glaube den Fehler mit dem FraktionsRang gefunden, ich hab vergessen im Register/Login/Laden und Speichern System das zu Laden, Speichern und so....


    #Fail...


    // Danke an alle Helfer!!!!

    Mit freundlichen Grüßen,
    Dachdecker

    Einmal editiert, zuletzt von Dachdecker ()