| 
| Serterr | Дата: Четверг, 16.05.2013, 11:55 | Сообщение # 1 |  | .::Offline::. Разбойник   Сообщений: 41[ 10 ] Награды: 0  
Статус 
отсутствует | Я по вашему форуму сделал регистрацию(Спасибо вам) =) Но там куча ероров, а руки у меня кривые)
 Вот файл - http://rghost.ru/46032429
 Помогите исправить ошибки(Не лексические, конечно)
  |  |  |  |  | 
| 
| Serterr | Дата: Четверг, 16.05.2013, 15:30 | Сообщение # 3 |  | .::Offline::. Разбойник   Сообщений: 41[ 10 ] Награды: 0  
Статус 
отсутствует | Упс))) Спс)) Нежданчик)) Ероров стало меньше, но они есть))) Что делать дальше?) 
 
 Сообщение отредактировал 
Serterr - Четверг, 16.05.2013, 15:32 |  |  |  |  | 
| 
| ZioSHik | Дата: Четверг, 16.05.2013, 18:01 | Сообщение # 6 |  | .::Offline::. Авторитет   Сообщений: 831[ 82 ] Награды: 29  
Статус 
отсутствует | Вот моя: 
 Вверх
 
 
 Код  
 #include <a_samp>
 #include <mxINI>
 #include <md5>
 
 #define REG_DIALOG_ID 1112
 #define LOGIN_DIALOG_ID 2112
 
 forward OnPlayerLogin(playerid,password[]);
 forward OnPlayerUpdate_DM(playerid);
 forward OnPlayerRegister(playerid, password[]);
 
 enum pInfo
 {
 pPassword[128],
 pLevel
 // Тут можно еще добавлять
 }
 
 new PlayerInfo[MAX_PLAYERS][pInfo];
 new gPlayerLogged[MAX_PLAYERS];
 new gPlayerAccount[MAX_PLAYERS];
 
 В public OnPlayerConnect(playerid)
 
 
 Код gPlayerLogged[playerid] = 0; gPlayerAccount[playerid] = 0;
 PlayerInfo[playerid][pLevel] = 0;
 new string[256];
 new plname[MAX_PLAYER_NAME];
 GetPlayerName(playerid, plname, sizeof(plname));
 format(string, sizeof(string), "%s.ini", plname);
 SendClientMessage(playerid, COLOR_YELLOW, "Загрузка данных...");
 if(fexist(string))
 {
 gPlayerAccount[playerid] = 1;
 }
 else
 {
 gPlayerAccount[playerid] = 0;
 }
В OnPlayerDisconnect(playerid)
 
 
 Код OnPlayerUpdate_DM(playerid);
 В public OnPlayerRequestClass(playerid, classid)
 
 
 Код if(gPlayerLogged[playerid] != 1) {
 if(gPlayerAccount[playerid] != 0)
 {
 new loginmsg[256+1];
 format(loginmsg,sizeof(loginmsg),"Этот аккаунт зарегестрирован\nДля авторизации введите свой пароль");
 ShowPlayerDialog(playerid,LOGIN_DIALOG_ID,DIALOG_STYLE_INPUT,"Авторизация",loginmsg,"Принять","Отмена");
 }
 else
 {
 new loginmsg[256+1];
 format(loginmsg,sizeof(loginmsg),"Этот аккаунт не зарегистрирован\nДля регистрации введите свой пароль в окошко\nНе советуем использовать символы №;%@\nСоветуем использовать пароль из букв и цифр");
 ShowPlayerDialog(playerid,REG_DIALOG_ID,DIALOG_STYLE_INPUT,"Регистрация",loginmsg,"Принять","Отмена");
 }
 }
 else SpawnPlayer(playerid);
 В OnGameModeExit()
 
 
 Код  for(new i = 0; i < MAX_PLAYERS; i++) {
 if(IsPlayerConnected(i))
 {
 OnPlayerUpdate_DM(i);
 gPlayerLogged[i] = 0;
 }
 }
 В public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
 
 
 Код new string[256]; new tpass[256];
 new sendername[MAX_PLAYER_NAME];
 if(strlen(inputtext))
 {
 while(strfind(inputtext,"%",true)!=-1)
 {
 inputtext[strfind(inputtext,"%",true)] = '#';
 }
 }
 if(dialogid == LOGIN_DIALOG_ID)
 {
 if(response)
 {
 if(!strlen(inputtext))
 {
 new loginmsg[256+1];
 format(loginmsg,256,"Этот аккаунт зарегестрирован\nДля авторизации введите свой пароль");
 ShowPlayerDialog(playerid,LOGIN_DIALOG_ID,DIALOG_STYLE_INPUT,"Авторизация",loginmsg,"Принять","Отмена");
 return 1;
 }
 GetPlayerName(playerid,sendername,sizeof(sendername));
 format(string,sizeof(string),"%s.ini",sendername);
 new File = iniOpen(string);
 iniGet(File,"Key",tpass);
 iniClose(File);
 if(!strcmp(tpass,MD5_Hash(inputtext),true))
 {
 OnPlayerLogin(playerid,tpass);
 }
 else
 {
 SendClientMessage(playerid,COLOR_GREY,"Неверный пароль!");
 new loginmsg[256+1];
 format(loginmsg,256,"Этот аккаунт зарегестрирован\nДля авторизации введите свой пароль");
 ShowPlayerDialog(playerid,LOGIN_DIALOG_ID,DIALOG_STYLE_INPUT,"Авторизация",loginmsg,"Принять","Отмена");
 }
 }
 else
 {
 Kick(playerid);
 }
 }
 else if(dialogid == REG_DIALOG_ID)
 {
 if(response)
 {
 if(!strlen(inputtext))
 {
 new loginmsg[256+1];
 format(loginmsg,256,"Пожалуйста введите свой пароль в окошко");
 ShowPlayerDialog(playerid,REG_DIALOG_ID,DIALOG_STYLE_INPUT,"Регистрация",loginmsg,"Принять","Отмена");
 return 1;
 }
 GetPlayerName(playerid,sendername,sizeof(sendername));
 format(string,sizeof(string),"%s.ini",sendername);
 Create(string);
 OnPlayerRegister(playerid,MD5_Hash(inputtext));
 new loginmsg[256+1];
 format(loginmsg,256,"Пожалуйста введите свой пароль в окошко");
 ShowPlayerDialog(playerid,LOGIN_DIALOG_ID,DIALOG_STYLE_INPUT,"Авторизация",loginmsg,"Принять","Отмена");
 }
 else
 {
 Kick(playerid);
 }
 }
 
 В OnPlayerSpawn(playerid)
 
 
 Код     if(gPlayerLogged[playerid] == 0) {
 SendClientMessage(playerid, COLOR_LIGHTRED, "Извините но этот сервер требует залогинится перед тем как войти в игру.");
 Kick(playerid);
 }
 
 Код 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 = iniOpen(string3);
 iniSet(File,"Key",password);
 iniSetInt(File,"Level",PlayerInfo[playerid][pLevel]);
 iniClose(File);
 }
 return 1;
 }
 
 public OnPlayerUpdate_DM(playerid)
 {
 if(IsPlayerConnected(playerid))
 {
 if(IsPlayerNPC(playerid))return 1;
 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 = iniOpen(string3);
 iniSetInt(File,"Level",PlayerInfo[playerid][pLevel]);
 iniClose(File);
 }
 }
 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 = iniOpen(string2);
 iniGetInt(File,"Level",PlayerInfo[playerid][pLevel]);
 iniClose(File);
 gPlayerLogged[playerid] = 1;
 return 1;
 }
 
 stock Create(filename[])
 {
 new File:fhnd;
 if(fexist(filename)) return false;
 fhnd = fopen(filename,io_write);
 fclose(fhnd);
 return true;
 }
 Проверь.
 
 Инклуды
 |  |  |  |  |