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

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

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

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

CSXSQL: Onlinetime Awards, не выдаёт привилегии

Статус пользователя hacker63
сообщение 13.12.2016, 0:25
Сообщение #1


Стаж: 13 лет

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

Всем привет, понравился плагин выдачи привилегий, но мне бы не по времени чтобы выдавал, а чисто по топу, как в top15 записано. Вот именно как там и нужно выдать первым 3м игрокам привилегии.

Соответственно я заменил CSXSQL_RANK_TIME на CSXSQL_RANK_DEF, поскольку статистика top15 ведется именно по этому принципу. Но привилегии всеравно не выдаются людям top3, подскажите, что не так?

Код:

/*
* CSXSQL Onlinetime Awards v. 0.2
* by serfreeman1337 http://1337.uz/
*/

#include <amxmodx>
#include <hamsandwich>
#include <csstatsx_sql>

#define PLUGIN "CSXSQL: Onlinetime Awards"
#define VERSION "0.2"
#define AUTHOR "serfreeman1337"

#define TOP 3 // Скольким игрокам из топа выдавать флаги?
#define IGNORE_FLAGS (ADMIN_MENU|ADMIN_LEVEL_H) // Не выдавать плюшки игрокам с этими флагами
#define GIVE_FLAGS (ADMIN_LEVEL_H|ADMIN_IMMUNITY) // Выдаваемые флаги

new top_ids[TOP] = -1

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Spawn,"player","PlayerSpawn",true)

}

public csxsql_initialized()
{
update_stats_cache()
get_stats_sql_thread(0,0,TOP,"TopPlayedTime",CSXSQL_RANK_DEF)
}

public PlayerSpawn(id)
{
if(!is_user_connected(id))
{
return
}

new flags = get_user_flags(id)

if(flags & IGNORE_FLAGS)
{
return
}

for(new i,db_id = get_user_stats_id(id) ; i < TOP ; i++)
{
if(top_ids[i] == db_id)
{
set_user_flags(id,flags | GIVE_FLAGS)
break
}
}
}

public TopPlayedTime(id,pos)
{
new index

while((index = get_stats_id(index,top_ids[index])))
{
if(index >= TOP)
break
}
}

Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя hacker63
сообщение 13.12.2016, 0:49
Сообщение #2


Стаж: 13 лет

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

Ребят, аномалия следующего характера: При изменении параметра CSXSQL_RANK_DEF на любой другой, например CSXSQL_RANK_K, то всё Ок отрабатывает. Но с DEF отказывается работать. Симптом никаких, в меню amx он работает, логи чистые, но привилегий не выдает.

Отредактировал: hacker63, - 13.12.2016, 0:50
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sunrise
сообщение 22.12.2016, 8:16
Сообщение #3
Стаж: 9 лет 8 месяцев

Сообщений: 60
Благодарностей: 14
Полезность: 179

Попробуй вместо CSXSQL_RANK_DEF указать 1337.


pick rylai pls
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя BaJIepbI4
сообщение 22.12.2016, 8:24
Сообщение #4


Стаж: 11 лет

Сообщений: 457
Благодарностей: 115
Полезность: 456

Статистика какой вресии стоит?



Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Nebo
сообщение 5.7.2017, 9:47
Сообщение #5


Стаж: 13 лет
Город: Казань

Сообщений: 3181
Благодарностей: 1015
Полезность: 701

Столкнулся с такой же проблемой, что в итоге нужно исправить?

Код:
/*
* CSXSQL Onlinetime Awards v. 0.2
* by serfreeman1337 1337.uz
*/

#include <amxmodx>
#include <hamsandwich>
#include <csstatsx_sql>

#define PLUGIN "CSXSQL: Onlinetime Awards"
#define VERSION "0.2"
#define AUTHOR "serfreeman1337"

#define TOP 3 // Скольким игрокам из топа выдавать флаги?
#define IGNORE_FLAGS (ADMIN_BAN|ADMIN_LEVEL_H) // Не выдавать плюшки игрокам с этими флагами
#define GIVE_FLAGS ADMIN_LEVEL_H // Выдаваемые флаги

new top_ids[TOP] = -1

public plugin_init()
{
register_plugin(PLUGIN,VERSION,AUTHOR)
RegisterHam(Ham_Spawn,"player","PlayerSpawn",true)

}

public csxsql_initialized()
{
update_stats_cache()
get_stats_sql_thread(0,0,TOP,"TopPlayedTime",CSXSQL_RANK_TIME)
}

public PlayerSpawn(id)
{
if(!is_user_connected(id))
{
return
}

new flags = get_user_flags(id)

if(flags & IGNORE_FLAGS)
{
return
}

for(new i,db_id = get_user_stats_id(id) ; i < TOP ; i++)
{
if(top_ids[i] == db_id)
{
set_user_flags(id,flags | GIVE_FLAGS)
break
}
}
}

public TopPlayedTime(id,pos)
{
new index

while((index = get_stats_id(index,top_ids[index])))
{
if(index >= TOP)
break
}
}


Отредактировал: Nebo, - 5.7.2017, 10:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя JIuXeP
сообщение 5.7.2017, 23:41
Сообщение #6


Стаж: 12 лет

Сообщений: 338
Благодарностей: 205
Полезность: 792

Nebo, Код:
#include <amxmodx>
#include <csstatsx_sql>

#define TOP 3 // Скольким игрокам из топа выдавать флаги?
#define IGNORE_FLAGS (ADMIN_MENU|ADMIN_LEVEL_H) // Не выдавать плюшки игрокам с этими флагами
#define GIVE_FLAGS ADMIN_LEVEL_H // Выдаваемые флаги

#define is_rank_valid(%0) (0 < %0 <= TOP)

public client_putinserver(id)
{
if(!is_user_connected(id))
return;

new flags = get_user_flags(id)

if(flags & IGNORE_FLAGS)
return;

// new rank = get_user_stats_sql(id, {0, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 0}); // hz..
new stats[8], bodyhits[8];
new rank = get_user_stats_sql(id, stats, bodyhits);

if(!is_rank_valid(rank))
return;

set_user_flags(id, GIVE_FLAGS);
}


Отредактировал: JIuXeP, - 7.7.2017, 2:06
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: