Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 1 из 3 1 2 3 ПоследняяПоследняя
Показано с 1 по 10 из 21

Тема: 2 вопрос

  1. #1
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±

    2 вопрос

    Приветствую всех, уважаемый посетители Pro Pawn!
    И у меня, задалось 2 вопроса...
    1: Как сделать, что бы игрок не мог стрелять с машины?
    2: Как сделать, что бы после убийства наводила камерой на того игрока который, убил?

    Заранее спасибо.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    1) SetPlayerArmedWeapon на 0 при посадке в транспорт. И если игрок, убивший другого игрока, был в транспорте, можно смело банить за NOP (только нужно, соответственно, заблокировать выдачу оружия в транспорте)
    2) GetPlayerPos(killerid... + SetPlayerCameraLookAt(playerid...
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  3. #3
    Аватар для $continue$
    Пользователь

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    На счёт 1, понятного кроме проверки на НОП:
    PHP код:
    public OnPlayerStateChange(playeridnewstateoldstate)
    {
        if(
    newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
        {
            
    SetPlayerArmedWeapon(playerid,0);
        }
        
    /* NOP //
        if(newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGER)
        {
            SetPlayerArmedWeapon(playerid, > 0);
            KickNew(playerid);
        } */
        
    return 1;


    Как проверить, что больше 0?

    На счёт 2, попробую сделать

  4. #4
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    16 ±
    PHP код:
    public OnPlayerStateChange(playeridnewstateoldstate)
    {
        if(
    newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGERSetPlayerArmedWeapon(playerid,0);
        return 
    1;

    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
         if(
    GetPlayerState(killerid) ==  PLAYER_STATE_DRIVER || GetPlayerState(killerid) == PLAYER_STATE_PASSENGERKickNew(playerid);
         return 
    1;


  5. #5
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Цитата Сообщение от Flime Посмотреть сообщение
    PHP код:
    public OnPlayerStateChange(playeridnewstateoldstate)
    {
        if(
    newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGERSetPlayerArmedWeapon(playerid,0);
        return 
    1;

    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
         if(
    GetPlayerState(killerid) ==  PLAYER_STATE_DRIVER || GetPlayerState(killerid) == PLAYER_STATE_PASSENGERKickNew(playerid);
         return 
    1;

    Ход мыслей верный, но что если убийца задавит игрока? Или зарежет винтами вертолёта? Проверочку на оружие можно добавить в этом случае.

  6. #6
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    16 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Ход мыслей верный, но что если убийца задавит игрока? Или зарежет винтами вертолёта? Проверочку на оружие можно добавить в этом случае.
    PHP код:
    if(killerid == INVALID_PLAYER_ID) return 1
    - - - Добавлено - - -

    PHP код:
    public OnPlayerStateChange(playeridnewstateoldstate)
    {
        if(
    newstate == PLAYER_STATE_DRIVER || newstate == PLAYER_STATE_PASSENGERSetPlayerArmedWeapon(playerid,0);
        return 
    1;

    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
         if(
    killerid == INVALID_PLAYER_ID) return 1;  
         if(
    GetPlayerState(killerid) ==  PLAYER_STATE_DRIVER || GetPlayerState(killerid) == PLAYER_STATE_PASSENGERKickNew(playerid);
         return 
    1;


  7. #7
    Аватар для L0ndl3m
    Пользователь

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    И что ты этим сделал?

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    16 ±
    Ой, глупость написал...
    Вот верно.
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    killerid == INVALID_PLAYER_ID) return 1;
        if((
    GetPlayerState(killerid) ==  PLAYER_STATE_DRIVER || GetPlayerState(killerid) == PLAYER_STATE_PASSENGER)
        {
            switch(
    reason)
            {
                case 
    49,50,51: {}
                default: 
    KickNew(killerid);
            }
        }
        return 
    1;


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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    killerid != INVALID_PLAYER_ID && IsPlayerInAnyVehicle(killerid) && (<= reason <= 46)) return KickNew(playerid);
        return 
    1;

    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Ну или так:
    PHP код:
    if(IsPlayerInAnyVehicle(killerid) && !(49 <= reason <= 51))
        
    KickNew(killerid); 
    На одну проверочку меньше.
    Последний раз редактировалось L0ndl3m; 28.08.2014 в 14:06. Причина: ahead :/

 

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

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

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

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

Ваши права

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