Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 2 1 2 ПоследняяПоследняя
Показано с 1 по 10 из 11
  1. #1
    Аватар для Osetin
    •Администратор•

    Статус
    Оффлайн
    Регистрация
    26.03.2013
    Адрес
    ♔Osetia, Vladikavkaz♔
    Сообщений
    3,430
    Репутация:
    1091 ±

    [GF] Установка шипов для полиции

    Полицейский командой /block устанавливает на дорогу шипы, прокалывающие колёса у проезжающих мимо машин. Чтобы убрать шипы, необходимо ввести команду заново.
    Для работы требуются:
    1. streamer
    2. ZCMD/DC_CMD
    3. foreach




    Ко всем new:
    PHP код:
    new spike_areas[MAX_PLAYERS];
    new 
    spike_objects[MAX_PLAYERS] = {0, ...}; 
    В самый конец мода:
    PHP код:
    CMD:block(playeridparams[])
    {
        if(!
    IsACop(playerid)) // Заменяем на свою проверку Полиции/ФБР
            
    return SendClientMessage(playerid, -1"Ошибка: Вы не состоите в Полиции/ФБР.");
        if(
    GetPlayerVirtualWorld(playerid) != || GetPlayerInterior(playerid) != 0)
            return 
    SendClientMessage(playerid, -1"Ошибка: Данную команду нельзя использовать в интерьере.");
        if(
    IsPlayerInAnyVehicle(playerid))
            return 
    SendClientMessage(playerid, -1"Ошибка: нельзя использовать в машине.");
        if(
    spike_objects[playerid] == 0)
        {
            new 
    Float:xFloat:yFloat:zFloat:a;
            
    GetPlayerPos(playeridxyz);
            
    GetPlayerFacingAngle(playerida);
            
    spike_objects[playerid] = CreateDynamicObject(2899xyz-0.800a);
            
    spike_areas[playerid] = CreateDynamicSphere(xyz7.0, -1, -1, -1);
            
    ApplyAnimation(playerid"BOMBER""BOM_Plant"4.101111);
            
    SendClientMessage(playerid0x0bda51FF"Вы установили шипы с дистанционным управлением.");
            return 
    SendClientMessage(playerid0x0bda51FF"Используйте команду {007fff}/block {0bda51}, чтобы дезактивировать их.");
        }
        else
        {
            
    DestroyDynamicObject(spike_objects[playerid]);
            
    spike_objects[playerid] = 0;
            
    DestroyDynamicArea(spike_areas[playerid]);
            return 
    SendClientMessage(playeridCOLOR_GREY"Шипы дезактивированы.");
        }

    Далее в колбэк OnPlayerEnterDynamicArea:

    PHP код:
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            foreach(new 
    i:Player)
            {
                if(
    areaid == spike_areas[i])
                {
                    new 
    panelsdoorslightstires;
                    
    GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panelsdoorslightstires);
                    
    UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), panelsdoorslights15);
                    break;
                }
            }
        } 
    При дисконнекте (OnPlayerDisconnect):
    PHP код:
        if(spike_objects[playerid] != 0)
        {
            
    DestroyObject(spike_objects[playerid]);
            
    DestroyDynamicArea(spike_areas[playerid]);
        } 
    Автор: codyO
    Доработка: Daniel_Cortez
    Последний раз редактировалось Daniel_Cortez; 25.07.2015 в 08:22. Причина: upd

  2. 5 пользователя(ей) сказали cпасибо:
    #Vito (02.03.2014) Desulaid (25.07.2015) Salvacore (03.03.2014) Unreal (13.08.2015) wAx (25.07.2015)
  3. #2
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Молодец, полезная тема.
    Последний раз редактировалось Salvacore; 18.02.2014 в 22:10.

  4. #3
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,145
    Репутация:
    2521 ±
    Обновлено.
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  5. #4
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Как трек называется? :3
    Skype: vitya.saveliev


  6. #5
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,474
    Репутация:
    1930 ±
    Система, мягко говоря, кривая. Например, spike_objects, не обнуляется при удалении объекта и из-за этого колёса всё равно будут прокалываться :(
    Связаться со мной в VK можно через личные сообщения этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. 2 пользователя(ей) сказали cпасибо:
    Daniel_Cortez (25.07.2015) Naemnik43 (05.09.2014)
  8. #6
    Аватар для Mihail_Chery*
    Пользователь

    Статус
    Оффлайн
    Регистрация
    08.01.2014
    Адрес
    Тульская область
    Сообщений
    2
    Репутация:
    0 ±
    Далее в колбэк OnPlayerEnterDynamicArea:

    А что делать если у меня нет такого "Колбэка"?

  9. #7
    Аватар для Salvacore
    Инжунер-погромист

    Статус
    Оффлайн
    Регистрация
    10.05.2013
    Адрес
    Аҧсуа бызшәа
    Сообщений
    2,271
    Репутация:
    418 ±
    Цитата Сообщение от Mihail_Chery* Посмотреть сообщение
    Далее в колбэк OnPlayerEnterDynamicArea:

    А что делать если у меня нет такого "Колбэка"?
    Создай.

  10. #8
    Аватар для =SAN=
    Пользователь

    Статус
    Оффлайн
    Регистрация
    20.01.2014
    Адрес
    Saint-Petersburg
    Сообщений
    88
    Репутация:
    33 ±
    Vito_Wayne, трек: Listen To Me, Looking At Me

  11. Пользователь сказал cпасибо:
    #Vito (05.03.2014)
  12. #9
    Аватар для #Vito
    #define

    Статус
    Оффлайн
    Регистрация
    14.09.2013
    Адрес
    Одесса
    Сообщений
    129
    Репутация:
    38 ±
    Цитата Сообщение от =SAN= Посмотреть сообщение
    Vito_Wayne, трек: Listen To Me, Looking At Me
    Благодарю :music2:

    - - - Добавлено - - -

    Цитата Сообщение от Mihail_Chery* Посмотреть сообщение
    Далее в колбэк OnPlayerEnterDynamicArea:

    А что делать если у меня нет такого "Колбэка"?
    PHP код:
    public OnPlayerEnterDynamicArea(playeridareaid)
    {
        if(
    GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            foreach(new 
    i:Player)
            {
                if(
    areaid == spike_areas[i])
                {
                    new 
    panelsdoorslightstires;
                    
    GetVehicleDamageStatus(GetPlayerVehicleID(playerid), panelsdoorslightstires);
                    
    UpdateVehicleDamageStatus(GetPlayerVehicleID(playerid), panelsdoorslights15);
                    break;
                }
            }
        }
        return 
    true;  

    Skype: vitya.saveliev


  13. #10
    Аватар для Daniel_Cortez
    "Это не хак, это фича"

    Статус
    Оффлайн
    Регистрация
    06.04.2013
    Адрес
    Novokuznetsk, Russia
    Сообщений
    2,145
    Репутация:
    2521 ±
    Таки обновил мануал. Устранён баг, из-за которого невозможно было поставить шипы более 1 раза. Спасибо DeimoS за то, что указал на проблему.
    Также динамические регионы теперь правильно удаляются при убирании шипов и не нагружают сервер.

    Заодно сделал объекты шипов динамическими, чтобы они не влияли на лимит. Всё равно в мануале требуется стример - так почему бы не использовать его возможности по полной?
    Индивидуально в ЛС по скриптингу не помогаю. Задавайте все свои вопросы здесь (click).

  14. 4 пользователя(ей) сказали cпасибо:
    Desulaid (25.07.2015) Joker_Fox (25.07.2015) Osetin (27.07.2015) [ForD] (25.07.2015)
 

 
Страница 1 из 2 1 2 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •