Моддинг Помогите с "топ" системой

Тема в разделе "Создание и управление сервером", создана пользователем TXrus, 3 дек 2013.

  1. TXrus

    TXrus Пользователь

    Всем привет.
    Прошу помочь мне сделать систему "топ"(лучшие игроки, топ5 , как на ddrace ) для мода dm.
    Я не прошу давать мне весь код и инструкцию. Я только прошу помочь , "подтолкнуть" меня.( в каких файлах , и каким образом )
    C ddrace систему я сдирать не собираюсь ( т.к. там не так как надо )
     
  2. Matodor

    Matodor Гл. Администратор Команда форума

    1) Где-то нужно хранить очки игроков, в любом виде, хоть Name;Score, обновлять, загружать этот список.
    2) Из полученного списка создаешь список. Через массив не получиться, т.к неизвестно сколько игроков.
    3) Сортируешь этот список, как сортировать думаю сам найдешь.
    4) Выбираешь из списка, к примеру, 5 первых значений (если сортировал по уменьшению, то там будут 5) игроков с наибольшим количеством очков) выводишь через чат команду, опять же к примеру.

    Это было бы гораздо проще сделать, если бы у тебя данные хранились в SQL базе. Там наибольшие значения выводятся простым запросом. Как пример - http://mp.teeworlds.su/?page=lvltop
     
  3. TXrus

    TXrus Пользователь

    1) У меня есть файлы которые содержат эти lvl.
    2) Из каждого мне нужно прочитать одну строчку. как ? хоть с выводом из файла я знаком...
    3) С сортировкой вроде понятно.
    4) Потом...
    Про SQL я ничего не знаю и не умею с ней работать.
     
  4. Matodor

    Matodor Гл. Администратор Команда форума

    Ну тогда открываешь все файлы, и формируешь список из этих lvl.
    Было бы куда удобнее, если бы все lvl хранились в одном месте.
     
  5. TXrus

    TXrus Пользователь

    Вот как записать lvl в файл я знаю и как вывести, но я не знаю как записать lvl разных пользователе в один список, а потом выводить их.
     
  6. Matodor

    Matodor Гл. Администратор Команда форума

    Можно еще сделать так: создаешь новый фаил, в него записывать будешь всего 5 строчек, лвлы и имена игроков, проверяешь при добавлении больше ли очки игрока чем у любого другого из списка, заменяешь эту строчку. Так сразу получиться топ5.
    Из недостатков лишь то, что в топе не будет тех аккаунтов, которые не заходили в игру, но имеют больше очков.
     
  7. TXrus

    TXrus Пользователь

    пфф, для меня и такое сложно будет. Ладно... пойду учится.
     
  8. Matodor

    Matodor Гл. Администратор Команда форума

    Это просто, только кажется что сложно, возможно ты меня не так понял. Если что в скайп пиши.
     
  9. Spok

    Spok Спокуха

    При запуске сервера создается файл "top5.txt" к примеру, Аккаунт система выглядит как набор файлов в папке. Сервер пустой, то есть нету аккаунтов. При запуске сервера в переменную грузятся 5 значений(если они есть) из файла "top5.txt", при LVLUP или при убийстве(смотря что тебе надо) проверяется все 5 значений, если например 5 место занимал человек с 10 лвл, а ты получил 11 то ты вытесняешь его, и файл перезаписывается.
     
  10. Spok

    Spok Спокуха

    А если тебе надо уже существующюю базу прогнать в файл то сделай сначала чтобы по всем аккам проходился сервер и глядел.
     
  11. Matodor

    Matodor Гл. Администратор Команда форума

    Достаточно будет даже раз пройтись по всем, а потом просто перезаписывать обновленный топ.