Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Страница 1 из 3 123 ПоследняяПоследняя
Показано с 1 по 10 из 21

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

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

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

    2 вопрос

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

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

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

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

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

    Steve Pavlina

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,441
    Репутация:
    261 ±
    На счёт 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
    Репутация:
    15 ±
    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
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    Цитата Сообщение от 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
    Репутация:
    15 ±
    Цитата Сообщение от 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
    Аватар для Londlem
    Модератор

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

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

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Ой, глупость написал...
    Вот верно.
    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
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    PHP код:
    public OnPlayerDeath(playeridkilleridreason)
    {
        if(
    killerid != INVALID_PLAYER_ID && IsPlayerInAnyVehicle(killerid) && (<= reason <= 46)) return KickNew(playerid);
        return 
    1;

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

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

    Steve Pavlina

  10. #10
    Аватар для Londlem
    Модератор

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

 

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

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

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

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

Ваши права

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