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

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

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

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

8 страниц V   1 2 ... 6 7 »

IPB Presents

Justmw
сообщение 9.7.2014, 20:15
Сообщение #1
Стаж: 12 лет

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

IPB Presents (1.0)

Описание:
Плагин позволяет организовать на сервере выдачу подарков за активность на форуме.

Установка:
IPB

Заходит в АЦ форума > Пользователи > Дополнительные поля > Дополнительные поля профиля
Создаём поле Steam_id. Тип поля - Текст (одна строка), Поле может быть изменено пользователем? - Да, Сделать это поле личным? - Да.
После того как создали поле, нужно узнать его id. Для этого просто заходит в редактирование поля и в адресной строке увидим его id. У меня это выглядит так:
Скрытый текст


Теперь открываем исходник ipb_system.sma и настраиваем его:
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "db_user"
#define MYSQL_PASS "db_pass"
#define MYSQL_DB "db_name"
#define MYSQL_STEAM_FILED "field_11" // Вот тут нужно изменить id на свой. Если у вас id будет 15, то должно быть написано field_15


XenForo

Заходит в АЦ форума > Пользователи > Дополнительные поля пользователя
Создаём поле:
ID поля - steam_id
Заголовок - какой хотите
Место отображения - персональная информация
На вкладке "Основные настройки" снимите галку "Видимо на страницах профиля"

Теперь открываем исходник ipb_system.sma и настраиваем его:
#define MYSQL_HOST "127.0.0.1"
#define MYSQL_USER "db_user"
#define MYSQL_PASS "db_pass"
#define MYSQL_DB "db_name"
#define MYSQL_STEAM_FILED "steam_id" // Вот тут нужно на ID поля(в примере я написал steam_id, вы можете написать любой)

Теперь открываем исходник плагина и на 63 строке меняем запрос на:

Код:

formatex(mysqlCache, 1023, "SELECT `xf_user`.`user_id`, `xf_user`.`username`, \
`xf_user`.`message_count`, (SELECT COUNT(*) FROM `xf_thread` WHERE `xf_thread`.`user_id` = `xf_user`.`user_id`) AS topics, \
`xf_user`.`custom_title`, `xf_user`.`last_activity` FROM `xf_user_field_value`, `xf_user` \
WHERE `xf_user`.`user_id` = `xf_user_field_value`.`user_id` AND `xf_user_field_value`.`field_id` = '%s' AND `xf_user_field_value`.`field_value` = '%s' LIMIT 1;", MYSQL_STEAM_FILED, steamID);


Всё. С установкой закончили, можно компилировать и ставить на сервер.

Для получения бонуса игроку нужно зайти в настройки профиля и указать свой стим_ид:
Скрытый текст


Пример плагина подарков:
Код:
#include <amxmodx>
#include <WPMGPrintChatColor>

#pragma semicolon 1

forward ipb_core(id, MemberID, const Name[], Posts, Topics, const Status[], LastVisit);

enum ipb_profile {
active,
member_id,
name[64],
posts,
topics,
status[64],
last_visit
};

new ipb_data[33][ipb_profile];

public plugin_init() {
register_plugin("[Public]Presents for ipb system", "0.1", "Stolen");
}

public client_putinserver(id)
{
set_task(10.0, "PrintStatus", id);
}

public PrintStatus(id)
{
if(is_user_connected(id) && ipb_data[id][active])
PrintChatColor(id, _, "!g[SERVER] !yЗдравствуй !g%s! !yБонус будет выдаваться !tкаждый раунд !g;)", ipb_data[id][name]);
else
PrintChatColor(id, _, "!g[SERVER] !yЧтобы получать !gбонус - !tзарегистрируйтесь на форуме");
}

public ipb_core(id, MemberID, const Name[], Posts, Topics, const Status[], LastVisit)
{
if(is_user_connected(id) && MemberID != 0)
{
ipb_data[id][active] = true;
ipb_data[id][member_id] = MemberID;
ipb_data[id][posts] = Posts;
ipb_data[id][topics] = Topics;
copy(ipb_data[id][status], 63, Status);
ipb_data[id][last_visit] = LastVisit;
copy(ipb_data[id][name], 63, Name);
}
}


Плагину доступна следующая информация о профиле игрока:
member_id, // Ид на форуме
name[64], // Ник на форуме
posts, // Кол-во сообщений
topics, // Кол-во тем
status[64], // Статус профиля
last_visit // Дата последнего посещения форума

Благодарности:
kes за тестовый форум xenforo

Прикрепленный файл  ipb_system.sma ( 3,81 килобайт ) Кол-во скачиваний: 240


Отредактировал: Justmw, - 5.8.2014, 14:42
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 20 раз
   Цитировать сообщение
Статус пользователя kes
сообщение 9.7.2014, 20:57
Сообщение #2


Стаж: 12 лет

Сообщений: 577
Благодарностей: 547
Полезность: 870

На Xenforo можно сделать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Justmw
сообщение 9.7.2014, 21:03
Сообщение #3
Стаж: 12 лет

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

kes,
Можно под любой форум
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя kes
сообщение 9.7.2014, 21:05
Сообщение #4


Стаж: 12 лет

Сообщений: 577
Благодарностей: 547
Полезность: 870

Justmw,
Но там же разная БД.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Bloo
сообщение 9.7.2014, 21:09
Сообщение #5


Стаж: 12 лет

Сообщений: 15547
Благодарностей: 6971
Полезность: 1206

kes, там все разное. Он имеет ввиду что сделать такое можно под любой форум, но есть только под IPB)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя Templar
сообщение 9.7.2014, 21:37
Сообщение #6
Иконка группы

Стаж: 18 лет

Сообщений: 2680
Благодарностей: 978
Полезность: 860

Меценат Меценат

Может я не совсем понял, а бонус какой именно даваться то будет?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Justmw
сообщение 9.7.2014, 21:47
Сообщение #7
Стаж: 12 лет

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

Templar,
Тут уже тебе решать
Я на зм сделал вот такой например:
Код:
public EventStartRound()
{
for(new id = 1; id <= get_maxplayers(); id++)
if(is_user_connected(id) && is_user_alive(id))
if(ipb_data[id][active])
{
cs_set_user_money(id, cs_get_user_money(id) + (ipb_data[id][posts]*10));

new rand = random(2);

switch(rand)
{
case 0:
zp_force_buy_extra_item(id, zp_get_extra_item_id("GRENADE"), 1);
case 1:
give_item(id,"weapon_hegrenade");
case 2:
give_item(id,"weapon_flashbang");
}

PrintChatColor(id, _, "!g[FRAGGERS.RU] !yВы получили !gбонус !yза регистрацию на форуме");
}

return PLUGIN_CONTINUE;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Danjkeee^
сообщение 9.7.2014, 21:50
Сообщение #8
Стаж: 14 лет
Город: Волгоград

Сообщений: 628
Благодарностей: 215
Полезность: 508

Templar,
Напиши плагин и будет выдаваться бонус тот который захочешь.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 9.7.2014, 22:05
Сообщение #9


Иконка группы

Стаж: 15 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Justmw,
Есть наработки по реализации звания в профиль из армиранка или аес... Но не доделал пока!))) не могу вырвать инфу из армиранка... Хотя есть мысль брать прямо из бд, сопоставлять стимИд и вставлять например погон под ником!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Templar
сообщение 9.7.2014, 22:14
Сообщение #10
Иконка группы

Стаж: 18 лет

Сообщений: 2680
Благодарностей: 978
Полезность: 860

Меценат Меценат

Ааа теперь дошло... Спасибо )
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Templar
сообщение 9.7.2014, 22:48
Сообщение #11
Иконка группы

Стаж: 18 лет

Сообщений: 2680
Благодарностей: 978
Полезность: 860

Меценат Меценат

Что не так сделал?

Скрытый текст


[ipb_system.amxx] MySQL error [#1054]: Unknown column 'pfields_content.field_21' in 'where clause'. Query: SELECT `members`.`member_id`, `members`.`name`, `members`.`posts`, (SELECT COUNT(*) FROM `topics` WHERE `topics`.`starter_id` = `members`.`member_id`) AS topics, `members`.`title`, `members`.`last_visit` FROM `pfields_content`, `members` WHERE `members`.`member_id` = `pfields_content`.`member_id` AND `pfields_content`.`field_21` = 'STEAM_0:1:20177108' LIMIT 1;.



На Форуме: =members&&module=cfields&section=customfields&do=edit&id=21
В исходнике: #define MYSQL_STEAM_FILED "field_21"
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Justmw
сообщение 9.7.2014, 22:59
Сообщение #12
Стаж: 12 лет

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

Templar,
Вроде всё верно. Мб от версии ипб зависит. Скажи свою версию, и желательно скрин структуры таблицы pfields_content из БД
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Templar
сообщение 9.7.2014, 23:17
Сообщение #13
Иконка группы

Стаж: 18 лет

Сообщений: 2680
Благодарностей: 978
Полезность: 860

Меценат Меценат

Justmw,

Версия 3.4.6 , но я увидел другое в базе, что поля 21 нету, а в админке поля есть да и в настройках профиля я уже ковырял


Прикрепленные файлы:
Прикрепленное изображение Прикрепленное изображение
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Justmw
сообщение 9.7.2014, 23:42
Сообщение #14
Стаж: 12 лет

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

Templar,
Попробуй такие же настройки:
http://f6.s.qip.ru/oHGou7cq.png
http://f6.s.qip.ru/oHGou7cr.png
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя s0h
сообщение 10.7.2014, 2:39
Сообщение #15


Стаж: 17 лет

Сообщений: 670
Благодарностей: 897
Полезность: 1164

Интересно у кого идею взял?

Мысли Justmw: "Хм, а давайка я спижу(именно это слово сюда подходит, простите за мой французский) идею Зомбра, переделаю с сокетов на мускул и типо это будет моя идея, лайков срублю небось".

Я не против конечно, но автора идеи укажи, и можешь прямую ссылку на проект.

Отредактировал: s0h, - 10.7.2014, 2:49
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Justmw
сообщение 10.7.2014, 3:09
Сообщение #16
Стаж: 12 лет

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

s0h,
лолшто
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
TEROR^
сообщение 10.7.2014, 6:34
Сообщение #17
Стаж: 16 лет

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

s0h,
дядя, тут ты не прав. изначально была система похожая, написанная для хард-кс, вот ты её как раз и юзаешь. а тут васька постарался и сделал с нормальным кодом бонусы для игроков.
или ты думаешь, что связку сервер + форум изобрёл ты? боюсь тебя огорчить
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя sergggzi
сообщение 10.7.2014, 6:48
Сообщение #18
Иконка группы

Стаж: 13 лет

Сообщений: 6536
Благодарностей: 6222
Полезность: 807

s0h,
бред... автомобили делают мерседес, бвм, тойоты и даже автоТаз пытается, но никто не пишет на своих авто имя создателя автомобиля.
какой еще автор идеи должен быть в случае со скриптами и плагинами?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 10.7.2014, 7:24
Сообщение #19


Иконка группы

Стаж: 15 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

У меня группа на форуме выдавалась по флагам в бансе... Мейчас вот звания в проыиль хочу допилить... Не знаю ни одного селовека о которых тут идет речь. Какие то глупые оьвинения!!!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя parmezan
сообщение 10.7.2014, 9:39
Сообщение #20


Стаж: 12 лет

Сообщений: 329
Благодарностей: 134
Полезность: 378

s0h,
давным давно такие штуки используются в народе.. ты к сожалению не первооткрыватель!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
8 страниц V   1 2 ... 6 7 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: