Вырезать регистрацию
LoLmerry Дата: Среда, 28.08.2013, 19:35:05 | Сообщение # 1
Группа: Пользователи
Сообщений: 13
Код
// Classic TDM Mod SAMP 0.3. By happy_hardcore for ****-***.*** #include <a_samp> #include <core> #include <float> #include <utils> #include <ganticheat> #define COLOR_GRAD 0xB4B5B7FF #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA static gTeam[MAX_PLAYERS]; forward ShowStats(playerid,targetid); forward SetPlayerTeamFromClass(playerid,classid); forward UpdateTextDraw(); forward DelayedGMX(); forward UpdateTime(); forward OnPlayerRegister(playerid, password[]); forward OnPlayerLogin(playerid,password[]); forward ini_GetKey( line[] ); forward ini_GetValue( line[] ); forward OnPlayerUpdate(playerid); stock ini_GetKey( line[] ) { new keyRes[256]; keyRes[0] = 0; if ( strfind( line , "=" , true ) == -1 ) return keyRes; strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) ); return keyRes; } stock ini_GetValue( line[] ) { new valRes[256]; valRes[0]=0; if ( strfind( line , "=" , true ) == -1 ) return valRes; strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) ); return valRes; } new numplayers = 0; new gPlayerLogged[MAX_PLAYERS]; new TeamOneScore = 0; new TeamTwoScore = 0; new Text:draw; new MaxScore = 50; new Text:txtTimeDisp; new hour, minute; new timestr[32]; new gActivePlayers[MAX_PLAYERS]; new gPlayerAccount[MAX_PLAYERS]; enum pInfo { pKey[128], pBanned, pAdmin, pDeath, pKill, }; new PlayerInfo[MAX_PLAYERS][pInfo]; main() { print("...[Classic TDM, by Happy_Hardcore]..."); } public UpdateTime() { gettime(hour, minute); format(timestr,32,"%02d:%02d",hour,minute); TextDrawSetString(txtTimeDisp,timestr); SetWorldTime(hour); new x=0; while(x!=MAX_PLAYERS) { if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) { SetPlayerTime(x,hour,minute); } x++; } } public OnGameModeInit() { SetGameModeText("Classic TDM"); SetTimer("UpdateTextDraw",1000,1); UsePlayerPedAnims(); // Бомжи AddPlayerClassEx(0,289,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(1,293,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(2,180,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(4,29,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(5,169,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); // Анти бомжы AddPlayerClassEx(6,285,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(7,286,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(8,267,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(9,265,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(10,192,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00"); TextDrawUseBox(txtTimeDisp, 0); TextDrawFont(txtTimeDisp, 3); TextDrawSetShadow(txtTimeDisp,1); TextDrawSetOutline(txtTimeDisp,2); TextDrawBackgroundColor(txtTimeDisp,0xFFBCFFFF); TextDrawColor(txtTimeDisp,0x0027FF); TextDrawAlignment(txtTimeDisp,3); TextDrawLetterSize(txtTimeDisp,0.5,1.5); UpdateTime(); SetTimer("UpdateTime",1000 * 60,1); draw = TextDrawCreate(500.0,300.0," "); TextDrawAlignment(draw,0); TextDrawBackgroundColor(draw,0x000FF); TextDrawFont(draw,2); TextDrawLetterSize(draw,0.4,1.2); TextDrawColor(draw,0x000FF); TextDrawSetOutline(draw,1); TextDrawSetProportional(draw,1); TextDrawSetShadow(draw,1); return true; } public UpdateTextDraw() { new string[128]; format(string,sizeof(string),"~r~—O–„…:~w~~n~OЌK… : %d~n~~b~AHT… —O–„…:~w~~n~OЌK… : %d~n~~n~–AKC…–Y–~n~OЌKOB: %d",TeamOneScore,TeamTwoScore,MaxScore); TextDrawSetString(draw,string); if(MaxScore == TeamOneScore) { SendClientMessageToAll(0x33FF33AA, "Win Terrorists!"); for(new 19:23:31 i=0;i<MAX_PLAYERS;i++) { TogglePlayerControllable(i,false); TextDrawHideForAll(draw); SetTimer("DelayedGMX",4000,0); } } else if(MaxScore == TeamTwoScore) { SendClientMessageToAll(0x33FF33AA, "Win Special Forces!"); for(new i=0;i<MAX_PLAYERS;i++) { TogglePlayerControllable(i,false); TextDrawHideForAll(draw); SetTimer("DelayedGMX",4000,0); } } return true; } public DelayedGMX() { SendRconCommand("gmx"); } public SetPlayerTeamFromClass(playerid,classid) { switch (classid) { case 0: { gTeam [playerid]= 0; } case 1: { gTeam [playerid]= 0; } case 2: { gTeam [playerid]= 0; } case 3: { gTeam [playerid]= 0; } case 4: { gTeam [playerid]= 0; } case 5: { gTeam [playerid]= 1; } case 6: { gTeam [playerid]= 1; } case 7: { gTeam [playerid]= 1; } case 8: { gTeam [playerid]= 1; } case 9: { gTeam [playerid]= 1; } } } public OnPlayerRequestClass(playerid, classid) { switch(classid) { case 0: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 1: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 2: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 3: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 4: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 5: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 6: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 7: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 8: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 9: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } } return true; } public OnPlayerConnect(playerid) { gActivePlayers[playerid]++; numplayers++; gettime(hour, minute); SetPlayerTime(playerid,hour,minute); new plname[MAX_PLAYER_NAME]; new string[MAX_PLAYER_NAME]; gPlayerAccount [playerid]= 0; PlayerInfo [playerid][pBanned]= 0; PlayerInfo [playerid][pAdmin]= 0; PlayerInfo [playerid][pDeath]= 0; PlayerInfo [playerid][pKill]= 0; SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер."); SendDeathMessage(INVALID_PLAYER_ID,playerid,200); SetPlayerColor(playerid, 0x4FF0FF); GetPlayerName(playerid, plname, sizeof(plname)); format(string, sizeof(string), "%s.ini", plname); if(fexist(string)) { gPlayerAccount [playerid]= 1; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } else { gPlayerAccount [playerid]= 0; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } return 1; } public OnPlayerDisconnect(playerid, reason) { gActivePlayers[playerid]--; numplayers--; OnPlayerUpdate(playerid); TextDrawHideForPlayer(playerid, draw); SendDeathMessage(INVALID_PLAYER_ID,playerid,201); return true; } public OnPlayerSpawn(playerid) { TextDrawShowForPlayer(playerid,txtTimeDisp); gettime(hour, minute); SetPlayerTime(playerid,hour,minute); TextDrawShowForPlayer(playerid, draw); if(gTeam [playerid]== 0) { SetPlayerTeam(playerid, 0); SetPlayerColor(playerid, 0xFF0000AA); } if(gTeam [playerid]== 1) { SetPlayerTeam(playerid, 1); SetPlayerColor(playerid, 0x0000FFFF); } return true; } public OnPlayerDeath(playerid, killerid, reason) { TextDrawHideForPlayer(playerid,txtTimeDisp); if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } else { if(gTeam [killerid]== 0) { TeamOneScore ++; } if(gTeam [killerid]== 1) { TeamTwoScore ++; } PlayerInfo [killerid][pKill]+= 1; PlayerInfo [playerid][pDeath]-= 1; SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); } return true; } public OnPlayerCommandText(playerid, cmdtext[]) { new string[256]; new sendername[MAX_PLAYER_NAME]; new giveplayer[MAX_PLAYER_NAME]; new cmd[256]; new tmp[256]; new giveplayerid, idx; cmd = strtok(cmdtext, idx); idx++; if (strcmp("/kill", cmdtext, true, 5) == 0) { SetPlayerHealth(playerid, 0.0); return 1; } if(strcmp(cmd, "/kick", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] "); return 1; } giveplayerid = ReturnUser(tmp); if (PlayerInfo [playerid][pAdmin]>= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] "); return 1; } format(string, sizeof(string), "%s был кикнут администратором %s, причина: %s ", giveplayer, sendername, (result)); SendClientMessageToAll(0xFF5D53FF, string); Kick(giveplayerid); return 1; } } } else { format(string, sizeof(string), "Игрок не подключен."); SendClientMessage(playerid, COLOR_GRAD, string); } } return 1; } if (strcmp(cmd, "/stats", true) == 0) { if(IsPlayerConnected(playerid)) { if (gPlayerLogged [playerid]!= 0) { ShowStats(playerid,playerid); } else { SendClientMessage(playerid, COLOR_GRAD, "Вы не зашли на сервер."); } } return 1; } if(strcmp(cmd, "/ban", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]"); return 1; } giveplayerid = ReturnUser(tmp); if (PlayerInfo [playerid][pAdmin]>= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]"); return 1; } PlayerInfo [giveplayerid][pBanned]= 1; format(string, sizeof(string), "%s забанен администратором %s, причина: %s", giveplayer, sendername, (result)); SendClientMessageToAll(0xFF5D53FF, string); Ban(giveplayerid); return 1; } } } else { format(string, sizeof(string), "Игрок не подключен."); SendClientMessage(playerid, COLOR_GRAD, string); } } return 1; } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new tpass[256]; if(dialogid == 1) { if(response) { if(!strlen(inputtext)) { new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); return 1; } strmid(tpass, inputtext, 0, strlen(inputtext), 255); OnPlayerLogin(playerid,tpass); } else { SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна авторизация!"); Kick(playerid); } } else if(dialogid == 2) { if(response) { if(!strlen(inputtext)) { new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для того чтобы аккаунт не был взломан."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена"); return 1; } strmid(tpass, inputtext, 0, strlen(inputtext), 255); OnPlayerRegister(playerid,tpass); new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена"); } else { SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна регистрация!"); Kick(playerid); } } return 1; } public OnPlayerRegister(playerid, password[]) { if(IsPlayerConnected(playerid)) { new string3[32]; new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); format(string3, sizeof(string3), "%s.ini", playername3); new File: hFile = fopen(string3, io_write); if (hFile) { strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255); new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var); format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var); format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var); format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var); fclose(hFile); } } return 1; } public OnPlayerLogin(playerid,password[]) { new string2[64]; new playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername2, sizeof(playername2)); format(string2, sizeof(string2), "%s.ini", playername2); new File: UserFile = fopen(string2, io_read); if ( UserFile ) { new PassData[256]; new keytmp[256], valtmp[256]; fread( UserFile , PassData , sizeof( PassData ) ); keytmp = ini_GetKey( PassData ); if( strcmp( keytmp , "Key" , true ) == 0 ) { valtmp = ini_GetValue( PassData ); strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255); } if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 ) { new key[ 256 ] , val[ 256 ]; new Data[ 256 ]; while ( fread( UserFile , Data , sizeof( Data ) ) ) { key = ini_GetKey( Data ); if( strcmp( key , "Banned" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pBanned]= strval( val ); } if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pAdmin]= strval( val ); } if( strcmp( key , "Death" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pDeath]= strval( val ); } if( strcmp( key , "Kill" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pKill]= strval( val ); } } fclose(UserFile); } else { fclose(UserFile); new loginmsg[256+1]; format(loginmsg,256,"Пароль не свопадает с логином!"); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } if(PlayerInfo [playerid][pBanned]== 1) { SendClientMessage(playerid, 0x33CCFFAA,"Этот аккаунт был забанен."); Kick(playerid); } new rank[20]; new kill = PlayerInfo[playerid][pKill]; if(kill >= 60 && kill <= 100) { rank = "Боец"; } else if(kill >= 100 && kill <= 160) { rank = "Убийца"; } else if(kill >= 160 && kill <= 200) { rank = "Палач"; } else if(kill >= 200 && kill <= 260) { rank = "Кровопускатель"; } else if(kill >= 300 && kill <= 360) { rank = "Мясоруб"; } else if(kill >= 360 && kill <= 500) { rank = "Смерть"; } else if(kill >= 500) { rank = "Батька"; } else { rank = "Салага"; } format(string2, sizeof(string2), "Добро пожаловать, %s.",rank); SendClientMessage(playerid, 0x33CCFFAA,string2); printf("%s вошел на сервер.",playername2); if (PlayerInfo [playerid][pAdmin]> 0) { format(string2, sizeof(string2), "Вы вошли как администратор %d уровня.",PlayerInfo[playerid][pAdmin]); SendClientMessage(playerid, 0x33CCFFAA,string2); } } return 1; } public OnPlayerUpdate(playerid) { if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid]) { new string3[32]; new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); format(string3, sizeof(string3), "%s.ini", playername3); new File: hFile = fopen(string3, io_write); if (hFile) { new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var); format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var); format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var); format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var); fclose(hFile); } } } return 1; } public ShowStats(playerid,targetid) { if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid)) { new rank[20]; new death = PlayerInfo[targetid][pDeath]; new kill = PlayerInfo[targetid][pKill]; if(kill >= 60 && kill <= 100) { rank = "Боец"; } else if(kill >= 100 && kill <= 160) { rank = "Убийца"; } else if(kill >= 160 && kill <= 200) { rank = "Палач"; } else if(kill >= 200 && kill <= 260) { rank = "Кровопускатель"; } else if(kill >= 300 && kill <= 360) { rank = "Мясоруб"; } else if(kill >= 360 && kill <= 500) { rank = "Смерть"; } else if(kill >= 500) { rank = "Батька"; } else { rank = "Салага"; } new coordsstring[256]; SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); format(coordsstring, sizeof(coordsstring), " Смертей: %d",death); SendClientMessage(playerid, COLOR_WHITE,coordsstring); format(coordsstring, sizeof(coordsstring), " Убийств: %d",kill); SendClientMessage(playerid, COLOR_WHITE,coordsstring); format(coordsstring, sizeof(coordsstring), " Игровой Ранг: %s",rank); SendClientMessage(playerid, COLOR_WHITE,coordsstring); SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); } } strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string [index]<= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string [index]> ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Добавлено (28.08.2013, 19:35:05) ---------------------------------------------Помогите вырезать регистрацию из данного мода - -
Сообщение Код
// Classic TDM Mod SAMP 0.3. By happy_hardcore for ****-***.*** #include <a_samp> #include <core> #include <float> #include <utils> #include <ganticheat> #define COLOR_GRAD 0xB4B5B7FF #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_WHITE 0xFFFFFFAA static gTeam[MAX_PLAYERS]; forward ShowStats(playerid,targetid); forward SetPlayerTeamFromClass(playerid,classid); forward UpdateTextDraw(); forward DelayedGMX(); forward UpdateTime(); forward OnPlayerRegister(playerid, password[]); forward OnPlayerLogin(playerid,password[]); forward ini_GetKey( line[] ); forward ini_GetValue( line[] ); forward OnPlayerUpdate(playerid); stock ini_GetKey( line[] ) { new keyRes[256]; keyRes[0] = 0; if ( strfind( line , "=" , true ) == -1 ) return keyRes; strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) ); return keyRes; } stock ini_GetValue( line[] ) { new valRes[256]; valRes[0]=0; if ( strfind( line , "=" , true ) == -1 ) return valRes; strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) ); return valRes; } new numplayers = 0; new gPlayerLogged[MAX_PLAYERS]; new TeamOneScore = 0; new TeamTwoScore = 0; new Text:draw; new MaxScore = 50; new Text:txtTimeDisp; new hour, minute; new timestr[32]; new gActivePlayers[MAX_PLAYERS]; new gPlayerAccount[MAX_PLAYERS]; enum pInfo { pKey[128], pBanned, pAdmin, pDeath, pKill, }; new PlayerInfo[MAX_PLAYERS][pInfo]; main() { print("...[Classic TDM, by Happy_Hardcore]..."); } public UpdateTime() { gettime(hour, minute); format(timestr,32,"%02d:%02d",hour,minute); TextDrawSetString(txtTimeDisp,timestr); SetWorldTime(hour); new x=0; while(x!=MAX_PLAYERS) { if(IsPlayerConnected(x) && GetPlayerState(x) != PLAYER_STATE_NONE) { SetPlayerTime(x,hour,minute); } x++; } } public OnGameModeInit() { SetGameModeText("Classic TDM"); SetTimer("UpdateTextDraw",1000,1); UsePlayerPedAnims(); // Бомжи AddPlayerClassEx(0,289,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(1,293,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(2,180,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(4,29,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); AddPlayerClassEx(5,169,1410.4746,2116.5703,12.0156,359.7332,24,1337,31,1337,0,0); // Анти бомжы AddPlayerClassEx(6,285,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(7,286,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(8,267,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(9,265,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); AddPlayerClassEx(10,192,1313.3191,2212.1675,12.0220,270.1426,24,1337,30,1337,0,0); txtTimeDisp = TextDrawCreate(605.0,25.0,"00:00"); TextDrawUseBox(txtTimeDisp, 0); TextDrawFont(txtTimeDisp, 3); TextDrawSetShadow(txtTimeDisp,1); TextDrawSetOutline(txtTimeDisp,2); TextDrawBackgroundColor(txtTimeDisp,0xFFBCFFFF); TextDrawColor(txtTimeDisp,0x0027FF); TextDrawAlignment(txtTimeDisp,3); TextDrawLetterSize(txtTimeDisp,0.5,1.5); UpdateTime(); SetTimer("UpdateTime",1000 * 60,1); draw = TextDrawCreate(500.0,300.0," "); TextDrawAlignment(draw,0); TextDrawBackgroundColor(draw,0x000FF); TextDrawFont(draw,2); TextDrawLetterSize(draw,0.4,1.2); TextDrawColor(draw,0x000FF); TextDrawSetOutline(draw,1); TextDrawSetProportional(draw,1); TextDrawSetShadow(draw,1); return true; } public UpdateTextDraw() { new string[128]; format(string,sizeof(string),"~r~—O–„…:~w~~n~OЌK… : %d~n~~b~AHT… —O–„…:~w~~n~OЌK… : %d~n~~n~–AKC…–Y–~n~OЌKOB: %d",TeamOneScore,TeamTwoScore,MaxScore); TextDrawSetString(draw,string); if(MaxScore == TeamOneScore) { SendClientMessageToAll(0x33FF33AA, "Win Terrorists!"); for(new 19:23:31 i=0;i<MAX_PLAYERS;i++) { TogglePlayerControllable(i,false); TextDrawHideForAll(draw); SetTimer("DelayedGMX",4000,0); } } else if(MaxScore == TeamTwoScore) { SendClientMessageToAll(0x33FF33AA, "Win Special Forces!"); for(new i=0;i<MAX_PLAYERS;i++) { TogglePlayerControllable(i,false); TextDrawHideForAll(draw); SetTimer("DelayedGMX",4000,0); } } return true; } public DelayedGMX() { SendRconCommand("gmx"); } public SetPlayerTeamFromClass(playerid,classid) { switch (classid) { case 0: { gTeam [playerid]= 0; } case 1: { gTeam [playerid]= 0; } case 2: { gTeam [playerid]= 0; } case 3: { gTeam [playerid]= 0; } case 4: { gTeam [playerid]= 0; } case 5: { gTeam [playerid]= 1; } case 6: { gTeam [playerid]= 1; } case 7: { gTeam [playerid]= 1; } case 8: { gTeam [playerid]= 1; } case 9: { gTeam [playerid]= 1; } } } public OnPlayerRequestClass(playerid, classid) { switch(classid) { case 0: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 1: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 2: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 3: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 4: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~r~KO–AHѓA —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 5: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 6: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 7: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 8: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } case 9: { SetPlayerPos(playerid, 1390.4734,2192.1125,11.0234); SetPlayerCameraPos(playerid, 1393.1255,2194.9858,11.0234); SetPlayerCameraLookAt(playerid, 1390.4734,2192.1125,11.0234); SetPlayerFacingAngle(playerid, 319.3406); SetPlayerTeamFromClass(playerid,classid); GameTextForPlayer(playerid, "~b~KO–AHѓA AHT… —O–„E†",7000,4); ApplyAnimation(playerid,"PARK", "Tai_Chi_Loop", 3.0,1,0,0,0,0); return 1; } } return true; } public OnPlayerConnect(playerid) { gActivePlayers[playerid]++; numplayers++; gettime(hour, minute); SetPlayerTime(playerid,hour,minute); new plname[MAX_PLAYER_NAME]; new string[MAX_PLAYER_NAME]; gPlayerAccount [playerid]= 0; PlayerInfo [playerid][pBanned]= 0; PlayerInfo [playerid][pAdmin]= 0; PlayerInfo [playerid][pDeath]= 0; PlayerInfo [playerid][pKill]= 0; SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер."); SendDeathMessage(INVALID_PLAYER_ID,playerid,200); SetPlayerColor(playerid, 0x4FF0FF); GetPlayerName(playerid, plname, sizeof(plname)); format(string, sizeof(string), "%s.ini", plname); if(fexist(string)) { gPlayerAccount [playerid]= 1; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } else { gPlayerAccount [playerid]= 0; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } return 1; } public OnPlayerDisconnect(playerid, reason) { gActivePlayers[playerid]--; numplayers--; OnPlayerUpdate(playerid); TextDrawHideForPlayer(playerid, draw); SendDeathMessage(INVALID_PLAYER_ID,playerid,201); return true; } public OnPlayerSpawn(playerid) { TextDrawShowForPlayer(playerid,txtTimeDisp); gettime(hour, minute); SetPlayerTime(playerid,hour,minute); TextDrawShowForPlayer(playerid, draw); if(gTeam [playerid]== 0) { SetPlayerTeam(playerid, 0); SetPlayerColor(playerid, 0xFF0000AA); } if(gTeam [playerid]== 1) { SetPlayerTeam(playerid, 1); SetPlayerColor(playerid, 0x0000FFFF); } return true; } public OnPlayerDeath(playerid, killerid, reason) { TextDrawHideForPlayer(playerid,txtTimeDisp); if(killerid == INVALID_PLAYER_ID) { SendDeathMessage(INVALID_PLAYER_ID,playerid,reason); } else { if(gTeam [killerid]== 0) { TeamOneScore ++; } if(gTeam [killerid]== 1) { TeamTwoScore ++; } PlayerInfo [killerid][pKill]+= 1; PlayerInfo [playerid][pDeath]-= 1; SendDeathMessage(killerid,playerid,reason); SetPlayerScore(killerid,GetPlayerScore(killerid)+1); } return true; } public OnPlayerCommandText(playerid, cmdtext[]) { new string[256]; new sendername[MAX_PLAYER_NAME]; new giveplayer[MAX_PLAYER_NAME]; new cmd[256]; new tmp[256]; new giveplayerid, idx; cmd = strtok(cmdtext, idx); idx++; if (strcmp("/kill", cmdtext, true, 5) == 0) { SetPlayerHealth(playerid, 0.0); return 1; } if(strcmp(cmd, "/kick", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] "); return 1; } giveplayerid = ReturnUser(tmp); if (PlayerInfo [playerid][pAdmin]>= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /kick [id игрока] [причина] "); return 1; } format(string, sizeof(string), "%s был кикнут администратором %s, причина: %s ", giveplayer, sendername, (result)); SendClientMessageToAll(0xFF5D53FF, string); Kick(giveplayerid); return 1; } } } else { format(string, sizeof(string), "Игрок не подключен."); SendClientMessage(playerid, COLOR_GRAD, string); } } return 1; } if (strcmp(cmd, "/stats", true) == 0) { if(IsPlayerConnected(playerid)) { if (gPlayerLogged [playerid]!= 0) { ShowStats(playerid,playerid); } else { SendClientMessage(playerid, COLOR_GRAD, "Вы не зашли на сервер."); } } return 1; } if(strcmp(cmd, "/ban", true) == 0) { if(IsPlayerConnected(playerid)) { tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]"); return 1; } giveplayerid = ReturnUser(tmp); if (PlayerInfo [playerid][pAdmin]>= 1) { if(IsPlayerConnected(giveplayerid)) { if(giveplayerid != INVALID_PLAYER_ID) { GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); GetPlayerName(playerid, sendername, sizeof(sendername)); new length = strlen(cmdtext); while ((idx < length) && (cmdtext [idx]<= ' ')) { idx++; } new offset = idx; new result[64]; while ((idx < length) && ((idx - offset) < (sizeof(result) - 1))) { result[idx - offset] = cmdtext[idx]; idx++; } result[idx - offset] = EOS; if(!strlen(result)) { SendClientMessage(playerid, COLOR_GRAD, "Подсказка: /ban [playerid/PartOfName] [reason]"); return 1; } PlayerInfo [giveplayerid][pBanned]= 1; format(string, sizeof(string), "%s забанен администратором %s, причина: %s", giveplayer, sendername, (result)); SendClientMessageToAll(0xFF5D53FF, string); Ban(giveplayerid); return 1; } } } else { format(string, sizeof(string), "Игрок не подключен."); SendClientMessage(playerid, COLOR_GRAD, string); } } return 1; } return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new tpass[256]; if(dialogid == 1) { if(response) { if(!strlen(inputtext)) { new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); return 1; } strmid(tpass, inputtext, 0, strlen(inputtext), 255); OnPlayerLogin(playerid,tpass); } else { SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна авторизация!"); Kick(playerid); } } else if(dialogid == 2) { if(response) { if(!strlen(inputtext)) { new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для того чтобы аккаунт не был взломан."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена"); return 1; } strmid(tpass, inputtext, 0, strlen(inputtext), 255); OnPlayerRegister(playerid,tpass); new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Classic TDM",loginmsg,"Принять","Отмена"); } else { SendClientMessage(playerid, COLOR_RED,"Для игры на этом сервере, нужна регистрация!"); Kick(playerid); } } return 1; } public OnPlayerRegister(playerid, password[]) { if(IsPlayerConnected(playerid)) { new string3[32]; new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); format(string3, sizeof(string3), "%s.ini", playername3); new File: hFile = fopen(string3, io_write); if (hFile) { strmid(PlayerInfo[playerid][pKey], password, 0, strlen(password), 255); new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var); format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var); format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var); format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var); fclose(hFile); } } return 1; } public OnPlayerLogin(playerid,password[]) { new string2[64]; new playername2[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername2, sizeof(playername2)); format(string2, sizeof(string2), "%s.ini", playername2); new File: UserFile = fopen(string2, io_read); if ( UserFile ) { new PassData[256]; new keytmp[256], valtmp[256]; fread( UserFile , PassData , sizeof( PassData ) ); keytmp = ini_GetKey( PassData ); if( strcmp( keytmp , "Key" , true ) == 0 ) { valtmp = ini_GetValue( PassData ); strmid(PlayerInfo[playerid][pKey], valtmp, 0, strlen(valtmp)-1, 255); } if(strcmp(PlayerInfo[playerid][pKey],password, true ) == 0 ) { new key[ 256 ] , val[ 256 ]; new Data[ 256 ]; while ( fread( UserFile , Data , sizeof( Data ) ) ) { key = ini_GetKey( Data ); if( strcmp( key , "Banned" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pBanned]= strval( val ); } if( strcmp( key , "AdminLevel" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pAdmin]= strval( val ); } if( strcmp( key , "Death" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pDeath]= strval( val ); } if( strcmp( key , "Kill" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo [playerid][pKill]= strval( val ); } } fclose(UserFile); } else { fclose(UserFile); new loginmsg[256+1]; format(loginmsg,256,"Пароль не свопадает с логином!"); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } if(PlayerInfo [playerid][pBanned]== 1) { SendClientMessage(playerid, 0x33CCFFAA,"Этот аккаунт был забанен."); Kick(playerid); } new rank[20]; new kill = PlayerInfo[playerid][pKill]; if(kill >= 60 && kill <= 100) { rank = "Боец"; } else if(kill >= 100 && kill <= 160) { rank = "Убийца"; } else if(kill >= 160 && kill <= 200) { rank = "Палач"; } else if(kill >= 200 && kill <= 260) { rank = "Кровопускатель"; } else if(kill >= 300 && kill <= 360) { rank = "Мясоруб"; } else if(kill >= 360 && kill <= 500) { rank = "Смерть"; } else if(kill >= 500) { rank = "Батька"; } else { rank = "Салага"; } format(string2, sizeof(string2), "Добро пожаловать, %s.",rank); SendClientMessage(playerid, 0x33CCFFAA,string2); printf("%s вошел на сервер.",playername2); if (PlayerInfo [playerid][pAdmin]> 0) { format(string2, sizeof(string2), "Вы вошли как администратор %d уровня.",PlayerInfo[playerid][pAdmin]); SendClientMessage(playerid, 0x33CCFFAA,string2); } } return 1; } public OnPlayerUpdate(playerid) { if(IsPlayerConnected(playerid)) { if(gPlayerLogged[playerid]) { new string3[32]; new playername3[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername3, sizeof(playername3)); format(string3, sizeof(string3), "%s.ini", playername3); new File: hFile = fopen(string3, io_write); if (hFile) { new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); format(var, 32, "Banned=%d\n",PlayerInfo[playerid][pBanned]);fwrite(hFile, var); format(var, 32, "AdminLevel=%d\n",PlayerInfo[playerid][pAdmin]);fwrite(hFile, var); format(var, 32, "Death=%d\n",PlayerInfo[playerid][pDeath]);fwrite(hFile, var); format(var, 32, "Kill=%d\n",PlayerInfo[playerid][pKill]);fwrite(hFile, var); fclose(hFile); } } } return 1; } public ShowStats(playerid,targetid) { if(IsPlayerConnected(playerid)&&IsPlayerConnected(targetid)) { new rank[20]; new death = PlayerInfo[targetid][pDeath]; new kill = PlayerInfo[targetid][pKill]; if(kill >= 60 && kill <= 100) { rank = "Боец"; } else if(kill >= 100 && kill <= 160) { rank = "Убийца"; } else if(kill >= 160 && kill <= 200) { rank = "Палач"; } else if(kill >= 200 && kill <= 260) { rank = "Кровопускатель"; } else if(kill >= 300 && kill <= 360) { rank = "Мясоруб"; } else if(kill >= 360 && kill <= 500) { rank = "Смерть"; } else if(kill >= 500) { rank = "Батька"; } else { rank = "Салага"; } new coordsstring[256]; SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); format(coordsstring, sizeof(coordsstring), " Смертей: %d",death); SendClientMessage(playerid, COLOR_WHITE,coordsstring); format(coordsstring, sizeof(coordsstring), " Убийств: %d",kill); SendClientMessage(playerid, COLOR_WHITE,coordsstring); format(coordsstring, sizeof(coordsstring), " Игровой Ранг: %s",rank); SendClientMessage(playerid, COLOR_WHITE,coordsstring); SendClientMessage(playerid, COLOR_RED,"* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *"); } } strtok(const string[], &index) { new length = strlen(string); while ((index < length) && (string [index]<= ' ')) { index++; } new offset = index; new result[20]; while ((index < length) && (string [index]> ' ') && ((index - offset) < (sizeof(result) - 1))) { result[index - offset] = string[index]; index++; } result[index - offset] = EOS; return result; }
Добавлено (28.08.2013, 19:35:05) ---------------------------------------------Помогите вырезать регистрацию из данного мода - -
Автор - LoLmerry Дата добавления - 28.08.2013 в 19:35:05
igjde Дата: Четверг, 29.08.2013, 19:51:18 | Сообщение # 2
Группа: Пользователи
Сообщений: 50
Вот вырезка Код
public OnPlayerConnect(playerid) { gActivePlayers[playerid]++; numplayers++; gettime(hour, minute); SetPlayerTime(playerid,hour,minute); new plname[MAX_PLAYER_NAME]; new string[MAX_PLAYER_NAME]; gPlayerAccount [playerid]= 0; PlayerInfo [playerid][pBanned]= 0; PlayerInfo [playerid][pAdmin]= 0; PlayerInfo [playerid][pDeath]= 0; PlayerInfo [playerid][pKill]= 0; SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер."); SendDeathMessage(INVALID_PLAYER_ID,playerid,200); SetPlayerColor(playerid, 0x4FF0FF); GetPlayerName(playerid, plname, sizeof(plname)); format(string, sizeof(string), "%s.ini", plname); if(fexist(string)) { gPlayerAccount [playerid]= 1; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } else { gPlayerAccount [playerid]= 0; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } return 1; }
Сообщение Вот вырезка Код
public OnPlayerConnect(playerid) { gActivePlayers[playerid]++; numplayers++; gettime(hour, minute); SetPlayerTime(playerid,hour,minute); new plname[MAX_PLAYER_NAME]; new string[MAX_PLAYER_NAME]; gPlayerAccount [playerid]= 0; PlayerInfo [playerid][pBanned]= 0; PlayerInfo [playerid][pAdmin]= 0; PlayerInfo [playerid][pDeath]= 0; PlayerInfo [playerid][pKill]= 0; SendClientMessage(playerid,0xFFFFFFFF, "Добро пожаловать на наш сервер."); SendDeathMessage(INVALID_PLAYER_ID,playerid,200); SetPlayerColor(playerid, 0x4FF0FF); GetPlayerName(playerid, plname, sizeof(plname)); format(string, sizeof(string), "%s.ini", plname); if(fexist(string)) { gPlayerAccount [playerid]= 1; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт зарегистрирован, пожалуйста залогинитесь введя свой пароль в строку.\nДля лучшей прогрузки сервера, следует подождать 5-15 секунд."); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } else { gPlayerAccount [playerid]= 0; new loginmsg[256+1]; format(loginmsg,256,"Добро пожаловать на наш сервер\nЭтот аккаунт не зарегестрирован, пожалуйста зарегестрируйтесь.\n\nПароль должен содержать не менее 3 символов, для вашей безопасности."); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,":",loginmsg,"Принять","Отмена"); } return 1; }
Автор - igjde Дата добавления - 29.08.2013 в 19:51:18
Загрузка страницы, займет меньше минуты...
Статистика Форума
Последнии темы
Читаемые темы
Лучшие пользователи
Новые пользователи