Advanced Lottery

Advanced Lottery 1.1.0

Нет прав для скачивания
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
sbelov020 добавил(а) новый ресурс:

Advanced Lottery - Лотерея с общим для всех игроков джекпотом.

Advanced Lottery - это довольно простая, но вместе с тем необычная лотерея на ваш сервер.

Открыв меню лотереи, игрок может выбрать фиксированную ставку, на которую он хочет сыграть. (ставки настраиваются в исходнике)
Присутствует вывод текущих денег на экран.

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

Если у игрока недостаточно денег, меню недоступно:

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

Когда игрок выбрал определенную ставку, происходит розыгрыш лотереи. Возможные призы:

- Удвоение ставки
- Утроение ставки
-...
Узнать больше об этом ресурсе...
 
Сообщения
2,491
Реакции
2,794
Помог
61 раз(а)
sbelov020,

Код:
#if !defined UnlimMoney
    if(g_Jackpot > 16000) g_Jackpot = 16000
#endif
Нужно проверять наличие mp_maxmoney cvar-а. Если его нет, то 16000 иначе значение квара.
Делается примерно так
Код:
new cvar = get_cvar_pointer("mp_maxmoney");
if (cvar) {
    bind_pcvar_num(cvar, mp_maxmoney);
} else {
    mp_maxmoney = 16000;
}
f(award >= 1 && award < 81) - нету смысла в >= 1
if(award >= 98 && award <= 100) Достаточно просто >= 98
И еще в условиях лучше делать else if дабы не делать лишних проверок

Код:
cs_set_user_money(id, money + g_Jackpot, 1)
#if !defined UnlimMoney
new check_money = cs_get_user_money(id)
if(check_money > 16000) cs_set_user_money(id, 16000, 0)
#endif
Лучше делать так
Код:
cs_set_user_money(id, min(money + g_Jackpot, 16000), 1)
где вместо 16000 использовать mp_maxmoney из примера више


g_SysTime - зачем вы создали ту переменную. Она участвует тупо в указании таймзоны. Убрать

Многоразовое использование get_systime в пределах одной функции. Закэшируйте в переменную и используйте дальше по коду

Код:
#define bet1 300             // Ставка №1
#define bet2 500            // Ставка №2
#define bet3 1000            // Ставка №3
#define bet4 1500            // Ставка №4
Лучше использовать константный массив с значениями чем захардкодженое количество

И дополнительно
Константы принято . называть в верхнем регистре через _. Это общепринятая практика
У вас лимиты по времени общие на всех игроков. Я конешно не понял так задумано или это бага логикы плагина
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
fantom, мой первый опыт в создании собственного плагина, поэтому конечно не всё так гладко. Знаний пока не много, хватило только на такое.. Первый блин комом, как гри-тся. :blush2:
Спасибо за наставления, на следующей неделе будет время, возьмусь за исправления.
5 Окт 2018
Многоразовое использование get_systime в пределах одной функции. Закэшируйте в переменную и используйте дальше по коду
мне наоборот показалось лишним вводить слишком много переменных. переделаю

У вас лимиты по времени общие на всех игроков. Я конешно не понял так задумано или это бага логикы плагина
нет, так не было задумано. действительно, не продумал этот момент. тестировал-то в одиночку..
 
Сообщения
241
Реакции
224
Помог
2 раз(а)
мне наоборот показалось лишним вводить слишком много переменных. переделаю
Проще выполнить действие один раз и сохранить его результат в переменной, чем выполнять его многократно, тем самым увеличивая нагрузку. Логично))
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
C++:
#if !defined UnlimMoney
if(g_Jackpot > 16000) g_Jackpot = 16000
#endif
Нужно проверять наличие mp_maxmoney cvar-а. Если его нет, то 16000 иначе значение квара.
Но у некоторых админов лимит может быть снят не через mp_maxmoney, а отдельным плагином.
Наподобие:

pheel, понял
 
Сообщения
957
Реакции
1,185
Помог
52 раз(а)
Но у некоторых админов лимит может быть снят не через mp_maxmoney, а отдельным плагином.
это частный случай - под них подгонять плагин не стоит, кому надо тот сам под себя поправит.
5 Окт 2018
sbelov020, еще момент - время таймаута между использованием для всех одно? или все же каждый игрок раз в n секунд?

Сейчас вы храните время юза одно на всех, т.е. Вася заюзал и Петя уже не может, потому что Васин таймаут накладывается на Петю

Код:
g_LastTry = g_NowUsed

    new TimeRemaining = TimeForRetry - (get_systime(g_SysTime) - g_LastTry)

    if(TimeForRetry > (get_systime(g_SysTime) - g_LastTry))
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
это частный случай - под них подгонять плагин не стоит, кому надо тот сам под себя поправит.
хорошо, поправим
еще момент - время таймаута между использованием для всех одно? или все же каждый игрок раз в n секунд?
задумывалось для каждого игрока свое. фантом уже указал на этот момент, пофикшу=)

вернее уже пофиксил даже.
 
Последнее редактирование:
Сообщения
391
Реакции
106
Помог
2 раз(а)
Обратите внимание, если вы хотите заключить сделку с этим пользователем, он заблокирован
Многие просят плагин ставок. Но как быть тем, кому это не интересно и надоедает постоянное выскакивание менюшки? К примеру выключить для себя, остальные пусть сходят с ума..?
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
stalin_alex, какой менюшки? В моем плагине меню открывает каждый отдельно. Кому не интересно не открывает
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
Сообщения
11
Реакции
0
Hello, how to open a lottery menu, ty?
edit: Got it, opens with /lot
 
Последнее редактирование:
Сообщения
113
Реакции
26
Ребята, приветствую!
А можно дописать сохранение джек-пота с добавлением лимита его суммы до тех пор, пока кто-нибудь его выиграет.
И еще нужен скриптер для нескольких заказов. Прошу откликнетесь и не переадресовывайте на создание темы с заказами, потому как я незрячий и мне тяжеловато ориентироваться по форуму.
Спасибо за понимание!
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
MIRDOBRO777, в каком плане сохранения?
в следующей версии лимит джекпота будет равен квару mp_maxmoney
 
Сообщения
113
Реакции
26
MIRDOBRO777, в каком плане сохранения?

в следующей версии лимит джекпота будет равен квару mp_maxmoney
Если игроки не выиграли джек-пот на данной карте, то заносить его в файл для накопления и выигрыша кем-нибудь на другой карте.
Можно также обнулять его каждые "n" дней, в случае долгого невыигрывания игроками.
Это предложения, но вот сохранение хотелось бы.
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
MIRDOBRO777, тогда плагин будет не актуален для пабликов, ибо кто-нибудь выиграет джекпот в первом раунде, что сломает геймплей. (да и для других модов, не особо)
 
Сообщения
3,023
Реакции
1,731
Помог
79 раз(а)
sbelov020, ну так можно сделать, чтобы джекпот отдавался в 5 раунде и выше. roundcount >5
 
Сообщения
113
Реакции
26
MIRDOBRO777, тогда плагин будет не актуален для пабликов, ибо кто-нибудь выиграет джекпот в первом раунде, что сломает геймплей. (да и для других модов, не особо)


Можно сделать отключение кваром, сохранять или нет. А еще выше парень подсказал по раундам можно ограничить, либо с какого раунда можно играть в рулетку, либо с какого раунда можно выиграть главный приз =)
Можно также в дефин добавить, как уже есть отключение звуков выигрыша.
У людей же есть сервера с сохранением денег. У меня, например, есть и там стоит ограничение на максимальное число денег в хранилище.
 
Сообщения
3,582
Реакции
1,570
Помог
137 раз(а)
У меня, например, есть и там стоит ограничение на максимальное число денег в хранилище
У меня так же :)

Алексеич, MIRDOBRO777, тогда да, в принципе можно. Только займусь этим позже, сейчас в приоритете пару других обновлений. Плюс, придется учиться делать сохранение, ибо я еще не умею :)
Алексеич, и сразу вопрос: что лучше делать? Sqlite, nvalut, mysql or advanced valut?
 

Пользователи, просматривающие эту тему

Сейчас на форуме нет ни одного пользователя.
Сверху Снизу