Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: System32 poslato Jun 03, 2011, 10:24:31 PRE PODNE

Naslov: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 10:24:31 PRE PODNE
Skripta koju koristim: iStunt
Detaljan opis problema: izvukao sam iz nekog bAdmina chat log, i sve to meni lijepo, nema errora warninga itd. ali chat log ne radi, ja pisem u chatu on ne radi
Dio skripte:
stock ChatLog(playerid, string[])
{
        new File: logfile, logtext[128];
        new fyear, fmonth, fday, fhour, fminute, fsecond;
        getdate(fyear, fmonth, fday);
        gettime(fhour, fminute, fsecond);
        logfile = fopen("Logs/Chat.txt", io_append);
        format(logtext, sizeof(logtext),"[%02d/%02d/%04d %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, PlayerName(playerid), string);
        fwrite(logfile, logtext);
        fclose (logfile);
}

pod OnPlayerText
ChatLog(playerid, text);
Neke slike/video za lakse dobivanje pomoci(neobavezno):
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Rotcod poslato Jun 03, 2011, 12:44:59 POSLE PODNE
Pa jesi napravio u scriptfiles folder Logs sa Chat.txt?

Moguce je da ga nemas kao ni taj folder posto nije napravljena funkcija da kreira ako ne postoji!
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 12:54:15 POSLE PODNE
Citat: [AG] eXtreme poslato Jun 03, 2011, 12:44:59 POSLE PODNE
Pa jesi napravio u scriptfiles folder Logs sa Chat.txt?

Moguce je da ga nemas kao ni taj folder posto nije napravljena funkcija da kreira ako ne postoji!

napravio sam, folder i Chat.txt ali kad otvorim fajl nema nicega
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Rotcod poslato Jun 03, 2011, 13:03:16 POSLE PODNE
forward ChatLog(playerid, string[]);
public ChatLog(playerid, string[])
{
        new File: logfile, logtext[128];
        new fyear, fmonth, fday, fhour, fminute, fsecond;
        getdate(fyear, fmonth, fday);
        gettime(fhour, fminute, fsecond);
        logfile = fopen("Logs/Chat.txt", io_append);
        format(logtext, sizeof(logtext),"[%02d/%02d/%04d %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, PlayerName(playerid), string);
        fwrite(logfile, logtext);
        fclose (logfile);
}
Naslov: Odg: [Pomoc] Chat Log
Poruka od: FireMan poslato Jun 03, 2011, 13:03:38 POSLE PODNE
a jesi li mozda forward Chatlog (string[]); ??

Haha dok je Extreme piso i ja sam xD
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 19:41:24 POSLE PODNE
Citat: _eXtreme_ poslato Jun 03, 2011, 13:03:16 POSLE PODNE
forward ChatLog(playerid, string[]);
public ChatLog(playerid, string[])
{
        new File: logfile, logtext[128];
        new fyear, fmonth, fday, fhour, fminute, fsecond;
        getdate(fyear, fmonth, fday);
        gettime(fhour, fminute, fsecond);
        logfile = fopen("Logs/Chat.txt", io_append);
        format(logtext, sizeof(logtext),"[%02d/%02d/%04d %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, PlayerName(playerid), string);
        fwrite(logfile, logtext);
        fclose (logfile);
}

ne radi
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Dude poslato Jun 03, 2011, 19:45:01 POSLE PODNE
formatiraj si tekst koji upisujes u log prije otvaranja filea i zatvaranja...

znaci:
forward ChatLog(playerid, string[]); 
public ChatLog(playerid, string[]) 

        new File: logfile, logtext[128]; 
        new fyear, fmonth, fday, fhour, fminute, fsecond; 
        getdate(fyear, fmonth, fday); 
        gettime(fhour, fminute, fsecond); 
        format(logtext, sizeof(logtext),"[%02d/%02d/%04d %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, PlayerName(playerid), string); 
        logfile = fopen("Logs/Chat.txt", io_append); 
        fwrite(logfile, logtext); 
        fclose (logfile); 
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 19:49:22 POSLE PODNE
Citat: Dude poslato Jun 03, 2011, 19:45:01 POSLE PODNE
formatiraj si tekst koji upisujes u log prije otvaranja filea i zatvaranja...

znaci:
forward ChatLog(playerid, string[]); 
public ChatLog(playerid, string[]) 

        new File: logfile, logtext[128]; 
        new fyear, fmonth, fday, fhour, fminute, fsecond; 
        getdate(fyear, fmonth, fday); 
        gettime(fhour, fminute, fsecond); 
        format(logtext, sizeof(logtext),"[%02d/%02d/%04d %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, PlayerName(playerid), string); 
        logfile = fopen("Logs/Chat.txt", io_append); 
        fwrite(logfile, logtext); 
        fclose (logfile); 

nažalost nece
Naslov: Odg: [Pomoc] Chat Log
Poruka od: [BU] Gigi_Falcone poslato Jun 03, 2011, 20:11:33 POSLE PODNE

forward ChatLog(playerid, string[]);
public ChatLog(playerid, string[])
{
print("1");
new File: logfile, logtext[128];
new fyear, fmonth, fday, fhour, fminute, fsecond;
print("2");
getdate(fyear, fmonth, fday);
print("3");
gettime(fhour, fminute, fsecond);
print("4");
format(logtext, sizeof(logtext),"[%02d/%02d/%04d %02d:%02d:%02d] %s: %s \r\n", fday, fmonth, fyear, fhour, fminute, fsecond, PlayerName(playerid), string);
    print("5");
logfile = fopen("Logs/Chat.txt", io_append);
print("6");
fwrite(logfile, logtext);
print("7");
fclose (logfile);
print("8");
}


ubaci to i napisi do kojeg ti je broja stiglo u konzolu
Naslov: Odg
Poruka od: Rotcod poslato Jun 03, 2011, 20:12:37 POSLE PODNE
Ovako meni radi i zoranova i moja vidi pod onplayertext return ako je return 0; ti stavi return 1;
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 20:15:35 POSLE PODNE
ahh neznam, evo ti moj cijeli OnPlayerText
nesto od toga radi nesto ne, chat log ne radi, Spam Kick ne radi, caps lock radi i mute radi, nego da pitam, koristim ZCMD, jel on mozda ima drugi public kao sto koristi OnPlayerCommandPreformed tako i ovo?
public OnPlayerText(playerid, text[])
{
for(new i=0; i<MAX_WORDS; i++)
{
    if(IsPlayerConnected(i))
    {
    while (text[++i])
    {
        if ('A' <= text[i] <= 'Z') text[i] |= 0x20;
}
}
}
{
if(PlayerMuted[playerid] == 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Nemozete pricati, usutkani ste!");
return 0;
}
}
/*if(IsChatOnOrOff == 0)
{
        SendClientMessage(playerid, COLOR_YELLOW, "Chat je ugaÅ¡en!");
        return 0;
}*/
    {
    if((strlen(text) < 3) || (text[0] == '/') || (text[0] == '#') || (text[0] == '!')) return 1;
{
new offset;
new len;
for(new i=0; i<MAX_WORDS; i++)
{
offset = strfind(text, swear[i], true);
if(offset > -1)
{
len = strlen(swear[i]);
if(len < 3) break;
for(new y=0; y<len; y++)
{
text[offset+y] = '*';
}
swearCount[playerid]++;
new string[64];
format(string, sizeof(string), "Zabranjeno je psovati i vrijeÄ'ati, upozorenje %d/%d", swearCount[playerid], MAX_SWEARCOUNT);
SendClientMessage(playerid, COLOR_KRED, string);
    if(swearCount[playerid] >= MAX_SWEARCOUNT)
{
    new name[24];
    GetPlayerName(playerid, name, sizeof(name));
    format(string, sizeof(string), "iStunt: Server je izbacio %s zbog psovanja i vrijeÄ'anja!", name);
    SendClientMessageToAll(COLOR_KRED, string);
    TogglePlayerControllable(playerid, 0);
    Kick(playerid);
    break;
}
break;
}
}
}
}
{
    new TCount, name[24], string[100];

    TCount = GetPVarInt(playerid, "TextSpamCount");

    TCount++;

    SetPVarInt(playerid, "TextSpamCount", TCount);

    if(TCount == 2)
{
        SendClientMessage(playerid, COLOR_KRED, "JoÅ¡ jedna poruka i biti ćete izbačeni!");
    }
    else if(TCount == 3)
{
        GetPlayerName(playerid, name, sizeof(name));
        format(string, sizeof(string), "iStunt: Server je izbacio %s zbog spamanja!", name);
        SendClientMessageToAll(COLOR_KRED, string);
        print(name);
        Kick(playerid);
        TogglePlayerControllable(playerid, 0);
    }

    SetTimerEx("ResetCount", SpamLimit, false, "i", playerid);
    }
    SetPlayerChatBubble(playerid, text, 0xFF0000FF, 100.0, 5000);
    ChatLog(playerid, text);
    return 1;
}

Naslov: Odg: [Pomoc] Chat Log
Poruka od: Dude poslato Jun 03, 2011, 20:33:44 POSLE PODNE
jel tebi uopce dodje komanda do ChatLog u onplayertext? stavi prije ChatLog linije ovo: printf("prije chat loga");
pogledaj zatim u konzolu jel ti printa to pod navodnicima kad upises neki tekst...
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 21:18:40 POSLE PODNE
evo ja stavio ovo prije ChatLog u OnPlayerText
printf("%s: %s", playerid, text);
i nema ga u konzoli, mislim, samo kad pise onda bude [chat] [System32]: a (a je ono sto sam kucao)
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Rotcod poslato Jun 03, 2011, 21:24:22 POSLE PODNE
public OnPlayerText(playerid, text[]) 

   for(new i=0; i<MAX_WORDS; i++) 
   { 
       if(IsPlayerConnected(i)) 
       { 
          while (text[++i]) 
          { 
              if ('A' <= text<i> <= 'Z') text<i> |= 0x20; 
         } 
      } 
   } 
   ChatLog(playerid, text);   
   /*if(IsChatOnOrOff == 0)
   {
           SendClientMessage(playerid, COLOR_YELLOW, "Chat je ugaÅ¡en!");
           return 0;
   }*/ 
    { 
    if((strlen(text) < 3) || (text[0] == '/') || (text[0] == '#') || (text[0] == '!')) return 1; 
   { 
   new offset; 
   new len; 
    for(new i=0; i<MAX_WORDS; i++) 
   { 
      offset = strfind(text, swear<i>, true); 
      if(offset > -1) 
      { 
         len = strlen(swear<i>); 
         if(len < 3) break; 
         for(new y=0; y<len; y++) 
         { 
            text[offset+y] = '*'; 
         } 
         swearCount[playerid]++; 
         new string[64]; 
         format(string, sizeof(string), "Zabranjeno je psovati i vrijeÄ'ati, upozorenje %d/%d", swearCount[playerid], MAX_SWEARCOUNT); 
         SendClientMessage(playerid, COLOR_KRED, string); 
            if(swearCount[playerid] >= MAX_SWEARCOUNT) 
         { 
             new name[24]; 
             GetPlayerName(playerid, name, sizeof(name)); 
             format(string, sizeof(string), "iStunt: Server je izbacio %s zbog psovanja i vrijeÄ'anja!", name); 
             SendClientMessageToAll(COLOR_KRED, string); 
               TogglePlayerControllable(playerid, 0); 
             Kick(playerid); 
             break; 
         } 
         break; 
      } 
   } 
   } 
   } 
   { 
    new TCount, name[24], string[100]; 
 
    TCount = GetPVarInt(playerid, "TextSpamCount"); 
 
    TCount++; 
 
    SetPVarInt(playerid, "TextSpamCount", TCount); 
 
    if(TCount == 2) 
   { 
        SendClientMessage(playerid, COLOR_KRED, "JoÅ¡ jedna poruka i biti ćete izbačeni!"); 
    } 
    else if(TCount == 3) 
   { 
        GetPlayerName(playerid, name, sizeof(name)); 
        format(string, sizeof(string), "iStunt: Server je izbacio %s zbog spamanja!", name); 
        SendClientMessageToAll(COLOR_KRED, string); 
        print(name); 
        Kick(playerid); 
        TogglePlayerControllable(playerid, 0); 
    } 
 
    SetTimerEx("ResetCount", SpamLimit, false, "i", playerid); 
    } 
    SetPlayerChatBubble(playerid, text, 0xFF0000FF, 100.0, 5000); 
   if(PlayerMuted[playerid] == 1) 
   { 
   SendClientMessage(playerid, COLOR_YELLOW, "Nemozete pricati, usutkani ste!"); 
   return 0; 
   } 
   }
    return 1; 
}
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 21:38:05 POSLE PODNE
nekuzim sat fali??
D:\Private\Server\gamemodes\iStunt.pwn(920) : error 033: array must be indexed (variable "text")
D:\Private\Server\gamemodes\iStunt.pwn(920) : warning 215: expression has no effect
D:\Private\Server\gamemodes\iStunt.pwn(920) : error 001: expected token: ";", but found ")"
D:\Private\Server\gamemodes\iStunt.pwn(920) : error 029: invalid expression, assumed zero
D:\Private\Server\gamemodes\iStunt.pwn(920) : fatal error 107: too many error messages on one line

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


4 Errors.


linija

if ('A' <= text <= 'Z') text |= 0x20;
>
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Dude poslato Jun 03, 2011, 22:46:09 POSLE PODNE
Citat: [AG] System32 poslato Jun 03, 2011, 21:18:40 POSLE PODNE
evo ja stavio ovo prije ChatLog u OnPlayerText
printf("%s: %s", playerid, text);
i nema ga u konzoli, mislim, samo kad pise onda bude [chat] [System32]: a (a je ono sto sam kucao)


znaci da ne dodje do loga, problem nije u logu vec do onplayertext callbacka...
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Rotcod poslato Jun 03, 2011, 22:58:29 POSLE PODNE
Verovatno zbog return 0; Tu prekine svaku radnju dalje...
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 03, 2011, 23:01:26 POSLE PODNE
umm, a da satvim ovo pMuted samo u jednu liniju?
Naslov: Odg: [Pomoc] Chat Log
Poruka od: Joey_ poslato Jun 04, 2011, 00:07:50 PRE PODNE
Probaj ovo:

public OnPlayerText(playerid, text[])
{
for(new i=0; i < MAX_WORDS; i++)
{
if(IsPlayerConnected(i))
{
while (text[++i])
{
if ('A' <= text<i> <= 'Z') text<i> |= 0x20;
}
}
}


if(PlayerMuted[playerid] == 1)
{
SendClientMessage(playerid, COLOR_YELLOW, "Nemozete pricati, usutkani ste!");
return 0;
}

/*if(IsChatOnOrOff == 0)
{
SendClientMessage(playerid, COLOR_YELLOW, "Chat je ugašen!");
return 0;
}*/

if((strlen(text) < 3) || (text[0] == '/') || (text[0] == '#') || (text[0] == '!')) return 1;
else
{
new offset;
new len;

for(new i = 0; i < MAX_WORDS; i++)
{
offset = strfind(text, swear<i>, true);
if(offset > -1)
{
len = strlen(swear<i>);
if(len < 3) break;

for(new y=0; y<len; y++)
{
text[offset+y] = '*';
}

swearCount[playerid]++;
new string[64];
format(string, sizeof(string), "Zabranjeno je psovati i vrije?ati, upozorenje %d/%d", swearCount[playerid], MAX_SWEARCOUNT);
SendClientMessage(playerid, COLOR_KRED, string);
if(swearCount[playerid] >= MAX_SWEARCOUNT)
{
new name[24];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "iStunt: Server je izbacio %s zbog psovanja i vrije?anja!", name);
SendClientMessageToAll(COLOR_KRED, string);
TogglePlayerControllable(playerid, 0);
Kick(playerid);
break;
}
break;
}
}
}

new TCount, name[24], string[100];

TCount = GetPVarInt(playerid, "TextSpamCount");

TCount++;

SetPVarInt(playerid, "TextSpamCount", TCount);

if(TCount == 2) SendClientMessage(playerid, COLOR_KRED, "Još jedna poruka i biti c'ete izbac(eni!");
else if(TCount == 3)
{
GetPlayerName(playerid, name, sizeof(name));
        format(string, sizeof(string), "iStunt: Server je izbacio %s zbog spamanja!", name);
        SendClientMessageToAll(COLOR_KRED, string);
        print(name);
        Kick(playerid);
        TogglePlayerControllable(playerid, 0);
}

SetTimerEx("ResetCount", SpamLimit, false, "i", playerid);
   
    SetPlayerChatBubble(playerid, text, 0xFF0000FF, 100.0, 5000);
    ChatLog(playerid, text);
    return 1;
}


Nije testirano tako da ne znam, ali probaj pa reci.
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 04, 2011, 07:14:01 PRE PODNE
nece, dodu mi isti errori i warninzi!

pokusao sam i PlayerMuted staviti u jednu liniju ali onda /mute ne radi i svejedno ne radi log :SS
Naslov: Odg: [Pomoc] Chat Log
Poruka od: [BU] Gigi_Falcone poslato Jun 07, 2011, 13:18:51 POSLE PODNE
mozes li postaviti cijeli OnPlayerText?
Postavi ga na Pastebin i stavi ovdje link
Naslov: Odg: [Pomoc] Chat Log
Poruka od: System32 poslato Jun 07, 2011, 13:36:45 POSLE PODNE
nisi trebao refreshati, paradox mi je napravio :D Hvala svima, lock