Специальные действия

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Константы специальных действий, используемые в функцииях GetPlayerSpecialAction() и SetPlayerSpecialAction().

  • SPECIAL_ACTION_NONE - игрок не выполняет специальных действий (останавливает текущее спец. действие при использовании в SetPlayerSpecialAction());
  • SPECIAL_ACTION_DUCK - игрок пригнулся;
  • SPECIAL_ACTION_USEJETPACK - игрок использует джетпак;
  • SPECIAL_ACTION_ENTER_VEHICLE - игрок входит в транспортное средство;
  • SPECIAL_ACTION_EXIT_VEHICLE - игрок выходит из транспортного средства;
  • SPECIAL_ACTION_DANCE1 - танец #1 (анимации из библиотеки "WOP");
  • SPECIAL_ACTION_DANCE2 - танец #2 (библиотека "GFUNK");
  • SPECIAL_ACTION_DANCE3 - танец #3 ("бегущий человек"; библиотека "RUNNINGMAN");
  • SPECIAL_ACTION_DANCE4 - танец #4 (стриптиз; библиотека "STRIP");
  • SPECIAL_ACTION_HANDSUP - игрок поднял руки вверх;
  • SPECIAL_ACTION_USECELLPHONE - игрок взял в руки телефон;
  • SPECIAL_ACTION_SITTING - игрок сидит;
  • SPECIAL_ACTION_STOPUSECELLPHONE - игрок кладёт телефон в карман;
  • SPECIAL_ACTION_DRINK_BEER - игрок пьёт пиво;
  • SPECIAL_ACTION_SMOKE_CIGGY - игрок курит сигарету;
  • SPECIAL_ACTION_DRINK_WINE - игрок пьёт вино;
  • SPECIAL_ACTION_DRINK_SPRUNK - игрок пьёт Sprunk;
  • SPECIAL_ACTION_CUFFED - руки игрока загнуты за спину, как если закованы в наручники;
  • SPECIAL_ACTION_CARRY - игрок выставляет руки вперёд, как для переноса какого-либо предмета;
  • SPECIAL_ACTION_PISSING - игрок справляет малую нужду (константа не объявлена по умолчанию - см. прим.)


Info rhombus.png
Примечание
Действия SPECIAL_ACTION_DUCK, SPECIAL_ACTION_ENTER_VEHICLE и SPECIAL_ACTION_EXIT_VEHICLE только возвращаются функцией GetPlayerSpecialAction() и их нельзя использовать в SetPlayerSpecialAction().
Действия SPECIAL_ACTION_USECELLPHONE, SPECIAL_ACTION_STOPUSECELLPHONE и SPECIAL_ACTION_CUFFED лишают игрока возможности входить в транспорт, бегать спринтом, бить и стрелять из оружия. Кроме того, SPECIAL_ACTION_USECELLPHONE делает невозможными прыжки (при этом на сервер отправляется информация о нажатии клавиши прыжка).
Действие SPECIAL_ACTION_CARRY лишает игрока возможности входить в транспорт, бегать спринтом, бить, стрелять из оружия, а также прыгать (при этом информация о нажатии на клавишу прыжка не отправляется на сервер). Также SPECIAL_ACTION_CARRY может быть скомбинировано с SPECIAL_ACTION_USEJETPACK: у игрока будет джетпак, но он не сможет летать на нём.
Если к игроку, управляющему тепловозом/трамваем, применить действие SPECIAL_ACTION_CARRY, он не сможет управлять транспортом до тех пор, пока действие не будет сброшено (SPECIAL_ACTION_NONE). Если же к нему применить действие SPECIAL_ACTION_CUFFED, он не сможет ехать вперёд, но у него останется возможность сдавать назад.


Bug.png
Баг SA-MP
Константа SPECIAL_ACTION_PISSING не объявлена в a_samp.inc. Её можно объявить вручную следующим образом:
#if !defined SPECIAL_ACTION_PISSING
    const SPECIAL_ACTION_PISSING = 68;
#endif

Если с помощью SetPlayerSpecialAction() выдать игроку джетпак (SPECIAL_ACTION_USEJETPACK), а затем удалить его (SPECIAL_ACTION_NONE), звук от сопла джетпака останется у игрока до тех пор, пока он не умрёт. Чтобы решить данную проблему, необходимо перед сбросом действия (или активацией нового действия) также сбрасывать анимацию:
ClearAnimations(playerid);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_NONE);

Если у игрока скин #0 (CJ), для действий SPECIAL_ACTION_CUFFED и SPECIAL_ACTION_CARRY не будет работать анимация (руки игрока не будут вытянуты вперёд/загнуты за спину).



См. также: