/f 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
  • Verschiedene Callbacks (Admin / Fraktionsabfragen),
    for-Schleifen beim CMD ^^

    Unkompetent. Das neue dynamisch.



    ihr seit schon lustig postet erros aber nicht die zeilen wo sie sind dann können wir euch auch nicht helfen^^


    Lernt Scripten, Leute, und macht eure Augen auf!


    _______________________________________
    50 Beiträge: [x] 300 Beiträge: [x]
    100 Beiträge: [x] 500 Beiträge: [x]
    150 Beiträge: [x] 1000 Beiträge: [x]
    200 Beiträge: [x]
    2000 Beiträge: []
    250 Beiträge: [X] Boardaktivitäten: Profil


    [size=36]_______________________________________

    /Edit: Schmerzt es dir eigentlich nicht so ein Müll zu schreiben 8|

  • for(new pID; pID<MAX_PLAYERS; pID++)
    {
    if(IsPlayerConnected(playerid) && FRAKTION[pID] == FRAKTION[playerid])
    {
    SendClientMessage(...);
    }
    }


    Ergänzen musst du eigentlich nurnoch FRAKTION..
    pID steht in der For-Schleife für jede SpielerID, die wir durchgehen, die Playerid ist die ID der Person, die den Text losschickt.



    Musst es in einen CMD einbauen, oder du baust ne externe Funktion

    stock SendFamilyMessage(playerid,text[])
    {
    for(new pID; pID<MAX_PLAYERS; pID++)
    {
    if(IsPlayerConnected(playerid) && FRAKTION[pID] == FRAKTION[playerid])
    {
    SendClientMessage(pID,FARBE,text);
    }
    }
    }

  • Musst das noch für dich individuell einstellen:

    ocmd:f(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Rot,"/f [Text]");
    format(text,sizeof(text),"Member %s: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,Hellblau,text);
    }
    }
    }
    return 1;
    }


    und für admin:



    ocmd:a(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,Rot,"/f [Text]");
    format(text,sizeof(text),"Member %s: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if("AdminAbfrage"(i,GetPVarInt(playerid,"Beruf")))
    {
    SendClientMessage(i,Hellblau,text);
    }
    }
    }
    return 1;
    }


    brauchst dafür dini und ocmd

    Mit freundlich Grüßen
    Euer Scrubs Fan und Suchti
    JohnDorian



  • aber wie soll ich das if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion"))) definieren
    die pvar stimmt aber ich bekomme den error

    C:\Dokumente und Einstellungen\Server\Desktop\samp03csvr_R5_win32\gamemodes\cut.pwn(128) : error 017: undefined symbol "IsPlayerInFrakt"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

  • Hey hier einmal der ocmd Befeh für den F Chatl :


    ocmd:f(playerid,params[])
    {
    new text[128];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_TOMATO,"/f [text]");
    format(text,sizeof(text),"%s: %s",SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,COLOR_F,text);
    }
    }
    }
    return 1;
    }


    Befehl für A Chat :


    ocmd:a(playerid,params[])
    {
    new text[128];
    if(!isPlayerAnAdmin(playerid,1))return 1;
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_TOMATO,"/a [Text]");
    format(text,sizeof(text),"<<Admin %s: %s>>",SpielerName(playerid),text);
    for(new i=0;i<GetMaxPlayers();i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerAnAdmin(i,1))
    {
    SendClientMessage(i,COLOR_TOMATO,text);
    }
    }
    }
    return 1;
    }


    Speichern :
    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    }
    return 1;
    }


    Laden :
    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    Dazu musst du das auch noch ganz unten ins Script machen


    stock isPlayerInFrakt(playerid,fraktid)
    {
    if(GetPVarInt(playerid,"Fraktion")==fraktid)return 1;
    return 0;
    }


    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }


    /edit IsPlayerAnAdmin hinzugefügt etc.

  • ein login register system habe ich ja auch mit dini schon
    aber ich frage die frak mit

    GetPVarInt(playerid, "Fraktion")
    //und rang
    GetPVarInt(playerid, "Frak-Rang")

    habe bis jetzt
    aber ja es geht jetzt wegen dem
    stock von is Player in frak
    da ich den nicht hatte
    Danke


    PS:dein Login ist wie mein
    ist doch auch das von MrMonat oder?


    // edit


    habe versucht es mit szock zu nutzen um später den rang anzuzeigen bekomme aber 1 error
    hier der script

    ocmd:f(playerid,params[])
    {
    new text[128];
    if(GetPVarInt(playerid, "Frak-Rang") >1)return SendClientMessage(playerid,BLAU,"/f: Du bist in keiner Fraktion");
    if(sscanf(params,"u",text))return SendClientMessage(playerid,BLAU,"/f [Text]");
    Frak(playerid, text);//zeile 124
    return 1;
    }


    stock Frak(playerid, text)
    {
    new pname[MAX_PLAYER_NAME];
    new tring[128];
    GetPlayerName(playerid,pname,sizeof(pname));
    format(tring,sizeof(tring),"Member %s: %s", pname, text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(isPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,BLAU,tring);
    }
    }
    }
    return 1;
    }

    und dieser error

    C:\Dokumente und Einstellungen\Server\Desktop\samp03csvr_R5_win32\gamemodes\cut.pwn(124) : error 035: argument type mismatch (argument 2)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.

    woran kann das liegen
    argument 2 ist ja text aber was ist daran falsch