Fraktionschat Problem

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 ein komisches Problem mit meinem Fraktionschat mein Code:


    ocmd:f(playerid,params[])
    {
    new string[128];
    new fID = PlayerInfo[playerid][pFraktion];
    if(isPlayerInFrakt(playerid,0)|| isPlayerInFrakt(playerid, 1) || isPlayerInFrakt(playerid, 2) || isPlayerInFrakt(playerid, 3) || isPlayerInFrakt(playerid, 4) || isPlayerInFrakt(playerid, 5) || isPlayerInFrakt(playerid, 6))return SendClientMessage(playerid,GRAU,"Du bist in keiner Gang/Mafia!");
    if(isPlayerInFrakt(playerid,7)|| isPlayerInFrakt(playerid, 8) || isPlayerInFrakt(playerid, 9) || isPlayerInFrakt(playerid, 10) || isPlayerInFrakt(playerid, 11) || isPlayerInFrakt(playerid, 12) || isPlayerInFrakt(playerid, 13))
    {
    if(sscanf(params, "s[128]", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");
    format(string, sizeof(string), "**(( %s: %s ))**", SpielerName(playerid), string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!isPlayerInFrakt(i, fID))continue;
    SendClientMessage(i, HELLBLAU, string);
    }
    }
    return 1;
    }


    wenn ich ingame z.B /f x eingebe kommt INFO: /f [Nachricht]
    keine Errors oder sonstiges...



    Und meine frage noch das was ich in der Fraktion 7 (Ballas) schreibe sehen nur Ballas Mitglieder richtig?

  • @maIE


    also habe es jetzt so


    ocmd:f(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,0)|| isPlayerInFrakt(playerid, 1) || isPlayerInFrakt(playerid, 2) || isPlayerInFrakt(playerid, 3) || isPlayerInFrakt(playerid, 4) || isPlayerInFrakt(playerid, 5) || isPlayerInFrakt(playerid, 6))return SendClientMessage(playerid,GRAU,"Du bist in keiner Gang/Mafia!");
    if(isPlayerInFrakt(playerid,7)|| isPlayerInFrakt(playerid, 8) || isPlayerInFrakt(playerid, 9) || isPlayerInFrakt(playerid, 10) || isPlayerInFrakt(playerid, 11) || isPlayerInFrakt(playerid, 12) || isPlayerInFrakt(playerid, 13))
    {
    new string[128], string2[128];
    new fID = PlayerInfo[playerid][pFraktion];
    if(sscanf(params, "s[128]", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");
    format(string2, sizeof(string2), "**(( %s: %s ))**", SpielerName(playerid), string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!isPlayerInFrakt(i, fID))continue;
    SendClientMessage(i, HELLBLAU, string);
    }
    }
    return 1;
    }


    und klappt dennoch nicht...

  • Du musst einen neuen String für den format() verwenden.

    Stimmt nicht, man kann das genauso gut überschreiben.


    und @KinGRaPTiiC weis gar nicht wieso du wenn du es schon ausgeben lässt, nicht mit fID direkt abfragst.


    Probiere es mal so
    -> Quellcode <-

  • @Kasakow Irgendwie weiß ich nicht genau was du damit meinst:



    Zitat von Kasakow

    und @KinGRaPTiiC weis gar nicht wieso du wenn du es schon ausgeben lässt, nicht mit fID direkt abfragst.


    habe deinen Code eingefügt und dabei kam das zustande:


    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : error 029: invalid expression, assumed zero
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2576) : error 001: expected token: ";", but found ":"
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2591) : error 014: invalid statement; not in switch
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2591) : error 029: invalid expression, assumed zero
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2591) : warning 215: expression has no effect
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2591) : error 001: expected token: ";", but found "return"
    C:\Users\Dustin\Desktop\SA-MP Server\gamemodes\selfmade.pwn(2591) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    ocmd:f(playerid,params[])
    {
    new fID = PlayerInfo[playerid][pFraktion];
    switch(fID)
    {
    case:7,8,9,10,11,12,13: //2576
    {
    new string[164];
    if(sscanf(params, "s[128]", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");
    format(string, sizeof string, "**(( %s: %s ))**", SpielerName(playerid), string);
    for(new i=0, ifID = 0; i<GetPlayerPoolSize(); i++)
    {
    if(!IsPlayerConnected(i))continue;
    ifID = PlayerInfo[i][pFraktion];
    if(ifID == fID)
    {
    SendClientMessage(i, HELLBLAU, string);
    }
    }
    }
    default: return SendClientMessage(playerid,GRAU,"Du bist in keiner Gang/Mafia!"); //2591
    }
    return 1;
    }

  • wenn nicht versuch mal das einfach und simple ^^



    ocmd:f(playerid,params[])
    {
    if(PlayerInfo[playerid][pFraktion]<7)return SendClientMessage(playerid,GRAU,"Du bist in keiner Gang/Mafia!");
    new fID = PlayerInfo[playerid][pFraktion];


    new string[164];
    if(sscanf(params, "s[128]", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");
    format(string, sizeof(string), "**(( %s: %s ))**", SpielerName(playerid), string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(PlayerInfo[i][pFraktion] == fID)
    {
    SendClientMessage(i, HELLBLAU, string);
    }
    }
    return 1;
    }

  • Dann mach das mal so.

    new string[164];
    f(sscanf(params, "s[164]", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");

    und wenn das nicht funkt mach das einfach mal so

    new string[164];
    if(sscanf(params, "s", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");

  • Wollte ich grade schreiben konnte es grad selbst lösen :D aber trotzdem danke dir für die die es wissen wollen welchen Code ich jetzt nutze:


    ocmd:f(playerid,params[])
    {
    if(isPlayerInFrakt(playerid,0)|| isPlayerInFrakt(playerid, 1) || isPlayerInFrakt(playerid, 2) || isPlayerInFrakt(playerid, 3) || isPlayerInFrakt(playerid, 4) || isPlayerInFrakt(playerid, 5) || isPlayerInFrakt(playerid, 6))return SendClientMessage(playerid,GRAU,"Du bist in keiner Gang/Mafia!");
    if(isPlayerInFrakt(playerid,7)|| isPlayerInFrakt(playerid, 8) || isPlayerInFrakt(playerid, 9) || isPlayerInFrakt(playerid, 10) || isPlayerInFrakt(playerid, 11) || isPlayerInFrakt(playerid, 12) || isPlayerInFrakt(playerid, 13))
    {
    new string[128];
    new fID = PlayerInfo[playerid][pFraktion];
    if(sscanf(params, "s", string))return SendClientMessage(playerid, GELB, "INFO: /f [Nachricht]");
    format(string, sizeof(string), "**(( %s: %s ))**", SpielerName(playerid), string);
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i))continue;
    if(!isPlayerInFrakt(i, fID))continue;
    SendClientMessage(i, HELLBLAU, string);
    }
    }
    return 1;
    }