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

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±

    Сортировка двумерного массива

    Привет.

    Допустим есть двумерный массив:

    PHP код:
    #define MAX_ATM 20

    enum aInfo
    {
        
    aID,
        
    Float:aPos_x,
        
    Float:aPos_y,
        
    Float:aPos_z
    };
    new 
    BankInfo[MAX_ATM][aInfo]; 
    Теперь нужно узнать самый ближайший банкомат к игроку. Координаты банкомата загружается в отдельном паблике, и хранится через MySQL плагин от BlueG (мб через запрос сортировать? Но затратно).

    Попробовал использовать Bubble Sort, не помогло

  2. #2
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    и хранится через MySQL плагин от BlueG (мб через запрос сортировать? Но затратно).
    ВАТ? Сортировка в sql запросе работает на порядок быстрее чем ты будешь прогонять массивы. Только зачем тебе это? есть же функция которая проверяет расстояние между координатами, используй его прогоняя массив с банкоматами и будет тебе счастье
    Лучше лишний раз показаться глупым и что то узнать, чем вы*бнуться и обосраться.

  3. #3
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Цитата Сообщение от qwezert Посмотреть сообщение
    ВАТ? Сортировка в sql запросе работает на порядок быстрее чем ты будешь прогонять массивы. Только зачем тебе это? есть же функция которая проверяет расстояние между координатами, используй его прогоняя массив с банкоматами и будет тебе счастье
    Название функции? Будет не фи, если игрок пофлудит с запросами

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

    Статус
    Оффлайн
    Регистрация
    02.08.2014
    Адрес
    г. Киров (aka Вятка)
    Сообщений
    1,487
    Репутация:
    276 ±
    Сортировка в MySQL реализована на каком нибудь x языке - оно работает быстрей, чем написанное на Pawn, но тут проблема в другом, что на счет пинга?
    Цитата Сообщение от qwezert Посмотреть сообщение
    ВАТ? Сортировка в sql запросе работает на порядок быстрее чем ты будешь прогонять массивы. Только зачем тебе это? есть же функция которая проверяет расстояние между координатами, используй его прогоняя массив с банкоматами и будет тебе счастье
    Value your freedom or you will lose it, teaches history. "Don't bother us with politics," respond those who don't want to learn. (c) Richard Stallman

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

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    зачем ты запросами флудишь?
    вызвал разок в начале, записал все координаты в массиве и прогнал циклом все банкоматы.
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    06.02.2017
    Сообщений
    123
    Репутация:
    16 ±
    Цитата Сообщение от $continue$ Посмотреть сообщение
    Сортировка в MySQL реализована на каком нибудь x языке - оно работает быстрей, чем написанное на Pawn, но тут проблема в другом, что на счет пинга?
    используем для сортировки SQLite - profit. Пинг - 0.
    MyProject:
    DriftEmpire©

    Ленивые всё делают быстро, чтобы поскорее избавиться от работы.
    И делают качественно, чтобы потом не переделывать.

  7. #7
    Аватар для Иван Бубнов
    Пользователь

    Статус
    Оффлайн
    Регистрация
    22.12.2015
    Сообщений
    157
    Репутация:
    8 ±
    Цитата Сообщение от vovandolg Посмотреть сообщение
    зачем ты запросами флудишь?
    вызвал разок в начале, записал все координаты в массиве и прогнал циклом все банкоматы.
    Потому что GetPlayerPos всегда выдает разные значения, то есть игроку достаточно ввести пару раз какую нибудь команду для поиска ближайшего банкомата, и сервер упадет (наверно)

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    Потому что GetPlayerPos всегда выдает разные значения, то есть игроку достаточно ввести пару раз какую нибудь команду для поиска ближайшего банкомата, и сервер упадет (наверно)
    На дворе 21 век. Хватит держать сервера на калькуляторах.
    Да и для кого антифлуд придумали? 3 строки прописать сложно?
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

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

    Steve Pavlina

  9. #9
    Аватар для vovandolg
    Пользователь

    Статус
    Оффлайн
    Регистрация
    17.11.2015
    Адрес
    Stavropol
    Сообщений
    1,369
    Репутация:
    113 ±
    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    Потому что GetPlayerPos всегда выдает разные значения, то есть игроку достаточно ввести пару раз какую нибудь команду для поиска ближайшего банкомата, и сервер упадет (наверно)
    При чём тут GetPlayerPos если ты спросил про запросы мускула))

    Цитата Сообщение от Иван Бубнов Посмотреть сообщение
    Теперь нужно узнать самый ближайший банкомат к игроку. Координаты банкомата загружается в отдельном паблике, и хранится через MySQL плагин от BlueG (мб через запрос сортировать? Но затратно).
    Я и ответил что сразу выгрузи с базы все данные и потом уже делай проверки всякие на то какой банкомат рядом и стоят ли они вообще рядом))
    [Anticheat]___Invisible Fly Hack
    [Anticheat]____Weapon/Ammo Hack
    [Function]______ResetPlayerWeaponSlot
    [Function]_______FIX_SetPlayerAmmo
    [ServerMod]______TDM | Zombie Apokalypse

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

    Статус
    Оффлайн
    Регистрация
    13.10.2015
    Сообщений
    516
    Репутация:
    21 ±
    Вот как на моем сервере это реализовано (+250 онлайн), и все прекрасно работает!

    PHP код:
    case ...:
    {
        new 
    min_id;
        new 
    Float:min_distance 99999.0;

        for(new 
    b<= TOTAL_BUSINESSb++) // Мой цикл на бизнесы
        
    {
            new 
    Float:distance GetPlayerDistanceFromPoint(playeridBusinessInfo[b][bEnterX], BusinessInfo[b][bEnterY], BusinessInfo[b][bEnterZ]);
            if (
    distance min_distance)
            {
                
    min_distance distance;
                
    min_id b;
            }
        }
        
    SetPlayerCheckpoint(playeridBusinessInfo[min_id][bEnterX], BusinessInfo[min_id][bEnterY], BusinessInfo[min_id][bEnterZ], 6.0);
        new 
    string[112];
        
    format(stringsizeof(string), "На карте отмечен ближайший бизнес - {FF9900}%s{FFFFFF}. Расстояние {FF9900}%0.2f м."BusinessInfo[min_id][bName], min_distance);
        
    SendClientMessage(playerid, -1string);
        return 
    true;


 

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

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

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

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

Ваши права

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