Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Проблема со скином(Регистрация/Авторизация)

Статус
В этой теме нельзя размещать новые ответы.

dmitriy174

Дебютант
Вот проблемная часть кода. Проблема заключается в том, что при регистрации и выборе мужского пола сохраняется 213 скин, хотя выбрать можно любой (женский пол не проверял), а так же надо убрать скин сиджея в выборе. При авторизации так же идёт выборка скина, которую надо убрать (визуально выбора скина нет, то если тыкать на кнопки "<<" и ">>" там идёт выбор). Если при авторизации убрать кнопки "<<",">>" и "SPAWN" то игрок не спавнится и идёт режим наблюдения в районе двух ферм ЛС.
Код:
#include <a_samp>
#include mxINI
#include <md5>
enum pInfo
{
	 pName[MAX_PLAYER_NAME],
	 pPass[17],
	 pSex,
	 pSkin,
	 pTicket,
}

new PlayerInfo[MAX_PLAYERS][pInfo];

public OnPlayerConnect(playerid)
{
	GetPlayerName(playerid,PlayerInfo[playerid][pName],MAX_PLAYER_NAME);
	new string[MAX_PLAYER_NAME + 6 + 4];
	format(string,sizeof(string),"users/%s.ini",PlayerInfo[playerid][pName]);
	new openFile = ini_openFile(string);
	if(openFile < 0)
	{
		 ShowPlayerDialog(playerid,1,DIALOG_STYLE_INPUT,"Регистрация нового персонажа.","{1E90FF}Аккаунт не зарегистрирован.		 \n \n{1E90FF}Пройдите регистрацию.		 \n \n{00FF00}Введите пароль:		","Ввод","Выход");
	}
	else
	{
         ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Аккаунт зарегистрирован.", "{FFFF00}Этот аккаунт уже зарегистрирован. \n \n{FFFF00}Чтобы войти на сервер, пройдите авторизацию. \n \n{00FF00}Введите пароль:","Ввод","Выход");
         ini_getString(openFile,"PASS",PlayerInfo[playerid][pPass]);
		 ini_closeFile(openFile);
	}
	return 1;
}

public OnPlayerSpawn(playerid)
{
	SetPlayerColor(playerid,0xFFFFFF00);
	SetPlayerInterior(playerid,0);
	new spawnskin=PlayerInfo[playerid][pSkin];
	SetPlayerSkin(playerid,spawnskin);
	return 1;
}


public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
	switch(dialogid)
	{
	    case 1:
	    {
	        if(!response) return Kick(playerid);
	        if(strlen(inputtext) < 4 || strlen(inputtext) > 16) return ShowPlayerDialog(playerid,1,DIALOG_STYLE_PASSWORD,"Регистрация нового персонажа.","Длина пароля от 4 до 16 символов! ","Ввод","Выход");
	        format(PlayerInfo[playerid][pPass],17,inputtext);
	        if(response) return ShowPlayerDialog(playerid,4,DIALOG_STYLE_MSGBOX,"Правила сервера.","1.Правило 1.		 \n2.Правило 2.		\n3.Правило 3.		","Выход","Далее>>");
	        ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"Выберите ваш пол:","{FFFFFF}","Мужской","Женский");
		}
		case 2:
		{
			if(!response) return Kick(playerid);
			if(!strlen(inputtext)) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Аккаунт зарегистрирован.", "{FFFF00}Этот аккаунт уже зарегистрирован. \n \n{FFFF00}Чтобы войти на сервер, пройдите авторизацию. \n \n{00FF00}Введите пароль:","Ввод","Выход");
			if(strcmp(PlayerInfo[playerid][pPass],inputtext,false) != 0) return ShowPlayerDialog(playerid,2,DIALOG_STYLE_PASSWORD,"Аккаунт зарегистрирован.", "{FFFF00}Этот аккаунт уже зарегистрирован. \n \n{FFFF00}Чтобы войти на сервер, пройдите авторизацию. \n \n{00FF00}Введите пароль:","Ввод","Выход");
                        AddPlayerClass(pSkin,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0);
			LoadPlayerAccount(playerid);
			}
		case 3:
		{
			SetPlayerPos(playerid, 222.5363,-8.0818,1002.2109);
    		SetPlayerFacingAngle(playerid, 270.0000);
			SetPlayerCameraPos(playerid, 225.5363,-8.1821,1002.2109);
			SetPlayerCameraLookAt(playerid, 200.5363,-7.1821,1005.2109);
			SetPlayerInterior(playerid,5);
            if(response) PlayerInfo[playerid][pSex] = 1;
            else PlayerInfo[playerid][pSex] = 2;
            if(response)
            {
				if (AddPlayerClass(78,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
				{
				PlayerInfo[playerid][pSkin] = 78;
            	}
   	            if (AddPlayerClass(79,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 79;
   	            }
   	            if (AddPlayerClass(134,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 134;
   	            }
   	            if (AddPlayerClass(135,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 135;
   	            }
   	            if (AddPlayerClass(137,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 137;
   	            }
   	            if (AddPlayerClass(200,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 200;
   	            }
   	            if (AddPlayerClass(212,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 212;
   	            }
   	            if (AddPlayerClass(213,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 213;
   	            }
	        }
            else
            {
                if (AddPlayerClass(54,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
                    PlayerInfo[playerid][pSkin] = 54;
   	            }
                if (AddPlayerClass(75,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 75;
   	            }
                if (AddPlayerClass(77,1450.0621,-2287.6050,13.5469,86.9806,0,0,0,0,0,0))
   	            {
   	                PlayerInfo[playerid][pSkin] = 77;
   	            }
            }
		    new str[35];
            format(str,sizeof(str),"users/%s.ini",PlayerInfo[playerid][pName]);
            new openFile = ini_createFile(str);
            ini_setString(openFile,"Pass",PlayerInfo[playerid][pPass]);
            ini_setInteger(openFile,"Sex",PlayerInfo[playerid][pSex]);
            ini_setInteger(openFile,"Skin",PlayerInfo[playerid][pSkin]);
            ini_closeFile(openFile);
		}
		case 4:
		{
		    if(!response) return ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"E-Mail","Введите ваш E-Mail:","Выход","Далее>>");
			if(response) return Kick(playerid);
		}
		case 5: //E-Mail
		{
		    if(strlen(inputtext) == 0) return ShowPlayerDialog(playerid,5,DIALOG_STYLE_INPUT,"E-Mail","Введите ваш E-Mail:","Выход","Далее>>");
			if(!response) return ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"Выберите ваш пол:","{FFFFFF}","Мужской","Женский");
			else Kick(playerid);
		}
             }
	return 1;
}

stock LoadPlayerAccount(playerid)
{
	new str[35];
	format(str,sizeof(str),"users/%s.ini",PlayerInfo[playerid][pName]);
	new openFile = ini_openFile(str);
	ini_getInteger(openFile,"Sex",PlayerInfo[playerid][pSex]);
	return 1;
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу