Перейти к содержанию
Авторизация  

Рекомендуемые сообщения

ArtemSupreme

Вот код 

  case D_VEHNUMBER+2:
		{
  			if(!response) return DeletePVar(playerid,"CARES");
  			new string[200], stringer[512];
			new cares = GetPVarInt(playerid,"CARES");
		   	switch(cares)
		   	{
			   	case 1:
			   	{
			   	    if(nomercar[playerid] > gettime()) return SendClientMessage(playerid,COLOR_RED,""cER"Номера можно ставить раз в 10 минут");
        			format(stringer, sizeof(stringer),"%s%d%d%d%s%s", VehNumber(), random(9), random(9), random(9), VehNumber(), VehNumber());
					format(string, sizeof(string), "{FFFFFF}Место регистрации: {63BD4E}Пункт выдачи номеров{FFFFFF}\nНомер вашего авто: {63BD4E}%s%d%d%d%s%s", stringer);
					ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "{"#cSV"}Получение номера", string, "Закрыть", "");
					format(string, sizeof(string), "[Пункт выдачи номеров] %s[%i] зарегистрировал номер на авто #1 [%s]", GetName(playerid), playerid, stringer);
					foreach(new i: Player)
					{
					    if(PlayerLogged[i] == false) continue;
				    	if(IsADps(i)) SendClientMessage(i, 0x3399FFFF, string);
					}
					strmid(PI[playerid][pNumberVehicle], stringer, 0, strlen(stringer), 64);
					TransferMoney(playerid, -1, 5000);
		            MysqlUpdatePlayerStr(playerid, "veh_number", PI[playerid][pNumberVehicle]);
					DeletePVar(playerid,"CARES");
					nomercar[playerid] = gettime() + 300;
					if(Settings[playerid][5] == 1)
					{
						if(VehicleLabel[PI[playerid][PlayerCarID][0]] != Text3D:INVALID_3DTEXT_ID)
						{
						    UpdateDynamic3DTextLabelText(VehicleLabel[PI[playerid][PlayerCarID][0]], 0xFFFFFFFF, stringer);
						}
					}
					SetVehicleNumberPlate(PI[playerid][PlayerCarID][0], PI[playerid][pNumberVehicle]);
				}
			   	case 2:
			   	{
			   	    if(nomercar[playerid] > gettime()) return SendClientMessage(playerid,COLOR_RED,""cER"Номера можно ставить раз в 10 минут");
				   	format(stringer, sizeof(stringer),"%s%d%d%d%s%s", VehNumber(), random(9), random(9), random(9), VehNumber(), VehNumber());
					format(string, sizeof(string), "{FFFFFF}Место регистрации: {63BD4E}Пункт выдачи номеров{FFFFFF}\nНомер вашего авто: {63BD4E}%s%d%d%d%s%s", stringer);
					ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "{ffa500}Получение номера", string, "Закрыть", "");
					format(string, sizeof(string), "[Пункт выдачи номеров] %s[%i] зарегистрировал номер на авто #2 [%s]", GetName(playerid), playerid, stringer);
					foreach(new i: Player)
					{
					    if(PlayerLogged[i] == false) continue;
				    	if(IsACop(i)) SendClientMessage(i, 0x3399FFFF, string);
					}
					strmid(PI[playerid][pNumberVehicle1], stringer, 0, strlen(stringer), 64);
					TransferMoney(playerid, -1, 5000);
		            MysqlUpdatePlayerStr(playerid, "veh_number1", PI[playerid][pNumberVehicle1]);
					DeletePVar(playerid,"CARES");
					nomercar[playerid] = gettime() + 300;
					if(Settings[playerid][5] == 1)
					{
						if(VehicleLabel[PI[playerid][PlayerCarID][1]] != Text3D:INVALID_3DTEXT_ID)
						{
						    UpdateDynamic3DTextLabelText(VehicleLabel[PI[playerid][PlayerCarID][1]], 0xFFFFFFFF, stringer);
						}
					}
					SetVehicleNumberPlate(PI[playerid][PlayerCarID][1], PI[playerid][pNumberVehicle1]);
				}
        	}
		}

Это получение номеров в ГИББД , как сделать что бы игрок указывал свой номер авто и проверка занят ли этот номера

Помогите.

Отблагодорю за + или деньги

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo

Если я правильно понял, то  нужно получение номера который вводит игрок, а не рандом? Если имеете хоть какие-то навыки Pawn - дам правильное направление. Создаёте к примеру инпут диалог, далее все необходимые проверочки (валидные/невалидные символы и т.д.). Насчёт проверочки, создаём стоковую функцию, запрос к мускулу, где хранятся номера машин, скорее всего это бд с машинами.

 

Вот, если что-то разберёте: Пример на R5-r8

stock IsPlayerRegister(nomers[])
{
	new sql[150];
	format(sql, sizeof(sql), "SELECT * FROM `БДшка, скорее всего с карами` WHERE `столбец где хранятся номера` = '%d'", nomers);
	mysql_query(sql);
	mysql_store_result();
	if(!mysql_num_rows()) return false;
	return true;
}

Я бы написал без проблем, но инфы очень мало (версия мускула, как называются столбцы в бд и т.д.). Если что-нибудь поняли, отталкивайтесь от информации, пишите, я помогу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ArtemSupreme

@gegelo"SELECT * FROM `accounts` WHERE `veh_number` = '%d'", nomers); вот где хранятся номера авто игроков напиши в лс помоги пожалуйста

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
gegelo

Набросал не большой код на ужасном мускуле R39-5, скинул ТСу в лс, ещё сюда кину для наглядности. Я накидал простенько c надеждой на то, что ТС вникнет и будет пытаться делать всё сам, не сложно же, ну...

 

[spoiler=Код]

forward IsPlayeNumberCar(playerid,inputtext[]);
public IsPlayeNumberCar(playerid,inputtext[])
{
    new rows, fields;
    cache_get_data(rows, fields);
 
    if(rows)
    {
        ShowPlayerDialog(playerid, D_VEHNUMBER+6,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Номер уже занят", "Ок","");
    }
    else
    {
        new string[200];
        format(string, sizeof(string), "{FFFFFF}Место регистрации: {63BD4E}Пункт выдачи номеров{FFFFFF}\nНомер вашего авто: {63BD4E}%s", inputtext);
        ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "{"#cSV"}Получение номера", string, "Закрыть", "");
        format(string, sizeof(string), "[Пункт выдачи номеров] %s[%i] зарегистрировал номер на авто #1 [%s]", GetName(playerid), playerid, inputtext);
        foreach(new i: Player)
        {
            if(PlayerLogged[i] == false) continue;
            if(IsADps(i)) SendClientMessage(i, 0x3399FFFF, string);
        }
        strmid(PI[playerid][pNumberVehicle], inputtext, 0, strlen(inputtext), 64);
        TransferMoney(playerid, -1, 5000);
        MysqlUpdatePlayerStr(playerid, "veh_number", PI[playerid][pNumberVehicle]);
        DeletePVar(playerid,"CARES");
        nomercar[playerid] = gettime() + 300;
        if(Settings[playerid][5] == 1)
        {
            if(VehicleLabel[PI[playerid][PlayerCarID][0]] != Text3D:INVALID_3DTEXT_ID)
            {
                UpdateDynamic3DTextLabelText(VehicleLabel[PI[playerid][PlayerCarID][0]], 0xFFFFFFFF, inputtext);
            }
        }
        SetVehicleNumberPlate(PI[playerid][PlayerCarID][0], PI[playerid][pNumberVehicle]);
    }
    return true;
}
 
forward IsPlayeNumberCar1(playerid,inputtext[]);
public IsPlayeNumberCar1(playerid,inputtext[])
{
    new rows, fields;
    cache_get_data(rows, fields);
 
    if(rows)
    {
        ShowPlayerDialog(playerid, D_VEHNUMBER+7,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Номер уже занят", "Ок","");
    }
    else
    {
        new string[200];
        format(string, sizeof(string), "{FFFFFF}Место регистрации: {63BD4E}Пункт выдачи номеров{FFFFFF}\nНомер вашего авто: {63BD4E}%s", inputtext);
        ShowPlayerDialog(playerid, D_NULL, DIALOG_STYLE_MSGBOX, "{ffa500}Получение номера", string, "Закрыть", "");
        format(string, sizeof(string), "[Пункт выдачи номеров] %s[%i] зарегистрировал номер на авто #2 [%s]", GetName(playerid), playerid, inputtext);
        foreach(new i: Player)
        {
            if(PlayerLogged[i] == false) continue;
            if(IsACop(i)) SendClientMessage(i, 0x3399FFFF, string);
        }
        strmid(PI[playerid][pNumberVehicle1], inputtext, 0, strlen(inputtext), 64);
        TransferMoney(playerid, -1, 5000);
        MysqlUpdatePlayerStr(playerid, "veh_number1", PI[playerid][pNumberVehicle1]);
        DeletePVar(playerid,"CARES");
        nomercar[playerid] = gettime() + 300;
        if(Settings[playerid][5] == 1)
        {
            if(VehicleLabel[PI[playerid][PlayerCarID][1]] != Text3D:INVALID_3DTEXT_ID)
            {
                UpdateDynamic3DTextLabelText(VehicleLabel[PI[playerid][PlayerCarID][1]], 0xFFFFFFFF, inputtext);
            }
        }
        SetVehicleNumberPlate(PI[playerid][PlayerCarID][1], PI[playerid][pNumberVehicle1]);
    }
    return true;
}
 
 
 
 
 
        case D_VEHNUMBER+2:
        {
            if(!response) return DeletePVar(playerid,"CARES");
            new string[200], stringer[512];
            new cares = GetPVarInt(playerid,"CARES");
            switch(cares)
            {
                case 1:
                {
                    if(nomercar[playerid] > gettime()) return SendClientMessage(playerid,COLOR_RED,""cER"Номера можно ставить раз в 10 минут");
                    ShowPlayerDialog(playerid, D_VEHNUMBER+6,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Введите номер", "Ок","");
                }
                case 2:
                {
                    if(nomercar[playerid] > gettime()) return SendClientMessage(playerid,COLOR_RED,""cER"Номера можно ставить раз в 10 минут");
                    ShowPlayerDialog(playerid, D_VEHNUMBER+7,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера на машину #2 | Введите номер", "Ок","");
                }
            }
        }
 
 
 
        case D_VEHNUMBER+6:
        {
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, D_VEHNUMBER+6,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Введите номер", "Ок","");
            if(strlen(inputtext) > 7 || strlen(inputtext) < 7) return ShowPlayerDialog(playerid, D_VEHNUMBER+6,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Номер должен состоять из 7 цифр", "Ок","");
            if(validNumber(inputtext))
            {
                new query_string[70+1];
                format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `veh_number` = '%d'", inputtext);
                mysql_function_query(!!!MySql!!!, query_string, true, "IsPlayeNumberCar","is", playerid,inputtext);
            }
            else
            {
                ShowPlayerDialog(playerid, D_VEHNUMBER+6,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Номер должен состоять из 7 цифр", "Ок","");
            }
        }
       
        case D_VEHNUMBER+7:
        {
            if(!strlen(inputtext)) return ShowPlayerDialog(playerid, D_VEHNUMBER+7,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Введите номер", "Ок","");
            if(strlen(inputtext) > 7 || strlen(inputtext) < 7) return ShowPlayerDialog(playerid, D_VEHNUMBER+7,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Номер должен состоять из 7 цифр", "Ок","");
            if(validNumber(inputtext))
            {
                new query_string[70+1];
                format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `veh_number` = '%d'", inputtext);
                mysql_function_query(!!!MySql!!!, query_string, true, "IsPlayeNumberCar1","is", playerid,inputtext);
            }
            else
            {
                ShowPlayerDialog(playerid, D_VEHNUMBER+7,DIALOG_STYLE_INPUT, "Регистрация номера","Регистрация номера | Номер должен состоять из 7 цифр", "Ок","");
            }
        }



validNumber(reas[])
{
	new len = strlen(reas), p1;
	if(len < 10 || len > 64)return 0;
	for(new i; i < len; i++)
	{
		if((reas[i] >= 0x30 && reas[i] <= 0x39) 				// 0 - 9
				|| (reas[i] >= 0x41 && reas[i] <= 0x5A)					// A - Z
				|| (reas[i] >= 0x61 && reas[i] <= 0x7A)) continue;		// a - z
		else if(reas[i] == 0x2e) continue;						// .
		else if(reas[i] == 0x2d) continue;						// -
		else if(reas[i] == 0x5f) continue;						// _
		else if(reas[i] == 0x40) p1++; 							// @
		else return 0;
	}
	if(p1 != 1) return 0;
	return true;
}

 

 

 

Достаточно много воды в коде, ибо не знаю что у ТСа там есть, validNumber не помешает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Гость
Эта тема закрыта для публикации ответов.
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.