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

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

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

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

[Плагин] GameCMS Core

Статус пользователя georgeml
сообщение 24.3.2016, 7:32
Сообщение #1
Стаж: 12 лет

Сообщений: 1467
Благодарностей: 439
Полезность: 423

GameCMS Core

Версия устарела. Новая версия по запросу google gamecms api )))

Текущая версия: 3.2 от 24.03.2016 г.

Описание: загрузка аккаунтов из базы данных движка GameCMS

Возможности:
  • загрузка аккаунтов напрямую из базы движка (т.е без использования users.ini и базы amx_bans)
  • регистрация стандартных кваров AMXmod, загрузка конифгурационных файлов карт
  • вывод срока действия услуги в сторонних плагинах (например, меню ВИП или Администратора)
  • уведомление игрока об отключении его услуги (с возможностью указания причины отключения)
  • возможность использования "русских" ников (при использовании "ник+ пароль")
  • forward для использования данной БД в других плагинах


Использование функций плагина:
Пример вывода срока действия услуги в плагине menufront
1. В шапке плагина, перед первой функцией public добавляем
Код:
native days_left_info (id, szDate[], iLen)

public plugin_natives()
set_native_filter("native_filter")

public native_filter(const name[], index, trap)
return !trap ? PLUGIN_HANDLED : PLUGIN_CONTINUE


2. В функции displayMenu(id, pos)
- ищем строку
Код:
new len = format(menuBody, charsmax(menuBody),
g_coloredMenus ? "\yAMX Mod X Menu\R%d/%d^n\w^n" : "AMX Mod X Menu %d/%d^n^n" , pos + 1, (g_menusNumber / MENUITEMSPERPAGE) + (((g_menusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0))


- заменяем ее на код
Код:
new szDate[32]
days_left_info(id, szDate, charsmax(szDate))

if (equali(szDate, "0000", 4))
format(szDate, 31, "Конца света :)")

new len = format(menuBody, 511,
g_coloredMenus ? "\yAMX Mod X Menu\R%d/%d^nДествительна до: \w%s^n^n" : "AMX Mod X Menu %d/%d^nДествительна до:: %s^n^n" , pos + 1, (g_menusNumber / MENUITEMSPERPAGE) + (((g_menusNumber % MENUITEMSPERPAGE) > 0) ? 1 : 0), szDate)

Пример использования forward в плагине GameCMS_Bonus
Код:
#include <amxmodx>
#include <sqlx>

new Handle:g_DbTuple

enum _:pl_state
{
thanks,
answers
}
new g_player[33][pl_state]

public plugin_init()
{
///
}

public init_database(Handle:sqlTuple)
{
if(g_DbTuple != Empty_Handle)
return server_print("Связь с БД GameCMS_Core уже установлена")

g_DbTuple = sqlTuple

return PLUGIN_CONTINUE
}

public client_putinserver(id)
{
new szSteamId[25], szId[1], szQuery[512];
get_user_authid(id, szSteamId, charsmax(szSteamId));

szId[0] = id;

formatex(szQuery, charsmax(szQuery), "SELECT * FROM `users` WHERE `steam_id` = '%s'", szSteamId);
SQL_ThreadQuery(g_DbTuple, "SQL_Handler", szQuery, szId, sizeof szId);
}

public SQL_Handler(failstate, Handle:query, error[], errcode, data[], datasize)
{
switch(failstate)
{
case TQUERY_CONNECT_FAILED:
{
log_amx("no connect database: %s", error);
return pause("a")
}
case TQUERY_QUERY_FAILED: return log_amx("query error: %s", error);
}

new id = data[0];
if(SQL_NumResults(query))
{
g_player[id][thanks] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "thanks"))
g_player[id][answers] = SQL_ReadResult(query, SQL_FieldNameToNum(query, "answers"))
}

server_print("Спасибок: %d / Ответов: %d", g_player[id][thanks], g_player[id][answers])
return SQL_FreeHandle(query);
}

[attachment=39559:gamecms_core.sma]
[attachment=39497:menufront.sma]
[attachment=39498:test_forward.sma]

Отредактировал: georgeml, - 20.6.2016, 17:25
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 3 раз
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: