 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
Проблема с регой в моде
| |
| _BigSm0ke_ | Дата: Среда, 31.03.2010, 22:50 | Сообщение # 1 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус: 
| Когда начал делать мод, долго думал что всетаки сделать с регой, ну кароче решил частично выдернуть из гф\cream life .... вроде все получилось, если не одно НО: Когда я регаюсь первый раз и логинюсь - норм все спаунит, а когда я уже когда зареганный захожу на серв и хочу залогиниться, то нечего не происходит и если просто жму шифт то спаунит за сиджея...хотя должно кикать если не авторизованным зашел... а это присутствует в скрипте... вобщем вот выкладываю в двух вариантах: Вариант I: Ссылка для скачивания pwn Вариант II: Скрипт тут: [pwn] // This is a comment // uncomment the line below if you want to write a filterscript //#define FILTERSCRIPT #include <a_samp> #define COLOR_WHITE 0xFFFFFFFF #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_LIGHTGREEN 0x9ACD32AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_YELLOW2 0xFFFF00AA forward ini_GetKey( line[] ); forward ini_GetValue( line[] ); forward OnPlayerLogin(playerid,password[]); forward Encrypt(string[]); forward OnPlayerRegister(playerid, password[]); forward SavePlayer(playerid); forward SetPlayerSpawn(playerid); new Account[MAX_PLAYERS]; new LoginON[MAX_PLAYERS]; new ActivePlayers[MAX_PLAYERS]; new LoginTry[MAX_PLAYERS]; new RegStep[MAX_PLAYERS]; //==================================// enum pInfo { pKey[128], pSex, pAge, pTut, pModel, }; new PlayerInfo[MAX_PLAYERS][pInfo]; //==================================// main() { print("\n----------------------------------"); print(" Role Play Alpha Gm Test "); print("----------------------------------\n"); } public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("LifeVegas [v0.1 alpha]"); //AddPlayerClass(269, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnGameModeExit() { return 1; } public OnPlayerConnect(playerid) { new plname[MAX_PLAYER_NAME]; new string[36]; //============================// Account[playerid] = 0; LoginON[playerid] = 0; LoginTry[playerid] = 0; PlayerInfo[playerid][pTut] = 0; PlayerInfo[playerid][pSex] = 0; PlayerInfo[playerid][pAge] = 0; RegStep[playerid] = 0; //============================// ActivePlayers[playerid]++; //============================// GetPlayerName(playerid, plname, sizeof(plname)); format(string, sizeof(string), "%s.ini", plname); SendClientMessage(playerid, COLOR_LIGHTRED, "Добро пожаловать на сервер LifeVegas. "); //============================// if(fexist(string)) { Account[playerid] = 1; SendClientMessage(playerid, COLOR_YELLOW, " Вы зарегистрированы. Авторизуйтесь. "); } else { Account[playerid] = 0; SendClientMessage(playerid, COLOR_YELLOW, " Вы не зарегистрированы, зарегистрируйтесь. "); } return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); //============================================================// if(LoginON[playerid] != 1) { if(Account[playerid] != 0) { new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring)," Введи пароль регистрации ",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выйти"); } else { new regstring[128]; new regname[64]; GetPlayerName(playerid,regname,sizeof(regname)); format(regstring,sizeof(regstring)," Зарегистрируй себе аккаунт ",regname); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT," Регистрация ",regstring,"Ок","Выход"); } } return 1; } public OnPlayerDisconnect(playerid, reason) { ActivePlayers[playerid]--; SavePlayer(playerid); LoginON[playerid] = 0; return 1; } public OnPlayerSpawn(playerid) { if(LoginON[playerid] == 0) { SendClientMessage(playerid, COLOR_LIGHTRED, "** Вам надо авторизоваться прежде чем играть. **"); Kick(playerid); } SetPlayerSpawn(playerid); return 1; } public SetPlayerSpawn(playerid) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pTut] == 0) { TogglePlayerControllable(playerid, 0); SetPlayerSkin(playerid, 41); RegStep[playerid] = 1; SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 ); SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 ); //================= SendClientMessage(playerid, COLOR_YELLOW, "Добро пожаловать на сервер! Чтобы продолжить, вам необходимо создать персонажа."); SendClientMessage(playerid, COLOR_YELLOW2, "Используйте NUM4 и NUM6 для выбора пола."); SendClientMessage(playerid, COLOR_YELLOW2, "Нажмите кнопку бега (SHIFT) для подтверждения."); //================= } else { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746); } } return 1; } public OnPlayerRegister(playerid, password[]) { if(IsPlayerConnected(playerid)) { new string[32]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: hFile = fopen(string, 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, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var); format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var); format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var); format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var); fclose(hFile); new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"Здравствуйте, %s\nЗалогинься:",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Вход","Выход"); } } return 1; } public OnPlayerLogin(playerid,password[]) { new string[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: UserFile = fopen(string, 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 , "Key" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKey] = strval( val ); } if( strcmp( key , "Sex" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSex] = strval( val ); } if( strcmp( key , "Age" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAge] = strval( val ); } if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTut] = strval( val ); } if( strcmp( key , "Model" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pModel] = strval( val ); } } fclose(UserFile); } else { SendClientMessage(playerid, COLOR_WHITE, "*Пароль неверный. (Всего 3 попытки) "); new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"Введи верный пароль:",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход"); fclose(UserFile); LoginTry[playerid] += 1; if(LoginTry[playerid] == 4) { Ban(playerid); } return 1; } } LoginON[playerid] = 1; SetPlayerSpawn(playerid); return 1; } public SavePlayer(playerid) { if(IsPlayerConnected(playerid)) { if(LoginON[playerid]) { new string[32]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: hFile = fopen(string, io_write); if (hFile) { new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var); format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var); format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var); format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var); fclose(hFile); SendClientMessage(playerid,COLOR_WHITE," Твой аккаунт сохранен."); } } } return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/w", cmdtext, true, 10) == 0 || strcmp("/whisper", cmdtext, true, 10) == 0 || strcmp("/pm", cmdtext, true, 10) == 0) { SendClientMessage(playerid, COLOR_RED, " Данная команда отключена на этом сервере. Этот серв - Role Play "); SendClientMessage(playerid, COLOR_RED, " Для общения позвоните другу по телефону или отправьте смс "); SendClientMessage(playerid, COLOR_RED, " Для этого купите телефон в 24\7 и используйте команды /call /sms "); return 1; } if (strcmp("/saveme", cmdtext, true, 10) == 0) { SendClientMessage(playerid, COLOR_RED, " Ваш аккаунт сохранен. "); SavePlayer(playerid); return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(oldkeys == KEY_SPRINT) { if(RegStep[playerid] == 1) { if(PlayerInfo[playerid][pSex] == 1) { PlayerInfo[playerid][pSex] = 1; PlayerInfo[playerid][pModel] = 269; SetPlayerSkin(playerid, 269); SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж мужского пола."); TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); RegStep[playerid] = 0; //===========================// SetPlayerSpawn(playerid); PlayerInfo[playerid][pTut] = 1; return 1; } else if(PlayerInfo[playerid][pSex] == 2) { PlayerInfo[playerid][pSex] = 2; PlayerInfo[playerid][pModel] = 41; SetPlayerSkin(playerid, 41); SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж женского пола."); TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); RegStep[playerid] = 0; //===========================// SetPlayerSpawn(playerid); PlayerInfo[playerid][pTut] = 1; return 1; } } } if(newkeys == 16384 && RegStep[playerid] == 1 || newkeys == 8192 && RegStep[playerid] == 1) { if(GetPlayerSkin(playerid) == 269) { SetPlayerSkin(playerid, 41); PlayerInfo[playerid][pSex] = 2; SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 ); SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 ); } else if(GetPlayerSkin(playerid) == 41) { SetPlayerSkin(playerid, 269); PlayerInfo[playerid][pSex] = 1; SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 ); SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 ); } } return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new sendername[MAX_PLAYER_NAME]; new string[128]; if(dialogid == 1) { if(response) { if(!strlen(inputtext)) { new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"Здравствуйте, авторизируйтесь",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход"); } new tmppass[64]; strmid(tmppass, inputtext, 0, strlen(inputtext), 255); Encrypt(tmppass); OnPlayerLogin(playerid,tmppass); } else { Kick(playerid); } } if(dialogid == 2) { if(response) { if(!strlen(inputtext)) { Account[playerid] = 0; new regstring[128]; new regname[64]; GetPlayerName(playerid,regname,sizeof(regname)); format(regstring,sizeof(regstring),"Здравствуйте, зарегистрируйтесь",regname); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация",regstring,"Ок","Выход"); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s.ini", sendername); new File: hFile = fopen(string, io_read); if (hFile) { SendClientMessage(playerid, COLOR_YELLOW, "*Такое имя уже существует."); fclose(hFile); return 1; } new tmppass[64]; strmid(tmppass, inputtext, 0, strlen(inputtext), 255); Encrypt(tmppass); OnPlayerRegister(playerid,tmppass); } else { Kick(playerid); } } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } 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; } public Encrypt(string[]) { for(new x=0; x < strlen(string); x++) { string[x] += (3^x) * (x % 15); if(string[x] > (0xff)) { string[x] -= 256; } } return 1; } [/pwn] Очень прошу помочь... Добавлено (31.03.2010, 22:50) --------------------------------------------- up! up! up! up! up! парни выручайте)) бьюсь ап стол.. непойму в чем дело...
LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON Продаю РП мод: подробнее тут Решаю задачи по техническим дисциплинам, подробнее тут
Сообщение отредактировал _BigSm0ke_ - Среда, 31.03.2010, 21:28 |
| |
|
|
| Vagrant | Дата: Четверг, 01.04.2010, 06:11 | Сообщение # 2 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус: 
| в PlayerLogin где цикл чтения файла после ввода пароля. PlayerInfo(playerid)(pKey) = ini_GetValue( Data ). писал с телефона, круглые на квадратные скобки заменишь.
Человек учась ходить падает, и только падая, он учится ходить! Мои работы: [GM] W.F.S.A. V. 1.0 - 100% [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100% [FS] Clan House V. 1.0 - 100% [FS] Save Car Tun System V. 1.0 - 100% [FS] Vagrant Anti-CapsLock V. 2.1 - 100% [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100% [APP] SA-MP Interior Viewer V. 1.0 - 100%
Принимаю заказы на помощь в скриптинге!
|
| |
|
|
| _BigSm0ke_ | Дата: Суббота, 03.04.2010, 09:37 | Сообщение # 3 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 674
Награды: 5
Город: Москва
Репутация: 127
Замечания: 0%
Статус: 
| Чет я невдуплю куда засунуть... [pwn]public OnPlayerLogin(playerid,password[]) { new string[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: UserFile = fopen(string, 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 , "Key" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKey] = strval( val ); } if( strcmp( key , "Sex" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSex] = strval( val ); } if( strcmp( key , "Age" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAge] = strval( val ); } if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTut] = strval( val ); } if( strcmp( key , "Model" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pModel] = strval( val ); } } fclose(UserFile); } else { SendClientMessage(playerid, COLOR_WHITE, "*Ïàðîëü íåâåðíûé. (Âñåãî 3 ïîïûòêè) "); new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"Ââåäè âåðíûé ïàðîëü:",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Àâòîðèçàöèÿ",loginstring,"Îê","Âûõîä"); fclose(UserFile); LoginTry[playerid] += 1; if(LoginTry[playerid] == 4) { Ban(playerid); } return 1; } } LoginON[playerid] = 1; SetPlayerSpawn(playerid); return 1; }[/pwn] Добавлено (01.04.2010, 16:17) --------------------------------------------- так куда там засовывать строку которую ты написал поподробнее можно? Добавлено (03.04.2010, 09:37) --------------------------------------------- ау народ, чо никто так и не скажет в чем проблема
LifeVegas: vk.com/lvgta - Покори вершины Лас-Вегаса в новом РП проекте. COMING SOON Продаю РП мод: подробнее тут Решаю задачи по техническим дисциплинам, подробнее тут
|
| |
|
|
| Vagrant | Дата: Суббота, 10.04.2010, 03:20 | Сообщение # 4 |
|
Уважаемый человек
Группа:
I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус: 
| _BigSm0ke_, Вырезано плоховато канечно. Не тестировал так как возможности небыло. Но возможно твоя проблема решится. [pwn] // This is a comment // uncomment the line below if you want to write a filterscript //#define FILTERSCRIPT #include <a_samp> #define COLOR_WHITE 0xFFFFFFFF #define COLOR_GREY 0xAFAFAFAA #define COLOR_GREEN 0x33AA33AA #define COLOR_RED 0xAA3333AA #define COLOR_LIGHTRED 0xFF6347AA #define COLOR_LIGHTBLUE 0x33CCFFAA #define COLOR_LIGHTGREEN 0x9ACD32AA #define COLOR_YELLOW 0xFFFF00AA #define COLOR_YELLOW2 0xFFFF00AA forward ini_GetKey( line[] ); forward ini_GetValue( line[] ); forward OnPlayerLogin(playerid,password[]); forward Encrypt(string[]); forward OnPlayerRegister(playerid, password[]); forward SavePlayer(playerid); forward SetPlayerSpawn(playerid); new Account[MAX_PLAYERS]; new LoginON[MAX_PLAYERS]; new ActivePlayers[MAX_PLAYERS]; new LoginTry[MAX_PLAYERS]; new RegStep[MAX_PLAYERS]; //==================================// enum pInfo { pKey[256], pSex, pAge, pTut, pModel, }; new PlayerInfo[MAX_PLAYERS][pInfo]; //==================================// main() { print("\n----------------------------------"); print(" Role Play Alpha Gm Test "); print("----------------------------------\n"); } public OnGameModeInit() { // Don't use these lines if it's a filterscript SetGameModeText("LifeVegas [v0.1 alpha]"); //AddPlayerClass(269, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0); return 1; } public OnGameModeExit() { return 1; } public OnPlayerConnect(playerid) { new plname[MAX_PLAYER_NAME]; new string[36]; //============================// Account[playerid] = 0; LoginON[playerid] = 0; LoginTry[playerid] = 0; PlayerInfo[playerid][pTut] = 0; PlayerInfo[playerid][pSex] = 0; PlayerInfo[playerid][pAge] = 0; RegStep[playerid] = 0; //============================// ActivePlayers[playerid]++; //============================// GetPlayerName(playerid, plname, sizeof(plname)); format(string, sizeof(string), "%s.ini", plname); SendClientMessage(playerid, COLOR_LIGHTRED, "Добро пожаловать на сервер LifeVegas. "); //============================// if(fexist(string)) { Account[playerid] = 1; SendClientMessage(playerid, COLOR_YELLOW, " Вы зарегистрированы. Авторизуйтесь. "); } else { Account[playerid] = 0; SendClientMessage(playerid, COLOR_YELLOW, " Вы не зарегистрированы, зарегистрируйтесь. "); } return 1; } public OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746); SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746); //============================================================// if(LoginON[playerid] != 1) { if(Account[playerid] != 0) { new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring)," Введи пароль регистрации ",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выйти"); } else { new regstring[128]; new regname[64]; GetPlayerName(playerid,regname,sizeof(regname)); format(regstring,sizeof(regstring)," Зарегистрируй себе аккаунт ",regname); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT," Регистрация ",regstring,"Ок","Выход"); } } return 1; } public OnPlayerDisconnect(playerid, reason) { ActivePlayers[playerid]--; SavePlayer(playerid); LoginON[playerid] = 0; return 1; } public OnPlayerSpawn(playerid) { if(LoginON[playerid] == 0) { SendClientMessage(playerid, COLOR_LIGHTRED, "** Вам надо авторизоваться прежде чем играть. **"); Kick(playerid); } SetPlayerSpawn(playerid); return 1; } public SetPlayerSpawn(playerid) { if(IsPlayerConnected(playerid)) { if(PlayerInfo[playerid][pTut] == 0) { TogglePlayerControllable(playerid, 0); SetPlayerSkin(playerid, 41); RegStep[playerid] = 1; SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 ); SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 ); //================= SendClientMessage(playerid, COLOR_YELLOW, "Добро пожаловать на сервер! Чтобы продолжить, вам необходимо создать персонажа."); SendClientMessage(playerid, COLOR_YELLOW2, "Используйте NUM4 и NUM6 для выбора пола."); SendClientMessage(playerid, COLOR_YELLOW2, "Нажмите кнопку бега (SHIFT) для подтверждения."); //================= } else { SetPlayerInterior(playerid,0); SetPlayerPos(playerid,1958.3783, 1343.1572, 15.3746); } } return 1; } public OnPlayerRegister(playerid, password[]) { if(IsPlayerConnected(playerid)) { new string[32]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: hFile = fopen(string, 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, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var); format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var); format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var); format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var); fclose(hFile); new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"Здравствуйте, %s\nЗалогинься!",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Вход","Выход"); } } return 1; } public OnPlayerLogin(playerid,password[]) { new string[64]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: UserFile = fopen(string, io_read); if ( UserFile ) // Если открывается файл с именем "string" --- 1 { 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 , "Key" , true ) == 0 ) { PlayerInfo[playerid][pKey] = ini_GetValue( Data ); } if( strcmp( key , "Sex" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pSex] = strval( val ); } if( strcmp( key , "Age" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pAge] = strval( val ); } if( strcmp( key , "Tutorial" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pTut] = strval( val ); } if( strcmp( key , "Model" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pModel] = strval( val ); } } fclose(UserFile); // После выполнения цикла закрыть файл LoginON[playerid] = 1; SetPlayerSpawn(playerid); // Заспавнить игрока ---- Эту строку нужно было сюда. Она стояла в другом месте... } else { SendClientMessage(playerid, COLOR_WHITE, "*Пароль неверный. (Всего 3 попытки) "); new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"%s, Введён неверный пароль. Попробуйте заного!",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход"); fclose(UserFile); LoginTry[playerid] += 1; if(LoginTry[playerid] == 4) { Kick(playerid); } } } return 1; } public SavePlayer(playerid) { if(IsPlayerConnected(playerid)) { if(LoginON[playerid]) { new string[32]; new playername[MAX_PLAYER_NAME]; GetPlayerName(playerid, playername, sizeof(playername)); format(string, sizeof(string), "%s.ini", playername); new File: hFile = fopen(string, io_write); if (hFile) { new var[32]; format(var, 32, "Key=%s\n", PlayerInfo[playerid][pKey]);fwrite(hFile, var); format(var, 32, "Sex=%d\n",PlayerInfo[playerid][pSex]);fwrite(hFile, var); format(var, 32, "Age=%d\n",PlayerInfo[playerid][pAge]);fwrite(hFile, var); format(var, 32, "Tutorial=%d\n",PlayerInfo[playerid][pTut]);fwrite(hFile, var); format(var, 32, "Model=%d\n",PlayerInfo[playerid][pModel]);fwrite(hFile, var); fclose(hFile); SendClientMessage(playerid,COLOR_WHITE," Твой аккаунт сохранен."); } } } return 1; } public OnPlayerDeath(playerid, killerid, reason) { return 1; } public OnVehicleSpawn(vehicleid) { return 1; } public OnVehicleDeath(vehicleid, killerid) { return 1; } public OnPlayerText(playerid, text[]) { return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/w", cmdtext, true, 10) == 0 || strcmp("/whisper", cmdtext, true, 10) == 0 || strcmp("/pm", cmdtext, true, 10) == 0) { SendClientMessage(playerid, COLOR_RED, " Данная команда отключена на этом сервере. Этот серв - Role Play "); SendClientMessage(playerid, COLOR_RED, " Для общения позвоните другу по телефону или отправьте смс "); SendClientMessage(playerid, COLOR_RED, " Для этого купите телефон в 24\7 и используйте команды /call /sms "); return 1; } if (strcmp("/saveme", cmdtext, true, 10) == 0) { SendClientMessage(playerid, COLOR_RED, " Ваш аккаунт сохранен. "); SavePlayer(playerid); return 1; } return 0; } public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger) { return 1; } public OnPlayerExitVehicle(playerid, vehicleid) { return 1; } public OnPlayerStateChange(playerid, newstate, oldstate) { return 1; } public OnPlayerEnterCheckpoint(playerid) { return 1; } public OnPlayerLeaveCheckpoint(playerid) { return 1; } public OnPlayerEnterRaceCheckpoint(playerid) { return 1; } public OnPlayerLeaveRaceCheckpoint(playerid) { return 1; } public OnRconCommand(cmd[]) { return 1; } public OnPlayerRequestSpawn(playerid) { return 1; } public OnObjectMoved(objectid) { return 1; } public OnPlayerObjectMoved(playerid, objectid) { return 1; } public OnPlayerPickUpPickup(playerid, pickupid) { return 1; } public OnVehicleMod(playerid, vehicleid, componentid) { return 1; } public OnVehiclePaintjob(playerid, vehicleid, paintjobid) { return 1; } public OnVehicleRespray(playerid, vehicleid, color1, color2) { return 1; } public OnPlayerSelectedMenuRow(playerid, row) { return 1; } public OnPlayerExitedMenu(playerid) { return 1; } public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid) { return 1; } public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if(oldkeys == KEY_SPRINT) { if(RegStep[playerid] == 1) { if(PlayerInfo[playerid][pSex] == 1) { PlayerInfo[playerid][pSex] = 1; PlayerInfo[playerid][pModel] = 269; SetPlayerSkin(playerid, 269); SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж мужского пола."); TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); RegStep[playerid] = 0; //===========================// SetPlayerSpawn(playerid); PlayerInfo[playerid][pTut] = 1; return 1; } else if(PlayerInfo[playerid][pSex] == 2) { PlayerInfo[playerid][pSex] = 2; PlayerInfo[playerid][pModel] = 41; SetPlayerSkin(playerid, 41); SendClientMessage(playerid, COLOR_YELLOW2, "Ваш персонаж женского пола."); TogglePlayerControllable(playerid, 1); SetCameraBehindPlayer(playerid); RegStep[playerid] = 0; //===========================// SetPlayerSpawn(playerid); PlayerInfo[playerid][pTut] = 1; return 1; } } } if(newkeys == 16384 && RegStep[playerid] == 1 || newkeys == 8192 && RegStep[playerid] == 1) { if(GetPlayerSkin(playerid) == 269) { SetPlayerSkin(playerid, 41); PlayerInfo[playerid][pSex] = 2; SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 ); SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 ); } else if(GetPlayerSkin(playerid) == 41) { SetPlayerSkin(playerid, 269); PlayerInfo[playerid][pSex] = 1; SetPlayerCameraPos(playerid, 1.3905,27.2070,1199.5938 ); SetPlayerCameraLookAt(playerid, 2.8155,28.6501,1199.5938 ); } } return 1; } public OnRconLoginAttempt(ip[], password[], success) { return 1; } public OnPlayerUpdate(playerid) { return 1; } public OnPlayerStreamIn(playerid, forplayerid) { return 1; } public OnPlayerStreamOut(playerid, forplayerid) { return 1; } public OnVehicleStreamIn(vehicleid, forplayerid) { return 1; } public OnVehicleStreamOut(vehicleid, forplayerid) { return 1; } public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]) { new sendername[MAX_PLAYER_NAME]; new string[128]; if(dialogid == 1) { if(response) { if(!strlen(inputtext)) { new loginstring[128]; new loginname[64]; GetPlayerName(playerid,loginname,sizeof(loginname)); format(loginstring,sizeof(loginstring),"Здравствуйте %s, авторизируйтесь",loginname); ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Авторизация",loginstring,"Ок","Выход"); } new tmppass[64]; strmid(tmppass, inputtext, 0, strlen(inputtext), 255); Encrypt(tmppass); OnPlayerLogin(playerid,tmppass); } else { Kick(playerid); } } if(dialogid == 2) { if(response) { if(!strlen(inputtext)) { Account[playerid] = 0; new regstring[128]; new regname[64]; GetPlayerName(playerid,regname,sizeof(regname)); format(regstring,sizeof(regstring),"Здравствуйте %s, зарегистрируйтесь",regname); ShowPlayerDialog(playerid,2,DIALOG_STYLE_INPUT,"Регистрация",regstring,"Ок","Выход"); return 1; } GetPlayerName(playerid, sendername, sizeof(sendername)); format(string, sizeof(string), "%s.ini", sendername); new File: hFile = fopen(string, io_read); if (hFile) { SendClientMessage(playerid, COLOR_YELLOW, "*Такое имя уже существует."); fclose(hFile); return 1; } new tmppass[64]; strmid(tmppass, inputtext, 0, strlen(inputtext), 255); Encrypt(tmppass); OnPlayerRegister(playerid,tmppass); } else { Kick(playerid); } } return 1; } public OnPlayerClickPlayer(playerid, clickedplayerid, source) { return 1; } 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; } public Encrypt(string[]) { for(new x=0; x < strlen(string); x++) { string[x] += (3^x) * (x % 15); if(string[x] > (0xff)) { string[x] -= 256; } } return 1; } [/pwn] Если помог с тебя + 
Человек учась ходить падает, и только падая, он учится ходить! Мои работы: [GM] W.F.S.A. V. 1.0 - 100% [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100% [FS] Clan House V. 1.0 - 100% [FS] Save Car Tun System V. 1.0 - 100% [FS] Vagrant Anti-CapsLock V. 2.1 - 100% [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100% [APP] SA-MP Interior Viewer V. 1.0 - 100%
Принимаю заказы на помощь в скриптинге!
|
| |
|
|
|
 |
|
 | |
| |
|