• Пожалуйста, создайте название темы отражающее ее смысл
  • Для ускорения решения Вашего вопроса заполните обязательные поля и подробно опишите возникшую проблему

Помощь Выдача флагов через натив cmsapi_add_account

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43
Снова всем привет.

И снова нужна ваша помощь, вы уж простите :oops:

использовал натив:

C++:
/** Добаление аккаунтов в базу данных
*    @iClient - индекс игрока
*    @szAuthType[] - тип авторизации (смотри amxconst.inc: Admin authentication behavior flags)
*    @szFlags[] - флаги (уровни) доступа (смотри amxconst.inc: Admin level constants)
*    @iTime - время в минутах, 0- навсегда (если время не указано, значит 0)
*    @szPasswd[] - пароль доступа (если нужен)
*    @iServiceId - номер услуги на сайте
*    @check_params - проверка введенных данных (true- включить). При отключеной функции все косяки при добавлении- ваши косяки)
*    cmsapi_add_account(id, "a", "180", "parol", "prt", 0, false)
*    (игроку №id с его ником выданы флаги "prt" на 180 минут, пароль- "parol") кикнет его нафиг после добавления в базу)
*/
native cmsapi_add_account(iClient, szAuthType[], iTime = 0,  szPasswd[] = "", szFlags[] = "", iServiceId = 0, check_params = false)

Вот так выглядит мой кейс:

C++:
case 0:
        {

            cmsapi_add_user_money(id, -cost_vip);

            //cmsapi_set_user_flags(id, "t", -1, "Вип привилегия", false);

            cmsapi_add_account(id, "ce", 86400,  "", "t", 3, true)

            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM,"!g[ !t%s !g] !yВы купили !t[ !gВип !t] !yна !t[ !gКарту !t]", chattag);
            PrintChatColor(id, PRINT_COLOR_PLAYERTEAM,"!g[ !t%s !g] !yЧто бы открыть Вип меню напишите в консоли !t[ !gvipmenu !t]", chattag);

            log_to_file("Privilegie_Shop.log", "[ Privilegie Shop ] Игрок %s купил привилеги [ Вип ] на карту.", name);        // Записываем в лог что купил игрок

        }

Создаю привилегию с флагом t на 24 часа с авторизацией "ce" - по SteamID.

Аккаунт привилегии в админ центре создается, но вот только пустой и там только одна запись - это SteamID игрока и все ( Показал на скриншотах ).

На сервере так же флагов никаких не выдается.

В исходнике gamecms_api_5.2.9 дефайн "#define ADD_ADMIN" включил и на сервер перезалил.

Подскажите пожалуйста как это можно исправить?

Исходник прикрепил.

1.PNG

2.PNG
 

Вложения

  • 2.PNG
    2.PNG
    39.3 KB · Просмотры: 16
  • privilegie_shop.sma
    7.8 KB · Просмотры: 7

zhorzh78

Администратор
Сообщения
2,713
Решения
14
Реакции
1,081
Баллы
113
@D1m0n41k, В инклуде _addadmin.inl нужно исправить имя таблицы

2018-12-30_13-51-52.png
 

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43
@zhorzh78, понял, поменять нужно admins_services на admins__services, но только ничего не поменялось все равно так же создается пустая запись со SteamID и без флагов
 

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43
@zhorzh78, Это все логи связанные с API

C++:
L 12/30/2018 - 11:49:20: -------- Mapchange to de_dust2_2x2 --------
L 12/30/2018 - 11:49:21: [csx_easy_stats.amxx] Pruned 5 players of csstats.dat

L 12/30/2018 - 11:49:21: [gamecms_api_5.2.9.amxx] Соединение с базой данных GameCMS установлено
L 12/30/2018 - 11:49:21: [gamecms_api_5.2.9.amxx] SELECT `a`.`id`,cast(convert(`a`.`name` using utf8)as binary) as `auth`,`pass`,COALESCE(REPLACE(`ad`.`rights_und`,'none',`s`.`rights`),`ad`.`rights_und`) AS `flags`,`a`.`type`,`ending_date` as `expired`,`ad`.`service`,`service_time`,`a`.`active`,`a`.`pause`,cast(convert(`s`.`name` using utf8)as binary) as `service_name`,cast(convert(`cause` using utf8) as binary) as `cause`, UNIX_TIMESTAMP(`ending_date`) as `expunix`, UNIX_TIMESTAMP(NOW()) as `nowunix`  FROM `admins` a LEFT JOIN `admins__services` ad ON `ad`.`admin_id`=`a`.`id`LEFT JOIN `servers` sr ON `server`=`sr`.`id` LEFT JOIN `services` s ON `ad`.`service`=`s`.`id`WHERE `sr`.`id` = '1' AND (UNIX_TIMESTAMP(`ending_date`) > UNIX_TIMESTAMP(NOW()) OR `ending_date` = '0000-00-00 00:00:00')
L 12/30/2018 - 11:49:21: [aes_bonus_system.amxx] [ERROR] can't find function "roundBonus_GiveArmor" on line 201
L 12/30/2018 - 11:49:21: [gamecms_api_5.2.9.amxx] Загружено из базы данных: услуг по флагам 11 шт. / других услуг: 4 шт.
L 12/30/2018 - 11:49:22: [gamecms_api_5.2.9.amxx] Поиск услуг по флагам... "<|Wolf|><STEAM_1:0:1406177420>" (аккаунт "|Wolf|": 413) (флаги "st") (услуга "Вип привилегия") (истекает "2019-01-13 13:35:06")
L 12/30/2018 - 11:49:22: [gamecms_api_5.2.9.amxx] Авторизация... "<|Wolf|><STEAM_1:0:1406177420>" (аккаунт "|Wolf|" / id= 413) (флаги "st") (услуга "Вип привилегия") (истекает "2019-01-13 13:35:06")
L 12/30/2018 - 11:49:24: [gamecms_present_core_183.amxx] [STATUS] The plugin is successfully activated
L 12/30/2018 - 11:49:25: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:1635494846' OR `users`.`steam_id` = '76561199984243332' OR `users`.`steam_api` = '76561199984243332');
L 12/30/2018 - 11:49:25: [lite_translit.amxx] LT client_putinserver
L 12/30/2018 - 11:49:26: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:1406177420' OR `users`.`steam_id` = '765611991852089112' OR `users`.`steam_api` = '765611991852089112');
L 12/30/2018 - 11:49:26: [lite_translit.amxx] LT client_putinserver
L 12/30/2018 - 11:49:26: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:1222123279' OR `users`.`steam_id` = '76561199182389007' OR `users`.`steam_api` = '76561199182389007');
L 12/30/2018 - 11:49:26: [lite_translit.amxx] LT client_putinserver
L 12/30/2018 - 11:49:27: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:349076060' OR `users`.`steam_id` = '76561197960265728' OR `users`.`steam_api` = '76561197960265728');
L 12/30/2018 - 11:49:27: [lite_translit.amxx] LT client_putinserver
L 12/30/2018 - 11:49:27: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:1893013351' OR `users`.`steam_id` = '76561197960265728' OR `users`.`steam_api` = '76561197960265728');
L 12/30/2018 - 11:49:27: [lite_translit.amxx] LT client_putinserver
L 12/30/2018 - 11:49:27: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:309531979' OR `users`.`steam_id` = '76561198579329686' OR `users`.`steam_api` = '76561198579329686');
L 12/30/2018 - 11:49:27: [lite_translit.amxx] LT client_putinserver
L 12/30/2018 - 11:49:28: [gamecms_api_5.2.9.amxx] Searching user..- SELECT `users`.`id`, cast(convert(`users`.`login` using utf8) as binary) as `login`, cast(convert(`users`.`name` using utf8) as binary)as `name`, `birth`, `regdate`, `thanks`, `answers`, `proc`, `last_activity`, `reit`,`users`.`shilings`, cast(convert(`users`.`nick` using utf8) as binary) as `nick`, `game_time`, cast(convert(`users`.`prefix` using utf8) as binary) as `prefix` , `game_money` ,(SELECT COUNT(*) FROM `pm__dialogs` WHERE (`user_id1`=`users`.`id` or `user_id2`=`users`.`id`) AND (`new`=`users`.`id` or`new`='r'+`users`.`id`)) AS `new_messages`, cast(convert(`users__groups`.`name` using utf8) as binary) as `group_name`, `users`.`rights`FROM `users` LEFT JOIN `users__groups` ON `users`.`rights`=`users__groups`.`id` WHERE (`users`.`steam_id` = 'STEAM_1:0:1620769819' OR `users`.`steam_id` = '76561199581035547' OR `users`.`steam_api` = '76561199581035547');
L 12/30/2018 - 11:49:28: [lite_translit.amxx] LT client_putinserver
 

zhorzh78

Администратор
Сообщения
2,713
Решения
14
Реакции
1,081
Баллы
113
@D1m0n41k, Попробуйте предоставлять логи, которые были записаны во время выполнения каких-то действий. Например, во время добавления своих админов, которые не добавляются.
 

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43

Вложения

  • L20181230.zip
    3.5 KB · Просмотры: 3

zhorzh78

Администратор
Сообщения
2,713
Решения
14
Реакции
1,081
Баллы
113
@D1m0n41k,
Вы указали номер услуги "3" при вызове натива.
В столбец rights_und не может записывать нулевые значения.
Это означает, что скорее всего, нет указанной услуги на данном сервере.
Выполните в БД и посмотрите ответ:
SELECT `rights` FROM `services` WHERE `services`.`id` = '3' AND `server` = '1'
 

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43
@zhorzh78, Вернулся пустой результат

MySQL вернула пустой результат (т.е. ноль строк). (Запрос занял 0.0005 сек.)

Снимок.PNG

2.PNG
 

zhorzh78

Администратор
Сообщения
2,713
Решения
14
Реакции
1,081
Баллы
113
@D1m0n41k, Тут #3 порядковый, скорее всего. В то время, как требуется указать id услуги из базы. В вашем варианте лучше не указывать номер услуги в нативе. Укажите только флаг.
Так cmsapi_add_account(id, "ce", 86400, "", "t", 0, true) или так cmsapi_add_account(id, "ce", 86400, "", "t")
 

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43
@zhorzh78, вот, теперь заработало.
Спасибо вам большое за помощь.

И последний вопрос, а время в секундах указывается?
А то вот по времени выходит 86400 сек. - это 24 часа, а привилегия выдалась почему то на 60 дней и 10 минут
 

D1m0n41k

Участник
Сообщения
475
Реакции
202
Баллы
43
@zhorzh78, видимо я слепой, извините пожалуйста :censored:

Спасибо еще раз!

С наступающим вас праздником и всего вам хорошего в новом году! ;)
 

kz_06

Участник
Сообщения
14
Реакции
0
Баллы
1
zhorzh78 Load fails: Plugin uses an unknown function (name "cmsapi_add_account") - check your modules.ini. У меня тоже проблема с апи версия 5.3.5 как фихсить? КОД cmsapi_add_account(pId, "ce", Time, "", "", iServiceId);
 

zhorzh78

Администратор
Сообщения
2,713
Решения
14
Реакции
1,081
Баллы
113
Не вижу проблем. Обычно, они появляются в разделе Помощи по плагинам.
 

RockTheStreet

Пользователь
Сообщения
223
Решения
1
Реакции
41
Баллы
28
kz_06, 1. GameCMS API не запущен на сервере;
2. Одна строка - это не код, а огрызок. Если хотите в дальнейшем получать поддержку, то присылайте весь код;
3. Помощь по плагинам осуществляется не в чужих темах. Вам необходимо создать свою тему в соответствующем разделе. Если, конечно, Вам действительно нужна помощь.
 
Сверху