GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: folnoraa - 2015. Január 28. - 15:08:32

Cím: Játékos beír egy parancsot-Admin láthassa
Írta: folnoraa - 2015. Január 28. - 15:08:32
Sziasztok. Azt hogyan lehetne megcsinálni, hogy pl egy cmds-parancsot beír egy játékos, és akkor azt egy admin lássa hogy \"Jozsi beírt egy parancsot. (/cmds).\" Előre köszönöm.:)
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: TengeriMalac - 2015. Január 28. - 16:00:34
mit használsz?
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: folnoraa - 2015. Január 28. - 17:26:17
Idézetet írta: TengeriMalac date=1422457234\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"52336\" data-ipsquote-contentclass=\"forums_Topic
mit használsz?
 
ZCMD-t használok. :)
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: skyLine - 2015. Január 28. - 18:13:53
Mindegyik parancshoz oda kell írnod egyesével. Most hirtelen erre tudok gondolni, de tuti van másik megoldás.
 
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerAdmin(i))
{
new string[256];
format(string,sizeof(string),\"%s a következő parancsot használta: /cmds\",Neve(playerid));
SendClientMessage(i,-1,string);
}
}
stock Neve(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
for(new i = 0; i < MAX_PLAYER_NAME; i++)
{
         if(name == \'_\')
         {
           name = \' \';
         }
}
return name;
}

 
Valami ilyesmi. Ezt most böngészőben írtam szóval nem 100%, hogy jó lesz. (A stock neve részt meg kicopyztam, de beleírhatod külön külön is, de így szerintem egyszerűbb)
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: AnthonyGates - 2015. Január 28. - 19:02:29
stock Hasznalta(playerid, string[])
{
        new neve[MAX_PLAYER_NAME], str[128], i=0; //létrehozzuk a változókat
        GetPlayerName(playerid, neve, sizeof(neve)); // lekérjük a játékos nevét
        format(str,sizeof(str), \"Szerver: %s [iD:%d] használta a \'/%s\' parancsot.\", neve, playerid, string); //formázzuk a kimenő stringet
        for(; i<MAX_PLAYERS; i++) // végigmegyünk a játékoson
        {
                if(IsPlayerAdmin(i)) //ha a játékos admin, akkor
                {
                        SendClientMessage(i, -1, str);                  //elküldjük az üzenetet
                }
                else return 0; //egyébként visszatérünk nullával
        }
        return 1;
}

 
Használata:
 

Hasznalta(playerid, \"parancsneve\"); // /jel nélkül!
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: gbr333 - 2015. Január 28. - 19:15:57

public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(!success)
    {
        new neve[MAX_PLAYER_NAME], str[128], i=0; //létrehozzuk a változókat
        GetPlayerName(playerid, neve, sizeof(neve)); // lekérjük a játékos nevét
        format(str,sizeof(str), \"Szerver: %s [iD:%d] használta a \'/%s\' parancsot.\", neve, playerid, cmdtext); //formázzuk a kimenő stringet
        for(; i<MAX_PLAYERS; i++) // végigmegyünk a játékoson
        {
                if(IsPlayerAdmin(i)) //ha a játékos admin, akkor
                {
                        SendClientMessage(i, -1, str);                  //elküldjük az üzenetet
                }
                else return 0; //egyébként visszatérünk nullával
        }
    }
    return 1;
}
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: folnoraa - 2015. Január 28. - 19:38:20
Idézetet írta: Rolux date=1422468957\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"52336\" data-ipsquote-contentclass=\"forums_Topic


public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{
    if(!success)
    {
        new neve[MAX_PLAYER_NAME], str[128], i=0; //létrehozzuk a változókat
        GetPlayerName(playerid, neve, sizeof(neve)); // lekérjük a játékos nevét
        format(str,sizeof(str), \"Szerver: %s [iD:%d] használta a \'/%s\' parancsot.\", neve, playerid, cmdtext); //formázzuk a kimenő stringet
        for(; i<MAX_PLAYERS; i++) // végigmegyünk a játékoson
        {
                if(IsPlayerAdmin(i)) //ha a játékos admin, akkor
                {
                        SendClientMessage(i, -1, str);                  //elküldjük az üzenetet
                }
                else return 0; //egyébként visszatérünk nullával
        }
    }
    return 1;
}

 

Ez nem megy :S Nem ír ki semmit, ha valaki be ír valami parancsot.
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: .random. - 2015. Január 28. - 19:45:35
if(!success)

 
helyett...
 
if(success)
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: TengeriMalac - 2015. Január 29. - 06:47:16
Idézetet írta: .RäNÐoM. date=1422470735\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"52336\" data-ipsquote-contentclass=\"forums_Topic

if(!success)

 
helyett...
 
if(success)

 

vagy egyik se, és akkor azt is látod ha jót, és ha hülyeséget ír be.
illetve a CMDTEXT slpit vagy sscanf függvénnyel szétdarabolható, hogy csak a parancsot lásd, a paramétereket ne, mert elég hossszú parancs jönne ki egy PMből vagy akármi másból
Cím: Játékos beír egy parancsot-Admin láthassa
Írta: folnoraa - 2015. Január 29. - 17:00:10
Értem. Köszönöm mindenkinek. MEGOLDVA :D