Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!: Как сохранить новый цвет текстдрава в БД ? - Форум Pawn-Wiki.Ru - Воплоти мечту в реальность!

Перейти к содержимому

  • (7 Страниц) +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Pawn ]
Как сохранить новый цвет текстдрава в БД ?

#1
Пользователь офлайн   muv4ansky 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Привет всем)
Задаюсь опять же вопросом как сохранить новый цвет текстдрава в БД ?

Вот мой код:
             		case 0:
             		{
					    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) /* Проверяем игрок в машине или нет */
						{
							for(new i; i < 5; i++)
							{
							    /* LEVEL AND SCORE TEXTDRAW CHANGE COLOR */
							    PlayerTextDrawColor(playerid, LEVEL[0][playerid], 0xFF00FFff);//розовый
							    PlayerTextDrawColor(playerid, LEVEL[1][playerid], 0xFF00FFff);//розовый
							    PlayerTextDrawColor(playerid, LEVEL[4][playerid], 0xFF00FFff);//розовый
							    /* скрываем TEXTDRAW'S */
							    PlayerTextDrawHide(playerid, LEVEL[0][playerid]);
							    PlayerTextDrawHide(playerid, LEVEL[1][playerid]);
							    PlayerTextDrawHide(playerid, LEVEL[4][playerid]);
							    /* показываем TEXTDRAW'S */
							    PlayerTextDrawShow(playerid, LEVEL[0][playerid]);
							    PlayerTextDrawShow(playerid, LEVEL[1][playerid]);
							    PlayerTextDrawShow(playerid, LEVEL[4][playerid]);
							    /* дрифт счётчик */
							    PlayerTextDrawColor(playerid, textPlayerDrift[i][playerid], 0xFF00FFff);

							    TextDrawColor(textDrift[5], 0xFF00FFff);//розовый
			    			}
							for(new i; i < 3; i++)
							{
							    /* SPEEDOMETR инфо - скорость/машина/ХП */
							    PlayerTextDrawColor(playerid, textPlayerVelocimetro[i][playerid], 0xFF00FFff);//розовый
							    PlayerTextDrawHide(playerid, textPlayerVelocimetro[i][playerid]);
							    PlayerTextDrawShow(playerid, textPlayerVelocimetro[i][playerid]);
							    /* тут же текст спидометра */
							    TextDrawColor(textVelocimetro[3], 0xFF00FFff);//розовый
							    TextDrawHideForPlayer(playerid, textVelocimetro[3]);
							    TextDrawShowForPlayer(playerid, textVelocimetro[3]);
							}
							ShowPlayerDialog(playerid, 2345, DIALOG_STYLE_LIST, "{ffffff}Интерфейс TextDraw'ов", "{ffffff}Розовый \t {FF00FF}[•••]{ffffff}\nЖелтый \t {FFFF00}[•••]{ffffff}\nКрасный \t {FF0000}[•••]{ffffff}\nСиний \t\t {0000FF}[•••]{ffffff}\nЗеленый \t {00FF00}[•••]{ffffff}\n{808080}- Включить стандартный интерфейс", "Выбрать", "Назад");
    					}
    					else SCM(playerid, -1, !"{FFFF00}- Ошибка: {FFFFFF}ТекстДравы не могут сменить цвет. Сядьте в любое авто!");
             		}



Мне нужно новый цвет то есть "Розовый" сохранить в БД и загружать при входе.

Сразу хочу отметить, сохранить знаю как и загружать тоже знаю как.
Но не полностью уверен что будет загружаться именно розовый цвет, так как в OnPlayerRequestClass загружаю основной цвет этого текстдрава(серый).
Вот как сделать чтоб загружался розовый, если игрок его поставил в настройках?

Мои переменные pColorTD - переменная в моде.
COLORTD - строка в Базе данных.
0

#2
Пользователь онлайн   abusesls 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Немного подправил твой код.. Здесь незачем использовать два цикла. Запрос в базу можешь сделать по-своему, не обязательно через ID аккаунта, можно и через другие параметры. Допишешь недостающие элементы, я там на русском их написал.

case 0:
{
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) 
    {
	new string[64];
        for(new i; i < 5; i++)
        {
	     if(i == 0 || i == 1 || i == 4)
	     {
                 PlayerTextDrawColor(playerid, LEVEL[i][playerid], 0xFF00FFff);
                 PlayerTextDrawHide(playerid, LEVEL[i][playerid]);
                 PlayerTextDrawShow(playerid, LEVEL[i][playerid]);
                 PlayerTextDrawColor(playerid, textPlayerDrift[i][playerid], 0xFF00FFff);
	     }
	     if(i < 3)
	     {
	         PlayerTextDrawColor(playerid, textPlayerVelocimetro[i][playerid], 0xFF00FFff);
	         PlayerTextDrawHide(playerid, textPlayerVelocimetro[i][playerid]);
	         PlayerTextDrawShow(playerid, textPlayerVelocimetro[i][playerid]);
	     }
        }
	TextDrawColor(textVelocimetro[3], 0xFF00FFff);
	TextDrawHideForPlayer(playerid, textVelocimetro[3]);
	TextDrawShowForPlayer(playerid, textVelocimetro[3]);
        strmid(PlayerInfo[playerid][pColorTD], "0xFF00FFff", 0, 11);
 	mysql_format(переменная с коннектом к базе, string, sizeof(string), "UPDATE `таблица` SET `COLORTD` = '%s' WHERE `столбец с ID аккаунта` = '%d'", PlayerInfo[playerid][pColorTD], PlayerInfo[playerid][параметр с ID аккаунта]);
 	mysql_tquery(переменная с коннектом к базе, string, "", "");
        ShowPlayerDialog(playerid, 2345, DIALOG_STYLE_LIST, "{ffffff}Интерфейс TextDraw'ов", "{ffffff}Розовый \t {FF00FF}[•••]{ffffff}\nЖелтый \t {FFFF00}[•••]{ffffff}\nКрасный \t {FF0000}[•••]{ffffff}\nСиний \t\t {0000FF}[•••]{ffffff}\nЗеленый \t {00FF00}[•••]{ffffff}\n{808080}- Включить стандартный интерфейс", "Выбрать", "Назад");
    }
    else SCM(playerid, -1, !"{FFFF00}- Ошибка: {FFFFFF}ТекстДравы не могут сменить цвет. Сядьте в любое авто!");
}

Сообщение отредактировал abusesls: 13 января 2021 - 20:03

1

#3
Пользователь офлайн   muv4ansky 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияabusesls (13 января 2021 - 19:58) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


Опять ты) благодарю братух) респектую не первый раз)!!
лучший
0

#4
Пользователь онлайн   abusesls 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
UPD: вынес из цикла часть кода, пересмотри мой пост выше.
TextDrawColor(textVelocimetro[3], 0xFF00FFff);
TextDrawHideForPlayer(playerid, textVelocimetro[3]);
TextDrawShowForPlayer(playerid, textVelocimetro[3]);

1

#5
Пользователь офлайн   muv4ansky 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Подскажите ещё, вот у меня последний цвет это стандартный, и он вот такой в коде:
					case 5:
					{
					    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
					    {
					        new string[64];
					        for(new i; i < 5; i++)
					        {
             					if(i == 0 || i == 1 || i == 4)
		                		{
					            	PlayerTextDrawColor(playerid, LEVEL[i][playerid], -156);
                  					PlayerTextDrawHide(playerid, LEVEL[i][playerid]);
	                				PlayerTextDrawShow(playerid, LEVEL[i][playerid]);
					                PlayerTextDrawColor(playerid, textPlayerDrift[i][playerid], -156);
		                		}
				                if(i < 3)
								{
        							PlayerTextDrawColor(playerid, textPlayerVelocimetro[i][playerid], -156);
               						PlayerTextDrawHide(playerid, textPlayerVelocimetro[i][playerid]);
					                PlayerTextDrawShow(playerid, textPlayerVelocimetro[i][playerid]);
					                TextDrawColor(textVelocimetro[3], -186);
					                TextDrawHideForPlayer(playerid, textVelocimetro[3]);
					                TextDrawShowForPlayer(playerid, textVelocimetro[3]);
					            }
					        }
					        strmid(PlayerInfo[playerid][pColorTD], "0x00FF00ff", 0, 11);
					        format(string, sizeof(string), "UPDATE `accounts` SET `COLORTD` = '%s' WHERE `name` = '%s'", PlayerInfo[playerid][pColorTD], PlayerInfo[playerid][pName]);
					        mysql_tquery(connection, string, "", "");
					        ShowPlayerDialog(playerid, 2345, DIALOG_STYLE_LIST, "{ffffff}Интерфейс TextDraw'ов", "{ffffff}Розовый \t {FF00FF}[•••]{ffffff}\nЖелтый \t {FFFF00}[•••]{ffffff}\nКрасный \t {FF0000}[•••]{ffffff}\nСиний \t\t {0000FF}[•••]{ffffff}\nЗеленый \t {00FF00}[•••]{ffffff}\n{808080}- Включить стандартный интерфейс", "Выбрать", "Назад");
	        			}
		       			else SCM(playerid, -1, !"{FFFF00}- Ошибка: {FFFFFF}ТекстДравы не могут сменить цвет. Сядьте в любое авто!");
					}
				}



как его сохранить правильно и загрузить ? есть -156 цвет и -186..

Вот так загружаю эти цвета:
cache_get_value_name_int(0, "COLORTD", PlayerInfo[playerid][pColorTD]);


Сообщение отредактировал muv4ansky: 13 января 2021 - 21:21

0

#6
Пользователь онлайн   abusesls 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Сохраняй так же, как предыдущие. А вот загружать их надо так:
cache_get_value_name(0, "COLORTD", PlayerInfo[playerid][pColorTD], 16);

1

#7
Пользователь офлайн   muv4ansky 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияabusesls (13 января 2021 - 21:35) писал:

Сохраняй так же, как предыдущие. А вот загружать их надо так:
cache_get_value_name(0, "COLORTD", PlayerInfo[playerid][pColorTD], 16);


в бд создал int 11

норм ?
0

#8
Пользователь онлайн   abusesls 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
Нет, varchar(16) сделай.
0

#9
Пользователь офлайн   muv4ansky 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияabusesls (13 января 2021 - 21:40) писал:

Нет, varchar(16) сделай.


Сделал, не записывает ничего, пустое поле стало..
0

#10
Пользователь онлайн   abusesls 

  • Пользователь
  • Вставить ник
  • Раскрыть информацию
mysql_log в студию
0

Поделиться темой:


  • (7 Страниц) +
  • 1
  • 2
  • 3
  • Последняя »
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика