Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

Топ 15 богачей | получение максимальных значений

Статус пользователя Captain
сообщение 14.10.2017, 13:45
Сообщение #1
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Всем привет. Хочу сделать Топ15 богачей. Когда пишу в чате /info, должно в консоли сервера выйти 15 максимальных значений из файла сохранения. А у меня там всё по 0 выходит.



Моя проблема - не могу получить из файла сохранения 15 богачей, у которых самое многое кол-во аммо.

Cкрытый текст
Код:
#include <amxmodx>
#include <hamsandwich>
#include <fvault>

new g_ammo[33]
new get_authid[33][35]
new const g_vault_name[] = "ammo"

public plugin_init()
{
register_plugin("Top 15 Rich", "1.0", "Admin")
RegisterHam(Ham_Killed, "player", "fwd_killed", 1)
register_clcmd("say /i", "ammo_info")
// register_clcmd("say /top15", "ShowTop15")
}

public client_putinserver(id)
{
if(is_user_hltv(id) || is_user_bot(id)) return;
loading(id)
}

public client_disconnect(id)
{
if(g_ammo[id] > 0)
{
save(id)
g_ammo[id] = 0
}
}

loading(id)
{
new data[16]
if(fvault_get_data(g_vault_name, get_authid[id], data, 15))
{
g_ammo[id] = str_to_num(data)
}
}

save(id)
{
new data[16]
num_to_str(g_ammo[id], data, 15)
fvault_set_data(g_vault_name, get_authid[id], data)
}

public fwd_killed(victim, attacker)
{
if(!is_user_connected(attacker) || !is_user_connected(victim) || attacker == victim || !attacker)
{
return HAM_IGNORED
}

g_ammo[attacker]++

return HAM_IGNORED
}

/*
public ShowTop15(id)
{
if(!is_user_connected(id)) return;

new g_motd[1000]

new iLen = 0, iMax = charsmax(g_motd)
iLen = formatex(g_motd[iLen], iMax-iLen, "<meta charset=utf-8>")
iLen += formatex(g_motd[iLen], iMax-iLen, "<style>{font:normal 10px} table, th, td{border: 1px solid black;border-collapse:collapse;text-align:center;}")
iLen += formatex(g_motd[iLen], iMax-iLen, "</style><html><table width=100%%><thead><tr><th width=10%%>%s</th> <th width=50%%>%s</th><th width=20%%>%s</th><th width=20%%></th></tr></thead><tbody>", "#", "Nick", "Ammo")

new szName[32]

show_motd(id, g_motd, "Top 15")
}*/

public ammo_info(id)
{
new key[32], data[64], iMax

for(new i = 1; i <= 15; ++i)
{
fvault_get_data(g_vault_name, key, data, 63)

if(g_ammo[i] >= iMax)
{
iMax = g_ammo[i]
server_print("Data: %i", iMax)
}
}
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя daywer
сообщение 14.10.2017, 14:16
Сообщение #2


Стаж: 13 лет
Город: Санкт-Петербург


Сообщений: 136
Благодарностей: 121
Полезность: 1051

Используй Array,ArraySwap.(это уже для формирования лучших игроков по определённому значению)
старый пример плагина.
Прикрепленный файл  top_donat.sma ( 3,37 килобайт ) Кол-во скачиваний: 9

плагин плохой,но по все предельно ясно в нем.

Отредактировал: daywer, - 14.10.2017, 14:23


Написание плагинов на заказ.(sql,sqlite,nvault)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Captain
сообщение 14.10.2017, 15:00
Сообщение #3
Стаж: 12 лет

Сообщений: 251
Благодарностей: 7
Полезность: < 0

Цитата(daywer @ 14.10.2017, 15:16) *
Используй Array,ArraySwap.(это уже для формирования лучших игроков по определённому значению)
старый пример плагина.
Прикрепленный файл  top_donat.sma ( 3,37 килобайт ) Кол-во скачиваний: 9

плагин плохой,но по все предельно ясно в нем.

Спасибо. Вопрос. У меня там сохранение по стим айди. Как по стим айди можно определить ник, чтобы в топе был ник, а не стим айди
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя daywer
сообщение 14.10.2017, 23:35
Сообщение #4


Стаж: 13 лет
Город: Санкт-Петербург


Сообщений: 136
Благодарностей: 121
Полезность: 1051

Captain, использовать steamid + ник(сохранять ник при выходе).
Ну,еслу тебя продвинутая статистика которая пишет по steam_id и записывает ники.То сделать запрос в базу и получить ник.


Написание плагинов на заказ.(sql,sqlite,nvault)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: