Nazwa serwera IP serwera Sloty
•••PolskiPartyServer™[PPS]®24/7••• @LiveServer.pl graj.server-pps.com:7777 500 Wejdź
Mumble 1.2 server-pps.com 100 Więcej

Zapis komend.

Moderator: Mod-Team

Zapis komend.

Postprzez iceman » 2 lut 2014, o 13:18

Na gtao znalazłem skryp który zapisuje komendy wpisywane przez graczy do pliku scripfiles/logi.txt.
Kod: Zaznacz cały
//Autor Netropol

#include <a_samp>
#include <zcmd>

#define LOGG_CT 1
#define LOGG 1

public OnPlayerCommandText(playerid, cmdtext[])
{
    #if LOGG
        ZapiszLogi(playerid, cmdtext);
    #else
        if (!IsPlayerAdmin(playerid))
            ZapiszLogi(playerid, cmdtext);
    #endif
    return 0;
}

public OnPlayerCommandReceived(playerid, cmdtext[])
{
    #if LOGG
        ZapiszLogi(playerid, cmdtext);
    #else
        if (!IsPlayerAdmin(playerid))
            ZapiszLogi(playerid, cmdtext);
    #endif
    return 0;
}

stock ZapiszLogi(playerid, cmdtext[])
{
    new File:log = fopen("logi.txt", io_append); //Domyślny folder scriptfiles
    new str[128], Godzina, Minuta, Sekunda;
    gettime(Godzina, Minuta, Sekunda);
    format(str, sizeof(str), "[%d:%d:%d] %s: %s\r\n", Godzina, Minuta, Sekunda, name(playerid), cmdtext);
    fwrite(log, str);
    fclose(log);
    #if defined LOGG_CT
    for (new i = 0; i < MAX_PLAYERS; i++)
    {
        if (IsPlayerConnected(i) && IsPlayerAdmin(i) && playerid != i)
        fwrite(log, str);
    }
    #endif
    return 1;
}

stock name(playerid)
{
    new Name[MAX_PLAYER_NAME];
    GetPlayerName(playerid, Name, sizeof(Name));
    return Name;
}

Na pierwszy rzut wszystko, ładnie i pięknie.
Wchodzę na serwer a tutaj komendy nie chodzą. Mianowicie na mapce Premium A/D gdy wpiszę obojętnie jakoś komendę /sa /sb /cfg
to serwer nie reaguje, zaś gdy wbije druga osoba na serwer to po minucie automatycznie się wyłącza.
Komendy, które są wpisywane na serwerze oczywiście się zapisują w tym pliku "logi.txt".
ObrazekObrazek
Avatar użytkownika
iceman
User
 
Posty: 343
Dołączył(a): 5 wrz 2010, o 19:41
Lokalizacja: Kielce
Polubionych : 9 razy
Otrzymał polubień: 22 razy

Re: Zapis komend.

Postprzez MrDaniel » 2 lut 2014, o 18:17

Ja używam coś takiego, wczoraj na skype mi nie wyjaśniłeś za bardzo o co chodzi.

Na początku
Kod: Zaznacz cały
new bool:cmdeye[MAX_PLAYERS];


w public OnPlayerConnect(playerid)

daj :

Kod: Zaznacz cały
cmdeye[playerid] = false;


w public OnPlayerCommandReceived(playerid, cmdtext[])

Daj :

Kod: Zaznacz cały
for(new x=0; x<MAX_PLAYERS; x++) {
if(IsPlayerConnected(x)) {
if(cmdeye[x] == true)
{
new seestring[156];
format(seestring, sizeof seestring, "{6E6E6E}|{A0A0A0}CMD{6E6E6E}| {A0A0A0}%s {6E6E6E}(id: {A0A0A0}%i{6E6E6E}): {A0A0A0}%s", PlayerName(playerid), playerid, cmdtext);
SendClientMessage(x, 0x6E6E6EFF, seestring);
}
}
}


a to daj tam gdzie masz komendy.

Kod: Zaznacz cały
CMD:eye(playerid, params[])
{
if(!Administrator[playerid] && !vHeadAdmin[playerid]) return ShowPlayerDialog(playerid, 1, DIALOG_STYLE_MSGBOX, "Informacje", "{B4B5B7}Brak dostępu!", "Zamknij", "");

if(cmdeye[playerid] == false)
{
cmdeye[playerid] = true;
SendClientMessage(playerid, C_RED2, "›› |Eye| Wlaczyles/as podlag CMD!");

} else if(cmdeye[playerid] == true) {
SendClientMessage(playerid, C_RED2, "›› |Eye| Wylaczyles/as podlag CMD!");
cmdeye[playerid] = false;
}
return 1;
}
Obrazek

Obrazek
MrDaniel
User
 
Posty: 370
Dołączył(a): 7 sie 2012, o 16:35
Polubionych : 21 razy
Otrzymał polubień: 47 razy

Re: Zapis komend.

Postprzez iceman » 2 lut 2014, o 19:24

fajnie a errorów to mam z 5
ObrazekObrazek
Avatar użytkownika
iceman
User
 
Posty: 343
Dołączył(a): 5 wrz 2010, o 19:41
Lokalizacja: Kielce
Polubionych : 9 razy
Otrzymał polubień: 22 razy

Re: Zapis komend.

Postprzez stinger » 2 lut 2014, o 19:40

Musisz ten kod wrzucić do mapki :P

MrDaniel, co to jest? On chciał zapis do scriptfiles, a nie komendę na włączenie, co dany gracz pisze :iritated:
stinger
User
 
Posty: 641
Dołączył(a): 15 kwi 2012, o 21:46
Lokalizacja: Wrocław
Polubionych : 124 razy
Otrzymał polubień: 160 razy

Re: Zapis komend.

Postprzez MrDaniel » 3 lut 2014, o 11:03

Ja używam coś takiego, wczoraj na skype mi nie wyjaśniłeś za bardzo o co chodzi.


Czytaj ze zrozumieniem, japko.
Obrazek

Obrazek
MrDaniel
User
 
Posty: 370
Dołączył(a): 7 sie 2012, o 16:35
Polubionych : 21 razy
Otrzymał polubień: 47 razy

Re: Zapis komend.

Postprzez adam. » 4 lut 2014, o 18:39

Może nie za bardzo fachowo, ale kiedyś to napisałem to może Ci się przydać:

Kod: Zaznacz cały
Data()
{
   new string[24],hours,minutes,seconds;
   gettime(hours, minutes, seconds);
   format(string, sizeof string, "[%s%d:%s%d:%s%d]", (hours < 10) ? ("0") : (""), hours, (minutes < 10) ? ("0") : (""), minutes, (seconds < 10) ? ("0") : (""), seconds);
   return string;
}


Kod: Zaznacz cały
SaveToLog(text[])
{
   new Year, Month, Day, data[24];
   getdate(Year, Month, Day);
   format(data, sizeof data, "logi/%02d-%02d-%d.txt", Day, Month, Year);

   new File:log = fopen(data, io_append);
   if(log)
   {
      fwrite(log, text);
      fclose(log);
   }
}


Kod: Zaznacz cały
public OnPlayerCommandPerformed(playerid, cmdtext[], success)
{

   if(!success)
   {
      SendClientMessage(playerid, 0xFFFFFFFF, "Nie ma takiej komendy!");
      return 1;
   }

   if(success)
   {
      new logi[43+MAX_PLAYER_NAME];
      format(logi, sizeof logi, "%s [CMD] Gracz %s uzyl komendy: %s\r\n",Data(), pName[playerid], cmdtext);
      SaveToLog(logi);
      return 1;
   }

   return 1;

}


Po wgraniu wszystkiego musisz utworzyć folder ,,logi".
W pliku powinno wyglądać to mniej więcej tak(po tym jak ktoś zacznie używać komend):
Kod: Zaznacz cały
[21:47:56] [CMD] Gracz adim użył komendy: /adim.

Aha, w folderze logi codziennie będzie tworzył się nowy plik z obecną datą, dzisiaj utworzy się 2014-02-04 jutro 2014-02-05.
Avatar użytkownika
adam.
User
 
Posty: 502
Dołączył(a): 6 lip 2011, o 08:51
Polubionych : 0 raz
Otrzymał polubień: 141 razy

Re: Zapis komend.

Postprzez iceman » 4 lut 2014, o 20:18

nie musiałeś ale już naprawiłem.
ObrazekObrazek
Avatar użytkownika
iceman
User
 
Posty: 343
Dołączył(a): 5 wrz 2010, o 19:41
Lokalizacja: Kielce
Polubionych : 9 razy
Otrzymał polubień: 22 razy


Powrót do Pomoc

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 1 gość