Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2015-10-26, 21:44


GreeN.







Wiek: 27
Na forum: 4652 dni
Posty: 137
Nick w MP: GreeN.

Piwa: 50

Respekt: 40

Przy komplikacji mam takie errory:

Kod:

C:\Users\Adrian\Desktop\vip.pwn(82) : error 017: undefined symbol "S_CZERWONY"
C:\Users\Adrian\Desktop\vip.pwn(82) : warning 215: expression has no effect
C:\Users\Adrian\Desktop\vip.pwn(82) : error 001: expected token: ";", but found "-identifier-"
C:\Users\Adrian\Desktop\vip.pwn(82) : error 017: undefined symbol "S_OLIWKOWY"
C:\Users\Adrian\Desktop\vip.pwn(82) : 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.


linijka 82:
Kod:

format(str, 200, S_CZERWONY "Admin %s (ID:%d) mianowa? cie VIP'em\n" S_OLIWKOWY "podaj has?o dzi?ki kt?remu b?dziesz m?g? si? logowa?\nhas?o musi mie? od 4-16 znak?w\nwielko?? liter b?dzie brana pod uwag?!", PlayerName(playerid), playerid);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-10-26, 21:52


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Na ko?cu przed ; brakuje ) no i nie masz definicji kolor?w: S_CZERWONY, S_OLIWKOWY.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-10-26, 21:59


GreeN.







Wiek: 27
Na forum: 4652 dni
Posty: 137
Nick w MP: GreeN.

Piwa: 50

Respekt: 40

Gdzie ? i tzn ? XD

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-10-26, 23:18


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

Kod:

format(str, 200, "Admin %s (ID:%d) mianowa? cie VIP'em\npodaj has?o dzi?ki kt?remu b?dziesz m?g? si? logowa?\nhas?o musi mie? od 4-16 znak?w\nwielko?? liter b?dzie brana pod uwag?!", PlayerName(playerid), playerid);


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-10-27, 17:49


GreeN.







Wiek: 27
Na forum: 4652 dni
Posty: 137
Nick w MP: GreeN.

Piwa: 50

Respekt: 40

Dopisa?em definicje, ale mam tak:


Kod:

C:\Users\Adrian\Desktop\vip.pwn(273) : error 029: invalid expression, assumed zero
C:\Users\Adrian\Desktop\vip.pwn(273) : warning 215: expression has no effect
C:\Users\Adrian\Desktop\vip.pwn(273) : error 001: expected token: ";", but found ")"
C:\Users\Adrian\Desktop\vip.pwn(273) : error 029: invalid expression, assumed zero
C:\Users\Adrian\Desktop\vip.pwn(273) : 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.


Kod:

SendClientMessage(playerid, ZLOTY, "Brak tego gracza na li?cie vip?w!");


Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-10-27, 18:02


ToxiC.







Wiek: 28
Na forum: 5246 dni
Posty: 3792

Piwa: 8590

Respekt: 1143,8
Respekt: 1143,8

daj ca?? komend?, bo nie w tej linijce jest b??d, tylko gdzie? wy?ej albo ni?ej

Postaw piwo autorowi tego posta
 

 
Wysłany: 2015-10-27, 18:29


GreeN.







Wiek: 27
Na forum: 4652 dni
Posty: 137
Nick w MP: GreeN.

Piwa: 50

Respekt: 40

ca?y skrypt:

Kod:

#include <a_samp>

#define FILTERSCRIPT
#define S_CZERWONY
#define S_OLIWKOWY
#define ZLOTY

#include <zcmd>
#include <dir> // dla funkcji Rename (zmiena nazwy pliku)
#include <tfile> // dla funkcji DeleteFileLine oraz denter
#include <sscanf2>
#include <colors>

#define VPLIK "listavip.txt" // plik z lista vip?w
#define CanGiveVip(%0) (IsPlayerAdmin(%0)) // kto mo?e dawa? vipa

//id dialog?w wykorzystanych
#define DIALOG1 55
#define DIALOG2 56

//pomocnicza definicja
#define register%0(%1) forward%0(%1);\
public%0(%1)

#define MAX_DNI 30 // maksymalna ilo?? dni vipa jak? mo?na nada? (zawsze mo?na da? -1 czyli nie?ko?czon?)
#define S_MAX_DNI "30" // to samo co wyzej, tyle ?e w formie tekstu dla wy?wietlania powiadomienia

new str[256]; // og?lna tablica dla skryptu przechowuj?ca r??ne warto?ci

public OnFilterScriptInit()
{
if(!fexist(VPLIK))
{
new File:x = fopen(VPLIK, io_write);
fwrite(x, "Lista VIP (Nick|Haslo|Time)\r\n");
fclose(x);
}
return 1;
}

public OnFilterScriptExit()
{
for(new i = GetMaxPlayers() - 1; i >= 0; i--)
{
KillTimer(GetPVarInt(i, "VIPTIMER"));
DeletePVar(i, "VIPTIMER");
}
return 1;
}

public OnPlayerConnect(playerid)
{
VipTest(playerid); // zwraca 1 je?li nick gracza jest tu jako vip
return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
KillTimer(GetPVarInt(playerid, "VIPTIMER"));
DeletePVar(playerid, "VIPTIMER");
return 1;
}
//------------------------------------------------------------------------------
CMD:dajvipa(playerid, params[])
{
if(!CanGiveVip(playerid))
return SendClientMessage(playerid, CZERWONY, "Brak uprawnie?!");

new dni, giveid;
if(sscanf(params, "dd", dni, giveid))
return SendClientMessage(playerid, BIALY, "U?yj: /dajvipa [dni] [id gracza]");

if(!IsPlayerConnected(giveid))
return SendClientMessage(playerid, CZERWONY, "Z?e id brak tego gracza na serwerze!");

if(giveid == playerid)
return SendClientMessage(playerid, CZERWONY, "Nie mo?esz sam sobie da? rangi vip!");

if(GetPVarInt(giveid, "vip"))
return SendClientMessage(playerid, CZERWONY, "Ten gracz posiada ju? rang? vip!");

if(dni == 0 || dni > MAX_DNI)
return SendClientMessage(playerid, CZERWONY, "Z?a ilo?c dni, podaj warto?? od 1 do "S_MAX_DNI" lub -1 dla niesko?czonego");

format(str, 200, S_CZERWONY "Admin %s (ID:%d) mianowa? cie VIP'em\n" S_OLIWKOWY "podaj has?o dzi?ki kt?remu b?dziesz m?g? si? logowa?\nhas?o musi mie? od 4-16 znak?w\nwielko?? liter b?dzie brana pod uwag?!", PlayerName(playerid), playerid);
ShowPlayerDialog(giveid, DIALOG2, DIALOG_STYLE_PASSWORD, "Has?o Vip",str, "Ok", "Anuluj");
SetPVarInt(giveid, "VIPDNI", dni);
format(str, 128, "Wys?ano pro?b? o has?o do gracza %s(%d)", PlayerName(giveid), giveid);
SendClientMessage(playerid, ZIELONY, str);
return 1;
}
//------------------------------------------------------------------------------
CMD:dajvipanick(playerid, params[])
{
if(!CanGiveVip(playerid))
return SendClientMessage(playerid, CZERWONY, "Brak uprawnie?!");

new dni, nick[MAX_PLAYER_NAME], pass[18];
if(sscanf(params, "ds[24]s[18]", dni, nick, pass))
return SendClientMessage(playerid, BIALY, "U?yj: /dajvipanick [dni] [nick] [has?o]");

if(pass[3] == EOS || strlen(pass) > 16)
return SendClientMessage(playerid, CZERWONY, "Has?o musi mie? od 4 do 16 znak?w!");

if(dni == 0 || dni > MAX_DNI)
return SendClientMessage(playerid, CZERWONY, "Z?a ilo?c dni, podaj warto?? od 1 do "S_MAX_DNI" lub -1 dla niesko?czonego");

format(str, 64, "%s|%d|%d\r\n", nick, udb_hash(pass), gettime() + (dni * 86400));
new File:x = fopen(VPLIK, io_append);
if(!x)
return SendClientMessage(playerid, CZERWONY, "B??d! Nie mo?na otworzy? pliku vip?w!");
fwrite(x, str);
fclose(x);
format(str, 128, "Doda?e? do listy VIP gracza %s has?o: %s", nick, pass);
SendClientMessage(playerid, ZIELONY, str);
return 1;
}
//------------------------------------------------------------------------------
CMD:zabierzvipa(playerid, params[])
{
if(!CanGiveVip(playerid))
return SendClientMessage(playerid, CZERWONY, "Brak uprawnie?!");

if(isnull(params))
return SendClientMessage(playerid, BIALY, "U?yj: /zabierzvipa [id gracza]");

new giveid = strval(params);
if(!IsPlayerConnected(giveid))
return SendClientMessage(playerid, CZERWONY, "Z?e id! dla graczy niepod??czonych u?yj /zabierzvipanick");

if(!GetPVarInt(giveid, "vip"))
return SendClientMessage(playerid, CZERWONY, "Ten gracz nie posiada rangi vip!");

new ok, kreska, line, File:x = fopen(VPLIK, io_read);
if(!x)
{
SendClientMessage(playerid, CZERWONY, "Brak dost?pu do pliku vip?w! (prawdopodobnie nie istnieje)");
}
else
{
while(fread(x, str))
{
kreska = strfind(str, "|");
if(kreska < 2)
{
line++;
continue;
}
str[kreska] = EOS;
if(!strcmp(PlayerName(giveid), str))
{
ok = true;
break;
}
line++;
}
fclose(x);
if(ok)
DeleteFileLine(VPLIK, line);
}

format(str, 128, "Admin %s zabra? vip'a %s (ID:%d)", PlayerName(playerid), PlayerName(giveid), giveid);
SendClientMessageToAll(NIEBIESKI, str);
DeletePVar(giveid, "vip");
return 1;
}
//------------------------------------------------------------------------------
CMD:zabierzvipanick(playerid, params[])
{
if(!CanGiveVip(playerid))
return SendClientMessage(playerid, CZERWONY, "Brak uprawnie?!");

if(isnull(params))
return SendClientMessage(playerid, BIALY, "U?yj: /zabierzvipanick [nick]");

if(strlen(params) > MAX_PLAYER_NAME)
return SendClientMessage(playerid, CZERWONY, "Tak d?ugi nick nie mo?e istnie?!");

new ok, kreska, line, File:x = fopen(VPLIK, io_read);
if(!x)
return SendClientMessage(playerid, CZERWONY, "Brak dost?pu do pliku vip?w! (prawdopodobnie nie istnieje)");

while(fread(x, str))
{
kreska = strfind(str, "|");
if(kreska < 2)
{
line++;
continue;
}
str[kreska] = EOS;
if(!strcmp(params, str))
{
ok = true;
break;
}
line++;
}
fclose(x);
if(ok)
{
format(str, 64, "Wykasowa?e? z listy vipa o nicku %s", params);
DeleteFileLine(VPLIK, line);
}
else
format(str, 64, "Brak nick'u %s na li?cie vip!", params);

SendClientMessage(playerid, ZIELONY, str);
return 1;
}
//------------------------------------------------------------------------------
CMD:checkvip(playerid, params[])
{
if(!CanGiveVip(playerid))
return SendClientMessage(playerid, CZERWONY, "Brak uprawnie?!");

if(isnull(params))
return SendClientMessage(playerid, BIALY, "U?yj: /checkvip [nick lub id]");

new nick[MAX_PLAYER_NAME];
if(isNumeric(params))
{
GetPlayerName(strval(params), nick, MAX_PLAYER_NAME);
if(!nick[0])
return SendClientMessage(playerid, CZERWONY, "Z?e id gracza!");
}
else
{
strcat(nick, params);
}
new File:x = fopen(VPLIK, io_read);
if(!x)
return SendClientMessage(playerid, CZERWONY, "B??d, brak dost?pu do pliku vip?w!");

new kreska;
while(fread(x, str))
{
denter(str);
kreska = strfind(str, "|");
if(kreska < 2)
continue;

str[kreska] = EOS;
if(!strcmp(nick, str))
{
fclose(x);
kreska++;
for(new len = strlen(str[kreska]) + kreska; kreska < len; kreska++)
if(str[kreska] == '|')
break;

new time = strval(str[kreska + 1]);
if(time == -1)
return SendClientMessage(playerid, ZIELONY, "Ten gracz posiada nielimitowane konto vip!");

if(time < gettime())
return SendClientMessage(playerid, ZIELONY, "Konto gracza istnieje, lecz ju? wygas?o!");

time -= gettime();
new dni, godzin, minut;
dni = time / 86400;
time -= dni * 86400;
godzin = time / 3600;
time -= godzin * 3600;
minut = time / 60;
time -= minut * 60;
format(str, 128, "Gracz %s ma konto aktywne jeszcze przez %d dni i %02d:%02d:%02d (g:m:s)", nick, dni, godzin, minut, time);
SendClientMessage(playerid, ZIELONY, str);
return 1;
}
}
fclose(x);
SendClientMessage(playerid, ZLOTY, "Brak tego gracza na li?cie vip?w!");
return 1;
}
//------------------------------------------------------------------------------
CMD:myvip(playerid, params[])
{
if(!GetPVarInt(playerid, "vip"))
return SendClientMessage(playerid, CZERWONY, "Nie posiadasz rangi vip!");

new nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, nick, MAX_PLAYER_NAME);
new File:x = fopen(VPLIK, io_read);
if(!x)
return SendClientMessage(playerid, CZERWONY, "B??d, brak dost?pu do pliku vip?w!");

new kreska;
while(fread(x, str))
{
denter(str);
kreska = strfind(str, "|");
if(kreska < 2)
continue;

str[kreska] = EOS;
if(!strcmp(nick, str))
{
fclose(x);
kreska++;
for(new len = strlen(str[kreska]) + kreska; kreska < len; kreska++)
if(str[kreska] == '|')
break;

new time = strval(str[kreska + 1]);
if(time == -1)
return SendClientMessage(playerid, ZIELONY, "Posiadasz nielimitowane konto vip!");

if(time < gettime())
return SendClientMessage(playerid, ZIELONY, "B??d, twoje konto ju? wygas?o? zg?o? sie do admina!");

time -= gettime();
new dni, godzin, minut;
dni = time / 86400;
time -= dni * 86400;
godzin = time / 3600;
time -= godzin * 3600;
minut = time / 60;
time -= minut * 60;
format(str, 128, "Twoje konto jest aktywne jeszcze przez %d dni i %02d:%02d:%02d (g:m:s)", dni, godzin, minut, time);
SendClientMessage(playerid, ZIELONY, str);
return 1;
}
}
fclose(x);
SendClientMessage(playerid, ZLOTY, "Nie znaleziono ciebie na li?cie graczy vip, zg?o? si? do admina!");
return 1;
}
//------------------------------------------------------------------------------

public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG1)
{
if(response)
{
if(inputtext[0] && udb_hash(inputtext) == GetPVarInt(playerid, "Vpass"))
{
SetPVarInt(playerid, "vip", true);
DeletePVar(playerid, "logvip");
format(str, 90, "Gracz %s pomy?lnie zalogowa? si? na VIP'a", PlayerName(playerid));
SendClientMessageToAll(ZLOTY, str);
return 1;
}
else
{
SetPVarInt(playerid, "logvip", GetPVarInt(playerid, "logvip") + 1);
SendClientMessage(playerid, CZERWONY, "Z?e has?o, pami?taj ?e wielko?? liter te? ma znaczenie!");
}
if(GetPVarInt(playerid, "logvip") >= 3)
{
format(str, 90, "Gracz %s zosta? wyrzucony za podanie z?ego has?a VIP'a", PlayerName(playerid));
SendClientMessageToAll(CZERWONY, str);
Kick(playerid);
return 1;
}
ShowPlayerDialog(playerid, DIALOG1, DIALOG_STYLE_PASSWORD, "Logowanie VIP", "Z?e has?o! po 3 z?ych logowaniach zostaniesz wyrzucony z serwera!\nby na nim gra? musisz poda? has?o\nje?li nie jeste? osob? o randze VIP, wyjd? i zmien sw?j nick", "OK", "Kick");
}
else
Kick(playerid);

return 1;
}
if(dialogid == DIALOG2)
{
if(!response)
{
DeletePVar(playerid, "VIPDNI");
return 1;
}
if(strlen(inputtext) < 4 || strlen(inputtext) > 16)
{
SendClientMessage(playerid, CZERWONY, "Has?o musi mie? od 4-16 znak?w!");
ShowPlayerDialog(playerid, DIALOG2, DIALOG_STYLE_PASSWORD, "Has?o Vip", "Z?e has?o\nmusi mie? od 4-16 znak?w", "Ok", "Anuluj");
return 1;
}
format(str, 64, "%s|%d|%d\r\n", PlayerName(playerid), udb_hash(inputtext), (GetPVarInt(playerid, "VIPDNI") <= 0) ? (-1) : (gettime() + (GetPVarInt(playerid, "VIPDNI") * 86400)));
new File:x = fopen(VPLIK, io_append);
if(!x)
return SendClientMessage(playerid, CZERWONY, "Wynik? powa?ny b??d z plikiem vip?w!");

fwrite(x, str);
fclose(x);
SetPVarInt(playerid, "vip", true);
format(str, 128, "Gracz %s pomy?lnie zalogowa? si? na VIP'a", PlayerName(playerid));
SendClientMessageToAll(ZLOTY, str);
return 1;
}
return 1;
}

VipTest(playerid)
{
new File:x = fopen(VPLIK,io_read);
if(!x)
return false;

new nick[MAX_PLAYER_NAME], time, pass, line;
while(fread(x, str))
{
denter(str);
if(sscanf(str, "p<|>s[24]dd", nick, pass, time))
continue;

if(!strcmp(PlayerName(playerid), nick))
{
if(time == -1)
{}
else if(time < gettime())
{
fclose(x);
DeleteFileLine(VPLIK, line);
return false;
}
else if((time - gettime()) < 86400)
SetPVarInt(playerid, "VIPTIMER", SetTimerEx("ZabierzVipa", (time - gettime()) * 1000, false, "d", playerid));

SetPVarInt(playerid, "Vpass", pass);
ShowPlayerDialog(playerid, DIALOG1, DIALOG_STYLE_PASSWORD, "Logowanie VIP", "Ten nick jest tu zarejestrowany jako vip\nby na nim gra? musisz poda? has?o\nw innym razie opu?? serwer", "OK", "Kick");
fclose(x);
return true;
}
line++;
}
fclose(x);
return false;
}

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

stock udb_hash(buf[])
{
new s1 = 1, s2;
for(new n, len = strlen(buf); n < len; n++)
{
s1 = (s1 + buf[n]) % 65521;
s2 = (s2 + s1) % 65521;
}
return (s2 << 16) + s1;
}

stock isNumeric(const string[])
{
for(new i = strlen(string) - 1; i >= 0; i--)
if (string[i] > '9' || string[i] < '0')
return false;

return true;
}

register ZabierzVipa(playerid)
{
SendClientMessage(playerid, OLIWKOWY, "Uwaga! twoje konto vip w?a?nie wygas?o!");
DeletePVar(playerid, "vip");
DeletePVar(playerid, "VIPTIMER");
return 1;
}


[ Dodano: 2015-10-28, 10:34 ]
heh, ca?y kod wraz z t? linijk?::


Kod:

CMD:checkvip(playerid, params[])
{
if(!CanGiveVip(playerid))
return SendClientMessage(playerid, CZERWONY, "Brak uprawnie?!");

if(isnull(params))
return SendClientMessage(playerid, BIALY, "U?yj: /checkvip [nick lub id]");

new nick[MAX_PLAYER_NAME];
if(isNumeric(params))
{
GetPlayerName(strval(params), nick, MAX_PLAYER_NAME);
if(!nick[0])
return SendClientMessage(playerid, CZERWONY, "Z?e id gracza!");
}
else
{
strcat(nick, params);
}
new File:x = fopen(VPLIK, io_read);
if(!x)
return SendClientMessage(playerid, CZERWONY, "B??d, brak dost?pu do pliku vip?w!");

new kreska;
while(fread(x, str))
{
denter(str);
kreska = strfind(str, "|");
if(kreska < 2)
continue;

str[kreska] = EOS;
if(!strcmp(nick, str))
{
fclose(x);
kreska++;
for(new len = strlen(str[kreska]) + kreska; kreska < len; kreska++)
if(str[kreska] == '|')
break;

new time = strval(str[kreska + 1]);
if(time == -1)
return SendClientMessage(playerid, ZIELONY, "Ten gracz posiada nielimitowane konto vip!");

if(time < gettime())
return SendClientMessage(playerid, ZIELONY, "Konto gracza istnieje, lecz ju? wygas?o!");

time -= gettime();
new dni, godzin, minut;
dni = time / 86400;
time -= dni * 86400;
godzin = time / 3600;
time -= godzin * 3600;
minut = time / 60;
time -= minut * 60;
format(str, 128, "Gracz %s ma konto aktywne jeszcze przez %d dni i %02d:%02d:%02d (g:m:s)", nick, dni, godzin, minut, time);
SendClientMessage(playerid, ZIELONY, str);
return 1;
}
}
fclose(x);
SendClientMessage(playerid, ZLOTY, "Brak tego gracza na li?cie vip?w!"); <<< to ta linijka 273
return 1;
}


a tu drugi kod pod t? linijk?:

Kod:

//------------------------------------------------------------------------------
CMD:myvip(playerid, params[])
{
if(!GetPVarInt(playerid, "vip"))
return SendClientMessage(playerid, CZERWONY, "Nie posiadasz rangi vip!");

new nick[MAX_PLAYER_NAME];
GetPlayerName(playerid, nick, MAX_PLAYER_NAME);
new File:x = fopen(VPLIK, io_read);
if(!x)
return SendClientMessage(playerid, CZERWONY, "B??d, brak dost?pu do pliku vip?w!");

new kreska;
while(fread(x, str))
{
denter(str);
kreska = strfind(str, "|");
if(kreska < 2)
continue;

str[kreska] = EOS;
if(!strcmp(nick, str))
{
fclose(x);
kreska++;
for(new len = strlen(str[kreska]) + kreska; kreska < len; kreska++)
if(str[kreska] == '|')
break;

new time = strval(str[kreska + 1]);
if(time == -1)
return SendClientMessage(playerid, ZIELONY, "Posiadasz nielimitowane konto vip!");

if(time < gettime())
return SendClientMessage(playerid, ZIELONY, "B??d, twoje konto ju? wygas?o? zg?o? sie do admina!");

time -= gettime();
new dni, godzin, minut;
dni = time / 86400;
time -= dni * 86400;
godzin = time / 3600;
time -= godzin * 3600;
minut = time / 60;
time -= minut * 60;
format(str, 128, "Twoje konto jest aktywne jeszcze przez %d dni i %02d:%02d:%02d (g:m:s)", dni, godzin, minut, time);
SendClientMessage(playerid, ZIELONY, str);
return 1;
}
}
fclose(x);
SendClientMessage(playerid, ZLOTY, "Nie znaleziono ciebie na li?cie graczy vip, zg?o? si? do admina!");
return 1;
}


Postaw piwo autorowi tego posta
 

 
Tagi: vip
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » PAWN Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku