• Уважаемый Гость.
    - Прежде чем создать свою тему, пожалуйста, попробуй воспользоваться этим -> ПОИСКОМ !!!
    - После решения Вашего вопроса (проблемы) - нажмите "Лучший ответ", на сообщении, которое его решило. За игнорирование этого действия - Вы получите соответствующее предупреждение. Мы - стараемся Вам помочь. Уделите 10 секунд - чтобы нажать кнопку. (Если у Вас нет такой возможности - укажите в последнем своем сообщении какой ответ Вы считаете лучшим. Наши модераторы сделают это за Вас)
    ЗАПРЕЩЕНО:
    - Cоздавать темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп" и тому подобное;
    - Cоздавать темы без детального описания того, что нужно исправить.
    - Cоздавать темы из одного скриншота.
    За игнор правил форума - Ваша тема будет удалена, а Вы получите системное предупреждение.

Как сделать, чтобы игрок мог выбросить именно то оружие, которое у него в руках?

Статус
В этой теме нельзя размещать новые ответы.

ninth

Начинающий
Пользователь
Регистрация
9 Авг 2018
Сообщения
35
Лучшие ответы
0
Репутация
0
Есть функция, при выполнении которой, игрок выбрасывает всё оружие, которое у него есть. Но мне нужно, чтобы при исполнении функции игрок выбрасывал только то оружие, которое он держит. Вот код, который выбрасывает всё оружие. Надеюсь на помощь, ребят, буду благодарен.
Код:
DropWeapons( playerid )
{
    new Float: px, Float: py, Float: pz;
    new hour,minute,second;
    new year, month,day;
    gettime(hour, minute, second);
    getdate(year, month, day);

    GetPlayerPos( playerid, px, py, pz );

    new weapon_slots[WEAPON_SLOTS + 1][2];
    new used_weapon_slots;

    for( new i = 0; i < WEAPON_SLOTS; i ++ )
    {
        GetPlayerWeaponData( playerid, i, weapon_slots[ i ][ 0 ], weapon_slots[ i ][ 1 ]);
        if( i == 0 && weapon_slots[ i ][ 0 ] == 0 ) weapon_slots[ i ][ 1 ] = 0;

        if( weapon_slots[ i ][ 1 ] > 0 && weapon_slots[ i ][ 0 ] < sizeof( weapons ) && weapons[ weapon_slots[ i ][ 0 ] ] != -1 )
        {
            used_weapon_slots ++;
        }
        else
        {
            weapon_slots[ i ][ 0 ] = 0;
            weapon_slots[ i ][ 1 ] = 0;
        }
    }
    new used_weapon_slots2 = used_weapon_slots;
    for( new i = 0; i < WEAPON_SLOTS; i ++ )
    {
        if( weapon_slots[ i ][ 1 ] > 0 )
        {
            new Float:angle = 360.0 - float(used_weapon_slots--) * ( 360.0 / float(used_weapon_slots2) );

            new p = CreatePickup( weapons[ weapon_slots[ i ][ 0 ] ], PICKUP_TYPE, px + floatsin(angle,degrees) * (used_weapon_slots2/2 + 1.0), py + floatcos(angle,degrees) * (used_weapon_slots2/2 + 1.0), pz );
            if( p == INVALID_PICKUP )
            {
                new lowest_time;
                new _id;
                for( new j = 0; j < MAX_PICKUPS; j ++ )
                {
                    if( pickups[ j ][ creation_time ] < lowest_time )
                    {
                        lowest_time = pickups[ j ][ creation_time ];
                        _id = j;
                    }
                }

                DestroyPickupEx( _id );
                KillTimer( pickups[ _id ][ timer ] );

                p = CreatePickup( weapons[ weapon_slots[ i ][ 0 ] ], PICKUP_TYPE, px + floatsin(angle,degrees) * (used_weapon_slots2/2 + 1.0), py + floatcos(angle,degrees) * (used_weapon_slots2/2 + 1.0), pz );
            }
            pickups[ p ][ creation_time ] = mktime(hour,minute,second,day,month,year);
            pickups[ p ][ weapon ] = weapon_slots[ i ][ 0 ];
            pickups[ p ][ ammo ] = weapon_slots[ i ][ 1 ];
            #if MAX_DROP_AMOUNT != -1
            if( pickups[ p ][ ammo ] > MAX_DROP_AMOUNT )
            {
                pickups[ p ][ ammo ] = MAX_DROP_AMOUNT;
            }
            #endif
            pickups[ p ][ timer ] = SetTimerEx("DestroyPickupEx", MAX_DROP_LIFETIME * 1000, 0, "i", p);
        }
    }
}
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу