Advertisement
Reactor_Games

Untitled

Dec 18th, 2019
1,921
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 197.24 KB | None | 0 0
  1. перейти к содержанию
  2. Почему GitHub?
  3. предприятие
  4. Исследовать
  5. базарная площадь
  6. ценообразование
  7. Search
  8.  
  9. Войти
  10. Зарегистрироваться
  11. 4733Chuitox / ксенобот-казино
  12. Код Выпуски 1 Потяните запросы 0 Проекты 0 Безопасность Insights
  13. Присоединяйтесь к GitHub сегодня
  14. GitHub является домом для более чем 40 миллионов разработчиков, работающих вместе для размещения и анализа кода, управления проектами и совместной разработки программного обеспечения.
  15.  
  16. xenobot-casino /Казино Script.lua
  17. @Chuitox Chuitox Исправлена ​​отправка оранжевого текста на пользовательский канал
  18. 4fdb030
  19. 18 августа 2014 г.
  20. 3924 строки (3812 слок) 158 КБ
  21.  
  22. - [[
  23. ____ __ __
  24. / \ _ \ / \ \ __ / \ \ __
  25. \ \ \ / \ _ \\ \ \ ___ __ __ / \ _ \ \ _ \ ___ __ _
  26. \ \ \ / _ / _ \ \ _ \ / \ \ / \ \ / \ \ \ \ / / __ \ / \ \ / \
  27. \ \ \ _ \ \\ \ \ \ \ \ \ _ \ \ \ \ \ \ _ / \ \ _ \ \ /> </
  28. \ \ ____ / \ \ _ \ \ _ \ \ ____ / \ \ _ \ \ __ \ \ ____ // \ _ / \ _ \
  29. \ / ___ / \ / _ / \ / _ / \ / ___ / \ / _ / \ / __ / \ / ___ / \ // \ / _ /
  30. Казино Скрипт 2.0
  31. Информация:
  32. Официальная ветка: http://forums.xenobot.net/showthread.php?17044
  33. Установка сундука депо: https://www.dropbox.com/s/nxybs942cfrsyak/setup.png
  34. Рекомендации и предупреждения:
  35. 1. Вы должны выполнить ОБА файлы по ссылке: «Casino Script.lua» и «Casino Script-Proxies.lua»
  36. 2. Избегайте использования высоких значений в качестве принятых денежных сумм. При изменении настроек учитывайте следующие ограничения:
  37.  
  38. Блэкджек, Высокий / Низкий, Самый высокий / Самый низкий и Нечетный / Четный
  39. Минимум: 0.1k - 200k
  40. Максимум: 0.2k - 500k
  41. Выплата: 1 - 100%
  42.  
  43. Первый / Второй / Последний, последовательность и пара чисел
  44. Минимум: 0.1k - 200k
  45. Максимум: 0.2k - 300k
  46. Выплата: 1 - 300%
  47.  
  48. Отдельные числа, сумма чисел и бит, который
  49. Минимум: 0.1k - 200k
  50. Максимум: 0.2k - 200k
  51. Выплата: 1 - 500%
  52.  
  53. 3. НЕ выполняйте действия вручную с запущенным скриптом, сначала введите / остановите в канале скрипта
  54. 4. Функции, влияющие на производительность, помечены
  55. 5. Выбранные кости будут отправлены в контейнер для предметов, когда они будут приняты.
  56. 6. Запустите скрипт, активировав Walker или поместив себя в левую сторону депо и набрав / start
  57. 7. Введите / help в канале скрипта для списка доступных команд
  58.  
  59. Требования по умолчанию:
  60. 1. умереть
  61. 2. Party Hat (главный слот)
  62. 3. Эктоплазматические суши
  63. 4. Оранжевый рюкзак: до 2
  64. 5. Красный рюкзак: до 7
  65. 6. Пляжный рюкзак: 1 с вложенными рюкзаками (рюкзак внутри рюкзака, того же типа)
  66. 7. Лира (музыкальный инструмент)
  67. 8. Корыто Комплект (Мебель)
  68. ]] -
  69.  
  70. - ------------------------------------------------ -------------------------------------------------- --------------
  71. - ОБЩИЕ -
  72. - ------------------------------------------------ -------------------------------------------------- --------------
  73. - Базовая настройка -
  74. _Containers_CrystalCoins = " Оранжевый рюкзак " - Контейнер для хрустальных монет
  75. _Containers_PlatinumCoins = " Красный рюкзак " - контейнер для платиновых монет
  76. _Containers_Items = " Пляжный рюкзак " - Контейнер для предметов
  77.  
  78. - Система бездействия -
  79. _Inactivity_Detection = false - Поиск нового депо, когда неактивен
  80. _Inactivity_Interval = 2 - минуты ожидания перед поиском в новом депо
  81. _Inactivity_AntiIdle = false - встроенная защита от простоя
  82. _Inactivity_NotifyBlockedSpot = false - уведомлять игрока, когда место заблокировано (обнаружение неактивности должно быть отключено)
  83. _Inactivity_MessageBlockedSpot = " Пожалуйста, не блокируйте депо "
  84. _Inactivity_BlockedSpotInterval = 2 - Минуты ожидания до уведомления о заблокированном месте
  85.  
  86. - Украшение -
  87. _Decoration_Enabled = false - использовать украшение под кубиком
  88. _Decoration_Item = " Эктоплазматические суши " - название предмета для украшения | По умолчанию: «Эктоплазматические суши»
  89.  
  90. - Рандомайзер -
  91. _VirtualMode_ = true - пользователь виртуальный метод для генерации случайных чисел (замена для официальных серверов)
  92.  
  93. - ------------------------------------------------ -------------------------------------------------- --------------
  94. - ADVANCEDSETUP -
  95. - ------------------------------------------------ -------------------------------------------------- --------------
  96. - Эффекты -
  97. _Effects_Enabled = true - использовать эффекты элемента
  98. _Effects_Item = " Party Hat " - название элемента для отображения эффектов
  99. _Effects_Interval = 1 - Как часто показывать эффекты | По умолчанию: 1 секунда | ВНИМАНИЕ: Низкие значения могут повлиять на производительность
  100.  
  101. - Удаленный статус -
  102. _Remote_Status = true - разрешить использование удаленных команд, чтобы узнать состояние игрового сеанса
  103. _Remote_AdminName = { " name1 " , " name2 " } - имя символа, используемого для запроса информации о состоянии
  104. _Remote_OutcomeCommand = " Каков ваш результат? " - Команда для отправки информации о результате
  105. _Remote_CashCommand = " Сколько у вас денег? " - Команда для отправки доступной информации о наличных
  106. _Remote_ItemsCommand = " Сколько у вас в предметах? " - Команда для отправки, сколько стоят предметы в контейнере
  107. _Remote_StartCommand = " Let's gamble! " - Команда для запуска скрипта
  108. _Remote_StopCommand = " Stop gambling " - команда для остановки скрипта
  109. _Remote_NewDepotCommand = " Найти новое депо " - команда для поиска нового депо для запуска скрипта
  110. _Remote_DiceAndDecoCommand = " Сколько у вас есть кубиков и предметов декорации ? " - Команда для отправки, сколько кубиков и предметов для украшения у него есть в депо
  111. _Remote_EmptyContainersCommand = " Сколько у вас пустых контейнеров? " - Команда для отправки количества пустых контейнеров для платиновых монет.
  112. _Remote_BackupProfitCommand = " Backup Profit " - Команда для резервного копирования прибыли
  113. _Remote_BackupContainer = " Желтый рюкзак " - контейнер, используемый для хранения прибыли
  114. _Remote_BackupCrystalCoins = 200 - Количество хрустальных монет, оставляемых внутри склада
  115.  
  116. - Статистика -
  117. _Statistics_UseLog = true - Статистика журнала | ПРЕДУПРЕЖДЕНИЕ! Может повлиять на производительность, если включено
  118.  
  119. - Отладочные сообщения -
  120. _Debug_MessagesInChannel = true - отладочные сообщения | ПРЕДУПРЕЖДЕНИЕ! Может повлиять на производительность, если включено
  121. _Debug_UseLog = false - может повлиять на производительность, если включен
  122.  
  123. - Дополнительные настройки -
  124. _Extra_CipStaffDetection = true - остановить скрипт при обнаружении члена Cipsoft
  125. _Extra_AlarmLowCash = true - Остановить сценарий и подать сигнал тревоги, когда для игры недостаточно денег
  126. _Extra_ServerSave = " 10:00 " - время сохранения сервера в 24-часовом формате вашей страны
  127. _Extra_ScreenshotOnStop = true - сделать снимок экрана при остановке сценария
  128. _Extra_WorkloadExecution = ' default ' - скорость выполнения действий (по умолчанию / быстрая / средняя / медленная)
  129. _Extra_RestartOnKick = true - перезапустить скрипт, если персонаж был выгнан из игры
  130.  
  131. - OpenTibia -
  132. _OpenTibia = false - запускать скрипт на серверах Open Tibia
  133. _OpenTibia_Indexes = { 12 , 15 , 1 , 7 , 10 , 14 , 15 , 12 } - индексы, используемые при запуске сценария на серверах OpenTibia
  134.  
  135. - ------------------------------------------------ -------------------------------------------------- --------------
  136. - ГАМЕТИПЫ -
  137. - ------------------------------------------------ -------------------------------------------------- --------------
  138. - Блэкджек = количество игроков (5 бросков) и количество игроков (5 бросков) -
  139. Блэкджек = правда
  140. Блэкджек_Минимум = 5000
  141. Блэкджек_Максимум = 100000
  142. Blackjack_Payout = 80
  143.  
  144. - Высокий / Низкий = 123 или 456 -
  145. High_Low = true
  146. High_Low_Minimum = 5000
  147. High_Low_Maximum = 100000
  148. High_Low_Payout = 80
  149.  
  150. - Нечетный / Четный = 135 или 246 -
  151. Odd_Even = true
  152. Odd_Even_Minimum = 5000
  153. Odd_Even_Maximum = 100000
  154. Odd_Even_Payout = 80
  155.  
  156. - Самый высокий / самый низкий = количество игроков (половина бросков) и количество игроков (половина бросков). Самые высокие победы -
  157. - Используйте только четные числа, такие как 2, 4, 6, 8, 10
  158. Highest_Lowest = true
  159. Highest_Lowest_Rolls = 4
  160. Highest_Lowest_Minimum = 5000
  161. Highest_Lowest_Maximum = 100000
  162. Highest_Lowest_Payout = 80
  163.  
  164. - Первый / Второй / Последний = 12, 34 или 56 -
  165. First_Second_Last = true
  166. First_Second_Last_Minimum = 5000
  167. First_Second_Last_Maximum = 100000
  168. First_Second_Last_Payout = 180
  169.  
  170. - Последовательность = последовательность, последовательность, последовательность или серия (123, 234, 456, 654, 543 или 321) -
  171. Sequence = true
  172. Sequence_Minimum = 5000
  173. Sequence_Maximum = 100000
  174. Sequence_Payout = 180
  175.  
  176. - Пара чисел = совпадение с 1 из 2 чисел -
  177. Pair_Of_Numbers = true
  178. Pair_Of_Numbers_Minimum = 5000
  179. Pair_Of_Numbers_Maximum = 100000
  180. Pair_Of_Numbers_Payout = 180
  181.  
  182. - Отдельные номера = 1, 2, 3, 4, 5 или 6 -
  183. Single_Numbers = true
  184. Single_Numbers_Minimum = 5000
  185. Single_Numbers_Maximum = 100000
  186. Single_Numbers_Payout = 360
  187.  
  188. - Beat That = число от 11 до 66 -
  189. Beat_That = true
  190. Beat_That_Minimum = 5000
  191. Beat_That_Maximum = 100000
  192. Beat_That_Payout = 360
  193.  
  194. - сумма чисел = сумма нескольких рулонов -
  195. Sum_Of_Numbers = true
  196. Sum_Of_Numbers_Minimum = 5000
  197. Sum_Of_Numbers_Maximum = 100000
  198. Sum_Of_Numbers_Maximum_Rolls = 10
  199. Sum_Of_Numbers_Payout = 360
  200.  
  201. - ------------------------------------------------ -------------------------------------------------- --------------
  202. - СООБЩЕНИЯ -
  203. - ------------------------------------------------ -------------------------------------------------- --------------
  204. - Интерактивные сообщения -
  205. _Interactive_Messages = true - использовать интерактивные сообщения с проигрывателем
  206. _Interaction_PrivateMessages = true - отправлять интерактивные сообщения через личный кабинет вместо локального чата
  207. Invalid_Bid =
  208. {
  209. - [игра], [мин], [макс]
  210. « Принятая сумма для [игры] находится между [мин] и [макс] » ,
  211. « Извините, я принимаю мин. [Мин.] И макс. [Макс.], Чтобы играть в [игру] » ,
  212. }
  213. Welcome_Messages =
  214. {
  215. - Заполнитель: [игрок]
  216. « Добро пожаловать, [игрок]! Хотите испытать удачу? » ,
  217. « Здравствуйте, [игрок]! Я чувствую, что вы хотите стать миллионером! » ,
  218. « Здравствуйте, [игрок]! Вам интересно узнать о моих играх? Скажите« игры »или« ставки » » ,
  219. « Привет, [игрок]! Тебе сегодня повезло? » ,
  220. }
  221.  
  222. - Типы цифровых игр -
  223. Win_Messages =
  224. {
  225. - [количество], [рулон]
  226. « Поздравляем! Количество выпавших было [рулон]. Вы выиграли [количество] » ,
  227. " Gratz! Число выпало было [Roll]. Вот вы, [количество] " ,
  228. « А-а-а, у нас есть победитель! Количество выпавших было [выпало]. Вы выиграли [количество] » ,
  229. « Сегодня, должно быть, твой счастливый день! Выпавший номер был [бросок]. Вы выиграли [количество] » ,
  230. }
  231. Lose_Messages =
  232. {
  233. - [количество], [рулон]
  234. « Извините, может быть, в другой раз. Номер проката был [рулон] » ,
  235. « О, хорошо, вы не всегда можете выиграть ... Количество бросков было [бросить] » ,
  236. }
  237.  
  238. - Блэкджек -
  239. Блэкджек_Win_Messages =
  240. {
  241. - [playercount], [дилерский счет], [сумма], [бросок]
  242. « Поздравляем! Ваш счет [playercount], а мой [дилерский счет]. Вы выиграли [количество] » ,
  243. « Gratz! Счет был [playercount] против [дилерский счет]. Вот, пожалуйста, [количество]! » ,
  244. « Ааа, и у нас есть победитель! Счет был [playercount] против [дилерский счет]. Вы выиграли [количество] » ,
  245. « Сегодня должен быть ваш счастливый день! Ваш счет был [playercount], а мой [дилерский счет]. Вы выиграли [количество] » ,
  246. }
  247. Blackjack_Lose_Messages =
  248. {
  249. - [playercount], [дилерский счет], [сумма], [бросок]
  250. « Извините, может быть, в другой раз. Счет был [playercount] против [дилерский счет] » ,
  251. « О, хорошо, это [playercount] против [дилерский счет]. Я думаю, вы не всегда можете выиграть ... » ,
  252. }
  253. Блэкджек_Even_Result_Messages =
  254. {
  255. - [Tiecount], [сумма], [рулон]
  256. « Это ничья! Мы оба получили [ничью], вот твоя [сумма] » ,
  257. « Мы связаны. Оба счета были [ничья]. Вот ваша [сумма] назад » ,
  258. }
  259. Blackjack_Busted_Player_Messages =
  260. {
  261. - [playercount], [количество], [ролл]
  262. « Тебя обанкротили, твой последний счет был [playercount] » ,
  263. " Busted! Ваш счет [playercount], и он выше 21 " ,
  264. }
  265. Blackjack_Busted_Dealer_Messages =
  266. {
  267. - [Дилерский счет], [сумма], [рулон]
  268. « Мой последний счет был [дилерский счет] и он выше 21. Вы выиграли [количество] » ,
  269. « Ну, мой счет был выше 21, так как он [дилерский счет]. Поздравляю! Вы выиграли [количество] » ,
  270. }
  271. Blackjack_Busted_Both_Messages =
  272. {
  273. - [playercount], [дилерский счет], [сумма], [бросок]
  274. « Ваш счет был [playercount] и мой [дилерский счет]. Мы оба были старше 21 года, поэтому вот ваша [сумма] назад » ,
  275. « Похоже, нам обоим было больше 21 года с [playercount] против [дилерского счета]. Вот ваша [сумма] назад » ,
  276. }
  277.  
  278. - самый высокий / самый низкий -
  279. Highest_Lowest_Win_Messages =
  280. {
  281. - [firstcount], [secondcount], [количество], [ролл]
  282. « Поздравляем! Ваш счет [firstcount] и мой [secondcount]. Вы выиграли [количество] » ,
  283. " Gratz! Счет был [firstcount] и [secondcount]. Вот, пожалуйста, [количество]! " ,
  284. « Ааа, и у нас есть победитель! Счет был [первый счет] и [второй счет]. Вы выиграли [количество] » ,
  285. « Сегодня должен быть ваш счастливый день! Первый счет был [первый счет], а второй [второй счет]. Вы выиграли [количество] » ,
  286. }
  287. Highest_Lowest_Lose_Messages =
  288. {
  289. - [firstcount], [secondcount], [количество], [ролл]
  290. « Извините, может быть, в другой раз. Счет был [firstcount] и [secondcount] » ,
  291. « Ну что ж, это [первый счет] и [второй счет]. Я думаю, вы не всегда можете выиграть ... » ,
  292. }
  293. Highest_Lowest_Even_Result_Messages =
  294. {
  295. - [Tiecount], [сумма], [рулон]
  296. « Обе суммы были равны [tiecount], вот ваша [сумма] » ,
  297. « Количество было одинаковым: [tiecount]. Вот ваша [сумма] назад » ,
  298. }
  299. - последовательность -
  300. Sequence_Win_Messages =
  301. {
  302. - [последовательность], [количество], [рулон]
  303. « Поздравляем! Последовательность была [последовательность]. Вы выиграли [количество] » ,
  304. " Gratz! Последовательность была [последовательность] Вот, пожалуйста, [количество] " ,
  305. }
  306. Sequence_Lose_Messages =
  307. {
  308. - [последовательность], [количество], [рулон]
  309. « Извините, может быть, в другой раз. Последовательность была [последовательность] » ,
  310. « Последовательность была [последовательность], я думаю, вы не всегда можете выиграть ... » ,
  311. }
  312. - сумма чисел -
  313. Sum_Win_Messages =
  314. {
  315. - [сумма], [сумма], [рулон]
  316. « Поздравляем! Сумма была [сумма]. Вы выиграли [сумму] » ,
  317. " Gratz! Сумма была [сумма] Вот ты, [сумма] " ,
  318. }
  319. Sum_Lose_Messages =
  320. {
  321. - [сумма], [сумма], [рулон]
  322. « Извините, может быть, в другой раз. Сумма была [сумма] » ,
  323. « Сумма была [сумма], я думаю, вы не всегда можете выиграть ... » ,
  324. }
  325.  
  326. - ------------------------------------------------ -------------------------------------------------- --------------
  327. - ВЕЩАНИЕ -
  328. - ------------------------------------------------ -------------------------------------------------- --------------
  329. - ДОСТУПНЫЕ МЕСТА ДЛЯ ТАМОЖЕННЫХ СООБЩЕНИЙ
  330. - [имя],
  331. - [minhighlow], [minoddeven], [minfirstsecondlast], [minsingle], [minblackjack],
  332. - [maxhighlow], [maxoddeven], [maxfirstsecondlast], [maxsingle], [maxblackjack],
  333. - [payoutblackjack], [payoutoddeven], [payouthighlow], [payoutfirstsecondlast], [payoutsingle]
  334.  
  335. _Broadcast_UseMessages = true - использовать широковещательные сообщения
  336. _Broadcast_Interval = 60 - Время в секундах ожидания до следующей трансляции
  337. _Broadcast_FixedInterval = false - трансляция даже с игроками вокруг или во время игры | ВНИМАНИЕ: может повлиять на производительность
  338. _Broadcast_UppercaseMessages = true - изменить трансляцию, чтобы использовать заглавные буквы | Пример: ИГРАТЬ В БЫСТРЫЙ ИГРЫ
  339. _Broadcast_YellMessages = true - транслируемое сообщение Yell
  340. _Broadcast_Messages =
  341. {
  342. " [name ]'s Casino - испытай удачу в самой быстрой игре! " ,
  343. « Стань миллионером за секунду в [name ]'s Casino! » ,
  344. « Иди и играй в самую быструю игру! » ,
  345. « Чувствуешь себя счастливым? Лучшая зарплата во всей Голени! » ,
  346. « Устали от медленных игр? Приходите и играйте в [name ]'s Casino! » ,
  347. }
  348.  
  349. - ------------------------------------------------ -------------------------------------------------- --------------
  350. - ПОБЕДЫ И ПОТЕРЯ -
  351. - ------------------------------------------------ -------------------------------------------------- --------------
  352.  
  353. Winning_Item = " Lyre " - По умолчанию: Lyre | Введите "нет", чтобы отключить
  354. Losing_Item = " Trough Kit " - По умолчанию: Trough Kit | Введите "нет", чтобы отключить
  355.  
  356. - ------------------------------------------------ -------------------------------------------------- --------------
  357. - ПУНКТЫ -
  358. - ------------------------------------------------ -------------------------------------------------- --------------
  359.  
  360. Accept_Items = false - принимать предметы как ставки
  361. Items_List =
  362. {
  363. - Продукты -
  364. {Имя = " Волшебная Сера " , Значение = 8000 },
  365. {Name = " Dragon Claw " , Value = 300000 },
  366. {Имя = " Камень Души " , Значение = 500000 },
  367. {Name = " Spider Silk " , Value = 4000 },
  368. {Имя = " Глаз Драколы " , Значение = 50000 },
  369. {Имя = " Статуя Дракойла " , Значение = 5000 },
  370. {Имя = " Красный кусок ткани " , Значение = 20000 },
  371. {Name = " Настой воина " , Value = 10000 },
  372. {Name = " Наручники мистера Пуниша " , Value = 50000 },
  373. {Name = " Кусок резни " , Value = 50000 },
  374. {Name = " Украшение скелета " , Value = 3000 },
  375. {Name = " Снайперские перчатки " , Value = 2000 },
  376. {Name = " Spirit Container " , Value = 40000 },
  377. {Имя = " Кусок щупальца " , Значение = 5000 },
  378. {Name = " Остатки Плазмодели " , Value = 50000 },
  379. {Name = " Demonic Essence " , Value = 1000 },
  380. - другие -
  381. {Имя = " Пара мягких ботинок " , Значение = 300000 },
  382. {Name = " Worn Soft Boots " , Value = 300000 },
  383. {Name = " Firewalker Boots " , Value = 150000 },
  384. {Name = " Worn Firewalker Boots " , Value = 150000 },
  385. - синий джинн -
  386. {Имя = " Ангельский Топор " , Значение = 5000 },
  387. {Name = " Blue Robe " , Value = 10000 },
  388. {Имя = " Сапоги Ускорения " , Значение = 30000 },
  389. {Имя = " Топор мясника " , Значение = 18000 },
  390. {Name = " Crown Armor " , Value = 12000 },
  391. {Name = " Crown Helmet " , Value = 2500 },
  392. {Name = " Crown Legs " , Value = 12000 },
  393. {Name = " Crown Shield " , Value = 8000 },
  394. {Name = " Crusader Helmet " , Value = 6000 },
  395. {Name = " Dragon Lance " , Value = 9000 },
  396. {Имя = " Щит Дракона " , Значение = 4000 },
  397. {Имя = " Огненный Топор " , Значение = 8000 },
  398. {Имя = " Огненный Меч " , Значение = 4000 },
  399. {Имя = " Славный Топор " , Значение = 3000 },
  400. {Name = " Guardian Shield " , Value = 2000 },
  401. {Имя = " Щит Феникса " , Значение = 16000 },
  402. {Name = " Королевский скипетр " , Value = 10000 },
  403. {Name = " Royal Helmet " , Value = 30000 },
  404. {Name = " Shadow Scepter " , Value = 10000 },
  405. {Имя = " Тайский Меч " , Значение = 16000 },
  406. {Имя = " Жезл Космической энергии " , Значение = 2000 },
  407. {Имя = " Жезл неповиновения " , Значение = 6500 },
  408. {Name = " Жезл вечного огня " , Value = 6000 },
  409. {Имя = " Жезл Инферно " , Значение = 3000 },
  410. {Имя = " Жезл Звездной бури " , Значение = 3600 },
  411. {Имя = " Жезл Вуду " , Стоимость = 4000 },
  412. - Зеленый Джинн -
  413. {Name = " Bonebreaker " , Value = 10000 },
  414. {Name = " Dragon Hammer " , Value = 2000 },
  415. {Имя = " Ужасный Колун " , Значение = 15000 },
  416. {Name = " Рыцарский топор " , Value = 2000 },
  417. {Имя = " Топор Рыцаря Земли " , Значение = 2000 },
  418. {Имя = " Топор Рыцаря Энергии " , Значение = 2000 },
  419. {Имя = " Топор Рыцаря Огненного " , Значение = 2000 },
  420. {Name = " Ледяной топор рыцаря " , Value = 2000 },
  421. {Имя = " Гигантский Меч " , Значение = 17000 },
  422. {Name = " Haunted Blade " , Value = 8000 },
  423. {Name = " Knight Legs " , Value = 5000 },
  424. {Name = " Knight Armor " , Value = 5000 },
  425. {Name = " Onyx Flail " , Value = 22000 },
  426. {Name = " Украшенный топор " , Value = 20000 },
  427. {Name = " Посох черепа " , Value = 6000 },
  428. {Имя = " Топор Титана " , Значение = 4000 },
  429. {Name = " Tower Shield " , Value = 8000 },
  430. {Имя = " Щит вампира " , Значение = 15000 },
  431. {Имя = " Шлем Воина " , Значение = 5000 },
  432. {Имя = " Ледяной жезл " , Значение = 6500 },
  433. {Name = " Hailstorm Rod " , Value = 3000 },
  434. {Name = " Muck Rod " , Value = 6000 },
  435. {Name = " Springsprout Rod " , Value = 3600 },
  436. {Name = " Terra Rod " , Value = 2000 },
  437. {Name = " Стержень преступного мира " , Value = 4400 },
  438. - Рашид -
  439. {Name = " Abyss Hammer " , Value = 20000 },
  440. {Name = " Янтарный посох " , Value = 8000 },
  441. {Name = " Assassin Dagger " , Value = 20000 },
  442. {Name = " Berserker " , Value = 40000 },
  443. {Name = " Blacksteel Sword " , Value = 6000 },
  444. {Имя = " Благословенный Скипетр " , Значение = 40000 },
  445. {Name = " Bonelord Helmet " , Value = 7500 },
  446. {Имя = " Пряжка " , Значение = 7000 },
  447. {Name = " Замок Щита " , Значение = 5000 },
  448. {Name = " Цепной болтер " , Value = 40000 },
  449. {Name = " Chaos Mace " , Value = 9000 },
  450. {Name = " Cobra Crown " , Value = 50000 },
  451. {Name = " Composite Hornbow " , Value = 25000 },
  452. {Name = " Cranial Basher " , Value = 30000 },
  453. {Имя = " Хрустальный Арбалет " , Значение = 35000 },
  454. {Name = " Crystal Mace " , Value = 12000 },
  455. {Имя = " Кристаллическая броня " , Значение = 16000 },
  456. {Имя = " Щит Демона " , Значение = 30000 },
  457. {Name = " Амулет Демонии " , Значение = 32000 },
  458. {Имя = " Меч Демонажа " , Значение = 36000 },
  459. {Имя = " Алмазный Скипетр " , Значение = 3000 },
  460. {Имя = " Божественная тарелка " , Значение = 55000 },
  461. {Имя = " Джинн Блейд " , Значение = 15000 },
  462. {Name = " Почта из чешуи дракона " , Value = 40000 },
  463. {Name = " Убийца драконов " , Value = 15000 },
  464. {Name = " Посох драконьей кости " , Value = 3000 },
  465. {Name = " Dwarven Armor " , Value = 30000 },
  466. {Имя = " Эльфийский Лук " , Значение = 2000 },
  467. {Name = " Epee " , Value = 8000 },
  468. {Name = " Меховые сапоги " , Value = 2000 },
  469. {Name = " Glacier Kilt " , Value = 11000 },
  470. {Имя = " Маска ледника " , Значение = 2500 },
  471. {Name = " Ледниковый халат " , Value = 11000 },
  472. {Name = " Glacier Shoes " , Value = 2500 },
  473. {Имя = " Золотое кольцо " , Значение = 8000 },
  474. {Name = " Golden Armor " , Value = 20000 },
  475. {Name = " Golden Legs " , Value = 30000 },
  476. {Name = " Guardian Halberd " , Value = 11000 },
  477. {Name = " Hammer Of Wrath " , Value = 30000 },
  478. {Name = " Headchopper " , Value = 6000 },
  479. {Name = " Heavy Mace " , Value = 50000 },
  480. {Имя = " Тяжелый Трезубец " , Значение = 2000 },
  481. {Name = " Шлем потерянных " , Value = 2000 },
  482. {Name = " Героический топор " , Value = 30000 },
  483. {Name = " Hibiscus Dress " , Value = 3000 },
  484. {Name = " Jade Hammer " , Value = 25000 },
  485. {Name = " Lavos Armor " , Value = 16000 },
  486. {Имя = " Амулет Левиафана " , Значение = 3000 },
  487. {Name = " Lightning Boots " , Value = 2500 },
  488. {Name = " Lightning Headband " , Value = 2500 },
  489. {Name = " Lightning Legs " , Value = 11000 },
  490. {Имя = " Молния " , Значение = 11000 },
  491. {Имя = " Лунный Посох " , Значение = 5000 },
  492. {Name = " Волшебный латный доспех " , значение = 90000 },
  493. {Name = " Magma Boots " , Value = 2500 },
  494. {Name = " Magma Coat " , Value = 11000 },
  495. {Name = " Magma Legs " , Value = 11000 },
  496. {Имя = " Магма Монокль " , Значение = 2500 },
  497. {Имя = " Мыс Мамонтового Меха " , Стоимость = 6000 },
  498. {Name = " Mastermind Shield " , Value = 50000 },
  499. {Name = " Medusa Shield " , Value = 9000 },
  500. {Имя = " Меч Наемника " , Значение = 12000 },
  501. {Name = " Микологический лук " , Value = 35000 },
  502. {Name = " Mystic Blade " , Value = 30000 },
  503. {Name = " Naginata " , Value = 2000 },
  504. {Name = " Кошмарный клинок " , Value = 35000 },
  505. {Имя = " Благородный Топор " , Значение = 10000 },
  506. {Name = " Orcish Maul " , Value = 6000 },
  507. {Имя = " Пара железных кулаков " , Значение = 4000 },
  508. {Name = " Paladin Armor " , Value = 15000 },
  509. {Name = " Исправленные сапоги " , Value = 2000 },
  510. {Имя = " Меч Фараона " , Значение = 23000 },
  511. {Name = " Пиратские сапоги " , Value = 3000 },
  512. {Имя = " Платиновый Амулет " , Значение = 2500 },
  513. {Имя = " Реликтовый Меч " , Значение = 25000 },
  514. {Имя = " Кольцо Неба " , Значение = 30000 },
  515. {Name = " Royal Axe " , Value = 40000 },
  516. {Name = " Ruby Necklace " , Value = 2000 },
  517. {Имя = " Безжалостный топор " , Значение = 45000 },
  518. {Имя = " Амулет Священного Дерева " , Значение = 3000 },
  519. {Name = " Sapphire Hammer " , Value = 7000 },
  520. {Name = " Scarab Shield " , Value = 2000 },
  521. {Имя = " Амулет ударной волны " , Значение = 3000 },
  522. {Name = " Skull Helmet " , Value = 40000 },
  523. {Name = " Skullcracker Armor " , Value = 18000 },
  524. {Name = " Spiked Squelcher " , Value = 5000 },
  525. {Name = " Steel Boots " , Value = 30000 },
  526. {Name = " Болотный болван " , Value = 16000 },
  527. {Name = " Tempest Shield " , Value = 35000 },
  528. {Name = " Terra Boots " , Value = 2500 },
  529. {Name = " Terra Hood " , Value = 2500 },
  530. {Name = " Terra Legs " , Value = 11000 },
  531. {Name = " Terra Mantle " , Value = 11000 },
  532. {Name = " Искатель правосудия " , Value = 40000 },
  533. {Name = " Vile Axe " , Value = 30000 },
  534. {Name = " Топор войны " , Value = 12000 },
  535. {Name = " War Horn " , Value = 8000 },
  536. {Имя = " Шляпа ведьмы " , Значение = 5000 },
  537. - Зао -
  538. {Name = " Drachaku " , Value = 10000 },
  539. {Name = " Draken Boots " , Value = 40000 },
  540. {Name = " Drakinata " , Value = 10000 },
  541. {Name = " Elite Draken Mail " , Value = 50000 },
  542. {Имя = " Сапоги Стража " , Значение = 35000 },
  543. {Name = " Sais " , Value = 16500 },
  544. {Name = " Twiceslicer " , Value = 28000 },
  545. {Name = " Ожерелье плачущей вдовы " , Value = 3000 },
  546. {Name = " Zaoan Armor " , Value = 14000 },
  547. {Name = " Zaoan Helmet " , Value = 45000 },
  548. {Name = " Zaoan Legs " , Value = 14000 },
  549. {Name = " Zaoan Shoes " , Value = 5000 },
  550. {Name = " Zaoan Sword " , Value = 30000 },
  551. - Warzone -
  552. {Имя = " Арбалет " , Значение = 42000 },
  553. {Name = " Тайный посох " , Value = 42000 },
  554. {Name = " Baby Seal Doll " , Value = 20000 },
  555. {Имя = " Украшенный драгоценностями корабль " , Значение = 20000 },
  556. {Name = " Лезвие коррупции " , Value = 60000 },
  557. {Name = " Bloody Edge " , Value = 30000 },
  558. {Name = " Blue Legs " , Value = 15000 },
  559. {Имя = " Яркий Меч " , Значение = 6000 },
  560. {Name = " Ceremonial Ankh " , Value = 20000 },
  561. {Name = " Коготь" Ядовитого порождения " " , Value = 15000 },
  562. {Имя = " Хрустальная палочка " , Значение = 10000 },
  563. {Имя = " Шлем Демона " , Значение = 40000 },
  564. {Name = " Мантия Дракона " , Value = 50000 },
  565. {Name = " Dwarven Legs " , Value = 40000 },
  566. {Name = " Яйцо многих " , Value = 15000 },
  567. {Имя = " Палач " , Значение = 55000 },
  568. {Name = " Замороженный звездный свет " , Value = 20000 },
  569. {Name = " Greenwood Coat " , Value = 50000 },
  570. {Name = " Marlin Trophy " , Value = 5000 },
  571. {Имя = " Модифицированный Арбалет " , Значение = 10000 },
  572. {Name = " Panda Teddy " , Value = 30000 },
  573. {Имя = " Рунический меч " , Значение = 45000 },
  574. {Name = " Морской змей Trophy " , значение = 10000 },
  575. {Name = " Silkweaver Bow " , Value = 12000 },
  576. {Name = " Souleater Trophy " , Value = 7500 },
  577. {Имя = " Фаршированный Дракон " , Значение = 6000 },
  578. {Имя = " Мститель " , Значение = 42000 },
  579. {Name = " Ironworker " , Value = 50000 },
  580. {Name = " Нечестивая Книга " , Value = 30000 },
  581. {Name = " Броня рожденного ветром " , значение = 50000 },
  582. }
  583.  
  584. - [[ НЕ РЕДАКТИРУЙТЕ НИКАКОГО НИЖЕ НИЖЕ ЭТОЙ ЛИНИИ ]] -
  585. Script_Information =
  586. {
  587. Name = " Casino Script v2.0 " ,
  588. Разработчик = " Chuitox "
  589. }
  590. InformationText = Script_Information. Name .. " by " .. Script_Information. Разработчик .. ' \ n '
  591.  
  592. - Сохраняйте совместимость со старыми клиентами
  593. если ( _G [ ' getSelfPing ' ] == ноль ), то
  594. Атман. Пинг = функция ()
  595. вернуть 100
  596. конец
  597. конец
  598.  
  599. функция onSpeak ( канал , сообщение )
  600. канал: SendYellowMessage ( getUserName (): titlecase (), сообщение)
  601. сообщение = сообщение: ниже (): отделка ()
  602.  
  603. local setting_cmd, setting_value = message: match ( ' ^ / ([az] +) (. +) $ ' )
  604. если (setting_cmd) тогда
  605. если (setting_cmd == ' широковещание ' ), то
  606. if (setting_value) тогда
  607. если (setting_value == ' true ' или setting_value == ' false ' ) тогда
  608. if (setting_value == ' true ' ) тогда
  609. _Broadcast_UseMessages = true
  610. канал: SendOrangeMessage ( « Казино » , « Вы будете транслировать сообщения » )
  611. еще
  612. _Broadcast_UseMessages = false
  613. Канал: SendOrangeMessage ( « Казино » , « Вы выиграли \» т широковещательных сообщений " )
  614. конец
  615. еще
  616. _Broadcast_UseMessages = true
  617. канал: SendOrangeMessage ( « Казино » , « Недопустимое значение. По умолчанию вы будете транслировать сообщения » )
  618. конец
  619. конец
  620. elseif (setting_cmd == ' Alwaysactive ' ) затем
  621. if (setting_value) тогда
  622. если (setting_value == ' true ' или setting_value == ' false ' ) тогда
  623. if (setting_value == ' true ' ) тогда
  624. _Inactivity_Detection = true
  625. channel: SendOrangeMessage ( ' Casino ' , ' Вы будете искать новые хранилища, если период бездействия больше, чем ' .. _Inactivity_Interval .. ' min. ' )
  626. еще
  627. _Inactivity_Detection = false
  628. Канал: SendOrangeMessage ( « Казино » , « Вы выиграли \» т искать новые склады , если период бездействия больше , чем « .. _Inactivity_Interval .. » мин. ' )
  629. конец
  630. еще
  631. _Inactivity_Detection = true
  632. channel: SendOrangeMessage ( ' Casino ' , ' Недопустимое значение. Вы будете искать новые депо, если период бездействия больше, чем ' .. _Inactivity_Interval .. ' min. по умолчанию ' )
  633. конец
  634. конец
  635. еще
  636. channel: SendOrangeMessage ( ' Казино ' , ' Неизвестная команда. Введите / help для получения списка доступных команд. ' )
  637. конец
  638. еще
  639. local execute_cmd = message: match ( ' ^ / ([az] +) $ ' )
  640. if (execute_cmd) тогда
  641. if (execute_cmd == ' open ' ) тогда
  642. если Open_Containers () то
  643. канал: SendOrangeMessage ( « Казино » , « Все контейнеры были успешно открыты. » )
  644. конец
  645. elseif (execute_cmd == ' start ' ) или (execute_cmd == ' new ' ) затем
  646. Casino_Loaded = false
  647. PickUpDiceAndDecoration ()
  648. если не блэкджек и
  649. не High_Low и
  650. не Odd_Even и
  651. не First_Second_Last и
  652. не Single_Numbers и
  653. не Highest_Lowest и
  654. не последовательность и
  655. не Pair_Of_Numbers и
  656. не Sum_Of_Numbers и
  657. не Beat_That то
  658. Канал: SendOrangeMessage ( « Казино » , « Ты не \» . т принять любой тип игры Пожалуйста, проверьте настройки и перезагрузить скрипт ' )
  659. еще
  660. если UpdateCoordinates () тогда
  661. если Open_Containers () то
  662. CheckDiceAndDecoration ()
  663. Last_Activity = os.time ()
  664. Общее. Предметы . LastAmountSeen = 0
  665. Общее. Предметы . Сумма = 0
  666. Общее. Предметы . Значение = 0
  667. Casino_Loaded = true
  668. ManualStop = false
  669. канал: SendOrangeMessage ( « Казино » , « Сценарий запущен » )
  670. конец
  671. еще
  672. канал: SendOrangeMessage ( « Казино » , « Сценарию не удалось найти местоположение » )
  673. конец
  674. конец
  675. elseif (execute_cmd == ' close ' ) затем
  676. Casino_Loaded = false
  677. PickUpDiceAndDecoration ()
  678. пока # Контейнер. GetAll () > 0 сделать
  679. для я = 0 , 15 до
  680. closeContainer (i)
  681. конец
  682. конец
  683. канал: SendOrangeMessage ( « Казино » , « Все контейнеры закрыты » )
  684. elseif (execute_cmd == ' stop ' ) затем
  685. Casino_Loaded = false
  686. ManualStop = true
  687. PickUpDiceAndDecoration ()
  688. пока # Контейнер. GetAll () > 0 сделать
  689. для я = 0 , 15 до
  690. closeContainer (i)
  691. конец
  692. конец
  693. если канал то
  694. канал: SendOrangeMessage ( « Казино » , « Сценарий остановлен » )
  695. конец
  696. elseif (execute_cmd == ' reset ' ) затем
  697. Blackjack_Payout = 80
  698. High_Low_Payout = 80
  699. Odd_Even_Payout = 80
  700. First_Second_Last_Payout = 180
  701. Single_Numbers_Payout = 360
  702. Losing_Item = ' Комплект корыта '
  703. Winning_Item = ' Lyre '
  704. Winning_Item_ID = Item. GetID (Winning_Item)
  705. Losing_Item_ID = Item. GetID (Losing_Item)
  706. _Debug_MessagesInChannel = false
  707. _Broadcast_YellMessages = false
  708. _Broadcast_FixedInterval = false
  709. _Broadcast_UseMessages = true
  710. _Inactivity_Detection = false
  711. Блэкджек_Минимум = 5000
  712. Блэкджек_Максимум = 500000
  713. High_Low_Minimum = 5000
  714. High_Low_Maximum = 500000
  715. Odd_Even_Minimum = 5000
  716. Odd_Even_Maximum = 500000
  717. First_Second_Last_Minimum = 5000
  718. First_Second_Last_Maximum = 300000
  719. Single_Numbers_Minimum = 5000
  720. Single_Numbers_Maximum = 200000
  721.  
  722. Highest_Lowest_Rolls = 4
  723. Highest_Lowest_Minimum = 5000
  724. Highest_Lowest_Maximum = 500000
  725. Highest_Lowest_Payout = 80
  726.  
  727. Sequence_Minimum = 5000
  728. Sequence_Maximum = 300000
  729. Sequence_Payout = 180
  730.  
  731. Pair_Of_Numbers_Minimum = 5000
  732. Pair_Of_Numbers_Maximum = 200000
  733. Pair_Of_Numbers_Payout = 360
  734.  
  735. Sum_Of_Numbers_Minimum = 5000
  736. Sum_Of_Numbers_Maximum = 200000
  737. Sum_Of_Numbers_Maximum_Rolls = 10
  738. Sum_Of_Numbers_Payout = 1000
  739.  
  740. Beat_That_Minimum = 5000
  741. Beat_That_Maximum = 200000
  742. Beat_That_Payout = 360
  743.  
  744. Last_Bid = os.time ()
  745. HEADS_UP_DISPLAY. LAST_BID . VALUE : SetText ( ' 00:00 ' )
  746. HEADS_UP_DISPLAY. AMOUNT_CASH . DISPLAY_PLATINUM . AMOUNT : SetText ( ' 0k ' )
  747. HEADS_UP_DISPLAY. СТАВКИ . WON . AMOUNT : SetText ( ' 0 (0k) ' )
  748. Пари. Вон . Raw = 0
  749. Пари. Вон . Наличные = 0
  750. HEADS_UP_DISPLAY. СТАВКИ . ПОТЕРЯЛИ . AMOUNT : SetText ( ' 0 (0k) ' )
  751. Пари. Потеряли . Raw = 0
  752. Пари. Потеряли . Наличные = 0
  753. HEADS_UP_DISPLAY. СТАВКИ . РЕЗУЛЬТАТ . AMOUNT : SetText ( ' 0 (0k) ' )
  754. Пари. Результат . Raw = 0
  755. Пари. Результат . Наличные = 0
  756. Общее. Предметы . LastAmountSeen = 0
  757. Общее. Предметы . Сумма = 0
  758. Общее. Предметы . Значение = 0
  759. канал: SendOrangeMessage ( « Казино » , « Все настройки были сброшены » )
  760. elseif (execute_cmd == ' help ' ) затем
  761. канал: SendOrangeMessage ( ' Казино ' , ' Доступные команды: \ n ' ..
  762. ' / help - Показать эту информацию \ n ' ..
  763. ' / сброс - сброс всех настроек \ n ' ..
  764. ' / start - запустить скрипт \ n ' ..
  765. ' / stop - остановить скрипт \ n ' ..
  766. ' / open - открыть все контейнеры. Использовать только в целях тестирования \ n ' ..
  767. ' / close - Закрыть все контейнеры. Использовать только в целях тестирования \ n ' ..
  768. ' / Alwaysactive (true / false) - Поиск нового депо, если обнаружен период бездействия ' )
  769. еще
  770. канал: SendOrangeMessage ( « Казино » , « Неизвестная команда. Введите / help для получения списка доступных команд » )
  771. конец
  772. еще
  773. канал: SendOrangeMessage ( « Казино » , « Неизвестная команда. Введите / help для получения списка доступных команд » )
  774. конец
  775. конец
  776. конец
  777.  
  778. функция onClose ( канал )
  779. печать ( « Казино: канал сценариев закрыт » )
  780. Casino_Loaded = false
  781. конец
  782.  
  783. CasinoChannel = канал. Открыть ( « Казино » , onSpeak, onClose)
  784. функция ProcessDebugMessage ( динамик , сообщение )
  785. если спикер == « Казино отладчик », то
  786. если _Debug_MessagesInChannel, то
  787. CasinoChannel: SendOrangeMessage (докладчик, сообщение)
  788. конец
  789. еще
  790. CasinoChannel: SendOrangeMessage (докладчик, сообщение)
  791. конец
  792. если _Debug_UseLog и Casino_LogFile, то
  793. Casino_LogFile: запись ( os.date () .. ' ' .. message .. ' \ n ' )
  794. Casino_LogFile: flush ()
  795. конец
  796. конец
  797. ProcessDebugMessage ( « Казино » , « Добро пожаловать на канал Казино! Введите / help список доступных команд » )
  798. ProcessDebugMessage ( « Казино » , « Загрузка сценария ... » )
  799. DEVELOPER_HEADER = HUD ( 10 , 20 , ' :.: ' .. Script_Information. Разработчик .. ' ' .. Script_Information. Имя .. ' ::. ' , 0 , 170 , 20 )
  800. USER_HEADER = HUD ( 10 , 40 , « XENOBOT USER » , 125 , 255 , 140 )
  801. USER_NAME = HUD ( 140 , 40 , getUserName (): titlecase (), 255 , 255 , 255 )
  802. STATS_HEADER = HUD ( 10 , 60 , « СТАТИСТИКА » , 125 , 255 , 140 )
  803. если _Effects_Interval < 1 или _Effects_Interval > 60, то
  804. _Effects_Interval = 1
  805. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Интервал эффектов был сброшен до ' .. _Effects_Interval .. ' second ' )
  806. конец
  807. если _Broadcast_Interval < 3 или _Broadcast_Interval > 15 * 60, то
  808. _Broadcast_Interval = 60
  809. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Время трансляции было сброшено до « .. _Broadcast_Interval .. » секунд » )
  810. конец
  811. если Highest_Lowest тогда
  812. если Highest_Lowest_Minimum < 100 или Highest_Lowest_Minimum > 200000, то
  813. Highest_Lowest_Minimum = 5000
  814. ProcessDebugMessage ( « Казино » , « Неверное значение. Максимальный / минимальный принятый размер денежных средств был сброшен до « .. Highest_Lowest_Minimum .. » ( ' .. (Highest_Lowest_Minimum / 1000 ) .. ' k) ' )
  815. конец
  816. если Highest_Lowest_Maximum < Highest_Lowest_Minimum или Highest_Lowest_Maximum > 500000, то
  817. Highest_Lowest_Maximum = 500000
  818. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимальный / минимальный принятый размер наличных был сброшен до « .. Highest_Lowest_Maximum .. » ( ' .. (Highest_Lowest_Maximum / 1000 ) .. ' k) ' )
  819. конец
  820. конец
  821. if (Highest_Lowest_Rolls % 2 ) ~ = 0 тогда
  822. Highest_Lowest_Rolls = 4
  823. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимальное / минимальное число бросков должно быть четным числом. Значение было сброшено до « .. Highest_Lowest_Rolls)
  824. конец
  825. если последовательность то
  826. если Sequence_Minimum < 100 или Sequence_Minimum > 300000, то
  827. Sequence_Minimum = 5000
  828. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимальная сумма принятой последовательности была сброшена до « .. Sequence_Minimum .. » ( ' .. (Sequence_Minimum / 1000 ) .. ' k) ' )
  829. конец
  830. если Sequence_Maximum < Sequence_Minimum или Sequence_Maximum > 300000, то
  831. Sequence_Maximum = 300000
  832. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимально допустимое количество наличных в последовательности сброшено до « .. Sequence_Maximum .. » ( ' .. (Sequence_Maximum / 1000 ) .. ' k) ' )
  833. конец
  834. конец
  835. если Pair_Of_Numbers тогда
  836. если Pair_Of_Numbers_Minimum < 100 или Pair_Of_Numbers_Minimum > 300000, то
  837. Pair_Of_Numbers_Minimum = 5000
  838. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Минимально допустимые денежные средства для пары чисел были сброшены до ' .. Pair_Of_Numbers_Minimum .. ' ( ' .. (Pair_Of_Numbers_Minimum / 1000 ) .. ' k) ' )
  839. конец
  840. если Pair_Of_Numbers_Maximum < Pair_Of_Numbers_Minimum или Pair_Of_Numbers_Maximum > 300000, то
  841. Pair_Of_Numbers_Maximum = 300000
  842. ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Максимально допустимое количество наличных для пары чисел было сброшено до ' .. Pair_Of_Numbers_Maximum .. ' ( ' .. (Pair_Of_Numbers_Maximum / 1000 ) .. ' k) ' )
  843. конец
  844. конец
  845. если Sum_Of_Numbers то
  846. если Sum_Of_Numbers_Minimum < 100 или Sum_Of_Numbers_Minimum > 100000, то
  847. Sum_Of_Numbers_Minimum = 5000
  848. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Минимально принятая сумма денежных сумм была сброшена до ' .. Sum_Of_Numbers_Minimum .. ' ( ' .. (Sum_Of_Numbers_Minimum / 1000 ) .. ' k) ' )
  849. конец
  850. если Sum_Of_Numbers_Maximum < Sum_Of_Numbers_Minimum или Sum_Of_Numbers_Maximum > 100000, то
  851. Sum_Of_Numbers_Maximum = 100000
  852. ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Максимально допустимая сумма сумм номеров была сброшена до ' .. Sum_Of_Numbers_Maximum .. ' ( ' .. (Sum_Of_Numbers_Maximum / 1000 ) .. ' k) ' )
  853. конец
  854. конец
  855. если Beat_That то
  856. если Beat_That_Minimum < 100 или Beat_That_Minimum > 200000, то
  857. Beat_That_Minimum = 5000
  858. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Beat. Минимально принятая сумма была сброшена до « .. Beat_That_Minimum .. » ( ' .. (Beat_That_Minimum / 1000 ) .. ' k) ' )
  859. конец
  860. если Beat_That_Maximum < Beat_That_Minimum или Beat_That_Maximum > 200000, то
  861. Beat_That_Maximum = 200000
  862. ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Beat. Максимально допустимое количество наличных было сброшено до ' .. Beat_That_Maximum .. ' ( ' .. (Beat_That_Maximum / 1000 ) .. ' k) ' )
  863. конец
  864. конец
  865. если блэкджек то
  866. если Blackjack_Minimum < 100 или Blackjack_Minimum > 200000, то
  867. Блэкджек_Минимум = 5000
  868. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимально допустимое количество денег в блэкджеке было сброшено до « .. Blackjack_Minimum .. » ( ' .. (Blackjack_Minimum / 1000 ) .. ' k) ' )
  869. конец
  870. если Blackjack_Maximum < Blackjack_Minimum или Blackjack_Maximum > 500000, то
  871. Блэкджек_Максимум = 500000
  872. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимально допустимое количество денег в блэкджеке было сброшено до « .. Blackjack_Maximum .. » ( ' .. (Blackjack_Maximum / 1000 ) .. ' k) ' )
  873. конец
  874. конец
  875. если High_Low тогда
  876. если High_Low_Minimum < 100 или High_Low_Minimum > 1000000, то
  877. High_Low_Minimum = 5000
  878. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимальный принятый максимум / минимум был сброшен до « .. High_Low_Minimum .. » ( ' .. (High_Low_Minimum / 1000 ) .. ' k) ' )
  879. конец
  880. если High_Low_Maximum < High_Low_Minimum или High_Low_Maximum > 1000000, то
  881. High_Low_Maximum = 500000
  882. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Максимальное / минимальное допустимое количество наличных было сброшено до « .. High_Low_Maximum .. » ( ' .. (High_Low_Maximum / 1000 ) .. ' k) ' )
  883. конец
  884. конец
  885. если Odd_Even тогда
  886. если Odd_Even_Minimum < 100 или Odd_Even_Minimum > 1000000, то
  887. Odd_Even_Minimum = 5000
  888. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Нечетное / четное минимальное принятое количество наличных было сброшено до ' .. Odd_Even_Minimum .. ' ( ' .. (Odd_Even_Minimum / 1000 ) .. ' k) ' )
  889. конец
  890. если Odd_Even_Maximum < Odd_Even_Minimum или Odd_Even_Maximum > 1000000, то
  891. Odd_Even_Maximum = 500000
  892. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Нечетное / четное максимально допустимое количество наличных денег было сброшено до « .. Odd_Even_Maximum .. » ( ' .. (Odd_Even_Maximum / 1000 ) .. ' k) ' )
  893. конец
  894. конец
  895. если First_Second_Last тогда
  896. если First_Second_Last_Minimum < 100 или First_Second_Last_Minimum > 200000, то
  897. First_Second_Last_Minimum = 5000
  898. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Первый / второй / последний принятый минимум денег был сброшен до ' .. First_Second_Last_Minimum .. ' ( ' .. (First_Second_Last_Minimum / 1000 ) .. ' k) ' )
  899. конец
  900. если First_Second_Last_Maximum < First_Second_Last_Minimum или First_Second_Last_Maximum > 300000, то
  901. First_Second_Last_Maximum = 300000
  902. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Первая / вторая / последняя максимальная принятая сумма была сброшена до « .. First_Second_Last_Maximum .. » ( ' .. (First_Second_Last_Maximum / 1000 ) .. ' k) ' )
  903. конец
  904. конец
  905. если Single_Numbers то
  906. если Single_Numbers_Minimum < 100 или Single_Numbers_Minimum > 200000, то
  907. Single_Numbers_Minimum = 5000
  908. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Минимальные принятые денежные средства для одного номера были сброшены до « .. Single_Numbers_Minimum .. » ( ' .. (Single_Numbers_Minimum / 1000 ) .. ' k) ' )
  909. конец
  910. если Single_Numbers_Maximum < Single_Numbers_Minimum или Single_Numbers_Maximum > 200000, то
  911. Single_Numbers_Maximum = 200000
  912. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Максимально допустимое количество наличных для одного номера сброшено до ' .. Single_Numbers_Maximum .. ' ( ' .. (Single_Numbers_Maximum / 1000 ) .. ' k) ' )
  913. конец
  914. конец
  915. если _Inactivity_Interval < 0 или _Inactivity_Interval > 15, то
  916. _Inactivity_Interval = 5
  917. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Минуты неактивных были сброшены до ' .. _Inactivity_Interval)
  918. конец
  919. если Blackjack_Payout < 1 или Blackjack_Payout > 100, то
  920. Blackjack_Payout = 80
  921. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Выплата по блэкджеку была сброшена до « .. Blackjack_Payout .. ' % ' )
  922. конец
  923. если High_Low_Payout < 1 или High_Low_Payout > 100, то
  924. High_Low_Payout = 80
  925. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат High / Low был сброшен до ' .. High_Low_Payout .. ' % ' )
  926. конец
  927. если Odd_Even_Payout < 1 или Odd_Even_Payout > 100, то
  928. Odd_Even_Payout = 80
  929. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Процент нечетных / четных выплат был сброшен до « .. Odd_Even_Payout .. ' % ' ) »
  930. конец
  931. если First_Second_Last_Payout < 1 или First_Second_Last_Payout > 300, то
  932. First_Second_Last_Payout = 180
  933. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат двух цифр был сброшен до ' .. First_Second_Last_Payout .. ' % ' )
  934. конец
  935. если Highest_Lowest_Payout < 1 или Highest_Lowest_Payout > 100, то
  936. Highest_Lowest_Payout = 80
  937. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Процент наибольшего / минимального выигрыша был сброшен до « .. Highest_Lowest_Payout .. » % » )
  938. конец
  939. если Sequence_Payout < 1 или Sequence_Payout > 300, то
  940. Sequence_Payout = 180
  941. ProcessDebugMessage ( ' Казино ' , ' Неверное значение. Процент выплат последовательности был сброшен до ' .. Sequence_Payout .. ' % ' )
  942. конец
  943. если Pair_Of_Numbers_Payout < 1 или Pair_Of_Numbers_Payout > 300, то
  944. Pair_Of_Numbers_Payout = 180
  945. ProcessDebugMessage ( ' Casino ' , ' Недопустимое значение. Процент выплат пары чисел был сброшен до ' .. Pair_Of_Numbers_Payout .. ' % ' )
  946. конец
  947. если Sum_Of_Numbers_Payout < 1 или Sum_Of_Numbers_Payout > 1000, то
  948. Sum_Of_Numbers_Payout = 1000
  949. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат суммы сумм был сброшен до ' .. Sum_Of_Numbers_Payout .. ' % ' )
  950. конец
  951. если Beat_That_Payout < 1 или Beat_That_Payout > 500, то
  952. Beat_That_Payout = 360
  953. ProcessDebugMessage ( « Казино » , « Недопустимое значение. Beat Этот процент выплат был сброшен до « .. Beat_That_Payout .. ' % ' )
  954. конец
  955. если Single_Numbers_Payout < 1 или Single_Numbers_Payout > 500, то
  956. Single_Numbers_Payout = 360
  957. ProcessDebugMessage ( ' Казино ' , ' Недопустимое значение. Процент выплат одной цифры был сброшен до ' .. Single_Numbers_Payout .. ' % ' )
  958. конец
  959. Casino_LogFile = ноль
  960. если _Debug_UseLog тогда
  961. Casino_LogFile = io.open ( ' .. \\ Log \\ Casino Log [ ' .. Self. Name () .. ' ] .txt ' , ' a + ' )
  962. конец
  963. Casino_StatisticsFile = ноль
  964. если _Statistics_UseLog тогда
  965. Casino_StatisticsFile = io.open ( ' .. \\ Log \\ Casino Stats [ ' .. Self. Name () .. ' ] .txt ' , ' a + ' )
  966. Casino_StatisticsFile: запись ( « Дата, броски, выигрыш, проигрыш , исход, игрок, опция, выпадение, сумма, выплата \ n ' )
  967. Casino_StatisticsFile: flush ()
  968. конец
  969. HEADS_UP_DISPLAY =
  970. {
  971. AMOUNT_CASH =
  972. {
  973. DISPLAY_CRYSTAL =
  974. {
  975. TEXT = HUD ( 10 , 80 , « Crystal Coins » , 200 , 200 , 200 ),
  976. AMOUNT = HUD ( 140 , 80 , ' 0k ' , 255 , 255 , 255 )
  977. },
  978. DISPLAY_PLATINUM =
  979. {
  980. ТЕКСТ = HUD ( 10 , 96 , « Платиновые монеты » , 200 , 200 , 200 ),
  981. AMOUNT = HUD ( 140 , 96 , ' 0k ' , 255 , 255 , 255 )
  982. }
  983. },
  984. AMOUNT_ITEMS =
  985. {
  986. DISPLAY_ITEM =
  987. {
  988. Текст = HUD ( 10 , 112 , « Предметы » , 200 , 200 , 200 ),
  989. AMOUNT = HUD ( 140 , 112 , ' 0 (0k) ' , 255 , 255 , 255 ),
  990. }
  991. },
  992. СТАВКИ =
  993. {
  994. ВЫИГРАЛ =
  995. {
  996. ТЕКСТ = HUD ( 10 , 128 , « Ставки выиграны » , 200 , 200 , 200 ),
  997. AMOUNT = HUD ( 140 , 128 , ' 0 (0k) ' , 255 , 255 , 255 ),
  998. AMOUNT_CASH = 0
  999. },
  1000. LOST =
  1001. {
  1002. ТЕКСТ = HUD ( 10 , 144 , « Потерянные ставки » , 200 , 200 , 200 ),
  1003. AMOUNT = HUD ( 140 , 144 , ' 0 (0k) ' , 255 , 255 , 255 ),
  1004. AMOUNT_CASH = 0
  1005. },
  1006. ИТОГО =
  1007. {
  1008. ТЕКСТ = HUD ( 10 , 160 , « РЕЗУЛЬТАТ » , 255 , 216 , 0 ),
  1009. AMOUNT = HUD ( 140 , 160 , ' 0 (0k) ' , 255 , 255 , 255 ),
  1010. }
  1011. },
  1012. INFORMATION_HEADER = HUD ( 10 , 180 , « ИНФОРМАЦИЯ » , 125 , 255 , 140 ),
  1013. LAST_BID =
  1014. {
  1015. ТЕКСТ = HUD ( 10 , 200 , « Последняя заявка » , 200 , 200 , 200 ),
  1016. ЗНАЧЕНИЕ = HUD ( 140 , 200 , « 00:00:00 » , 255 , 255 , 255 )
  1017. },
  1018. SERVER_SAVE =
  1019. {
  1020. TEXT = HUD ( 10 , 216 , « Next Server Save » , 200 , 200 , 200 ),
  1021. ЗНАЧЕНИЕ = HUD ( 140 , 216 , « 00:00:00 » , 255 , 255 , 255 )
  1022. },
  1023. TIME_RUNNING =
  1024. {
  1025. ТЕКСТ = HUD ( 10 , 232 , « Time Running » , 200 , 200 , 200 ),
  1026. ЗНАЧЕНИЕ = HUD ( 140 , 232 , « 00:00:00 » , 255 , 255 , 255 )
  1027. }
  1028. }
  1029. Контейнеры =
  1030. {
  1031. Счетчик = ноль ,
  1032. Locker = ноль ,
  1033. Депо = ноль ,
  1034. Предметы = ноль ,
  1035. Чек = ноль ,
  1036. Crystal = {},
  1037. Платина = {},
  1038. }
  1039. Координаты =
  1040. {
  1041. Locker = {x = 0 , y = 0 , z = 0 },
  1042. Игрок = {x = 0 , y = 0 , z = 0 },
  1043. Счетчик = {x = 0 , y = 0 , z = 0 },
  1044. Adjacent_Locker = {x = 0 , y = 0 , z = 0 },
  1045. }
  1046. Last_Amount =
  1047. {
  1048. Кристалл = 0 ,
  1049. Платина = 0 ,
  1050. Предметы = 0
  1051. }
  1052. Всего =
  1053. {
  1054. Предметы =
  1055. {
  1056. LastAmountSeen = 0 ,
  1057. Сумма = 0 ,
  1058. Значение = 0
  1059. }
  1060. }
  1061. Ставки =
  1062. {
  1063. Выиграл =
  1064. {
  1065. Raw = 0 ,
  1066. Наличные = 0
  1067. },
  1068. Потерянный =
  1069. {
  1070. Raw = 0 ,
  1071. Наличные = 0
  1072. },
  1073. Результат =
  1074. {
  1075. Raw = 0 ,
  1076. Наличные = 0
  1077. }
  1078. }
  1079. Gambling_Depots =
  1080. {
  1081. Ялахар =
  1082. {
  1083. {
  1084. Имя = ' Spot1 ' ,
  1085. HouseSwitch = { 32793 , 31251 , 7 },
  1086. HouseDepot = { 32793 , 31252 , 7 },
  1087. PlayerSwitch = { 32795 , 31251 , 7 },
  1088. PlayerDepot = { 32795 , 31252 , 7 },
  1089. Счетчик = { 32794 , 31252 , 7 }
  1090. },
  1091. {
  1092. Имя = « Spot2 » ,
  1093. HouseSwitch = { 32793 , 31244 , 7 },
  1094. HouseDepot = { 32793 , 31243 , 7 },
  1095. PlayerSwitch = { 32795 , 31244 , 7 },
  1096. PlayerDepot = { 32795 , 31243 , 7 },
  1097. Счетчик = { 32794 , 31243 , 7 }
  1098. },
  1099. {
  1100. Имя = « Spot3 » ,
  1101. HouseSwitch = { 32789 , 31251 , 7 },
  1102. HouseDepot = { 32789 , 31252 , 7 },
  1103. PlayerSwitch = { 32791 , 31251 , 7 },
  1104. PlayerDepot = { 32791 , 31252 , 7 },
  1105. Счетчик = { 32790 , 31252 , 7 }
  1106. },
  1107. {
  1108. Имя = ' Spot4 ' ,
  1109. HouseSwitch = { 32789 , 31244 , 7 },
  1110. HouseDepot = { 32789 , 31243 , 7 },
  1111. PlayerSwitch = { 32791 , 31244 , 7 },
  1112. PlayerDepot = { 32791 , 31243 , 7 },
  1113. Счетчик = { 32790 , 31243 , 7 }
  1114. },
  1115. {
  1116. Имя = « Spot5 » ,
  1117. HouseSwitch = { 32785 , 31251 , 7 },
  1118. HouseDepot = { 32785 , 31252 , 7 },
  1119. PlayerSwitch = { 32787 , 31251 , 7 },
  1120. PlayerDepot = { 32787 , 31252 , 7 },
  1121. Счетчик = { 32786 , 31252 , 7 }
  1122. },
  1123. {
  1124. Имя = ' Spot6 ' ,
  1125. HouseSwitch = { 32785 , 31244 , 7 },
  1126. HouseDepot = { 32785 , 31243 , 7 },
  1127. PlayerSwitch = { 32787 , 31244 , 7 },
  1128. PlayerDepot = { 32787 , 31243 , 7 },
  1129. Счетчик = { 32786 , 31243 , 7 }
  1130. },
  1131. {
  1132. Имя = « Spot7 » ,
  1133. HouseSwitch = { 32781 , 31251 , 7 },
  1134. HouseDepot = { 32781 , 31252 , 7 },
  1135. PlayerSwitch = { 32783 , 31251 , 7 },
  1136. PlayerDepot = { 32783 , 31252 , 7 },
  1137. Счетчик = { 32782 , 31252 , 7 }
  1138. },
  1139. {
  1140. Имя = « Spot8 » ,
  1141. HouseSwitch = { 32781 , 31244 , 7 },
  1142. HouseDepot = { 32781 , 31243 , 7 },
  1143. PlayerSwitch = { 32783 , 31244 , 7 },
  1144. PlayerDepot = { 32783 , 31243 , 7 },
  1145. Счетчик = { тридцать две тысячи семьсот восемьдесят два , 31243 , 7 }
  1146. },
  1147. {
  1148. Имя = « Spot9 » ,
  1149. HouseSwitch = { 32793 , 31251 , 6 },
  1150. HouseDepot = { 32793 , 31252 , 6 },
  1151. PlayerSwitch = { 32795 , 31251 , 6 },
  1152. PlayerDepot = { 32795 , 31252 , 6 },
  1153. Счетчик = { 32794 , 31252 , 6 }
  1154. },
  1155. {
  1156. Имя = « Spot10 » ,
  1157. HouseSwitch = { 32793 , 31244 , 6 },
  1158. HouseDepot = { 32793 , 31243 , 6 },
  1159. PlayerSwitch = { 32795 , 31244 , 6 },
  1160. PlayerDepot = { 32795 , 31243 , 6 },
  1161. Счетчик = { 32794 , 31243 , 6 }
  1162. },
  1163. {
  1164. Имя = « Spot11 » ,
  1165. HouseSwitch = { 32789 , 31251 , 6 },
  1166. HouseDepot = { 32789 , 31252 , 6 },
  1167. PlayerSwitch = { 32791 , 31251 , 6 },
  1168. PlayerDepot = { 32791 , 31252 , 6 },
  1169. Счетчик = { 32790 , 31252 , 6 }
  1170. },
  1171. {
  1172. Имя = « Spot12 » ,
  1173. HouseSwitch = { 32789 , 31244 , 6 },
  1174. HouseDepot = { 32789 , 31243 , 6 },
  1175. PlayerSwitch = { 32791 , 31244 , 6 },
  1176. PlayerDepot = { 32791 , 31243 , 6 },
  1177. Счетчик = { 32790 , 31243 , 6 }
  1178. },
  1179. {
  1180. Имя = « Spot13 » ,
  1181. HouseSwitch = { 32785 , 31251 , 6 },
  1182. HouseDepot = { 32785 , 31252 , 6 },
  1183. PlayerSwitch = { 32787 , 31251 , 6 },
  1184. PlayerDepot = { 32787 , 31252 , 6 },
  1185. Счетчик = { 32786 , 31252 , 6 }
  1186. },
  1187. {
  1188. Имя = « Spot14 » ,
  1189. HouseSwitch = { 32785 , 31244 , 6 },
  1190. HouseDepot = { 32785 , 31243 , 6 },
  1191. PlayerSwitch = { 32787 , 31244 , 6 },
  1192. PlayerDepot = { 32787 , 31243 , 6 },
  1193. Счетчик = { 32786 , 31243 , 6 }
  1194. },
  1195. {
  1196. Имя = « Spot15 » ,
  1197. HouseSwitch = { 32781 , 31251 , 6 },
  1198. HouseDepot = { 32781 , 31252 , 6 },
  1199. PlayerSwitch = { 32783 , 31251 , 6 },
  1200. PlayerDepot = { 32783 , 31252 , 6 },
  1201. Счетчик = { 32782 , 31252 , 6 }
  1202. },
  1203. {
  1204. Имя = « Spot16 » ,
  1205. HouseSwitch = { 32781 , 31244 , 6 },
  1206. HouseDepot = { 32781 , 31243 , 6 },
  1207. PlayerSwitch = { 32783 , 31244 , 6 },
  1208. PlayerDepot = { 32783 , 31243 , 6 },
  1209. Счетчик = { тридцать две тысячи семьсот восемьдесят два , 31243 , 6 }
  1210. },
  1211. },
  1212. Тайцы =
  1213. {
  1214. {
  1215. Имя = « Spot17 » ,
  1216. HouseSwitch = { 32352 , 32226 , 7 },
  1217. HouseDepot = { 32352 , 32225 , 7 },
  1218. PlayerSwitch = { 32354 , 32226 , 7 },
  1219. PlayerDepot = { 32354 , 32225 , 7 },
  1220. Счетчик = { 32353 , 32225 , 7 }
  1221. },
  1222. {
  1223. Имя = « Spot18 » ,
  1224. HouseSwitch = { тридцать две тысячи триста пятьдесят два , 32230 , 7 },
  1225. HouseDepot = { 32352 , 32231 , 7 },
  1226. PlayerSwitch = { 32354 , 32230 , 7 },
  1227. PlayerDepot = { 32354 , 32231 , 7 },
  1228. Счетчик = { 32353 , 32231 , 7 }
  1229. },
  1230. {
  1231. Имя = « Spot19 » ,
  1232. HouseSwitch = { 32352 , 32226 , 6 },
  1233. HouseDepot = { 32352 , 32225 , 6 },
  1234. PlayerSwitch = { 32354 , 32226 , 6 },
  1235. PlayerDepot = { 32354 , 32225 , 6 },
  1236. Счетчик = { 32353 , 32225 , 6 }
  1237. },
  1238. {
  1239. Имя = « Spot20 » ,
  1240. HouseSwitch = { 32352 , 32230 , 6 },
  1241. HouseDepot = { 32352 , 32231 , 6 },
  1242. PlayerSwitch = { 32354 , 32230 , 6 },
  1243. PlayerDepot = { 32354 , 32231 , 6 },
  1244. Счетчик = { 32353 , 32231 , 6 }
  1245. },
  1246. {
  1247. Имя = « Spot21 » ,
  1248. HouseSwitch = { 32344 , 32226 , 6 },
  1249. HouseDepot = { 32344 , 32225 , 6 },
  1250. PlayerSwitch = { 32346 , 32226 , 6 },
  1251. PlayerDepot = { 32346 , 32225 , 6 },
  1252. Счетчик = { 32345 , 32225 , 6 }
  1253. },
  1254. {
  1255. Имя = « Spot22 » ,
  1256. HouseSwitch = { 32344 , 32230 , 6 },
  1257. HouseDepot = { 32344 , 32231 , 6 },
  1258. PlayerSwitch = { 32346 , 32230 , 6 },
  1259. PlayerDepot = { 32346 , 32231 , 6 },
  1260. Счетчик = { 32345 , 32231 , 6 }
  1261. },
  1262. {
  1263. Название = « Spot23 » ,
  1264. HouseSwitch = { 32348 , 32219 , 6 },
  1265. HouseDepot = { 32348 , 32218 , 6 },
  1266. PlayerSwitch = { 32350 , 32219 , 6 },
  1267. PlayerDepot = { 32350 , 32218 , 6 },
  1268. Счетчик = { 32349 , 32218 , 6 }
  1269. },
  1270. {
  1271. Имя = « Spot24 » ,
  1272. HouseSwitch = { 32344 , 32219 , 6 },
  1273. HouseDepot = { 32344 , 32218 , 6 },
  1274. PlayerSwitch = { 32346 , 32219 , 6 },
  1275. PlayerDepot = { 32346 , 32218 , 6 },
  1276. Счетчик = { 32345 , 32218 , 6 }
  1277. },
  1278. {
  1279. Имя = « Spot25 » ,
  1280. HouseSwitch = { 32352 , 32226 , 5 },
  1281. HouseDepot = { 32352 , 32225 , 5 },
  1282. PlayerSwitch = { 32354 , 32226 , 5 },
  1283. PlayerDepot = { 32354 , 32225 , 5 },
  1284. Счетчик = { 32353 , 32225 , 5 }
  1285. },
  1286. {
  1287. Имя = « Spot26 » ,
  1288. HouseSwitch = { тридцать две тысячи триста пятьдесят два , 32230 , 5 },
  1289. HouseDepot = { 32352 , 32231 , 5 },
  1290. PlayerSwitch = { 32354 , 32230 , 5 },
  1291. PlayerDepot = { 32354 , 32231 , 5 },
  1292. Счетчик = { 32353 , 32231 , 5 }
  1293. },
  1294. {
  1295. Имя = « Spot27 » ,
  1296. HouseSwitch = { 32344 , 32226 , 5 },
  1297. HouseDepot = { 32344 , 32225 , 5 },
  1298. PlayerSwitch = { 32346 , 32226 , 5 },
  1299. PlayerDepot = { 32346 , 32225 , 5 },
  1300. Счетчик = { 32345 , 32225 , 5 }
  1301. },
  1302. {
  1303. Имя = « Spot28 » ,
  1304. HouseSwitch = { 32344 , 32230 , 5 },
  1305. HouseDepot = { 32344 , 32231 , 5 },
  1306. PlayerSwitch = { 32346 , 32230 , 5 },
  1307. PlayerDepot = { 32346 , 32231 , 5 },
  1308. Счетчик = { 32345 , 32231 , 5 }
  1309. },
  1310. {
  1311. Имя = « Spot29 » ,
  1312. HouseSwitch = { 32348 , 32219 , 5 },
  1313. HouseDepot = { 32348 , 32218 , 5 },
  1314. PlayerSwitch = { 32350 , 32219 , 5 },
  1315. PlayerDepot = { 32350 , 32218 , 5 },
  1316. Счетчик = { 32349 , 32218 , 5 }
  1317. },
  1318. {
  1319. Имя = « Spot30 » ,
  1320. HouseSwitch = { 32344 , 32219 , 5 },
  1321. HouseDepot = { 32344 , 32218 , 5 },
  1322. PlayerSwitch = { 32346 , 32219 , 5 },
  1323. PlayerDepot = { 32346 , 32218 , 5 },
  1324. Счетчик = { 32345 , 32218 , 5 }
  1325. },
  1326. },
  1327. Venore =
  1328. {
  1329. {
  1330. Имя = « Spot31 » ,
  1331. HouseSwitch = { 32920 , 32069 , 7 },
  1332. HouseDepot = { 32920 , 32068 , 7 },
  1333. PlayerSwitch = { 32922 , 32069 , 7 },
  1334. PlayerDepot = { 32922 , 32068 , 7 },
  1335. Счетчик = { 32921 , 32068 , 7 }
  1336. },
  1337. {
  1338. Имя = « Spot32 » ,
  1339. HouseSwitch = { 32915 , 32069 , 7 },
  1340. HouseDepot = { 32915 , 32068 , 7 },
  1341. PlayerSwitch = { 32917 , 32069 , 7 },
  1342. PlayerDepot = { 32917 , 32068 , 7 },
  1343. Счетчик = { 32916 , 32068 , 7 }
  1344. },
  1345. {
  1346. Имя = « Spot33 » ,
  1347. HouseSwitch = { 32911 , 32072 , 7 },
  1348. HouseDepot = { 32911 , 32071 , 7 },
  1349. PlayerSwitch = { 32913 , 32072 , 7 },
  1350. PlayerDepot = { 32913 , 32071 , 7 },
  1351. Счетчик = { 32912 , 32071 , 7 }
  1352. },
  1353. {
  1354. Имя = « Spot34 » ,
  1355. HouseSwitch = { 32924 , 32072 , 7 },
  1356. HouseDepot = { 32924 , 32071 , 7 },
  1357. PlayerSwitch = { 32926 , 32072 , 7 },
  1358. PlayerDepot = { 32926 , 32071 , 7 },
  1359. Счетчик = { 32925 , 32071 , 7 }
  1360. },
  1361. {
  1362. Имя = « Spot35 » ,
  1363. HouseSwitch = { 32928 , 32072 , 7 },
  1364. HouseDepot = { 32928 , 32071 , 7 },
  1365. PlayerSwitch = { 32930 , 32072 , 7 },
  1366. PlayerDepot = { 32930 , 32071 , 7 },
  1367. Счетчик = { 32929 , 32071 , 7 }
  1368. },
  1369. {
  1370. Имя = « Spot36 » ,
  1371. HouseSwitch = { 32928 , 32081 , 7 },
  1372. HouseDepot = { 32928 , 32082 , 7 },
  1373. PlayerSwitch = { 32930 , 32081 , 7 },
  1374. PlayerDepot = { 32930 , 32082 , 7 },
  1375. Счетчик = { 32929 , 32082 , 7 }
  1376. },
  1377. {
  1378. Имя = « Spot37 » ,
  1379. HouseSwitch = { 32924 , 32081 , 7 },
  1380. HouseDepot = { 32924 , 32082 , 7 },
  1381. PlayerSwitch = { 32926 , 32081 , 7 },
  1382. PlayerDepot = { 32926 , 32082 , 7 },
  1383. Счетчик = { 32925 , 32082 , 7 }
  1384. },
  1385. {
  1386. Имя = « Spot38 » ,
  1387. HouseSwitch = { 32919 , 32081 , 7 },
  1388. HouseDepot = { 32919 , 32082 , 7 },
  1389. PlayerSwitch = { 32921 , 32081 , 7 },
  1390. PlayerDepot = { 32921 , 32082 , 7 },
  1391. Счетчик = { 32920 , 32082 , 7 }
  1392. },
  1393. {
  1394. Имя = « Spot39 » ,
  1395. HouseSwitch = { 32915 , 32081 , 7 },
  1396. HouseDepot = { 32915 , 32082 , 7 },
  1397. PlayerSwitch = { 32917 , 32081 , 7 },
  1398. PlayerDepot = { 32917 , 32082 , 7 },
  1399. Счетчик = { 32916 , 32082 , 7 }
  1400. },
  1401. {
  1402. Имя = « Spot40 » ,
  1403. HouseSwitch = { 32910 , 32081 , 7 },
  1404. HouseDepot = { 32910 , 32082 , 7 },
  1405. PlayerSwitch = { 32912 , 32081 , 7 },
  1406. PlayerDepot = { 32912 , 32082 , 7 },
  1407. Счетчик = { 32911 , 32082 , 7 }
  1408. },
  1409. - ТЕСТ
  1410. {
  1411. Имя = « Spot41 » ,
  1412. HouseSwitch = { 32664 , 31906 , 8 },
  1413. HouseDepot = { 32665 , 31906 , 8 },
  1414. PlayerSwitch = { 32664 , 31904 , 8 },
  1415. PlayerDepot = { 32665 , 31904 , 8 },
  1416. Счетчик = { 32665 , 31905 , 8 }
  1417. },
  1418. {
  1419. Имя = « Spot42 » ,
  1420. HouseSwitch = { 32833 , 31769 , 10 },
  1421. HouseDepot = { 32834 , 31769 , 10 },
  1422. PlayerSwitch = { 32833 , 31767 , 10 },
  1423. PlayerDepot = { 32834 , 31767 , 10 },
  1424. Счетчик = { 32834 , 31768 , 10 }
  1425. },
  1426. }
  1427. }
  1428. Dustbin_Locations =
  1429. {
  1430. { 32790 , 31248 , 7 },
  1431. { 32782 , 31248 , 7 },
  1432. { 32790 , 31248 , 6 },
  1433. { 32782 , 31248 , 6 },
  1434. }
  1435. Time_Now = os.date ( " * t " )
  1436. Server_Save_Hour, Server_Save_Minutes = _Extra_ServerSave: match ( " (. +): (. +) " )
  1437. Server_Save = ((Server_Save_Hour + 0 ) * 3600 ) + ((Server_Save_Minutes + 0 ) * 60 )
  1438. если Server_Save <= ((Time_Now. hour * 3600 ) + (Time_Now. min * 60 ) + Time_Now. sec ), то
  1439. Server_Save_TimeLeft = (Server_Save + 24 * 3600 ) - (. (Time_Now час * 3600 ) + . (Time_Now мин * 60 ) + . Time_Now сек )
  1440. еще
  1441. Server_Save_TimeLeft = Server_Save - (. (Time_Now час * 3600 ) + . (Time_Now мин * 60 ) + . Time_Now сек )
  1442. конец
  1443. Accepted_Items_List = {}
  1444. если Accept_Items то
  1445. для _, элемент в ipairs (Items_List) сделать
  1446. локальный AlreadyExists = false
  1447. локальный идентификатор = пункт. GetID (пункт. Имя )
  1448. для _, item_accepted в ipairs (Accepted_Items_List) сделать
  1449. если item_accepted то
  1450. если item_accepted. ID == ID тогда
  1451. AlreadyExists = true
  1452. конец
  1453. конец
  1454. конец
  1455. если не AlreadyExists тогда
  1456. если id == 3549 то
  1457. table.insert (Accepted_Items_List, {ID = 6529 , Value = item. Value })
  1458. elseif id == 9018 тогда
  1459. table.insert (Accepted_Items_List, {ID = 9019 , Value = item. Value })
  1460. конец
  1461. table.insert (Accepted_Items_List, {ID = id, Value = item. Value })
  1462. еще
  1463. ProcessDebugMessage ( « Отладчик казино » , « Имя пропущенного элемента дублируется в списке: « .. item. Name )
  1464. конец
  1465. конец
  1466. конец
  1467.  
  1468. для индекса имя в ipairs (_Remote_AdminName) сделать
  1469. _Remote_AdminName [index] = name: lower ()
  1470. конец
  1471. registerEventListener (WALKER_SELECTLABEL, ' onWalkLabel ' )
  1472. Winning_Item_ID = Item. GetID (Winning_Item)
  1473. Losing_Item_ID = Item. GetID (Losing_Item)
  1474. _Decoration_Item_ID = _Decoration_Enabled и Item. GetID (_Decoration_Item) или 0
  1475. Player_Option = ноль
  1476. Player_Balance = 0
  1477. Dustbin_Trash = { 283 , 284 , 285 , 3031 , 3492 , 3507 }
  1478. Dice_IDs = { 5792 , 5793 , 5794 , 5795 , 5796 , 5797 }
  1479. Locker_IDs = { 3497 , 3498 , 3499 , 3500 }
  1480. Money_IDs = { 3035 , 3043 }
  1481. Game_Types =
  1482. {
  1483. Сумма =
  1484. {
  1485. Выбор = 0
  1486. },
  1487. BeatThat =
  1488. {
  1489. Выбор = 0
  1490. }
  1491. }
  1492. 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 ' }
  1493. PybfrPyvrag = false
  1494. Last_Broadcast = os.time ()
  1495. Last_Message = os.time ()
  1496. Last_Bid = os.time ()
  1497. SkipRollingProcess = false
  1498. Player_Detected = false
  1499. Last_Player = ноль
  1500. Last_Party_Hat = os.time ()
  1501. Last_Activity = os.time ()
  1502. Last_Activity_Player_In_Spot = os.time ()
  1503. Time_Script_Started = os.time ()
  1504. OpeningNestedContainers = false
  1505. GoCheckDown = false
  1506. ManualStop = false
  1507. Casino_Loaded = false
  1508. Processing_Data = false
  1509. Processing_Effect = false
  1510. Take_Cash_Signal = false
  1511. Count_Cash_Signal = false
  1512. Roll_Dice_Signal = false
  1513. EffectProxyMessage = ноль
  1514. LocalProxyMessage = ноль
  1515.  
  1516. Sum_Of_Numbers_In_Progress = false
  1517. Sum_Of_Numbers_Roll_Count = 0
  1518. Sum_Of_Numbers_Sum = 0
  1519.  
  1520. Beat_That_In_Progress = false
  1521. Beat_That_Roll_Count = 0
  1522. Beat_That_Sum = 0
  1523.  
  1524. Highest_Lowest_In_Progress = false
  1525. Highest_Lowest_Roll_Count = 0
  1526. Highest_Lowest_First_Sum = 0
  1527. Highest_Lowest_Second_Sum = 0
  1528.  
  1529. Sequence_In_Progress = false
  1530. Sequence_Roll_Count = 0
  1531. Sequence_Count = 0
  1532.  
  1533. Blackjack_In_Progress = false
  1534. Блэкджек_Roll_Count = 0
  1535. Blackjack_Player_Count = 0
  1536. Blackjack_Dealer_Count = 0
  1537.  
  1538. Pay_Cash_Signal = 0
  1539. Play_Instrument_Signal = 0
  1540. Authenticate_Cash_Check = 0
  1541. Dice_Rolled_Check = 0
  1542. Winning_Item_Check = 0
  1543. Losing_Item_Check = 0
  1544. Payment_Give_Signal = false
  1545. Payment_Given_Check =
  1546. {
  1547. Кристалл = 0 ,
  1548. Crystal_Amount = 0 ,
  1549. Платина = 0 ,
  1550. Platinum_Amount = 0
  1551. }
  1552.  
  1553. функция ResetValues ()
  1554. Play_Instrument_Signal = 0
  1555. Processing_Data = false
  1556. Player_Option = ноль
  1557. Last_Activity = os.time ()
  1558. Last_Bid = os.time ()
  1559.  
  1560. Blackjack_In_Progress = false
  1561. Blackjack_Player_Count = 0
  1562. Blackjack_Dealer_Count = 0
  1563.  
  1564. Game_Types. Сумма . Выбор = 0
  1565. Sum_Of_Numbers_In_Progress = false
  1566. Sum_Of_Numbers_Roll_Count = 0
  1567. Sum_Of_Numbers_Sum = 0
  1568.  
  1569. Game_Types. BeatThat . Выбор = 0
  1570. Beat_That_In_Progress = false
  1571. Beat_That_Roll_Count = 0
  1572. Beat_That_Sum = 0
  1573.  
  1574. Highest_Lowest_In_Progress = false
  1575. Highest_Lowest_Roll_Count = 0
  1576. Highest_Lowest_First_Sum = 0
  1577. Highest_Lowest_Second_Sum = 0
  1578.  
  1579. Sequence_In_Progress = false
  1580. Sequence_Roll_Count = 0
  1581. Sequence_Count = 0
  1582. конец
  1583.  
  1584. функция WorkloadExecutionInterval ()
  1585. если _Extra_WorkloadExecution == ' быстро ', то
  1586. возврат 1
  1587. elseif _Extra_WorkloadExecution == ' medium ' затем
  1588. возврат 4
  1589. elseif _Extra_WorkloadExecution == ' медленно ' тогда
  1590. возврат 8
  1591. еще
  1592. возврат 2
  1593. конец
  1594. конец
  1595.  
  1596. Функциональные шатры ( т )
  1597. локальный макс = 1
  1598. в то время как т [макс] сделать
  1599. max = max + 1
  1600. конец
  1601. локальная функция ripairs_it ( t , i )
  1602. я = я - 1
  1603. местный v = t [i]
  1604. если v то
  1605. вернуть я, V
  1606. еще
  1607. вернуть ноль
  1608. конец
  1609. конец
  1610. возврат ripairs_it, т, не более
  1611. конец
  1612.  
  1613. функция SendMessage ( игрок , текст , кричать )
  1614. если _Interactive_Messages то
  1615. если os.difftime ( os.time (), Last_Message) > = 2, то
  1616. если _Interaction_PrivateMessages тогда
  1617. SendPrivateMessage (текст, проигрыватель, правда )
  1618. ProcessDebugMessage ( ' Casino Debugger ' , ' Отправить личное сообщение ' .. player .. ' : " ' .. text .. ' " ' )
  1619. еще
  1620. если вопль то
  1621. Атман. Yell (текст)
  1622. еще
  1623. Атман. Скажи (текст)
  1624. конец
  1625. ProcessDebugMessage ( ' Casino Debugger ' , ' Отправить сообщение: " ' .. text .. ' " ' )
  1626. конец
  1627. Last_Message = os.time ()
  1628. конец
  1629. конец
  1630. конец
  1631.  
  1632. функция SendPrivateMessage ( текст , плеер , дисплей )
  1633. если os.difftime ( os.time (), Last_Message) > = 2, то
  1634. Атман. PrivateMessage (игрок, текст)
  1635. если дисплей то
  1636. ProcessDebugMessage ( ' Casino ' , ' Отправить личное сообщение для ' .. player .. ' : " ' .. text .. ' " ' )
  1637. конец
  1638. Last_Message = os.time ()
  1639. конец
  1640. конец
  1641.  
  1642. функция CheckAvailableDepots ()
  1643. local AvailableDepots = {}
  1644. местный posx, posy, posz = Self. Положение (). х , Self. Положение (). у себя. Положение (). Z
  1645. для _, место в ipairs (Gambling_Depots. Yalahar ) сделать
  1646. if spot [ " HouseSwitch " ] [ 3 ] == Self. Положение (). г , то
  1647. локальный xDistHouse, xDistPlayer = math.abs (spot [ " HouseSwitch " ] [ 1 ] - posx), math.abs (spot [ " PlayerSwitch " ] [ 1 ] - posx)
  1648. локальный yDistHouse, yDistPlayer = math.abs (spot [ " HouseSwitch " ] [ 2 ] - posy), math.abs (spot [ " PlayerSwitch " ] [ 2 ] - posy)
  1649. если xDistHouse <= 7 и xDistPlayer <= 7, то
  1650. если yDistHouse <= 5 и yDistPlayer <= 5, то
  1651. local addSpot = true
  1652. для _ существо в существе . iPlayers () делать
  1653. if (существо: Position (). x == spot [ " HouseSwitch " ] [ 1 ] и существо: Position (). y == spot [ " HouseSwitch " ] [ 2 ] и существо: Position (). z == posz ) или
  1654. (существо: Position (). x == spot [ " PlayerSwitch " ] [ 1 ] и существо: Position (). y == spot [ " PlayerSwitch " ] [ 2 ] и существо: Position (). z == posz) тогда
  1655. addSpot = false
  1656. перемена
  1657. конец
  1658. конец
  1659. если addSpot то
  1660. table.insert (AvailableDepots, спот)
  1661. конец
  1662. конец
  1663. конец
  1664. конец
  1665. конец
  1666. ProcessDebugMessage ( « Отладчик казино » , « Найден скрипт » .. # AvailableDepots .. « Доступные хранилища » )
  1667. вернуть AvailableDepots
  1668. конец
  1669.  
  1670. функция UpdateCoordinates ()
  1671. местный posx, posy, posz = Self. Положение (). х , Self. Положение (). у себя. Положение (). Z
  1672. местное пятно = ноль
  1673. если не пятно то
  1674. для _, gamblingSpot в ipairs (Gambling_Depots. Yalahar ) сделать
  1675. если posx == gamblingSpot [ " HouseSwitch " ] [ 1 ] и posy == gamblingSpot [ " HouseSwitch " ] [ 2 ] и posz == gamblingSpot [ " HouseSwitch " ] [ 3 ], то
  1676. spot = gamblingSpot
  1677. перемена
  1678. конец
  1679. конец
  1680. конец
  1681. если не пятно то
  1682. для _, gamblingSpot in ipairs (Gambling_Depots. Thais ) делают
  1683. если posx == gamblingSpot [ " HouseSwitch " ] [ 1 ] и posy == gamblingSpot [ " HouseSwitch " ] [ 2 ] и posz == gamblingSpot [ " HouseSwitch " ] [ 3 ], то
  1684. spot = gamblingSpot
  1685. перемена
  1686. конец
  1687. конец
  1688. конец
  1689. если не пятно то
  1690. для _, gamblingSpot в ipairs (Gambling_Depots. Venore ) сделать
  1691. если posx == gamblingSpot [ " HouseSwitch " ] [ 1 ] и posy == gamblingSpot [ " HouseSwitch " ] [ 2 ] и posz == gamblingSpot [ " HouseSwitch " ] [ 3 ], то
  1692. spot = gamblingSpot
  1693. перемена
  1694. конец
  1695. конец
  1696. конец
  1697. если пятно то
  1698. Координаты. Locker . х , координаты. Locker . у , координаты. Locker . z = spot [ " HouseDepot " ] [ 1 ], spot [ " HouseDepot " ] [ 2 ], spot [ " HouseDepot " ] [ 3 ]
  1699. Координаты. Игрок . х , координаты. Игрок . у , координаты. Игрок . z = spot [ " PlayerSwitch " ] [ 1 ], spot [ " PlayerSwitch " ] [ 2 ], spot [ " PlayerSwitch " ] [ 3 ]
  1700. Координаты. Счетчик . х , координаты. Счетчик . у , координаты. Счетчик . z = spot [ " Counter " ] [ 1 ], spot [ " Counter " ] [ 2 ], spot [ " Counter " ] [ 3 ]
  1701. Координаты. Adjacent_Locker . х , координаты. Adjacent_Locker . у , координаты. Adjacent_Locker . z = spot [ " PlayerDepot " ] [ 1 ], spot [ " PlayerDepot " ] [ 2 ], spot [ " PlayerDepot " ] [ 3 ]
  1702. вернуть истину
  1703. конец
  1704. вернуть ложь
  1705. конец
  1706.  
  1707. функция onWalkLabel ( labelName )
  1708. local newLocation = false
  1709.  
  1710. if (labelName == ' CheckDepotsDown ' ) тогда
  1711. local AvailableDepots = CheckAvailableDepots ()
  1712. if ( # AvailableDepots > 0 ) тогда
  1713. gotoLabel (AvailableDepots [ 1 ] [ " Имя " ])
  1714. еще
  1715. gotoLabel ( ' StairsUp ' )
  1716. конец
  1717. elseif (labelName == ' CheckDepotsUp ' ) затем
  1718. если GoCheckDown тогда
  1719. gotoLabel ( « StairsDown » )
  1720. еще
  1721. local AvailableDepots = CheckAvailableDepots ()
  1722. if ( # AvailableDepots > 0 ) тогда
  1723. gotoLabel (AvailableDepots [ 1 ] [ " Имя " ])
  1724. еще
  1725. gotoLabel ( « StairsDown » )
  1726. конец
  1727. конец
  1728. elseif (labelName == ' CheckDownstairs ' ) затем
  1729. gotoLabel ( ' GroundFloor ' )
  1730. elseif (labelName == ' CheckUpstairs ' ) затем
  1731. gotoLabel ( « Первый этаж » )
  1732. elseif (labelName == ' StairsDown ' ) затем
  1733. GoCheckDown = false
  1734. elseif (labelName == ' CheckSpot1 ' ) или
  1735. (labelName == ' CheckSpot2 ' ) или
  1736. (labelName == ' CheckSpot3 ' ) или
  1737. (labelName == ' CheckSpot4 ' ) или
  1738. (labelName == ' CheckSpot5 ' ) или
  1739. (labelName == ' CheckSpot6 ' ) или
  1740. (labelName == ' CheckSpot7 ' ) или
  1741. (labelName == ' CheckSpot8 ' ) или
  1742. (labelName == ' CheckSpot9 ' ) или
  1743. (labelName == ' CheckSpot10 ' ) или
  1744. (labelName == ' CheckSpot11 ' ) или
  1745. (labelName == ' CheckSpot12 ' ) или
  1746. (labelName == ' CheckSpot13 ' ) или
  1747. (labelName == ' CheckSpot14 ' ) или
  1748. (labelName == ' CheckSpot15 ' ) или
  1749. (labelName == ' CheckSpot16 ' ) затем
  1750. newLocation = UpdateCoordinates ()
  1751. конец
  1752. если newLocation тогда
  1753. setWalkerEnabled ( false )
  1754. если Open_Containers () то
  1755. CheckDiceAndDecoration ()
  1756. Last_Activity = os.time ()
  1757. Общее. Предметы . LastAmountSeen = 0
  1758. Общее. Предметы . Сумма = 0
  1759. Общее. Предметы . Значение = 0
  1760. Casino_Loaded = true
  1761. ProcessDebugMessage ( « Казино » , « Персонаж размещен в новом депо » )
  1762. конец
  1763. конец
  1764. конец
  1765.  
  1766. функция Count_Platinum_Extended ()
  1767. если # Контейнеры. Платина > 0 тогда
  1768. локальный итог = 0
  1769. для _, контейнер в ipairs (контейнеры. платина ) сделать
  1770. итого = итого + контейнер: CountItemsOfID ( 3035 )
  1771. конец
  1772. возврат итого
  1773. конец
  1774. вернуть 0
  1775. конец
  1776.  
  1777. функция Count_Crystal_Extended ()
  1778. если # Контейнеры. Кристалл > 0 тогда
  1779. локальный итог = 0
  1780. для _, контейнер в ipairs (контейнеры. кристалл ) сделать
  1781. итого = итого + контейнер: CountItemsOfID ( 3043 )
  1782. конец
  1783. возврат итого
  1784. конец
  1785. вернуть 0
  1786. конец
  1787.  
  1788. функция Count_Extended ( контейнер , идентификаторы )
  1789. если контейнер, то
  1790. local tempTotal = 0
  1791. для _, itemID в ipairs (идентификаторах) сделать
  1792. tempTotal = tempTotal + container: CountItemsOfID (itemID)
  1793. конец
  1794. возврат tempTotal
  1795. конец
  1796. вернуть 0
  1797. конец
  1798.  
  1799. функция CheckDiceAndDecoration ()
  1800. PickUpDiceAndDecoration ()
  1801. если _Decoration_Enabled то
  1802. если _Decoration_Item_ID > 0, то
  1803. если Count_Extended (Containers. Depot , {_Decoration_Item_ID}) > 0, то
  1804. для itemDepotChest = контейнеры. Депо : ItemCount () - 1 , 0 , - 1 до
  1805. local tempItemDepotChest = Контейнеры. Депо : GetItemData (itemDepotChest)
  1806. if _Decoration_Item_ID == tempItemDepotChest. идентификатор затем
  1807. пока контейнеры. Depot : MoveItemToGround (itemDepotChest, Координаты. Locker . X , Координаты. Locker . Y , Координаты. Locker . Z , 1 ) ~ = 1 do end
  1808. подождите ( 1000 + Self. Ping ())
  1809. перемена
  1810. конец
  1811. конец
  1812. конец
  1813. конец
  1814. конец
  1815. если Count_Extended (Containers. Depot , Dice_IDs) > 0, то
  1816. для itemDepotChest = контейнеры. Депо : ItemCount () - 1 , 0 , - 1 до
  1817. local tempItemDepotChest = Контейнеры. Депо : GetItemData (itemDepotChest)
  1818. если таблица. содержит (Dice_IDs, tempItemDepotChest. id ) затем
  1819. пока контейнеры. Depot : MoveItemToGround (itemDepotChest, Координаты. Locker . X , Координаты. Locker . Y , Координаты. Locker . Z , 1 ) ~ = 1 do end
  1820. подождите ( 1000 + Self. Ping ())
  1821. перемена
  1822. конец
  1823. конец
  1824. конец
  1825. LocalProxyMessage = ноль
  1826. EffectProxyMessage = ноль
  1827. конец
  1828.  
  1829. функция PickUpDiceAndDecoration ( контейнер )
  1830. if (Контейнеры. Шкафчик и Контейнеры. Склад ) тогда
  1831. если Count_Extended (Containers. Locker , Dice_IDs) > 0, то
  1832. для itemLocker = контейнеры. Locker : ItemCount () - 1 , 0 , - 1 до
  1833. если itemLocker > 28, то
  1834. itemLocker = 28
  1835. конец
  1836. local tempItemLocker = Контейнеры. Locker : GetItemData (itemLocker)
  1837. если таблица. содержит (Dice_IDs, tempItemLocker. id ) затем
  1838. пока контейнеры. Шкафчик : MoveItemToContainer (itemLocker, контейнеры. Депо : Index (), 0 ) ~ = 1 сделать конец
  1839. подождите ( 1000 + Self. Ping ())
  1840. перемена
  1841. конец
  1842. конец
  1843. конец
  1844. если _Decoration_Enabled то
  1845. если _Decoration_Item_ID > 0, то
  1846. если Count_Extended (Containers. Locker , {_Decoration_Item_ID}) > 0, то
  1847. для itemLocker = контейнеры. Locker : ItemCount () - 1 , 0 , - 1 до
  1848. если itemLocker > 28, то
  1849. itemLocker = 28
  1850. конец
  1851. local tempItemLocker = Контейнеры. Locker : GetItemData (itemLocker)
  1852. if _Decoration_Item_ID == tempItemLocker. идентификатор затем
  1853. пока контейнеры. Шкафчик : MoveItemToContainer (itemLocker, контейнеры. Депо : Index (), 0 ) ~ = 1 сделать конец
  1854. подождите ( 1000 + Self. Ping ())
  1855. перемена
  1856. конец
  1857. конец
  1858. конец
  1859. конец
  1860. конец
  1861. конец
  1862. конец
  1863.  
  1864. функция Open_Containers ()
  1865. местные попытки = 10
  1866. пока # Контейнер. GetAll () > 0 сделать
  1867. для я = 0 , 15 до
  1868. closeContainer (i)
  1869. конец
  1870. конец
  1871. пока # Контейнер. GetAll () < 5 или пытается > 0 сделать
  1872. пока # Контейнер. GetAll () > 0 сделать
  1873. для я = 0 , 15 до
  1874. closeContainer (i)
  1875. конец
  1876. конец
  1877. Клиент. HideEquipment ()
  1878. если Self. BrowseField (Координаты. Счетчик . X , Координаты. Счетчик . Y , Координаты. Счетчик . Z ) == 1 затем
  1879. подождите ( 500 + Self. Ping ())
  1880. Контейнеры. Счетчик = Контейнер (_OpenTibia и _OpenTibia_Indexes [ 1 ] - 1 или 0 )
  1881. Контейнеры. Счетчик : Свернуть ()
  1882. подождите ( 100 )
  1883. Клиент. HideEquipment ()
  1884. ProcessDebugMessage ( « Отладчик казино » , « Открыто поле просмотра счетчика » )
  1885. если Self. BrowseField (Координаты. Locker . X , Координаты. Locker . Y , Координаты. Locker . Z ) == 1 затем
  1886. подождите ( 500 + Self. Ping ())
  1887. Контейнеры. Locker = контейнер (_OpenTibia и _OpenTibia_Indexes [ 2 ] - 1 или 1 )
  1888. Контейнеры. Locker : свернуть ()
  1889. подождите ( 100 )
  1890. Клиент. HideEquipment ()
  1891. ProcessDebugMessage ( « Отладчик казино » , « Открыто поле просмотра шкафчика » )
  1892. если таблица. содержит (Locker_IDs, Containers. Locker : GetItemData ( 0 ). id ) затем
  1893. Контейнеры. Locker : OpenChildren ({Контейнеры. Locker : GetItemData ( 0 ). Id , false })
  1894. подождите ( 500 + Self. Ping ())
  1895. Если контейнер (_OpenTibia и _OpenTibia_Indexes [ 3 ] - 1 или 2 ): UseItem ( 0 , true ) == 1 затем
  1896. местный индекс = 0
  1897. подождите ( 500 + Self. Ping ())
  1898. Контейнеры. Депо = Контейнер (_OpenTibia и _OpenTibia_Indexes [ 3 ] - 1 или 2 )
  1899. Контейнеры. Депо : свернуть ()
  1900. подождите ( 100 + Self. Ping ())
  1901. если Accept_Items то
  1902. Клиент. HideEquipment ()
  1903. если Count_Extended (Containers. Depot , {Item. GetID (_Containers_Items)}) > 0 тогда
  1904. для я = 0 , контейнеры. Депо : ItemCount () - 1 до
  1905. местный пункт = контейнеры. Депо : GetItemData (i)
  1906. если предмет. id == Item. GetID (_Containers_Items) затем
  1907. локальный opento = контейнер. GetFreeSlot ()
  1908. while (Containers. Depot : UseItem (i) ~ = 1 ) действительно ждут ( 300 + Self. Ping ()) конец
  1909. подождите ( 500 + Self. Ping ())
  1910. Контейнеры. Предметы = Контейнер (opento)
  1911. Контейнеры. Предметы : Свернуть ()
  1912. подождите ( 100 + Self. Ping ())
  1913. ProcessDebugMessage ( « Отладчик казино » , « Контейнер предметов открыт » )
  1914. перемена
  1915. конец
  1916. конец
  1917. еще
  1918. ProcessDebugMessage ( ' Казино ' , ' Ошибка. Контейнер предметов не найден: ' .. _Containers_Items)
  1919. вернуть ложь
  1920. конец
  1921. конец
  1922. Клиент. HideEquipment ()
  1923. индекс = 1
  1924. если Count_Extended (Containers. Depot , {Item. GetID (_Containers_CrystalCoins)}) > 0 тогда
  1925. для я = 0 , контейнеры. Депо : ItemCount () - 1 до
  1926. если индекс < 3, то
  1927. местный пункт = контейнеры. Депо : GetItemData (i)
  1928. если предмет. id == Item. GetID (_Containers_CrystalCoins) затем
  1929. локальный opento = контейнер. GetFreeSlot ()
  1930. while (Containers. Depot : UseItem (i) ~ = 1 ) действительно ждут ( 300 + Self. Ping ()) конец
  1931. подождите ( 500 + Self. Ping ())
  1932. Контейнеры. Crystal [index] = Контейнер (открытый)
  1933. Контейнеры. Crystal [index]: свернуть ()
  1934. подождите ( 100 + Self. Ping ())
  1935. индекс = индекс + 1
  1936. конец
  1937. еще
  1938. перемена
  1939. конец
  1940. конец
  1941. еще
  1942. ProcessDebugMessage ( ' Казино ' , ' Ошибка. Контейнеры с хрустальными монетами не найдены: ' .. _Containers_CrystalCoins)
  1943. вернуть ложь
  1944. конец
  1945. Клиент. HideEquipment ()
  1946. ProcessDebugMessage ( « Отладчик казино » , « Контейнеры с хрустальными монетами открыты » )
  1947. индекс = 1
  1948. если Count_Extended (Containers. Depot , {Item. GetID (_Containers_PlatinumCoins)}) > 0 тогда
  1949. для я = 0 , контейнеры. Депо : ItemCount () - 1 до
  1950. если индекс < 8, то
  1951. местный пункт = контейнеры. Депо : GetItemData (i)
  1952. если предмет. id == Item. GetID (_Containers_PlatinumCoins) затем
  1953. локальный opento = контейнер. GetFreeSlot ()
  1954. while (Containers. Depot : UseItem (i) ~ = 1 ) действительно ждут ( 300 + Self. Ping ()) конец
  1955. подождите ( 500 + Self. Ping ())
  1956. Контейнеры. Платина [index] = Контейнер (opento)
  1957. Контейнеры. Платина [index]: свернуть ()
  1958. подождите ( 100 + Self. Ping ())
  1959. индекс = индекс + 1
  1960. конец
  1961. еще
  1962. перемена
  1963. конец
  1964. конец
  1965. еще
  1966. ProcessDebugMessage ( ' Казино ' , ' Ошибка. Контейнер платиновых монет не найден: ' .. _Containers_PlatinumCoins)
  1967. вернуть ложь
  1968. конец
  1969. подождите ( 500 + Self. Ping ())
  1970. Клиент. HideEquipment ()
  1971. ProcessDebugMessage ( « Отладчик казино » , « Открыты контейнеры с платиновыми монетами » )
  1972. ProcessDebugMessage ( « Казино » , « Все контейнеры были успешно загружены » )
  1973. вернуть истину
  1974. конец
  1975. конец
  1976. конец
  1977. конец
  1978. попытки = попытки - 1
  1979. конец
  1980. вернуть ложь
  1981. конец
  1982. ProcessDebugMessage ( « Казино » , « Скрипт успешно загружен » )
  1983. Модуль ( ' PlayerDectectionSystem ' , функция ( Mod )
  1984. если Casino_Loaded тогда
  1985. если не Processing_Data тогда
  1986. local foundPlayer = false
  1987. для имени, существо в существе . iPlayers ( 2 ) сделать
  1988. if (существо: Position (). x == Координаты. Player . x и существо: Position (). y == Координаты. Player . y и существо: Position (). z == Координаты. Player . z ) затем
  1989. foundPlayer = true
  1990. если Last_Player ~ = тварь: имя () то
  1991. Last_Activity_Player_In_Spot = os.time ()
  1992. Last_Player = существо: Имя ()
  1993. SendMessage (Last_Player, Welcome_Messages [ math.random ( 1 , # Welcome_Messages)]: GSUB ( ' % [игрок%] ' , Last_Player), ложно )
  1994. конец
  1995. перемена
  1996. конец
  1997. конец
  1998. Player_Detected = foundPlayer
  1999. если Player_Detected то
  2000. существо = существо (Last_Player)
  2001. если существо то
  2002. if (существо: Position (). x < Self. Position (). x ) тогда
  2003. if (Self. LookDirection () ~ = WEST) тогда
  2004. Атман. Turn (WEST)
  2005. конец
  2006. elseif (существо: Position (). x > Self. Position (). x ) затем
  2007. if (Self. LookDirection () ~ = EAST) тогда
  2008. Атман. Поворот (ВОСТОК)
  2009. конец
  2010. elseif (существо: Position (). y < Self. Position (). y ) затем
  2011. if (Self. LookDirection () ~ = NORTH) тогда
  2012. Атман. Поворот (СЕВЕР)
  2013. конец
  2014. elseif (существо: Position (). y > Self. Position (). y ) затем
  2015. if (Self. LookDirection () ~ = SOUTH) тогда
  2016. Атман. Поворот (ЮГ)
  2017. конец
  2018. еще
  2019. ProcessDebugMessage ( « Отладчик казино » , « Ошибка. Персонаж - потенциальный игрок » )
  2020. конец
  2021. конец
  2022. еще
  2023. если координаты. Locker . у < Я. Положение (). у тогда
  2024. if (Self. LookDirection () ~ = SOUTH) тогда
  2025. Last_Activity_Player_In_Spot = os.time ()
  2026. Last_Player = ноль
  2027. Атман. Поворот (ЮГ)
  2028. конец
  2029. Координаты elseif . Locker . y > Self. Положение (). у тогда
  2030. if (Self. LookDirection () ~ = NORTH) тогда
  2031. Last_Activity_Player_In_Spot = os.time ()
  2032. Last_Player = ноль
  2033. Атман. Поворот (СЕВЕР)
  2034. конец
  2035. Координаты elseif . Locker . х < Я. Положение (). х то
  2036. if (Self. LookDirection () ~ = EAST) тогда
  2037. Last_Activity_Player_In_Spot = os.time ()
  2038. Last_Player = ноль
  2039. Атман. Поворот (ВОСТОК)
  2040. конец
  2041. elseif Координаты. Locker . x > Self. Положение (). х то
  2042. if (Self. LookDirection () ~ = WEST) тогда
  2043. Last_Activity_Player_In_Spot = os.time ()
  2044. Last_Player = ноль
  2045. Атман. Turn (WEST)
  2046. конец
  2047. еще
  2048. ProcessDebugMessage ( « Отладчик казино » , « Ошибка. Персонаж находится на шкафчике » )
  2049. конец
  2050. конец
  2051. конец
  2052. конец
  2053. Мод: Задержка ( WorkloadExecutionInterval () * 800 )
  2054. конец )
  2055.  
  2056. Модуль ( « АнтиТрашСистема » , функция ( Мод )
  2057. если Casino_Loaded тогда
  2058. если не Processing_Data тогда
  2059. для itemCounter = контейнеры. Счетчик : ItemCount () - 1 , 0 , - 1 до
  2060. если itemCounter > 28, то
  2061. itemCounter = 28
  2062. конец
  2063. local tempItemCounter = Контейнеры. Счетчик : GetItemData (itemCounter)
  2064. если не стол. содержит (Money_IDs, tempItemCounter. id ) затем
  2065. local isAcceptedItem = false
  2066. если Accept_Items то
  2067. для _, Accepted_Item в ipairs (Accepted_Items_List) сделать
  2068. если Accepted_Item. ID == tempItemCounter. идентификатор затем
  2069. isAcceptedItem = true
  2070. перемена
  2071. конец
  2072. конец
  2073. конец
  2074. если не isAcceptedItem, то
  2075. если не стол. содержит (Dustbin_Trash, tempItemCounter. id ) затем
  2076. Контейнеры. Счетчик : MoveItemToGround (. ItemCounter, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г , tempItemCounter. Кол )
  2077. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemCounter идентификатор .. ' ] ' .. . TempItemCounter рассчитывать .. ' ' .. . Пункт GetName . (TempItemCounter идентификатор ) .. ' - Counter >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
  2078. перемена
  2079. еще
  2080. Local ClosestDustbin = 20
  2081. local ClosestDustbinLocation = {}
  2082. для _, мусорный ящик в ipairs (Dustbin_Locations) сделать
  2083. local xDist = math.abs (мусорная корзина [ 1 ] - Self. Position (). x )
  2084. local yDist = math.abs (мусорная корзина [ 2 ] - Self. Position (). y )
  2085. если xDist <= 7 и yDist <= 5 и мусорная корзина [ 3 ] == Self. Положение (). г , то
  2086. если ClosestDustbin > xDist, то
  2087. ClosestDustbin = xDist
  2088. ClosestDustbinLocation = мусорная корзина
  2089. elseif ClosestDustbin > yDist затем
  2090. ClosestDustbin = yDist
  2091. ClosestDustbinLocation = мусорная корзина
  2092. конец
  2093. конец
  2094. конец
  2095. если ClosestDustbinLocation и ClosestDustbin < 20, то
  2096. Контейнеры. Счетчик : MoveItemToGround (itemCounter, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 .], TempItemCounter рассчитывать )
  2097. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemCounter идентификатор .. ' ] ' .. . TempItemCounter рассчитывать .. ' ' .. . Пункт GetName . (TempItemCounter идентификатор ) .. ' - Counter >> Мусорная корзина [ ' .. ClosestDustbinLocation [ 1 ] .. ' , ' .. ClosestDustbinLocation [ 2 ] .. ' , '.. ClosestDustbinLocation [ 3 ] .. ' ] ' )
  2098. перемена
  2099. еще
  2100. Контейнеры. Счетчик : MoveItemToGround (. ItemCounter, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г , tempItemCounter. Кол )
  2101. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemCounter идентификатор .. ' ] ' .. . TempItemCounter рассчитывать .. ' ' .. . Пункт GetName . (TempItemCounter идентификатор ) .. ' - Counter >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
  2102. перемена
  2103. конец
  2104. конец
  2105. конец
  2106. перемена
  2107. конец
  2108. конец
  2109. для itemLocker = контейнеры. Locker : ItemCount () - 1 , 0 , - 1 до
  2110. если itemLocker > 28, то
  2111. itemLocker = 28
  2112. конец
  2113. local tempItemLocker = Контейнеры. Locker : GetItemData (itemLocker)
  2114. если не стол. содержит (Locker_IDs, tempItemLocker. id ) затем
  2115. если не стол. содержит (Money_IDs, tempItemLocker. id ) затем
  2116. if (_Decoration_Enabled и _Decoration_Item_ID ~ = 0 и _Decoration_Item_ID ~ = tempItemLocker. id ) или
  2117. не _Decoration_Enabled или
  2118. _Decoration_Item_ID == 0 или
  2119. (_Decoration_Enabled и _Decoration_Item_ID ~ = 0 и Count_Extended (Containers. Locker , {_Decoration_Item_ID}) > 1 ) затем
  2120. если не стол. содержит (Dice_IDs, tempItemLocker. id ) затем
  2121. если не стол. содержит (Dustbin_Trash, tempItemLocker. id ) затем
  2122. if (_Decoration_Item_ID == tempItemLocker. id ) тогда
  2123. Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker кол - 1 )
  2124. еще
  2125. Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker рассчитывать )
  2126. конец
  2127. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
  2128. перемена
  2129. еще
  2130. Local ClosestDustbin = 20
  2131. local ClosestDustbinLocation = {}
  2132. для _, мусорный ящик в ipairs (Dustbin_Locations) сделать
  2133. local xDist = math.abs (мусорная корзина [ 1 ] - Self. Position (). x )
  2134. local yDist = math.abs (мусорная корзина [ 2 ] - Self. Position (). y )
  2135. если xDist <= 7 и yDist <= 5 и мусорная корзина [ 3 ] == Self. Положение (). г , то
  2136. если ClosestDustbin > xDist, то
  2137. ClosestDustbin = xDist
  2138. ClosestDustbinLocation = мусорная корзина
  2139. elseif ClosestDustbin > yDist затем
  2140. ClosestDustbin = yDist
  2141. ClosestDustbinLocation = мусорная корзина
  2142. конец
  2143. конец
  2144. конец
  2145. если ClosestDustbinLocation и ClosestDustbin < 20, то
  2146. if (_Decoration_Item_ID == tempItemLocker. id ) тогда
  2147. Контейнеры. Шкафчик : MoveItemToGround (itemLocker, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 ], tempItemLocker. Кол - 1 )
  2148. еще
  2149. Контейнеры. Шкафчик : MoveItemToGround (itemLocker, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 ], tempItemLocker. Кол )
  2150. конец
  2151. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Мусорная корзина [ ' .. ClosestDustbinLocation [ 1 ] .. ' , ' .. ClosestDustbinLocation [ 2 ] .. ' , '.. ClosestDustbinLocation [ 3 ] .. ' ] ' )
  2152. перемена
  2153. еще
  2154. if (_Decoration_Item_ID == tempItemLocker. id ) тогда
  2155. Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker кол - 1 )
  2156. еще
  2157. Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты Adjacent_Locker . Х ., Координаты Adjacent_Locker . У ., Координаты Adjacent_Locker . Г ., TempItemLocker рассчитывать )
  2158. конец
  2159. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Смежный шкафчик [ ' .. Координаты. Adjacent_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
  2160. перемена
  2161. конец
  2162. конец
  2163. еще
  2164. если Count_Extended (Containers. Locker , Dice_IDs) > 1, то
  2165. если контейнеры. Элементы и Accept_Items тогда
  2166. Контейнеры. Locker : MoveItemToContainer (itemLocker, Контейнеры. Элементы : Индекс (), Контейнеры. Элементы : ItemCapacity () - 1 , 1 )
  2167. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Контейнер элементов [ ' .. Координаты. Смежный_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
  2168. перемена
  2169. еще
  2170. Local ClosestDustbin = 20
  2171. local ClosestDustbinLocation = {}
  2172. для _, мусорный ящик в ipairs (Dustbin_Locations) сделать
  2173. local xDist = math.abs (мусорная корзина [ 1 ] - Self. Position (). x )
  2174. local yDist = math.abs (мусорная корзина [ 2 ] - Self. Position (). y )
  2175. если xDist <= 7 и yDist <= 5 и мусорная корзина [ 3 ] == Self. Положение (). г , то
  2176. если ClosestDustbin > xDist, то
  2177. ClosestDustbin = xDist
  2178. ClosestDustbinLocation = мусорная корзина
  2179. elseif ClosestDustbin > yDist затем
  2180. ClosestDustbin = yDist
  2181. ClosestDustbinLocation = мусорная корзина
  2182. конец
  2183. конец
  2184. конец
  2185. если ClosestDustbinLocation и ClosestDustbin < 20, то
  2186. Контейнеры. Шкафчик : MoveItemToGround (itemLocker, ClosestDustbinLocation [ 1 ], ClosestDustbinLocation [ 2 ], ClosestDustbinLocation [ 3 ], tempItemLocker. Кол )
  2187. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Мусорная корзина [ ' .. ClosestDustbinLocation [ 1 ] .. ' , ' .. ClosestDustbinLocation [ 2 ] .. ' , '.. ClosestDustbinLocation [ 3 ] .. ' ] ' )
  2188. перемена
  2189. еще
  2190. Контейнеры. Locker : MoveItemToContainer (itemLocker, Контейнеры. Элементы : Индекс (), Контейнеры. Элементы : ItemCapacity () - 1 , 1 )
  2191. ProcessDebugMessage ( ' Казино Debugger ' , ' Anti-Trash | [ ' .. . TempItemLocker идентификатор .. ' ] ' .. . TempItemLocker рассчитывать .. ' ' .. . Пункт GetName . (TempItemLocker идентификатор ) .. ' - Locker >> Контейнер элементов [ ' .. Координаты. Смежный_Locker . X .. ' , ' .. Координаты. Смежный_Locker . Y ..' , ' .. Координаты. Adjacent_Locker . z .. ' ] ' )
  2192. перемена
  2193. конец
  2194. конец
  2195. конец
  2196. конец
  2197. конец
  2198. еще
  2199. Контейнеры. Шкафчик : MoveItemToGround (. ItemLocker, координаты счетчика . Х ., Координаты счетчика . У ., Координаты счетчика . Г ., TempItemLocker рассчитывать )
  2200. перемена
  2201. конец
  2202. конец
  2203. конец
  2204. конец
  2205. конец
  2206. Мод: Задержка ( WorkloadExecutionInterval () * 800 )
  2207. конец )
  2208.  
  2209. если _Effects_Enabled то
  2210. Модуль ( ' EffectsSystem ' , функция ( Мод )
  2211. если Casino_Loaded тогда
  2212. если не Processing_Data тогда
  2213. если _Effects_Enabled то
  2214. если _Effects_Item: lower () == " party hat ", то
  2215. if (Self. Head (). id == Item. GetID ( ' party hat ' )) тогда
  2216. Атман. UseItemFromEquipment ( ' head ' )
  2217. Last_Party_Hat = os.time ()
  2218. конец
  2219. elseif _Effects_Item: lower () == " загадочный череп вуду " тогда
  2220. если Count_Extended (Containers. Depot , { 5669 }) > 0, то
  2221. для EffectItemInDepot = 0 , контейнеры. Депо : ItemCount () - 1 до
  2222. если EffectItemInDepot > 28, то
  2223. EffectItemInDepot = 28
  2224. конец
  2225. local tempItem = Контейнеры. Депо : GetItemData (EffectItemInDepot)
  2226. если 5669 == tempItem. идентификатор затем
  2227. Контейнеры. Депо : UseItem (EffectItemInDepot, true )
  2228. перемена
  2229. конец
  2230. конец
  2231. конец
  2232. еще
  2233. если Count_Extended (Containers. Depot , {Item. GetID (_Effects_Item)}) > 0 тогда
  2234. для EffectItemInDepot = 0 , контейнеры. Депо : ItemCount () - 1 до
  2235. если EffectItemInDepot > 28, то
  2236. EffectItemInDepot = 28
  2237. end
  2238. local tempItem = Containers.Depot:GetItemData(EffectItemInDepot)
  2239. if Item.GetID(_Effects_Item) == tempItem.id then
  2240. Containers.Depot:UseItem(EffectItemInDepot, true)
  2241. break
  2242. end
  2243. end
  2244. end
  2245. end
  2246. end
  2247. end
  2248. end
  2249. Mod:Delay(_Effects_Interval*1000)
  2250. end)
  2251. end
  2252. Module('BroadcastSystem', function(Mod)
  2253. if _Broadcast_UseMessages then
  2254. if Casino_Loaded then
  2255. if not Processing_Data then
  2256. if (os.difftime(os.time(),Last_Broadcast)>_Broadcast_Interval) then
  2257. if (os.difftime(os.time(),Last_Message)>2) then
  2258. local PlayersAround = false
  2259. if not _Broadcast_FixedInterval then
  2260. for name, creature in Creature.iPlayers(2) do
  2261. if name and creature then
  2262. PlayersAround = true
  2263. break
  2264. end
  2265. end
  2266. end
  2267. if not PlayersAround then
  2268. _Broadcast_Messages_Processed = {}
  2269. for index, value in ipairs(_Broadcast_Messages) do
  2270. _Broadcast_Messages_Processed[index] = value:gsub('%[name%]', Self.Name()):
  2271. gsub('%[minhighlow%]', (High_Low_Minimum/1000)..'k'):
  2272. gsub('%[maxhighlow%]', (High_Low_Maximum/1000)..'k'):
  2273. gsub('%[minoddeven%]', (Odd_Even_Minimum/1000)..'k'):
  2274. gsub('%[maxoddeven%]', (Odd_Even_Maximum/1000)..'k'):
  2275. gsub('%[minfirstsecondlast%]', (First_Second_Last_Minimum/1000)..'k'):
  2276. gsub('%[maxfirstsecondlast%]', (First_Second_Last_Maximum/1000)..'k'):
  2277. gsub('%[minsingle%]', (Single_Numbers_Minimum/1000)..'k'):
  2278. gsub ( ' % [maxsingle%] ' , (Single_Numbers_Maximum / 1000 ) .. ' k ' ):
  2279. gsub ( ' % [minblackjack%] ' , (Blackjack_Minimum / 1000 ) .. ' k ' ):
  2280. gsub ( ' % [maxblackjack%] ' , (Blackjack_Maximum / 1000 ) .. ' k ' ):
  2281. gsub('%[payouthighlow%]', High_Low_Payout..'%%'):
  2282. gsub('%[payoutoddeven%]', Odd_Even_Payout..'%%'):
  2283. gsub('%[payoutfirstsecondlast%]', First_Second_Last_Payout..'%%'):
  2284. gsub('%[payoutsingle%]', Single_Numbers_Payout..'%%'):
  2285. gsub('%[payoutblackjack%]', Blackjack_Payout..'%%')
  2286. _Broadcast_Messages_Processed[index] = _Broadcast_UppercaseMessages and _Broadcast_Messages_Processed[index]:upper() or _Broadcast_Messages_Processed[index]
  2287. end
  2288. local Custom_Message_Processed = _Broadcast_Messages_Processed[math.random(1, #_Broadcast_Messages_Processed)]
  2289. if _Broadcast_YellMessages then
  2290. Self.Yell(Custom_Message_Processed)
  2291. else
  2292. Self.Say(Custom_Message_Processed)
  2293. end
  2294. ProcessDebugMessage('Casino Debugger', 'Send broadcast message: "'..Custom_Message_Processed..'"')
  2295. Last_Broadcast = os.time()
  2296. Last_Message = os.time()
  2297. end
  2298. end
  2299. end
  2300. end
  2301. end
  2302. end
  2303. Mod:Delay(10000)
  2304. end)
  2305. Module('UpdateSystem', function(Mod)
  2306. local StopMessage = nil
  2307. local LowCash = false
  2308. local TakeScreenshot = true
  2309. if Casino_Loaded then
  2310. if #Container.GetAll() == 0 then
  2311. if (_Extra_RestartOnKick) then
  2312. Casino_Loaded = false
  2313. Processing_Data = false
  2314. if UpdateCoordinates() then
  2315. if Open_Containers() then
  2316. PickUpDiceAndDecoration()
  2317. CheckDiceAndDecoration()
  2318. Casino_Loaded = true
  2319. ProcessDebugMessage('Casino', 'The script has been restarted')
  2320. end
  2321. end
  2322. end
  2323. else
  2324. if not Processing_Data then
  2325. local AvailableSlotsPlat = false
  2326. local AvailableSlotsCrystal = false
  2327. local AvailableSlotsItem = false
  2328. local CipsoftMemberDetected = nil
  2329. HEADS_UP_DISPLAY.AMOUNT_CASH.DISPLAY_CRYSTAL.AMOUNT:SetText(tostring(Count_Crystal_Extended()*10)..'k')
  2330. HEADS_UP_DISPLAY.AMOUNT_CASH.DISPLAY_PLATINUM.AMOUNT:SetText(tostring(Count_Platinum_Extended()/10)..'k')
  2331. HEADS_UP_DISPLAY.AMOUNT_ITEMS.DISPLAY_ITEM.AMOUNT:SetText(tostring(Total.Items.Amount)..' ('..tostring(Total.Items.Value/1000)..'k)')
  2332. if (_Extra_CipStaffDetection) then
  2333. for name, creature in Creature.iCreatures() do
  2334. for _, member in ipairs(CipsoftMembers) do
  2335. if creature:Name():lower():find(member) then
  2336. CipsoftMemberDetected = creature:Name()
  2337. break
  2338. end
  2339. end
  2340. end
  2341. if CipsoftMemberDetected then
  2342. StopMessage = 'The script has detected a Cipsoft member nearby: '..CipsoftMemberDetected..'. Stopping the script and closing the client immediately'
  2343. ManualStop = true
  2344. PybfrPyvrag = true
  2345. end
  2346. end
  2347. if Containers.Platinum then
  2348. AvailableSlotsPlat = false
  2349. for _, container_Platinum in ipairs(Containers.Platinum) do
  2350. if container_Platinum:EmptySlots() > 2 then
  2351. AvailableSlotsPlat = true
  2352. break
  2353. end
  2354. end
  2355. end
  2356. if Containers.Crystal then
  2357. AvailableSlotsCrystal = false
  2358. for _, container_Crystal in ipairs(Containers.Crystal) do
  2359. if container_Crystal:EmptySlots() > 2 then
  2360. AvailableSlotsCrystal = true
  2361. break
  2362. end
  2363. end
  2364. end
  2365. if Accept_Items then
  2366. if Containers.Items then
  2367. AvailableSlotsItem = false
  2368. if Containers.Items:EmptySlots() > 0 and Count_Extended(Containers.Items, {Containers.Items:ID()}) > 0 then
  2369. AvailableSlotsItem = true
  2370. end
  2371. end
  2372. else
  2373. AvailableSlotsItem = true
  2374. end
  2375. if not AvailableSlotsPlat then
  2376. StopMessage = 'Stopping script due to few available slots for platinum coins'
  2377. ManualStop = true
  2378. elseif not AvailableSlotsCrystal then
  2379. StopMessage = 'Stopping script due to few available slots for crystal coins'
  2380. ManualStop = true
  2381. elseif not AvailableSlotsItem then
  2382. StopMessage = 'Stopping script due to few available slots for items. Please, add another "'.._Containers_Items..'" inside the last container'
  2383. ManualStop = true
  2384. end
  2385. if Count_Platinum_Extended() <= 100 then
  2386. StopMessage = 'Stopping script due to low platinum coins ('..(Count_Platinum_Extended()/1000)..'k)'
  2387. ManualStop = true
  2388. end
  2389. if _Extra_AlarmLowCash then
  2390. if not ManualStop then
  2391. local AvailableAmount = Count_Crystal_Extended() * 10000
  2392. if High_Low then
  2393. local RequiredAmount = (High_Low_Maximum * High_Low_Payout / 100)
  2394. if AvailableAmount < RequiredAmount then
  2395. StopMessage = 'Stopping script due to low amount of cash to play High/Low ('..(AvailableAmount/1000)..'k)'
  2396. end
  2397. elseif Odd_Even then
  2398. local RequiredAmount = (Odd_Even_Maximum * Odd_Even_Payout / 100)
  2399. if AvailableAmount < RequiredAmount then
  2400. StopMessage = 'Stopping script due to low amount of cash to play Odd/Even ('..(AvailableAmount/1000)..'k)'
  2401. end
  2402. elseif Blackjack then
  2403. local RequiredAmount = (Blackjack_Maximum * Blackjack_Payout / 100)
  2404. if AvailableAmount < RequiredAmount then
  2405. StopMessage = 'Stopping script due to low amount of cash to play Blackjack ('..(AvailableAmount/1000)..'k)'
  2406. end
  2407. elseif First_Second_Last then
  2408. local RequiredAmount = (First_Second_Last_Maximum * First_Second_Last_Payout / 100)
  2409. if AvailableAmount < RequiredAmount then
  2410. StopMessage = 'Stopping script due to low amount of cash to play First/Second/Last ('..(AvailableAmount/1000)..'k)'
  2411. end
  2412. elseif Single_Numbers then
  2413. local RequiredAmount = (Single_Numbers_Maximum * Single_Numbers_Payout / 100)
  2414. if AvailableAmount < RequiredAmount then
  2415. StopMessage = 'Stopping script due to low amount of cash to play Single Numbers ('..(AvailableAmount/1000)..'k)'
  2416. end
  2417. elseif Highest_Lowest then
  2418. local RequiredAmount = (Highest_Lowest_Maximum * Highest_Lowest_Payout / 100)
  2419. if AvailableAmount < RequiredAmount then
  2420. StopMessage = 'Stopping script due to low amount of cash to play Highest/Lowest ('..(AvailableAmount/1000)..'k)'
  2421. end
  2422. elseif Sequence then
  2423. local RequiredAmount = (Sequence_Maximum * Sequence_Payout / 100)
  2424. if AvailableAmount < RequiredAmount then
  2425. StopMessage = 'Stopping script due to low amount of cash to play Sequence ('..(AvailableAmount/1000)..'k)'
  2426. end
  2427. elseif Pair_Of_Numbers then
  2428. local RequiredAmount = (Pair_Of_Numbers_Maximum * Pair_Of_Numbers_Payout / 100)
  2429. if AvailableAmount < RequiredAmount then
  2430. StopMessage = 'Stopping script due to low amount of cash to play Pair Of Numbers ('..(AvailableAmount/1000)..'k)'
  2431. end
  2432. elseif Sum_Of_Numbers then
  2433. local RequiredAmount = (Sum_Of_Numbers_Maximum * Sum_Of_Numbers_Payout / 100)
  2434. if AvailableAmount < RequiredAmount then
  2435. StopMessage = 'Stopping script due to low amount of cash to play Sum Of Numbers ('..(AvailableAmount/1000)..'k)'
  2436. end
  2437. elseif Beat_That then
  2438. local RequiredAmount = (Beat_That_Maximum * Beat_That_Payout / 100)
  2439. if AvailableAmount < RequiredAmount then
  2440. StopMessage = 'Stopping script due to low amount of cash to play Beat That ('..(AvailableAmount/1000)..'k)'
  2441. end
  2442. end
  2443. if StopMessage then
  2444. ManualStop = true
  2445. LowCash = true
  2446. end
  2447. end
  2448. end
  2449. end
  2450. end
  2451. end
  2452. if not Processing_Data then
  2453. Time_Now = os.date("*t")
  2454. if Server_Save <= ((Time_Now.hour * 3600) + (Time_Now.min * 60) + Time_Now.sec) then
  2455. Server_Save_TimeLeft = os.difftime((Server_Save + 24 * 3600), (Time_Now.hour * 3600) + (Time_Now.min * 60) + Time_Now.sec)
  2456. else
  2457. Server_Save_TimeLeft = os.difftime(Server_Save,(Time_Now.hour * 3600) + (Time_Now.min * 60) + Time_Now.sec)
  2458. end
  2459.  
  2460. local diffSecs = os.difftime(os.time(),Last_Bid)
  2461. local nHours = string.format("%02.f", math.floor(diffSecs/3600))
  2462. local nMins = string.format("%02.f", math.floor((diffSecs - (nHours * 3600)) / 60))
  2463. local nSecs = string.format("%02.f", math.floor(diffSecs - (nHours * 3600) - (nMins * 60)))
  2464.  
  2465. HEADS_UP_DISPLAY.LAST_BID.VALUE:SetText(nHours..':'..nMins..':'..nSecs)
  2466.  
  2467. diffSecs = os.difftime(os.time(),Time_Script_Started)
  2468. nHours = string.format("%02.f", math.floor(diffSecs/3600))
  2469. nMins = string.format("%02.f", math.floor((diffSecs - (nHours * 3600)) / 60))
  2470. nSecs = string.format("%02.f", math.floor(diffSecs - (nHours * 3600) - (nMins * 60)))
  2471.  
  2472. HEADS_UP_DISPLAY.TIME_RUNNING.VALUE:SetText(nHours..':'..nMins..':'..nSecs)
  2473.  
  2474. nHours = string.format("%02.f", math.floor(Server_Save_TimeLeft/3600))
  2475. nMins = string.format("%02.f", math.floor((Server_Save_TimeLeft - (nHours * 3600)) / 60))
  2476. nSecs = string.format("%02.f", math.floor(Server_Save_TimeLeft - (nHours * 3600) - (nMins * 60)))
  2477.  
  2478. HEADS_UP_DISPLAY.SERVER_SAVE.VALUE:SetText(nHours..':'..nMins..':'..nSecs)
  2479.  
  2480. if not ManualStop then
  2481. if not Blackjack and
  2482. not High_Low and
  2483. not Odd_Even and
  2484. not First_Second_Last and
  2485. not Single_Numbers and
  2486. not Highest_Lowest and
  2487. not Sequence and
  2488. not Pair_Of_Numbers and
  2489. not Sum_Of_Numbers and
  2490. not Beat_That then
  2491. ProcessDebugMessage('Casino', 'You don\'t accept any game type. Please, check your settings and reload the script')
  2492. ManualStop = true
  2493. end
  2494. if Server_Save_TimeLeft <= 300 then
  2495. StopMessage = 'Stopping script due to Server Save'
  2496. ProcessDebugMessage('Casino', StopMessage)
  2497. ManualStop = true
  2498. end
  2499. else
  2500. Casino_Loaded = false
  2501. PickUpDiceAndDecoration()
  2502. if _Statistics_UseLog and Casino_StatisticsFile then
  2503. Casino_StatisticsFile:flush()
  2504. end
  2505. if StopMessage then
  2506. ProcessDebugMessage('Casino', StopMessage)
  2507. end
  2508. if LowCash then
  2509. if _Extra_AlarmLowCash then
  2510. alert()
  2511. end
  2512. end
  2513. if _Extra_ScreenshotOnStop then
  2514. if TakeScreenshot then
  2515. screenshot('Casino Script ['..Self.Name()..']['..os.date("%b %d %Y - %H.%M")..']')
  2516. wait(1000)
  2517. end
  2518. end
  2519. end
  2520. if PybfrPyvrag then
  2521. if _Debug_UseLog and Casino_LogFile then
  2522. Casino_LogFile:close()
  2523. end
  2524. if _Statistics_UseLog and Casino_StatisticsFile then
  2525. Casino_StatisticsFile:close()
  2526. end
  2527. os.exit()
  2528. end
  2529. end
  2530. Mod:Delay(1000)
  2531. end)
  2532.  
  2533. Module('RestackSystem', function(Mod)
  2534. if Casino_Loaded then
  2535. if not Processing_Data then
  2536. local ActionPerformed = false
  2537. local FreeSlots_Platinum = nil
  2538. local FreeSlots_Crystal = nil
  2539. if not ActionPerformed then
  2540. for _, container_Platinum in ipairs(Containers.Platinum) do
  2541. for itemPlatinumCoin = container_Platinum:ItemCount() - 1, 0, -1 do
  2542. if container_Platinum:ItemCount() >= 2 then
  2543. if not (itemPlatinumCoin == 0) then
  2544. local item_temp = container_Platinum:GetItemData(itemPlatinumCoin)
  2545. if item_temp.count < 100 then
  2546. container_Platinum:MoveItemToContainer(itemPlatinumCoin, container_Platinum:Index(), 0)
  2547. ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' platinum coins to beginning of the stack')
  2548. ActionPerformed = true
  2549. break
  2550. end
  2551. end
  2552. end
  2553. end
  2554. end
  2555. end
  2556. if not ActionPerformed then
  2557. for _, container_platinum in ipairs(Containers.Platinum) do
  2558. if container_platinum:EmptySlots() >= 2 then
  2559. FreeSlots_Platinum = container_platinum
  2560. break
  2561. end
  2562. end
  2563. if FreeSlots_Platinum then
  2564. for index, containersPlatinum in ripairs(Containers.Platinum) do
  2565. if (index > 1) then
  2566. for itemPlatinumCoin = containersPlatinum:ItemCount() - 1, 0, -1 do
  2567. if(containersPlatinum:Index() > FreeSlots_Platinum:Index()) then
  2568. local item_temp = containersPlatinum:GetItemData(itemPlatinumCoin)
  2569. containersPlatinum:MoveItemToContainer(itemPlatinumCoin, FreeSlots_Platinum:Index(), 0)
  2570. ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' platinum coins to empty slot in previous container')
  2571. ActionPerformed = true
  2572. break
  2573. end
  2574. end
  2575. end
  2576. end
  2577. end
  2578. end
  2579. if not ActionPerformed then
  2580. for _, container_Crystal in ipairs(Containers.Crystal) do
  2581. if container_Crystal:EmptySlots() >= 2 then
  2582. FreeSlots_Crystal = container_Crystal
  2583. break
  2584. end
  2585. end
  2586. if FreeSlots_Crystal then
  2587. for index, container_Crystal in ripairs(Containers.Crystal) do
  2588. if (index > 1) then
  2589. for itemCrystalCoin = container_Crystal:ItemCount() - 1, 0, -1 do
  2590. if(container_Crystal:Index() > FreeSlots_Crystal:Index()) then
  2591. local item_temp = container_Crystal:GetItemData(itemCrystalCoin)
  2592. container_Crystal:MoveItemToContainer(itemCrystalCoin, FreeSlots_Crystal:Index(), 0)
  2593. ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' crystal coins to empty slot in previous container')
  2594. ActionPerformed = true
  2595. break
  2596. end
  2597. end
  2598. end
  2599. end
  2600. end
  2601. end
  2602. if not ActionPerformed then
  2603. for _, container_Crystal in ipairs(Containers.Crystal) do
  2604. for itemCrystalCoin = container_Crystal:ItemCount() - 1, 0, -1 do
  2605. if container_Crystal:ItemCount() >= 2 then
  2606. if not (itemCrystalCoin == 0) then
  2607. local item_temp = container_Crystal:GetItemData(itemCrystalCoin)
  2608. if item_temp.count < 100 then
  2609. container_Crystal:MoveItemToContainer(itemCrystalCoin, container_Crystal:Index(), 0)
  2610. ProcessDebugMessage('Casino Debugger', 'Restack System | Moving '..item_temp.count..' crystal coins to beginning of the stack')
  2611. ActionPerformed = true
  2612. break
  2613. end
  2614. end
  2615. end
  2616. end
  2617. end
  2618. end
  2619. if not ActionPerformed then
  2620. if Accept_Items then
  2621. if Containers.Items then
  2622. if Containers.Items:EmptySlots() <= 5 then
  2623. OpeningNestedContainers = true
  2624. local TotalValueItems = 0
  2625. local TotalCountItems = 0
  2626. for indexItem = 0, Containers.Items:ItemCount()-1 do
  2627. local tempItem = Containers.Items:GetItemData(indexItem)
  2628. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  2629. if Accepted_Item.ID == tempItem.id then
  2630. TotalValueItems = TotalValueItems + (Accepted_Item.Value * tempItem.count)
  2631. TotalCountItems = TotalCountItems + 1
  2632. end
  2633. end
  2634. end
  2635. if Total.Items.LastAmountSeen ~= TotalValueItems then
  2636. Total.Items.LastAmountSeen = TotalValueItems
  2637. Total.Items.Amount = Total.Items.Amount + TotalCountItems
  2638. Total.Items.Value = Total.Items.Value + TotalValueItems
  2639. ProcessDebugMessage('Casino Debugger', 'Updating item values in HUD')
  2640. end
  2641. for indexContainer = Containers.Items:ItemCount()-1, 0, -1 do
  2642. if Item.isContainer(Containers.Items:GetItemData(indexContainer).id) then
  2643. Containers.Items:UseItem(indexContainer, true)
  2644. ProcessDebugMessage('Casino Debugger', 'Opening new container for items')
  2645. ActionPerformed = true
  2646. break
  2647. end
  2648. end
  2649. else
  2650. OpeningNestedContainers = false
  2651. end
  2652. end
  2653. end
  2654. end
  2655. end
  2656. end
  2657. Mod:Delay(WorkloadExecutionInterval()*400)
  2658. end)
  2659.  
  2660. Module('InactivityDetectionSystem', function(Mod)
  2661. if _Inactivity_Detection then
  2662. if not Processing_Data then
  2663. if not ManualStop then
  2664. if (os.difftime(os.time(), Last_Activity) >= (_Inactivity_Interval*60)) then
  2665. ProcessDebugMessage('Casino', 'The character has been inactive for more than '.._Inactivity_Interval..' min. The script will search for a new depot')
  2666. Casino_Loaded = false
  2667. PickUpDiceAndDecoration()
  2668. if Self.Position().z == 7 then
  2669. gotoLabel('GroundFloor')
  2670. elseif Self.Position().z == 6 then
  2671. GoCheckDown = true
  2672. gotoLabel('FirstFloor')
  2673. end
  2674. setWalkerEnabled(true)
  2675. end
  2676. end
  2677. end
  2678. else
  2679. if _Inactivity_NotifyBlockedSpot then
  2680. if not Processing_Data then
  2681. if not ManualStop then
  2682. if Last_Player then
  2683. if (os.difftime(os.time(),Last_Activity_Player_In_Spot) >= _Inactivity_BlockedSpotInterval*60) then
  2684. ProcessDebugMessage('Casino', 'The character has been inactive for more than '.._Inactivity_BlockedSpotInterval..' min. Notifying blocked spot')
  2685. SendMessage(Last_Player, _Inactivity_MessageBlockedSpot, false)
  2686. Last_Activity_Player_In_Spot = os.time()
  2687. end
  2688. end
  2689. end
  2690. end
  2691. end
  2692. end
  2693. Mod:Delay(30000)
  2694. end)
  2695. if _Inactivity_AntiIdle then
  2696. Module('InactivityAntiIdleSystem', function(Mod)
  2697. if (not _Inactivity_Detection or _Inactivity_Interval >= 15) and not Processing_Data then
  2698. Self.Turn(math.random(0, 3))
  2699. end
  2700. Mod:Delay(180000)
  2701. end)
  2702. end
  2703. Module('ProcessPaymentSystem', function(Mod)
  2704. if Processing_Data then
  2705. if Payment_Give_Signal then
  2706. if Payment_Given_Check.Platinum == 1 then
  2707. Payment_Given_Check.Platinum_Amount = 0
  2708. end
  2709. if Payment_Given_Check.Crystal == 1 then
  2710. if Payment_Given_Check.Crystal_Amount < 0 then
  2711. Payment_Given_Check.Crystal_Amount = 0
  2712. end
  2713. end
  2714. ProcessDebugMessage('Casino Debugger', 'Process Payment signal acknowledged | '..Payment_Given_Check.Crystal_Amount..' crystal coins | '..Payment_Given_Check.Platinum_Amount..' platinum coins')
  2715. if Payment_Given_Check.Platinum_Amount > 0 then
  2716. for _, container_Platinum in ipairs(Containers.Platinum) do
  2717. for platinumInContainer = container_Platinum:ItemCount()-1,0,-1 do
  2718. local tempItem = container_Platinum:GetItemData(platinumInContainer)
  2719. if (tempItem.id == 3035 and tempItem.count >= Payment_Given_Check.Platinum_Amount) then
  2720. Payment_Given_Check.Platinum = container_Platinum:MoveItemToGround(platinumInContainer,Coordinates.Counter.x,Coordinates.Counter.y,Coordinates.Counter.z,Payment_Given_Check.Platinum_Amount)
  2721. break
  2722. end
  2723. end
  2724. if Payment_Given_Check.Platinum == 1 then
  2725. break
  2726. end
  2727. end
  2728. elseif Payment_Given_Check.Crystal_Amount > 0 then
  2729. for _, container_Crystal in ipairs(Containers.Crystal) do
  2730. for crystalInContainer = container_Crystal:ItemCount()-1,0,-1 do
  2731. local tempItem = container_Crystal:GetItemData(crystalInContainer)
  2732. local AmountOfCrystalsToPay = 0
  2733. if Payment_Given_Check.Crystal_Amount > 100 then
  2734. AmountOfCrystalsToPay = 100
  2735. else
  2736. AmountOfCrystalsToPay = Payment_Given_Check.Crystal_Amount
  2737. end
  2738. if (tempItem.id == 3043 and tempItem.count >= AmountOfCrystalsToPay) then
  2739. Payment_Given_Check.Crystal = container_Crystal:MoveItemToGround(crystalInContainer,Coordinates.Counter.x,Coordinates.Counter.y,Coordinates.Counter.z,AmountOfCrystalsToPay)
  2740. break
  2741. end
  2742. end
  2743. if Payment_Given_Check.Crystal == 1 then
  2744. Payment_Given_Check.Crystal_Amount = Payment_Given_Check.Crystal_Amount - 100
  2745. break
  2746. end
  2747. end
  2748. else
  2749. Payment_Give_Signal = false
  2750. Payment_Given_Check.Platinum = 0
  2751. Payment_Given_Check.Crystal = 0
  2752. Payment_Given_Check.Crystal_Amount = 0
  2753. if SkipRollingProcess then
  2754. SkipRollingProcess = false
  2755. ResetValues()
  2756. end
  2757. ProcessDebugMessage('Casino Debugger', 'The script finished processing effects')
  2758. end
  2759. end
  2760. end
  2761. Mod:Delay(WorkloadExecutionInterval()*400)
  2762. end)
  2763.  
  2764. Module('UseResultItemSystem', function(Mod)
  2765. if Casino_Loaded then
  2766. if Processing_Data then
  2767. if Play_Instrument_Signal ~= 0 then
  2768. if Play_Instrument_Signal == 1 then
  2769. Losing_Item_Check = 0
  2770. if Winning_Item == 'none' then
  2771. Winning_Item_Check = 1
  2772. else
  2773. if not Payment_Give_Signal then
  2774. if Winning_Item_Check == 0 then
  2775. if Count_Extended(Containers.Depot, {Winning_Item_ID}) > 0 then
  2776. for useItem = Containers.Depot:ItemCount()-1,0,-1 do
  2777. if Containers.Depot:GetItemData(useItem).id == Winning_Item_ID then
  2778. Winning_Item_Check = Containers.Depot:UseItem(useItem)
  2779. break
  2780. end
  2781. end
  2782. else
  2783. Winning_Item_Check = 1
  2784. end
  2785. end
  2786. end
  2787. end
  2788. elseif Play_Instrument_Signal == -1 then
  2789. Winning_Item_Check = 0
  2790. if Losing_Item == 'none' then
  2791. Losing_Item_Check = 1
  2792. else
  2793. if Losing_Item_Check == 0 then
  2794. if Count_Extended(Containers.Depot, {Losing_Item_ID}) > 0 then
  2795. for useItem = Containers.Depot:ItemCount()-1,0,-1 do
  2796. if Containers.Depot:GetItemData(useItem).id == Losing_Item_ID then
  2797. Losing_Item_Check = Containers.Depot:UseItem(useItem)
  2798. break
  2799. end
  2800. end
  2801. else
  2802. Losing_Item_Check = 1
  2803. end
  2804. end
  2805. end
  2806. end
  2807. else
  2808. Winning_Item_Check = 0
  2809. Losing_Item_Check = 0
  2810. end
  2811. if (Winning_Item_Check == 1 or Losing_Item_Check == 1) then
  2812. if Losing_Item_Check == 1 then
  2813. ResetValues()
  2814. elseif Winning_Item_Check == 1 then
  2815. if Payment_Given_Check.Platinum_Amount == 0 and Payment_Given_Check.Crystal_Amount == 0 and not Payment_Give_Signal then
  2816. ResetValues()
  2817. end
  2818. end
  2819. ProcessDebugMessage('Casino Debugger', 'Use Item signal acknowledged | '..((Play_Instrument_Signal == 1) and Item.GetName(Winning_Item_ID) or Item.GetName(Losing_Item_ID)))
  2820. end
  2821. end
  2822. end
  2823. Mod:Delay(WorkloadExecutionInterval()*200)
  2824. end)
  2825.  
  2826. Module('ProcessRollSystem', function(Mod)
  2827. if Casino_Loaded then
  2828. if Pay_Cash_Signal ~= 0 then
  2829. data = Pay_Cash_Signal
  2830. Pay_Cash_Signal = 0
  2831. if Blackjack and Blackjack_In_Progress then
  2832. ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Blackjack | Player rolls sum: '..Blackjack_Player_Count..' | Dealer rolls sum: '..Blackjack_Dealer_Count)
  2833. elseif Sum_Of_Numbers and Sum_Of_Numbers_In_Progress then
  2834. ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Sum of numbers | Sum: '..Sum_Of_Numbers_Sum)
  2835. elseif Sequence and Sequence_In_Progress then
  2836. ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Sequence | Values: '..Sequence_Count)
  2837. elseif Beat_That and Beat_That_In_Progress then
  2838. ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Beat that | Sum: '..Beat_That_Sum)
  2839. elseif Highest_Lowest and Highest_Lowest_In_Progress then
  2840. ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | Highest/Lowest | First sum: '..Highest_Lowest_First_Sum..' | Second sum: '..Highest_Lowest_Second_Sum)
  2841. else
  2842. ProcessDebugMessage('Casino Debugger', 'Process Roll signal acknowledged | You rolled a '..data)
  2843. end
  2844. if Player_Option then
  2845. local PayCash = false
  2846. local Payout_Percent = 0
  2847. local Message = nil
  2848. local jackpot = 0
  2849. local crystal_coins = 0
  2850. local platinum_coins = 0
  2851. if (table.contains({'blackjack'}, Player_Option) and Blackjack) then
  2852. if (Blackjack_Player_Count > 21 and Blackjack_Dealer_Count > 21) then
  2853. 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)
  2854. PayCash = true
  2855. elseif (Blackjack_Player_Count <= 21 and Blackjack_Dealer_Count > 21) then
  2856. Message = Blackjack_Busted_Dealer_Messages[math.random(1, #Blackjack_Busted_Dealer_Messages)]:gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
  2857. PayCash = true
  2858. elseif(Blackjack_Player_Count > 21 and Blackjack_Dealer_Count <= 21) then
  2859. Message = Blackjack_Busted_Player_Messages[math.random(1, #Blackjack_Busted_Player_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[roll]', data)
  2860. PayCash = false
  2861. elseif Blackjack_Player_Count > Blackjack_Dealer_Count then
  2862. Message = Blackjack_Win_Messages[math.random(1, #Blackjack_Win_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
  2863. PayCash = true
  2864. elseif Blackjack_Player_Count < Blackjack_Dealer_Count then
  2865. Message = Blackjack_Lose_Messages[math.random(1, #Blackjack_Lose_Messages)]:gsub('%[playercount%]', Blackjack_Player_Count):gsub('%[dealercount%]', Blackjack_Dealer_Count):gsub('%[roll]', data)
  2866. PayCash = false
  2867. elseif Blackjack_Player_Count == Blackjack_Dealer_Count then
  2868. Message = Blackjack_Even_Result_Messages[math.random(1, #Blackjack_Even_Result_Messages)]:gsub('%[tiecount%]', Blackjack_Player_Count):gsub('%[roll]', data)
  2869. PayCash = true
  2870. end
  2871. Payout_Percent = Blackjack_Payout
  2872. elseif (table.contains({'sum'}, Player_Option) and Sum_Of_Numbers) then
  2873. if (Sum_Of_Numbers_Sum == Game_Types.Sum.Choice) then
  2874. PayCash = true
  2875. Message = Sum_Win_Messages[math.random(1, #Sum_Win_Messages)]:gsub('%[sum%]', Sum_Of_Numbers_Sum):gsub('%[roll]', data)
  2876. else
  2877. Message = Sum_Lose_Messages[math.random(1, #Sum_Lose_Messages)]:gsub('%[sum%]', Sum_Of_Numbers_Sum):gsub('%[roll]', data)
  2878. end
  2879. Payout_Percent = (Sum_Of_Numbers_Payout / (Sum_Of_Numbers_Maximum_Rolls * 6)) * Game_Types.Sum.Choice
  2880. elseif (table.contains({'beat that'}, Player_Option) and Beat_That) then
  2881. if (Beat_That_Sum == Game_Types.BeatThat.Choice) then
  2882. PayCash = true
  2883. end
  2884. Payout_Percent = Beat_That_Payout
  2885. elseif (table.contains({'sequence'}, Player_Option) and Sequence) then
  2886. if (table.contains({123,234,345,456,654,543,432,321}, Sequence_Count)) then
  2887. PayCash = true
  2888. Message = Sequence_Win_Messages[math.random(1, #Sequence_Win_Messages)]:gsub('%[sequence%]', Sequence_Count):gsub('%[roll]', data)
  2889. else
  2890. Message = Sequence_Lose_Messages[math.random(1, #Sequence_Lose_Messages)]:gsub('%[sequence%]', Sequence_Count):gsub('%[roll]', data)
  2891. end
  2892. Payout_Percent = Sequence_Payout
  2893. elseif (table.contains({'highest', 'lowest'}, Player_Option) and Highest_Lowest) then
  2894. if Highest_Lowest_First_Sum == Highest_Lowest_Second_Sum then
  2895. Message = Highest_Lowest_Even_Result_Messages[math.random(1, #Highest_Lowest_Even_Result_Messages)]:gsub('%[tiecount%]', Highest_Lowest_First_Sum):gsub('%[roll]', data)
  2896. PayCash = true
  2897. else
  2898. if table.contains({'highest'}, Player_Option) then
  2899. if Highest_Lowest_First_Sum > Highest_Lowest_Second_Sum then
  2900. PayCash = true
  2901. 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)
  2902. else
  2903. 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)
  2904. end
  2905. elseif table.contains({'lowest'}, Player_Option) then
  2906. if Highest_Lowest_First_Sum < Highest_Lowest_Second_Sum then
  2907. PayCash = true
  2908. 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)
  2909. else
  2910. 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)
  2911. end
  2912. end
  2913. end
  2914. Payout_Percent = Highest_Lowest_Payout
  2915. 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
  2916. local FirstDigit, SecondDigit = Player_Option:match('(%d)(%d)')
  2917. FirstDigit = FirstDigit + 0
  2918. SecondDigit = SecondDigit + 0
  2919. if FirstDigit == data or SecondDigit == data then
  2920. PayCash = true
  2921. end
  2922. Payout_Percent = Pair_Of_Numbers_Payout
  2923. elseif (table.contains({'l','low','123','h','high','456'}, Player_Option) and High_Low) then
  2924. if (table.contains({'l','low','123'}, Player_Option)) then
  2925. if (data >= 1 and data <= 3) then
  2926. PayCash = true
  2927. end
  2928. elseif (table.contains({'h','high','456'}, Player_Option)) then
  2929. if (data >= 4 and data <= 6) then
  2930. PayCash = true
  2931. end
  2932. end
  2933. Payout_Percent = High_Low_Payout
  2934. elseif (table.contains({'odd','135','even','246'}, Player_Option) and Odd_Even) then
  2935. if (table.contains({'odd','135'}, Player_Option)) then
  2936. if (data == 1 or data == 3 or data == 5) then
  2937. PayCash = true
  2938. end
  2939. elseif (table.contains({'even','246'}, Player_Option)) then
  2940. if (data == 2 or data == 4 or data == 6) then
  2941. PayCash = true
  2942. end
  2943. end
  2944. Payout_Percent = Odd_Even_Payout
  2945. elseif (table.contains({'first','12','second','middle','34','third','56','last'}, Player_Option) and First_Second_Last) then
  2946. if (table.contains({'first','12'}, Player_Option)) then
  2947. if (data == 1 or data == 2) then
  2948. PayCash = true
  2949. end
  2950. elseif (table.contains({'second','34','middle'}, Player_Option)) then
  2951. if (data == 3 or data == 4) then
  2952. PayCash = true
  2953. end
  2954. elseif (table.contains({'last','56','third'}, Player_Option)) then
  2955. if (data == 5 or data == 6) then
  2956. PayCash = true
  2957. end
  2958. end
  2959. Payout_Percent = First_Second_Last_Payout
  2960. elseif (table.contains({'1','2','3','4','5','6'}, Player_Option) and Single_Numbers) then
  2961. if (Player_Option == '1') then
  2962. if (data == 1) then
  2963. PayCash = true
  2964. end
  2965. elseif (Player_Option == '2') then
  2966. if (data == 2) then
  2967. PayCash = true
  2968. end
  2969. elseif (Player_Option == '3') then
  2970. if (data == 3) then
  2971. PayCash = true
  2972. end
  2973. elseif (Player_Option == '4') then
  2974. if (data == 4) then
  2975. PayCash = true
  2976. end
  2977. elseif (Player_Option == '5') then
  2978. if (data == 5) then
  2979. PayCash = true
  2980. end
  2981. elseif (Player_Option == '6') then
  2982. if (data == 6) then
  2983. PayCash = true
  2984. end
  2985. end
  2986. Payout_Percent = Single_Numbers_Payout
  2987. end
  2988. if PayCash then
  2989. if Blackjack and Blackjack_In_Progress then
  2990. if (Blackjack_Player_Count > 21 and Blackjack_Dealer_Count > 21) then
  2991. jackpot = Player_Balance
  2992. elseif (Blackjack_Player_Count <= 21 and Blackjack_Dealer_Count > 21) then
  2993. jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
  2994. elseif(Blackjack_Player_Count == Blackjack_Dealer_Count) then
  2995. jackpot = Player_Balance
  2996. elseif (Blackjack_Player_Count > Blackjack_Dealer_Count) then
  2997. jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
  2998. end
  2999. elseif Highest_Lowest and Highest_Lowest_In_Progress then
  3000. if Highest_Lowest_First_Sum == Highest_Lowest_Second_Sum then
  3001. jackpot = Player_Balance
  3002. else
  3003. jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
  3004. end
  3005. else
  3006. jackpot = Player_Balance + (Payout_Percent * Player_Balance / 100)
  3007. end
  3008. while jackpot >= 10000 do
  3009. crystal_coins = crystal_coins + 1
  3010. jackpot = jackpot - 10000
  3011. end
  3012. while jackpot >= 100 do
  3013. platinum_coins = platinum_coins + 1
  3014. jackpot = jackpot - 100
  3015. end
  3016. Play_Instrument_Signal = 1
  3017. Payment_Given_Check.Crystal_Amount = crystal_coins
  3018. Payment_Given_Check.Platinum_Amount = platinum_coins
  3019. Payment_Give_Signal = true
  3020. Bets.Lost.Raw = Bets.Lost.Raw + 1
  3021. Bets.Lost.Cash = Bets.Lost.Cash + (crystal_coins * 10000) + (platinum_coins * 100) - Player_Balance
  3022. HEADS_UP_DISPLAY.BETS.LOST.AMOUNT:SetText(tostring(Bets.Lost.Raw)..' ('..tostring(Bets.Lost.Cash/1000)..'k)')
  3023. Bets.Outcome.Raw = Bets.Outcome.Raw + 1
  3024. Bets.Outcome.Cash = Bets.Won.Cash - Bets.Lost.Cash
  3025. if (Bets.Outcome.Cash > 0) then
  3026. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(107, 142, 35)
  3027. elseif (Bets.Outcome.Cash == 0) then
  3028. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(255, 255, 255)
  3029. else
  3030. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(178, 34, 34)
  3031. end
  3032. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetText(tostring(Bets.Outcome.Raw)..' ('..tostring((Bets.Outcome.Cash/1000))..'k)')
  3033. if _Statistics_UseLog and Casino_StatisticsFile then
  3034. 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')
  3035. Casino_StatisticsFile:flush()
  3036. end
  3037. if not Message then
  3038. Message = Win_Messages[math.random(1, #Win_Messages)]
  3039. end
  3040. else
  3041. if (Losing_Item_ID ~= 0) then
  3042. Play_Instrument_Signal = -1
  3043. end
  3044. Bets.Won.Raw = Bets.Won.Raw + 1
  3045. Bets.Won.Cash = Bets.Won.Cash + Player_Balance
  3046. HEADS_UP_DISPLAY.BETS.WON.AMOUNT:SetText(tostring(Bets.Won.Raw)..' ('..tostring(Bets.Won.Cash/1000)..'k)')
  3047. Bets.Outcome.Raw = Bets.Outcome.Raw + 1
  3048. Bets.Outcome.Cash = Bets.Won.Cash - Bets.Lost.Cash
  3049. if (Bets.Outcome.Cash > 0) then
  3050. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(107, 142, 35)
  3051. elseif (Bets.Outcome.Cash == 0) then
  3052. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(255, 255, 255)
  3053. else
  3054. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetTextColor(178, 34, 34)
  3055. end
  3056. HEADS_UP_DISPLAY.BETS.OUTCOME.AMOUNT:SetText(tostring(Bets.Outcome.Raw)..' ('..tostring((Bets.Outcome.Cash/1000))..'k)')
  3057. if _Statistics_UseLog and Casino_StatisticsFile then
  3058. 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')
  3059. Casino_StatisticsFile:flush()
  3060. end
  3061. if not Message then
  3062. Message = Lose_Messages[math.random(1, #Lose_Messages)]
  3063. end
  3064. end
  3065. if PayCash then
  3066. Message = Message:gsub('%[amount%]', (crystal_coins*10+platinum_coins*0.1)..'k'):gsub('%[roll]', data)
  3067. else
  3068. Message = Message:gsub('%[amount%]', (Player_Balance/1000)..'k'):gsub('%[roll]', data)
  3069. end
  3070. SendMessage(Last_Player, Message, false)
  3071. end
  3072. end
  3073. end
  3074. Mod:Delay(WorkloadExecutionInterval()*200)
  3075. end)
  3076.  
  3077. Module('RollSystem', function(Mod)
  3078. if Casino_Loaded then
  3079. if Processing_Data then
  3080. if Pay_Cash_Signal ~= 0 then
  3081. if Dice_Rolled_Check == 1 then
  3082. if not (Blackjack and Blackjack_In_Progress) and
  3083. not (Sum_Of_Numbers and Sum_Of_Numbers_In_Progress) and
  3084. not (Beat_That and Beat_That_In_Progress) and
  3085. not (Highest_Lowest and Highest_Lowest_In_Progress) and
  3086. not (Sequence and Sequence_In_Progress) then
  3087. Roll_Dice_Signal = false
  3088. Dice_Rolled_Check = 0
  3089. end
  3090. end
  3091. else
  3092. if Roll_Dice_Signal then
  3093. ProcessDebugMessage('Casino Debugger', 'Roll System signal acknowledged | Balance is '..Player_Balance..' ('..(Player_Balance/1000)..'k)')
  3094. if (_VirtualMode_) then
  3095. Dice_Rolled_Check = 1
  3096. EffectProxyMessage = Self.Name()..' rolled a '..math.random(1, 6)..'.'
  3097. else
  3098. for diceInLocker = 0, Containers.Locker:ItemCount()-1 do
  3099. if diceInLocker > 28 then
  3100. diceInLocker = 28
  3101. end
  3102. local tempDice = Containers.Locker:GetItemData(diceInLocker)
  3103. if table.contains(Dice_IDs, tempDice.id) then
  3104. Dice_Rolled_Check = Containers.Locker:UseItem(diceInLocker, true)
  3105. break
  3106. end
  3107. end
  3108. end
  3109. end
  3110. end
  3111. end
  3112. end
  3113. Mod:Delay(WorkloadExecutionInterval()*800)
  3114. end)
  3115. Module('CountCash', function(Mod)
  3116. if Casino_Loaded then
  3117. if Processing_Data then
  3118. if Count_Cash_Signal then
  3119. ProcessDebugMessage('Casino Debugger', 'Signal to organize cash acknowledged')
  3120. local prevAmount = Last_Amount.Crystal + Last_Amount.Platinum + Last_Amount.Items
  3121. Last_Amount.Crystal = Count_Crystal_Extended() * 10000
  3122. Last_Amount.Platinum = Count_Platinum_Extended() * 100
  3123. Last_Amount.Items = 0
  3124. if Accept_Items then
  3125. for indexItem=0, Containers.Items:ItemCount()-1 do
  3126. local tempItem = Containers.Items:GetItemData(indexItem)
  3127. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  3128. if Accepted_Item.ID == tempItem.id then
  3129. Last_Amount.Items = Last_Amount.Items + (Accepted_Item.Value * tempItem.count)
  3130. end
  3131. end
  3132. end
  3133. end
  3134. local newAmount = Last_Amount.Crystal + Last_Amount.Platinum + Last_Amount.Items
  3135. if (Authenticate_Cash_Check == math.abs(newAmount - prevAmount)) then
  3136. Player_Balance = Authenticate_Cash_Check
  3137. Roll_Dice_Signal = true
  3138. else
  3139. Player_Balance = 0
  3140. ProcessDebugMessage('Casino Debugger', 'Found inconsistent amounts ['..Authenticate_Cash_Check..']['..math.abs(newAmount-prevAmount)..']. Giving cash back')
  3141. local cashBack = math.abs(newAmount-prevAmount)
  3142. local crystal_coins = 0
  3143. local platinum_coins = 0
  3144. while cashBack >= 10000 do
  3145. crystal_coins = crystal_coins + 1
  3146. cashBack = cashBack - 10000
  3147. end
  3148. while cashBack >= 100 do
  3149. platinum_coins = platinum_coins + 1
  3150. cashBack = cashBack - 100
  3151. end
  3152. SkipRollingProcess = true
  3153. Payment_Given_Check.Crystal_Amount = crystal_coins
  3154. Payment_Given_Check.Platinum_Amount = platinum_coins
  3155. Payment_Give_Signal = true
  3156. end
  3157. Count_Cash_Signal = false
  3158. end
  3159. end
  3160. end
  3161. Mod:Delay(WorkloadExecutionInterval()*200)
  3162. end)
  3163.  
  3164. Module('TakeFromCounter', function(Mod)
  3165. if Casino_Loaded then
  3166. if Processing_Data then
  3167. if Take_Cash_Signal then
  3168. local acceptedItemsOnCounter = false
  3169. if Accept_Items then
  3170. for itemOnCounter = Containers.Counter:ItemCount()-1,0,-1 do
  3171. if itemOnCounter > 28 then
  3172. itemOnCounter = 28
  3173. end
  3174. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  3175. if Accepted_Item.ID == Containers.Counter:GetItemData(itemOnCounter).id then
  3176. acceptedItemsOnCounter = true
  3177. break
  3178. end
  3179. end
  3180. end
  3181. end
  3182. if Count_Extended(Containers.Counter, Money_IDs) > 0 or acceptedItemsOnCounter then
  3183. ProcessDebugMessage('Casino Debugger', 'Signal to take cash from counter acknowledged')
  3184. for itemOnCounter = Containers.Counter:ItemCount()-1,0,-1 do
  3185. if itemOnCounter > 28 then
  3186. itemOnCounter = 28
  3187. end
  3188. local tempItem = Containers.Counter:GetItemData(itemOnCounter)
  3189. if (tempItem.id == 3035) then
  3190. for _, container_Platinum in ipairs(Containers.Platinum) do
  3191. if container_Platinum:EmptySlots() > 2 then
  3192. Containers.Counter:MoveItemToContainer(itemOnCounter,container_Platinum:Index(),0,tempItem.count)
  3193. break
  3194. end
  3195. end
  3196. elseif (tempItem.id == 3043) then
  3197. for _, container_Crystal in ipairs(Containers.Crystal) do
  3198. if container_Crystal:EmptySlots() > 2 then
  3199. Containers.Counter:MoveItemToContainer(itemOnCounter,container_Crystal:Index(),0,tempItem.count)
  3200. break
  3201. end
  3202. end
  3203. else
  3204. if Accept_Items then
  3205. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  3206. if Accepted_Item.ID == tempItem.id then
  3207. Containers.Counter:MoveItemToContainer(itemOnCounter,Containers.Items:Index(),Containers.Items:ItemCapacity()-1,tempItem.count)
  3208. end
  3209. end
  3210. end
  3211. end
  3212. end
  3213. else
  3214. Take_Cash_Signal = false
  3215. Count_Cash_Signal = true
  3216. end
  3217. end
  3218. end
  3219. end
  3220. Mod:Delay(WorkloadExecutionInterval()*200)
  3221. end)
  3222. Signal.OnReceive('LocalProxySignal', function(signal, data)
  3223. LocalProxyMessage = data
  3224. end)
  3225. Module('LocalProxySystem', function(Mod)
  3226. if LocalProxyMessage then
  3227. local mtype = LocalProxyMessage["MessageType"]
  3228. local speaker = LocalProxyMessage["Speaker"]
  3229. local level = LocalProxyMessage["Level"]
  3230. local text = LocalProxyMessage["Text"]:lower():trim()
  3231. if _Remote_Status then
  3232. if (table.contains(_Remote_AdminName, speaker:lower())) then
  3233. if text == _Remote_OutcomeCommand:lower() then
  3234. local OutcomeMessage = 'The outcome of the script is '..(Bets.Outcome.Cash/1000)..'k'
  3235. SendPrivateMessage(OutcomeMessage, speaker, true)
  3236. elseif text == _Remote_DiceAndDecoCommand:lower() then
  3237. local DecoAmount = Self.ItemCount(_Decoration_Item_ID)
  3238. local DiceAmount = 0
  3239. for _, id in ipairs(Dice_IDs) do
  3240. DiceAmount = DiceAmount + Self.ItemCount(id)
  3241. end
  3242. local DiceAndDecoMessage = string.format('I have %s dice and %s items for decoration', DiceAmount, DecoAmount)
  3243. SendPrivateMessage(DiceAndDecoMessage, speaker, true)
  3244. elseif text == _Remote_EmptyContainersCommand:lower() then
  3245. local FullAmount = 0
  3246. for _, container_Platinum in ipairs(Containers.Platinum) do
  3247. for itemPlatinumCoin = container_Platinum:ItemCount() - 1, 0, -1 do
  3248. if container_Platinum:EmptySlots() <= 2 then
  3249. FullAmount = FullAmount + 1
  3250. end
  3251. end
  3252. end
  3253. local EmptyContainers = string.format('I have %s empty containers for platinum coins', #Containers.Platinum - FullAmount)
  3254. SendPrivateMessage(EmptyContainers, speaker, true)
  3255. elseif text == _Remote_CashCommand:lower() then
  3256. 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'
  3257. SendPrivateMessage(AvailableCash, speaker, true)
  3258. elseif text == _Remote_ItemsCommand:lower() then
  3259. local ItemsValue = 'There are '..Total.Items.Amount..' items and they are worth '..(Total.Items.Value/1000)..'k'
  3260. SendPrivateMessage(ItemsValue, speaker, true)
  3261. elseif text == _Remote_StartCommand:lower() then
  3262. Casino_Loaded = false
  3263. PickUpDiceAndDecoration()
  3264. if not Blackjack and
  3265. not High_Low and
  3266. not Odd_Even and
  3267. not First_Second_Last and
  3268. not Single_Numbers and
  3269. not Highest_Lowest and
  3270. not Sequence and
  3271. not Pair_Of_Numbers and
  3272. not Sum_Of_Numbers and
  3273. not Beat_That then
  3274. SendPrivateMessage('You don\'t accept any game type. Please, check your settings and reload the script', speaker, true)
  3275. else
  3276. if UpdateCoordinates() then
  3277. if Open_Containers() then
  3278. CheckDiceAndDecoration()
  3279. Last_Activity = os.time()
  3280. Total.Items.LastAmountSeen = 0
  3281. Total.Items.Amount = 0
  3282. Total.Items.Value = 0
  3283. Casino_Loaded = true
  3284. ManualStop = false
  3285. SendPrivateMessage('The script has been started upon request', speaker, true)
  3286. end
  3287. else
  3288. SendPrivateMessage('The script failed to find location', speaker, true)
  3289. end
  3290. end
  3291. elseif text == _Remote_StopCommand:lower() then
  3292. Casino_Loaded = false
  3293. ManualStop = true
  3294. PickUpDiceAndDecoration()
  3295. while #Container.GetAll() > 0 do
  3296. for i = 0, 15 do
  3297. closeContainer(i)
  3298. end
  3299. end
  3300. SendPrivateMessage('The script has been stopped upon request', speaker, true)
  3301. elseif text == _Remote_NewDepotCommand:lower() then
  3302. SendPrivateMessage('Processing your request to find a new depot', speaker, true)
  3303. Casino_Loaded = false
  3304. PickUpDiceAndDecoration()
  3305. if Self.Position().z == 7 then
  3306. gotoLabel('GroundFloor')
  3307. elseif Self.Position().z == 6 then
  3308. GoCheckDown = true
  3309. gotoLabel('FirstFloor')
  3310. end
  3311. setWalkerEnabled(true)
  3312. elseif text == _Remote_BackupProfitCommand:lower() then
  3313. local pos = Self.Position()
  3314. local DepotFound = false
  3315. local Locker = nil
  3316. local Depot = nil
  3317. local Parcel = nil
  3318. local Tracker = 0
  3319. local ParcelTracker = false
  3320. local PlatinumTracker = -1
  3321.  
  3322. local function DistanceFromCoordinates(first, second)
  3323. return math.max(math.max(math.abs(first.x - second.x), math.abs(first.y - second.y)), math.abs(first.z - second.z))
  3324. end
  3325.  
  3326. local function OpenNextContainer()
  3327. while (Parcel:isFull()) do
  3328. for spotparcel = Parcel:ItemCount() - 1, 0, -1 do
  3329. local itemparcel = Parcel:GetItemData(spotparcel)
  3330. if (Item.isContainer(itemparcel.id)) then
  3331. Parcel:UseItem(spotparcel, true)
  3332. wait(500)
  3333. break
  3334. end
  3335. end
  3336. end
  3337. end
  3338.  
  3339. local function MoveItems(backwards)
  3340. local Target_Container = Container(Tracker + 1)
  3341. if (backwards) then
  3342. for spotarget = Target_Container:ItemCount()-1, 0, -1 do
  3343. local itemtarget = Target_Container:GetItemData(spotarget)
  3344. if (not table.contains(Dice_IDs, itemtarget.id)) then
  3345. if (not Item.isContainer(itemtarget.id)) then
  3346. Target_Container:MoveItemToContainer(spotarget, Parcel:Index(), Parcel:ItemCapacity() -1)
  3347. wait(1000)
  3348. OpenNextContainer()
  3349. end
  3350. end
  3351. end
  3352. else
  3353. for spotarget = 0, Target_Container:ItemCount()-1 do
  3354. local itemtarget = Target_Container:GetItemData(spotarget)
  3355. if (not table.contains(Dice_IDs, itemtarget.id)) then
  3356. if (not Item.isContainer(itemtarget.id)) then
  3357. Target_Container:MoveItemToContainer(spotarget, Parcel:Index(), Parcel:ItemCapacity() -1)
  3358. wait(1000)
  3359. OpenNextContainer()
  3360. break
  3361. end
  3362. end
  3363. end
  3364. end
  3365. end
  3366.  
  3367. for _, location in ipairs(Gambling_Depots.Yalahar) do
  3368. if (pos.x == location['HouseSwitch'][1] and pos.y == location['HouseSwitch'][2] and pos.z == location['HouseSwitch'][3]) then
  3369. for i = 0, 15 do
  3370. closeContainer(i)
  3371. end
  3372. if (Self.BrowseField(location['HouseDepot'][1],location['HouseDepot'][2],location['HouseDepot'][3]) == 1) then
  3373. wait(1000)
  3374. Locker = Container(Tracker)
  3375. Tracker = Tracker + 1
  3376. Locker:OpenChildren({Locker:GetItemData(0).id, false})
  3377. wait(1000)
  3378. if (Container(Tracker):UseItem(0, true) == 1) then
  3379. wait(1000)
  3380. Depot = Container(Tracker)
  3381. wait(1000)
  3382. local bponcounter = Map.GetTopMoveItem(location['Counter'][1], location['Counter'][2], location['Counter'][3])
  3383. if (Item.GetName(bponcounter.id):lower() == _Remote_BackupContainer:lower()) then
  3384. Map.PickupItem(location['Counter'][1], location['Counter'][2], location['Counter'][3], Depot:Index(), Depot:ItemCapacity()-1)
  3385. wait(1000)
  3386. end
  3387. for spot, item in Depot:iItems() do
  3388. if (Item.isContainer(item.id)) then
  3389. if (Item.GetName(item.id):lower() == _Remote_BackupContainer:lower() and not ParcelTracker) then
  3390. Depot:OpenChildren({Depot:GetItemData(spot).id, false})
  3391. wait(1000)
  3392. Tracker = Tracker + 1
  3393. Parcel = Container(Tracker)
  3394. ParcelTracker = true
  3395. for s = Parcel:ItemCount() - 1, 0, -1 do
  3396. local ditem = Parcel:GetItemData(s)
  3397. if Item.isContainer(ditem.id) then
  3398. Parcel:UseItem(s, true)
  3399. wait(1000)
  3400. break
  3401. end
  3402. end
  3403. elseif (PlatinumTracker == -1 and (Item.GetName(item.id):lower() == _Containers_PlatinumCoins:lower())) then
  3404. PlatinumTracker = spot
  3405. elseif (ParcelTracker) then
  3406. if (PlatinumTracker == -1 or (PlatinumTracker ~= -1 and PlatinumTracker ~= spot)) then
  3407. Depot:UseItem(spot, false)
  3408. wait(1000)
  3409. local Target_Container = Container(Tracker + 1)
  3410. local Crystal_Count = Target_Container:CountItemsOfID(3043)
  3411. while (Crystal_Count > _Remote_BackupCrystalCoins) do
  3412. MoveItems(false)
  3413. Crystal_Count = Target_Container:CountItemsOfID(3043)
  3414. end
  3415. if (Target_Container:CountItemsOfID(3043) == 0) then
  3416. while (Target_Container:ItemCount() > 0) do
  3417. MoveItems(true)
  3418. local die_count = 0
  3419. for _, die in ipairs(Dice_IDs) do
  3420. die_count = die_count + Target_Container:CountItemsOfID(die)
  3421. end
  3422. if (Target_Container:Name():lower() == _Containers_Items:lower()) then
  3423. if ((Target_Container:ItemCount() == 1) or (Target_Container:ItemCount() == die_count + 1)) then
  3424. for s = Target_Container:ItemCount() - 1, 0, -1 do
  3425. local ditem = Target_Container:GetItemData(s)
  3426. if Item.isContainer(ditem.id) then
  3427. Target_Container:UseItem(s, true)
  3428. wait(1000)
  3429. break
  3430. end
  3431. end
  3432. end
  3433. else
  3434. break
  3435. end
  3436. end
  3437. end
  3438. Target_Container:Close()
  3439. wait(1000)
  3440. end
  3441. end
  3442. end
  3443. end
  3444. Self.DropItems(location['Counter'][1], location['Counter'][2], location['Counter'][3], Item.GetID(_Remote_BackupContainer))
  3445. end
  3446. DepotFound = true
  3447. end
  3448. break
  3449. end
  3450. end
  3451. end
  3452. end
  3453. end
  3454. if Casino_Loaded then
  3455. if not Processing_Data and not OpeningNestedContainers then
  3456. local player = Creature(speaker)
  3457. if (player:Position().x == Coordinates.Player.x and player:Position().y == Coordinates.Player.y and player:Position().z == Coordinates.Player.z) then
  3458. local sudocmd = nil
  3459. local Minimum_Cash = 0
  3460. local Maximum_Cash = 0
  3461. Player_Option = nil
  3462. if (table.contains({'l','low','123','h','high','456'}, text) and High_Low) then
  3463. Player_Option = text
  3464. Minimum_Cash = High_Low_Minimum
  3465. Maximum_Cash = High_Low_Maximum
  3466. elseif (table.contains({'odd','135','even','246'}, text) and Odd_Even) then
  3467. Player_Option = text
  3468. Minimum_Cash = Odd_Even_Minimum
  3469. Maximum_Cash = Odd_Even_Maximum
  3470. elseif (table.contains({'first','12','second','middle','34','last','56','third'}, text) and First_Second_Last) then
  3471. Player_Option = text
  3472. Minimum_Cash = First_Second_Last_Minimum
  3473. Maximum_Cash = First_Second_Last_Maximum
  3474. elseif (table.contains({'highest','lowest'}, text) and Highest_Lowest) then
  3475. Player_Option = text
  3476. Minimum_Cash = Highest_Lowest_Minimum
  3477. Maximum_Cash = Highest_Lowest_Maximum
  3478. elseif (table.contains({'sequence','seq','succession','series'}, text) and Sequence) then
  3479. Player_Option = 'sequence'
  3480. Minimum_Cash = Sequence_Minimum
  3481. Maximum_Cash = Sequence_Maximum
  3482. 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
  3483. Player_Option = text
  3484. Minimum_Cash = Pair_Of_Numbers_Minimum
  3485. Maximum_Cash = Pair_Of_Numbers_Maximum
  3486. elseif (table.contains({'1','2','3','4','5','6'},text) and Single_Numbers) then
  3487. Player_Option = text
  3488. Minimum_Cash = Single_Numbers_Minimum
  3489. Maximum_Cash = Single_Numbers_Maximum
  3490. elseif (table.contains({'blackjack'}, text) and Blackjack) then
  3491. Player_Option = text
  3492. Minimum_Cash = Blackjack_Minimum
  3493. Maximum_Cash = Blackjack_Maximum
  3494. elseif (table.contains({'min', 'max', 'minimum', 'maximum'}, text)) then
  3495. Player_Option = 'limits'
  3496. elseif table.contains({'rate', 'rates', 'payout', 'payouts'}, text) then
  3497. Player_Option = 'payout'
  3498. elseif (table.contains({'games'}, text)) then
  3499. Player_Option = text
  3500. 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
  3501. Player_Option = text
  3502. else
  3503. local PriceRequest = false
  3504. local SumRequest = false
  3505. local BeatThatRequest = false
  3506. for _, Accepted_Item in ipairs (Accepted_Items_List) do
  3507. local itemName = Item.GetName(Accepted_Item.ID):lower()
  3508. local item = string.match(text, 'price '..itemName)
  3509. if item then
  3510. PriceRequest = true
  3511. SendMessage(speaker, 'I accept a '..itemName..' as bet for '..(Accepted_Item.Value/1000)..'k', false)
  3512.  
  3513. Last_Activity_Player_In_Spot = os.time()
  3514. ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..text..'"')
  3515. Player_Option = nil
  3516. end
  3517. end
  3518. if not PriceRequest then
  3519. local SumKeyword, SumNumber = text:match('^(sum) (%d+)$')
  3520. if SumKeyword and SumNumber then
  3521. SumNumber = SumNumber + 0
  3522. SumRequest = true
  3523. if SumNumber >= 1 and SumNumber <= Sum_Of_Numbers_Maximum_Rolls*6 then
  3524. Game_Types.Sum.Choice = SumNumber
  3525. Player_Option = SumKeyword
  3526. Minimum_Cash = Sum_Of_Numbers_Minimum
  3527. Maximum_Cash = Sum_Of_Numbers_Maximum
  3528. else
  3529. SendMessage(speaker, 'The number for "sum" game must be between 1 and '..(Sum_Of_Numbers_Maximum_Rolls*6), false)
  3530.  
  3531. Last_Activity_Player_In_Spot = os.time()
  3532. ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..text..'"')
  3533. Player_Option = nil
  3534. end
  3535. end
  3536. end
  3537. if not SumRequest then
  3538. local BeatThatKeyword, BeatThatNumber = text:match('^(beat that) (%d+)$')
  3539. if BeatThatKeyword and BeatThatNumber then
  3540. BeatThatNumber = BeatThatNumber + 0
  3541. BeatThatRequest = true
  3542. if BeatThatNumber >= 11 and BeatThatNumber <= 66 then
  3543. Game_Types.BeatThat.Choice = BeatThatNumber
  3544. Player_Option = BeatThatKeyword
  3545. Minimum_Cash = Beat_That_Minimum
  3546. Maximum_Cash = Beat_That_Maximum
  3547. else
  3548. SendMessage(speaker, 'The guessed number for "beat that" game must be between 11 and 66', false)
  3549.  
  3550. Last_Activity_Player_In_Spot = os.time()
  3551. ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..text..'"')
  3552. Player_Option = nil
  3553. end
  3554. end
  3555. end
  3556. end
  3557. if Player_Option then
  3558. Last_Activity_Player_In_Spot = os.time()
  3559. ProcessDebugMessage('Casino Debugger', speaker..' chose option "'..Player_Option..'"')
  3560. if Player_Option == 'limits' then
  3561. local LimitsMessage = 'The limits for each game type are'
  3562. local availableGames = {}
  3563. if Blackjack then
  3564. table.insert(availableGames, {'blackjack', Blackjack_Minimum, Blackjack_Maximum})
  3565. end
  3566. if High_Low then
  3567. table.insert(availableGames, {'high/low', High_Low_Minimum, High_Low_Maximum })
  3568. end
  3569. if Odd_Even then
  3570. table.insert(availableGames, {'odd/even', Odd_Even_Minimum, Odd_Even_Maximum })
  3571. end
  3572. if First_Second_Last then
  3573. table.insert(availableGames, {'first/second/last', First_Second_Last_Minimum, First_Second_Last_Maximum })
  3574. end
  3575. if Single_Numbers then
  3576. table.insert(availableGames, {'single numbers', Single_Numbers_Minimum, Single_Numbers_Maximum })
  3577. end
  3578. if Highest_Lowest then
  3579. table.insert(availableGames, {'highest/lowest', Highest_Lowest_Minimum, Highest_Lowest_Maximum })
  3580. end
  3581. if Sequence then
  3582. table.insert(availableGames, {'sequence', Sequence_Minimum, Sequence_Maximum })
  3583. end
  3584. if Pair_Of_Numbers then
  3585. table.insert(availableGames, {'pair of numbers', Pair_Of_Numbers_Minimum, Pair_Of_Numbers_Maximum })
  3586. end
  3587. if Sum_Of_Numbers then
  3588. table.insert(availableGames, {'sum of numbers', Sum_Of_Numbers_Minimum, Sum_Of_Numbers_Maximum })
  3589. end
  3590. if Beat_That then
  3591. table.insert(availableGames, {'beat that', Beat_That_Minimum, Beat_That_Maximum })
  3592. end
  3593. for iterator, game in ipairs(availableGames) do
  3594. if iterator == #availableGames-1 then
  3595. LimitsMessage = LimitsMessage..' '..(game[2]/1000)..'k - '..(game[3]/1000)..'k '..game[1]..' and'
  3596. elseif iterator == #availableGames then
  3597. LimitsMessage = LimitsMessage..' '..(game[2]/1000)..'k - '..(game[3]/1000)..'k '..game[1]
  3598. else
  3599. LimitsMessage = LimitsMessage..' '..(game[2]/1000)..'k - '..(game[3]/1000)..'k '..game[1]..','
  3600. end
  3601. end
  3602. SendMessage(speaker, LimitsMessage, false)
  3603.  
  3604. Player_Option = nil
  3605. elseif table.contains({'blackjack rules', 'blackjack info', 'blackjack instructions'}, Player_Option) then
  3606. 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)
  3607.  
  3608. Player_Option = nil
  3609. elseif table.contains({'high/low rules', 'high/low info', 'high/low instructions'}, Player_Option) then
  3610. 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)
  3611.  
  3612. Player_Option = nil
  3613. elseif table.contains({'highest/lowest rules', 'highest/lowest info', 'highest/lowest instructions'}, Player_Option) then
  3614. 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)
  3615.  
  3616. Player_Option = nil
  3617. elseif table.contains({'odd/even rules', 'odd/even info', 'odd/even instructions'}, Player_Option) then
  3618. 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)
  3619.  
  3620. Player_Option = nil
  3621. elseif table.contains({'first/second/last rules', 'first/second/last info', 'first/second/last instructions'}, Player_Option) then
  3622. 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)
  3623.  
  3624. Player_Option = nil
  3625. elseif table.contains({'sequence rules', 'sequence info', 'sequence instructions'}, Player_Option) then
  3626. 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)
  3627.  
  3628. Player_Option = nil
  3629. elseif table.contains({'pair of numbers rules', 'pair of numbers info', 'pair of numbers instructions'}, Player_Option) then
  3630. 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)
  3631.  
  3632. Player_Option = nil
  3633. elseif table.contains({'single numbers rules', 'single numbers info', 'single numbers instructions'}, Player_Option) then
  3634. SendMessage(speaker, '"Single Numbers" is a simple game. Say a number between 1 and 6 that you think will result in the roll', false)
  3635.  
  3636. Player_Option = nil
  3637. elseif table.contains({'sum of numbers rules', 'sum of numbers info', 'sum of numbers instructions'}, Player_Option) then
  3638. 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)
  3639.  
  3640. Player_Option = nil
  3641. elseif table.contains({'beat that rules', 'beat that info', 'beat that instructions'}, Player_Option) then
  3642. 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)
  3643.  
  3644. Player_Option = nil
  3645. elseif Player_Option == 'games' then
  3646. local availableGames = {}
  3647. local strAvailableGames = ''
  3648. if Blackjack then
  3649. table.insert(availableGames, 'blackjack')
  3650. end
  3651. if High_Low then
  3652. table.insert(availableGames, 'high/low')
  3653. end
  3654. if Odd_Even then
  3655. table.insert(availableGames, 'odd/even')
  3656. end
  3657. if First_Second_Last then
  3658. table.insert(availableGames, 'first/second/last')
  3659. end
  3660. if Single_Numbers then
  3661. table.insert(availableGames, 'single numbers')
  3662. end
  3663. if Highest_Lowest then
  3664. table.insert(availableGames, 'highest/lowest')
  3665. end
  3666. if Sequence then
  3667. table.insert(availableGames, 'sequence')
  3668. end
  3669. if Pair_Of_Numbers then
  3670. table.insert(availableGames, 'pair of numbers')
  3671. end
  3672. if Sum_Of_Numbers then
  3673. table.insert(availableGames, 'sum of numbers')
  3674. end
  3675. if Beat_That then
  3676. table.insert(availableGames, 'beat that')
  3677. end
  3678. for iterator, game in ipairs(availableGames) do
  3679. if iterator == #availableGames-1 then
  3680. strAvailableGames = strAvailableGames..game..' and '
  3681. elseif iterator == #availableGames then
  3682. strAvailableGames = strAvailableGames..game
  3683. else
  3684. strAvailableGames = strAvailableGames..game..', '
  3685. end
  3686. end
  3687. SendMessage(speaker, 'You can play '..strAvailableGames..' with me', false)
  3688.  
  3689. Player_Option = nil
  3690. elseif Player_Option == 'payout' then
  3691. local PayoutMessage = 'The payout for each game type is'
  3692. local availableGames = {}
  3693. if Blackjack then
  3694. table.insert(availableGames, {'blackjack', Blackjack_Payout})
  3695. end
  3696. if High_Low then
  3697. table.insert(availableGames, {'high/low', High_Low_Payout })
  3698. end
  3699. if Odd_Even then
  3700. table.insert(availableGames, {'odd/even', Odd_Even_Payout})
  3701. end
  3702. if First_Second_Last then
  3703. table.insert(availableGames, {'first/second/last', First_Second_Last_Payout})
  3704. end
  3705. if Single_Numbers then
  3706. table.insert(availableGames, {'single numbers', Single_Numbers_Payout})
  3707. end
  3708. if Highest_Lowest then
  3709. table.insert(availableGames, {'highest/lowest', Highest_Lowest_Payout })
  3710. end
  3711. if Sequence then
  3712. table.insert(availableGames, {'sequence', Sequence_Payout })
  3713. end
  3714. if Pair_Of_Numbers then
  3715. table.insert(availableGames, {'pair of numbers', Pair_Of_Numbers_Payout })
  3716. end
  3717. if Sum_Of_Numbers then
  3718. table.insert(availableGames, {'sum of numbers', Sum_Of_Numbers_Payout })
  3719. end
  3720. if Beat_That then
  3721. table.insert(availableGames, {'beat that', Beat_That_Payout })
  3722. end
  3723. for iterator, game in ipairs(availableGames) do
  3724. if iterator == #availableGames-1 then
  3725. PayoutMessage = PayoutMessage..' '..game[2]..'% '..game[1]..' and'
  3726. elseif iterator == #availableGames then
  3727. PayoutMessage = PayoutMessage..' '..game[2]..'% '..game[1]
  3728. else
  3729. PayoutMessage = PayoutMessage..' '..game[2]..'% '..game[1]..','
  3730. end
  3731. end
  3732. SendMessage(speaker, PayoutMessage, false)
  3733.  
  3734. Player_Option = nil
  3735. else
  3736. local ValueInItems = 0
  3737. if Accept_Items then
  3738. for indexItemCounter=0,Containers.Counter:ItemCount()-1 do
  3739. if indexItemCounter > 28 then
  3740. indexItemCounter = 28
  3741. end
  3742. local tempItemCounter = Containers.Counter:GetItemData(indexItemCounter)
  3743. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  3744. if Accepted_Item.ID == tempItemCounter.id then
  3745. ValueInItems = ValueInItems + (tempItemCounter.count * Accepted_Item.Value)
  3746. break
  3747. end
  3748. end
  3749. end
  3750. end
  3751. local platinumInCounter = Count_Extended(Containers.Counter, {3035})
  3752. local crystalInCounter = Count_Extended(Containers.Counter, {3043})
  3753. local totalCashInCounter = platinumInCounter * 100 + crystalInCounter * 10000 + ValueInItems
  3754. local ItemCount = 0
  3755. if Accept_Items then
  3756. for indexCounter=0,Containers.Counter:ItemCount()-1 do
  3757. local tempItemCounter = Containers.Counter:GetItemData(indexCounter)
  3758. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  3759. if Accepted_Item.ID == tempItemCounter.id then
  3760. ItemCount = ItemCount + 1
  3761. break
  3762. end
  3763. end
  3764. end
  3765. end
  3766. if (totalCashInCounter >= Minimum_Cash and totalCashInCounter <= Maximum_Cash and ((Accept_Items and ItemCount <= 5) or not Accept_Items)) then
  3767. ProcessDebugMessage('Casino Debugger', 'The script started processing data')
  3768. Last_Amount.Crystal = Count_Crystal_Extended() * 10000
  3769. Last_Amount.Platinum = Count_Platinum_Extended() * 100
  3770. Last_Amount.Items = 0
  3771. if Accept_Items then
  3772. for indexItemsContainer=0,Containers.Items:ItemCount()-1 do
  3773. local tempItemsContainer = Containers.Items:GetItemData(indexItemsContainer)
  3774. for _, Accepted_Item in ipairs(Accepted_Items_List) do
  3775. if Accepted_Item.ID == tempItemsContainer.id then
  3776. Last_Amount.Items = Last_Amount.Items + (tempItemsContainer.count * Accepted_Item.Value)
  3777. break
  3778. end
  3779. end
  3780. end
  3781. end
  3782. if table.contains({'blackjack'}, Player_Option) then
  3783. Blackjack_In_Progress = true
  3784. elseif table.contains({'sum'}, Player_Option) then
  3785. Sum_Of_Numbers_In_Progress = true
  3786. elseif table.contains({'beat that'}, Player_Option) then
  3787. Beat_That_In_Progress = true
  3788. elseif table.contains({'highest', 'lowest'}, Player_Option) then
  3789. Highest_Lowest_In_Progress = true
  3790. elseif table.contains({'sequence'}, Player_Option) then
  3791. Sequence_In_Progress = true
  3792. end
  3793. Authenticate_Cash_Check = totalCashInCounter
  3794. Processing_Data = true
  3795. Take_Cash_Signal = true
  3796. else
  3797. if Accept_Items and ItemCount > 5 then
  3798. SendMessage(speaker, "I'm sorry, I only accept 5 items per bet", false)
  3799. else
  3800. local InvalidBidMessage = Invalid_Bid[math.random(1,#Invalid_Bid)]
  3801. local InformInvalidBid = false
  3802. if table.contains({'l','low','123','h','high','456'}, Player_Option) then
  3803. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (High_Low_Minimum/1000)..'k'):gsub('%[max%]', (High_Low_Maximum/1000)..'k')
  3804. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'high/low')
  3805. InformInvalidBid = true
  3806. elseif table.contains({'odd','135','even','246'}, Player_Option) then
  3807. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Odd_Even_Minimum/1000)..'k'):gsub('%[max%]', (Odd_Even_Maximum/1000)..'k')
  3808. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'odd/even')
  3809. InformInvalidBid = true
  3810. elseif table.contains({'first','12','second','middle','34','last','56','third'}, Player_Option) then
  3811. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (First_Second_Last_Minimum/1000)..'k'):gsub('%[max%]', (First_Second_Last_Maximum/1000)..'k')
  3812. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'first/second/last')
  3813. InformInvalidBid = true
  3814. elseif table.contains({'1','2','3','4','5','6'},Player_Option) then
  3815. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Single_Numbers_Minimum/1000)..'k'):gsub('%[max%]', (Single_Numbers_Maximum/1000)..'k')
  3816. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'single numbers')
  3817. InformInvalidBid = true
  3818. elseif table.contains({'sum'}, Player_Option) then
  3819. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Sum_Of_Numbers_Minimum/1000)..'k'):gsub('%[max%]', (Sum_Of_Numbers_Maximum/1000)..'k')
  3820. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'sum of numbers')
  3821. InformInvalidBid = true
  3822. elseif table.contains({'beat that'}, Player_Option) then
  3823. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Beat_That_Minimum/1000)..'k'):gsub('%[max%]', (Beat_That_Maximum/1000)..'k')
  3824. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'beat that')
  3825. InformInvalidBid = true
  3826. elseif table.contains({'sequence'}, Player_Option) then
  3827. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Sequence_Minimum/1000)..'k'):gsub('%[max%]', (Sequence_Maximum/1000)..'k')
  3828. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'sequence')
  3829. InformInvalidBid = true
  3830. elseif table.contains({'highest', 'lowest'}, Player_Option) then
  3831. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Highest_Lowest_Minimum/1000)..'k'):gsub('%[max%]', (Highest_Lowest_Maximum/1000)..'k')
  3832. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'highest/lowest')
  3833. InformInvalidBid = true
  3834. 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
  3835. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Pair_Of_Numbers_Minimum/1000)..'k'):gsub('%[max%]', (Pair_Of_Numbers_Maximum/1000)..'k')
  3836. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'pair of numbers')
  3837. InformInvalidBid = true
  3838. elseif table.contains({'blackjack'}, Player_Option) then
  3839. InvalidBidMessage = InvalidBidMessage:gsub('%[min%]', (Blackjack_Minimum/1000)..'k'):gsub('%[max%]', (Blackjack_Maximum/1000)..'k')
  3840. InvalidBidMessage = InvalidBidMessage:gsub('%[game%]', 'blackjack')
  3841. InformInvalidBid = true
  3842. end
  3843. if InformInvalidBid then
  3844. SendMessage(speaker, InvalidBidMessage, false)
  3845.  
  3846. Player_Option = nil
  3847. Blackjack_In_Progress = false
  3848. end
  3849. end
  3850. end
  3851. end
  3852. end
  3853. end
  3854. end
  3855. end
  3856. LocalProxyMessage = nil
  3857. end
  3858. Mod:Delay(WorkloadExecutionInterval()*200)
  3859. end)
  3860. Signal.OnReceive('EffectProxySignal', function(signal, data)
  3861. EffectProxyMessage = data["Message"]
  3862. end)
  3863.  
  3864. Module('EffectProxySystem', function(Mod)
  3865. if EffectProxyMessage then
  3866. local message = EffectProxyMessage
  3867. if Casino_Loaded then
  3868. if Processing_Data then
  3869. if Pay_Cash_Signal == 0 then
  3870. if Roll_Dice_Signal then
  3871. ProcessDebugMessage('Casino Debugger', 'The script finished processing data')
  3872. local number = string.match(message, Self.Name()..' rolled a (.+).')
  3873. if number then
  3874. ProcessDebugMessage('Casino Debugger', 'The script started processing effects')
  3875. ProcessDebugMessage('Casino Debugger', 'Effect Proxy received data | Message: '..message..' | Script loaded: '..tostring(Casino_Loaded)..' | Processing data: '..tostring(Processing_Data))
  3876. if Blackjack and Blackjack_In_Progress then
  3877. Blackjack_Roll_Count = Blackjack_Roll_Count + 1
  3878. if Blackjack_Roll_Count >= 1 and Blackjack_Roll_Count <= 5 then
  3879. Blackjack_Player_Count = Blackjack_Player_Count + number + 0
  3880. elseif Blackjack_Roll_Count >= 6 and Blackjack_Roll_Count <= 10 then
  3881. Blackjack_Dealer_Count = Blackjack_Dealer_Count + number + 0
  3882. if Blackjack_Roll_Count == 10 then
  3883. Roll_Dice_Signal = false
  3884. Dice_Rolled_Check = 0
  3885. Blackjack_Roll_Count = 0
  3886. Pay_Cash_Signal = 1
  3887. end
  3888. end
  3889. elseif Sum_Of_Numbers and Sum_Of_Numbers_In_Progress then
  3890. Sum_Of_Numbers_Roll_Count = Sum_Of_Numbers_Roll_Count + 1
  3891. Sum_Of_Numbers_Sum = Sum_Of_Numbers_Sum + number + 0
  3892. if Sum_Of_Numbers_Roll_Count == math.ceil(Game_Types.Sum.Choice/6) then
  3893. Roll_Dice_Signal = false
  3894. Dice_Rolled_Check = 0
  3895. Sum_Of_Numbers_Roll_Count = 0
  3896. Pay_Cash_Signal = 1
  3897. end
  3898. elseif Beat_That and Beat_That_In_Progress then
  3899. Beat_That_Roll_Count = Beat_That_Roll_Count + 1
  3900. local strBeatThatCount = Beat_That_Sum..number
  3901. Beat_That_Sum = strBeatThatCount + 0
  3902. if Beat_That_Roll_Count == 2 then
  3903. Roll_Dice_Signal = false
  3904. Dice_Rolled_Check = 0
  3905. Beat_That_Roll_Count = 0
  3906. Pay_Cash_Signal = 1
  3907. end
  3908. elseif Highest_Lowest and Highest_Lowest_In_Progress then
  3909. Highest_Lowest_Roll_Count = Highest_Lowest_Roll_Count + 1
  3910. if Highest_Lowest_Roll_Count >= 1 and Highest_Lowest_Roll_Count <= (Highest_Lowest_Rolls/2) then
  3911. Highest_Lowest_First_Sum = Highest_Lowest_First_Sum + number + 0
  3912. elseif Highest_Lowest_Roll_Count >= ((Highest_Lowest_Rolls/2)+1) and Highest_Lowest_Roll_Count <= Highest_Lowest_Rolls then
  3913. Highest_Lowest_Second_Sum = Highest_Lowest_Second_Sum + number + 0
  3914. if Highest_Lowest_Roll_Count == Highest_Lowest_Rolls then
  3915. Roll_Dice_Signal = false
  3916. Dice_Rolled_Check = 0
  3917. Highest_Lowest_Roll_Count = 0
  3918. Pay_Cash_Signal = 1
  3919. end
  3920. end
  3921. elseif Sequence and Sequence_In_Progress then
  3922. Sequence_Roll_Count = Sequence_Roll_Count + 1
  3923. local strSequenceCount = Sequence_Count..number
  3924. Sequence_Count = strSequenceCount + 0
  3925. if Sequence_Roll_Count == 3 then
  3926. Roll_Dice_Signal = false
  3927. Dice_Rolled_Check = 0
  3928. Sequence_Roll_Count = 0
  3929. Pay_Cash_Signal = 1
  3930. end
  3931. else
  3932. Roll_Dice_Signal = false
  3933. Pay_Cash_Signal = number + 0
  3934. end
  3935. end
  3936. end
  3937. end
  3938. end
  3939. end
  3940. EffectProxyMessage = nil
  3941. end
  3942. Mod:Delay(WorkloadExecutionInterval()*200)
  3943. end)
  3944. print(InformationText)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement