2 Fragen , 1. Frage /f chat , 2. Frage Nicht entfreezt ?

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
  • Zu 1:
    ich denke nicht das das funktionieren wird, da die for-schleife die nachricht an alle spieler sendet die in der fraktion 1,2 und 3 sind, du müsstest eine variable definieren, die die fraktion des spielers, der die nachricht sendet, liest und sie statt der fraktionsnummer einfügen


    Zu 2:
    Wann genau tritt der fehler auf, nur am 1. CP oder was genau passiert oder auch nicht

  • Also wenn ich in den ersten checkpoint fahre , kommt Müll wird aufgeladen ... , und ich werde gefreezt , jz schon 30 min :D


    Ohne Freezen geht alles , aber ich möchte das das realistischer ist also mit freezen ;)

  • schreib das "Muelltour" im SetTimer mal klein also "muelltour"


    Edit:


    ich empfehle dir SetTimerEx zu nehmen, da du damit einen timer nur für einen spieler machen kannst
    Beispiel:
    SetTimerEx("muelltour",5000,0,"i",playerid);

    Einmal editiert, zuletzt von SmD ()

  • ich konnte das jetzt ned so rauslesen benutzt du SetPlayerTeam um dem spieler ein team zuzuweisen oder wie?
    also mit getplayerteam würde es so gehen:

    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPlayerTeam(i) == GetPlayerTeam(playerid))
    {
    SendClientMessage(i,die farbe,die nachricht);
    }
    }

  • Ich habe einen 
    stock isPlayerInFraktion(playerid, fraktionsid)
    {
    if(GetPVarInt(playerid,"Fraktion") == fraktionsid) return 1;
    return 0;
    }



    , heisst ich muss


    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(isPlayerInFraktion(i) == isPlayerInFraktion(playerid,1))
    {
    SendClientMessage(i,Hellgrau, Blubb);
    }
    }


    so wird aus jedem aus der fraktion blubb geschrieben , und die anderen können es nicht lesen ?

  • Wo muss die dann hin ? Habs gerade so


    for(new i = 0; i<MAX_PLAYERS; i++)
    {
    if(!IsPlayerConnected(i)) continue;
    if(GetPVarInt(i,"Fraktion") == GetPVarInt(playerid,"Fraktion"))
    {
    SendClientMessage(i,Hellgrau, text);
    }
    else if(isPlayerInFraktion(playerid >=1))
    {
    SendClientMessage(playerid,Hellgrau,"Du bist in keiner Fraktion.");
    return 0;
    }
    }


    klappt aber immernoch als zivi

  • Bevor du den Befehl machst /f machst, musst du die if-Abfrage machen. In deinem Quelltext seh ich nirgends, wann ein Spieler /f macht, was passiert.


    Ich würde es so machen:


    Das hier ganz unten rein:
    public SendFamilyMessage(color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(SpielerInfo[i][pFraktion] !=0)
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }


    und irgendwo im Script:
    ocmd:f(playerid,params[])
    {
    new string[128], pID;
    new fraktion1 = mysql_GetInt("userdata", "Fraktion", "Name", SpielerInfo[pID][pName]);
    new fraktion2 = mysql_GetInt("userdata", "Fraktion", "Name", SpielerInfo[playerid][pName]);
    if(fraktion1 == fraktion2)
    {
    if(sscanf(params,"s",string))return SendClientMessage(playerid,farbe_blau,"/f [Text]");
    format(string,sizeof(string),"%s %s: %s", FraktionsRang(playerid),SpielerInfo[playerid][pName], string);
    SendFamilyMessage(COLOR_FCHAT,string);
    }
    return 1;
    }
    Musst bloß mal gucken, ob du mysql benutzt.


    Gruß Dario