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

Несколько вопросов по программированию

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

Morion

Здравствуйте дорогие программисты. Хотел бы задать несколько вопросов по поводу программированию в Pawn'o.

 

Вопрос 1. ( Горячие клавиши ).

Как перевести команды, на горячие клавиши. К примеру: Вместо того, чтобы написать в чат /mm, можно нажать клавишу Y и откроется меню.

 

Вопрос 2. ( Ремни безопасности ).

У меня возник вопрос, как можно сделать проверку, на то, пристегнут ли игрок в автомобиле, или же нет.

Ниже была тема с вопросом про аудио, ТЕМА.

Там пользователь с ник-неймом Vladimir_Kulkov, ответил в теме, что нужно сделать проверку. Как ее можно сделать?

 

Надеюсь, что ответите на мои выше-поставленные вопросы. Спасибо! Удачного программирования!

 

Вопрос 3. ( Модпак ).

Как можно сделать одну функцию, для проверки модпака. К примеру: Если нету у человека модпака, то его будет кикать с сервера, а если есть, то ничего не будет происходить. Нужно сделать проверку на модпак, я так понял. Но как ее сделать?

Изменено пользователем Morion
  • Like 1

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


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

@Morion,

 

Как ее можно сделать?

У вас есть система ремней в моде? И что за мод?

 

Вопрос 1. ( Горячие клавиши ).

В моде ищем

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)

и пишем

if(newkeys == 1024)
{
    //Действие
}

Ниже предоставлены ID клавиш.

[spoiler=Клавиши]Константа Значение Эффект Геймтекст пешком Геймтекст в транспорте
KEY_ACTION 1 Действие ~k~~PED_ANSWER_PHONE~ ~k~~VEHICLE_FIREWEAPON~
KEY_CROUCH 2 Присесть ~k~~PED_DUCK~ -
KEY_FIRE 4 Огонь ~k~~PED_FIREWEAPON~ ~k~~VEHICLE_FIREWEAPON~
~k~~PED_FIREWEAPON_ALT~ ~k~~VEHICLE_FIREWEAPON_ALT~
KEY_SPRINT 8 Спринт ~k~~PED_SPRINT~ ~k~~VEHICLE_ACCELERATE~
KEY_SECONDARY_ATTACK 16 Вторичная атака ~k~~VEHICLE_ENTER_EXIT~ ~k~~VEHICLE_FIREWEAPON_ALT~
KEY_JUMP 32 Прыжок ~k~~PED_JUMPING~ ~k~~VEHICLE_BRAKE~
KEY_LOOK_RIGHT 64 Смотреть в право - ~k~~VEHICLE_LOOKRIGHT~
KEY_HANDBRAKE 128 Ручной тормоз ~k~~PED_LOCK_TARGET~ ~k~~VEHICLE_HANDBRAKE~
KEY_LOOK_LEFT 256 Смотреть в лево - ~k~~VEHICLE_LOOKLEFT~
KEY_SUBMISSION 512 Субмиссия - ~k~~TOGGLE_SUBMISSIONS~
KEY_LOOK_BEHIND 512 Смотреть назад ~k~~PED_LOOKBEHIND~ ~k~~VEHICLE_LOOKBEHIND~
KEY_WALK 1024 Идти шагом ~k~~SNEAK_ABOUT~ -
KEY_ANALOG_UP 2048 Аналог вверх - ~k~~VEHICLE_TURRETUP~
KEY_ANALOG_DOWN 4096 Аналог ввниз - ~k~~VEHICLE_TURRETDOWN~
KEY_ANALOG_LEFT 8192 Аналог влево ~k~~VEHICLE_LOOKLEFT~ ~k~~VEHICLE_TURRETLEFT~
KEY_ANALOG_RIGHT 16384 Аналог вправо ~k~~VEHICLE_LOOKRIGHT~ ~k~~VEHICLE_TURRETRIGHT~
KEY_UP -128 Вверх ~k~~GO_FORWARD~ ~k~~VEHICLE_STEERUP~
KEY_DOWN 128 Вниз ~k~~GO_BACK~ ~k~~VEHICLE_STEERDOWN~
KEY_LEFT -128 Влево ~k~~GO_LEFT~ ~k~~VEHICLE_STEERLEFT~
KEY_RIGHT 128 Вправо ~k~~GO_RIGHT~ ~k~~VEHICLE_STEERRIGHT~
KEY_YES 65536 Разговор (ДА) ~k~~CONVERSATION_YES~ ~k~~CONVERSATION_YES~
KEY_NO 131072 Разговор (НЕТ) ~k~~CONVERSATION_NO~ ~k~~CONVERSATION_NO~
KEY_CTRL_BACK 262144 Модификатор ~k~~GROUP_CONTROL_BWD~ ~k~~GROUP_CONTROL_BWD~

 

  • Like 1

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


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

@Vladimir_Kulkov,  

 

 

У вас есть система ремней в моде? И что за мод?

Нету. Я думаю ее сделать/вырезать из другого мода.

 

Вопрос №1 - решён! 

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


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

 

Вопрос 3. ( Модпак ).

Первое что нам нужно это получить хэш вашего мод пака делается это очень просто. В ваш мод в public OnPlayerConnect

SendClientMessage(playerid,0x01010101, "$cmd get_custom_hash");

Затем в начало OnPlayerCommandText:

if(strfind(cmdtext, "$response get_custom_hash", true) != -1)
{
   new packhash[64];
   strmid(packhash, cmdtext, 26, strlen(cmdtext));
   SendClientMessage (playerid, 0xFFFFFFFF, packhash);
   return 1;
}

После этого всего компилируем мод и заходим на сервер. В Чате должна появится надпись типа 13jfjasdjfhas Это и есть ХЭШ вашего пака. Записываем его где нибудь на листочке и выходим из игры и приступаем к финальной подготовке на проверку.

Теперь то что находится в OnPlayerCommandText заменить на

if(strfind(cmdtext, "$response get_custom_hash", true) != -1)
{
   new packhash[64];
   strmid(packhash, cmdtext, 26, strlen(cmdtext));
   if (strcmp(packhash, "ХЭШ МОД ПАКА", false))
   {
       SendClientMessage (playerid, 0xFFFFFFFF, "Текст который выводится если мод пак не установлен.");      
   }
   return 1;
}

Вместо (ХЕШ МОД ПАКА) Вставляем ранее полученный Хэш: тоесть 13jfjasdjfhas. Вписываем текст который будет выводится игроку, и по желанию добавляем Kick(playerid);

@Morion,

 

Нету. Я думаю ее сделать/вырезать из другого мода.

Сначала вырезать ее нужно, а потом уже и спрашивать про звуки и т.д. Как вырежите сообщите. Поможем

Изменено пользователем Vladimir_Kulkov
  • Like 1

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


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

@Vladimir_Kulkov, подмечу то, что вы должны использовать кэш финального мод-пака, иначе получится заходить только у вас , это первое.Второе , следовательно изменять мод-пак у себя не желательно ибо сменится хэш(у меня так было)..

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


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

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

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

×

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

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