13.08.2010, 18:22
(
Последний раз редактировалось hellangel; 13.08.2010 в 22:15.
)
Gente eu msm fiz um sistema de Ban por nick, mas estou com um probleminha: Eu botei pra salvar o nome de quem estб banido em um arquivo. Neste arquivo estб salvo: Nome de quem foi ban, IP do cara, Quem baniu e o motivo. Mas tenho dois problemas: Quando й pra aparecer o Dialog dizendo que a pessoa estб ban, sу aparece um quadrado no IP, ficando:
Outro problema: Qualquer um idiota й banido quando entra, mesmo se seu nick nгo estiver no arquivo ban.txt
Olha o cуdigo:
Ajudem ae!!!
Outro problema: Qualquer um idiota й banido quando entra, mesmo se seu nick nгo estiver no arquivo ban.txt
Olha o cуdigo:
pawn Код:
forward Bann(playerid);
enum pBann
{
Banned[MAX_PLAYER_NAME],
IPBanned[16],
WhoBanned[MAX_PLAYER_NAME],
BanMotive[128],
};
new BanInfo[MAX_PLAYERS][pBann];
public OnPlayerConnect(playerid)
{
if(strcmp(BanInfo[playerid][Banned], name, true) == 0)
{
new string[512];
format(string, sizeof(string), "Este Nick estб banido do servidor.\n\nInformaзхes do Ban:\n\n\nConta: %s\nIP Banido: %s\nAdmin que Baniu: %s\nMotivo do Ban: %s\n\nIsto foi um erro? Relate a nуs no Fуrum:\n\nhttp://bgc-samp.co.cc", BanInfo[playerid][Banned], BanInfo[playerid][IPBanned], BanInfo[playerid][WhoBanned], BanInfo[playerid][BanMotive]);
ShowPlayerDialog(playerid, BanN, DIALOG_STYLE_MSGBOX, "Vocк estб banido do servidor!", string, "---", "---");
SendClientMessage(playerid, COLOR_LIGHTRED, "Para sair do jogo use /q.");
Kick(playerid);
}
new IP[16];
GetPlayerIp(playerid, IP, sizeof(IP));
if(strcmp(BanInfo[playerid][IPBanned], IP, true) == 0)
{
new string[512];
format(string, sizeof(string), "Este IP estб banido do servidor.\n\nInformaзхes do Ban:\n\n\nConta: %s\nIP Banido: %s\nAdmin que Baniu: %s\nMotivo do Ban: %s\n\nIsto foi um erro? Relate a nуs no Fуrum:\n\nhttp://bgc-samp.co.cc", BanInfo[playerid][Banned], BanInfo[playerid][IPBanned], BanInfo[playerid][WhoBanned], BanInfo[playerid][BanMotive]);
ShowPlayerDialog(playerid, BanI, DIALOG_STYLE_MSGBOX, "Vocк estб banido do servidor!", string, "---", "---");
SendClientMessage(playerid, COLOR_LIGHTRED, "Para sair do jogo use /q.");
Kick(playerid);
}
public Bann(playerid)
{
new idx;
new File: file2;
while (idx < sizeof(HouseInfo))
{
new coordsstring[280];
format(coordsstring, sizeof(coordsstring), "%s,%s,%s,%s\r\n",
BanInfo[idx][Banned],
BanInfo[idx][IPBanned],
BanInfo[idx][WhoBanned],
BanInfo[idx][BanMotive]);
if(idx == 0)
{
file2 = fopen("ban.txt", io_write);
}
else
{
file2 = fopen("ban.txt", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
public OnGameModeInit()
{
new arrCoords[4][64];
new strFromFile2[256];
new File: file = fopen("ban.txt", io_read);
if (file)
{
new idx;
while (idx < sizeof(BanInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
BanInfo[idx][Banned] = strval(arrCoords[0]);
BanInfo[idx][IPBanned] = strval(arrCoords[1]);
BanInfo[idx][WhoBanned] = strval(arrCoords[2]);
BanInfo[idx][BanMotive] = strval(arrCoords[3]);
idx++;
}
fclose(file);
}