Money-Roulette

Money-Roulette 2.6.3

Нет прав для скачивания
Сообщения
39
Реакции
11
wellasgood, да это не идея, а факт получился вчера, когда поставил и игроки начали это использовать в первых раундах)
Покажешь тут набросок кода, чтобы добавить сейчас этот лимит до обновы? А то придётся отключать)

И ещё странную вещь заметил, если человек вип на флаг t(а в исходнике на флаг q), то он при прописывании команды не будет ничего получать, флаг обычного игрока не учитывается, когда есть другие флаги, но отличные от заданных в исходнике..2 карты так отыграл, когда флаг сменил на t, рулетка заработала для меня, для тех у кого не было вип, рулетка работала в это же время.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
AkycTuk, нет, эту систему нужно разрабатывать и проверять. Выйдет уже в след. обнове. Что Вы не можете настроить, это Ваши проблемы, в описании все конкретно расписано. Я сам пользую данный плагин у себя на серверах, и он отлично работает при правильной настройке.

Там можно поставить для обычных игроков, меньшее кол-во раз, сколько они могут использовать на карту.. Посмотрите по внимательнее, а так же можно выставить меньшее кол-во выдаваемых денег.
 
Сообщения
1,419
Реакции
2,509
Помог
59 раз(а)
1) Нужно рассортировать в архиве по папкам.
  • sound/money_roulette/...
  • addons/amxmodx/scripting/include/
  • addons/amxmodx/data/lang/

2) В файле с переводами желательно в алфавитном порядке добавлять языки, т.е.: en, es, ro, ru

3) Зачем использовать переводчик чтобы переводить на другие языки? Если нет знаний языка - не нужно. Например испанский перевод неправилен, помимо того что там указана команда которой даже нет в плагине: /iniciar-ruleta

4) Звуки нужно вынести в константу, потому что повторяются и это пустая трата ресурсов, и так намного эстетичнее.

5) Воспроизведение звуков с помощью client_cmd может блокироваться клиентами no-steam, если не важна поддержка no-steam клиентов тогда можно не заменять на SendAudio сообщение.

6) Дефайн MR_SOUND не совсем правильно реализован, нужно вынести его за форвард и если дефайн не закомментирован то уже тогда нужно прекешить звуки.

7) Почему постоянно не понятные названия переменных? Пример, используются разные названия переменных для получения флагов: zFl (212 строка) и sFlag (239).

8) 245-258 строки начиная со второго условия должно быть else if вместо if. Чтобы не выполнялись другие условия если уже то что выше сработало.

9) В функции dInfo(id) что вызывается таском нет условия на коннект игрока, будут ошибки.

10) В функции money_gladmin(id) вместо должно чтобы сделать if/else условия можно сделать всего лишь один раз условие. Имеется ввиду самое первое условие. Следует проверить нет ли флага, и если его нет то return PLUGIN_HANDLED, и всё.

11) В той же функции что и в 10 пункте, зачем два раза используется set_dhudmessage если нет различий? Следует вынести за условие if(get_pcvar_num(MONEY_SOUND))

12) В функции give_money(id) строки 298-300 вместо того чтобы два раза использовать get_pcvar_num(MONEY_ROUND_COUNT) следует записать в переменную.

13) В той же функции что и выше. Почему условие get_pcvar_num(MONEY_ENABLED) == 1 именно там? Как я понимаю это отвечает работает вообще плагин или нет. В таком случае это условие должно быть до всех условий.

14) Код строки 335-352. В обоих условиях почти одно и то же. Строки 337, 338, 340, 341, 342 можно вынести за условие и в else их уже удалить, ибо будет выполнено в любом случае. То же самое и на строках 365, 366, 368, 369, 370 и в else. А так же строки 387, 388, 390, 391, 392.

15) Нет смысла в следующем коде: new Sec = ReloadMoney[id] - time(), можно сразу его вписать:
client_print_color(id, print_team_default, "%L", id, "ROULETTE_TIME", ReloadMoney[id] - time())

16) Функция scroll_activated(id). Флаги игрока следует сохранить в переменную, потому что постоянно будет вызываться. Кроме этого, начиная со второго if (строка 448) стоит заменить на else if чтобы не вызывались другие условия если уже одно выполнено.

17) Функция scroll_active_1(id) вызываемая в таске. Нет условия подключён ли игрок. Все эти функции однотипные что идут ниже можно объединить в одну, зачем столько?

18) Функция scroll_pause(id). Нет сохранения флагов в переменную. if заменить на else if начиная со второго.
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
Ухх :crazy::derisive::sorry:. Спасибо! Писал на скорую руку, ошибки предполагал что будут (хотя тестировал). Как будет время поправлю по пунктам.
 

d3m37r4

111111
Сообщения
1,428
Реакции
1,169
Помог
10 раз(а)
wellasgood, ты проверял работу с закомментированным дефайном?)
Код:
//Дефайн для plugin_precache (проверка), закомментировать если нехотим что бы скачивалась музыка..
#define MR_SOUND
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
wellasgood, ты проверял работу с закомментированным дефайном?)
Код:
//Дефайн для plugin_precache (проверка), закомментировать если нехотим что бы скачивалась музыка..
#define MR_SOUND
Привет, да, я проверял, если закомментировано, то игрок не скачивает музыку.
 
Сообщения
2,143
Реакции
1,223
Помог
44 раз(а)
wellasgood, прЕкол в том, что хоть можно и не прекешить, но в плагине используется воспроизведения этих файлов:
Код:
SendAudio(id, fmt("sound/%s", SND_MR));
А если файлы не запрекешены и не скачаны с сервера игроком, то как ему эти звуки воспроизведет?! Сделай так:
Код:
//функция вызова функций скролла + показ окончательных сообщений по категориям
public scroll_activated(id)
{
    new sFlagUsers = get_user_flags(id) // объявим переменную для оптимизации

    if(nScroll > 13){

        nScroll = 0
++        #if defined MR_SOUND
            SendAudio(id, fmt("sound/%s", SND_MR));
++        #endif
        remove_task(id);
        
    ...
}


//Включение музыки + заводим счетчик, вызываем таск с проверкой на коннект
public music_rt_on(id)
{
++    #if defined MR_SOUND
        SendAudio(id, fmt("sound/%s", SND_RT));
++    #endif
    nScroll++;

    if(is_user_connected(id)){
        set_task(0.1, "scroll_activated", id);
    }
}

++#if defined MR_SOUND
stock SendAudio(id, audio[], pitch = 100){
    static iMsgSendAudio;

    if(!iMsgSendAudio){
        iMsgSendAudio = get_user_msgid("SendAudio");
    }

    message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iMsgSendAudio, .player = id);
    write_byte(id);
    write_string(audio);
    write_short(pitch);
    message_end();
}
++#endif
 
Сообщения
271
Реакции
347
Помог
15 раз(а)
wellasgood, ошибка будет в консоли у игрока. (вроде)
 
Сообщения
1,408
Реакции
182
Помог
2 раз(а)
wellasgood, прЕкол в том, что хоть можно и не прекешить, но в плагине используется воспроизведения этих файлов:
Код:
SendAudio(id, fmt("sound/%s", SND_MR));
А если файлы не запрекешены и не скачаны с сервера игроком, то как ему эти звуки воспроизведет?! Сделай так:
Код:
//функция вызова функций скролла + показ окончательных сообщений по категориям
public scroll_activated(id)
{
    new sFlagUsers = get_user_flags(id) // объявим переменную для оптимизации

    if(nScroll > 13){

        nScroll = 0
++        #if defined MR_SOUND
            SendAudio(id, fmt("sound/%s", SND_MR));
++        #endif
        remove_task(id);
    
    ...
}


//Включение музыки + заводим счетчик, вызываем таск с проверкой на коннект
public music_rt_on(id)
{
++    #if defined MR_SOUND
        SendAudio(id, fmt("sound/%s", SND_RT));
++    #endif
    nScroll++;

    if(is_user_connected(id)){
        set_task(0.1, "scroll_activated", id);
    }
}

++#if defined MR_SOUND
stock SendAudio(id, audio[], pitch = 100){
    static iMsgSendAudio;

    if(!iMsgSendAudio){
        iMsgSendAudio = get_user_msgid("SendAudio");
    }

    message_begin(id ? MSG_ONE_UNRELIABLE : MSG_BROADCAST, iMsgSendAudio, .player = id);
    write_byte(id);
    write_string(audio);
    write_short(pitch);
    message_end();
}
++#endif
Ага, главное в других своих плагинах я норм делал)) Тут что т забыл, спасибо за указание на ошибку) в след версии поправлю)) Ну можно не только define, можно просто кваром проверять. (if (get_pcvar_num(lala) == 1){ и так далее
 

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

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