Wysłany: 2012-08-22, 19:50
patryx7
Wiek: 29 Na forum: 5062 dni Posty: 19
Nick w MP: patryx6
Witam sci?g?em sobie bansystem z jakiej? strony i wogule nie umiem tego przet?umaczy? nawet nei wiem co to znaczy i nie ogarniam prosi?bym jakby kto? m?g? jako? to ogarn?? albo da? link do jakiego? polskiego polej? sie
Kod: //(?) Splav
#include <a_samp>
#include <zcmd>
#include <sscanf>
new DB:ServerDB,
year, month, day,
UBDay, UBHour, UBMin, UBSec, UBMSec, bool:plban[MAX_PLAYERS],
sendername[32], giveplayer[32], str[255],
player[MAX_PLAYERS];
public OnFilterScriptInit()
{
if(fexist("bans.db")) ServerDB = db_open("bans.db");
else
{
ServerDB = db_open("bans.db");
db_query(ServerDB, "CREATE TABLE bans (name varchar, ip varchar, bandate varchar, time int, unbandate int, reason varchar)");
}
SetTimer("CheckBans", 1000, 1);
return true;
}
public OnPlayerConnect(playerid)
{
CheckBanList(playerid);
return true;
}
public OnPlayerDisconnect(playerid)
{
plban[playerid] = false;
player[playerid] = 0;
return true;
}
CMD:ban(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return true;
new giveplayerid, days, text[255], ip[32], date[32], unbandate;
if(sscanf(params, "uds", giveplayerid, days, text)) return SendClientMessage(playerid, 0xFF0000AA, "{FFFF00}*?????????*: {FFFFFF}/ban [ID ????] [???-?? ??] [???????]");
if(!IsPlayerConnected(giveplayerid) || giveplayerid == INVALID_PLAYER_ID) return SendClientMessage(playerid, 0xFF0000AA, "{FFFF00}*????????*: {FFFFFF}?????? ??? ? ??");
GetPlayerName(playerid, sendername, 32);
GetPlayerName(giveplayerid, giveplayer, 32);
GetPlayerIp(giveplayerid, ip, 32);
format(str, sizeof(str), "{FFFF00}* {%06x}%s(%d) {00FF00}??????? ???????????? ?????. {BF00FF}???? ?? ? ??: {FFFFFF}%d. {BF00FF}???????: {FFFFFF}%s {FFFF00}*", GetPlayerColor(giveplayerid) >>> 8, giveplayer, giveplayerid, days, text);
SendClientMessageToAll(0xFF0000AA, str);
plban[giveplayerid] = true;
unbandate = gettime() + days*86400;
format(date, 32, "%02d.%02d.%04d", day, month, year);
format(str, sizeof(str), "INSERT INTO bans (name, ip, bandate, time, unbandate, reason) VALUES ('%s', '%s', '%s', %d, %d, '%s')", giveplayer, ip, date, days, unbandate, text);
db_query(ServerDB, str);
return true;
}
CMD:unban(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return true;
new text[32], DBResult:answer;
if(sscanf(params, "s", text)) return SendClientMessage(playerid, 0xFF0000AA, "{FFFF00}*?????????*: {FFFFFF}/unban [ID ????]");
format(str, sizeof(str), "SELECT * FROM bans WHERE name = '%s'", text);
answer = db_query(ServerDB, str);
if(!db_num_rows(answer)) return SendClientMessage(playerid, 0xFF0000AA, "{FFFF00}*????????*: {FFFFFF}??????? ???? ? ? ? ???!");
format(str, sizeof(str), "DELETE FROM bans WHERE name = '%s'", text);
db_query(ServerDB, str);
format(str, sizeof(str), "{00FF00}?? ??????? {FFFFFF}%s", text);
SendClientMessage(playerid, 0xFF0000AA, str);
db_free_result(answer);
return true;
}
CMD:banlist(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return true;
new DBResult:answer, rows, banlist[1000];
new name[32], ip[32];
answer = db_query(ServerDB, "SELECT name, ip FROM bans");
rows = db_num_rows(answer);
for(new i; i<rows; i++)
{
db_get_field(answer, 0, name, 32);
db_get_field(answer, 1, ip, 32);
format(str, sizeof(str), "{FF0000}%s {FFFF00}(%s)\n", name, ip);
strcat(banlist, str);
db_next_row(answer);
}
ShowPlayerDialog(playerid, 503, DIALOG_STYLE_LIST, "???????", banlist, "???????", "???????");
db_free_result(answer);
return true;
}
CMD:cbanlist(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return true;
format(str, sizeof(str), "DELETE FROM bans WHERE unbandate < %d", getdate());
db_query(ServerDB, str);
SendClientMessage(playerid, 0xFF0000AA, "?????? ???????");
return true;
}
stock convert(time, &min, &sec, &msec)
{
new Float:fTime = floatdiv(time, 60000);
min = floatround(fTime, floatround_tozero);
sec = floatround(floatmul(fTime - min, 60), floatround_tozero);
msec = floatround(floatmul(floatmul(fTime - min, 60) - sec, 1000), floatround_tozero);
}
stock CheckBanList(playerid)
{
new DBResult:answer, var[32], unbandate, bool:ban, ip[32];
GetPlayerName(playerid, sendername, 32);
GetPlayerIp(playerid, ip, 32);
format(str, sizeof(str), "SELECT * FROM bans WHERE name = '%s'", sendername);
answer = db_query(ServerDB, str);
if(db_num_rows(answer))
{
db_get_field(answer, 4, var, 32);
unbandate = strval(var);
if(unbandate - gettime() > 0) ban = true;
}
format(str, sizeof(str), "SELECT * FROM bans WHERE ip = '%s'", ip);
answer = db_query(ServerDB, str);
if(db_num_rows(answer))
{
db_get_field(answer, 4, var, 32);
unbandate = strval(var);
if(unbandate - gettime() > 0) ban = true;
}
if(ban == true)
{
convert((unbandate-gettime())*1000,UBMin,UBSec,UBMSec);
UBHour = UBMin/60;
UBMin = UBMin%60;
UBDay = UBHour/24;
UBHour = UBHour%24;
format(str, sizeof(str), "{FF0000}??? ????? ??????????! {FFFF00}?? ????? ?????? {FFFFFF}%d ?? %d ??? %d ??? {FFFF00}? {FFFFFF}%d ????", UBDay, UBHour, UBMin, UBSec);
SendClientMessage(playerid, 0xFF0000FF, str);
Kick(playerid);
}
return true;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == 503 && response)
{
new dialog[503], DBResult:answer,
name[32], ip[32], bandate[32], time, unbandate, reason[255], var[32];
answer = db_query(ServerDB, "SELECT * FROM bans");
for(new i; i<listitem; i++) db_next_row(answer);
db_get_field(answer, 0, name, 32);
db_get_field(answer, 1, ip, 32);
db_get_field(answer, 2, bandate, 32);
db_get_field(answer, 3, var, 32); time = strval(var);
db_get_field(answer, 4, var, 32); unbandate = strval(var);
db_get_field(answer, 5, reason, 255);
player[playerid] = listitem;
convert((unbandate-gettime())*1000,UBMin,UBSec,UBMSec);
UBHour = UBMin/60;
UBMin = UBMin%60;
UBDay = UBHour/24;
UBHour = UBHour%24;
format(str, sizeof(str), "{FFFF00}???: {FFFFFF}%s. {FFFF00}IP: {FFFFFF}%s\n", name, ip);
strcat(dialog, str);
format(str, sizeof(str), "{FFFF00}???? ??: {FFFFFF}%s\n", bandate);
strcat(dialog, str);
format(str, sizeof(str), "{FFFF00}???? ??: {FFFFFF}%d\n", time);
strcat(dialog, str);
format(str, sizeof(str), "{FFFF00}?????? ???: {FFFFFF}%d ?? ? %d ???\n", UBDay, UBHour);
strcat(dialog, str);
format(str, sizeof(str), "{FFFF00}??????? ??: {FFFFFF}%s", reason);
strcat(dialog, str);
ShowPlayerDialog(playerid, 504, DIALOG_STYLE_MSGBOX, "???????", dialog, "???????", "?????????");
db_free_result(answer);
return true;
}
if(dialogid == 504 && !response)
{
new DBResult:answer, name[32];
answer = db_query(ServerDB, "SELECT name FROM bans");
for(new i; i<player[playerid]; i++) db_next_row(answer);
db_get_field(answer, 0, name, 32);
format(str, sizeof(str), "DELETE FROM bans WHERE name = '%s'", name);
db_query(ServerDB, str);
SendClientMessage(playerid, 0xFF0000AA, "??????? ???????????!");
db_free_result(answer);
return true;
}
return false;
}
forward CheckBans();
public CheckBans()
{
for(new i; i<GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i) && plban[i] == true) Kick(i);
}
return true;
}
Wysłany: 2012-08-22, 21:02
Carlli
Wiek: 30 Na forum: 5085 dni Posty: 695
Piwa : 2486
Nie ma polskiego to jest napisane w j?zyku pawn.
Wysłany: 2012-08-22, 21:20
patryx7
Wiek: 29 Na forum: 5062 dni Posty: 19
Nick w MP: patryx6
Ale mi chodzi czy da rade to przet?umaczy? te znaczki to jest jezyk (Magyar) w?gierski tylko ?e w translate.google nie da sie przetlumaczyc
Wysłany: 2012-08-22, 21:46
Carlli
Wiek: 30 Na forum: 5085 dni Posty: 695
Piwa : 2486
Wysłany: 2012-08-23, 10:39
B!4CK
Never give UP!
Wiek: 32 Na forum: 5810 dni Posty: 1047
Nick w MP: John
Piwa : 1891
Da si?, jest to po j?zyku bodaj?e ruskim czy ch.. wie jakim. Je?li popracujesz nad tym kodem.
Z?y dzia? !
Podpis
Cześć
[you]
!
Projekt, który poruszy scenę platformy SA:MP!
Wysłany: 2012-08-23, 10:43
Carlli
Wiek: 30 Na forum: 5085 dni Posty: 695
Piwa : 2486
blackelegy , po rusku Jak tu s? s?owa takie jak Message czy Player to chyba Angielski.
Wysłany: 2012-08-23, 10:47
B!4CK
Never give UP!
Wiek: 32 Na forum: 5810 dni Posty: 1047
Nick w MP: John
Piwa : 1891
Og?lnie tu masz PAWN+Ruski = Musisz sendclientmessage mniej wi?cej takie rzeczy przet?umaczy? (Co jest po rusku, t?umacz). A tak masz po PAWN.
Podpis
Cześć
[you]
!
Projekt, który poruszy scenę platformy SA:MP!
Wysłany: 2012-08-23, 10:50
Carlli
Wiek: 30 Na forum: 5085 dni Posty: 695
Piwa : 2486
Wysłany: 2012-08-23, 11:47
patryx7
Wiek: 29 Na forum: 5062 dni Posty: 19
Nick w MP: patryx6
Sorki za dzia? pomyli?o mi sie dzi?ki jako? to ogarne ?apcie piwka
[ Dodano : 2012-08-23, 19:01 ]
ale chcia?bym zauwa?y?, ?e tego sie nie da przet?umaczy? ja np. nie potrafie
Tagi: ban :: system :: sqlite
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: