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

Проблема с номерами

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

SCRIPTMAN

Ку народ.

 

Короче, допустим получил номера, ну или выдал себе A001AA | 52RUS, показывает норм, но после рестарта какие-то цифры. Мод на mySQL. В чём проблема? Вот от этих номеров "A001AA | 52RUS", показывает "66.4553"

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


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

В каком формате в базе номера?  И показывай форматирование номеров.

Изменено пользователем Веб

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


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

, utf8_bin. Номера идут на английском, varchar = 10(я менял на 15, но вернул и всё равно.) В смысле, форматирование? И ещё, по умолчанию было "хХХХхх", я сменил на "---". Тип номеров нет. И | 52RUS я добавил. А так обычно было просто так "A001AA"

Изменено пользователем Shapik

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


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

format

Изменено пользователем Веб

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


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

,Ток это.

format(strcom, 128, "%s%d%d%d%s%s | 52RUS", VehNumber(), random(9), random(9), random(9), VehNumber(), VehNumber()); 

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


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

Показывай функцию: VehNumber

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


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

 

 


VehNumber
stock VehNumber()
{
  	new rand = random(11);
  	new chr[10];
  	switch(rand)
  	{
    	case 0: format(chr,200,"%s","A");
    	case 1: format(chr,200,"%s","B");
    	case 2: format(chr,200,"%s","C");
	    case 3: format(chr,200,"%s","E");
	    case 4: format(chr,200,"%s","H");
	    case 5: format(chr,200,"%s","K");
	    case 6: format(chr,200,"%s","M");
	    case 7: format(chr,200,"%s","O");
	    case 8: format(chr,200,"%s","P");
	    case 9: format(chr,200,"%s","T");
	    case 10: format(chr,200,"%s","X");
  	}
  	return chr;
}

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


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

Показывай где и как происходит сохранение номеров.

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


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

,Честно говоря, ХЗ. Кидаю всё, что связано с cNumer:

if(!strcmp(CarInfo[i][cNumber],"---",true)){}
			else CarInfo[i][cText] = Create3DTextLabel(CarInfo[i][cNumber], COLOR_YELLOW, 0.0, 0.0, 0.0, 30.0, 0, 1), Attach3DTextLabelToVehicle(CarInfo[i][cText], i, 0.0, 0.0, 1.0); 

Потом ещё так же несколько раз.

    if(!strcmp(CarInfo[i][cNumber],inputtext,true) && strcmp(CarInfo[i][cNumber],"---",true))
    {
       error++, format(strcom, 300, "{bbbbbb}Транспорт с номерами {ffffff}%s {bbbbbb}найден в базе данных!\nНомерные знаки зарегистрированы на {ffffff}%s\n{bbbbbb}Транспортное средство: {ffffff}%s", inputtext, CarInfo[i][cOwner], GetCarName(GetVehicleModel(i)));
GetVehiclePos(i, POS[0], POS[1], POS[2]);
SetPVarFloat(playerid, "CX", POS[0]), SetPVarFloat(playerid, "CY", POS[1]), SetPVarFloat(playerid, "CZ", POS[2]);
SPD(playerid, D_POLICE+3, DIALOG_STYLE_MSGBOX, "Информация найдена!", strcom, "Найти", "Закрыть");
break;
    }
if(GetPVarInt(playerid, "PlayerCar1") != 0)
{
i1 = GetPVarInt(playerid, "PlayerCar1");
           if(!strcmp(CarInfo[i1][cNumber],"---",true))//Если не получены номера
           {
           if(Player[playerid][pMoney] < 5000) return SCM(playerid, COLOR_GRAD1, "У Вас не хватает денег.");
    Player[playerid][pMoney] -= 5000, Kazna += 5000, GameTextForPlayer(playerid, "~r~ - 5000 RUB", 1000, 1);
format(strcom, 128, "%s%d%d%d%s%s | 52RUS", VehNumber(), random(9), random(9), random(9), VehNumber(), VehNumber());
CarInfo[i1][cText] = Create3DTextLabel(strcom, COLOR_YELLOW, 0.0, 0.0, 0.0, 30.0, 0, 1);
Attach3DTextLabelToVehicle(CarInfo[i1][cText], i1, 0.0, 0.0, 0.0), SendMes(playerid, COLOR_GREEN, "Вы получили на транспорт %s номерной знак - %s", GetCarName(GetVehicleModel(i1)), strcom);
                   strmid(CarInfo[i1][cNumber], strcom, 0, strlen(strcom), 20);
SetCarStr(i1, "Number", CarInfo[i1][cNumber]);
}
else return false;
} 

Потом на 2 авто также.

if(Car[playerid] == 1)
   {
if(GetPVarInt(playerid, "PlayerCar1") > 0)
{
   new i = GetPVarInt(playerid, "PlayerCar1");
   if(!IsPlayerInVehicle(playerid, i)) return SCM(playerid, COLOR_GRAD1, "Вы должны быть в своем транспорте!");
if(!IsASalon(playerid)) return SCM(playerid, COLOR_GRAD1, "Вы должны быть на одном из трех авторынков!");
GetVehiclePos(i, CarInfo[i][cX], CarInfo[i][cY], CarInfo[i][cZ]), GetVehicleZAngle(i, CarInfo[i][cF]);
Player[playerid][pBank] += CarInfo[i][cPrice]/10*7, SendMes(playerid, COLOR_GREEN, "Вы продали свой транспорт. Сумма в %d рублей зачислена на Ваш банковский счет.", CarInfo[i][cPrice]/10*7);
       strmid(CarInfo[i][cOwner], "None", 0, strlen("None"), 24);
       strmid(CarInfo[i][cNumber], "---", 0, strlen("---"), 10), SetCarStr(i, "Number", CarInfo[i][cNumber]);
Mileage[i] = 0.0;
       Delete3DTextLabel(CarInfo[i][cText]);
              //format(strcom, 100, "%s продал транспорт ID %d государству!", Player[playerid][pName], i), Log("Cars", strcom);
       format(strlog, sizeof(strlog), "IGROK %s PRODAL TRANSPORT GOSUDARSTVU ID: %d | Model: %d", Player[playerid][pName], i, GetVehicleModel(i)); FLog("Log_Vehicles.ini", strlog);
       SetCarFloat(i, "X", CarInfo[i][cX]), SetCarFloat(i, "Y", CarInfo[i][cY]), SetCarFloat(i, "Z", CarInfo[i][cZ]), SetCarFloat(i, "F", CarInfo[i][cF]);
   SetCarStr(i, "Owner", "None"), SetCarFloat(i, "Mileage", 0.0), DeletePVar(playerid, "PlayerCar"), RemovePlayerFromVehicle(playerid);
if(Player[playerid][pSpawn] == 4) Player[playerid][pSpawn] = 1;
DeletePVar(playerid, "PlayerCar1");
}
} 

на 2 также.

forward SetDonateCarNumber(plid, inptext[]);
public SetDonateCarNumber(plid, inptext[])
{
    new rows,fields;
    cache_get_data(rows, fields);
if(rows) return SCM(plid, COLOR_GRAD1, "Такой номерной знак уже есть в базе данных!");
    new i;
    if(GetPVarInt(plid, "V_CAR") == 1) i = GetPlayerCar1(plid);
    else if(GetPVarInt(plid, "V_CAR") == 2) i = GetPlayerCar2(plid);
    else return SCM(plid, COLOR_GRAD1, "Произошла ошибка #211!");
if(!strcmp(CarInfo[i][cNumber],"---",true))//Если не получены номера
  {
     CarInfo[i][cText] = Create3DTextLabel(inptext, COLOR_YELLOW, 0.0, 0.0, 0.0, 30.0, 0, 1);
Attach3DTextLabelToVehicle(CarInfo[i][cText], i, 0.0, 0.0, 1.0);
        strmid(CarInfo[i][cNumber], inptext, 0, strlen(inptext), 20);
SetCarStr(i, "Number", CarInfo[i][cNumber]);
}
else
{
   Delete3DTextLabel(CarInfo[i][cText]);
   CarInfo[i][cText] = Create3DTextLabel(inptext, COLOR_YELLOW, 0.0, 0.0, 0.0, 30.0, 0, 1);
Attach3DTextLabelToVehicle(CarInfo[i][cText], i, 0.0, 0.0, 1.0);
        strmid(CarInfo[i][cNumber], inptext, 0, strlen(inptext), 20);
SetCarStr(i, "Number", CarInfo[i][cNumber]);
}
SendMes(i, COLOR_GREEN, "Вы сменили номерной знак на вашем транспорте на %s", CarInfo[i][cNumber]);
if(GetPVarInt(i, "N_Donate") == 1) Player[i][pDonate]-=100, SetPlayerInt(i, "Donate", Player[i][pDonate]-100), DeletePVar(i, "N_Donate");
return true;
}
CMD:carnum(playerid, params[])
{
	if(Player[playerid][pAdmin] < 6) return false;
	if(sscanf(params, "is[30]", params[0], params[1])) return SCM(playerid, COLOR_GRAD1, "Используйте: /carnum [carid] [номер]");
	new i = params[0];
	if(!strcmp(CarInfo[i][cNumber],"---",true))//Если не получены номера
 	{
 	    CarInfo[i][cText] = Create3DTextLabel(params[1], COLOR_YELLOW, 0.0, 0.0, 0.0, 30.0, 0, 1);
		Attach3DTextLabelToVehicle(CarInfo[i][cText], i, 0.0, 0.0, 1.0), SendMes(playerid, COLOR_GREEN, "Вы установили номера %s на транспорт ID: %d", params[1], params[0]);
        strmid(CarInfo[i][cNumber], params[1], 0, strlen(params[1]), 20);
		SetCarStr(i, "Number", CarInfo[i][cNumber]);
	}
	else
	{
	    Delete3DTextLabel(CarInfo[i][cText]);
	    CarInfo[i][cText] = Create3DTextLabel(params[1], COLOR_YELLOW, 0.0, 0.0, 0.0, 30.0, 0, 1);
		Attach3DTextLabelToVehicle(CarInfo[i][cText], i, 0.0, 0.0, 1.0), SendMes(playerid, COLOR_GREEN, "Вы установили номера %s на транспорт ID: %d", params[1], params[0]);
        strmid(CarInfo[i][cNumber], params[1], 0, strlen(params[1]), 20);
		SetCarStr(i, "Number", CarInfo[i][cNumber]);
	}
	return true;
}

Вроде всё.

Изменено пользователем Shapik

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


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

Еще интересует функция: SetCarStr

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


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

 

 


SetCarStr
Лови:
stock SetCarStr(idx, stolb[], znach[])
{
	format(Query, 120, "UPDATE "TABLE_CARS" SET  %s = '%s' WHERE ID = '%d' LIMIT 1", stolb, znach, idx);
    return mysql_function_query(handle, Query, false, "","");
}

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


Ссылка на сообщение
Поделиться на другие сайты
Web
format(strcom, 128, "%s%d%d%d%s%s | 52RUS", VehNumber(), random(9), random(9), random(9), VehNumber(), VehNumber());

на

format(strcom, 128, "%s%d%d%d%s%s", VehNumber(), random(9), random(9), random(9), VehNumber(), VehNumber(), SetRegion());

рядом с stock VehNumber()

stock SetRegion()
{
    new region[144], str_region[144];
    switch(region)
    {
           case 0: format(str_region,144,"%s","|52RUS");
    }
    return str_region;
}
Изменено пользователем Веб

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


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

,Выдаёт ошибку, типа массив не известен, хотя он есть в пермеменных.

:\??????\FT ROLEPLAY\gamemodes\ftrp.pwn(17189) : error 033: array must be indexed (variable "-unknown-") 
switch(region) 

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


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

stock SetRegion()
{
    new region[144];
    switch(region)
    {
           case 0: format(region,144,"%s","|52RUS");
    }
    return region;
}

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


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

,Та же ошибка, в том же месте. 

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


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

stock SetRegion()
{
    new str_region[144];
    new region = 1;
    switch(region)
    {
           case 0: format(str_region,144,"%s","|52RUS");
    }
    return str_region;
}

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


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

,Всё равно цифры, рестарт делаю.... 

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


Ссылка на сообщение
Поделиться на другие сайты
Web
strmid(CarInfo[i1][cNumber], strcom, 0, strlen(strcom), 20);

на

strmid(CarInfo[i1][cNumber], strcom, 0, strlen(strcom), 144);

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


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

,Не помогло 

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


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

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

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

×

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

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