Закрыть Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Тема: s_freeseat - свободное место в транспорте

Показано с 1 по 10 из 13

  1. #1
    Заблокирован

    Аватар для #Samurai

    Статус: Оффлайн
    Регистрация:16.09.2017
    Адрес:Не удалось определить
    Сообщений:439
    Репутация:372 [+/-] 

    s_freeseat - свободное место в транспорте

    Инклуд, позволяющий определить свободное место в транспорте.


    Автор: #Samurai aka un[x]pected
    Ссылка на загрузку и подробное описание: GitHub


    Функции:
    PHP код:
    GetVehicleFreeSeat(vehicleid)
    // vehicleid - ID транспортного средства, у которого нужно найти свободное место.
    // Возвращаемые значения: номер свободного места или -1, если такового нет. 


    Пример использования:
    PHP код:
    CMD:freeseat(playerid)
    {
        new 
    veh GetPlayerVehicleID(playerid);
        if(!
    veh) return 1;

        new 
    chatStr[20];
        
    format(chatStrsizeof(chatStr), "Свободное место: %i"GetVehicleFreeSeat(veh));
        
    SendClientMessage(playerid, -1chatStr);
        return 
    1;

    Последний раз редактировалось #Samurai; 07.07.2018 в 21:54.
  2. 5 пользователей сказали cпасибо #Samurai за это полезное сообщение:

    #Rips (08.07.2018), bullplex (07.07.2018), Iwka (07.07.2018), Salery (08.07.2018), Wallhacker (22.07.2018)

  3. #2
    Зарегистрированый

    Аватар для #keroz

    Статус: Оффлайн
    Регистрация:16.01.2018
    Сообщений:10
    Репутация:0 [+/-] 
    Полезно)
  4. #3
    Пользователь

    Аватар для Richie56

    Статус: Оффлайн
    Регистрация:01.05.2014
    Сообщений:569
    Репутация:187 [+/-] 
    братан, не проверяешь функцию GetPlayerVehicleSeat, она может вернуть 128

    PHP код:
    stock GetVehicleFreeSeat(vehicleid)
    {
        new 
    model GetVehicleModel(vehicleid);
        if(!
    model) return -1;
        new 
    seatidseats[9 char];
        
    #if defined _foreach_included
        
    foreach(new Player)
        
    #else
        
    for(new GetPlayerPoolSize(); >= 0v--)
        
    #endif
        
    {
            if(
    IsValidVehicle(v))
            {
                if(
    IsPlayerInVehicle(vvehicleid))
                {
                    
    seatid GetPlayerVehicleSeat(v);
                    if(
    seatid != 128seats{seatid} = 1;
                }
            }
        }
        for(new 
    iMaxSeats[model 400]; i++)
        {
            if(!
    seats{i}) return i;
        }
        return -
    1;

  5. #4
    /proger/

    Аватар для whale

    Статус: Оффлайн
    Регистрация:20.09.2013
    Сообщений:798
    Репутация:258 [+/-] 
    Релизить инклуд ради одной функции? Бред, как по мне. Стоило просто в раздел функций добавить.
  6. #5
    Заблокирован

    Аватар для #Samurai

    Статус: Оффлайн
    Регистрация:16.09.2017
    Адрес:Не удалось определить
    Сообщений:439
    Репутация:372 [+/-] 
    Релизить инклуд ради одной функции? Бред, как по мне. Стоило просто в раздел функций добавить.
    Та просто до некоторого момента там был совершенно другой код с перехватами функций и прочим, но я решил отказаться от этого бреда, сделал новый код и удалил коммиты.

    ---------- Сообщение добавлено в 16:19 ---------- Предыдущее сообщение добавлено в 16:19 ----------

    Обновил код инклуда.
  7. #6
    •Профик•

    Аватар для Nexius_Tailer

    Статус: Оффлайн
    Регистрация:19.05.2013
    Адрес:Гомель, Беларусь
    Сообщений:1,356
    Репутация:660 [+/-] 
    братан, не проверяешь функцию GetPlayerVehicleSeat, она может вернуть 128
    Не может. По крайней мере в актуальных версиях место делится с остатком на 64 (и даже послав читом его 128, сервер вернёт всё равно 128 % 64 = 0). Тем не менее код даже с этой проверкой не учитывает возвращаемые места 63 и около того, которые начинают занимать игроки, севшие в автобус (431 и 437 модели) на 8+ пассажирское место.

    И вот что действительно упущено:
    1. В примере с командой /freeseat нету в конце "return 1;";
    2. В функции GetVehicleFreeSeat не проверяется узнаваемая модель тачки на валидность (и хотя перед этим стоит проверка с IsValidVehicle, надёжнее и быстрее было бы сразу узнавать и проверять её модель на 0, и в таком случае уже обрывать код, перед тем как она подставляется в массив);
    3. Массив с количеством максимальных мест также имеет неправильные данные для некоторых моделей:

    Жёлтым - некорректные данные из твоего массива, зелёным - данные из fixes

    [Скрыть]

    Советую обновить его из fixes, там на данный момент он самый актуальный и корректный, насколько я знаю.
    Последний раз редактировалось Nexius_Tailer; 07.07.2018 в 19:25.

    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker
  8. #7
    Пользователь

    Аватар для Richie56

    Статус: Оффлайн
    Регистрация:01.05.2014
    Сообщений:569
    Репутация:187 [+/-] 
    Не может. По крайней мере в актуальных версиях место делится с остатком на 64 (и даже послав читом его 128, сервер вернёт всё равно 128 % 64 = 0). Тем не менее код даже с этой проверкой не учитывает возвращаемые места 63 и около того, которые начинают занимать игроки, севшие в автобус (431 и 437 модели) на 8+ пассажирское место.
    Не знал, пасиб.
    Насколько я знаю если 8 мест уже занято то игрок в автобус тупо не может сесть.
  9. #8
    Заблокирован

    Аватар для #Samurai

    Статус: Оффлайн
    Регистрация:16.09.2017
    Адрес:Не удалось определить
    Сообщений:439
    Репутация:372 [+/-] 
    Не может. По крайней мере в актуальных версиях место делится с остатком на 64 (и даже послав читом его 128, сервер вернёт всё равно 128 % 64 = 0). Тем не менее код даже с этой проверкой не учитывает возвращаемые места 63 и около того, которые начинают занимать игроки, севшие в автобус (431 и 437 модели) на 8+ пассажирское место.

    И вот что действительно упущено:
    1. В примере с командой /freeseat нету в конце "return 1;";
    2. В функции GetVehicleFreeSeat не проверяется узнаваемая модель тачки на валидность (и хотя перед этим стоит проверка с IsValidVehicle, надёжнее и быстрее было бы сразу узнавать и проверять её модель на 0, и в таком случае уже обрывать код, перед тем как она подставляется в массив);
    3. Массив с количеством максимальных мест также имеет неправильные данные для некоторых моделей:

    Жёлтым - некорректные данные из твоего массива, зелёным - данные из fixes

    [Скрыть]

    Советую обновить его из fixes, там на данный момент он самый актуальный и корректный, насколько я знаю.
    1. Упустил, когда на хабе набрасывал пример
    2. Особой разницы в скорости работы не увидел, точнее её вообще не было, так что не думаю, что в скорости GetVehicleModel будет лучше, а вот сам факт того, что по стандарту IsValidVehicle отсутствует а инклудах всё-таки подтолкнул меня заменить на GetVehicleModel
    3. Обновил
  10. #9
    •Профик•

    Аватар для Nexius_Tailer

    Статус: Оффлайн
    Регистрация:19.05.2013
    Адрес:Гомель, Беларусь
    Сообщений:1,356
    Репутация:660 [+/-] 
    2. Особой разницы в скорости работы не увидел, точнее её вообще не было, так что не думаю, что в скорости GetVehicleModel будет лучше, а вот сам факт того, что по стандарту IsValidVehicle отсутствует а инклудах всё-таки подтолкнул меня заменить на GetVehicleModel
    Честно говоря, я сам юзаю GetVehicleModel вместо IsValidVehicle зачастую только потому, что первая гарантированно будет объявлена нативом)
    А насчёт скорости я имел в виду единичное использование GetVehicleModel и запись её значения в переменную (для использования в проверке на валидность и как индекс для последующей подстановки в массив), что было бы более эффективно, чем использование двух функций. Хотя если по тестам существенной разницы нет, то и фиг с ним.

    ---------- Сообщение добавлено в 00:17 ---------- Предыдущее сообщение добавлено в 00:14 ----------

    А, у тебя уже так и реализовано, сразу не посмотрел

    Насколько я знаю если 8 мест уже занято то игрок в автобус тупо не может сесть.
    Я тестил с собейтом и самп аддоном, тогда сесть смог более чем на 8 место, потому утверждать за чистую игру не могу. Но тем не менее даже на онлайне стал замечать кики игроков античитом за странные места в автобусах, а они, как оказалось, просто садились уже в заполненный автобус, после чего добавил именно их в исключение.

    Интересно будет перепроверить это кому-то и на чистой игре, думаю также в интересах и автора данного инклуда xD

    Не хотите постоянно проверять обновления моих скриптов?
    Подключите его последним, после всех остальных
    Nexius's Update Checker
  11. #10
    Заблокирован

    Аватар для Wallhacker

    Статус: Оффлайн
    Регистрация:09.06.2018
    Сообщений:278
    Репутация:83 [+/-] 
    Неплохо
Страница 1 из 2 12 Последняя
  • К странице:

Пользователи, которые читали эту тему: 83

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
В обязанности Администрации не входит контроль легальности или нелегальности передаваемой информации (любой, включая, но не ограничиваясь, информацией передаваемой между пользователями, внутренней пересылки информации в виде различных ссылок, текстов или архивов), определение прав собственности или законности передачи, приема или использования этой информации.
Администрация не несёт никакой ответственности за пользователей и модер состав форума!
читы хаки samp-rp advanvce скачать pawn скриптинг моды скрипты гарант s0beit cs 1.6 0.3x читы World of Tanks Баги samp-rp,читы samp-rp,аккаунты самп-рп Скриптинг PAWNO SA-MP IV-MP MTA уроки помощь создание сервер моды скрипты плагины cleo читы читинг собейт s0beit sobeit моды для sa-mp скрипты для sa-mp pawno скриптинг pawno скрипты pawno моды iv-mp скриптинг iv-mp скрипты iv-mp моды мод godfather Моды SAMP как установить машины для gta 4 Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather rp roleplay samp-rp скачать бесплатно создать sa-mp сервер создать мод sa-mp создать скрипт в pawno gta-iv gta-v gta-sa gta-3 gta-III gta-4 gta-5 gta-vc mta mta-dm mta-race mta-sa pawno инфо info информация ru помощь в pawno ошибки pawno сервер павно gta-iv крэк gta-iv патч gta-v демо gta-v трейлер gta-iv keygen скрипты gta sa gta 4 multiplayer gta san adnreas multiplayer sa-mp forum форум о sa-mp форум о pawno русский sa-mp русское pawno русификатор реклама раскрутка сервера пиар сервера sa-mp мониторинг gta-sa ошибки в pawno pawno errors sa-mp 0.3c SA-MP 0.3d Играть в гта по сети моды для сампа скрипты самп Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather Все моды SAMP у нас взлом вк hack rat android instagram twitter хак хакер лайфхак рынок продажа ddos защита услуги администратор root linux ubuntu mac android андроид прошивка без ограничений advance arizona читы 4g безлимит