Помогите создать "Top list" - Форум Cheat-Master.ru
  • Страница 1 из 1
  • 1
Модератор форума: [CM]OlegEhtler, Getbackthere, Phoenixxx_Czar  
Форум » Pawno программирование SAMP » Вопросы | Проблемы » Помогите создать "Top list" (Помогите создать "Top list")
Помогите создать "Top list"
sLegendary Дата: Вторник, 15.08.2017, 22:13 | Сообщение # 1
Новичок
Сообщений: 9
Статус: Offline
Привет,хочу на свой сервер поставить "Топ игроков" который будет подсчитывать их деньги и дрифт очки.
Топ должен состоять из 20 человек. Помогите!
=) Дата: Среда, 16.08.2017, 09:53 | Сообщение # 2
Боец
Сообщений: 271
Статус: Offline
И в чем у тебя заключается проблема с реализацией такой простой системы?
sLegendary Дата: Среда, 16.08.2017, 11:10 | Сообщение # 3
Новичок
Сообщений: 9
Статус: Offline
Я не шарю
=) Дата: Среда, 16.08.2017, 12:54 | Сообщение # 4
Боец
Сообщений: 271
Статус: Offline
Тогда самый оптимальный вариант для твоего дрифт-сервера, это:

К переменным:
#define MAX_TOP_PLAYERS 20
new timer_top;
new top_list[MAX_TOP_PLAYERS ];

в public OnGameModeInit
Код
    
    if(timer_top != -1)
    {
        KillTimer(timer_top);
        timer_top = -1;
    }
    timer_top = SetTimer("Func_top", 60000, true);
    for(new i = 0; i<MAX_TOP_PLAYERS ; i++) top_list[i] = -1;


в public OnGameModeExit
Код

    if(timer_top != -1)
    {
        KillTimer(timer_top);
        timer_top = -1;
    }


в конец мода (желательно):
Код

forward Func_top();
public Func_top()
{
    new player = GetPlayerPoolSize();
    for(new i = 0; i<player; i++)
    {
        if(!IsPlayerConnected(i)) continue;
        else if(Login[i] != true) continue;
        
        for(new d = 0; d<MAX_TOP_PLAYERS ; d++)
        {
             if(top_list[d] != -1)
             {
                 if(Money[i] > Money[top_list[d]])
                 {
                     for(new t = d; t< MAX_TOP_PLAYERS ; t++)
                     {
                         if(t != (MAX_TOP_PLAYERS -1))
                         {
                             top_list[t+1] =  top_list[t];
                         }
                         else  top_list[d] = i;
                     }
                 }
             }
             else if(Money[i] > 0)
             {
                 top_list[d] = i;
                 break;
             }
        }
    }
    return 1;
}


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

new string[951],
        strformat[38];

for(new i = 0; i<MAX_TOP_PLAYERS ; i++)
{
    if(top_list[i] != -1)
    {
        if(!IsPlayerConnected(top_list[i])) continue;
        format(strformat, sizeof(strformat), "%s\t%i\n", Проверка на ник, top_list[i]);
        strcat(string, strformat);
    }
}
if(strlen(string)) ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX , "Список лидеров по деньгам", string, "Закрыть", ""):
else ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX , "Список лидеров по деньгам", "Нет лидеров", "Закрыть", ""):


Где 60000 = 10 минут, обновление списка раз в 10 минут. Можешь поставить 1000 - раз в секунду или сколько тебе нужно.
Money = переменная хранения денег игрока, вставляй свою.
Login = проверка на авторизацию, ставь свою.
MAX_TOP_PLAYERS = ставь количество, которое тебе нужно. Это количество игроков в топе.
По такому же принципу можешь создать список дрифтеров.
Пишу на сайте, возможны ошибки, так что бери лишь как пример для осмысления.


Сообщение отредактировал =) - Среда, 16.08.2017, 13:08
Форум » Pawno программирование SAMP » Вопросы | Проблемы » Помогите создать "Top list" (Помогите создать "Top list")
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума
Лучшие пользователи
Admin [39113]

GеNius [7209]

[CM]Russel [5557]

kenlo763 [4952]

[CM]AGRESSOR [4639]

Snake_Firm [4452]

Сэс [4416]

Artem_Buero [4223]

[CM]Durman [3204]

[CM]Рафаэль [3080]

iMaddy [2855]

sky_Woker [2854]

getrekt [2745]

Новые пользователи
123131312312314534 [13:41]

Pan40xxl [12:36]

chinazes000 [11:29]

donaldga2 [05:28]

rubenia18 [21:17]

pokotiloroman91 [18:24]

stephensh5 [12:00]

calliesv7 [06:11]

louqm16 [22:14]

artushak [16:32]

Kingpolker [15:42]

leeyv11 [15:12]

Trappa17 [01:00]