• Страница 1 из 1
  • 1
Модератор форума: admin, TweIk  
Создаем смену оружия в ТС
adminДата: Вторник, 21.12.2010, 17:11:01 | Сообщение # 1

Группа: Администраторы
Сообщений: 3869
sk472009 сообщил, что вскоре выложит такую фичу, немного подождав решил написать ее сам.

Описание: Оружие в ТС меняется на любое доступное для стрельбы, кулак - сесть обратно в машину (порой не садится, а просто убирается прицел и оружие при смене на кулак, но всеравно фича будет функционировать нормально, но анимка остается). Еще один маленький минус - возможных видов оружия для стрельбы 5 + кулак, так вот, если у Вас например 2 оружия: дигл, м4, то Вам нужно будет еще менять 3 раза на дробовик, пистолет-пулемет, винтовку, т.к. их нет, то будет кулак, т.е. так: кулак, дигл, кулак, кулак, м4, кулак и по новой.

Примечание: Данная фича будет работать только на серверах SA-MP 0.3c RC4+

Создадим одномерный массив, который упорядочит смену оружия в ТС для каждого игрока в верху кода:

Code

new InCarWeaponChange[MAX_PLAYERS];  

Далее перейдем в паблик OnPlayerStateChange и сделаем, чтобы когда игрок менял статус (пешеход/водитель/пассажир) нашему массиву присваивалось значение, делается это для того же упорядочивания выбора оружия:
Code

public OnPlayerStateChange(playerid, newstate, oldstate)
{
     if(GetPlayerWeapon(playerid) >= 0 && GetPlayerWeapon(playerid) <= 21 || GetPlayerWeapon(playerid) <= 35
     && GetPlayerWeapon(playerid) <= 46)
     {
         InCarWeaponChange[playerid] = 0;
     }
     else
     {
     if(GetPlayerWeapon(playerid) >= 22  && GetPlayerWeapon(playerid) <= 24)
     {
         InCarWeaponChange[playerid] = 1;
     }
     if(GetPlayerWeapon(playerid) >= 25  && GetPlayerWeapon(playerid) <= 27)
     {
         InCarWeaponChange[playerid] = 2;
     }
     if(GetPlayerWeapon(playerid) == 28 || GetPlayerWeapon(playerid) == 29 || GetPlayerWeapon(playerid) == 32)
     {
         InCarWeaponChange[playerid] = 3;
     }
     if(GetPlayerWeapon(playerid) == 30 || GetPlayerWeapon(playerid) == 31)
     {
         InCarWeaponChange[playerid] = 3;
     }
     if(GetPlayerWeapon(playerid) == 33 || GetPlayerWeapon(playerid) == 34)
     {
         InCarWeaponChange[playerid] = 4;
     }
     }
     return 1;
}

Затем переходим в паблик OnPlayerKeyStateChange, чтобы назначить на клавиши "газ" и "тормоз" смену оружия для пассажира в нужной нам последовательности:
Code

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
     if(newkeys == 8)
     {
         if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
         {
             if(InCarWeaponChange[playerid] == 0)
             {
                 SetPlayerArmedWeapon(playerid, 22);
                 InCarWeaponChange[playerid] = 1;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 1)
             {
                 SetPlayerArmedWeapon(playerid, 25);
                 InCarWeaponChange[playerid] = 2;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 2)
             {
                 SetPlayerArmedWeapon(playerid, 28);
                 InCarWeaponChange[playerid] = 3;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 3)
             {
                 SetPlayerArmedWeapon(playerid, 30);
                 InCarWeaponChange[playerid] = 4;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 4)
             {
                 SetPlayerArmedWeapon(playerid, 33);
                 InCarWeaponChange[playerid] = 0;
                 return 1;
             }
         }
     }
     if(newkeys == 32)
     {
         if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
         {
             if(InCarWeaponChange[playerid] == 0)
             {
                 SetPlayerArmedWeapon(playerid, 33);
                 InCarWeaponChange[playerid] = 1;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 1)
             {
                 SetPlayerArmedWeapon(playerid, 30);
                 InCarWeaponChange[playerid] = 2;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 2)
             {
                 SetPlayerArmedWeapon(playerid, 28);
                 InCarWeaponChange[playerid] = 3;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 3)
             {
                 SetPlayerArmedWeapon(playerid, 25);
                 InCarWeaponChange[playerid] = 4;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 4)
             {
                 SetPlayerArmedWeapon(playerid, 22);
                 InCarWeaponChange[playerid] = 0;
                 return 1;
             }
         }
     }
     return 1;
}

Автор:sk472009


zm-jail.ru

Разработка сайта samp-pawno.ru


 
Сообщениеsk472009 сообщил, что вскоре выложит такую фичу, немного подождав решил написать ее сам.

Описание: Оружие в ТС меняется на любое доступное для стрельбы, кулак - сесть обратно в машину (порой не садится, а просто убирается прицел и оружие при смене на кулак, но всеравно фича будет функционировать нормально, но анимка остается). Еще один маленький минус - возможных видов оружия для стрельбы 5 + кулак, так вот, если у Вас например 2 оружия: дигл, м4, то Вам нужно будет еще менять 3 раза на дробовик, пистолет-пулемет, винтовку, т.к. их нет, то будет кулак, т.е. так: кулак, дигл, кулак, кулак, м4, кулак и по новой.

Примечание: Данная фича будет работать только на серверах SA-MP 0.3c RC4+

Создадим одномерный массив, который упорядочит смену оружия в ТС для каждого игрока в верху кода:

Code

new InCarWeaponChange[MAX_PLAYERS];  

Далее перейдем в паблик OnPlayerStateChange и сделаем, чтобы когда игрок менял статус (пешеход/водитель/пассажир) нашему массиву присваивалось значение, делается это для того же упорядочивания выбора оружия:
Code

public OnPlayerStateChange(playerid, newstate, oldstate)
{
     if(GetPlayerWeapon(playerid) >= 0 && GetPlayerWeapon(playerid) <= 21 || GetPlayerWeapon(playerid) <= 35
     && GetPlayerWeapon(playerid) <= 46)
     {
         InCarWeaponChange[playerid] = 0;
     }
     else
     {
     if(GetPlayerWeapon(playerid) >= 22  && GetPlayerWeapon(playerid) <= 24)
     {
         InCarWeaponChange[playerid] = 1;
     }
     if(GetPlayerWeapon(playerid) >= 25  && GetPlayerWeapon(playerid) <= 27)
     {
         InCarWeaponChange[playerid] = 2;
     }
     if(GetPlayerWeapon(playerid) == 28 || GetPlayerWeapon(playerid) == 29 || GetPlayerWeapon(playerid) == 32)
     {
         InCarWeaponChange[playerid] = 3;
     }
     if(GetPlayerWeapon(playerid) == 30 || GetPlayerWeapon(playerid) == 31)
     {
         InCarWeaponChange[playerid] = 3;
     }
     if(GetPlayerWeapon(playerid) == 33 || GetPlayerWeapon(playerid) == 34)
     {
         InCarWeaponChange[playerid] = 4;
     }
     }
     return 1;
}

Затем переходим в паблик OnPlayerKeyStateChange, чтобы назначить на клавиши "газ" и "тормоз" смену оружия для пассажира в нужной нам последовательности:
Code

public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
     if(newkeys == 8)
     {
         if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
         {
             if(InCarWeaponChange[playerid] == 0)
             {
                 SetPlayerArmedWeapon(playerid, 22);
                 InCarWeaponChange[playerid] = 1;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 1)
             {
                 SetPlayerArmedWeapon(playerid, 25);
                 InCarWeaponChange[playerid] = 2;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 2)
             {
                 SetPlayerArmedWeapon(playerid, 28);
                 InCarWeaponChange[playerid] = 3;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 3)
             {
                 SetPlayerArmedWeapon(playerid, 30);
                 InCarWeaponChange[playerid] = 4;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 4)
             {
                 SetPlayerArmedWeapon(playerid, 33);
                 InCarWeaponChange[playerid] = 0;
                 return 1;
             }
         }
     }
     if(newkeys == 32)
     {
         if(GetPlayerState(playerid) == PLAYER_STATE_PASSENGER)
         {
             if(InCarWeaponChange[playerid] == 0)
             {
                 SetPlayerArmedWeapon(playerid, 33);
                 InCarWeaponChange[playerid] = 1;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 1)
             {
                 SetPlayerArmedWeapon(playerid, 30);
                 InCarWeaponChange[playerid] = 2;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 2)
             {
                 SetPlayerArmedWeapon(playerid, 28);
                 InCarWeaponChange[playerid] = 3;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 3)
             {
                 SetPlayerArmedWeapon(playerid, 25);
                 InCarWeaponChange[playerid] = 4;
                 return 1;
             }
             if(InCarWeaponChange[playerid] == 4)
             {
                 SetPlayerArmedWeapon(playerid, 22);
                 InCarWeaponChange[playerid] = 0;
                 return 1;
             }
         }
     }
     return 1;
}

Автор:sk472009

Автор - admin
Дата добавления - 21.12.2010 в 17:11:01
  • Страница 1 из 1
  • 1
Поиск:
Загрузка страницы, займет меньше минуты...
Загрузка...

Статистика Форума
Последнии темы Читаемые темы Лучшие пользователи Новые пользователи
Система телефонов поломалась
Не в себе
фильм скалайн
Трансформеры 3
форсаж 6
Ищу [FS]Для админок на сервер
нужны координаты карты для отметки зон...
Помогите найти мод
pawno урок автоматические ворота
обращение к скриптерам.
Вопросы по скриптингу
Ваши ошибки при компиляции GM/FS

Вопросы по скриптингу

(1081)

Считаем до 1000

(274)

Ваши ошибки при компиляция gm

(260)

Набор в команду

(80)

Ваши ошибки при компиляции GM/FS

(71)

вопроосы по скриптингу от 22.04.2013

(64)

Баннеробмен

(64)

несколько команд на samp 0.3 c

(64)

Оценки сайта samp-pawno.ru

(55)

Заказ хостинга

(51)

Набор в команду(форум)

(45)

Урок №61 по созданию системы авто для GodFather

(45)

admin

(3869)

[east_side]_trane

(443)

TWiX

(316)

valych

(501)

drifter-dron

(477)

danik_rok

(317)

Dimka_71rus

(360)

Drifter96

(300)

MaNb9K

(220)

[MTA]MaPeR5518

(181)

Dima_Tkach

(107)

Nik_Ull

(184)

system32xzxz

(Четверг 09:25:24)

torbin169

(Суббота 23:09:29)

kuchuk_00

(Суббота 17:10:14)

artem_boyko_3

(Суббота 15:57:37)

greggelbak

(Среда 18:29:37)

vladisvlavs

(Среда 13:51:57)

add02102002

(Понедельник 22:37:15)

Диман221

(Понедельник 18:12:45)

almas051004

(Воскресенье 11:05:32)

megasuccessms

(Суббота 14:15:36)

nawe

(Пятница 22:25:23)

swoysb

(Пятница 14:55:29)

Вверх
22:08:53
ОбновитьСмайлыУправление мини-чатом
ЧАТ-PAWNO
2010-2025

vkontakte :samp-pawno.ru: