Вопросы

Здравствуйте, такая проблема первый раз инвентарь "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;

 

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


Ссылка на сообщение

11 ответов на этот вопрос

  • 0

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

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


Ссылка на сообщение
  • 0
}
	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;

 

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


Ссылка на сообщение
  • 0

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

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


Ссылка на сообщение
  • 0

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

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


Ссылка на сообщение
  • 0

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

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


Ссылка на сообщение
  • 0
8 часов назад, SCRIPTMAN сказал:

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

https://pastebin.com/AMs6HnMp это все что есть инвентарь 
https://pastebin.com/tyurB1rb public OnPlayerKeyStateChange

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


Ссылка на сообщение
  • 0
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 сейчас показывается у игрока.

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


Ссылка на сообщение
  • 0
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 у меня все в порядке? просто еще вопрос 
кнопка "Н" Заехать в гараж или открыть шлагбаум очень долго нужно жать ... я где то слишал эту проблему но вспомнить не могу

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


Ссылка на сообщение
  • 0
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 сейчас показывается у игрока.

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

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


Ссылка на сообщение
  • 0

@Drummer1993 

pc_cmd_how

предоставь

MyButtonSystem(playerid)

и это

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


Ссылка на сообщение
  • 0
13 минут назад, SCRIPTMAN сказал:

@Drummer1993 


pc_cmd_how

предоставь


MyButtonSystem(playerid)

и это

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

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

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


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

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

  • Похожий контент

    • Redmondd
      От Redmondd
      При запуске сервера в консоли пишет: Started server on port: 7777, with maxplayers: 500 lanmode is OFF.
      И когда захожу на сервер пишет server didnt respond
       
      ---------- Loaded log file: "server_log.txt". ---------- SA-MP Dedicated Server ---------------------- v0.3.7-R2, (C)2005-2015 SA-MP Team filterscripts = ""  (string) Server Plugins --------------  Loading plugin: mysql   > MySQL plugin R7-2 successfully loaded.   Loaded.  Loading plugin: sscanf  ===============================       sscanf plugin loaded.          Version:  2.8.1    (c) 2012 Alex "Y_Less" Cole  ===============================   Loaded.  Loading plugin: dc_cmd   Daniel's CMD plugin v2.8     (c) 2014 Daniel_Cortez         www.pro-pawn.ru   Loaded.  Loading plugin: streamer *** Streamer Plugin v2.7.9 by Incognito loaded ***   Loaded.  Loaded 4 plugins. Started server on port: 7777, with maxplayers: 500 lanmode is OFF. Filterscripts ---------------   Loaded 0 filterscripts. Подключение к базе данных MYSQL успешно ---------------------------------- --------Redmond RP 01-------- ---------------------------------- Number of vehicle models: 5 Склады загружены успешно Дома (15 шт) загружены успешно