Реферальная система

Реферальная система 1.5.4

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #1
Tomiks добавил(а) новый ресурс:

Реферальная система - Воссоздаёт реферальную систему на Вашем игровом сервере.

Реферальная система - система бонусов. Предоставляет различные бонусы тем, кого выберут пригласившим игроком.

В данном ресурсе присутствует модульность(небольшая, но лучше, чем её нет).

НЕ ПЫТАЙТЕСЬ УСТАНОВИТЬ ДАННЫЙ РЕСУРС И ПОНЯТЬ КАК ОН РАБОТАЕТ, ЕСЛИ НИЧЕГО В ЭТОМ НЕ ПОНИМАЕТЕ

Характеристики ресурса(вот это придумал:D):
1) Модульность
2) Протестирован на CS:GO, но возможно работает и на CSS, лучше протестить :)
3) Присутствует логирование...

Узнать больше об этом ресурсе...
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #2
почему отладка int а не bool? это же логичнее.

43434


чет не вижу закрытия KeyValues config...

43435

правильно, зачем валидировать таймер перед тем как убивать его.
Та и зачем его убивать если здесь он уже и так мертв? нужно только обнулить.
А если юзер не валиден то он не обнулится...
А чем обусловлено значение 1 в CallBackRefCMD(iClient, 1); ?

В новом синтаксисе вместо INVALID_HANDLE используется null

писать каллбеки сразу после запроса не вариант? почему они раскиданы по разным концам файла?

форматирование и кодстайл небро?

GetClientTime возвращает общее время сессии или только за текущую карту?

43439

5 раз получать индекс из полученного из ивента юзер ид - это сильно

43440

выреж нахер эту отладку или сделай её нормальной
с каллбеками меню - тоже самое.
Идет вызов за ним каллбек. Исключение - когда вызов идет в нескольких местах или они лежат в разных файлах. Или в отдельном блоке но это не всегда удобно.
43450


43441

а тернарные условия не?

43443

43444

ты уж определись с синтаксисом. меню у тебя или хендл.

43445

43447

так венгерская нотация или нет?

43446

а если один из запросов упадет? используй транзакции для связанных запросов.

с mysql не работает. можешь убрать из описания. у тебя же куча примеров (вип и шоп как минимум) как это делается и в чем разница.

43448

чет не понятно где начало и конец ф-и, можно больше разделителей?
Если по группам еще ясно то вот между ф-ями хз зачем

43451

а если записей не нашло то меню просто закроется... ммм.. UI/UX
43452

По хорошему можно сделать 1 каллбек просто с разной data

43453

а если он уже вип? или еще хуже - тест вип?


43454

я так понимаю утечки памяти это твоя фишка? типо почерк программиста.

43455

а в чем сокральный смысл передавать в форварды юзер ид клиента?

43456

зачем при нажатии кнопки нам знать что в ней написано? а тем более дескрипшн?
не приходит ничего в голову кроме PrintToChat(iClient, "Вы нажали кнопку %s (%s)", szItemName, szItemDescription);

саму логику работы я не смотрел ибо потерялся в отладке и кривом кодстайле. та и прыгать по файлу в поисках каллбеков влом.
но в принципее имеет право на жизнь (но после рефакторинга)
 

Вложения

  • 1563184917608.png
    1563184917608.png
    29.3 КБ · Просмотры: 228

zeepcore

Участник
Сообщения
140
Реакции
21
 

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #4
Вот это не понял при чём тут
 

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #5
почему отладка int а не bool? это же логичнее.

Посмотреть вложение 43434

чет не вижу закрытия KeyValues config...

Посмотреть вложение 43435
правильно, зачем валидировать таймер перед тем как убивать его.
Та и зачем его убивать если здесь он уже и так мертв? нужно только обнулить.
А если юзер не валиден то он не обнулится...
А чем обусловлено значение 1 в CallBackRefCMD(iClient, 1); ?

В новом синтаксисе вместо INVALID_HANDLE используется null

писать каллбеки сразу после запроса не вариант? почему они раскиданы по разным концам файла?

форматирование и кодстайл небро?

GetClientTime возвращает общее время сессии или только за текущую карту?

Посмотреть вложение 43439
5 раз получать индекс из полученного из ивента юзер ид - это сильно

Посмотреть вложение 43440
выреж нахер эту отладку или сделай её нормальной
с каллбеками меню - тоже самое.
Идет вызов за ним каллбек. Исключение - когда вызов идет в нескольких местах или они лежат в разных файлах. Или в отдельном блоке но это не всегда удобно.Посмотреть вложение 43450

Посмотреть вложение 43441
а тернарные условия не?

Посмотреть вложение 43443
Посмотреть вложение 43444
ты уж определись с синтаксисом. меню у тебя или хендл.

Посмотреть вложение 43445
Посмотреть вложение 43447
так венгерская нотация или нет?

Посмотреть вложение 43446
а если один из запросов упадет? используй транзакции для связанных запросов.

с mysql не работает. можешь убрать из описания. у тебя же куча примеров (вип и шоп как минимум) как это делается и в чем разница.

Посмотреть вложение 43448
чет не понятно где начало и конец ф-и, можно больше разделителей?
Если по группам еще ясно то вот между ф-ями хз зачем

Посмотреть вложение 43451
а если записей не нашло то меню просто закроется... ммм.. UI/UX
Посмотреть вложение 43452
По хорошему можно сделать 1 каллбек просто с разной data

Посмотреть вложение 43453
а если он уже вип? или еще хуже - тест вип?


Посмотреть вложение 43454
я так понимаю утечки памяти это твоя фишка? типо почерк программиста.

Посмотреть вложение 43455
а в чем сокральный смысл передавать в форварды юзер ид клиента?

Посмотреть вложение 43456
зачем при нажатии кнопки нам знать что в ней написано? а тем более дескрипшн?
не приходит ничего в голову кроме PrintToChat(iClient, "Вы нажали кнопку %s (%s)", szItemName, szItemDescription);

саму логику работы я не смотрел ибо потерялся в отладке и кривом кодстайле. та и прыгать по файлу в поисках каллбеков влом.
но в принципее имеет право на жизнь (но после рефакторинга)
1)Bool логично, но так привык, согласен, bool будет правильнее
2)На счёт закрытия не понял, вроде везде одинаково делал, раньше к этому не было претензий, буду рад, если объяснишь:) p.s. глянул мельком сейчас, ты про delete config?
3)Согласен, туфту сделал с этим таймером:D А "1" в CallbackRefCMD поставил, т.к. там в вызове каллбека команды есть int args, на всякий случай кинул, а то с any data мне проблем хватило:D
4)Возвращает общее время, именно в тот момент, как игрок полностью отключится сам. Не понял почему это так, OnClientDisconnect ловит все отключения(считая смену карты, это багало время), а event работает нормально
5)Чёрный стиль, белый элегантность:D Я к чёрному :)
6)Каллбеки пораскидаю, мне уже там было не очень удобно ориентироваться в конце:D Я так сделал, показалось нормальным.
7)Не люблю я эти ? :, прям умираю, когда их вижу
8)
Menu - производный тип от Handle.
И так пойдёт:D Работает же, согласен, Menu правильнее, но как научен:)
9)В следующем плагине(если будет следующий*_*) будет венгерская:)
10)Не могу осознать как работают транзакции и что делают, миллион и один раз перечитывал это у тебя в уроке, но всё ещё не дошло
11)уууууу ///////////////////////////////////////////////////////////// p.s. кхм... простите:D согласен, дурачество :)
12)Поправлю с топом. В основном там всегда будет хотя бы 1, если что-то не сломалось
13)На счёт каллбеков согласен
14)А там в названии пункта написано, что заменит:D p.s. это не решение конечно, но предупреждение, тест на внимательность
15)Ты про то, что не сделано delete config?
16)Твои же нравоучения:D UserID топ, Index для слабаков:D (передаю для того, что там можно сделать доп вызов менюшки(кто знает, что кому придёт в голову написать вдруг) и там уже UserID же лучше использовать вроде как
17)Опять же, вдруг кто придумает какую-то штучку:D, которой нужно будет больше информации. А так, думаю, чем больше информации - тем лучше.
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Marcus26, намекаешь, что самолётик вот так говнокодит?
 

Truyn

King of clowns
Сообщения
1,591
Реакции
749
Это конечно тайно, но то платно:D
Меня очень интересует данный плагин но пока подожду по следующим причинам.
1)Как то запретить выбрать пригласившего тем игрокам кто уже играет (ну а то они друг друга кликать начнут)
2)Как то надо интегрировать с лк что стоит у меня
3)Ждем выявленных багов
4)Хотелось бы все таки mysql а не sql
5)По модулям было бы интересно если пригласивший не сразу бы брал награду а например набил 10 человек взял вип на неделю,набил 20 взял вип на месяц и тд.,пригласил 100 человек получил навсегда.
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #11
2)На счёт закрытия не понял, вроде везде одинаково делал, раньше к этому не было претензий, буду рад, если объяснишь:) p.s. глянул мельком сейчас, ты про delete config?
угу
3)Согласен, туфту сделал с этим таймером:D А "1" в CallbackRefCMD поставил, т.к. там в вызове каллбека команды есть int args, на всякий случай кинул, а то с any data мне проблем хватило:D
я не о том

16)Твои же нравоучения:D UserID топ, Index для слабаков:D (передаю для того, что там можно сделать доп вызов менюшки(кто знает, что кому придёт в голову написать вдруг) и там уже UserID же лучше использовать вроде как
перекрутил и не понял суть


И так пойдёт:D Работает же

ну тогда не вижу смысла продолжать этот разговор. удачи
 

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #12
Меня очень интересует данный плагин но пока подожду по следующим причинам.
1)Как то запретить выбрать пригласившего тем игрокам кто уже играет (ну а то они друг друга кликать начнут)
2)Как то надо интегрировать с лк что стоит у меня
3)Ждем выявленных багов
4)Хотелось бы все таки mysql а не sql
5)По модулям было бы интересно если пригласивший не сразу бы брал награду а например набил 10 человек взял вип на неделю,набил 20 взял вип на месяц и тд.,пригласил 100 человек получил навсегда.
1)Присутствует ограничение в виде того, что выбрать могут только те, кто наиграл определённое время(в конфиге выставляется)), а избежать того, о чём Вы говорите нельзя по сути, только если сделать дополнительную глупую манипуляцию с БД, но под раздачу могут попасть и не только старые игроки.
2)В вк мне отпишись на счёт этого, если есть inc, то проблем это сделать думаю не составит
3)Понемногу начал править, но есть ещё кое-какие дела, поэтому быстро не получится
4)Как только разберусь, то сразу сделаю и mysql :)
5)Присутствует система накопления количества бонусов, которые можно получить в любой момент, если Вы это имели ввиду. А если же не об этом, то это нужно написать лишь модуль отдельный(в inc добавлю получение хандла бд, побольше возможностей будет)
 

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #13
угу

я не о том


перекрутил и не понял суть




ну тогда не вижу смысла продолжать этот разговор. удачи
Оффтоп
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Есть ли существенная разница
Есть: ты не сможешь методы для Menu использовать с Handle

PHP:
if(!IsFakeClient(client) && client > 0)
действительно, для чего это нам проверять сначала индекс?

Не понимаю резона создавать файл конфига, вместо того, чтобы просто квары сделать.
 
Последнее редактирование:

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #15
Есть: ты не сможешь методы для Menu использовать с Handle

PHP:
if(!IsFakeClient(client) && client > 0)
действительно, для чего это нам проверять сначала индекс?

Не понимаю резона создавать файл конфига, вместо того, чтобы просто квары сделать.
Мне удобно с файлом конфига работать. Писал изначально для себя, выложил, т.к. подумал, что людям может пригодиться. Никто не заставляет это использовать, вот аналог, можно спокойно купить и наслаждаться.
Либо у R1KO, он то уж по красоте сделает всё Вам, не то что г***оскриптер
 
Последнее редактирование:

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #17
зато в случае квара проще сделать проверку корректности значений
Думаю проблемы открыть текстовик не составит, а если рассматривать это во время разработки плагина, то я не настолько обленился, чтобы просто каждый раз открывать кфг
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
Почистил код (не проверял исправлено ли всё, о чём писал R1KO). Убрал лишние инклюды (нигде в коде не использовались). Перевёл на новый синтаксис полностью. Исправил отступы.
C-подобный:
//// ReferalSystem_core 1.0.1.sp
//
// Code size:            14996 bytes
// Data size:             9340 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   40720 bytes
//
// Compilation Time: 0,36 sec
// ----------------------------------------

//// ReferalSystem_core 1.1.0.sp
//
// Code size:            13964 bytes
// Data size:             8604 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   38952 bytes
//
// Compilation Time: 0,3 sec
// ----------------------------------------
Вместо файла конфига сделал квары:
sm_referal_system_menu - показывать ли реферальное меню после входа игрока
sm_referal_system_time - сколько нужно наиграть на сервере (в минутах), чтобы появилась возможность пользоваться реферальным меню
sm_referal_system_timer - через сколько секунд отослать игроку меню после его входа на сервер
Файл конфига referal_system.cfg создаётся автоматически в папке ...\cfg\sourcemod
 

Вложения

  • ReferalSystem_core 1.1.0.sp
    16.9 КБ · Просмотры: 13
  • referalcore.inc
    875 байт · Просмотры: 10

Tomiks

Участник
Сообщения
419
Реакции
288
  • Автор ресурса
  • #19
Почистил код (не проверял исправлено ли всё, о чём писал R1KO). Убрал лишние инклюды (нигде в коде не использовались). Перевёл на новый синтаксис полностью. Исправил отступы.
C-подобный:
//// ReferalSystem_core 1.0.1.sp
//
// Code size:            14996 bytes
// Data size:             9340 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   40720 bytes
//
// Compilation Time: 0,36 sec
// ----------------------------------------

//// ReferalSystem_core 1.1.0.sp
//
// Code size:            13964 bytes
// Data size:             8604 bytes
// Stack/heap size:      16384 bytes
// Total requirements:   38952 bytes
//
// Compilation Time: 0,3 sec
// ----------------------------------------
Вместо файла конфига сделал квары:
sm_referal_system_menu - показывать ли реферальное меню после входа игрока
sm_referal_system_time - сколько нужно наиграть на сервере (в минутах), чтобы появилась возможность пользоваться реферальным меню
sm_referal_system_timer - через сколько секунд отослать игроку меню после его входа на сервер
Файл конфига referal_system.cfg создаётся автоматически в папке ...\cfg\sourcemod
Оффтоп

Сломал часть работы модулей этим, там требуется директория ReferalSystem в configs, но ядро и правда почище
 

Grey83

не пишу плагины с весны 2022
Сообщения
8,521
Реакции
4,980
кстати, в совместимости убери КСГО: вроде должно везде работать, а не только там
 
Сверху Снизу