02.11.2014, 17:59
Код:
#include <a_samp> #include <dini> #include <dudb> #include <sscanf2> //DCMD #define SERVER_USER_FILE "%s.ini" #define DIALOG_INFO 55 #define SCM SendClientMessage #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1 #pragma unused ret_memcpy #pragma tabsize 0 //new PlayerInfo[MAX_PLAYERS][pInfo]; new gPlayerLogged[MAX_PLAYERS]; new VIP[MAX_PLAYERS]; main() { print("Welcome to San Andreas"); print("Mode : WTSA"); print("Vytvorili : RonnyCZ a Johnny Law"); print("Welcome To San Andreas"); } public OnGameModeInit() { UsePlayerPedAnims (); SetGameModeText("test"); return 1; } public OnPlayerConnect(playerid) { VIP[playerid] = 0; gPlayerLogged[playerid] = 0; new file[128]; format(file, sizeof file, "%s.ini", Name(playerid)); if (!dini_Exists(file)) { new string[600]; new str[64], IPplayer[16]; strcat(string,"Welcome to server mode {00FFFF}Welcome To San Andreas - WTSA.eu\n"); strcat(string,"\n"); strcat(string,"{FFFFFF}Tento {00FFFF}Nick {FFFFFF}still there.\n"); strcat(string,"\n"); strcat(string,"{FF0000}Registration required!\n"); strcat(string,"\n"); format(str, sizeof str, "{FFFFFF}Nick: {00FFFF}%s \n", Name(playerid)); strcat(string, str); GetPlayerIp(playerid, IPplayer, 16); format(str, sizeof str, "{FFFFFF}IP: {00FFFF}%s \n", IPplayer); strcat(string, str); ShowPlayerDialog(playerid, 81, DIALOG_STYLE_PASSWORD, "Registrace", string, "Registrovat", "Odpojit"); } if(fexist(file)) { new string[700]; new str[64], IPplayer[16]; strcat(string,"{FFFFFF}Welcome back to server mode {00FFFF}Welcome To San Andreas - WTSA.eu\n"); strcat(string,"\n"); strcat(string,"{FFFFFF}Tento {00FFFF}Nick {FFFFFF}uћ existuje.\n"); strcat(string,"Zadejte heslo:\n"); strcat(string,"\n"); format(str, sizeof str, "{FFFFFF}Nick: {00FFFF}%s \n", Name(playerid)); strcat(string, str); GetPlayerIp(playerid, IPplayer, 16); format(str, sizeof str, "{FFFFFF}IP: {00FFFF}%s \n", IPplayer); strcat(string, str); ShowPlayerDialog(playerid, 82, DIALOG_STYLE_PASSWORD, "Login", string, "OK", "KICK"); } new string[250]; format(string,sizeof string,"{778899}[ {7CFC00}Connect {778899}] Player {7CFC00}%s {778899}(ID: {7CFC00}%d{778899}) came to the server",Name(playerid),playerid); SendClientMessageToAll(0xFFFFFFAA,string); return 1; } public OnPlayerDisconnect(playerid, reason) { new file[256]; format(file, sizeof(file), SERVER_USER_FILE, Name(playerid)); if(gPlayerLogged[playerid] == 1) { dini_IntSet(file, "VIP",VIP[playerid]); } gPlayerLogged[playerid] = 0; return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { dcmd(setvip,6,cmdtext); if(!strcmp(cmdtext, "/info", true)) { new string [100000]; new str[64], IPplayer[16]; strcat(string,"{00FF00}=======================Zбkladnн Informace=======================\n"); format(str, sizeof str, "{FFFFFF}Vбљ Nick - {00FFFF}%s \n", Name(playerid)); strcat(string, str); GetPlayerIp(playerid, IPplayer, 16);//mmnt format(str, sizeof str, "{FFFFFF}Vaљe IP - {00FFFF}%s \n", IPplayer); format(str, sizeof str, "{FFFFFF}VIP - {00FFFF}%d \n", VIP[playerid]); strcat(string, str); ShowPlayerDialog(playerid,DIALOG_INFO, DIALOG_STYLE_MSGBOX, "Info o hrбči", string, "OK", ""); return 1; } return SCM(playerid, -1, "{FF0000}[ {F0F0F0}Server {FF0000}] {F0F0F0} -> Unknown command, use the command -> {FF0000}/help"); } dcmd_setvip(playerid, params[]) { new lvl, ID; if(sscanf(params, "ud", ID, lvl)) return SendClientMessage(playerid, 0xFF0000AA, "{FF0000}[ {FFFFFF} Server {FF0000} ] {FFFF00} /setvip [ID] [Level]"); if(lvl < 0 || lvl > 1) return SendClientMessage(playerid, -1, "{FF0000}[ {FFFFFF} Server {FF0000} ] {FFFF00} Poor range! From only [0-1]"); if(!IsPlayerConnected(ID)) return SendClientMessage(playerid, -1, "{FF0000} {FFFFFF} Server {FF0000}] The player is not online ! "); if(IsPlayerAdmin(playerid)) { VIP[ID] = lvl; new string[138]; format(string,sizeof string,"{FFD700}[ VIP ]{FF0000}Admin %s set players %s VIP Level %d",Name(playerid),Name(ID),lvl); SendClientMessageToAll(0xFFFFFFAA,string); } else SendClientMessage(playerid, -1, "{FF0000} [ {FFFFFF} Server {FF0000}] you do not have rcon!"); return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { if (dialogid == 81) { new file[64], string[128]; format(file, sizeof(file), SERVER_USER_FILE, Name(playerid)); if(!response) return Kick(playerid); if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 81, DIALOG_STYLE_PASSWORD, " registered", " registered", "Registrovat", "Odpojit"); dini_Create(file); dini_IntSet(file, "Password", udb_hash(inputtext)); dini_IntSet(file, "VIP",VIP[playerid] = 0); new IPplayer[16]; GetPlayerIp(playerid, IPplayer, 16); format(string,128, "{FF0000}[ {FFFFFF} Server {FF0000}] {FFFFFF} Nick : %s | Password : %s | IP : %s", Name(playerid), inputtext, IPplayer); SendClientMessage(playerid, -1, string); format(string,128, "{FF0000}[{FFFFFF} Server {FF0000}] {FFFFFF} You're registered", Name(playerid), inputtext); SendClientMessage(playerid, -1, string); SendClientMessage(playerid, 0xFFFFFF, string); gPlayerLogged[playerid] = 1; } if (dialogid == 82) { new file[64]; format(file, sizeof(file), SERVER_USER_FILE, Name(playerid)); if(!response) return Kick(playerid); if (!strlen(inputtext)) return ShowPlayerDialog(playerid, 81, DIALOG_STYLE_PASSWORD, "You're registered", "Pamatuj si Heslo", "OK", "Kick"); new tmp; tmp = dini_Int(file, "Password"); if(udb_hash(inputtext) != tmp) { new string[500]; new str[64], IPplayer[16]; strcat(string,"{FFFFFF}Welcome retroactively server mode {00FFFF}Welcome To San Andreas - WTSA.eu\n"); strcat(string,"\n"); strcat(string,"{FFFFFF}Tento {00FFFF}Nick {FFFFFF}already exists.\n"); strcat(string,"Zadejte heslo:\n"); strcat(string,"\n"); strcat(string,"\n"); format(str, sizeof str, "{FFFFFF}Nick: {00FFFF}%s \n", Name(playerid)); strcat(string, str); GetPlayerIp(playerid, IPplayer, 16); format(str, sizeof str, "{FFFFFF}IP: {00FFFF}%s \n", IPplayer); strcat(string, str); ShowPlayerDialog(playerid, 82, DIALOG_STYLE_PASSWORD, "Login",string, "OK", "Kick"); } else { gPlayerLogged[playerid] = 1; // VIP[playerid] = dini_Int(file, "VIP"); SendClientMessage(playerid,0xFFFFFF, "{FF0000}[ {FFFFFF}Server {FF0000}] {FFFFFF} Successful Login"); } return 1; } return 0; } stock Name(playerid) { new n[MAX_PLAYER_NAME]; GetPlayerName(playerid,n,sizeof(n)); return n; }