27.02.2014, 10:43
someone me may help to fuse the code to ban serial to the cmmds of my sistem admin.
what thi ist it what I want ? I want that giving ban and rban banee the serial.
thanks
what thi ist it what I want ? I want that giving ban and rban banee the serial.
thanks

Код:
#include <a_samp> #include <sscanf2> #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 native gpci(playerid, serial[], maxlen); new Location[100] = "/Serial_Bans/%s.lock"; public OnPlayerConnect(playerid) { new Code[50], Line[256]; gpci(playerid, Code, sizeof Code); format(Line, sizeof(Line), Location, Code); if(fexist(Line)) return Kick(playerid); return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(Ban, 3, cmdtext); dcmd(Code, 4, cmdtext); return 0; } dcmd_Ban(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return 0; new Code[50], Line[128], User, Nickname[MAX_PLAYER_NAME]; if(sscanf(params, "u", User)) return SendClientMessage(playerid, 0xFF0000FF, "Comando: /Ban <Nickname / ID>{FFFFFF}"); if(!IsPlayerConnected(User)) return SendClientMessage(playerid, 0xFF0000FF, "El usuario no se ha encontrado. Por favor, compruebe los datos del serial."); gpci(User, Code, sizeof(Code)); format(Line, sizeof(Line), Location, Code); GetPlayerName(User, Nickname, sizeof(Nickname)); new File:Datoteka = fopen(Line, io_write); fwrite(Datoteka, Nickname); fclose(Datoteka); Kick(User); SendClientMessage(playerid, 0xFFFFFF, "Usuario se ha aсadido correctamente a Banlist."); return 1; } dcmd_Code(playerid, params[]) { if(!IsPlayerAdmin(playerid)) return 0; new Code[50], Line[128], User; if(sscanf(params, "u", User)) return SendClientMessage(playerid, 0xFF0000FF, "{FF0000}Komanda:{FF0000} {FFFFFF}/Code <Nickname / ID>{FFFFFF}"); if(!IsPlayerConnected(User)) return SendClientMessage(playerid, 0xFF0000FF, "User was not fount. Please check input data."); gpci(User, Code, sizeof(Code)); format(Line, sizeof(Line), "User Serial: %s", Code); SendClientMessage(playerid, 0xFFFFFF, Line); return 1; } //*********************** Aсadir eso a estos comandos ************************** dcmd_ban(playerid,params[]) { if(PlayerInfo[playerid][LoggedIn] == 1) { if(PlayerInfo[playerid][Level] >= 10) { new temporal[256], temporal2[256], Index; temporal = strtok(params,Index), temporal2 = strtok(params,Index); if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, ""USOMSG" /ban [playerid] [razon]"); if(!strlen(temporal2)) return SendClientMessage(playerid, COLOR_RED, ""ERRORMSG" Debe especificar la razon"); new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], dmasjust[256]; player1 = strval(temporal); if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) { GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname)); new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second); CMDMessageToAdmins(playerid,"BAN"); format(dmasjust,sizeof(dmasjust),"%s ha sido baneado por el administrador %s [Razon: %s] [Dia: %d/%d/%d] [Hora: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite); SendClientMessageToAll(COLOR_RED,dmasjust); SaveToFile("BanLog",dmasjust); print(dmasjust); new nbaneado[MAX_PLAYER_NAME], abaneado[256]; GetPlayerName(player1, nbaneado, sizeof(nbaneado)); format(abaneado, sizeof(abaneado), "sadmin/usuarios/%s.ini", nbaneado); if(dini_Exists(abaneado) && PlayerInfo[player1][LoggedIn] == 1) dini_IntSet(abaneado, "banned", 1); format(dmasjust,sizeof(dmasjust),"baneado por el administrador %s. Razon: %s", adminname, params[2]); return BanEx(player1, dmasjust); } else return SendClientMessage(playerid, COLOR_RED, ""ERRORMSG" El jugador no esta conectado"); } else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Tienes que ser administrador nivel 10 para usar este comando"); } else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Debes estar logueado para usar este comando"); } // dcmd_rban(playerid,params[]) { if(PlayerInfo[playerid][LoggedIn] == 1) { if(PlayerInfo[playerid][Level] >= 11) { new ip[128], temporal[256], temporal2[256], Index; temporal = strtok(params,Index), temporal2 = strtok(params,Index); if(!strlen(params)) return SendClientMessage(playerid, COLOR_RED, ""USOMSG" /rban [playerid] [razon]"); if(!strlen(temporal2)) return SendClientMessage(playerid, COLOR_RED, ""ERRORMSG" Debes especificar la razon"); new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], dmajust[256]; player1 = strval(temporal); GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname)); new year,month,day,hour,minuite,second; getdate(year, month, day); gettime(hour,minuite,second); CMDMessageToAdmins(playerid,"RBAN"); format(dmajust,sizeof(dmajust),"%s ha sido baneado su rango por el administrador %s [Razon: %s] [Dia: %d/%d/%d] [Hora: %d:%d]",playername,adminname,params[2],day,month,year,hour,minuite); SendClientMessageToAll(COLOR_RED,dmajust); SaveToFile("BanLog",dmajust); print(dmajust); new nbaneado[MAX_PLAYER_NAME], abaneado[256]; GetPlayerName(player1, nbaneado, sizeof(nbaneado)); format(abaneado, sizeof(abaneado), "sadmin/usuarios/%s.ini", nbaneado); if(dini_Exists(abaneado) && PlayerInfo[player1][LoggedIn] == 1) dini_IntSet(abaneado, "banned", 1); RangeBan(player1); SendRconCommand(ip); return 1; } else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Tienes que ser administrador nivel 11 para usar este comando"); } else return SendClientMessage(playerid,COLOR_RED,""ERRORMSG" Nesesitas estar logueado para usar este comando"); }