Question

Drummer1993
Постоянный

Здравствуйте, такая проблема первый раз инвентарь "Y" открывает , на второй раз открывается и сразу закрывается ... вот код я думаю что тут я не правильно что-то сделал . Заранее спасибо

if(_:clickedid == INVALID_TEXT_DRAW)
	{
		for(new i; i < 16; i++) {
			TextDrawHideForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawHide(playerid, inv_player[playerid][i]);
		}
	 	CancelSelectTextDraw(playerid);
	 	return 1;

 

Share this post


Link to post

11 answers to this question

  • 0
SCRIPTMAN
Великий Гуру

@Drummer1993 чтобы закрыть, нажми кнопку "Вопрос решён" около ответа, который тебе помог

Share this post


Link to post
  • 0
Drummer1993
Постоянный
}
	if(PRESSED(KEY_NO)) { // KEY_NO
		ShowInventory(playerid);
		for(new i=0; i<16; i++) {
			TextDrawShowForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawShow(playerid, inv_player[playerid][i]);
		}
		SelectTextDraw(playerid, 0xEA363FFF);
  		return 1;

 

Share this post


Link to post
  • 0
SCRIPTMAN
Великий Гуру

Возможно, ты ESC нажимаешь, просто этого не замечаешь? Глупо конечно.. но, как вариант

Share this post


Link to post
  • 0
Drummer1993
Постоянный

подниму!
просто кнопка KEY_NO работает один раз , второй раз жму "N" открылось и резко закрылось .. не могу понять что не так сделал

Share this post


Link to post
  • 0
SCRIPTMAN
Великий Гуру

@Drummer1993 весь паблик с клавишами скинь. Или все, что там есть у тебя с инвентарем

Share this post


Link to post
  • 0
SCRIPTMAN
Великий Гуру
if(PRESSED(KEY_NO)) { // KEY_NO
		for(new A; A != 15; A++)//15
    	{
        	PlayerTextDrawSetPreviewModel(playerid, inv_player[playerid][59], GetPlayerSkin(playerid));//59
        	PlayerTextDrawShow(playerid, inv_player[playerid][A]);
    	}
		for(new i=0; i<16; i++) {
			TextDrawShowForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawShow(playerid, inv_player[playerid][i]);
		}
		SelectTextDraw(playerid, 0xEA363FFF);
  		SetPVarInt(playerid, "inventory_td_check", 1);
  		return 1;

Сделай так, но, пока я это всё это писал, появилась идея, то, замени первый код на этот:

if(_:clickedid == INVALID_TEXT_DRAW && GetPVarInt(playerid, "inventory_td_check") == 1)
	{
		for(new i; i < 16; i++) {
			TextDrawHideForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawHide(playerid, inv_player[playerid][i]);
		}
	 	CancelSelectTextDraw(playerid);
  		DeletePVar(playerid, "inventory_td_check");
	 	return 1;

Не стоит конечно юхать пвары, но, попробуй.

Вкратце объясню: у тебя идёт проверка: если игрок нажал ESC, то TD скрываются, но не указано, какой тд открыт, я добавил, что бы кроме нажатия кнопки, была проверка, а тот ли TD сейчас показывается у игрока.

Share this post


Link to post
  • 0
Drummer1993
Постоянный
28 минут назад, SCRIPTMAN сказал:

if(PRESSED(KEY_NO)) { // KEY_NO
		for(new A; A != 15; A++)//15
    	{
        	PlayerTextDrawSetPreviewModel(playerid, inv_player[playerid][59], GetPlayerSkin(playerid));//59
        	PlayerTextDrawShow(playerid, inv_player[playerid][A]);
    	}
		for(new i=0; i<16; i++) {
			TextDrawShowForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawShow(playerid, inv_player[playerid][i]);
		}
		SelectTextDraw(playerid, 0xEA363FFF);
  		SetPVarInt(playerid, "inventory_td_check", 1);
  		return 1;

Сделай так, но, пока я это всё это писал, появилась идея, то, замени первый код на этот:


if(_:clickedid == INVALID_TEXT_DRAW && GetPVarInt(playerid, "inventory_td_check") == 1)
	{
		for(new i; i < 16; i++) {
			TextDrawHideForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawHide(playerid, inv_player[playerid][i]);
		}
	 	CancelSelectTextDraw(playerid);
  		DeletePVar(playerid, "inventory_td_check");
	 	return 1;

Не стоит конечно юхать пвары, но, попробуй.

Вкратце объясню: у тебя идёт проверка: если игрок нажал ESC, то TD скрываются, но не указано, какой тд открыт, я добавил, что бы кроме нажатия кнопки, была проверка, а тот ли TD сейчас показывается у игрока.

спасибо, сейчас это заменю аа в public OnPlayerKeyStateChange у меня все в порядке? просто еще вопрос 
кнопка "Н" Заехать в гараж или открыть шлагбаум очень долго нужно жать ... я где то слишал эту проблему но вспомнить не могу

Share this post


Link to post
  • 0
Drummer1993
Постоянный
56 минут назад, SCRIPTMAN сказал:

if(PRESSED(KEY_NO)) { // KEY_NO
		for(new A; A != 15; A++)//15
    	{
        	PlayerTextDrawSetPreviewModel(playerid, inv_player[playerid][59], GetPlayerSkin(playerid));//59
        	PlayerTextDrawShow(playerid, inv_player[playerid][A]);
    	}
		for(new i=0; i<16; i++) {
			TextDrawShowForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawShow(playerid, inv_player[playerid][i]);
		}
		SelectTextDraw(playerid, 0xEA363FFF);
  		SetPVarInt(playerid, "inventory_td_check", 1);
  		return 1;

Сделай так, но, пока я это всё это писал, появилась идея, то, замени первый код на этот:


if(_:clickedid == INVALID_TEXT_DRAW && GetPVarInt(playerid, "inventory_td_check") == 1)
	{
		for(new i; i < 16; i++) {
			TextDrawHideForPlayer(playerid, inv_global[i]);
		}
		for(new i; i < 60; i++) {
			PlayerTextDrawHide(playerid, inv_player[playerid][i]);
		}
	 	CancelSelectTextDraw(playerid);
  		DeletePVar(playerid, "inventory_td_check");
	 	return 1;

Не стоит конечно юхать пвары, но, попробуй.

Вкратце объясню: у тебя идёт проверка: если игрок нажал ESC, то TD скрываются, но не указано, какой тд открыт, я добавил, что бы кроме нажатия кнопки, была проверка, а тот ли TD сейчас показывается у игрока.

все работает спасибо огромное ! 

Share this post


Link to post
  • 0
Drummer1993
Постоянный
13 минут назад, SCRIPTMAN сказал:

@Drummer1993 


pc_cmd_how

предоставь


MyButtonSystem(playerid)

и это

уже исправил спасибо ) 

Можно закрыть. я создам новую тему есть еще проблема одна

Share this post


Link to post
Guest
This topic is now closed to further replies.
Sign in to follow this  
Followers 0
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • gooding
      By gooding


      Скачать файл PAR RP | Уникальный мод без багов
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

      Добавил gooding Добавлено 20.11.2024 Категория Моды Автор GOODING (Я)  
    • gooding
      By gooding
      Всем здравствуйте, уважаемые читатели. Я много времени потратил на доработку данного игрового мода, чтобы его выставить на форум.
      Лог доработок можно посмотреть внизу, а скриншоты игрового мода внизу и верху.
       
       

    • Kalinin
      By Kalinin
      1. Набираю команду для создания CRMP сервера.
      2. Вакансии  которые свободны. Связь через TG @kalinin_sql
      Нам нужны;
      1.Кодеры
      2.Маперы
      3.СММ
      Так-же дружная работа. По поводу зарплаты будем обговаривать все лично в беседе ТГ
       
    • whccompany
      By whccompany
      Rostov Role Play | Rostov RP | CRMP Mobile Project объявляет набор людей в свою команду: Нам требуются:
       
      1. Маппера:
      Сдельная оплата труда от 250 до 3000 рублей/ за 1 работу
       
      2. Специалист по Text Draw:
      Сдельная оплата труда от 400 до 3500 рублей/ за одну работу
       
      3. Pawn разработчик:
      Заработная плата от 10 000 рублей/месяц
       
      4. Программист для создания лаунчера и сайта UCP с автодонатом:
      Заработная плата от 10 000 рублей/месяц
       
      Контакты для связи:
       
      ВКонтакте
       
      Telegram