Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- перейти к содержанию
- Почему GitHub?
- предприятие
- Исследовать
- базарная площадь
- ценообразование
- Search
- Войти
- Зарегистрироваться
- 4733Chuitox / ксенобот-казино
- Код Выпуски 1 Потяните запросы 0 Проекты 0 Безопасность Insights
- Присоединяйтесь к GitHub сегодня
- GitHub является домом для более чем 40 миллионов разработчиков, работающих вместе для размещения и анализа кода, управления проектами и совместной разработки программного обеспечения.
- xenobot-casino /Казино Script.lua
- @Chuitox Chuitox Исправлена отправка оранжевого текста на пользовательский канал
- 4fdb030
- 18 августа 2014 г.
- 3924 строки (3812 слок) 158 КБ
- - [[
- ____ __ __
- / \ _ \ / \ \ __ / \ \ __
- \ \ \ / \ _ \\ \ \ ___ __ __ / \ _ \ \ _ \ ___ __ _
- \ \ \ / _ / _ \ \ _ \ / \ \ / \ \ / \ \ \ \ / / __ \ / \ \ / \
- \ \ \ _ \ \\ \ \ \ \ \ \ _ \ \ \ \ \ \ _ / \ \ _ \ \ /> </
- \ \ ____ / \ \ _ \ \ _ \ \ ____ / \ \ _ \ \ __ \ \ ____ // \ _ / \ _ \
- \ / ___ / \ / _ / \ / _ / \ / ___ / \ / _ / \ / __ / \ / ___ / \ // \ / _ /
- Казино Скрипт 2.0
- Информация:
- Официальная ветка: http://forums.xenobot.net/showthread.php?17044
- Установка сундука депо: https://www.dropbox.com/s/nxybs942cfrsyak/setup.png
- Рекомендации и предупреждения:
- 1. Вы должны выполнить ОБА файлы по ссылке: «Casino Script.lua» и «Casino Script-Proxies.lua»
- 2. Избегайте использования высоких значений в качестве принятых денежных сумм. При изменении настроек учитывайте следующие ограничения:
- Блэкджек, Высокий / Низкий, Самый высокий / Самый низкий и Нечетный / Четный
- Минимум: 0.1k - 200k
- Максимум: 0.2k - 500k
- Выплата: 1 - 100%
- Первый / Второй / Последний, последовательность и пара чисел
- Минимум: 0.1k - 200k
- Максимум: 0.2k - 300k
- Выплата: 1 - 300%
- Отдельные числа, сумма чисел и бит, который
- Минимум: 0.1k - 200k
- Максимум: 0.2k - 200k
- Выплата: 1 - 500%
- 3. НЕ выполняйте действия вручную с запущенным скриптом, сначала введите / остановите в канале скрипта
- 4. Функции, влияющие на производительность, помечены
- 5. Выбранные кости будут отправлены в контейнер для предметов, когда они будут приняты.
- 6. Запустите скрипт, активировав Walker или поместив себя в левую сторону депо и набрав / start
- 7. Введите / help в канале скрипта для списка доступных команд
- Требования по умолчанию:
- 1. умереть
- 2. Party Hat (главный слот)
- 3. Эктоплазматические суши
- 4. Оранжевый рюкзак: до 2
- 5. Красный рюкзак: до 7
- 6. Пляжный рюкзак: 1 с вложенными рюкзаками (рюкзак внутри рюкзака, того же типа)
- 7. Лира (музыкальный инструмент)
- 8. Корыто Комплект (Мебель)
- ]] -
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ОБЩИЕ -
- - ------------------------------------------------ -------------------------------------------------- --------------
- - Базовая настройка -
- _Containers_CrystalCoins = " Оранжевый рюкзак " - Контейнер для хрустальных монет
- _Containers_PlatinumCoins = " Красный рюкзак " - контейнер для платиновых монет
- _Containers_Items = " Пляжный рюкзак " - Контейнер для предметов
- - Система бездействия -
- _Inactivity_Detection = false - Поиск нового депо, когда неактивен
- _Inactivity_Interval = 2 - минуты ожидания перед поиском в новом депо
- _Inactivity_AntiIdle = false - встроенная защита от простоя
- _Inactivity_NotifyBlockedSpot = false - уведомлять игрока, когда место заблокировано (обнаружение неактивности должно быть отключено)
- _Inactivity_MessageBlockedSpot = " Пожалуйста, не блокируйте депо "
- _Inactivity_BlockedSpotInterval = 2 - Минуты ожидания до уведомления о заблокированном месте
- - Украшение -
- _Decoration_Enabled = false - использовать украшение под кубиком
- _Decoration_Item = " Эктоплазматические суши " - название предмета для украшения | По умолчанию: «Эктоплазматические суши»
- - Рандомайзер -
- _VirtualMode_ = true - пользователь виртуальный метод для генерации случайных чисел (замена для официальных серверов)
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ADVANCEDSETUP -
- - ------------------------------------------------ -------------------------------------------------- --------------
- - Эффекты -
- _Effects_Enabled = true - использовать эффекты элемента
- _Effects_Item = " Party Hat " - название элемента для отображения эффектов
- _Effects_Interval = 1 - Как часто показывать эффекты | По умолчанию: 1 секунда | ВНИМАНИЕ: Низкие значения могут повлиять на производительность
- - Удаленный статус -
- _Remote_Status = true - разрешить использование удаленных команд, чтобы узнать состояние игрового сеанса
- _Remote_AdminName = { " name1 " , " name2 " } - имя символа, используемого для запроса информации о состоянии
- _Remote_OutcomeCommand = " Каков ваш результат? " - Команда для отправки информации о результате
- _Remote_CashCommand = " Сколько у вас денег? " - Команда для отправки доступной информации о наличных
- _Remote_ItemsCommand = " Сколько у вас в предметах? " - Команда для отправки, сколько стоят предметы в контейнере
- _Remote_StartCommand = " Let's gamble! " - Команда для запуска скрипта
- _Remote_StopCommand = " Stop gambling " - команда для остановки скрипта
- _Remote_NewDepotCommand = " Найти новое депо " - команда для поиска нового депо для запуска скрипта
- _Remote_DiceAndDecoCommand = " Сколько у вас есть кубиков и предметов декорации ? " - Команда для отправки, сколько кубиков и предметов для украшения у него есть в депо
- _Remote_EmptyContainersCommand = " Сколько у вас пустых контейнеров? " - Команда для отправки количества пустых контейнеров для платиновых монет.
- _Remote_BackupProfitCommand = " Backup Profit " - Команда для резервного копирования прибыли
- _Remote_BackupContainer = " Желтый рюкзак " - контейнер, используемый для хранения прибыли
- _Remote_BackupCrystalCoins = 200 - Количество хрустальных монет, оставляемых внутри склада
- - Статистика -
- _Statistics_UseLog = true - Статистика журнала | ПРЕДУПРЕЖДЕНИЕ! Может повлиять на производительность, если включено
- - Отладочные сообщения -
- _Debug_MessagesInChannel = true - отладочные сообщения | ПРЕДУПРЕЖДЕНИЕ! Может повлиять на производительность, если включено
- _Debug_UseLog = false - может повлиять на производительность, если включен
- - Дополнительные настройки -
- _Extra_CipStaffDetection = true - остановить скрипт при обнаружении члена Cipsoft
- _Extra_AlarmLowCash = true - Остановить сценарий и подать сигнал тревоги, когда для игры недостаточно денег
- _Extra_ServerSave = " 10:00 " - время сохранения сервера в 24-часовом формате вашей страны
- _Extra_ScreenshotOnStop = true - сделать снимок экрана при остановке сценария
- _Extra_WorkloadExecution = ' default ' - скорость выполнения действий (по умолчанию / быстрая / средняя / медленная)
- _Extra_RestartOnKick = true - перезапустить скрипт, если персонаж был выгнан из игры
- - OpenTibia -
- _OpenTibia = false - запускать скрипт на серверах Open Tibia
- _OpenTibia_Indexes = { 12 , 15 , 1 , 7 , 10 , 14 , 15 , 12 } - индексы, используемые при запуске сценария на серверах OpenTibia
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ГАМЕТИПЫ -
- - ------------------------------------------------ -------------------------------------------------- --------------
- - Блэкджек = количество игроков (5 бросков) и количество игроков (5 бросков) -
- Блэкджек = правда
- Блэкджек_Минимум = 5000
- Блэкджек_Максимум = 100000
- Blackjack_Payout = 80
- - Высокий / Низкий = 123 или 456 -
- High_Low = true
- High_Low_Minimum = 5000
- High_Low_Maximum = 100000
- High_Low_Payout = 80
- - Нечетный / Четный = 135 или 246 -
- Odd_Even = true
- Odd_Even_Minimum = 5000
- Odd_Even_Maximum = 100000
- Odd_Even_Payout = 80
- - Самый высокий / самый низкий = количество игроков (половина бросков) и количество игроков (половина бросков). Самые высокие победы -
- - Используйте только четные числа, такие как 2, 4, 6, 8, 10
- Highest_Lowest = true
- Highest_Lowest_Rolls = 4
- Highest_Lowest_Minimum = 5000
- Highest_Lowest_Maximum = 100000
- Highest_Lowest_Payout = 80
- - Первый / Второй / Последний = 12, 34 или 56 -
- First_Second_Last = true
- First_Second_Last_Minimum = 5000
- First_Second_Last_Maximum = 100000
- First_Second_Last_Payout = 180
- - Последовательность = последовательность, последовательность, последовательность или серия (123, 234, 456, 654, 543 или 321) -
- Sequence = true
- Sequence_Minimum = 5000
- Sequence_Maximum = 100000
- Sequence_Payout = 180
- - Пара чисел = совпадение с 1 из 2 чисел -
- Pair_Of_Numbers = true
- Pair_Of_Numbers_Minimum = 5000
- Pair_Of_Numbers_Maximum = 100000
- Pair_Of_Numbers_Payout = 180
- - Отдельные номера = 1, 2, 3, 4, 5 или 6 -
- Single_Numbers = true
- Single_Numbers_Minimum = 5000
- Single_Numbers_Maximum = 100000
- Single_Numbers_Payout = 360
- - Beat That = число от 11 до 66 -
- Beat_That = true
- Beat_That_Minimum = 5000
- Beat_That_Maximum = 100000
- Beat_That_Payout = 360
- - сумма чисел = сумма нескольких рулонов -
- Sum_Of_Numbers = true
- Sum_Of_Numbers_Minimum = 5000
- Sum_Of_Numbers_Maximum = 100000
- Sum_Of_Numbers_Maximum_Rolls = 10
- Sum_Of_Numbers_Payout = 360
- - ------------------------------------------------ -------------------------------------------------- --------------
- - СООБЩЕНИЯ -
- - ------------------------------------------------ -------------------------------------------------- --------------
- - Интерактивные сообщения -
- _Interactive_Messages = true - использовать интерактивные сообщения с проигрывателем
- _Interaction_PrivateMessages = true - отправлять интерактивные сообщения через личный кабинет вместо локального чата
- Invalid_Bid =
- {
- - [игра], [мин], [макс]
- « Принятая сумма для [игры] находится между [мин] и [макс] » ,
- « Извините, я принимаю мин. [Мин.] И макс. [Макс.], Чтобы играть в [игру] » ,
- }
- Welcome_Messages =
- {
- - Заполнитель: [игрок]
- « Добро пожаловать, [игрок]! Хотите испытать удачу? » ,
- « Здравствуйте, [игрок]! Я чувствую, что вы хотите стать миллионером! » ,
- « Здравствуйте, [игрок]! Вам интересно узнать о моих играх? Скажите« игры »или« ставки » » ,
- « Привет, [игрок]! Тебе сегодня повезло? » ,
- }
- - Типы цифровых игр -
- Win_Messages =
- {
- - [количество], [рулон]
- « Поздравляем! Количество выпавших было [рулон]. Вы выиграли [количество] » ,
- " Gratz! Число выпало было [Roll]. Вот вы, [количество] " ,
- « А-а-а, у нас есть победитель! Количество выпавших было [выпало]. Вы выиграли [количество] » ,
- « Сегодня, должно быть, твой счастливый день! Выпавший номер был [бросок]. Вы выиграли [количество] » ,
- }
- Lose_Messages =
- {
- - [количество], [рулон]
- « Извините, может быть, в другой раз. Номер проката был [рулон] » ,
- « О, хорошо, вы не всегда можете выиграть ... Количество бросков было [бросить] » ,
- }
- - Блэкджек -
- Блэкджек_Win_Messages =
- {
- - [playercount], [дилерский счет], [сумма], [бросок]
- « Поздравляем! Ваш счет [playercount], а мой [дилерский счет]. Вы выиграли [количество] » ,
- « Gratz! Счет был [playercount] против [дилерский счет]. Вот, пожалуйста, [количество]! » ,
- « Ааа, и у нас есть победитель! Счет был [playercount] против [дилерский счет]. Вы выиграли [количество] » ,
- « Сегодня должен быть ваш счастливый день! Ваш счет был [playercount], а мой [дилерский счет]. Вы выиграли [количество] » ,
- }
- Blackjack_Lose_Messages =
- {
- - [playercount], [дилерский счет], [сумма], [бросок]
- « Извините, может быть, в другой раз. Счет был [playercount] против [дилерский счет] » ,
- « О, хорошо, это [playercount] против [дилерский счет]. Я думаю, вы не всегда можете выиграть ... » ,
- }
- Блэкджек_Even_Result_Messages =
- {
- - [Tiecount], [сумма], [рулон]
- « Это ничья! Мы оба получили [ничью], вот твоя [сумма] » ,
- « Мы связаны. Оба счета были [ничья]. Вот ваша [сумма] назад » ,
- }
- Blackjack_Busted_Player_Messages =
- {
- - [playercount], [количество], [ролл]
- « Тебя обанкротили, твой последний счет был [playercount] » ,
- " Busted! Ваш счет [playercount], и он выше 21 " ,
- }
- Blackjack_Busted_Dealer_Messages =
- {
- - [Дилерский счет], [сумма], [рулон]
- « Мой последний счет был [дилерский счет] и он выше 21. Вы выиграли [количество] » ,
- « Ну, мой счет был выше 21, так как он [дилерский счет]. Поздравляю! Вы выиграли [количество] » ,
- }
- Blackjack_Busted_Both_Messages =
- {
- - [playercount], [дилерский счет], [сумма], [бросок]
- « Ваш счет был [playercount] и мой [дилерский счет]. Мы оба были старше 21 года, поэтому вот ваша [сумма] назад » ,
- « Похоже, нам обоим было больше 21 года с [playercount] против [дилерского счета]. Вот ваша [сумма] назад » ,
- }
- - самый высокий / самый низкий -
- Highest_Lowest_Win_Messages =
- {
- - [firstcount], [secondcount], [количество], [ролл]
- « Поздравляем! Ваш счет [firstcount] и мой [secondcount]. Вы выиграли [количество] » ,
- " Gratz! Счет был [firstcount] и [secondcount]. Вот, пожалуйста, [количество]! " ,
- « Ааа, и у нас есть победитель! Счет был [первый счет] и [второй счет]. Вы выиграли [количество] » ,
- « Сегодня должен быть ваш счастливый день! Первый счет был [первый счет], а второй [второй счет]. Вы выиграли [количество] » ,
- }
- Highest_Lowest_Lose_Messages =
- {
- - [firstcount], [secondcount], [количество], [ролл]
- « Извините, может быть, в другой раз. Счет был [firstcount] и [secondcount] » ,
- « Ну что ж, это [первый счет] и [второй счет]. Я думаю, вы не всегда можете выиграть ... » ,
- }
- Highest_Lowest_Even_Result_Messages =
- {
- - [Tiecount], [сумма], [рулон]
- « Обе суммы были равны [tiecount], вот ваша [сумма] » ,
- « Количество было одинаковым: [tiecount]. Вот ваша [сумма] назад » ,
- }
- - последовательность -
- Sequence_Win_Messages =
- {
- - [последовательность], [количество], [рулон]
- « Поздравляем! Последовательность была [последовательность]. Вы выиграли [количество] » ,
- " Gratz! Последовательность была [последовательность] Вот, пожалуйста, [количество] " ,
- }
- Sequence_Lose_Messages =
- {
- - [последовательность], [количество], [рулон]
- « Извините, может быть, в другой раз. Последовательность была [последовательность] » ,
- « Последовательность была [последовательность], я думаю, вы не всегда можете выиграть ... » ,
- }
- - сумма чисел -
- Sum_Win_Messages =
- {
- - [сумма], [сумма], [рулон]
- « Поздравляем! Сумма была [сумма]. Вы выиграли [сумму] » ,
- " Gratz! Сумма была [сумма] Вот ты, [сумма] " ,
- }
- Sum_Lose_Messages =
- {
- - [сумма], [сумма], [рулон]
- « Извините, может быть, в другой раз. Сумма была [сумма] » ,
- « Сумма была [сумма], я думаю, вы не всегда можете выиграть ... » ,
- }
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ВЕЩАНИЕ -
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ДОСТУПНЫЕ МЕСТА ДЛЯ ТАМОЖЕННЫХ СООБЩЕНИЙ
- - [имя],
- - [minhighlow], [minoddeven], [minfirstsecondlast], [minsingle], [minblackjack],
- - [maxhighlow], [maxoddeven], [maxfirstsecondlast], [maxsingle], [maxblackjack],
- - [payoutblackjack], [payoutoddeven], [payouthighlow], [payoutfirstsecondlast], [payoutsingle]
- _Broadcast_UseMessages = true - использовать широковещательные сообщения
- _Broadcast_Interval = 60 - Время в секундах ожидания до следующей трансляции
- _Broadcast_FixedInterval = false - трансляция даже с игроками вокруг или во время игры | ВНИМАНИЕ: может повлиять на производительность
- _Broadcast_UppercaseMessages = true - изменить трансляцию, чтобы использовать заглавные буквы | Пример: ИГРАТЬ В БЫСТРЫЙ ИГРЫ
- _Broadcast_YellMessages = true - транслируемое сообщение Yell
- _Broadcast_Messages =
- {
- " [name ]'s Casino - испытай удачу в самой быстрой игре! " ,
- « Стань миллионером за секунду в [name ]'s Casino! » ,
- « Иди и играй в самую быструю игру! » ,
- « Чувствуешь себя счастливым? Лучшая зарплата во всей Голени! » ,
- « Устали от медленных игр? Приходите и играйте в [name ]'s Casino! » ,
- }
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ПОБЕДЫ И ПОТЕРЯ -
- - ------------------------------------------------ -------------------------------------------------- --------------
- Winning_Item = " Lyre " - По умолчанию: Lyre | Введите "нет", чтобы отключить
- Losing_Item = " Trough Kit " - По умолчанию: Trough Kit | Введите "нет", чтобы отключить
- - ------------------------------------------------ -------------------------------------------------- --------------
- - ПУНКТЫ -
- - ------------------------------------------------ -------------------------------------------------- --------------
- Accept_Items = false - принимать предметы как ставки
- Items_List =
- {
- - Продукты -
- {Имя = " Волшебная Сера " , Значение = 8000 },
- {Name = " Dragon Claw " , Value = 300000 },
- {Имя = " Камень Души " , Значение = 500000 },
- {Name = " Spider Silk " , Value = 4000 },
- {Имя = " Глаз Драколы " , Значение = 50000 },
- {Имя = " Статуя Дракойла " , Значение = 5000 },
- {Имя = " Красный кусок ткани " , Значение = 20000 },
- {Name = " Настой воина " , Value = 10000 },
- {Name = " Наручники мистера Пуниша " , Value = 50000 },
- {Name = " Кусок резни " , Value = 50000 },
- {Name = " Украшение скелета " , Value = 3000 },
- {Name = " Снайперские перчатки " , Value = 2000 },
- {Name = " Spirit Container " , Value = 40000 },
- {Имя = " Кусок щупальца " , Значение = 5000 },
- {Name = " Остатки Плазмодели " , Value = 50000 },
- {Name = " Demonic Essence " , Value = 1000 },
- - другие -
- {Имя = " Пара мягких ботинок " , Значение = 300000 },
- {Name = " Worn Soft Boots " , Value = 300000 },
- {Name = " Firewalker Boots " , Value = 150000 },
- {Name = " Worn Firewalker Boots " , Value = 150000 },
- - синий джинн -
- {Имя = " Ангельский Топор " , Значение = 5000 },
- {Name = " Blue Robe " , Value = 10000 },
- {Имя = " Сапоги Ускорения " , Значение = 30000 },
- {Имя = " Топор мясника " , Значение = 18000 },
- {Name = " Crown Armor " , Value = 12000 },
- {Name = " Crown Helmet " , Value = 2500 },
- {Name = " Crown Legs " , Value = 12000 },
- {Name = " Crown Shield " , Value = 8000 },
- {Name = " Crusader Helmet " , Value = 6000 },
- {Name = " Dragon Lance " , Value = 9000 },
- {Имя = " Щит Дракона " , Значение = 4000 },
- {Имя = " Огненный Топор " , Значение = 8000 },
- {Имя = " Огненный Меч " , Значение = 4000 },
- {Имя = " Славный Топор " , Значение = 3000 },
- {Name = " Guardian Shield " , Value = 2000 },
- {Имя = " Щит Феникса " , Значение = 16000 },
- {Name = " Королевский скипетр " , Value = 10000 },
- {Name = " Royal Helmet " , Value = 30000 },
- {Name = " Shadow Scepter " , Value = 10000 },
- {Имя = " Тайский Меч " , Значение = 16000 },
- {Имя = " Жезл Космической энергии " , Значение = 2000 },
- {Имя = " Жезл неповиновения " , Значение = 6500 },
- {Name = " Жезл вечного огня " , Value = 6000 },
- {Имя = " Жезл Инферно " , Значение = 3000 },
- {Имя = " Жезл Звездной бури " , Значение = 3600 },
- {Имя = " Жезл Вуду " , Стоимость = 4000 },
- - Зеленый Джинн -
- {Name = " Bonebreaker " , Value = 10000 },
- {Name = " Dragon Hammer " , Value = 2000 },
- {Имя = " Ужасный Колун " , Значение = 15000 },
- {Name = " Рыцарский топор " , Value = 2000 },
- {Имя = " Топор Рыцаря Земли " , Значение = 2000 },
- {Имя = " Топор Рыцаря Энергии " , Значение = 2000 },
- {Имя = " Топор Рыцаря Огненного " , Значение = 2000 },
- {Name = " Ледяной топор рыцаря " , Value = 2000 },
- {Имя = " Гигантский Меч " , Значение = 17000 },
- {Name = " Haunted Blade " , Value = 8000 },
- {Name = " Knight Legs " , Value = 5000 },
- {Name = " Knight Armor " , Value = 5000 },
- {Name = " Onyx Flail " , Value = 22000 },
- {Name = " Украшенный топор " , Value = 20000 },
- {Name = " Посох черепа " , Value = 6000 },
- {Имя = " Топор Титана " , Значение = 4000 },
- {Name = " Tower Shield " , Value = 8000 },
- {Имя = " Щит вампира " , Значение = 15000 },
- {Имя = " Шлем Воина " , Значение = 5000 },
- {Имя = " Ледяной жезл " , Значение = 6500 },
- {Name = " Hailstorm Rod " , Value = 3000 },
- {Name = " Muck Rod " , Value = 6000 },
- {Name = " Springsprout Rod " , Value = 3600 },
- {Name = " Terra Rod " , Value = 2000 },
- {Name = " Стержень преступного мира " , Value = 4400 },
- - Рашид -
- {Name = " Abyss Hammer " , Value = 20000 },
- {Name = " Янтарный посох " , Value = 8000 },
- {Name = " Assassin Dagger " , Value = 20000 },
- {Name = " Berserker " , Value = 40000 },
- {Name = " Blacksteel Sword " , Value = 6000 },
- {Имя = " Благословенный Скипетр " , Значение = 40000 },
- {Name = " Bonelord Helmet " , Value = 7500 },
- {Имя = " Пряжка " , Значение = 7000 },
- {Name = " Замок Щита " , Значение = 5000 },
- {Name = " Цепной болтер " , Value = 40000 },
- {Name = " Chaos Mace " , Value = 9000 },
- {Name = " Cobra Crown " , Value = 50000 },
- {Name = " Composite Hornbow " , Value = 25000 },
- {Name = " Cranial Basher " , Value = 30000 },
- {Имя = " Хрустальный Арбалет " , Значение = 35000 },
- {Name = " Crystal Mace " , Value = 12000 },
- {Имя = " Кристаллическая броня " , Значение = 16000 },
- {Имя = " Щит Демона " , Значение = 30000 },
- {Name = " Амулет Демонии " , Значение = 32000 },
- {Имя = " Меч Демонажа " , Значение = 36000 },
- {Имя = " Алмазный Скипетр " , Значение = 3000 },
- {Имя = " Божественная тарелка " , Значение = 55000 },
- {Имя = " Джинн Блейд " , Значение = 15000 },
- {Name = " Почта из чешуи дракона " , Value = 40000 },
- {Name = " Убийца драконов " , Value = 15000 },
- {Name = " Посох драконьей кости " , Value = 3000 },
- {Name = " Dwarven Armor " , Value = 30000 },
- {Имя = " Эльфийский Лук " , Значение = 2000 },
- {Name = " Epee " , Value = 8000 },
- {Name = " Меховые сапоги " , Value = 2000 },
- {Name = " Glacier Kilt " , Value = 11000 },
- {Имя = " Маска ледника " , Значение = 2500 },
- {Name = " Ледниковый халат " , Value = 11000 },
- {Name = " Glacier Shoes " , Value = 2500 },
- {Имя = " Золотое кольцо " , Значение = 8000 },
- {Name = " Golden Armor " , Value = 20000 },
- {Name = " Golden Legs " , Value = 30000 },
- {Name = " Guardian Halberd " , Value = 11000 },
- {Name = " Hammer Of Wrath " , Value = 30000 },
- {Name = " Headchopper " , Value = 6000 },
- {Name = " Heavy Mace " , Value = 50000 },
- {Имя = " Тяжелый Трезубец " , Значение = 2000 },
- {Name = " Шлем потерянных " , Value = 2000 },
- {Name = " Героический топор " , Value = 30000 },
- {Name = " Hibiscus Dress " , Value = 3000 },
- {Name = " Jade Hammer " , Value = 25000 },
- {Name = " Lavos Armor " , Value = 16000 },
- {Имя = " Амулет Левиафана " , Значение = 3000 },
- {Name = " Lightning Boots " , Value = 2500 },
- {Name = " Lightning Headband " , Value = 2500 },
- {Name = " Lightning Legs " , Value = 11000 },
- {Имя = " Молния " , Значение = 11000 },
- {Имя = " Лунный Посох " , Значение = 5000 },
- {Name = " Волшебный латный доспех " , значение = 90000 },
- {Name = " Magma Boots " , Value = 2500 },
- {Name = " Magma Coat " , Value = 11000 },
- {Name = " Magma Legs " , Value = 11000 },
- {Имя = " Магма Монокль " , Значение = 2500 },
- {Имя = " Мыс Мамонтового Меха " , Стоимость = 6000 },
- {Name = " Mastermind Shield " , Value = 50000 },
- {Name = " Medusa Shield " , Value = 9000 },
- {Имя = " Меч Наемника " , Значение = 12000 },
- {Name = " Микологический лук " , Value = 35000 },
- {Name = " Mystic Blade " , Value = 30000 },
- {Name = " Naginata " , Value = 2000 },
- {Name = " Кошмарный клинок " , Value = 35000 },
- {Имя = " Благородный Топор " , Значение = 10000 },
- {Name = " Orcish Maul " , Value = 6000 },
- {Имя = " Пара железных кулаков " , Значение = 4000 },
- {Name = " Paladin Armor " , Value = 15000 },
- {Name = " Исправленные сапоги " , Value = 2000 },
- {Имя = " Меч Фараона " , Значение = 23000 },
- {Name = " Пиратские сапоги " , Value = 3000 },
- {Имя = " Платиновый Амулет " , Значение = 2500 },
- {Имя = " Реликтовый Меч " , Значение = 25000 },
- {Имя = " Кольцо Неба " , Значение = 30000 },
- {Name = " Royal Axe " , Value = 40000 },
- {Name = " Ruby Necklace " , Value = 2000 },
- {Имя = " Безжалостный топор " , Значение = 45000 },
- {Имя = " Амулет Священного Дерева " , Значение = 3000 },
- {Name = " Sapphire Hammer " , Value = 7000 },
- {Name = " Scarab Shield " , Value = 2000 },
- {Имя = " Амулет ударной волны " , Значение = 3000 },
- {Name = " Skull Helmet " , Value = 40000 },
- {Name = " Skullcracker Armor " , Value = 18000 },
- {Name = " Spiked Squelcher " , Value = 5000 },
- {Name = " Steel Boots " , Value = 30000 },
- {Name = " Болотный болван " , Value = 16000 },
- {Name = " Tempest Shield " , Value = 35000 },
- {Name = " Terra Boots " , Value = 2500 },
- {Name = " Terra Hood " , Value = 2500 },
- {Name = " Terra Legs " , Value = 11000 },
- {Name = " Terra Mantle " , Value = 11000 },
- {Name = " Искатель правосудия " , Value = 40000 },
- {Name = " Vile Axe " , Value = 30000 },
- {Name = " Топор войны " , Value = 12000 },
- {Name = " War Horn " , Value = 8000 },
- {Имя = " Шляпа ведьмы " , Значение = 5000 },
- - Зао -
- {Name = " Drachaku " , Value = 10000 },
- {Name = " Draken Boots " , Value = 40000 },
- {Name = " Drakinata " , Value = 10000 },
- {Name = " Elite Draken Mail " , Value = 50000 },
- {Имя = " Сапоги Стража " , Значение = 35000 },
- {Name = " Sais " , Value = 16500 },
- {Name = " Twiceslicer " , Value = 28000 },
- {Name = " Ожерелье плачущей вдовы " , Value = 3000 },
- {Name = " Zaoan Armor " , Value = 14000 },
- {Name = " Zaoan Helmet " , Value = 45000 },
- {Name = " Zaoan Legs " , Value = 14000 },
- {Name = " Zaoan Shoes " , Value = 5000 },
- {Name = " Zaoan Sword " , Value = 30000 },
- - Warzone -
- {Имя = " Арбалет " , Значение = 42000 },
- {Name = " Тайный посох " , Value = 42000 },
- {Name = " Baby Seal Doll " , Value = 20000 },
- {Имя = " Украшенный драгоценностями корабль " , Значение = 20000 },
- {Name = " Лезвие коррупции " , Value = 60000 },
- {Name = " Bloody Edge " , Value = 30000 },
- {Name = " Blue Legs " , Value = 15000 },
- {Имя = " Яркий Меч " , Значение = 6000 },
- {Name = " Ceremonial Ankh " , Value = 20000 },
- {Name = " Коготь" Ядовитого порождения " " , Value = 15000 },
- {Имя = " Хрустальная палочка " , Значение = 10000 },
- {Имя = " Шлем Демона " , Значение = 40000 },
- {Name = " Мантия Дракона " , Value = 50000 },
- {Name = " Dwarven Legs " , Value = 40000 },
- {Name = " Яйцо многих " , Value = 15000 },
- {Имя = " Палач " , Значение = 55000 },
- {Name = " Замороженный звездный свет " , Value = 20000 },
- {Name = " Greenwood Coat " , Value = 50000 },
- {Name = " Marlin Trophy " , Value = 5000 },
- {Имя = " Модифицированный Арбалет " , Значение = 10000 },
- {Name = " Panda Teddy " , Value = 30000 },
- {Имя = " Рунический меч " , Значение = 45000 },
- {Name = " Морской змей Trophy " , значение = 10000 },
- {Name = " Silkweaver Bow " , Value = 12000 },
- {Name = " Souleater Trophy " , Value = 7500 },
- {Имя = " Фаршированный Дракон " , Значение = 6000 },
- {Имя = " Мститель " , Значение = 42000 },
- {Name = " Ironworker " , Value = 50000 },
- {Name = " Нечестивая Книга " , Value = 30000 },
- {Name = " Броня рожденного ветром " , значение = 50000 },
- }
- - [[ НЕ РЕДАКТИРУЙТЕ НИКАКОГО НИЖЕ НИЖЕ ЭТОЙ ЛИНИИ ]] -
- Script_Information =
- {
- Name = " Casino Script v2.0 " ,
- Разработчик = " Chuitox "
- }
- InformationText = Script_Information. Name .. " by " .. Script_Information. Разработчик .. ' \ n '
- - Сохраняйте совместимость со старыми клиентами
- если ( _G [ ' getSelfPing ' ] == ноль ), то
- Атман. Пинг = функция ()
- вернуть 100
- конец
- конец
- функция onSpeak ( канал , сообщение )
- канал: SendYellowMessage ( getUserName (): titlecase (), сообщение)
- сообщение = сообщение: ниже (): отделка ()
- local setting_cmd, setting_value = message: match ( ' ^ / ([az] +) (. +) $ ' )
- если (setting_cmd) тогда
- если (setting_cmd == ' широковещание ' ), то
- if (setting_value) тогда
- если (setting_value == ' true ' или setting_value == ' false ' ) тогда
- if (setting_value == ' true ' ) тогда
- _Broadcast_UseMessages = true
- канал: SendOrangeMessage ( « Казино » , « Вы будете транслировать сообщения » )
- еще
- _Broadcast_UseMessages = false
- Канал: SendOrangeMessage ( « Казино » , « Вы выиграли \» т широковещательных сообщений " )
- конец
- еще
- _Broadcast_UseMessages = true
- канал: SendOrangeMessage ( « Казино » , « Недопустимое значение. По умолчанию вы будете транслировать сообщения » )
- конец
- конец
- elseif (setting_cmd == ' Alwaysactive ' ) затем
- if (setting_value) тогда
- если (setting_value == ' true ' или setting_value == ' false ' ) тогда
- if (setting_value == ' true ' ) тогда
- _Inactivity_Detection = true
- channel: SendOrangeMessage ( ' Casino ' , ' Вы будете искать новые хранилища, если период бездействия больше, чем ' .. _Inactivity_Interval .. ' min. ' )
- еще
- _Inactivity_Detection = false
- Канал: SendOrangeMessage ( « Казино » , « Вы выиграли \» т искать новые склады , если период бездействия больше , чем « .. _Inactivity_Interval .. » мин. ' )
- конец
- еще
- _Inactivity_Detection = true
- channel: SendOrangeMessage ( ' Casino ' , ' Недопустимое значение. Вы будете искать новые депо, если период бездействия больше, чем ' .. _Inactivity_Interval .. ' min. по умолчанию ' )
- конец
- конец
- еще
- channel: SendOrangeMessage ( ' Казино ' , ' Неизвестная команда. Введите / help для получения списка доступных команд. ' )
- конец
- еще
- local execute_cmd = message: match ( ' ^ / ([az] +) $ ' )
- if (execute_cmd) тогда
- if (execute_cmd == ' open ' ) тогда
- если Open_Containers () то
- канал: SendOrangeMessage ( « Казино » , « Все контейнеры были успешно открыты. » )
- конец
- elseif (execute_cmd == ' start ' ) или (execute_cmd == ' new ' ) затем
- Casino_Loaded = false
- PickUpDiceAndDecoration ()
- если не блэкджек и
- не High_Low и
- не Odd_Even и
- не First_Second_Last и
- не Single_Numbers и
- не Highest_Lowest и
- не последовательность и
- не Pair_Of_Numbers и
- не Sum_Of_Numbers и
- не Beat_That то
- Канал: SendOrangeMessage ( « Казино » , « Ты не \» . т принять любой тип игры Пожалуйста, проверьте настройки и перезагрузить скрипт ' )
- еще
- если UpdateCoordinates () тогда
- если Open_Containers () то
- CheckDiceAndDecoration ()
- Last_Activity = os.time ()
- Общее. Предметы . LastAmountSeen = 0
- Общее. Предметы . Сумма = 0
- Общее. Предметы . Значение = 0
- Casino_Loaded = true
- ManualStop = false
- канал: SendOrangeMessage ( « Казино » , « Сценарий запущен » )
- конец
- еще
- канал: SendOrangeMessage ( « Казино » , « Сценарию не удалось найти местоположение » )
- конец
- конец
- elseif (execute_cmd == ' close ' ) затем
- Casino_Loaded = false
- PickUpDiceAndDecoration ()
- пока # Контейнер. GetAll () > 0 сделать
- для я = 0 , 15 до
- closeContainer (i)
- конец
- конец
- канал: SendOrangeMessage ( « Казино » , « Все контейнеры закрыты » )
- elseif (execute_cmd == ' stop ' ) затем
- Casino_Loaded = false
- ManualStop = true
- PickUpDiceAndDecoration ()
- пока # Контейнер. GetAll () > 0 сделать
- для я = 0 , 15 до
- closeContainer (i)
- конец
- конец
- если канал то
- канал: SendOrangeMessage ( « Казино » , « Сценарий остановлен » )
- конец
- elseif (execute_cmd == ' reset ' ) затем
- Blackjack_Payout = 80
- High_Low_Payout = 80
- Odd_Even_Payout = 80
- First_Second_Last_Payout = 180
- Single_Numbers_Payout = 360
- Losing_Item = ' Комплект корыта '
- Winning_Item = ' Lyre '
- Winning_Item_ID = Item. GetID (Winning_Item)
- Losing_Item_ID = Item. GetID (Losing_Item)
- _Debug_MessagesInChannel = false
- _Broadcast_YellMessages = false
- _Broadcast_FixedInterval = false
- _Broadcast_UseMessages = true
- _Inactivity_Detection = false
- Блэкджек_Минимум = 5000
- Блэкджек_Максимум = 500000
- High_Low_Minimum = 5000
- High_Low_Maximum = 500000
- Odd_Even_Minimum = 5000
- Odd_Even_Maximum = 500000
- First_Second_Last_Minimum = 5000
- First_Second_Last_Maximum = 300000
- Single_Numbers_Minimum = 5000
- Single_Numbers_Maximum = 200000
- Highest_Lowest_Rolls = 4
- Highest_Lowest_Minimum = 5000
- Highest_Lowest_Maximum = 500000
- Highest_Lowest_Payout = 80
- Sequence_Minimum = 5000
- Sequence_Maximum = 300000
- Sequence_Payout = 180
- Pair_Of_Numbers_Minimum = 5000
- Pair_Of_Numbers_Maximum = 200000
- Pair_Of_Numbers_Payout = 360
- Sum_Of_Numbers_Minimum = 5000
- Sum_Of_Numbers_Maximum = 200000
- Sum_Of_Numbers_Maximum_Rolls = 10
- Sum_Of_Numbers_Payout = 1000
- Beat_That_Minimum = 5000
- Beat_That_Maximum = 200000
- Beat_That_Payout = 360
- Last_Bid = os.time ()
- HEADS_UP_DISPLAY. LAST_BID . VALUE : SetText ( ' 00:00 ' )
- HEADS_UP_DISPLAY. AMOUNT_CASH . DISPLAY_PLATINUM . AMOUNT : SetText ( ' 0k ' )
- HEADS_UP_DISPLAY. СТАВКИ . WON . AMOUNT : SetText ( ' 0 (0k) ' )
- Пари. Вон . Raw = 0
- Пари. Вон . Наличные = 0
- HEADS_UP_DISPLAY. СТАВКИ . ПОТЕРЯЛИ . AMOUNT : SetText ( ' 0 (0k) ' )
- Пари. Потеряли . Raw = 0
- Пари. Потеряли . Наличные = 0
- HEADS_UP_DISPLAY. СТАВКИ . РЕЗУЛЬТАТ . AMOUNT : SetText ( ' 0 (0k) ' )
- Пари. Результат . Raw = 0
- Пари. Результат . Наличные = 0
- Общее. Предметы . LastAmountSeen = 0
- Общее. Предметы . Сумма = 0
- Общее. Предметы . Значение = 0
- канал: SendOrangeMessage ( « Казино » , « Все настройки были сброшены » )
- elseif (execute_cmd == ' help ' ) затем
- канал: SendOrangeMessage ( ' Казино ' , ' Доступные команды: \ n ' ..
- ' / help - Показать эту информацию \ n ' ..
- ' / сброс - сброс всех настроек \ n ' ..
- ' / start - запустить скрипт \ n ' ..
- ' / stop - остановить скрипт \ n ' ..
- ' / open - открыть все контейнеры. Использовать только в целях тестирования \ n ' ..
- ' / close - Закрыть все контейнеры. Использовать только в целях тестирования \ n ' ..
- ' / Alwaysactive (true / false) - Поиск нового депо, если обнаружен период бездействия ' )
- еще
- канал: SendOrangeMessage ( « Казино » , « Неизвестная команда. Введите / help для получения списка доступных команд » )
- конец
- еще
- канал: SendOrangeMessage ( « Казино » , « Неизвестная команда. Введите / help для получения списка доступных команд » )
- конец
- конец
- конец
- функция onClose ( канал )
- печать ( « Казино: канал сценариев закрыт » )
- Casino_Loaded = false
- конец
- CasinoChannel = канал. Открыть ( « Казино » , onSpeak, onClose)
- функция ProcessDebugMessage ( динамик , сообщение )
- если спикер == « Казино отладчик », то
- если _Debug_MessagesInChannel, то
- CasinoChannel: SendOrangeMessage (докладчик, сообщение)
- конец
- еще
- CasinoChannel: SendOrangeMessage (докладчик, сообщение)
- конец
- если _Debug_UseLog и Casino_LogFile, то
- Casino_LogFile: запись ( os.date () .. ' ' .. message .. ' \ n ' )
- Casino_LogFile: flush ()
- конец
- конец
- ProcessDebugMessage ( « Казино » , « Добро пожаловать на канал Казино! Введите / help список доступных команд » )
- ProcessDebugMessage ( « Казино » , « Загрузка сценария ... » )
- DEVELOPER_HEADER = HUD ( 10 , 20 , ' :.: ' .. Script_Information. Разработчик .. ' ' .. Script_Information. Имя .. ' ::. ' , 0 , 170 , 20 )
- USER_HEADER = HUD ( 10 , 40 , « XENOBOT USER » , 125 , 255 , 140 )
- USER_NAME = HUD ( 140 , 40 , getUserName (): titlecase (), 255 , 255 , 255 )
- STATS_HEADER = HUD ( 10 , 60 , « СТАТИСТИКА » , 125 , 255 , 140 )
- если _Effects_Interval < 1 или _Effects_Interval > 60, то
- _Effects_Interval = 1
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Интервал эффектов был сброшен до ' .. _Effects_Interval .. ' second ' )
- конец
- если _Broadcast_Interval < 3 или _Broadcast_Interval > 15 * 60, то
- _Broadcast_Interval = 60
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Время трансляции было сброшено до « .. _Broadcast_Interval .. » секунд » )
- конец
- если Highest_Lowest тогда
- если Highest_Lowest_Minimum < 100 или Highest_Lowest_Minimum > 200000, то
- Highest_Lowest_Minimum = 5000
- ProcessDebugMessage ( « Казино » , « Неверное значение. Максимальный / минимальный принятый размер денежных средств был сброшен до « .. Highest_Lowest_Minimum .. » ( ' .. (Highest_Lowest_Minimum / 1000 ) .. ' k) ' )
- конец
- если Highest_Lowest_Maximum < Highest_Lowest_Minimum или Highest_Lowest_Maximum > 500000, то
- Highest_Lowest_Maximum = 500000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимальный / минимальный принятый размер наличных был сброшен до « .. Highest_Lowest_Maximum .. » ( ' .. (Highest_Lowest_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- if (Highest_Lowest_Rolls % 2 ) ~ = 0 тогда
- Highest_Lowest_Rolls = 4
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимальное / минимальное число бросков должно быть четным числом. Значение было сброшено до « .. Highest_Lowest_Rolls)
- конец
- если последовательность то
- если Sequence_Minimum < 100 или Sequence_Minimum > 300000, то
- Sequence_Minimum = 5000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимальная сумма принятой последовательности была сброшена до « .. Sequence_Minimum .. » ( ' .. (Sequence_Minimum / 1000 ) .. ' k) ' )
- конец
- если Sequence_Maximum < Sequence_Minimum или Sequence_Maximum > 300000, то
- Sequence_Maximum = 300000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимально допустимое количество наличных в последовательности сброшено до « .. Sequence_Maximum .. » ( ' .. (Sequence_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если Pair_Of_Numbers тогда
- если Pair_Of_Numbers_Minimum < 100 или Pair_Of_Numbers_Minimum > 300000, то
- Pair_Of_Numbers_Minimum = 5000
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Минимально допустимые денежные средства для пары чисел были сброшены до ' .. Pair_Of_Numbers_Minimum .. ' ( ' .. (Pair_Of_Numbers_Minimum / 1000 ) .. ' k) ' )
- конец
- если Pair_Of_Numbers_Maximum < Pair_Of_Numbers_Minimum или Pair_Of_Numbers_Maximum > 300000, то
- Pair_Of_Numbers_Maximum = 300000
- ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Максимально допустимое количество наличных для пары чисел было сброшено до ' .. Pair_Of_Numbers_Maximum .. ' ( ' .. (Pair_Of_Numbers_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если Sum_Of_Numbers то
- если Sum_Of_Numbers_Minimum < 100 или Sum_Of_Numbers_Minimum > 100000, то
- Sum_Of_Numbers_Minimum = 5000
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Минимально принятая сумма денежных сумм была сброшена до ' .. Sum_Of_Numbers_Minimum .. ' ( ' .. (Sum_Of_Numbers_Minimum / 1000 ) .. ' k) ' )
- конец
- если Sum_Of_Numbers_Maximum < Sum_Of_Numbers_Minimum или Sum_Of_Numbers_Maximum > 100000, то
- Sum_Of_Numbers_Maximum = 100000
- ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Максимально допустимая сумма сумм номеров была сброшена до ' .. Sum_Of_Numbers_Maximum .. ' ( ' .. (Sum_Of_Numbers_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если Beat_That то
- если Beat_That_Minimum < 100 или Beat_That_Minimum > 200000, то
- Beat_That_Minimum = 5000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Beat. Минимально принятая сумма была сброшена до « .. Beat_That_Minimum .. » ( ' .. (Beat_That_Minimum / 1000 ) .. ' k) ' )
- конец
- если Beat_That_Maximum < Beat_That_Minimum или Beat_That_Maximum > 200000, то
- Beat_That_Maximum = 200000
- ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Beat. Максимально допустимое количество наличных было сброшено до ' .. Beat_That_Maximum .. ' ( ' .. (Beat_That_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если блэкджек то
- если Blackjack_Minimum < 100 или Blackjack_Minimum > 200000, то
- Блэкджек_Минимум = 5000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимально допустимое количество денег в блэкджеке было сброшено до « .. Blackjack_Minimum .. » ( ' .. (Blackjack_Minimum / 1000 ) .. ' k) ' )
- конец
- если Blackjack_Maximum < Blackjack_Minimum или Blackjack_Maximum > 500000, то
- Блэкджек_Максимум = 500000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимально допустимое количество денег в блэкджеке было сброшено до « .. Blackjack_Maximum .. » ( ' .. (Blackjack_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если High_Low тогда
- если High_Low_Minimum < 100 или High_Low_Minimum > 1000000, то
- High_Low_Minimum = 5000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимальный принятый максимум / минимум был сброшен до « .. High_Low_Minimum .. » ( ' .. (High_Low_Minimum / 1000 ) .. ' k) ' )
- конец
- если High_Low_Maximum < High_Low_Minimum или High_Low_Maximum > 1000000, то
- High_Low_Maximum = 500000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимальное / минимальное допустимое количество наличных было сброшено до « .. High_Low_Maximum .. » ( ' .. (High_Low_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если Odd_Even тогда
- если Odd_Even_Minimum < 100 или Odd_Even_Minimum > 1000000, то
- Odd_Even_Minimum = 5000
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Нечетное / четное минимальное принятое количество наличных было сброшено до ' .. Odd_Even_Minimum .. ' ( ' .. (Odd_Even_Minimum / 1000 ) .. ' k) ' )
- конец
- если Odd_Even_Maximum < Odd_Even_Minimum или Odd_Even_Maximum > 1000000, то
- Odd_Even_Maximum = 500000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Нечетное / четное максимально допустимое количество наличных денег было сброшено до « .. Odd_Even_Maximum .. » ( ' .. (Odd_Even_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если First_Second_Last тогда
- если First_Second_Last_Minimum < 100 или First_Second_Last_Minimum > 200000, то
- First_Second_Last_Minimum = 5000
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Первый / второй / последний принятый минимум денег был сброшен до ' .. First_Second_Last_Minimum .. ' ( ' .. (First_Second_Last_Minimum / 1000 ) .. ' k) ' )
- конец
- если First_Second_Last_Maximum < First_Second_Last_Minimum или First_Second_Last_Maximum > 300000, то
- First_Second_Last_Maximum = 300000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Первая / вторая / последняя максимальная принятая сумма была сброшена до « .. First_Second_Last_Maximum .. » ( ' .. (First_Second_Last_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если Single_Numbers то
- если Single_Numbers_Minimum < 100 или Single_Numbers_Minimum > 200000, то
- Single_Numbers_Minimum = 5000
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимальные принятые денежные средства для одного номера были сброшены до « .. Single_Numbers_Minimum .. » ( ' .. (Single_Numbers_Minimum / 1000 ) .. ' k) ' )
- конец
- если Single_Numbers_Maximum < Single_Numbers_Minimum или Single_Numbers_Maximum > 200000, то
- Single_Numbers_Maximum = 200000
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Максимально допустимое количество наличных для одного номера сброшено до ' .. Single_Numbers_Maximum .. ' ( ' .. (Single_Numbers_Maximum / 1000 ) .. ' k) ' )
- конец
- конец
- если _Inactivity_Interval < 0 или _Inactivity_Interval > 15, то
- _Inactivity_Interval = 5
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Минуты неактивных были сброшены до ' .. _Inactivity_Interval)
- конец
- если Blackjack_Payout < 1 или Blackjack_Payout > 100, то
- Blackjack_Payout = 80
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Выплата по блэкджеку была сброшена до « .. Blackjack_Payout .. ' % ' )
- конец
- если High_Low_Payout < 1 или High_Low_Payout > 100, то
- High_Low_Payout = 80
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат High / Low был сброшен до ' .. High_Low_Payout .. ' % ' )
- конец
- если Odd_Even_Payout < 1 или Odd_Even_Payout > 100, то
- Odd_Even_Payout = 80
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Процент нечетных / четных выплат был сброшен до « .. Odd_Even_Payout .. ' % ' ) »
- конец
- если First_Second_Last_Payout < 1 или First_Second_Last_Payout > 300, то
- First_Second_Last_Payout = 180
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат двух цифр был сброшен до ' .. First_Second_Last_Payout .. ' % ' )
- конец
- если Highest_Lowest_Payout < 1 или Highest_Lowest_Payout > 100, то
- Highest_Lowest_Payout = 80
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Процент наибольшего / минимального выигрыша был сброшен до « .. Highest_Lowest_Payout .. » % » )
- конец
- если Sequence_Payout < 1 или Sequence_Payout > 300, то
- Sequence_Payout = 180
- ProcessDebugMessage ( ' Казино ' , ' Неверное значение. Процент выплат последовательности был сброшен до ' .. Sequence_Payout .. ' % ' )
- конец
- если Pair_Of_Numbers_Payout < 1 или Pair_Of_Numbers_Payout > 300, то
- Pair_Of_Numbers_Payout = 180
- ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Процент выплат пары чисел был сброшен до ' .. Pair_Of_Numbers_Payout .. ' % ' )
- конец
- если Sum_Of_Numbers_Payout < 1 или Sum_Of_Numbers_Payout > 1000, то
- Sum_Of_Numbers_Payout = 1000
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат суммы сумм был сброшен до ' .. Sum_Of_Numbers_Payout .. ' % ' )
- конец
- если Beat_That_Payout < 1 или Beat_That_Payout > 500, то
- Beat_That_Payout = 360
- ProcessDebugMessage ( « Казино » , « Недопустимое значение. Beat Этот процент выплат был сброшен до « .. Beat_That_Payout .. ' % ' )
- конец
- если Single_Numbers_Payout < 1 или Single_Numbers_Payout > 500, то
- Single_Numbers_Payout = 360
- ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат одной цифры был сброшен до ' .. Single_Numbers_Payout .. ' % ' )
- конец
- Casino_LogFile = ноль
- если _Debug_UseLog тогда
- Casino_LogFile = io.open ( ' .. \\ Log \\ Casino Log [ ' .. Self. Name () .. ' ] .txt ' , ' a + ' )
- конец
- Casino_StatisticsFile = ноль
- если _Statistics_UseLog тогда
- Casino_StatisticsFile = io.open ( ' .. \\ Log \\ Casino Stats [ ' .. Self. Name () .. ' ] .txt ' , ' a + ' )
- Casino_StatisticsFile: запись ( « Дата, броски, выигрыш, проигрыш , исход, игрок, опция, выпадение, сумма, выплата \ n ' )
- Casino_StatisticsFile: flush ()
- конец
- HEADS_UP_DISPLAY =
- {
- AMOUNT_CASH =
- {
- DISPLAY_CRYSTAL =
- {
- TEXT = HUD ( 10 , 80 , « Crystal Coins » , 200 , 200 , 200 ),
- AMOUNT = HUD ( 140 , 80 , ' 0k ' , 255 , 255 , 255 )
- },
- DISPLAY_PLATINUM =
- {
- ТЕКСТ = HUD ( 10 , 96 , « Платиновые монеты » , 200 , 200 , 200 ),
- AMOUNT = HUD ( 140 , 96 , ' 0k ' , 255 , 255 , 255 )
- }
- },
- AMOUNT_ITEMS =
- {
- DISPLAY_ITEM =
- {
- Текст = HUD ( 10 , 112 , « Предметы » , 200 , 200 , 200 ),
- AMOUNT = HUD ( 140 , 112 , ' 0 (0k) ' , 255 , 255 , 255 ),
- }
- },
- СТАВКИ =
- {
- ВЫИГРАЛ =
- {
- ТЕКСТ = HUD ( 10 , 128 , « Ставки выиграны » , 200 , 200 , 200 ),
- AMOUNT = HUD ( 140 , 128 , ' 0 (0k) ' , 255 , 255 , 255 ),
- AMOUNT_CASH = 0
- },
- LOST =
- {
- ТЕКСТ = HUD ( 10 , 144 , « Потерянные ставки » , 200 , 200 , 200 ),
- AMOUNT = HUD ( 140 , 144 , ' 0 (0k) ' , 255 , 255 , 255 ),
- AMOUNT_CASH = 0
- },
- ИТОГО =
- {
- ТЕКСТ = HUD ( 10 , 160 , « РЕЗУЛЬТАТ » , 255 , 216 , 0 ),
- AMOUNT = HUD ( 140 , 160 , ' 0 (0k) ' , 255 , 255 , 255 ),
- }
- },
- INFORMATION_HEADER = HUD ( 10 , 180 , « ИНФОРМАЦИЯ » , 125 , 255 , 140 ),
- LAST_BID =
- {
- ТЕКСТ = HUD ( 10 , 200 , « Последняя заявка » , 200 , 200 , 200 ),
- ЗНАЧЕНИЕ = HUD ( 140 , 200 , « 00:00:00 » , 255 , 255 , 255 )
- },
- SERVER_SAVE =
- {
- TEXT = HUD ( 10 , 216 , « Next Server Save » , 200 , 200 , 200 ),
- ЗНАЧЕНИЕ = HUD ( 140 , 216 , « 00:00:00 » , 255 , 255 , 255 )
- },
- TIME_RUNNING =
- {
- ТЕКСТ = HUD ( 10 , 232 , « Time Running » , 200 , 200 , 200 ),
- ЗНАЧЕНИЕ = HUD ( 140 , 232 , « 00:00:00 » , 255 , 255 , 255 )
- }
- }
- Контейнеры =
- {
- Счетчик = ноль ,
- Locker = ноль ,
- Депо = ноль ,
- Предметы = ноль ,
- Чек = ноль ,
- Crystal = {},
- Платина = {},
- }
- Координаты =
- {
- Locker = {x = 0 , y = 0 , z = 0 },
- Игрок = {x = 0 , y = 0 , z = 0 },
- Счетчик = {x = 0 , y = 0 , z = 0 },
- Adjacent_Locker = {x = 0 , y = 0 , z = 0 },
- }
- Last_Amount =
- {
- Кристалл = 0 ,
- Платина = 0 ,
- Предметы = 0
- }
- Всего =
- {
- Предметы =
- {
- LastAmountSeen = 0 ,
- Сумма = 0 ,
- Значение = 0
- }
- }
- Ставки =
- {
- Выиграл =
- {
- Raw = 0 ,
- Наличные = 0
- },
- Потерянный =
- {
- Raw = 0 ,
- Наличные = 0
- },
- Результат =
- {
- Raw = 0 ,
- Наличные = 0
- }
- }
- Gambling_Depots =
- {
- Ялахар =
- {
- {
- Имя = ' Spot1 ' ,
- HouseSwitch = { 32793 , 31251 , 7 },
- HouseDepot = { 32793 , 31252 , 7 },
- PlayerSwitch = { 32795 , 31251 , 7 },
- PlayerDepot = { 32795 , 31252 , 7 },
- Счетчик = { 32794 , 31252 , 7 }
- },
- {
- Имя = « Spot2 » ,
- HouseSwitch = { 32793 , 31244 , 7 },
- HouseDepot = { 32793 , 31243 , 7 },
- PlayerSwitch = { 32795 , 31244 , 7 },
- PlayerDepot = { 32795 , 31243 , 7 },
- Счетчик = { 32794 , 31243 , 7 }
- },
- {
- Имя = « Spot3 » ,
- HouseSwitch = { 32789 , 31251 , 7 },
- HouseDepot = { 32789 , 31252 , 7 },
- PlayerSwitch = { 32791 , 31251 , 7 },
- PlayerDepot = { 32791 , 31252 , 7 },
- Счетчик = { 32790 , 31252 , 7 }
- },
- {
- Имя = ' Spot4 ' ,
- HouseSwitch = { 32789 , 31244 , 7 },
- HouseDepot = { 32789 , 31243 , 7 },
- PlayerSwitch = { 32791 , 31244 , 7 },
- PlayerDepot = { 32791 , 31243 , 7 },
- Счетчик = { 32790 , 31243 , 7 }
- },
- {
- Имя = « Spot5 » ,
- HouseSwitch = { 32785 , 31251 , 7 },
- HouseDepot = { 32785 , 31252 , 7 },
- PlayerSwitch = { 32787 , 31251 , 7 },
- PlayerDepot = { 32787 , 31252 , 7 },
- Счетчик = { 32786 , 31252 , 7 }
- },
- {
- Имя = ' Spot6 ' ,
- HouseSwitch = { 32785 , 31244 , 7 },
- HouseDepot = { 32785 , 31243 , 7 },
- PlayerSwitch = { 32787 , 31244 , 7 },
- PlayerDepot = { 32787 , 31243 , 7 },
- Счетчик = { 32786 , 31243 , 7 }
- },
- {
- Имя = « Spot7 » ,
- HouseSwitch = { 32781 , 31251 , 7 },
- HouseDepot = { 32781 , 31252 , 7 },
- PlayerSwitch = { 32783 , 31251 , 7 },
- PlayerDepot = { 32783 , 31252 , 7 },
- Счетчик = { 32782 , 31252 , 7 }
- },
- {
- Имя = « Spot8 » ,
- HouseSwitch = { 32781 , 31244 , 7 },
- HouseDepot = { 32781 , 31243 , 7 },
- PlayerSwitch = { 32783 , 31244 , 7 },
- PlayerDepot = { 32783 , 31243 , 7 },
- Счетчик = { тридцать две тысячи семьсот восемьдесят два , 31243 , 7 }
- },
- {
- Имя = « Spot9 » ,
- HouseSwitch = { 32793 , 31251 , 6 },
- HouseDepot = { 32793 , 31252 , 6 },
- PlayerSwitch = { 32795 , 31251 , 6 },
- PlayerDepot = { 32795 , 31252 , 6 },
- Счетчик = { 32794 , 31252 , 6 }
- },
- {
- Имя = « Spot10 » ,
- HouseSwitch = { 32793 , 31244 , 6 },
- HouseDepot = { 32793 , 31243 , 6 },
- PlayerSwitch = { 32795 , 31244 , 6 },
- PlayerDepot = { 32795 , 31243 , 6 },
- Счетчик = { 32794 , 31243 , 6 }
- },
- {
- Имя = « Spot11 » ,
- HouseSwitch = { 32789 , 31251 , 6 },
- HouseDepot = { 32789 , 31252 , 6 },
- PlayerSwitch = { 32791 , 31251 , 6 },
- PlayerDepot = { 32791 , 31252 , 6 },
- Счетчик = { 32790 , 31252 , 6 }
- },
- {
- Имя = « Spot12 » ,
- HouseSwitch = { 32789 , 31244 , 6 },
- HouseDepot = { 32789 , 31243 , 6 },
- PlayerSwitch = { 32791 , 31244 , 6 },
- PlayerDepot = { 32791 , 31243 , 6 },
- Счетчик = { 32790 , 31243 , 6 }
- },
- {
- Имя = « Spot13 » ,
- HouseSwitch = { 32785 , 31251 , 6 },
- HouseDepot = { 32785 , 31252 , 6 },
- PlayerSwitch = { 32787 , 31251 , 6 },
- PlayerDepot = { 32787 , 31252 , 6 },
- Счетчик = { 32786 , 31252 , 6 }
- },
- {
- Имя = « Spot14 » ,
- HouseSwitch = { 32785 , 31244 , 6 },
- HouseDepot = { 32785 , 31243 , 6 },
- PlayerSwitch = { 32787 , 31244 , 6 },
- PlayerDepot = { 32787 , 31243 , 6 },
- Счетчик = { 32786 , 31243 , 6 }
- },
- {
- Имя = « Spot15 » ,
- HouseSwitch = { 32781 , 31251 , 6 },
- HouseDepot = { 32781 , 31252 , 6 },
- PlayerSwitch = { 32783 , 31251 , 6 },
- PlayerDepot = { 32783 , 31252 , 6 },
- Счетчик = { 32782 , 31252 , 6 }
- },
- {
- Имя = « Spot16 » ,
- HouseSwitch = { 32781 , 31244 , 6 },
- HouseDepot = { 32781 , 31243 , 6 },
- PlayerSwitch = { 32783 , 31244 , 6 },
- PlayerDepot = { 32783 , 31243 , 6 },
- Счетчик = { тридцать две тысячи семьсот восемьдесят два , 31243 , 6 }
- },
- },
- Тайцы =
- {
- {
- Имя = « Spot17 » ,
- HouseSwitch = { 32352 , 32226 , 7 },
- HouseDepot = { 32352 , 32225 , 7 },
- PlayerSwitch = { 32354 , 32226 , 7 },
- PlayerDepot = { 32354 , 32225 , 7 },
- Счетчик = { 32353 , 32225 , 7 }
- },
- {
- Имя = « Spot18 » ,
- HouseSwitch = { тридцать две тысячи триста пятьдесят два , 32230 , 7 },
- HouseDepot = { 32352 , 32231 , 7 },
- PlayerSwitch = { 32354 , 32230 , 7 },
- PlayerDepot = { 32354 , 32231 , 7 },
- Счетчик = { 32353 , 32231 , 7 }
- },
- {
- Имя = « Spot19 » ,
- HouseSwitch = { 32352 , 32226 , 6 },
- HouseDepot = { 32352 , 32225 , 6 },
- PlayerSwitch = { 32354 , 32226 , 6 },
- PlayerDepot = { 32354 , 32225 , 6 },
- Счетчик = { 32353 , 32225 , 6 }
- },
- {
- Имя = « Spot20 » ,
- HouseSwitch = { 32352 , 32230 , 6 },
- HouseDepot = { 32352 , 32231 , 6 },
- PlayerSwitch = { 32354 , 32230 , 6 },
- PlayerDepot = { 32354 , 32231 , 6 },
- Счетчик = { 32353 , 32231 , 6 }
- },
- {
- Имя = « Spot21 » ,
- HouseSwitch = { 32344 , 32226 , 6 },
- HouseDepot = { 32344 , 32225 , 6 },
- PlayerSwitch = { 32346 , 32226 , 6 },
- PlayerDepot = { 32346 , 32225 , 6 },
- Счетчик = { 32345 , 32225 , 6 }
- },
- {
- Имя = « Spot22 » ,
- HouseSwitch = { 32344 , 32230 , 6 },
- HouseDepot = { 32344 , 32231 , 6 },
- PlayerSwitch = { 32346 , 32230 , 6 },
- PlayerDepot = { 32346 , 32231 , 6 },
- Счетчик = { 32345 , 32231 , 6 }
- },
- {
- Название = « Spot23 » ,
- HouseSwitch = { 32348 , 32219 , 6 },
- HouseDepot = { 32348 , 32218 , 6 },
- PlayerSwitch = { 32350 , 32219 , 6 },
- PlayerDepot = { 32350 , 32218 , 6 },
- Счетчик = { 32349 , 32218 , 6 }
- },
- {
- Имя = « Spot24 » ,
- HouseSwitch = { 32344 , 32219 , 6 },
- HouseDepot = { 32344 , 32218 , 6 },
- PlayerSwitch = { 32346 , 32219 , 6 },
- PlayerDepot = { 32346 , 32218 , 6 },
- Счетчик = { 32345 , 32218 , 6 }
- },
- {
- Имя = « Spot25 » ,
- HouseSwitch = { 32352 , 32226 , 5 },
- HouseDepot = { 32352 , 32225 , 5 },
- PlayerSwitch = { 32354 , 32226 , 5 },
- PlayerDepot = { 32354 , 32225 , 5 },
- Счетчик = { 32353 , 32225 , 5 }
- },
- {
- Имя = « Spot26 » ,
- HouseSwitch = { тридцать две тысячи триста пятьдесят два , 32230 , 5 },
- HouseDepot = { 32352 , 32231 , 5 },
- PlayerSwitch = { 32354 , 32230 , 5 },
- PlayerDepot = { 32354 , 32231 , 5 },
- Счетчик = { 32353 , 32231 , 5 }
- },
- {
- Имя = « Spot27 » ,
- HouseSwitch = { 32344 , 32226 , 5 },
- HouseDepot = { 32344 , 32225 , 5 },
- PlayerSwitch = { 32346 , 32226 , 5 },
- PlayerDepot = { 32346 , 32225 , 5 },
- Счетчик = { 32345 , 32225 , 5 }
- },
- {
- Имя = « Spot28 » ,
- HouseSwitch = { 32344 , 32230 , 5 },
- HouseDepot = { 32344 , 32231 , 5 },
- PlayerSwitch = { 32346 , 32230 , 5 },
- PlayerDepot = { 32346 , 32231 , 5 },
- Счетчик = { 32345 , 32231 , 5 }
- },
- {
- Имя = « Spot29 » ,
- HouseSwitch = { 32348 , 32219 , 5 },
- HouseDepot = { 32348 , 32218 , 5 },
- PlayerSwitch = { 32350 , 32219 , 5 },
- PlayerDepot = { 32350 , 32218 , 5 },
- Счетчик = { 32349 , 32218 , 5 }
- },
- {
- Имя = « Spot30 » ,
- HouseSwitch = { 32344 , 32219 , 5 },
- HouseDepot = { 32344 , 32218 , 5 },
- PlayerSwitch = { 32346 , 32219 , 5 },
- PlayerDepot = { 32346 , 32218 , 5 },
- Счетчик = { 32345 , 32218 , 5 }
- },
- },
- Venore =
- {
- {
- Имя = « Spot31 » ,
- HouseSwitch = { 32920 , 32069 , 7 },
- HouseDepot = { 32920 , 32068 , 7 },
- PlayerSwitch = { 32922 , 32069 , 7 },
- PlayerDepot = { 32922 , 32068 , 7 },
- Счетчик = { 32921 , 32068 , 7 }
- },
- {
- Имя = « Spot32 » ,
- HouseSwitch = { 32915 , 32069 , 7 },
- HouseDepot = { 32915 , 32068 , 7 },
- PlayerSwitch = { 32917 , 32069 , 7 },
- PlayerDepot = { 32917 , 32068 , 7 },
- Счетчик = { 32916 , 32068 , 7 }
- },
- {
- Имя = « Spot33 » ,
- HouseSwitch = { 32911 , 32072 , 7 },
- HouseDepot = { 32911 , 32071 , 7 },
- PlayerSwitch = { 32913 , 32072 , 7 },
- PlayerDepot = { 32913 , 32071 , 7 },
- Счетчик = { 32912 , 32071 , 7 }
- },
- {
- Имя = « Spot34 » ,
- HouseSwitch = { 32924 , 32072 , 7 },
- HouseDepot = { 32924 , 32071 , 7 },
- PlayerSwitch = { 32926 , 32072 , 7 },
- PlayerDepot = { 32926 , 32071 , 7 },
- Счетчик = { 32925 , 32071 , 7 }
- },
- {
- Имя = « Spot35 » ,
- HouseSwitch = { 32928 , 32072 , 7 },
- HouseDepot = { 32928 , 32071 , 7 },
- PlayerSwitch = { 32930 , 32072 , 7 },
- PlayerDepot = { 32930 , 32071 , 7 },
- Счетчик = { 32929 , 32071 , 7 }
- },
- {
- Имя = « Spot36 » ,
- HouseSwitch = { 32928 , 32081 , 7 },
- HouseDepot = { 32928 , 32082 , 7 },
- PlayerSwitch = { 32930 , 32081 , 7 },
- PlayerDepot = { 32930 , 32082 , 7 },
- Счетчик = { 32929 , 32082 , 7 }
- },
- {
- Имя = « Spot37 » ,
- HouseSwitch = { 32924 , 32081 , 7 },
- HouseDepot = { 32924 , 32082 , 7 },
- PlayerSwitch = { 32926 , 32081 , 7 },
- PlayerDepot = { 32926 , 32082 , 7 },
- Счетчик = { 32925 , 32082 , 7 }
- },
- {
- Имя = « Spot38 » ,
- HouseSwitch = { 32919 , 32081 , 7 },
- HouseDepot = { 32919 , 32082 , 7 },
- PlayerSwitch = { 32921 , 32081 , 7 },
- PlayerDepot = { 32921 , 32082 , 7 },
- Счетчик = { 32920 , 32082 , 7 }
- },
- {
- Имя = « Spot39 » ,
- HouseSwitch = { 32915 , 32081 , 7 },
- HouseDepot = { 32915 , 32082 , 7 },
- PlayerSwitch = { 32917 , 32081 , 7 },
- PlayerDepot = { 32917 , 32082 , 7 },
- Счетчик = { 32916 , 32082 , 7 }
- },
- {
- Имя = « Spot40 » ,
- HouseSwitch = { 32910 , 32081 , 7 },
- HouseDepot = { 32910 , 32082 , 7 },
- PlayerSwitch = { 32912 , 32081 , 7 },
- PlayerDepot = { 32912 , 32082 , 7 },
- Счетчик = { 32911 , 32082 , 7 }
- },
- - ТЕСТ
- {
- Имя = « Spot41 » ,
- HouseSwitch = { 32664 , 31906 , 8 },
- HouseDepot = { 32665 , 31906 , 8 },
- PlayerSwitch = { 32664 , 31904 , 8 },
- PlayerDepot = { 32665 , 31904 , 8 },
- Счетчик = { 32665 , 31905 , 8 }
- },
- {
- Имя = « Spot42 » ,
- HouseSwitch = { 32833 , 31769 , 10 },
- HouseDepot = { 32834 , 31769 , 10 },
- PlayerSwitch = { 32833 , 31767 , 10 },
- PlayerDepot = { 32834 , 31767 , 10 },
- Счетчик = { 32834 , 31768 , 10 }
- },
- }
- }
- Dustbin_Locations =
- {
- { 32790 , 31248 , 7 },
- { 32782 , 31248 , 7 },
- { 32790 , 31248 , 6 },
- { 32782 , 31248 , 6 },
- }
- Time_Now = os.date ( " * t " )
- Server_Save_Hour, Server_Save_Minutes = _Extra_ServerSave: match ( " (. +): (. +) " )
- Server_Save = ((Server_Save_Hour + 0 ) * 3600 ) + ((Server_Save_Minutes + 0 ) * 60 )
- если Server_Save <= ((Time_Now. hour * 3600 ) + (Time_Now. min * 60 ) + Time_Now. sec ), то
- Server_Save_TimeLeft = (Server_Save + 24 * 3600 ) - (. (Time_Now час * 3600 ) + . (Time_Now мин * 60 ) + . Time_Now сек )
- еще
- Server_Save_TimeLeft = Server_Save - (. (Time_Now час * 3600 ) + . (Time_Now мин * 60 ) + . Time_Now сек )
- конец
- Accepted_Items_List = {}
- если Accept_Items то
- для _, элемент в ipairs (Items_List) сделать
- локальный AlreadyExists = false
- локальный идентификатор = пункт. GetID (пункт. Имя )
- для _, item_accepted в ipairs (Accepted_Items_List) сделать
- если item_accepted то
- если item_accepted. ID == ID тогда
- AlreadyExists = true
- конец
- конец
- конец
- если не AlreadyExists тогда
- если id == 3549 то
- table.insert (Accepted_Items_List, {ID = 6529 , Value = item. Value })
- elseif id == 9018 тогда
- table.insert (Accepted_Items_List, {ID = 9019 , Value = item. Value })
- конец
- table.insert (Accepted_Items_List, {ID = id, Value = item. Value })
- еще
- ProcessDebugMessage ( « Отладчик казино » , « Имя пропущенного элемента дублируется в списке: « .. item. Name )
- конец
- конец
- конец
- для индекса имя в ipairs (_Remote_AdminName) сделать
- _Remote_AdminName [index] = name: lower ()
- конец
- registerEventListener (WALKER_SELECTLABEL, ' onWalkLabel ' )
- Winning_Item_ID = Item. GetID (Winning_Item)
- Losing_Item_ID = Item. GetID (Losing_Item)
- _Decoration_Item_ID = _Decoration_Enabled и Item. GetID (_Decoration_Item) или 0
- Player_Option = ноль
- Player_Balance = 0
- Dustbin_Trash = { 283 , 284 , 285 , 3031 , 3492 , 3507 }
- Dice_IDs = { 5792 , 5793 , 5794 , 5795 , 5796 , 5797 }
- Locker_IDs = { 3497 , 3498 , 3499 , 3500 }
- Money_IDs = { 3035 , 3043 }
- Game_Types =
- {
- Сумма =
- {
- Выбор = 0
- },
- BeatThat =
- {
- Выбор = 0
- }
- }
- CipsoftMembers = { ' akananto ' , ' angarvazar ' , ' argeia ' , ' bolfrim ' , ' bolkar ' , ' граф tofifti ' , ' craban ' , ' Delany ' , ' Денсон larika ' , ' drudak ' , ' Дурин ' , ' Dynacor ' ,' gandareva' ' Isolan ' ' karvar ' ' Knightmare ' ' львенок ' ' lokana Aldora ' ' luciumar ' ' lyxoph ' ' Manina ' ' мастер наставника ' ' mirade ' ' nyrogun ' ' penciljack ' , 'шомпол на Aldora ', ' Rejana ' , ' sidnia ' , ' siramal ' , ' solkrin ' , ' Stephan ' , ' стив ' , ' tavaren ' , ' teyrata ' , ' tjured ' , ' ulairi ' , ' umrath ' }
- PybfrPyvrag = false
- Last_Broadcast = os.time ()
- Last_Message = os.time ()
- Last_Bid = os.time ()
- SkipRollingProcess = false
- Player_Detected = false
- Last_Player = ноль
- Last_Party_Hat = os.time ()
- Last_Activity = os.time ()
- Last_Activity_Player_In_Spot = os.time ()
- Time_Script_Started = os.time ()
- OpeningNestedContainers = false
- GoCheckDown = false
- ManualStop = false
- Casino_Loaded = false
- Processing_Data = false
- Processing_Effect = false
- Take_Cash_Signal = false
- Count_Cash_Signal = false
- Roll_Dice_Signal = false
- EffectProxyMessage = ноль
- LocalProxyMessage = ноль
- Sum_Of_Numbers_In_Progress = false
- Sum_Of_Numbers_Roll_Count = 0
- Sum_Of_Numbers_Sum = 0
- Beat_That_In_Progress = false
- Beat_That_Roll_Count = 0
- Beat_That_Sum = 0
- Highest_Lowest_In_Progress = false
- Highest_Lowest_Roll_Count = 0
- Highest_Lowest_First_Sum = 0
- Highest_Lowest_Second_Sum = 0
- Sequence_In_Progress = false
- Sequence_Roll_Count = 0
- Sequence_Count = 0
- Blackjack_In_Progress = false
- Блэкджек_Roll_Count = 0
- Blackjack_Player_Count = 0
- Blackjack_Dealer_Count = 0
- Pay_Cash_Signal = 0
- Play_Instrument_Signal = 0
- Authenticate_Cash_Check = 0
- Dice_Rolled_Check = 0
- Winning_Item_Check = 0
- Losing_Item_Check = 0
- Payment_Give_Signal = false
- Payment_Given_Check =
- {
- Кристалл = 0 ,
- Crystal_Amount = 0 ,
- Платина = 0 ,
- Platinum_Amount = 0
- }
- функция ResetValues ()
- Play_Instrument_Signal = 0
- Processing_Data = false
- Player_Option = ноль
- Last_Activity = os.time ()
- Last_Bid = os.time ()
- Blackjack_In_Progress = false
- Blackjack_Player_Count = 0
- Blackjack_Dealer_Count = 0
- Game_Types. Сумма . Выбор = 0
- Sum_Of_Numbers_In_Progress = false
- Sum_Of_Numbers_Roll_Count = 0
- Sum_Of_Numbers_Sum = 0
- Game_Types. BeatThat . Выбор = 0
- Beat_That_In_Progress = false
- Beat_That_Roll_Count = 0
- Beat_That_Sum = 0
- Highest_Lowest_In_Progress = false
- Highest_Lowest_Roll_Count = 0
- Highest_Lowest_First_Sum = 0
- Highest_Lowest_Second_Sum = 0
- Sequence_In_Progress = false
- Sequence_Roll_Count = 0
- Sequence_Count = 0
- конец
- функция WorkloadExecutionInterval ()
- если _Extra_WorkloadExecution == ' быстро ', то
- возврат 1
- elseif _Extra_WorkloadExecution == ' medium ' затем
- возврат 4
- elseif _Extra_WorkloadExecution == ' медленно ' тогда
- возврат 8
- еще
- возврат 2
- конец
- конец
- Функциональные шатры ( т )
- локальный макс = 1
- в то время как т [макс] сделать
- max = max + 1
- конец
- локальная функция ripairs_it ( t , i )
- я = я - 1
- местный v = t [i]
- если v то
- вернуть я, V
- еще
- вернуть ноль
- конец
- конец
- возврат ripairs_it, т, не более
- конец
- функция SendMessage ( игрок , текст , кричать )
- если _Interactive_Messages то
- если os.difftime ( os.time (), Last_Message) > = 2, то
- если _Interaction_PrivateMessages тогда
- SendPrivateMessage (текст, проигрыватель, правда )
- ProcessDebugMessage ( ' Casino Debugger ' , ' Отправить личное сообщение ' .. player .. ' : " ' .. text .. ' " ' )
- еще
- если вопль то
- Атман. Yell (текст)
- еще
- Атман. Скажи (текст)
- конец
- ProcessDebugMessage ( ' Casino Debugger ' , ' Отправить сообщение: " ' .. text .. ' " ' )
- конец
- Last_Message = os.time ()
- конец
- конец
- конец
- функция SendPrivateMessage ( текст , плеер , дисплей )
- если os.difftime ( os.time (), Last_Message) > = 2, то
- Атман. PrivateMessage (игрок, текст)
- если дисплей то
- ProcessDebugMessage ( ' Casino ' , ' Отправить личное сообщение для ' .. player .. ' : " ' .. text .. ' " ' )
- конец
- Last_Message = os.time ()
- конец
- конец
- функция CheckAvailableDepots ()
- local AvailableDepots = {}
- местный posx, posy, posz = Self. Положение (). х , Self. Положение (). у себя. Положение (). Z
- для _, место в ipairs (Gambling_Depots. Yalahar ) сделать
- if spot [ " HouseSwitch " ] [ 3 ] == Self. Положение (). г , то
- локальный xDistHouse, xDistPlayer = math.abs (spot [ " HouseSwitch " ] [ 1 ] - posx), math.abs (spot [ " PlayerSwitch " ] [ 1 ] - posx)
- локальный yDistHouse, yDistPlayer = math.abs (spot [ " HouseSwitch " ] [ 2 ] - posy), math.abs (spot [ " PlayerSwitch " ] [ 2 ] - posy)
- если xDistHouse <= 7 и xDistPlayer <= 7, то
- если yDistHouse <= 5 и yDistPlayer <= 5, то
- local addSpot = true
- для _ существо в существе . iPlayers () делать
- if (существо: Position (). x == spot [ " HouseSwitch " ] [ 1 ] и существо: Position (). y == spot [ " HouseSwitch " ] [ 2 ] и существо: Position (). z == posz ) или
- (существо: Position (). x == spot [ " PlayerSwitch " ] [ 1 ] и существо: Position (). y == spot [ " PlayerSwitch " ] [ 2 ] и существо: Position (). z == posz) тогда
- addSpot = false
- перемена
- конец
- конец
- если addSpot то
- table.insert (AvailableDepots, спот)
- конец
- конец
- конец
- конец
- конец
- ProcessDebugMessage ( « Отладчик казино » , « Найден скрипт » .. # AvailableDepots .. « Доступные хранилища » )
- вернуть AvailableDepots
- конец
- функция UpdateCoordinates ()
- местный posx, posy, posz = Self. Положение (). х , Self. Положение (). у себя. Положение (). Z
- местное пятно = ноль
- если не пятно то
- для _, gamblingSpot в ipairs (Gambling_Depots. Yalahar ) сделать
- если posx == gamblingSpot [ " HouseSwitch " ] [ 1 ] и posy == gamblingSpot [ " HouseSwitch " ] [ 2 ] и posz == gamblingSpot [ " HouseSwitch " ] [ 3 ], то
- spot = gamblingSpot
- перемена
- конец
- конец
- конец
- если не пятно то
- для _, gamblingSpot in ipairs (Gambling_Depots. Thais ) делают
- если posx == gamblingSpot [ " HouseSwitch " ] [ 1 ] и posy == gamblingSpot [ " HouseSwitch " ] [ 2 ] и posz == gamblingSpot [ " HouseSwitch " ] [ 3 ], то
- spot = gamblingSpot
- перемена
- конец
- конец
- конец
- если не пятно то
- для _, gamblingSpot в ipairs (Gambling_Depots. Venore ) сделать
- если posx == gamblingSpot [ " HouseSwitch " ] [ 1 ] и posy == gamblingSpot [ " HouseSwitch " ] [ 2 ] и posz == gamblingSpot [ " HouseSwitch " ] [ 3 ], то
- spot = gamblingSpot
- перемена
- конец
- конец
- конец
- если пятно то
- Координаты. Locker . х , координаты. Locker . у , координаты. Locker . z = spot [ " HouseDepot " ] [ 1 ], spot [ " HouseDepot " ] [ 2 ], spot [ " HouseDepot " ] [ 3 ]
- Координаты. Игрок . х , координаты. Игрок . у , координаты. Игрок . z = spot [ " PlayerSwitch " ] [ 1 ], spot [ " PlayerSwitch " ] [ 2 ], spot [ " PlayerSwitch " ] [ 3 ]
- Координаты. Счетчик . х , координаты. Счетчик . у , координаты. Счетчик . z = spot [ " Counter " ] [ 1 ], spot [ " Counter " ] [ 2 ], spot [ " Counter " ] [ 3 ]
- Координаты. Adjacent_Locker . х , координаты. Adjacent_Locker . у , координаты. Adjacent_Locker . z = spot [ " PlayerDepot " ] [ 1 ], spot [ " PlayerDepot " ] [ 2 ], spot [ " PlayerDepot " ] [ 3 ]
- вернуть истину
- конец
- вернуть ложь
- конец
- функция onWalkLabel ( labelName )
- local newLocation = false
- if (labelName == ' CheckDepotsDown ' ) тогда
- local AvailableDepots = CheckAvailableDepots ()
- if ( # AvailableDepots > 0 ) тогда
- gotoLabel (AvailableDepots [ 1 ] [ " Имя " ])
- еще
- gotoLabel ( ' StairsUp ' )
- конец
- elseif (labelName == ' CheckDepotsUp ' ) затем
- если GoCheckDown тогда
- gotoLabel ( « StairsDown » )
- еще
- local AvailableDepots = CheckAvailableDepots ()
- if ( # AvailableDepots > 0 ) тогда
- gotoLabel (AvailableDepots [ 1 ] [ " Имя " ])
- еще
- gotoLabel ( « StairsDown » )
- конец
- конец
- elseif (labelName == ' CheckDownstairs ' ) затем
- gotoLabel ( ' GroundFloor ' )
- elseif (labelName == ' CheckUpstairs ' ) затем
- gotoLabel ( « Первый этаж » )
- elseif (labelName == ' StairsDown ' ) затем
- GoCheckDown = false
- elseif (labelName == ' CheckSpot1 ' ) или
- (labelName == ' CheckSpot2 ' ) или
- (labelName == ' CheckSpot3 ' ) или
- (labelName == ' CheckSpot4 ' ) или
- (labelName == ' CheckSpot5 ' ) или
- (labelName == ' CheckSpot6 ' ) или
- (labelName == ' CheckSpot7 ' ) или
- (labelName == ' CheckSpot8 ' ) или
- (labelName == ' CheckSpot9 ' ) или
- (labelName == ' CheckSpot10 ' ) или
- (labelName == ' CheckSpot11 ' ) или
- (labelName == ' CheckSpot12 ' ) или
- (labelName == ' CheckSpot13 ' ) или
- (labelName == ' CheckSpot14 ' ) или
- (labelName == ' CheckSpot15 ' ) или
- (labelName == ' CheckSpot16 ' ) затем
- newLocation = UpdateCoordinates ()
- конец
- если newLocation тогда
- setWalkerEnabled ( false )
- если Open_Containers () то
- CheckDiceAndDecoration ()
- Last_Activity = os.time ()
- Общее. Предметы . LastAmountSeen = 0
- Общее. Предметы . Сумма = 0
- Общее. Предметы . Значение = 0
- Casino_Loaded = true
- ProcessDebugMessage ( « Казино » , « Персонаж размещен в новом депо » )
- конец
- конец
- конец
- функция Count_Platinum_Extended ()
- если # Контейнеры. Платина > 0 тогда
- локальный итог = 0
- для _, контейнер в ipairs (контейнеры. платина ) сделать
- итого = итого + контейнер: CountItemsOfID ( 3035 )
- конец
- возврат итого
- конец
- вернуть 0
- конец
- функция Count_Crystal_Extended ()
- если # Контейнеры. Кристалл > 0 тогда
- локальный итог = 0
- для _, контейнер в ipairs (контейнеры. кристалл ) сделать
- итого = итого + контейнер: CountItemsOfID ( 3043 )
- конец
- возврат итого
- конец
- вернуть 0
- конец
- функция Count_Extended ( контейнер , идентификаторы )
- если контейнер, то
- local tempTotal = 0
- для _, itemID в ipairs (идентификаторах) сделать
- tempTotal = tempTotal + container: CountItemsOfID (itemID)
- конец
- возврат tempTotal
- конец
- вернуть 0
- конец
- функция CheckDiceAndDecoration ()
- PickUpDiceAndDecoration ()
- если _Decoration_Enabled то
- если _Decoration_Item_ID > 0, то
- если Count_Extended (Containers. Depot , {_Decoration_Item_ID}) > 0, то
- для itemDepotChest = контейнеры. Депо : ItemCount () - 1 , 0 , - 1 до
- local tempItemDepotChest = Контейнеры. Депо : GetItemData (itemDepotChest)
- if _Decoration_Item_ID == tempItemDepotChest. идентификатор затем
- пока контейнеры. Depot : MoveItemToGround (itemDepotChest, Координаты. Locker . X , Координаты. Locker . Y , Координаты. Locker . Z , 1 ) ~ = 1 do end
- подождите ( 1000 + Self. Ping ())
- перемена
- конец
- конец
- конец
- конец
- конец
- если Count_Extended (Containers. Depot , Dice_IDs) > 0, то
- для itemDepotChest = контейнеры. Депо : ItemCount () - 1 , 0 , - 1 до
- local tempItemDepotChest = Контейнеры. Депо : GetItemData (itemDepotChest)
- если таблица. содержит (Dice_IDs, tempItemDepotChest. id ) затем
- пока контейнеры. Depot : MoveItemToGround (itemDepotChest, Координаты. Locker . X , Координаты. Locker . Y , Координаты. Locker . Z , 1 ) ~ = 1 do end
- подождите ( 1000 + Self. Ping ())
- перемена
- конец
- конец
- конец
- LocalProxyMessage = ноль
- EffectProxyMessage = ноль
- конец
- функция PickUpDiceAndDecoration ( контейнер )
- if (Контейнеры. Шкафчик и Контейнеры. Склад ) тогда
- если Count_Extended (Containers. Locker , Dice_IDs) > 0, то
- для itemLocker = контейнеры. Locker : ItemCount () - 1 , 0 , - 1 до
- если itemLocker > 28, то
- itemLocker = 28
- конец
- local tempItemLocker = Контейнеры. Locker : GetItemData (itemLocker)
- если таблица. содержит (Dice_IDs, tempItemLocker. id ) затем
- пока контейнеры. Шкафчик : MoveItemToContainer (itemLocker, контейнеры. Депо : Index (), 0 ) ~ = 1 сделать конец
- подождите ( 1000 + Self. Ping ())
- перемена
- конец
- конец
- конец
- если _Decoration_Enabled то
- если _Decoration_Item_ID > 0, то
- если Count_Extended (Containers. Locker , {_Decoration_Item_ID}) > 0, то
- для itemLocker = контейнеры. Locker : ItemCount () - 1 , 0 , - 1 до
- если itemLocker > 28, то
- itemLocker = 28
- конец
- local tempItemLocker = Контейнеры. Locker : GetItemData (itemLocker)
- if _Decoration_Item_ID == tempItemLocker. идентификатор затем
- пока контейнеры. Шкафчик : MoveItemToContainer (itemLocker, контейнеры. Депо : Index (), 0 ) ~ = 1 сделать конец
- подождите ( 1000 + Self. Ping ())
- перемена
- конец
- конец
- конец
- конец
- конец
- конец
- конец
- функция Open_Containers ()
- местные попытки = 10
- пока # Контейнер. GetAll () > 0 сделать
- для я = 0 , 15 до
- closeContainer (i)
- конец
- конец
- пока # Контейнер. GetAll () < 5 или пытается > 0 сделать
- пока # Контейнер. GetAll () > 0 сделать
- для я = 0 , 15 до
- closeContainer (i)
- конец
- конец
- Клиент. HideEquipment ()
- если Self. BrowseField (Координаты. Счетчик . X , Координаты. Счетчик . Y , Координаты. Счетчик . Z ) == 1 затем
- подождите ( 500 + Self. Ping ())
- Контейнеры. Счетчик = Контейнер (_OpenTibia и _OpenTibia_Indexes [ 1 ] - 1 или 0 )
- Контейнеры. Счетчик : Свернуть ()
- подождите ( 100 )
- Клиент. HideEquipment ()
- ProcessDebugMessage ( « Отладчик казино » , « Открыто поле просмотра счетчика » )
- если Self. BrowseField (Координаты. Locker . X , Координаты. Locker . Y , Координаты. Locker . Z ) == 1 затем
- подождите ( 500 + Self. Ping ())
- Контейнеры. Locker = контейнер (_OpenTibia и _OpenTibia_Indexes [ 2 ] - 1 или 1 )
- Контейнеры. Locker : свернуть ()
- подождите ( 100 )
- Клиент. HideEquipment ()
- ProcessDebugMessage ( « Отладчик казино » , « Открыто поле просмотра шкафчика » )
- если таблица. содержит (Locker_IDs, Containers. Locker : GetItemData ( 0 ). id ) затем
- Контейнеры. Locker : OpenChildren ({Контейнеры. Locker : GetItemData ( 0 ). Id , false })
- подождите ( 500 + Self. Ping ())
- Если контейнер (_OpenTibia и _OpenTibia_Indexes [ 3 ] - 1 или 2 ): UseItem ( 0 , true ) == 1 затем
- местный индекс = 0
- подождите ( 500 + Self. Ping ())
- Контейнеры. Депо = Контейнер (_OpenTibia и _OpenTibia_Indexes [ 3 ] - 1 или 2 )
- Контейнеры. Депо : свернуть ()
- подождите ( 100 + Self. Ping ())
- если Accept_Items то
- Клиент. HideEquipment ()
- если Count_Extended (Containers. Depot , {Item. GetID (_Containers_Items)}) > 0 тогда
- для я = 0 , контейнеры. Депо : ItemCount () - 1 до
- местный пункт = контейнеры. Депо : GetItemData (i)
- если предмет. id == Item. GetID (_Containers_Items) затем
- локальный opento = контейнер. GetFreeSlot ()
- while (Containers. Depot : UseItem (i) ~ = 1 ) действительно ждут ( 300 + Self. Ping ()) конец
- подождите ( 500 + Self. Ping ())
- Контейнеры. Предметы = Контейнер (opento)
- Контейнеры. Предметы : Свернуть ()
- подождите ( 100 + Self. Ping ())
- ProcessDebugMessage ( « Отладчик казино » , « Контейнер предметов открыт » )
- перемена
- конец
- конец
- еще
- ProcessDebugMessage ( ' Казино ' , ' Ошибка. Контейнер предметов не найден: ' .. _Containers_Items)
- вернуть ложь
- конец
- конец
- Клиент. HideEquipment ()
- индекс = 1
- если Count_Extended (Containers. Depot , {Item. GetID (_Containers_CrystalCoins)}) > 0 тогда
- для я = 0 , контейнеры. Депо : ItemCount () - 1 до
- если индекс < 3, то
- местный пункт = контейнеры. Депо : GetItemData (i)
- если предмет. id == Item. GetID (_Containers_CrystalCoins) затем
- локальный opento = контейнер. GetFreeSlot ()
- while (Containers. Depot : UseItem (i) ~ = 1 ) действительно ждут ( 300 + Self. Ping ()) конец
- подождите ( 500 + Self. Ping ())
- Контейнеры. Crystal [index] = Контейнер (открытый)
- Контейнеры. Crystal [index]: свернуть ()
- подождите ( 100 + Self. Ping ())
- индекс = индекс + 1
- конец
- еще
- перемена
- конец
- конец
- еще
- ProcessDebugMessage ( ' Казино ' , ' Ошибка. Контейнеры с хрустальными монетами не найдены: ' .. _Containers_CrystalCoins)
- вернуть ложь
- конец
- Клиент. HideEquipment ()
- ProcessDebugMessage ( « Отладчик казино » , « Контейнеры с хрустальными монетами открыты » )
- индекс = 1
- если Count_Extended (Containers. Depot , {Item. GetID (_Containers_PlatinumCoins)}) > 0 тогда
- для я = 0 , контейнеры. Депо : ItemCount () - 1 до
- если индекс < 8, то
- местный пункт = контейнеры. Депо : GetItemData (i)
- если предмет. id == Item. GetID (_Containers_PlatinumCoins) затем
- локальный opento = контейнер. GetFreeSlot ()
- while (Containers. Depot : UseItem (i) ~ = 1 ) действительно ждут ( 300 + Self. Ping ()) конец
- подождите ( 500 + Self. Ping ())
- Контейнеры. Платина [index] = Контейнер (opento)
- Контейнеры. Платина [index]: свернуть ()
- подождите ( 100 + Self. Ping ())
- индекс = индекс + 1
- конец
- еще
- перемена
- конец
- конец
- еще
- ProcessDebugMessage ( ' Казино ' , ' Ошибка. Контейнер платиновых монет не найден: ' .. _Containers_PlatinumCoins)
- вернуть ложь
- конец
- подождите ( 500 + Self. Ping ())
- Клиент. HideEquipment ()
- ProcessDebugMessage ( « Отладчик казино » , « Открыты контейнеры с платиновыми монетами » )
- ProcessDebugMessage ( « Казино » , « Все контейнеры были успешно загружены » )
- вернуть истину
- конец
- конец
- конец
- конец
- попытки = попытки - 1
- конец
- вернуть ложь
- конец
- ProcessDebugMessage ( « Казино » , « Скрипт успешно загружен » )
- Модуль ( ' PlayerDectectionSystem ' , функция ( Mod )
- если Casino_Loaded тогда
- если не Processing_Data тогда
- local foundPlayer = false
- для имени, существо в существе . iPlayers ( 2 ) сделать
- if (существо: Position (). x == Координаты. Player . x и существо: Position (). y == Координаты. Player . y и существо: Position (). z == Координаты. Player . z ) затем
- foundPlayer = true
- если Last_Player ~ = тварь: имя () то
- Last_Activity_Player_In_Spot = os.time ()
- Last_Player = существо: Имя ()
- SendMessage (Last_Player, Welcome_Messages [ math.random ( 1 , # Welcome_Messages)]: GSUB ( ' % [игрок%] ' , Last_Player), ложно )
- конец
- перемена
- конец
- конец
- Player_Detected = foundPlayer
- если Player_Detected то
- существо = существо (Last_Player)
- если существо то
- if (существо: Position (). x < Self. Position (). x ) тогда
- if (Self. LookDirection () ~ = WEST) тогда
- Атман. Turn (WEST)
- конец
- elseif (существо: Position (). x > Self. Position (). x ) затем
- if (Self. LookDirection () ~ = EAST) тогда
- Атман. Поворот (ВОСТОК)
- конец
- elseif (существо: Position (). y < Self. Position (). y ) затем
- if (Self. LookDirection () ~ = NORTH) тогда
- Атман. Поворот (СЕВЕР)
- конец
- elseif (существо: Position (). y > Self. Position (). y ) затем
- if (Self. LookDirection () ~ = SOUTH) тогда
- Атман. Поворот (ЮГ)
- конец
- еще
- ProcessDebugMessage ( « Отладчик казино » , « Ошибка. Персонаж - потенциальный игрок » )
- конец
- конец
- еще
- если координаты. Locker . у < Я. Положение (). у тогда
- if (Self. LookDirection () ~ = SOUTH) тогда
- Last_Activity_Player_In_Spot = os.time ()
- Last_Player = ноль
- Атман. Поворот (ЮГ)
- конец
- Координаты elseif . Locker . y > Self. Положение (). у тогда
- if (Self. LookDirection () ~ = NORTH) тогда
- Last_Activity_Player_In_Spot = os.time ()
- Last_Player = ноль
- Атман. Поворот (СЕВЕР)
- конец
- Координаты elseif . Locker . х < Я. Положение (). х то
- if (Self. LookDirection () ~ = EAST) тогда
- Last_Activity_Player_In_Spot = os.time ()
- Last_Player = ноль
- Атман. Поворот (ВОСТОК)
- конец
- elseif Координаты. Locker . x > Self. Положение (). х то
- if (Self. LookDirection () ~ = WEST) тогда
- Last_Activity_Player_In_Spot = os.time ()
- Last_Player = ноль
- Атман. Turn (WEST)
- конец
- еще
- ProcessDebugMessage ( « Отладчик казино » , « Ошибка. Персонаж находится на шкафчике » )
- конец
- конец
- конец
- конец
- Мод: Задержка ( WorkloadExecutionInterval () * 800 )
- конец )
- Модуль ( « АнтиТрашСистема » , функция ( Мод )
- если Casino_Loaded тогда
- если не Processing_Data тогда
- для itemCounter = контейнеры. Счетчик : ItemCount () - 1 , 0 , - 1 до
- если itemCounter > 28, то
- itemCounter = 28
- конец
- local tempItemCounter = Контейнеры. Счетчик : GetItemData (itemCounter)
- если не стол. содержит (Money_IDs, tempItemCounter. id ) затем
- local isAcceptedItem = false
- если Accept_Items то
- для _, Accepted_Item в ipairs (Accepted_Items_List) сделать
- если Accepted_Item. ID == tempItemCounter. идентификатор затем
- isAcceptedItem = true
- перемена
- конец
- конец
- конец
- если не isAcceptedItem, то
- если не стол. содержит (Dustbin_Trash, tempItemCounter. id ) затем
- Контейнеры. Счетчик : MoveItemToGround (. ItemCounter, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г , tempItemCounter. Кол )
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemCounter идентификатор .. ' ] ' .. . TempItemCounter рассчитывать .. ' ' .. . Пункт GetName . (TempItemCounter идентификатор ) .. ' - Counter >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
- перемена
- еще
- Local ClosestDustbin = 20
- local ClosestDustbinLocation = {}
- для _, мусорный ящик в ipairs (Dustbin_Locations) сделать
- local xDist = math.abs (мусорная корзина [ 1 ] - Self. Position (). x )
- local yDist = math.abs (мусорная корзина [ 2 ] - Self. Position (). y )
- если xDist <= 7 и yDist <= 5 и мусорная корзина [ 3 ] == Self. Положение (). г , то
- если ClosestDustbin > xDist, то
- ClosestDustbin = xDist
- ClosestDustbinLocation = мусорная корзина
- elseif ClosestDustbin > yDist затем
- ClosestDustbin = yDist
- ClosestDustbinLocation = мусорная корзина
- конец
- конец
- конец
- если ClosestDustbinLocation и ClosestDustbin < 20, то
- Контейнеры. Счетчик : MoveItemToGround (itemCounter, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 .], TempItemCounter рассчитывать )
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemCounter идентификатор .. ' ] ' .. . TempItemCounter рассчитывать .. ' ' .. . Пункт GetName . (TempItemCounter идентификатор ) .. ' - Counter >> Мусорная корзина [ ' .. ClosestDustbinLocation [ 1 ] .. ' , ' .. ClosestDustbinLocation [ 2 ] .. ' , '.. ClosestDustbinLocation [ 3 ] .. ' ] ' )
- перемена
- еще
- Контейнеры. Счетчик : MoveItemToGround (. ItemCounter, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г , tempItemCounter. Кол )
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemCounter идентификатор .. ' ] ' .. . TempItemCounter рассчитывать .. ' ' .. . Пункт GetName . (TempItemCounter идентификатор ) .. ' - Counter >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
- перемена
- конец
- конец
- конец
- перемена
- конец
- конец
- для itemLocker = контейнеры. Locker : ItemCount () - 1 , 0 , - 1 до
- если itemLocker > 28, то
- itemLocker = 28
- конец
- local tempItemLocker = Контейнеры. Locker : GetItemData (itemLocker)
- если не стол. содержит (Locker_IDs, tempItemLocker. id ) затем
- если не стол. содержит (Money_IDs, tempItemLocker. id ) затем
- if (_Decoration_Enabled и _Decoration_Item_ID ~ = 0 и _Decoration_Item_ID ~ = tempItemLocker. id ) или
- не _Decoration_Enabled или
- _Decoration_Item_ID == 0 или
- (_Decoration_Enabled и _Decoration_Item_ID ~ = 0 и Count_Extended (Containers. Locker , {_Decoration_Item_ID}) > 1 ) затем
- если не стол. содержит (Dice_IDs, tempItemLocker. id ) затем
- если не стол. содержит (Dustbin_Trash, tempItemLocker. id ) затем
- if (_Decoration_Item_ID == tempItemLocker. id ) тогда
- Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker кол - 1 )
- еще
- Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker рассчитывать )
- конец
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
- перемена
- еще
- Local ClosestDustbin = 20
- local ClosestDustbinLocation = {}
- для _, мусорный ящик в ipairs (Dustbin_Locations) сделать
- local xDist = math.abs (мусорная корзина [ 1 ] - Self. Position (). x )
- local yDist = math.abs (мусорная корзина [ 2 ] - Self. Position (). y )
- если xDist <= 7 и yDist <= 5 и мусорная корзина [ 3 ] == Self. Положение (). г , то
- если ClosestDustbin > xDist, то
- ClosestDustbin = xDist
- ClosestDustbinLocation = мусорная корзина
- elseif ClosestDustbin > yDist затем
- ClosestDustbin = yDist
- ClosestDustbinLocation = мусорная корзина
- конец
- конец
- конец
- если ClosestDustbinLocation и ClosestDustbin < 20, то
- if (_Decoration_Item_ID == tempItemLocker. id ) тогда
- Контейнеры. Шкафчик : MoveItemToGround (itemLocker, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 ], tempItemLocker. Кол - 1 )
- еще
- Контейнеры. Шкафчик : MoveItemToGround (itemLocker, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 ], tempItemLocker. Кол )
- конец
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Мусорная корзина [ ' .. ClosestDustbinLocation [ 1 ] .. ' , ' .. ClosestDustbinLocation [ 2 ] .. ' , '.. ClosestDustbinLocation [ 3 ] .. ' ] ' )
- перемена
- еще
- if (_Decoration_Item_ID == tempItemLocker. id ) тогда
- Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker кол - 1 )
- еще
- Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker рассчитывать )
- конец
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
- перемена
- конец
- конец
- еще
- если Count_Extended (Containers. Locker , Dice_IDs) > 1, то
- если контейнеры. Элементы и Accept_Items тогда
- Контейнеры. Locker : MoveItemToContainer (itemLocker, Контейнеры. Элементы : Индекс (), Контейнеры. Элементы : ItemCapacity () - 1 , 1 )
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Контейнер элементов [ ' .. Координаты. Смежный_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
- перемена
- еще
- Local ClosestDustbin = 20
- local ClosestDustbinLocation = {}
- для _, мусорный ящик в ipairs (Dustbin_Locations) сделать
- local xDist = math.abs (мусорная корзина [ 1 ] - Self. Position (). x )
- local yDist = math.abs (мусорная корзина [ 2 ] - Self. Position (). y )
- если xDist <= 7 и yDist <= 5 и мусорная корзина [ 3 ] == Self. Положение (). г , то
- если ClosestDustbin > xDist, то
- ClosestDustbin = xDist
- ClosestDustbinLocation = мусорная корзина
- elseif ClosestDustbin > yDist затем
- ClosestDustbin = yDist
- ClosestDustbinLocation = мусорная корзина
- конец
- конец
- конец
- если ClosestDustbinLocation и ClosestDustbin < 20, то
- Контейнеры. Шкафчик : MoveItemToGround (itemLocker, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 ], tempItemLocker. Кол )
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Мусорная корзина [ ' .. ClosestDustbinLocation [ 1 ] .. ' , ' .. ClosestDustbinLocation [ 2 ] .. ' , '.. ClosestDustbinLocation [ 3 ] .. ' ] ' )
- перемена
- еще
- Контейнеры. Locker : MoveItemToContainer (itemLocker, Контейнеры. Элементы : Индекс (), Контейнеры. Элементы : ItemCapacity () - 1 , 1 )
- ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Контейнер элементов [ ' .. Координаты. Смежный_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
- перемена
- конец
- конец
- конец
- конец
- конец
- еще
- Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты счетчика . Х ., Координаты счетчика . У ., Координаты счетчика . Г ., TempItemLocker рассчитывать )
- перемена
- конец
- конец
- конец
- конец
- конец
- Мод: Задержка ( WorkloadExecutionInterval () * 800 )
- конец )
- если _Effects_Enabled то
- Модуль ( ' EffectsSystem ' , функция ( Мод )
- если Casino_Loaded тогда
- если не Processing_Data тогда
- если _Effects_Enabled то
- если _Effects_Item: lower () == " party hat ", то
- if (Self. Head (). id == Item. GetID ( ' party hat ' )) тогда
- Атман. UseItemFromEquipment ( ' head ' )
- Last_Party_Hat = os.time ()
- конец
- elseif _Effects_Item: lower () == " загадочный череп вуду " тогда
- если Count_Extended (Containers. Depot , { 5669 }) > 0, то
- для EffectItemInDepot = 0 , контейнеры. Депо : ItemCount () - 1 до
- если EffectItemInDepot > 28, то
- EffectItemInDepot = 28
- конец
- local tempItem = Контейнеры. Депо : GetItemData (EffectItemInDepot)
- если 5669 == tempItem. идентификатор затем
- Контейнеры. Депо : UseItem (EffectItemInDepot, true )
- перемена
- конец
- конец
- конец
- еще
- если Count_Extended (Containers. Depot , {Item. GetID (_Effects_Item)}) > 0 тогда
- для EffectItemInDepot = 0 , контейнеры. Депо : ItemCount () - 1 до
- если EffectItemInDepot > 28, то
- EffectItemInDepot = 28
- end
- local tempItem = Containers.Depot:GetItemData(EffectItemInDepot)
- if Item.GetID(_Effects_Item) == tempItem.id then
- Containers.Depot:UseItem(EffectItemInDepot, true)
- break
- end
- end
- end
- end
- end
- end
- end
- Mod:Delay(_Effects_Interval*1000)
- end)
- end
- Module('BroadcastSystem', function(Mod)
- if _Broadcast_UseMessages then
- if Casino_Loaded then
- if not Processing_Data then
- if (os.difftime(os.time(),Last_Broadcast)>_Broadcast_Interval) then
- if (os.difftime(os.time(),Last_Message)>2) then
- local PlayersAround = false
- if not _Broadcast_FixedInterval then
- for name, creature in Creature.iPlayers(2) do
- if name and creature then
- PlayersAround = true
- break
- end
- end
- end
- if not PlayersAround then
- _Broadcast_Messages_Processed = {}
- for index, value in ipairs(_Broadcast_Messages) do
- _Broadcast_Messages_Processed[index] = value:gsub('%[name%]', Self.Name()):
- gsub('%[minhighlow%]', (High_Low_Minimum/1000)..'k'):
- gsub('%[maxhighlow%]', (High_Low_Maximum/1000)..'k'):
- gsub('%[minoddeven%]', (Odd_Even_Minimum/1000)..'k'):
- gsub('%[maxoddeven%]', (Odd_Even_Maximum/1000)..'k'):
- gsub('%[minfirstsecondlast%]', (First_Second_Last_Minimum/1000)..'k'):
- gsub('%[maxfirstsecondlast%]', (First_Second_Last_Maximum/1000)..'k'):
- gsub('%[minsingle%]', (Single_Numbers_Minimum/1000)..'k'):
- gsub ( ' % [maxsingle%] ' , (Single_Numbers_Maximum / 1000 ) .. ' k ' ):
- gsub ( ' % [minblackjack%] ' , (Blackjack_Minimum / 1000 ) .. ' k ' ):
- gsub ( ' % [maxblackjack%] ' , (Blackjack_Maximum / 1000 ) .. ' k ' ):
- gsub('%[payouthighlow%]', High_Low_Payout..'%%'):
- gsub('%[payoutoddeven%]', Odd_Even_Payout..'%%'):
- gsub('%[payoutfirstsecondlast%]', First_Second_Last_Payout..'%%'):
- gsub('%[payoutsingle%]', Single_Numbers_Payout..'%%'):
- gsub('%[payoutblackjack%]', Blackjack_Payout..'%%')
- _Broadcast_Messages_Processed[index] = _Broadcast_UppercaseMessages and _Broadcast_Messages_Processed[index]:upper() or _Broadcast_Messages_Processed[index]
- end
- local Custom_Message_Processed = _Broadcast_Messages_Processed[math.random(1, #_Broadcast_Messages_Processed)]
- if _Broadcast_YellMessages then
- Self.Yell(Custom_Message_Processed)
- else
- Self.Say(Custom_Message_Processed)
- end
- ProcessDebugMessage('Casino Debugger', 'Send broadcast message: "'..Custom_Message_Processed..'"')
- Last_Broadcast = os.time()
- Last_Message = os.time()
- end
- end
- end
- end
- end
- end
- Mod:Delay(10000)
- end)
- Module('UpdateSystem', function(Mod)
- local StopMessage = nil
- local LowCash = false
- local TakeScreenshot = true
- if Casino_Loaded then
- if #Container.GetAll() == 0 then
- if (_Extra_RestartOnKick) then
- Casino_Loaded = false
- Processing_Data = false
- if UpdateCoordinates() then
- if Open_Containers() then
- PickUpDiceAndDecoration()
- CheckDiceAndDecoration()
- Casino_Loaded = true
- ProcessDebugMessage('Casino', 'The script has been restarted')
- end
- end
- end
- else
- if not Processing_Data then
- local AvailableSlotsPlat = false
- local AvailableSlotsCrystal = false
- local AvailableSlotsItem = false
- local CipsoftMemberDetected = nil
- HEADS_UP_DISPLAY.AMOUNT_CASH.DISPLAY_CRYSTAL.AMOUNT:SetText(tostring(Count_Crystal_Extended()*10)..'k')
- HEADS_UP_DISPLAY.AMOUNT_CASH.DISPLAY_PLATINUM.AMOUNT:SetText(tostring(Count_Platinum_Extended()/10)..'k')
- HEADS_UP_DISPLAY.AMOUNT_ITEMS.DISPLAY_ITEM.AMOUNT:SetText(tostring(Total.Items.Amount)..' ('..tostring(Total.Items.Value/1000)..'k)')
- if (_Extra_CipStaffDetection) then
- for name, creature in Creature.iCreatures() do
- for _, member in ipairs(CipsoftMembers) do
- if creature:Name():lower():find(member) then
- CipsoftMemberDetected = creature:Name()
- break
- end
- end
- end
- if CipsoftMemberDetected then
- StopMessage = 'The script has detected a Cipsoft member nearby: '..CipsoftMemberDetected..'. Stopping the script and closing the client immediately'
- ManualStop = true
- PybfrPyvrag = true
- end
- end
- if Containers.Platinum then
- AvailableSlotsPlat = false
- for _, container_Platinum in ipairs(Containers.Platinum) do
- if container_Platinum:EmptySlots() > 2 then
- AvailableSlotsPlat = true
- break
- end
- end
- end
- if Containers.Crystal then
- AvailableSlotsCrystal = false
- for _, container_Crystal in ipairs(Containers.Crystal) do
- if container_Crystal:EmptySlots() > 2 then
- AvailableSlotsCrystal = true
- break
- end
- end
- end
- if Accept_Items then
- if Containers.Items then
- AvailableSlotsItem = false
- if Containers.Items:EmptySlots() > 0 and Count_Extended(Containers.Items, {Containers.Items:ID()}) > 0 then
- AvailableSlotsItem = true
- end
- end
- else
- AvailableSlotsItem = true
- end
- if not AvailableSlotsPlat then
- StopMessage = 'Stopping script due to few available slots for platinum coins'
- ManualStop = true
- elseif not AvailableSlotsCrystal then
- StopMessage = 'Stopping script due to few available slots for crystal coins'
- ManualStop = true
- elseif not AvailableSlotsItem then
- StopMessage = 'Stopping script due to few available slots for items. Please, add another "'.._Containers_Items..'" inside the last container'
- ManualStop = true
- end
- if Count_Platinum_Extended() <= 100 then
- StopMessage = 'Stopping script due to low platinum coins ('..(Count_Platinum_Extended()/1000)..'k)'
- ManualStop = true
- end
- if _Extra_AlarmLowCash then
- if not ManualStop then
- local AvailableAmount = Count_Crystal_Extended() * 10000
- if High_Low then
- local RequiredAmount = (High_Low_Maximum * High_Low_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play High/Low ('..(AvailableAmount/1000)..'k)'
- end
- elseif Odd_Even then
- local RequiredAmount = (Odd_Even_Maximum * Odd_Even_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Odd/Even ('..(AvailableAmount/1000)..'k)'
- end
- elseif Blackjack then
- local RequiredAmount = (Blackjack_Maximum * Blackjack_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Blackjack ('..(AvailableAmount/1000)..'k)'
- end
- elseif First_Second_Last then
- local RequiredAmount = (First_Second_Last_Maximum * First_Second_Last_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play First/Second/Last ('..(AvailableAmount/1000)..'k)'
- end
- elseif Single_Numbers then
- local RequiredAmount = (Single_Numbers_Maximum * Single_Numbers_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Single Numbers ('..(AvailableAmount/1000)..'k)'
- end
- elseif Highest_Lowest then
- local RequiredAmount = (Highest_Lowest_Maximum * Highest_Lowest_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Highest/Lowest ('..(AvailableAmount/1000)..'k)'
- end
- elseif Sequence then
- local RequiredAmount = (Sequence_Maximum * Sequence_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Sequence ('..(AvailableAmount/1000)..'k)'
- end
- elseif Pair_Of_Numbers then
- local RequiredAmount = (Pair_Of_Numbers_Maximum * Pair_Of_Numbers_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Pair Of Numbers ('..(AvailableAmount/1000)..'k)'
- end
- elseif Sum_Of_Numbers then
- local RequiredAmount = (Sum_Of_Numbers_Maximum * Sum_Of_Numbers_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Sum Of Numbers ('..(AvailableAmount/1000)..'k)'
- end
- elseif Beat_That then
- local RequiredAmount = (Beat_That_Maximum * Beat_That_Payout / 100)
- if AvailableAmount < RequiredAmount then
- StopMessage = 'Stopping script due to low amount of cash to play Beat That ('..(AvailableAmount/1000)..'k)'
- end
- end
- if StopMessage then
- ManualStop = true
- LowCash = true
- end
- end
- end
- end
- end
- end
- if not Processing_Data then
- Time_Now = os.date("*t")
- if Server_Save <= ((Time_Now.hour * 3600) + (Time_Now.min * 60) + Time_Now.sec) then
- Server_Save_TimeLeft = os.difftime((Server_Save + 24 * 3600), (Time_Now.hour * 3600) + (Time_Now.min * 60) + Time_Now.sec)
- else
- Server_Save_TimeLeft = os.difftime(Server_Save,(Time_Now.hour * 3600) + (Time_Now.min * 60) + Time_Now.sec)
- end
- local diffSecs = os.difftime(os.time(),Last_Bid)
- local nHours = string.format("%02.f", math.floor(diffSecs/3600))
- local nMins = string.format("%02.f", math.floor((diffSecs - (nHours * 3600)) / 60))
- local nSecs = string.format("%02.f", math.floor(diffSecs - (nHours * 3600) - (nMins * 60)))
- HEADS_UP_DISPLAY.LAST_BID.VALUE:SetText(nHours..':'..nMins..':'..nSecs)
- diffSecs = os.difftime(os.time(),Time_Script_Started)
- nHours = string.format("%02.f", math.floor(diffSecs/3600))
- nMins = string.format("%02.f", math.floor((diffSecs - (nHours * 3600)) / 60))
- nSecs = string.format("%02.f", math.floor(diffSecs - (nHours * 3600) - (nMins * 60)))
- HEADS_UP_DISPLAY.TIME_RUNNING.VALUE:SetText(nHours..':'..nMins..':'..nSecs)
- nHours = string.format("%02.f", math.floor(Server_Save_TimeLeft/3600))
- nMins = string.format("%02.f", math.floor((Server_Save_TimeLeft - (nHours * 3600)) / 60))
- nSecs = string.format("%02.f", math.floor(Server_Save_TimeLeft - (nHours * 3600) - (nMins * 60)))
- HEADS_UP_DISPLAY.SERVER_SAVE.VALUE:SetText(nHours..':'..nMins..':'..nSecs)
- if not ManualStop then
- if not Blackjack and
- not High_Low and
- not Odd_Even and
- not First_Second_Last and
- not Single_Numbers and
- not Highest_Lowest and
- not Sequence and
- not Pair_Of_Numbers and
- not Sum_Of_Numbers and
- not Beat_That then
- ProcessDebugMessage('Casino', 'You don\'t accept any game type. Please, check your settings and reload the script')
- ManualStop = true
- end
- if Server_Save_TimeLeft <= 300 then
- StopMessage = 'Stopping script due to Server Save'
- ProcessDebugMessage('Casino', StopMessage)
- ManualStop = true
- end
- else
- Casino_Loaded = false
- PickUpDiceAndDecoration()
- if _Statistics_UseLog and Casino_StatisticsFile then
- Casino_StatisticsFile:flush()
- end
- if StopMessage then
- ProcessDebugMessage('Casino', StopMessage)
- end
- if LowCash then
- if _Extra_AlarmLowCash then
- alert()
- end
- end
- if _Extra_ScreenshotOnStop then
- if TakeScreenshot then
- screenshot('Casino Script ['..Self.Name()..']['..os.date("%b %d %Y - %H.%M")..']')
- wait(1000)
- end
- end
- end
- if PybfrPyvrag then
- if _Debug_UseLog and Casino_LogFile then
- Casino_LogFile:close()
- end
- if _Statistics_UseLog and Casino_StatisticsFile then
- Casino_StatisticsFile:close()
- end
- os.exit()
- end
- end
- Mod:Delay(1000)
- end)
- Module('RestackSystem', function(Mod)
- if Casino_Loaded then
- if not Processing_Data then
- local ActionPerformed = false
- local FreeSlots_Platinum = nil
- local FreeSlots_Crystal = nil
- if not ActionPerformed then
- for _, container_Platinum in ipairs(Containers.Platinum) do
- for itemPlatinumCoin = container_Platinum:ItemCount() - 1, 0, -1 do
- if container_Platinum:ItemCount() >= 2 then
- if not (itemPlatinumCoin == 0) then
- local item_temp = container_Platinum:GetItemData(itemPlatinumCoin)
- if item_temp.count < 100 then
- container_Platinum:MoveItemToContainer(itemPlatinumCoin, container_Platinum:Index(), 0)
- ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' platinum coins to beginning of the stack')
- ActionPerformed = true
- break
- end
- end
- end
- end
- end
- end
- if not ActionPerformed then
- for _, container_platinum in ipairs(Containers.Platinum) do
- if container_platinum:EmptySlots() >= 2 then
- FreeSlots_Platinum = container_platinum
- break
- end
- end
- if FreeSlots_Platinum then
- for index, containersPlatinum in ripairs(Containers.Platinum) do
- if (index > 1) then
- for itemPlatinumCoin = containersPlatinum:ItemCount() - 1, 0, -1 do
- if(containersPlatinum:Index() > FreeSlots_Platinum:Index()) then
- local item_temp = containersPlatinum:GetItemData(itemPlatinumCoin)
- containersPlatinum:MoveItemToContainer(itemPlatinumCoin, FreeSlots_Platinum:Index(), 0)
- ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' platinum coins to empty slot in previous container')
- ActionPerformed = true
- break
- end
- end
- end
- end
- end
- end
- if not ActionPerformed then
- for _, container_Crystal in ipairs(Containers.Crystal) do
- if container_Crystal:EmptySlots() >= 2 then
- FreeSlots_Crystal = container_Crystal
- break
- end
- end
- if FreeSlots_Crystal then
- for index, container_Crystal in ripairs(Containers.Crystal) do
- if (index > 1) then
- for itemCrystalCoin = container_Crystal:ItemCount() - 1, 0, -1 do
- if(container_Crystal:Index() > FreeSlots_Crystal:Index()) then
- local item_temp = container_Crystal:GetItemData(itemCrystalCoin)
- container_Crystal:MoveItemToContainer(itemCrystalCoin, FreeSlots_Crystal:Index(), 0)
- ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' crystal coins to empty slot in previous container')
- ActionPerformed = true
- break
- end
- end
- end
- end
- end
- end
- if not ActionPerformed then
- for _, container_Crystal in ipairs(Containers.Crystal) do
- for itemCrystalCoin = container_Crystal:ItemCount() - 1, 0, -1 do
- if container_Crystal:ItemCount() >= 2 then
- if not (itemCrystalCoin == 0) then
- local item_temp = container_Crystal:GetItemData(itemCrystalCoin)
- if item_temp.count < 100 then
- container_Crystal:MoveItemToContainer(itemCrystalCoin, container_Crystal:Index(), 0)
- ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' crystal coins to beginning of the stack')
- ActionPerformed = true
- break
- end
- end
- end
- end
- end
- end
- if not ActionPerformed then
- if Accept_Items then
- if Containers.Items then
- if Containers.Items:EmptySlots() <= 5 then
- OpeningNestedContainers = true
- local TotalValueItems = 0
- local TotalCountItems = 0
- for indexItem = 0, Containers.Items:ItemCount()-1 do
- local tempItem = Containers.Items:GetItemData(indexItem)
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == tempItem.id then
- TotalValueItems = TotalValueItems + (Accepted_Item.Value * tempItem.count)
- TotalCountItems = TotalCountItems + 1
- end
- end
- end
- if Total.Items.LastAmountSeen ~= TotalValueItems then
- Total.Items.LastAmountSeen = TotalValueItems
- Total.Items.Amount = Total.Items.Amount + TotalCountItems
- Total.Items.Value = Total.Items.Value + TotalValueItems
- ProcessDebugMessage('Casino Debugger', 'Updating item values in HUD')
- end
- for indexContainer = Containers.Items:ItemCount()-1, 0, -1 do
- if Item.isContainer(Containers.Items:GetItemData(indexContainer).id) then
- Containers.Items:UseItem(indexContainer, true)
- ProcessDebugMessage('Casino Debugger', 'Opening new container for items')
- ActionPerformed = true
- break
- end
- end
- else
- OpeningNestedContainers = false
- end
- end
- end
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*400)
- end)
- Module('InactivityDetectionSystem', function(Mod)
- if _Inactivity_Detection then
- if not Processing_Data then
- if not ManualStop then
- if (os.difftime(os.time(), Last_Activity) >= (_Inactivity_Interval*60)) then
- ProcessDebugMessage('Casino', 'The character has been inactive for more than '.._Inactivity_Interval..' min. The script will search for a new depot')
- Casino_Loaded = false
- PickUpDiceAndDecoration()
- if Self.Position().z == 7 then
- gotoLabel('GroundFloor')
- elseif Self.Position().z == 6 then
- GoCheckDown = true
- gotoLabel('FirstFloor')
- end
- setWalkerEnabled(true)
- end
- end
- end
- else
- if _Inactivity_NotifyBlockedSpot then
- if not Processing_Data then
- if not ManualStop then
- if Last_Player then
- if (os.difftime(os.time(),Last_Activity_Player_In_Spot) >= _Inactivity_BlockedSpotInterval*60) then
- ProcessDebugMessage('Casino', 'The character has been inactive for more than '.._Inactivity_BlockedSpotInterval..' min. Notifying blocked spot')
- SendMessage(Last_Player, _Inactivity_MessageBlockedSpot, false)
- Last_Activity_Player_In_Spot = os.time()
- end
- end
- end
- end
- end
- end
- Mod:Delay(30000)
- end)
- if _Inactivity_AntiIdle then
- Module('InactivityAntiIdleSystem', function(Mod)
- if (not _Inactivity_Detection or _Inactivity_Interval >= 15) and not Processing_Data then
- Self.Turn(math.random(0, 3))
- end
- Mod:Delay(180000)
- end)
- end
- Module('ProcessPaymentSystem', function(Mod)
- if Processing_Data then
- if Payment_Give_Signal then
- if Payment_Given_Check.Platinum == 1 then
- Payment_Given_Check.Platinum_Amount = 0
- end
- if Payment_Given_Check.Crystal == 1 then
- if Payment_Given_Check.Crystal_Amount < 0 then
- Payment_Given_Check.Crystal_Amount = 0
- end
- end
- ProcessDebugMessage('Casino Debugger', 'Process Payment signal acknowledged | '..Payment_Given_Check.Crystal_Amount..' crystal coins | '..Payment_Given_Check.Platinum_Amount..' platinum coins')
- if Payment_Given_Check.Platinum_Amount > 0 then
- for _, container_Platinum in ipairs(Containers.Platinum) do
- for platinumInContainer = container_Platinum:ItemCount()-1,0,-1 do
- local tempItem = container_Platinum:GetItemData(platinumInContainer)
- if (tempItem.id == 3035 and tempItem.count >= Payment_Given_Check.Platinum_Amount) then
- Payment_Given_Check.Platinum = container_Platinum:MoveItemToGround(platinumInContainer,Coordinates.Counter.x,Coordinates.Counter.y,Coordinates.Counter.z,Payment_Given_Check.Platinum_Amount)
- break
- end
- end
- if Payment_Given_Check.Platinum == 1 then
- break
- end
- end
- elseif Payment_Given_Check.Crystal_Amount > 0 then
- for _, container_Crystal in ipairs(Containers.Crystal) do
- for crystalInContainer = container_Crystal:ItemCount()-1,0,-1 do
- local tempItem = container_Crystal:GetItemData(crystalInContainer)
- local AmountOfCrystalsToPay = 0
- if Payment_Given_Check.Crystal_Amount > 100 then
- AmountOfCrystalsToPay = 100
- else
- AmountOfCrystalsToPay = Payment_Given_Check.Crystal_Amount
- end
- if (tempItem.id == 3043 and tempItem.count >= AmountOfCrystalsToPay) then
- Payment_Given_Check.Crystal = container_Crystal:MoveItemToGround(crystalInContainer,Coordinates.Counter.x,Coordinates.Counter.y,Coordinates.Counter.z,AmountOfCrystalsToPay)
- break
- end
- end
- if Payment_Given_Check.Crystal == 1 then
- Payment_Given_Check.Crystal_Amount = Payment_Given_Check.Crystal_Amount - 100
- break
- end
- end
- else
- Payment_Give_Signal = false
- Payment_Given_Check.Platinum = 0
- Payment_Given_Check.Crystal = 0
- Payment_Given_Check.Crystal_Amount = 0
- if SkipRollingProcess then
- SkipRollingProcess = false
- ResetValues()
- end
- ProcessDebugMessage('Casino Debugger', 'The script finished processing effects')
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*400)
- end)
- Module('UseResultItemSystem', function(Mod)
- if Casino_Loaded then
- if Processing_Data then
- if Play_Instrument_Signal ~= 0 then
- if Play_Instrument_Signal == 1 then
- Losing_Item_Check = 0
- if Winning_Item == 'none' then
- Winning_Item_Check = 1
- else
- if not Payment_Give_Signal then
- if Winning_Item_Check == 0 then
- if Count_Extended(Containers.Depot, {Winning_Item_ID}) > 0 then
- for useItem = Containers.Depot:ItemCount()-1,0,-1 do
- if Containers.Depot:GetItemData(useItem).id == Winning_Item_ID then
- Winning_Item_Check = Containers.Depot:UseItem(useItem)
- break
- end
- end
- else
- Winning_Item_Check = 1
- end
- end
- end
- end
- elseif Play_Instrument_Signal == -1 then
- Winning_Item_Check = 0
- if Losing_Item == 'none' then
- Losing_Item_Check = 1
- else
- if Losing_Item_Check == 0 then
- if Count_Extended(Containers.Depot, {Losing_Item_ID}) > 0 then
- for useItem = Containers.Depot:ItemCount()-1,0,-1 do
- if Containers.Depot:GetItemData(useItem).id == Losing_Item_ID then
- Losing_Item_Check = Containers.Depot:UseItem(useItem)
- break
- end
- end
- else
- Losing_Item_Check = 1
- end
- end
- end
- end
- else
- Winning_Item_Check = 0
- Losing_Item_Check = 0
- end
- if (Winning_Item_Check == 1 or Losing_Item_Check == 1) then
- if Losing_Item_Check == 1 then
- ResetValues()
- elseif Winning_Item_Check == 1 then
- if Payment_Given_Check.Platinum_Amount == 0 and Payment_Given_Check.Crystal_Amount == 0 and not Payment_Give_Signal then
- ResetValues()
- end
- end
- ProcessDebugMessage('Casino Debugger', 'Use Item signal acknowledged | '..((Play_Instrument_Signal == 1) and Item.GetName(Winning_Item_ID) or Item.GetName(Losing_Item_ID)))
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*200)
- end)
- Module('ProcessRollSystem', function(Mod)
- if Casino_Loaded then
- if Pay_Cash_Signal ~= 0 then
- data = Pay_Cash_Signal
- Pay_Cash_Signal = 0
- if Blackjack and Blackjack_In_Progress then
- ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Blackjack | Player rolls sum: '..Blackjack_Player_Count..' | Dealer rolls sum: '..Blackjack_Dealer_Count)
- elseif Sum_Of_Numbers and Sum_Of_Numbers_In_Progress then
- ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Sum of numbers | Sum: '..Sum_Of_Numbers_Sum)
- elseif Sequence and Sequence_In_Progress then
- ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Sequence | Values: '..Sequence_Count)
- elseif Beat_That and Beat_That_In_Progress then
- ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Beat that | Sum: '..Beat_That_Sum)
- elseif Highest_Lowest and Highest_Lowest_In_Progress then
- ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Highest/Lowest | First sum: '..Highest_Lowest_First_Sum..' | Second sum: '..Highest_Lowest_Second_Sum)
- else
- ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | You rolled a '..data)
- end
- if Player_Option then
- local PayCash = false
- local Payout_Percent = 0
- local Message = nil
- local jackpot = 0
- local crystal_coins = 0
- local platinum_coins = 0
- if (table.contains({'blackjack'}, Player_Option) and Blackjack) then
- if (Blackjack_Player_Count > 21 and Blackjack_Dealer_Count > 21) then
- Message = Blackjack_Busted_Both_Messages[math.random(1, #Blackjack_Busted_Both_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
- PayCash = true
- elseif (Blackjack_Player_Count <= 21 and Blackjack_Dealer_Count > 21) then
- Message = Blackjack_Busted_Dealer_Messages[math.random(1, #Blackjack_Busted_Dealer_Messages)]:gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
- PayCash = true
- elseif(Blackjack_Player_Count > 21 and Blackjack_Dealer_Count <= 21) then
- Message = Blackjack_Busted_Player_Messages[math.random(1, #Blackjack_Busted_Player_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[roll]', data)
- PayCash = false
- elseif Blackjack_Player_Count > Blackjack_Dealer_Count then
- Message = Blackjack_Win_Messages[math.random(1, #Blackjack_Win_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
- PayCash = true
- elseif Blackjack_Player_Count < Blackjack_Dealer_Count then
- Message = Blackjack_Lose_Messages[math.random(1, #Blackjack_Lose_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
- PayCash = false
- elseif Blackjack_Player_Count == Blackjack_Dealer_Count then
- Message = Blackjack_Even_Result_Messages[math.random(1, #Blackjack_Even_Result_Messages)]:gsub('%[tiecount%]', Blackjack_Player_Count):gsub('%[roll]', data)
- PayCash = true
- end
- Payout_Percent = Blackjack_Payout
- elseif (table.contains({'sum'}, Player_Option) and Sum_Of_Numbers) then
- if (Sum_Of_Numbers_Sum == Game_Types.Sum.Choice) then
- PayCash = true
- Message = Sum_Win_Messages[math.random(1, #Sum_Win_Messages)]:gsub('%[sum%]', Sum_Of_Numbers_Sum):gsub('%[roll]', data)
- else
- Message = Sum_Lose_Messages[math.random(1, #Sum_Lose_Messages)]:gsub('%[sum%]', Sum_Of_Numbers_Sum):gsub('%[roll]', data)
- end
- Payout_Percent = (Sum_Of_Numbers_Payout / (Sum_Of_Numbers_Maximum_Rolls * 6)) * Game_Types.Sum.Choice
- elseif (table.contains({'beat that'}, Player_Option) and Beat_That) then
- if (Beat_That_Sum == Game_Types.BeatThat.Choice) then
- PayCash = true
- end
- Payout_Percent = Beat_That_Payout
- elseif (table.contains({'sequence'}, Player_Option) and Sequence) then
- if (table.contains({123,234,345,456,654,543,432,321}, Sequence_Count)) then
- PayCash = true
- Message = Sequence_Win_Messages[math.random(1, #Sequence_Win_Messages)]:gsub('%[sequence%]', Sequence_Count):gsub('%[roll]', data)
- else
- Message = Sequence_Lose_Messages[math.random(1, #Sequence_Lose_Messages)]:gsub('%[sequence%]', Sequence_Count):gsub('%[roll]', data)
- end
- Payout_Percent = Sequence_Payout
- elseif (table.contains({'highest', 'lowest'}, Player_Option) and Highest_Lowest) then
- if Highest_Lowest_First_Sum == Highest_Lowest_Second_Sum then
- Message = Highest_Lowest_Even_Result_Messages[math.random(1, #Highest_Lowest_Even_Result_Messages)]:gsub('%[tiecount%]', Highest_Lowest_First_Sum):gsub('%[roll]', data)
- PayCash = true
- else
- if table.contains({'highest'}, Player_Option) then
- if Highest_Lowest_First_Sum > Highest_Lowest_Second_Sum then
- PayCash = true
- Message = Highest_Lowest_Win_Messages[math.random(1, #Highest_Lowest_Win_Messages)]:gsub('%[firstcount%]', Highest_Lowest_First_Sum):gsub('%[secondcount%]', Highest_Lowest_Second_Sum):gsub('%[roll]', data)
- else
- Message = Highest_Lowest_Lose_Messages[math.random(1, #Highest_Lowest_Lose_Messages)]:gsub('%[firstcount%]', Highest_Lowest_First_Sum):gsub('%[secondcount%]', Highest_Lowest_Second_Sum):gsub('%[roll]', data)
- end
- elseif table.contains({'lowest'}, Player_Option) then
- if Highest_Lowest_First_Sum < Highest_Lowest_Second_Sum then
- PayCash = true
- Message = Highest_Lowest_Win_Messages[math.random(1, #Highest_Lowest_Win_Messages)]:gsub('%[firstcount%]', Highest_Lowest_First_Sum):gsub('%[secondcount%]', Highest_Lowest_Second_Sum):gsub('%[roll]', data)
- else
- Message = Highest_Lowest_Lose_Messages[math.random(1, #Highest_Lowest_Lose_Messages)]:gsub('%[firstcount%]', Highest_Lowest_First_Sum):gsub('%[secondcount%]', Highest_Lowest_Second_Sum):gsub('%[roll]', data)
- end
- end
- end
- Payout_Percent = Highest_Lowest_Payout
- elseif (table.contains({'13','14','15','16','23','24','25','26','31','32','35','36','41','42','45','46','51','52','53','54','61','62','63','64'}, Player_Option) and Pair_Of_Numbers) then
- local FirstDigit, SecondDigit = Player_Option:match('(%d)(%d)')
- FirstDigit = FirstDigit + 0
- SecondDigit = SecondDigit + 0
- if FirstDigit == data or SecondDigit == data then
- PayCash = true
- end
- Payout_Percent = Pair_Of_Numbers_Payout
- elseif (table.contains({'l','low','123','h','high','456'}, Player_Option) and High_Low) then
- if (table.contains({'l','low','123'}, Player_Option)) then
- if (data >= 1 and data <= 3) then
- PayCash = true
- end
- elseif (table.contains({'h','high','456'}, Player_Option)) then
- if (data >= 4 and data <= 6) then
- PayCash = true
- end
- end
- Payout_Percent = High_Low_Payout
- elseif (table.contains({'odd','135','even','246'}, Player_Option) and Odd_Even) then
- if (table.contains({'odd','135'}, Player_Option)) then
- if (data == 1 or data == 3 or data == 5) then
- PayCash = true
- end
- elseif (table.contains({'even','246'}, Player_Option)) then
- if (data == 2 or data == 4 or data == 6) then
- PayCash = true
- end
- end
- Payout_Percent = Odd_Even_Payout
- elseif (table.contains({'first','12','second','middle','34','third','56','last'}, Player_Option) and First_Second_Last) then
- if (table.contains({'first','12'}, Player_Option)) then
- if (data == 1 or data == 2) then
- PayCash = true
- end
- elseif (table.contains({'second','34','middle'}, Player_Option)) then
- if (data == 3 or data == 4) then
- PayCash = true
- end
- elseif (table.contains({'last','56','third'}, Player_Option)) then
- if (data == 5 or data == 6) then
- PayCash = true
- end
- end
- Payout_Percent = First_Second_Last_Payout
- elseif (table.contains({'1','2','3','4','5','6'}, Player_Option) and Single_Numbers) then
- if (Player_Option == '1') then
- if (data == 1) then
- PayCash = true
- end
- elseif (Player_Option == '2') then
- if (data == 2) then
- PayCash = true
- end
- elseif (Player_Option == '3') then
- if (data == 3) then
- PayCash = true
- end
- elseif (Player_Option == '4') then
- if (data == 4) then
- PayCash = true
- end
- elseif (Player_Option == '5') then
- if (data == 5) then
- PayCash = true
- end
- elseif (Player_Option == '6') then
- if (data == 6) then
- PayCash = true
- end
- end
- Payout_Percent = Single_Numbers_Payout
- end
- if PayCash then
- if Blackjack and Blackjack_In_Progress then
- if (Blackjack_Player_Count > 21 and Blackjack_Dealer_Count > 21) then
- jackpot = Player_Balance
- elseif (Blackjack_Player_Count <= 21 and Blackjack_Dealer_Count > 21) then
- jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
- elseif(Blackjack_Player_Count == Blackjack_Dealer_Count) then
- jackpot = Player_Balance
- elseif (Blackjack_Player_Count > Blackjack_Dealer_Count) then
- jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
- end
- elseif Highest_Lowest and Highest_Lowest_In_Progress then
- if Highest_Lowest_First_Sum == Highest_Lowest_Second_Sum then
- jackpot = Player_Balance
- else
- jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
- end
- else
- jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
- end
- while jackpot >= 10000 do
- crystal_coins = crystal_coins + 1
- jackpot = jackpot - 10000
- end
- while jackpot >= 100 do
- platinum_coins = platinum_coins + 1
- jackpot = jackpot - 100
- end
- Play_Instrument_Signal = 1
- Payment_Given_Check.Crystal_Amount = crystal_coins
- Payment_Given_Check.Platinum_Amount = platinum_coins
- Payment_Give_Signal = true
- Bets.Lost.Raw = Bets.Lost.Raw + 1
- Bets.Lost.Cash = Bets.Lost.Cash + (crystal_coins * 10000) + (platinum_coins * 100) - Player_Balance
- HEADS_UP_DISPLAY.BETS.LOST.AMOUNT:SetText(tostring(Bets.Lost.Raw)..' ('..tostring(Bets.Lost.Cash/1000)..'k)')
- Bets.Outcome.Raw = Bets.Outcome.Raw + 1
- Bets.Outcome.Cash = Bets.Won.Cash - Bets.Lost.Cash
- if (Bets.Outcome.Cash > 0) then
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(107, 142, 35)
- elseif (Bets.Outcome.Cash == 0) then
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(255, 255, 255)
- else
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(178, 34, 34)
- end
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetText(tostring(Bets.Outcome.Raw)..' ('..tostring((Bets.Outcome.Cash/1000))..'k)')
- if _Statistics_UseLog and Casino_StatisticsFile then
- Casino_StatisticsFile:write(os.date()..','..Bets.Outcome.Raw..','..Bets.Won.Raw..','..Bets.Lost.Raw..','..Bets.Outcome.Cash..','..Last_Player..','..Player_Option..','..data..','..Player_Balance..','..(Payment_Given_Check.Crystal_Amount*10000+Payment_Given_Check.Platinum_Amount*100)..'\n')
- Casino_StatisticsFile:flush()
- end
- if not Message then
- Message = Win_Messages[math.random(1, #Win_Messages)]
- end
- else
- if (Losing_Item_ID ~= 0) then
- Play_Instrument_Signal = -1
- end
- Bets.Won.Raw = Bets.Won.Raw + 1
- Bets.Won.Cash = Bets.Won.Cash + Player_Balance
- HEADS_UP_DISPLAY.BETS.WON.AMOUNT:SetText(tostring(Bets.Won.Raw)..' ('..tostring(Bets.Won.Cash/1000)..'k)')
- Bets.Outcome.Raw = Bets.Outcome.Raw + 1
- Bets.Outcome.Cash = Bets.Won.Cash - Bets.Lost.Cash
- if (Bets.Outcome.Cash > 0) then
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(107, 142, 35)
- elseif (Bets.Outcome.Cash == 0) then
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(255, 255, 255)
- else
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(178, 34, 34)
- end
- HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetText(tostring(Bets.Outcome.Raw)..' ('..tostring((Bets.Outcome.Cash/1000))..'k)')
- if _Statistics_UseLog and Casino_StatisticsFile then
- Casino_StatisticsFile:write(os.date()..','..Bets.Outcome.Raw..','..Bets.Won.Raw..','..Bets.Lost.Raw..','..Bets.Outcome.Cash..','..Last_Player..','..Player_Option..','..data..','..Player_Balance..',0\n')
- Casino_StatisticsFile:flush()
- end
- if not Message then
- Message = Lose_Messages[math.random(1, #Lose_Messages)]
- end
- end
- if PayCash then
- Message = Message:gsub('%[amount%]', (crystal_coins*10+platinum_coins*0.1)..'k'):gsub('%[roll]', data)
- else
- Message = Message:gsub('%[amount%]', (Player_Balance/1000)..'k'):gsub('%[roll]', data)
- end
- SendMessage(Last_Player, Message, false)
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*200)
- end)
- Module('RollSystem', function(Mod)
- if Casino_Loaded then
- if Processing_Data then
- if Pay_Cash_Signal ~= 0 then
- if Dice_Rolled_Check == 1 then
- if not (Blackjack and Blackjack_In_Progress) and
- not (Sum_Of_Numbers and Sum_Of_Numbers_In_Progress) and
- not (Beat_That and Beat_That_In_Progress) and
- not (Highest_Lowest and Highest_Lowest_In_Progress) and
- not (Sequence and Sequence_In_Progress) then
- Roll_Dice_Signal = false
- Dice_Rolled_Check = 0
- end
- end
- else
- if Roll_Dice_Signal then
- ProcessDebugMessage('Casino Debugger', 'Roll System signal acknowledged | Balance is '..Player_Balance..' ('..(Player_Balance/1000)..'k)')
- if (_VirtualMode_) then
- Dice_Rolled_Check = 1
- EffectProxyMessage = Self.Name()..' rolled a '..math.random(1, 6)..'.'
- else
- for diceInLocker = 0, Containers.Locker:ItemCount()-1 do
- if diceInLocker > 28 then
- diceInLocker = 28
- end
- local tempDice = Containers.Locker:GetItemData(diceInLocker)
- if table.contains(Dice_IDs, tempDice.id) then
- Dice_Rolled_Check = Containers.Locker:UseItem(diceInLocker, true)
- break
- end
- end
- end
- end
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*800)
- end)
- Module('CountCash', function(Mod)
- if Casino_Loaded then
- if Processing_Data then
- if Count_Cash_Signal then
- ProcessDebugMessage('Casino Debugger', 'Signal to organize cash acknowledged')
- local prevAmount = Last_Amount.Crystal + Last_Amount.Platinum + Last_Amount.Items
- Last_Amount.Crystal = Count_Crystal_Extended() * 10000
- Last_Amount.Platinum = Count_Platinum_Extended() * 100
- Last_Amount.Items = 0
- if Accept_Items then
- for indexItem=0, Containers.Items:ItemCount()-1 do
- local tempItem = Containers.Items:GetItemData(indexItem)
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == tempItem.id then
- Last_Amount.Items = Last_Amount.Items + (Accepted_Item.Value * tempItem.count)
- end
- end
- end
- end
- local newAmount = Last_Amount.Crystal + Last_Amount.Platinum + Last_Amount.Items
- if (Authenticate_Cash_Check == math.abs(newAmount - prevAmount)) then
- Player_Balance = Authenticate_Cash_Check
- Roll_Dice_Signal = true
- else
- Player_Balance = 0
- ProcessDebugMessage('Casino Debugger', 'Found inconsistent amounts ['..Authenticate_Cash_Check..']['..math.abs(newAmount-prevAmount)..']. Giving cash back')
- local cashBack = math.abs(newAmount-prevAmount)
- local crystal_coins = 0
- local platinum_coins = 0
- while cashBack >= 10000 do
- crystal_coins = crystal_coins + 1
- cashBack = cashBack - 10000
- end
- while cashBack >= 100 do
- platinum_coins = platinum_coins + 1
- cashBack = cashBack - 100
- end
- SkipRollingProcess = true
- Payment_Given_Check.Crystal_Amount = crystal_coins
- Payment_Given_Check.Platinum_Amount = platinum_coins
- Payment_Give_Signal = true
- end
- Count_Cash_Signal = false
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*200)
- end)
- Module('TakeFromCounter', function(Mod)
- if Casino_Loaded then
- if Processing_Data then
- if Take_Cash_Signal then
- local acceptedItemsOnCounter = false
- if Accept_Items then
- for itemOnCounter = Containers.Counter:ItemCount()-1,0,-1 do
- if itemOnCounter > 28 then
- itemOnCounter = 28
- end
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == Containers.Counter:GetItemData(itemOnCounter).id then
- acceptedItemsOnCounter = true
- break
- end
- end
- end
- end
- if Count_Extended(Containers.Counter, Money_IDs) > 0 or acceptedItemsOnCounter then
- ProcessDebugMessage('Casino Debugger', 'Signal to take cash from counter acknowledged')
- for itemOnCounter = Containers.Counter:ItemCount()-1,0,-1 do
- if itemOnCounter > 28 then
- itemOnCounter = 28
- end
- local tempItem = Containers.Counter:GetItemData(itemOnCounter)
- if (tempItem.id == 3035) then
- for _, container_Platinum in ipairs(Containers.Platinum) do
- if container_Platinum:EmptySlots() > 2 then
- Containers.Counter:MoveItemToContainer(itemOnCounter,container_Platinum:Index(),0,tempItem.count)
- break
- end
- end
- elseif (tempItem.id == 3043) then
- for _, container_Crystal in ipairs(Containers.Crystal) do
- if container_Crystal:EmptySlots() > 2 then
- Containers.Counter:MoveItemToContainer(itemOnCounter,container_Crystal:Index(),0,tempItem.count)
- break
- end
- end
- else
- if Accept_Items then
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == tempItem.id then
- Containers.Counter:MoveItemToContainer(itemOnCounter,Containers.Items:Index(),Containers.Items:ItemCapacity()-1,tempItem.count)
- end
- end
- end
- end
- end
- else
- Take_Cash_Signal = false
- Count_Cash_Signal = true
- end
- end
- end
- end
- Mod:Delay(WorkloadExecutionInterval()*200)
- end)
- Signal.OnReceive('LocalProxySignal', function(signal, data)
- LocalProxyMessage = data
- end)
- Module('LocalProxySystem', function(Mod)
- if LocalProxyMessage then
- local mtype = LocalProxyMessage["MessageType"]
- local speaker = LocalProxyMessage["Speaker"]
- local level = LocalProxyMessage["Level"]
- local text = LocalProxyMessage["Text"]:lower():trim()
- if _Remote_Status then
- if (table.contains(_Remote_AdminName, speaker:lower())) then
- if text == _Remote_OutcomeCommand:lower() then
- local OutcomeMessage = 'The outcome of the script is '..(Bets.Outcome.Cash/1000)..'k'
- SendPrivateMessage(OutcomeMessage, speaker, true)
- elseif text == _Remote_DiceAndDecoCommand:lower() then
- local DecoAmount = Self.ItemCount(_Decoration_Item_ID)
- local DiceAmount = 0
- for _, id in ipairs(Dice_IDs) do
- DiceAmount = DiceAmount + Self.ItemCount(id)
- end
- local DiceAndDecoMessage = string.format('I have %s dice and %s items for decoration', DiceAmount, DecoAmount)
- SendPrivateMessage(DiceAndDecoMessage, speaker, true)
- elseif text == _Remote_EmptyContainersCommand:lower() then
- local FullAmount = 0
- for _, container_Platinum in ipairs(Containers.Platinum) do
- for itemPlatinumCoin = container_Platinum:ItemCount() - 1, 0, -1 do
- if container_Platinum:EmptySlots() <= 2 then
- FullAmount = FullAmount + 1
- end
- end
- end
- local EmptyContainers = string.format('I have %s empty containers for platinum coins', #Containers.Platinum - FullAmount)
- SendPrivateMessage(EmptyContainers, speaker, true)
- elseif text == _Remote_CashCommand:lower() then
- local AvailableCash = 'The available cash to gamble is '..(Count_Crystal_Extended()*10)..'k in crystal coins and '..(Count_Platinum_Extended()/10)..'k in platinum coins'
- SendPrivateMessage(AvailableCash, speaker, true)
- elseif text == _Remote_ItemsCommand:lower() then
- local ItemsValue = 'There are '..Total.Items.Amount..' items and they are worth '..(Total.Items.Value/1000)..'k'
- SendPrivateMessage(ItemsValue, speaker, true)
- elseif text == _Remote_StartCommand:lower() then
- Casino_Loaded = false
- PickUpDiceAndDecoration()
- if not Blackjack and
- not High_Low and
- not Odd_Even and
- not First_Second_Last and
- not Single_Numbers and
- not Highest_Lowest and
- not Sequence and
- not Pair_Of_Numbers and
- not Sum_Of_Numbers and
- not Beat_That then
- SendPrivateMessage('You don\'t accept any game type. Please, check your settings and reload the script', speaker, true)
- else
- if UpdateCoordinates() then
- if Open_Containers() then
- CheckDiceAndDecoration()
- Last_Activity = os.time()
- Total.Items.LastAmountSeen = 0
- Total.Items.Amount = 0
- Total.Items.Value = 0
- Casino_Loaded = true
- ManualStop = false
- SendPrivateMessage('The script has been started upon request', speaker, true)
- end
- else
- SendPrivateMessage('The script failed to find location', speaker, true)
- end
- end
- elseif text == _Remote_StopCommand:lower() then
- Casino_Loaded = false
- ManualStop = true
- PickUpDiceAndDecoration()
- while #Container.GetAll() > 0 do
- for i = 0, 15 do
- closeContainer(i)
- end
- end
- SendPrivateMessage('The script has been stopped upon request', speaker, true)
- elseif text == _Remote_NewDepotCommand:lower() then
- SendPrivateMessage('Processing your request to find a new depot', speaker, true)
- Casino_Loaded = false
- PickUpDiceAndDecoration()
- if Self.Position().z == 7 then
- gotoLabel('GroundFloor')
- elseif Self.Position().z == 6 then
- GoCheckDown = true
- gotoLabel('FirstFloor')
- end
- setWalkerEnabled(true)
- elseif text == _Remote_BackupProfitCommand:lower() then
- local pos = Self.Position()
- local DepotFound = false
- local Locker = nil
- local Depot = nil
- local Parcel = nil
- local Tracker = 0
- local ParcelTracker = false
- local PlatinumTracker = -1
- local function DistanceFromCoordinates(first, second)
- return math.max(math.max(math.abs(first.x - second.x), math.abs(first.y - second.y)), math.abs(first.z - second.z))
- end
- local function OpenNextContainer()
- while (Parcel:isFull()) do
- for spotparcel = Parcel:ItemCount() - 1, 0, -1 do
- local itemparcel = Parcel:GetItemData(spotparcel)
- if (Item.isContainer(itemparcel.id)) then
- Parcel:UseItem(spotparcel, true)
- wait(500)
- break
- end
- end
- end
- end
- local function MoveItems(backwards)
- local Target_Container = Container(Tracker + 1)
- if (backwards) then
- for spotarget = Target_Container:ItemCount()-1, 0, -1 do
- local itemtarget = Target_Container:GetItemData(spotarget)
- if (not table.contains(Dice_IDs, itemtarget.id)) then
- if (not Item.isContainer(itemtarget.id)) then
- Target_Container:MoveItemToContainer(spotarget, Parcel:Index(), Parcel:ItemCapacity() -1)
- wait(1000)
- OpenNextContainer()
- end
- end
- end
- else
- for spotarget = 0, Target_Container:ItemCount()-1 do
- local itemtarget = Target_Container:GetItemData(spotarget)
- if (not table.contains(Dice_IDs, itemtarget.id)) then
- if (not Item.isContainer(itemtarget.id)) then
- Target_Container:MoveItemToContainer(spotarget, Parcel:Index(), Parcel:ItemCapacity() -1)
- wait(1000)
- OpenNextContainer()
- break
- end
- end
- end
- end
- end
- for _, location in ipairs(Gambling_Depots.Yalahar) do
- if (pos.x == location['HouseSwitch'][1] and pos.y == location['HouseSwitch'][2] and pos.z == location['HouseSwitch'][3]) then
- for i = 0, 15 do
- closeContainer(i)
- end
- if (Self.BrowseField(location['HouseDepot'][1],location['HouseDepot'][2],location['HouseDepot'][3]) == 1) then
- wait(1000)
- Locker = Container(Tracker)
- Tracker = Tracker + 1
- Locker:OpenChildren({Locker:GetItemData(0).id, false})
- wait(1000)
- if (Container(Tracker):UseItem(0, true) == 1) then
- wait(1000)
- Depot = Container(Tracker)
- wait(1000)
- local bponcounter = Map.GetTopMoveItem(location['Counter'][1], location['Counter'][2], location['Counter'][3])
- if (Item.GetName(bponcounter.id):lower() == _Remote_BackupContainer:lower()) then
- Map.PickupItem(location['Counter'][1], location['Counter'][2], location['Counter'][3], Depot:Index(), Depot:ItemCapacity()-1)
- wait(1000)
- end
- for spot, item in Depot:iItems() do
- if (Item.isContainer(item.id)) then
- if (Item.GetName(item.id):lower() == _Remote_BackupContainer:lower() and not ParcelTracker) then
- Depot:OpenChildren({Depot:GetItemData(spot).id, false})
- wait(1000)
- Tracker = Tracker + 1
- Parcel = Container(Tracker)
- ParcelTracker = true
- for s = Parcel:ItemCount() - 1, 0, -1 do
- local ditem = Parcel:GetItemData(s)
- if Item.isContainer(ditem.id) then
- Parcel:UseItem(s, true)
- wait(1000)
- break
- end
- end
- elseif (PlatinumTracker == -1 and (Item.GetName(item.id):lower() == _Containers_PlatinumCoins:lower())) then
- PlatinumTracker = spot
- elseif (ParcelTracker) then
- if (PlatinumTracker == -1 or (PlatinumTracker ~= -1 and PlatinumTracker ~= spot)) then
- Depot:UseItem(spot, false)
- wait(1000)
- local Target_Container = Container(Tracker + 1)
- local Crystal_Count = Target_Container:CountItemsOfID(3043)
- while (Crystal_Count > _Remote_BackupCrystalCoins) do
- MoveItems(false)
- Crystal_Count = Target_Container:CountItemsOfID(3043)
- end
- if (Target_Container:CountItemsOfID(3043) == 0) then
- while (Target_Container:ItemCount() > 0) do
- MoveItems(true)
- local die_count = 0
- for _, die in ipairs(Dice_IDs) do
- die_count = die_count + Target_Container:CountItemsOfID(die)
- end
- if (Target_Container:Name():lower() == _Containers_Items:lower()) then
- if ((Target_Container:ItemCount() == 1) or (Target_Container:ItemCount() == die_count + 1)) then
- for s = Target_Container:ItemCount() - 1, 0, -1 do
- local ditem = Target_Container:GetItemData(s)
- if Item.isContainer(ditem.id) then
- Target_Container:UseItem(s, true)
- wait(1000)
- break
- end
- end
- end
- else
- break
- end
- end
- end
- Target_Container:Close()
- wait(1000)
- end
- end
- end
- end
- Self.DropItems(location['Counter'][1], location['Counter'][2], location['Counter'][3], Item.GetID(_Remote_BackupContainer))
- end
- DepotFound = true
- end
- break
- end
- end
- end
- end
- end
- if Casino_Loaded then
- if not Processing_Data and not OpeningNestedContainers then
- local player = Creature(speaker)
- if (player:Position().x == Coordinates.Player.x and player:Position().y == Coordinates.Player.y and player:Position().z == Coordinates.Player.z) then
- local sudocmd = nil
- local Minimum_Cash = 0
- local Maximum_Cash = 0
- Player_Option = nil
- if (table.contains({'l','low','123','h','high','456'}, text) and High_Low) then
- Player_Option = text
- Minimum_Cash = High_Low_Minimum
- Maximum_Cash = High_Low_Maximum
- elseif (table.contains({'odd','135','even','246'}, text) and Odd_Even) then
- Player_Option = text
- Minimum_Cash = Odd_Even_Minimum
- Maximum_Cash = Odd_Even_Maximum
- elseif (table.contains({'first','12','second','middle','34','last','56','third'}, text) and First_Second_Last) then
- Player_Option = text
- Minimum_Cash = First_Second_Last_Minimum
- Maximum_Cash = First_Second_Last_Maximum
- elseif (table.contains({'highest','lowest'}, text) and Highest_Lowest) then
- Player_Option = text
- Minimum_Cash = Highest_Lowest_Minimum
- Maximum_Cash = Highest_Lowest_Maximum
- elseif (table.contains({'sequence','seq','succession','series'}, text) and Sequence) then
- Player_Option = 'sequence'
- Minimum_Cash = Sequence_Minimum
- Maximum_Cash = Sequence_Maximum
- elseif (table.contains({'13','14','15','16','23','24','25','26','31','32','35','36','41','42','45','46','51','52','53','54','61','62','63','64'}, text) and Pair_Of_Numbers) then
- Player_Option = text
- Minimum_Cash = Pair_Of_Numbers_Minimum
- Maximum_Cash = Pair_Of_Numbers_Maximum
- elseif (table.contains({'1','2','3','4','5','6'},text) and Single_Numbers) then
- Player_Option = text
- Minimum_Cash = Single_Numbers_Minimum
- Maximum_Cash = Single_Numbers_Maximum
- elseif (table.contains({'blackjack'}, text) and Blackjack) then
- Player_Option = text
- Minimum_Cash = Blackjack_Minimum
- Maximum_Cash = Blackjack_Maximum
- elseif (table.contains({'min', 'max', 'minimum', 'maximum'}, text)) then
- Player_Option = 'limits'
- elseif table.contains({'rate', 'rates', 'payout', 'payouts'}, text) then
- Player_Option = 'payout'
- elseif (table.contains({'games'}, text)) then
- Player_Option = text
- elseif (table.contains({'blackjack rules', 'high/low rules', 'highest/lowest rules', 'odd/even rules', 'first/second/last rules', 'sequence rules', 'pair of numbers rules', 'single numbers rules', 'sum of numbers rules', 'beat that rules', 'blackjack instructions', 'high/low instructions', 'highest/lowest instructions', 'odd/even instructions', 'first/second/last instructions', 'sequence instructions', 'pair of numbers instructions', 'single numbers instructions', 'sum of numbers instructions', 'beat that instructions', 'blackjack info', 'high/low info', 'highest/lowest info', 'odd/even info', 'first/second/last info', 'sequence info', 'pair of numbers info', 'single numbers info', 'sum of numbers info', 'beat that info'}, text)) then
- Player_Option = text
- else
- local PriceRequest = false
- local SumRequest = false
- local BeatThatRequest = false
- for _, Accepted_Item in ipairs (Accepted_Items_List) do
- local itemName = Item.GetName(Accepted_Item.ID):lower()
- local item = string.match(text, 'price '..itemName)
- if item then
- PriceRequest = true
- SendMessage(speaker, 'I accept a '..itemName..' as bet for '..(Accepted_Item.Value/1000)..'k', false)
- Last_Activity_Player_In_Spot = os.time()
- ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..text..'"')
- Player_Option = nil
- end
- end
- if not PriceRequest then
- local SumKeyword, SumNumber = text:match('^(sum) (%d+)$')
- if SumKeyword and SumNumber then
- SumNumber = SumNumber + 0
- SumRequest = true
- if SumNumber >= 1 and SumNumber <= Sum_Of_Numbers_Maximum_Rolls*6 then
- Game_Types.Sum.Choice = SumNumber
- Player_Option = SumKeyword
- Minimum_Cash = Sum_Of_Numbers_Minimum
- Maximum_Cash = Sum_Of_Numbers_Maximum
- else
- SendMessage(speaker, 'The number for "sum" game must be between 1 and '..(Sum_Of_Numbers_Maximum_Rolls*6), false)
- Last_Activity_Player_In_Spot = os.time()
- ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..text..'"')
- Player_Option = nil
- end
- end
- end
- if not SumRequest then
- local BeatThatKeyword, BeatThatNumber = text:match('^(beat that) (%d+)$')
- if BeatThatKeyword and BeatThatNumber then
- BeatThatNumber = BeatThatNumber + 0
- BeatThatRequest = true
- if BeatThatNumber >= 11 and BeatThatNumber <= 66 then
- Game_Types.BeatThat.Choice = BeatThatNumber
- Player_Option = BeatThatKeyword
- Minimum_Cash = Beat_That_Minimum
- Maximum_Cash = Beat_That_Maximum
- else
- SendMessage(speaker, 'The guessed number for "beat that" game must be between 11 and 66', false)
- Last_Activity_Player_In_Spot = os.time()
- ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..text..'"')
- Player_Option = nil
- end
- end
- end
- end
- if Player_Option then
- Last_Activity_Player_In_Spot = os.time()
- ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..Player_Option..'"')
- if Player_Option == 'limits' then
- local LimitsMessage = 'The limits for each game type are'
- local availableGames = {}
- if Blackjack then
- table.insert(availableGames, {'blackjack', Blackjack_Minimum, Blackjack_Maximum})
- end
- if High_Low then
- table.insert(availableGames, {'high/low', High_Low_Minimum, High_Low_Maximum })
- end
- if Odd_Even then
- table.insert(availableGames, {'odd/even', Odd_Even_Minimum, Odd_Even_Maximum })
- end
- if First_Second_Last then
- table.insert(availableGames, {'first/second/last', First_Second_Last_Minimum, First_Second_Last_Maximum })
- end
- if Single_Numbers then
- table.insert(availableGames, {'single numbers', Single_Numbers_Minimum, Single_Numbers_Maximum })
- end
- if Highest_Lowest then
- table.insert(availableGames, {'highest/lowest', Highest_Lowest_Minimum, Highest_Lowest_Maximum })
- end
- if Sequence then
- table.insert(availableGames, {'sequence', Sequence_Minimum, Sequence_Maximum })
- end
- if Pair_Of_Numbers then
- table.insert(availableGames, {'pair of numbers', Pair_Of_Numbers_Minimum, Pair_Of_Numbers_Maximum })
- end
- if Sum_Of_Numbers then
- table.insert(availableGames, {'sum of numbers', Sum_Of_Numbers_Minimum, Sum_Of_Numbers_Maximum })
- end
- if Beat_That then
- table.insert(availableGames, {'beat that', Beat_That_Minimum, Beat_That_Maximum })
- end
- for iterator, game in ipairs(availableGames) do
- if iterator == #availableGames-1 then
- LimitsMessage = LimitsMessage..' '..(game[2]/1000)..'k - '..(game[3]/1000)..'k '..game[1]..' and'
- elseif iterator == #availableGames then
- LimitsMessage = LimitsMessage..' '..(game[2]/1000)..'k - '..(game[3]/1000)..'k '..game[1]
- else
- LimitsMessage = LimitsMessage..' '..(game[2]/1000)..'k - '..(game[3]/1000)..'k '..game[1]..','
- end
- end
- SendMessage(speaker, LimitsMessage, false)
- Player_Option = nil
- elseif table.contains({'blackjack rules', 'blackjack info', 'blackjack instructions'}, Player_Option) then
- SendMessage(speaker, 'In the "Blackjack" game the first 5 rolls sum is your count, the last 5 rolls sum is mine. The count that is closer to 21 wins. You get busted if the count is higher than 21', false)
- Player_Option = nil
- elseif table.contains({'high/low rules', 'high/low info', 'high/low instructions'}, Player_Option) then
- SendMessage(speaker, '"High/Low" is a game where you try to guess the next roll. If you say "high" and the next roll is 4, 5 or 6 or if you say "low" and the roll is 1, 2 or 3 then you win', false)
- Player_Option = nil
- elseif table.contains({'highest/lowest rules', 'highest/lowest info', 'highest/lowest instructions'}, Player_Option) then
- SendMessage(speaker, 'In "Highest/lowest" there are 2 counts, first count and second count. This is a game where you try to guess which count will get the highest or lowest sum. The number of rolls for each count is '..(Highest_Lowest_Rolls / 2), false)
- Player_Option = nil
- elseif table.contains({'odd/even rules', 'odd/even info', 'odd/even instructions'}, Player_Option) then
- SendMessage(speaker, 'The game "Odd/Even" is just like High/Low but in this one you try to guess if the next roll is an odd number (1, 3 or 5) or an even number (2, 4 or 6)', false)
- Player_Option = nil
- elseif table.contains({'first/second/last rules', 'first/second/last info', 'first/second/last instructions'}, Player_Option) then
- SendMessage(speaker, '"First/Second/Last" is a game where you try to guess the next roll. In this game you can say 1 out of 3 commands. First means: 1 or 2. Second means: 3 or 4. Last means: 5 or 6', false)
- Player_Option = nil
- elseif table.contains({'sequence rules', 'sequence info', 'sequence instructions'}, Player_Option) then
- SendMessage(speaker, 'The "Sequence" game is about getting a sequence with 3 rolls. For example: 123, 234, 345 or 456. You can also get an inverted sequence: 654, 543, 432, 321', false)
- Player_Option = nil
- elseif table.contains({'pair of numbers rules', 'pair of numbers info', 'pair of numbers instructions'}, Player_Option) then
- SendMessage(speaker, '"Pair Of Numbers" is a game is where you try to guess the next roll by saying 2 different numbers that are not close to each other or repeated. For example: 13, 25 or 64', false)
- Player_Option = nil
- elseif table.contains({'single numbers rules', 'single numbers info', 'single numbers instructions'}, Player_Option) then
- SendMessage(speaker, '"Single Numbers" is a simple game. Say a number between 1 and 6 that you think will result in the roll', false)
- Player_Option = nil
- elseif table.contains({'sum of numbers rules', 'sum of numbers info', 'sum of numbers instructions'}, Player_Option) then
- SendMessage(speaker, 'The "Sum" game is about adding rolls. If you say "sum 8" then only 2 rolls are needed to sum the number 8. You can try to guess a number between 1 and '..(Sum_Of_Numbers_Maximum_Rolls*6)..'. The higher the number the more the payout percent', false)
- Player_Option = nil
- elseif table.contains({'beat that rules', 'beat that info', 'beat that instructions'}, Player_Option) then
- SendMessage(speaker, 'In the "Beat That" game you guess two numbers that will land in a row. For example, if you say "Beat That 15", it means that the rolls will be the number 1 followed by the number 5', false)
- Player_Option = nil
- elseif Player_Option == 'games' then
- local availableGames = {}
- local strAvailableGames = ''
- if Blackjack then
- table.insert(availableGames, 'blackjack')
- end
- if High_Low then
- table.insert(availableGames, 'high/low')
- end
- if Odd_Even then
- table.insert(availableGames, 'odd/even')
- end
- if First_Second_Last then
- table.insert(availableGames, 'first/second/last')
- end
- if Single_Numbers then
- table.insert(availableGames, 'single numbers')
- end
- if Highest_Lowest then
- table.insert(availableGames, 'highest/lowest')
- end
- if Sequence then
- table.insert(availableGames, 'sequence')
- end
- if Pair_Of_Numbers then
- table.insert(availableGames, 'pair of numbers')
- end
- if Sum_Of_Numbers then
- table.insert(availableGames, 'sum of numbers')
- end
- if Beat_That then
- table.insert(availableGames, 'beat that')
- end
- for iterator, game in ipairs(availableGames) do
- if iterator == #availableGames-1 then
- strAvailableGames = strAvailableGames..game..' and '
- elseif iterator == #availableGames then
- strAvailableGames = strAvailableGames..game
- else
- strAvailableGames = strAvailableGames..game..', '
- end
- end
- SendMessage(speaker, 'You can play '..strAvailableGames..' with me', false)
- Player_Option = nil
- elseif Player_Option == 'payout' then
- local PayoutMessage = 'The payout for each game type is'
- local availableGames = {}
- if Blackjack then
- table.insert(availableGames, {'blackjack', Blackjack_Payout})
- end
- if High_Low then
- table.insert(availableGames, {'high/low', High_Low_Payout })
- end
- if Odd_Even then
- table.insert(availableGames, {'odd/even', Odd_Even_Payout})
- end
- if First_Second_Last then
- table.insert(availableGames, {'first/second/last', First_Second_Last_Payout})
- end
- if Single_Numbers then
- table.insert(availableGames, {'single numbers', Single_Numbers_Payout})
- end
- if Highest_Lowest then
- table.insert(availableGames, {'highest/lowest', Highest_Lowest_Payout })
- end
- if Sequence then
- table.insert(availableGames, {'sequence', Sequence_Payout })
- end
- if Pair_Of_Numbers then
- table.insert(availableGames, {'pair of numbers', Pair_Of_Numbers_Payout })
- end
- if Sum_Of_Numbers then
- table.insert(availableGames, {'sum of numbers', Sum_Of_Numbers_Payout })
- end
- if Beat_That then
- table.insert(availableGames, {'beat that', Beat_That_Payout })
- end
- for iterator, game in ipairs(availableGames) do
- if iterator == #availableGames-1 then
- PayoutMessage = PayoutMessage..' '..game[2]..'% '..game[1]..' and'
- elseif iterator == #availableGames then
- PayoutMessage = PayoutMessage..' '..game[2]..'% '..game[1]
- else
- PayoutMessage = PayoutMessage..' '..game[2]..'% '..game[1]..','
- end
- end
- SendMessage(speaker, PayoutMessage, false)
- Player_Option = nil
- else
- local ValueInItems = 0
- if Accept_Items then
- for indexItemCounter=0,Containers.Counter:ItemCount()-1 do
- if indexItemCounter > 28 then
- indexItemCounter = 28
- end
- local tempItemCounter = Containers.Counter:GetItemData(indexItemCounter)
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == tempItemCounter.id then
- ValueInItems = ValueInItems + (tempItemCounter.count * Accepted_Item.Value)
- break
- end
- end
- end
- end
- local platinumInCounter = Count_Extended(Containers.Counter, {3035})
- local crystalInCounter = Count_Extended(Containers.Counter, {3043})
- local totalCashInCounter = platinumInCounter * 100 + crystalInCounter * 10000 + ValueInItems
- local ItemCount = 0
- if Accept_Items then
- for indexCounter=0,Containers.Counter:ItemCount()-1 do
- local tempItemCounter = Containers.Counter:GetItemData(indexCounter)
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == tempItemCounter.id then
- ItemCount = ItemCount + 1
- break
- end
- end
- end
- end
- if (totalCashInCounter >= Minimum_Cash and totalCashInCounter <= Maximum_Cash and ((Accept_Items and ItemCount <= 5) or not Accept_Items)) then
- ProcessDebugMessage('Casino Debugger', 'The script started processing data')
- Last_Amount.Crystal = Count_Crystal_Extended() * 10000
- Last_Amount.Platinum = Count_Platinum_Extended() * 100
- Last_Amount.Items = 0
- if Accept_Items then
- for indexItemsContainer=0,Containers.Items:ItemCount()-1 do
- local tempItemsContainer = Containers.Items:GetItemData(indexItemsContainer)
- for _, Accepted_Item in ipairs(Accepted_Items_List) do
- if Accepted_Item.ID == tempItemsContainer.id then
- Last_Amount.Items = Last_Amount.Items + (tempItemsContainer.count * Accepted_Item.Value)
- break
- end
- end
- end
- end
- if table.contains({'blackjack'}, Player_Option) then
- Blackjack_In_Progress = true
- elseif table.contains({'sum'}, Player_Option) then
- Sum_Of_Numbers_In_Progress = true
- elseif table.contains({'beat that'}, Player_Option) then
- Beat_That_In_Progress = true
- elseif table.contains({'highest', 'lowest'}, Player_Option) then
- Highest_Lowest_In_Progress = true
- elseif table.contains({'sequence'}, Player_Option) then
- Sequence_In_Progress = true
- end
- Authenticate_Cash_Check = totalCashInCounter
- Processing_Data = true
- Take_Cash_Signal = true
- else
- if Accept_Items and ItemCount > 5 then
- SendMessage(speaker, "I'm sorry, I only accept 5 items per bet", false)
- else
- local InvalidBidMessage = Invalid_Bid[math.random(1,#Invalid_Bid)]
- local InformInvalidBid = false
- if table.contains({'l','low','123','h','high','456'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (High_Low_Minimum/1000)..'k'):gsub('%[max%]', (High_Low_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'high/low')
- InformInvalidBid = true
- elseif table.contains({'odd','135','even','246'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Odd_Even_Minimum/1000)..'k'):gsub('%[max%]', (Odd_Even_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'odd/even')
- InformInvalidBid = true
- elseif table.contains({'first','12','second','middle','34','last','56','third'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (First_Second_Last_Minimum/1000)..'k'):gsub('%[max%]', (First_Second_Last_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'first/second/last')
- InformInvalidBid = true
- elseif table.contains({'1','2','3','4','5','6'},Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Single_Numbers_Minimum/1000)..'k'):gsub('%[max%]', (Single_Numbers_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'single numbers')
- InformInvalidBid = true
- elseif table.contains({'sum'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Sum_Of_Numbers_Minimum/1000)..'k'):gsub('%[max%]', (Sum_Of_Numbers_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'sum of numbers')
- InformInvalidBid = true
- elseif table.contains({'beat that'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Beat_That_Minimum/1000)..'k'):gsub('%[max%]', (Beat_That_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'beat that')
- InformInvalidBid = true
- elseif table.contains({'sequence'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Sequence_Minimum/1000)..'k'):gsub('%[max%]', (Sequence_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'sequence')
- InformInvalidBid = true
- elseif table.contains({'highest', 'lowest'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Highest_Lowest_Minimum/1000)..'k'):gsub('%[max%]', (Highest_Lowest_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'highest/lowest')
- InformInvalidBid = true
- elseif table.contains({'13','14','15','16','23','24','25','26','31','32','35','36','41','42','45','46','51','52','53','54','61','62','63','64'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Pair_Of_Numbers_Minimum/1000)..'k'):gsub('%[max%]', (Pair_Of_Numbers_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'pair of numbers')
- InformInvalidBid = true
- elseif table.contains({'blackjack'}, Player_Option) then
- InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Blackjack_Minimum/1000)..'k'):gsub('%[max%]', (Blackjack_Maximum/1000)..'k')
- InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'blackjack')
- InformInvalidBid = true
- end
- if InformInvalidBid then
- SendMessage(speaker, InvalidBidMessage, false)
- Player_Option = nil
- Blackjack_In_Progress = false
- end
- end
- end
- end
- end
- end
- end
- end
- LocalProxyMessage = nil
- end
- Mod:Delay(WorkloadExecutionInterval()*200)
- end)
- Signal.OnReceive('EffectProxySignal', function(signal, data)
- EffectProxyMessage = data["Message"]
- end)
- Module('EffectProxySystem', function(Mod)
- if EffectProxyMessage then
- local message = EffectProxyMessage
- if Casino_Loaded then
- if Processing_Data then
- if Pay_Cash_Signal == 0 then
- if Roll_Dice_Signal then
- ProcessDebugMessage('Casino Debugger', 'The script finished processing data')
- local number = string.match(message, Self.Name()..' rolled a (.+).')
- if number then
- ProcessDebugMessage('Casino Debugger', 'The script started processing effects')
- ProcessDebugMessage('Casino Debugger', 'Effect Proxy received data | Message: '..message..' | Script loaded: '..tostring(Casino_Loaded)..' | Processing data: '..tostring(Processing_Data))
- if Blackjack and Blackjack_In_Progress then
- Blackjack_Roll_Count = Blackjack_Roll_Count + 1
- if Blackjack_Roll_Count >= 1 and Blackjack_Roll_Count <= 5 then
- Blackjack_Player_Count = Blackjack_Player_Count + number + 0
- elseif Blackjack_Roll_Count >= 6 and Blackjack_Roll_Count <= 10 then
- Blackjack_Dealer_Count = Blackjack_Dealer_Count + number + 0
- if Blackjack_Roll_Count == 10 then
- Roll_Dice_Signal = false
- Dice_Rolled_Check = 0
- Blackjack_Roll_Count = 0
- Pay_Cash_Signal = 1
- end
- end
- elseif Sum_Of_Numbers and Sum_Of_Numbers_In_Progress then
- Sum_Of_Numbers_Roll_Count = Sum_Of_Numbers_Roll_Count + 1
- Sum_Of_Numbers_Sum = Sum_Of_Numbers_Sum + number + 0
- if Sum_Of_Numbers_Roll_Count == math.ceil(Game_Types.Sum.Choice/6) then
- Roll_Dice_Signal = false
- Dice_Rolled_Check = 0
- Sum_Of_Numbers_Roll_Count = 0
- Pay_Cash_Signal = 1
- end
- elseif Beat_That and Beat_That_In_Progress then
- Beat_That_Roll_Count = Beat_That_Roll_Count + 1
- local strBeatThatCount = Beat_That_Sum..number
- Beat_That_Sum = strBeatThatCount + 0
- if Beat_That_Roll_Count == 2 then
- Roll_Dice_Signal = false
- Dice_Rolled_Check = 0
- Beat_That_Roll_Count = 0
- Pay_Cash_Signal = 1
- end
- elseif Highest_Lowest and Highest_Lowest_In_Progress then
- Highest_Lowest_Roll_Count = Highest_Lowest_Roll_Count + 1
- if Highest_Lowest_Roll_Count >= 1 and Highest_Lowest_Roll_Count <= (Highest_Lowest_Rolls/2) then
- Highest_Lowest_First_Sum = Highest_Lowest_First_Sum + number + 0
- elseif Highest_Lowest_Roll_Count >= ((Highest_Lowest_Rolls/2)+1) and Highest_Lowest_Roll_Count <= Highest_Lowest_Rolls then
- Highest_Lowest_Second_Sum = Highest_Lowest_Second_Sum + number + 0
- if Highest_Lowest_Roll_Count == Highest_Lowest_Rolls then
- Roll_Dice_Signal = false
- Dice_Rolled_Check = 0
- Highest_Lowest_Roll_Count = 0
- Pay_Cash_Signal = 1
- end
- end
- elseif Sequence and Sequence_In_Progress then
- Sequence_Roll_Count = Sequence_Roll_Count + 1
- local strSequenceCount = Sequence_Count..number
- Sequence_Count = strSequenceCount + 0
- if Sequence_Roll_Count == 3 then
- Roll_Dice_Signal = false
- Dice_Rolled_Check = 0
- Sequence_Roll_Count = 0
- Pay_Cash_Signal = 1
- end
- else
- Roll_Dice_Signal = false
- Pay_Cash_Signal = number + 0
- end
- end
- end
- end
- end
- end
- EffectProxyMessage = nil
- end
- Mod:Delay(WorkloadExecutionInterval()*200)
- end)
- print(InformationText)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement