Название: mafia v.1.069 Версия API: API2 Автор: http://mydc.ru/user5756.html
Известная психологическая игра "Мафия" для Птохи, API2. http://mydc.ru/topic2336.html. При отсутствии какой-либо помощи, однозначных ответов по вопросам правил игры, их реализации и пр. придумал свои правила, простейшие, т.е. Мирные, Мафия и Комиссар. Процентное соотношение настраивается в скрипте. Также настраиваются временные интервалы для регистрации в игру, для голосования. Баллы за игру суммируются и сохраняются в файл. В данном варианте победившая команда получает по 10 баллов. Надо будет пересмотреть, например, проголосовавший за "посадку" другого игрока получает 1 балл, оставшиеся в живых +5.
Придерживался правил http://mydc.ru/topic2336.html?view=findpost&p=34884. Использовал для изучения код http://mydc.ru/r/?http://www.commfort.com/ru/forum/viewtopic.php?f=32&t=6386.
Спасибо за игру: за хорошее меню, за множество полезных и понятных настроек игры! Поближе к вечеру посмотрим на игру пользователей....
Автор: Артём 22.3.2011, 22:03
В 49 строке ошибка tProfiles нужно, а написано tProfiesl
Автор: Marc 23.3.2011, 1:45
не знаю, а у меня нормально всё...
Автор: MARVELtm 23.3.2011, 11:39
Скрипт вроде работает!, есть одно "но" : при входе в канал игры (если он активен), в обший чат начинает посылаться действия (скрипт действия): 11:36:30] ## MARVEL_onwork налил(а) стакан молока ИГРА ## [11:36:31] ## MARVEL_onwork налил(а) стакан молока ИГРА ## [11:36:35] ## MARVEL_onwork налил(а) стакан молока ИГРА ## [11:36:38] ## MARVEL_onwork налил(а) стакан молока ИГРА ##
как снова нажимаю на вкладку ИГРА - [11:38:42] *** ## MARVEL_onwork налил(а) стакан молока ИГРА ## [11:38:44] *** ## MARVEL_onwork налил(а) стакан молока ИГРА ##
Подскажите что такое может быть? Или отправьте меня туда где подскажут!
Автор: dimajak 23.3.2011, 13:20
Цитата(Артём @ 22.3.2011, 22:03)
В 49 строке ошибка tProfiles нужно, а написано tProfiesl
Нет, все правильно - tProfiles
MARVELtm, передвинуть выше скрипт мафии скорей всего.
UPD : небольшие косметические правки. (v.1.02) + правка на событие отключения юзера во время регистрации (v.1.03).
Автор: Littlemuk 23.3.2011, 23:31
Не пойму почему мирные видят ночное голосование мафии :( В скрипте поменял только количество игроков и время регистрации и обсуждения.
Автор: dimajak 24.3.2011, 1:26
Цитата(Littlemuk @ 23.3.2011, 23:31)
Не пойму почему мирные видят ночное голосование мафии :( В скрипте поменял только количество игроков и время регистрации и обсуждения.
За все время игры ОТДЕЛЬНЫЙ ЧАТ ТОЛЬКО ДЛЯ МАФОВ создается только лишь ОДИН РАЗ в самом начале игры, затем он отключается. Об этом выводится предупреждение. Доступен он ТОЛЬКО ДЛЯ МАФОВ. Многократно проверено. Мб мафы продолжают писать свои "личные" послания в чате игры?
Напомню, что при подключении вы попадаете в чат игры, где могут писать все подключившиеся к игре, в том числе и мафы. После распределения ролей для мафов создается отдельный чат (временно), который отключается через время MafTime. Попасть в чат мафии кроме мафии не может никто. Также как в чат игры не может попасть кто-нить снаружи. Как-то так. Это я проверял особенно тщательно, на что и потратил время с ноября 2010-го.
Скорей всего мафы писали в чате игры, а не в чате мафии.
Автор: Littlemuk 24.3.2011, 9:28
ночное голосование, не общение, а именно кто за кого проголосовал ночью! С какими скриптами оно может конфликтовать, у меня Экзекутор стоит, может Мафия с его плагином комнат не дружит?
Автор: dimajak 25.3.2011, 20:24
Цитата(Littlemuk @ 24.3.2011, 9:28)
ночное голосование, не общение, а именно кто за кого проголосовал ночью!
Понял, исправлю. Как-то я это упустил.
Исправил, перезалил. Если кому лень скачивать, замените в строке 392 or на and:
Код
if DayState ~= 4 or DayState ~= 3 then
заменить на
Код
if DayState ~= 4 and DayState ~= 3 then
Или сделать чтобы голоса мафов были видны всем мафам? Если так, то Мафам-трупам тоже сообщать?
И еще - в название файла добавлять номер версии и автора (если кто-нибудь захочет вести свою версию), например, mafia_dimajak_1.03.lua ?
Автор: Littlemuk 25.3.2011, 23:13
Цитата
Или сделать чтобы голоса мафов были видны всем мафам?
думаю, надо.
Цитата
Если так, то Мафам-трупам тоже сообщать?
а смысл?
Цитата
в название файла добавлять номер версии и автора
Имхо, полезно
Спасибо за исправления!
Автор: Littlemuk 26.3.2011, 19:37
dimajak, с мафами все ок, но обнаружился глючок. Юзер регистрируется в игре, но выходит ДО ее начала, скрипт падает.
Цитата
Синтаксис ...s\PtokaX 0.4.1.2\scripts\mafia.lua:667: bad argument #1 to 'SendToNick' (string expected, got nil)
:( И что надо прописать в скрипт, что бы комиссары получали сообщение об их статусе, а то методом научного тыка их ищем Если можно, конечно.
Автор: Underconstruction 27.3.2011, 7:39
Синтаксис \scripts\mafia.lua:49: attempt to index global 'Core' (a nil value)
Что не так ?
Автор: Артём 27.3.2011, 12:42
Underconstruction, наверно, ты пытался скрипт поставить на птоку 0.3.х.х ?
Автор: Saymon21 27.3.2011, 12:46
Скорей таки опять не запущен хаб....
Автор: Underconstruction 27.3.2011, 12:50
Цитата(Артём @ 27.3.2011, 13:42)
Underconstruction, наверно, ты пытался скрипт поставить на птоку 0.3.х.х ?
Да нет, на 0.4.1.2
Цитата(Saymon21 @ 27.3.2011, 13:47)
Скорей таки опять не запущен хаб....
Вот емае..и правда)) Спс
Автор: dimajak 28.3.2011, 8:43
Цитата(Littlemuk @ 26.3.2011, 19:37)
Юзер регистрируется в игре, но выходит ДО ее начала, скрипт падает
В строках 667 и 671 заменить user на sNick.
Цитата(Littlemuk @ 26.3.2011, 19:37)
И что надо прописать в скрипт, что бы комиссары получали сообщение об их статусе, а то методом научного тыка их ищем Если можно, конечно.
после блока
Код
-- комиссар while j < 1 do i = math.random(PlayerCount) nick = NumNick(i) if PlayersArr[nick] ~= nil then if PlayersArr[nick].gamestate ~= 101 then PlayersArr[nick].gamestate = 2 j = j+1 end end end
добавить строку
Код
tSys:SendToUser(nick,"Вы Комиссар!",sRoom,sRoom)
Перезалил файл в шапке v.1.04 со всеми исправлениями и дополнениями. Добавил вывод Топ 5 игроков.
Автор: Артём 28.3.2011, 12:46
dimajak, защищай свои копирайты, вот на хабе-спамера volgo.dyndns.org:411, копирайт
Цитата
[12:41:21] <Мафия> У нас есть игра МАФИЯ! (v.1.01 by (FucK_YoU-).
Автор: Littlemuk 28.3.2011, 13:02
dimajak, все ок, спасибо!
Автор: dimajak 28.3.2011, 13:25
Цитата(Артём @ 28.3.2011, 12:46)
dimajak, защищай свои копирайты, вот на хабе-спамера volgo.dyndns.org:411, копирайт
Копирайт стоит в шапке скрипта. А хаб-то оказывается из одной сети, одного провайдера. :(
Ну, если он хотя бы процентов на 50% переписал скрипт...
Автор: Артём 28.3.2011, 13:45
Цитата(dimajak @ 28.3.2011, 12:25)
Ну, если он хотя бы процентов на 50% переписал скрипт...
ничего он там не переписал, кроме копирайта и версии)
Автор: dimajak 29.3.2011, 15:05
Очередное обновление - v.1.05. Выявлены и исправлены ошибки с трупами - теперь за них нельзя проголосовать, выводится их статус в списках игроков. Добавил вывод списка игроков с количеством голосов, подсчет голосов исправлю позже, слишком неоптимальный получился. Исправил некоторые мелочи.
Автор: Mustik 29.3.2011, 17:26
версия 1.06. мафия убила комисара. и он все таки голосует и за него могут голосовать все.
Автор: dimajak 29.3.2011, 20:37
Цитата(Mustik @ 29.3.2011, 17:26)
версия 1.06. мафия убила комисара. и он все таки голосует и за него могут голосовать все.
1.05, наверное? Ну не важно. Все-таки убитый комиссар голосовать не мог - трупы не могут голосовать, а вместо него мог голосовать следующий за ним игрок. Последствия одной нереализованной идеи. :( Исправил ошибку с Комиссаром и попутно пару мелочей. Перезалил файл в шапке. v.1.051.
Автор: Mustik 29.3.2011, 21:01
странно. когда качал вроде была 1.06 версия) да, сам труп голосовать не мог. а вот все остальные могли.
Автор: dimajak 29.3.2011, 23:11
Mustik, история версий - в шапке скрипта, 1.06 планировал с другими изменениями, поэтому создал промежуточную версию, а за ошибку спасибо
Артём, пообщались с "автором". Адекватно воспринял. Ему просто не хватает советов от опытных хаберов. Хорошо, если его "заряда" в развитии и поддержке своего хаба хватит на продолжительное время.
Автор: Littlemuk 2.4.2011, 10:16
Комиссар проголосовал днем за игрока Х, утром его же проверил, скрипт упал с ошибкой
Цитата
[11:02] Синтаксис ...s\PtokaX 0.4.1.2\scripts\mafia.lua:359: attempt to index field '?' (a nil value)
И голосование комиссара видно в общем чате.
Автор: dimajak 2.4.2011, 11:16
Цитата(Littlemuk @ 2.4.2011, 11:16)
Комиссар проголосовал днем за игрока Х, утром его же проверил, скрипт упал с ошибкой И голосование комиссара видно в общем чате.
Хм, а версия скрипта какая? В последней версии (1.051) 359-я строка
Код
if not CheckVictory() then
такой ошибки не должно быть.
Автор: Littlemuk 2.4.2011, 14:15
dimajak, хех, 1.03 Буду тестить новую.
Автор: Poltava 21.4.2011, 10:54
Что то я не понял скачал версию в шапке как бы комисар не голосовал пишет комисар никого не проверил ???
Автор: dimajak 21.4.2011, 11:14
Цитата(Poltava @ 21.4.2011, 11:54)
Что то я не понял скачал версию в шапке как бы комисар не голосовал пишет комисар никого не проверил ???
Наверное дело в 379-й строке
Код
if not CheckKom() then
надо
Код
if CheckKom() then
Проверьте, пожалуйста, а то у меня сейчас нет возможности поднять хаб и несколько клиентов.
Давно хотел спросить! Я вот что подумал - я выкладываю скрипт со своими настройками, которые мне удобны при тестировании скрипта. Но при обновлении скрипта на ваших хабах (замене файла mafia.lua) приходится редактировать файл скрипта для изменения параметров игры "для себя", таких как "Время голосования мирных", "Время голосования мафии" и пр. Я прав? Неудобно вам? А если создать файл настроек? При замене файла скрипта ваши настройки сохранятся, отпадет необходимость править скрипт. После замены файла скрипта, вам останется только перезапустить скрипт. При запуске скрипта подхватятся настройки из файла. Какие параметры вынести в этот файл настроек? Но здесь есть большой минус! Вы правите (по привычке, по забывчивости, новичок и пр.) настройки в файле-скрипте. Перезапускаете его. Не работает! Что делать? Пытаетесь снова и снова, наступает злоба. Потом вспоминаете что надо было править файл настроек. И потом перезапустить скрипт. Так что лучше, оставить как есть или хапнуть проблем?
Автор: Marc 14.5.2011, 1:39
Оставить как есть...
Автор: Littlemuk 14.5.2011, 10:28
Оставить как есть. Поменять пару строчек не проблема
Автор: PRIZrak 16.5.2011, 18:53
Поработал немного и выдало (Версия скрипта: 1.051) Синтаксис ***\mafia.lua:771: bad argument #1 to 'RemoveTimer' (number expected, got nil)
Поставлю обновлённый скрипт, надеюсь там этого не будет.
Насчёт регистрации, как правильно закоментировать? :
Код
OnStartup = function() -- Регистрировать бота, если не зарегистрирован if tSettings.sBot ~= SetMan.GetString(21) then Core.RegBot(tSettings.sBot,"[МАФИЯ]","",true) end Core.SendToAll("<"..tSettings.sBot.."> Игра МАФИЯ включена.")
Автор: Marc 17.5.2011, 1:01
PRIZrak!
Если я тебя правильно понял, то надо менять тут:
Код
local tSettings = { -- Имя бота --sBot = "Пряник", sBot = SetMan.GetString(21),
в зависимости от того, хочешь ли ты видеть в списке бота "Пряник" или же основного бота Хаба.... В данном примере выше будет основной бот Хаба!
Автор: PRIZrak 17.5.2011, 21:11
Мне нужно, чтобы игра велась от его имени, но в списке людей его не было видно.
Автор: Marc 18.5.2011, 3:02
так вот я и говорю, что игра будет вестись от имени основного бота хаба...., который не займёт лишнего места в списке (в отличие от бота Пряник) и будет лучше смотреться на мой взгляд! А там, конечно, решать тебе!
Автор: PRIZrak 18.5.2011, 21:31
PtokaX 0.4.1.2. Скрипт выдал ошибку: mafia.lua:793: bad argument #1 to 'RemoveTimer' (number expected, got nil) на этапе регистрации.
Автор: dimajak 18.5.2011, 22:46
Цитата(PRIZrak @ 16.5.2011, 19:53)
Поработал немного и выдало (Версия скрипта: 1.051) Синтаксис ***\mafia.lua:771: bad argument #1 to 'RemoveTimer' (number expected, got nil)
Как получилась такая ошибка? В 1.051 строка 771
Код
elseif DayState == 0 then
Автор: Setuper 19.5.2011, 8:51
А ты глянь на следующую строку, ведь очевидно, что нужно искать функцию RemoveTimer, в которую передаётся вместо числа nil
Ведь простейшая ситуация: игрок был зарегистрирован в игре, таймер был остановлен и переменная Tmr была обнулена, игрок уходит с хаба, при выходе вызывается функция UnRegUser и на вызове TmrMan.RemoveTimer(Tmr) скрипт падает, так как переменная Tmr была установлена в nil ранее.
Автор: dimajak 20.5.2011, 23:17
Тогда вместо строк
Код
TmrMan.RemoveTimer(Tmr) Tmr = nil
заменить на
Код
if Tmr ~= nil then TmrMan.RemoveTimer(Tmr) Tmr = nil end
Выложил в шапке версию 1.06. Исправил ошибки, выявленные внимательными пользователями этого сайта, за что им огромная благодарность, исправил найденные мной ошибки.
Есть смысл создавать MySQL версию?
Автор: the623 15.6.2011, 14:34
Проблема в следующем. 1. Установил скрипт,запустил,все отлично. 2. Когда в игре зарегестрировалось 3 человека,прождали (3минуты) началось распределение ролей( личное сообщение пришло только мафиозе,в котором было сказано что он мафиозе, и на этом все, больше не кому роли не пришли(теже самые жители)) 3. После всего это ни че в игре не происходит прождали (10мин) ни голосовании,ни ночи,ни какого предупреждения больше почему то не приходит.
Что делать? версия клиента 0.4.1.1
после этих строк ни каких действий не происходит
Цитата
[20:46:03] <ИГРА> Регистрация в игру МАФИЯ закончена. Всего зарегистрировались 3 игрока [20:46:03] <ИГРА> Распределяю роли...
ждали мин 15 ничего не происходило начали выходить, на последок
Цитата
************************************************** Победили мирные. ************************************************** Набранные очки за эту игру: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Ник Очки за игру Статус Всего очков -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- the 10 Мирный 10 про 0 Труп (Труп) 0 mas 0 Труп (Труп) 0 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ************************************************** ИГРА ОКОНЧЕНА! ************************************************** Закройте эту закладку, т.к. она больше не пригодится.
Автор: dimajak 17.6.2011, 19:08
the623, постараюсь проверить.
Автор: dimajak 21.6.2011, 3:05
Исправил ошибку после регистрации игроков. Добавил сообщения мирным жителям после распределения ролей. Добавил вывод оставшегося времени (в минутах) до начала игры после регистрации минимального участника.
В шапку залил версию 1.061.
Проверяйте.
П.С. Результаты голосования выводятся или мне показалось что нет? (проверять не было времени)
Автор: the623 22.6.2011, 10:09
Цитата(dimajak @ 21.6.2011, 5:05)
Исправил ошибку после регистрации игроков. Добавил сообщения мирным жителям после распределения ролей. Добавил вывод оставшегося времени (в минутах) до начала игры после регистрации минимального участника.
В шапку залил версию 1.061.
Проверяйте.
П.С. Результаты голосования выводятся или мне показалось что нет? (проверять не было времени)
Спасибо заметил следующее : 1. результат голосования пуст,после любого голосования.
Цитата
[13:02:16] <ИГРА> Результат голосования: ------------------------------------------------------------------------------------------------------------------------ Ник Голосов Кто голосовал ------------------------------------------------------------------------------------------------------------------------ ------------------------------------------------------------------------------------------------------------------------
2. и предложения по измени игре + таблица по распределнию ролей.
Спасибо заметил следующее : 1. результат голосования пуст,после любого голосования.
2. и предложения по измени игре + таблица по распределнию ролей.
1. Буду исправлять, наверное после перехода на новую систему подсчета что-то не учел. 2. Шикарно! Сам составлял? Нужно вводить новых действующих лиц? Тогда придется высчитывать их процентном отношении к общему количеству игроков. Не обещаю, что скоро, так как кода добавится, но попробую реализовать.
Автор: the623 23.6.2011, 22:26
Цитата(dimajak @ 23.6.2011, 23:18)
1. Буду исправлять, наверное после перехода на новую систему подсчета что-то не учел. 2. Шикарно! Сам составлял? Нужно вводить новых действующих лиц? Тогда придется высчитывать их процентном отношении к общему количеству игроков. Не обещаю, что скоро, так как кода добавится, но попробую реализовать.
1.Вот обновлении.. там есть Порядок использования там пример расчета предложен можешь воспользоваться можешь пос воему как удобно. 2. в основном пока мало народу играет поэтому таблицу сделал такую, но это как говорится только начало если онлайн более 20 чел. то ее можно продолжить и разумеется новые классы и с характеристиками. 3. вариантов много игр,но я подсчитал что это самый приуспешный.( инфу брал со всего интнета самое интересное, а составлял сам) 4. если все понравится то потихоньку буду пополнять. 5. ага новые лица(герои) появляются уже когда онлайн от 9 до 11 чел. ( маньяк,доктор) и с 11 по 13 сержант и горец(место доктора) 6. ( 6*)- в таблицу в скобках значит сколько народу играет значет тому классу +1 чел отходит
По поводу Вывода результатов голосования: строку 488 (скрипт из шапки, v.1.061):
Код
local votenick = ""
исправить на:
Код
local votenick = k
на первый взгляд здесь ошибка (забыл определить голосовавшего). Либо на
Код
local votenick = v.nick
Чтобы не править много можно исправить в одной строке, если сразу создать такую возможность. Если результат будет положительный - исправлю номер версии и выложу в шапку.
the623, эх, твою бы активность чуть http://mydc.ru/topic2336.html.
Автор: the623 7.7.2011, 16:07
Недочет наверно. Когда команда набрана игра и игра ничинается. То любой может узнать кто кем играет, достаточно после определение ролей, в меню игры посмотреть Список игроков и он скажет кто играет и какая роль у этого человека. как убрать это?
Автор: dimajak 6.8.2011, 3:17
the623, Спасибо за обнаруженную ошибку! Действительно, осталась такая возможность, забыл исправить после тестов. Перезалил файл в шапке. Текущая версия 1.063.
P.S. Не было уведомления в почте от mydc.ru о новом сообщении в теме :( Случайно зашел и увидел, тут же исправил. Тестируйте.
Автор: PRIZrak 22.8.2011, 22:39
Начал мочить мафию (3 чела зарегено), как scripts\mafia.lua:506: attempt to perform arithmetic on field 'votesnick' (a string value), может человек мало? сколько минимун нужно для нормальной игры?
Автор: dimajak 27.9.2011, 1:21
PRIZrak, версия скрипта?
Хм, почему не работает на этом форуме информирование о новых сообщениях в теме?
Автор: PRIZrak 28.9.2011, 17:44
Версия скрипта: 1.063
Я так понял, что от кол-ва пользователей это не зависит.
Автор: dimajak 21.10.2011, 20:12
Цитата(PRIZrak @ 28.9.2011, 18:44)
Версия скрипта: 1.063
Дико извиняюсь за столь долгое молчание - оповещение на новое сообщение почему-то не работает :( хотя в опциях темы
Цитата
Вы уже подписаны на ответы в этой теме
Спасибо за обнаруженную ошибку. Была ошибка в коде - перепутал операторы конкатенации строк, так как одновременно кодил несколько проектов (в разных языках операции сложения строк различаются :( )
Обновил шапку. Текущая версия 1.0.64.
P.S. Про игру в Мафию вчера поржал в этом http://mydc.ru/r/?http://www.youtube.com/watch?v=d-FHMUzTRL8 (8:30)
Автор: PRIZrak 2.11.2011, 22:32
Пока всё работает!
Кстати, просьба добавить возможность выбора варианта рассылки сообщения "Началась регистрация в игру МАФИЯ. Игра начнется через .. минут" так:
1) В общий чат - сейчас так по-умолчанию 2) Всем личка
Может кто и захочет поиграть, когда личка придёт, а то читать постоянно общак не каждому по душе.
Автор: dimajak 4.11.2011, 3:06
Цитата(PRIZrak @ 2.11.2011, 23:32)
Кстати, просьба добавить возможность выбора варианта рассылки сообщения "Началась регистрация в игру МАФИЯ. Игра начнется через .. минут" так:
1) В общий чат - сейчас так по-умолчанию 2) Всем личка
Может кто и захочет поиграть, когда личка придёт, а то читать постоянно общак не каждому по душе.
Текущая версия v.1.065. Добавил две переменные: MsgStartRegAll - сообщать в общем чате (true/false), по умолчанию = true; MsgStartRegAllPM - сообщать в приват ВСЕМ юзерам (true/false), по умолчанию = false.
Получается, что сообщение о начале регистрации в игру можно выключить совсем :)
То что нужно?
Обновил шапку. скачивайте, проверяйте.
Автор: PRIZrak 7.11.2011, 22:42
Что-то ничего не появляется при разных вариантах
MsgStartRegAll = false, MsgStartRegAllPM = true,
и так тоже ничего не пишет
MsgStartRegAll = true, MsgStartRegAllPM = true,
т.е. оно вообще перестало выводить эту надпись :(
Автор: Vofff4ik 17.11.2011, 12:57
Синтаксис C:\PtokaX\scripts\mafia.lua:324: bad argument #1 to 'RemoveTimer' (number expected, got userdata)
такая ошибка вылезла((((((( после регистрации игроков
[13:55:43] <ИГРА> *** Добро пожаловать в игру! [13:55:43] <ИГРА> *** Vofff4ik присоединился к игре. Игроков сейчас 3 [13:55:43] <ИГРА> *** Набран минимум игроков. Игра начнется через -8 минут
ptokax 4.2.0 не подскажете что можно сделать?? я не ас в программировании, но если подскажете что заменить, я заменю)))))))))
Автор: Alexey 17.11.2011, 14:15
Замени птоку на предыдущую или на эту: 0.4.2.0b314.7z ( 2.49 мегабайт )
: 186
Автор: dimajak 19.11.2011, 0:36
Исправил ошибку с сообщением о начале регистрации. Обновил файл в шапке.
Цитата(PRIZrak @ 7.11.2011, 23:42)
Что-то ничего не появляется при разных вариантах
Проверил, изменил, обновил файл скрипта в шапке, проверь.
Цитата(Vofff4ik @ 17.11.2011, 13:57)
Синтаксис C:\PtokaX\scripts\mafia.lua:324: bad argument #1 to 'RemoveTimer' (number expected, got userdata)
такая ошибка вылезла((((((( после регистрации игроков
[13:55:43] <ИГРА> *** Добро пожаловать в игру! [13:55:43] <ИГРА> *** Vofff4ik присоединился к игре. Игроков сейчас 3 [13:55:43] <ИГРА> *** Набран минимум игроков. Игра начнется через -8 минут
ptokax 4.2.0 не подскажете что можно сделать?? я не ас в программировании, но если подскажете что заменить, я заменю)))))))))
Пожалуйста, сообщай также версию скрипта.
Автор: PRIZrak 20.11.2011, 11:23
Рассылка сообщений работает. НО на шаге Hacтyпилa пepвaя нoчь. У вac, мaфии, ecть 2 минyты дoгoвopитьcя. вылетел скрипт с ошибкой scripts\mafia.lua:974: attempt to index field '?' (a nil value). (играет 3 человека)
Автор: dimajak 21.11.2011, 20:37
PRIZrak, проверил mafia v.1.066 с тремя игроками - никаких ошибок не было. По идее и не могло быть - изменения касались только вывода сообщений о начале регистрации.
P.S. Скачал файл скрипта из шапки. Т.е. сам себя перепроверил.
Автор: PRIZrak 23.11.2011, 18:20
Версия скрипта: 1.066. Играет 3 чела. настройки:
Настройки
tProfiles = { [-1] = true, [0] = true, [1] = true, [2] = true, [3] = true, [4] = true, [5] = true }, RegCmd = "!reg_mafia", UnRegCmd = "!unreg_mafia", ListCmd = "!list_mafia", VoteCmd = "!vote_mafia", RulesCmd = "!rules_mafia", Top5Cmd = "!top5_mafia", MinPlayers = 3, MaxPlayers = 20, RegTime = 10, -- 3 минуты на регистрацию CountRegTime = 2, -- сколько раз продолжать регистрацию MafTime = 2, -- 2 минуты договориться мафии MirTime = 2, -- 2 минуты на голосование мирных CountMirTime = 2, -- сколько раз повторять голосование (не работает пока) KolKom = 1, -- Комиссар всегда один! KomTime = 2, -- 2 минуты на ход комиссару MsgStartRegAll = true, -- Отправить сообщение о начале регистрации в общий чат MsgStartRegAllPM = true, -- Отправить сообщение о начале регистрации всем в приват
В личке мафии: [18:14:39] <ИГРА-Мафия> Чатрум для мафии отключен! [18:14:40] <ИГРА-Мафия> Закройте эту закладку, т.к. она больше не пригодится. Общак: [18:14:40] <[BOT]Мафия> Игра МАФИЯ выключена. На хабе: [18:14] Синтаксис ..\scripts\mafia.lua:974: attempt to index field '?' (a nil value)
Скрипт почти в самом верху, выше только HUBBABOT.
Автор: Ksan 23.11.2011, 18:40
Пора повесить объяву на шапке форума - "Если у вас стоит ХуббаБот, то претензии к остальным скриптам не принимаем!"
Автор: ustas 23.11.2011, 20:09
Цитата
выше только HUBBABOT
поставь его ниже
Автор: Littlemuk 23.11.2011, 21:29
Лог игры (версия 1.066)
[2011-11-23 22:17] <ИГРА> ---------------------------------------------------------------------------------------------------- [2011-11-23 22:17] <ИГРА> Список для голосования: [2011-11-23 22:17] <ИГРА> ---------------------------------------------------------------------------------------------------- [2011-11-23 22:17] <ИГРА> [] [KIR]faktuno123 Мирный (труп) [2011-11-23 22:17] <ИГРА> [2] [KIR]born [2011-11-23 22:17] <ИГРА> [3] Littlemuk [2011-11-23 22:17] <ИГРА> [] [KIR]PCgamer Комиссар (труп) [2011-11-23 22:17] <ИГРА> ---------------------------------------------------------------------------------------------------- [2011-11-23 22:17] <ИГРА> Для голосования используйте пункт меню игры Проголосовать и введите номер игрока. [2011-11-23 22:17 | 10.26.151.192 | Локальные сети] <[KIR]born> [KIR]born проголосовал за=Littlemuk [2011-11-23 22:17] <ИГРА> Вы проголосовали за [KIR]born [2011-11-23 22:17] <ИГРА> Littlemuk проголосовал за [KIR]born [2011-11-23 22:18] <Littlemuk> я знаю кого мафия вынесет ночью )) [2011-11-23 22:19 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> [KIR]PCgamer проголосовал за=Littlemuk [2011-11-23 22:19] <ИГРА> ------------------------------------------------------------------------------------------------------------------------------------------------------ [2011-11-23 22:19] <ИГРА> Голосование закончено. Подводим итоги. [2011-11-23 22:19] <ИГРА> ------------------------------------------------------------------------------------------------------------------------------------------------------ [2011-11-23 22:19] <ИГРА> Результат голосования: ------------------------------------------------------------------------------------------------------------------------ Ник Голосов Кто голосовал ------------------------------------------------------------------------------------------------------------------------ Littlemuk 1 Littlemuk [KIR]born 1 [KIR]born ------------------------------------------------------------------------------------------------------------------------ [2011-11-23 22:19] <ИГРА> В тюрьму отправляется Littlemuk Мафиози [2011-11-23 22:19] <ИГРА> ------------------------------------------------------------------------------------------------------------------------------------------------------ [2011-11-23 22:19] <ИГРА> ************************************************** Победили мирные. ************************************************** Набранные очки за эту игру: -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Ник Очки за игру Статус Всего очков -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- [KIR]faktuno123 10 Мирный (Труп) 10 [KIR]born 10 Мирный 10 Littlemuk 0 Мафиози (Труп) 50 [KIR]PCgamer 10 Комиссар (Труп) 20 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ************************************************** ИГРА ОКОНЧЕНА! ************************************************** Закройте эту закладку, т.к. она больше не пригодится.
[2011-11-23 22:19] <ИГРА> *** Добро пожаловать в игру! [2011-11-23 22:19] <ИГРА> *** Littlemuk присоединился к игре. Игроков сейчас 2 [2011-11-23 22:20] <Littlemuk> не понял, а как геймер голосовал?? [2011-11-23 22:20] <ИГРА> *** [KIR]born присоединился к игре. Игроков сейчас 3 [2011-11-23 22:20] <ИГРА> *** [KIR]faktuno123 присоединился к игре. Игроков сейчас 4 [2011-11-23 22:20] <ИГРА> *** Набран минимум игроков. Игра начнется через 3 минуты [2011-11-23 22:20 | 10.213.193.151 | Локальные сети] <[KIR]faktuno123> ес [2011-11-23 22:20 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> злой дух ёпт) [2011-11-23 22:20] <Littlemuk> [22:20:02] <Littlemuk> не понял, а как геймер голосовал?? [2011-11-23 22:20] <Littlemuk> глюк в скрипте? [2011-11-23 22:20 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> походу [2011-11-23 22:20 | 10.26.151.192 | Локальные сети] <[KIR]born> какой глюк? [2011-11-23 22:20 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> сразу нельзя а поом голосуется после живых [2011-11-23 22:21 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> *потом
И не плохо было бы добавить "отписку" от начала игры. Народ жалуется, что в личку спамит, а отказываться от лички не хочу Обнаружился глючок еще - юзер вступает в игру, потом выходит из нее через меню - регистрация становиться либо бесконечной, либо отсчет идет в минус, т.е. "Игра начнется через -8 минут"
И еще пару глюков
[23:00:39] <ИГРА> Наступает ночь. Голосует мафия. [23:00:39] <ИГРА> Список для голосования: [23:00:39] <ИГРА> ---------------------------------------------------------------------------------------------------- [23:00:39] <ИГРА> [1] [TRU]basist_ivan [23:00:39] <ИГРА> [] Littlemuk Мирный (труп) [23:00:39] <ИГРА> [3] [LEN]S.e.r.g.e.y [23:00:39] <ИГРА> [4] [KIR]dada [23:00:39] <ИГРА> [] [TRU]Volmon Мирный (труп) [23:00:39] <ИГРА> [] [KIR]УрфинДжус Мафиози (труп) [23:00:39] <ИГРА> [] [KIR]PCgamer Мирный (труп) [23:00:39] <ИГРА> ---------------------------------------------------------------------------------------------------- [23:00:39] <ИГРА> Для голосования используйте пункт меню игры Проголосовать и введите номер игрока. [23:01:19] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 6 [23:01:19] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 6 [23:01:22] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:01:28] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:01:35] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:01:45 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> труп убегает [23:01:51] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:02:05 | 10.95.0.37 | Локальные сети] <[TRU]basist_ivan> что то он никак не убежит [23:02:09] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:02:15] <Littlemuk> дааа, скрипт гонит конечно [23:02:19] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:02:20] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:02:35] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:02:38] <ИГРА> [TRU]Volmon покинул(а) игру. Игроков сейчас 5 [23:02:38] <ИГРА> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-. Голосование мафии закончено. Подводим итоги. [23:02:38] <ИГРА> Результат голосования: ------------------------------------------------------------------------------------------------------------------------ Ник Голосов Кто голосовал ------------------------------------------------------------------------------------------------------------------------ [KIR]dada 1 [KIR]dada ------------------------------------------------------------------------------------------------------------------------ [23:02:38] <ИГРА> Мафия убила [TRU]basist_ivan Комиссар [23:02:38] <ИГРА> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.
Автор: PRIZrak 24.11.2011, 22:44
Боюсь HUBBABOT здесь ни при чём, т.к. и без него вылетает скрипт, самое интересное, что версия 1.0.64 не вылетала при том же наборе скриптов и ботов :( Может у кого завалялась данная версия? (для проверки)
Автор: dimajak 24.11.2011, 23:13
Цитата(Littlemuk @ 23.11.2011, 22:29)
Лог игры (версия 1.066)
[2011-11-23 22:20] <Littlemuk> [22:20:02] <Littlemuk> не понял, а как геймер голосовал?? [2011-11-23 22:20] <Littlemuk> глюк в скрипте? [2011-11-23 22:20 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> походу [2011-11-23 22:20 | 10.26.151.192 | Локальные сети] <[KIR]born> какой глюк? [2011-11-23 22:20 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> сразу нельзя а поом голосуется после живых [2011-11-23 22:21 | 10.213.184.63 | Локальные сети] <[KIR]PCgamer> *потом
Постараюсь воспроизвести этот момент.
Цитата(Littlemuk @ 23.11.2011, 22:29)
И не плохо было бы добавить "отписку" от начала игры. Народ жалуется, что в личку спамит, а отказываться от лички не хочу
В каком виде? Используются функции SendToAll и SendPmToAll, а в них нет исключений Игнорить сообщения от бота игры не пробовали?
Цитата(Littlemuk @ 23.11.2011, 22:29)
Обнаружился глючок еще - юзер вступает в игру, потом выходит из нее через меню - регистрация становиться либо бесконечной, либо отсчет идет в минус, т.е. "Игра начнется через -8 минут"
Такого воспроизвести не удалось. Тем более, чтобы таймер ушел в минус. Была ошибка, что при отключении игрока при регистрации игра останавливалась, несмотря на остальных подключенных. Исправил, но пока не выкладывал файл. Подробнее, как такое получилось?
Цитата(PRIZrak @ 24.11.2011, 23:44)
Боюсь HUBBABOT здесь ни при чём, т.к. и без него вылетает скрипт, самое интересное, что версия 1.0.64 не вылетала при том же наборе скриптов и ботов :( Может у кого завалялась данная версия? (для проверки)
Постараюсь поставить этот скрипт, но позже.
Автор: Littlemuk 24.11.2011, 23:29
Цитата
Постараюсь воспроизвести этот момент.
Сам пробовал не получилось, тот же юзер повторил этот глюк
Цитата
Игнорить сообщения от бота игры не пробовали?
Главный бот рассылает приглашения, игрового отдельно не стал заводить, их и так много
Цитата
Подробнее, как такое получилось?
Во время регистрации, после сообщение о набранном необходимом минимуме, много народа подключалось и отключалось.
Могу вывести хаб на внешку, зайдешь сам потестишь )
Автор: dimajak 25.11.2011, 1:10
Цитата(Littlemuk @ 25.11.2011, 0:29)
Сам пробовал не получилось, тот же юзер повторил этот глюк
Пока не добрался до этого момента.
Цитата(Littlemuk @ 25.11.2011, 0:29)
Главный бот рассылает приглашения, игрового отдельно не стал заводить, их и так много
Единственное, что приходит в голову: Вариант 1. По умолчанию все юзеры хаба получают сообщения от игры Мафия. Создать файл с отказавшимися от сообщений от мафии, а рассылку сообщений отправлять по списку всех пользователей, исключая (искать юзеров из файла отписки), для этого надо добавить в меню пункт "Отказаться от сообщений Мафии". Но при этом увеличится нагрузка на хаб и увеличится объем памяти, выделяемый скрипту. :( Вариант 2. По умолчанию все юзеры хаба не получают никаких сообщений об игре Мафия. Если кто захочет, то должен будет в менюшке выбрать "Получать сообщения от Мафия". Тогда список получающих оповещения сократится.
В обоих случаях в меню игры добавляются два пункта - "Получать сообщения от Мафии" и "Отказаться от сообщений Мафии". В первом варианте - нагрузка на хаб, во втором - непопулярность игры. + В обоих вариантах - сложность реализации.
Если есть еще варианты - предлагайте. Либо, как самый простой вариант - включить бота игры.
Цитата(Littlemuk @ 25.11.2011, 0:29)
Во время регистрации, после сообщение о набранном необходимом минимуме, много народа подключалось и отключалось.
Могу вывести хаб на внешку, зайдешь сам потестишь )
Над этим и работаю сейчас, есть кое-какие задумки. Добился -1 минуту. Думаю.
Автор: Littlemuk 25.11.2011, 9:52
Заведу пожалуй игрового Сложность реализации в таком большом скрипте грозит скрытыми глюками Спасибо, dimajak! А по второму логу скажешь что-нибудь?
В дополнение ко второму логу, пара предложений 1. Запретить голосовать за себя 2. Отключать от чата трупов 3. Подсказать мне как исправить "досрочное голосование" ;)
Досрочное голосование
[2011-11-25 22:58] <ИГРА> Наступил 2 день. [2011-11-25 22:58] <ИГРА> Голосование через 2 минуты [2011-11-25 22:59] <ИГРА> [KIR]Firefly проголосовал за Littlemuk [2011-11-25 23:00] <ИГРА> Вы проголосовали за [KIR]Firefly [2011-11-25 23:00] <ИГРА> Littlemuk проголосовал за [KIR]Firefly [2011-11-25 23:00] <ИГРА> Наступает ДЕНЬ... Голосуют все игроки. Для голосования отводится 2 минуты.
Автор: dimajak 26.11.2011, 1:30
Littlemuk, спасибо Вам и вашим пользователям за обнаруженные ошибки! Логи, предоставленные существенно сокращают работу над ошибками! Чем больше информации от пользователя - тем проще изолировать и обнаружить проблему.
Если кратко - думаю.
Автор: PRIZrak 29.11.2011, 19:29
Цитата(PRIZrak @ 20.11.2011, 10:23)
Рассылка сообщений работает. НО на шаге Hacтyпилa пepвaя нoчь. У вac, мaфии, ecть 2 минyты дoгoвopитьcя. вылетел скрипт с ошибкой scripts\mafia.lua:974: attempt to index field '?' (a nil value). (играет 3 человека)
Сам виноват, неправильно подправил некоторые детали скрипта.
Цитата(Ksan @ 23.11.2011, 17:40)
Пора повесить объяву на шапке форума - "Если у вас стоит ХуббаБот, то претензии к остальным скриптам не принимаем!"
ХуббаБот в данном случае не виноват ;) , с ним ещё скрипты не глючили, правда, их не так уж и много на хабе.
Автор: dimajak 6.12.2011, 3:12
Исправил отрицательное время, добавил отслеживание ошибок, переработал много кода. Littlemuk, проверьте по поводу возможности голосования трупика Комиссара после голосования всех! У меня не получается. При любом голосовании сразу проверяется на труп.
Показ отрицательного времени при регистрации был связан с параметром CountRegTime, я его не учел при отображении оставшегося времени. Например, в настройках указан минимум 3 игрока и время на регистрацию 5 минут, после подключения игроков (регистрации в игре) начнется игра. Поток желающих наплывами. То игроков много, то мало. Кто-то требует незамедлительно начать игру, с 3-мя игроками, кто-то хочет подождать, а вдруг, в следующие 5 минут завалится еще 5-10 игроков, время до окончания регистрации вот-вот закончится, а уже оповещены друзья? CountRegTime - это число повторов RegTime для "донабора" минимального количества игроков. Проще говоря - сколько раз включать по RegTime минут для регистрации.
UPD. Для последователей, для тех, кто решится изменить скрипт или добавить в него что-то новое - Добро пожаловать! Для вас добавил очень много сообщений в канале "Debug", анализируйте, сравнивайте, изучайте.
Обновил шапку топика. Текущая версия скрипта - v.1.067
PRIZrak, Рад за сэкономленное мое время.
П.С. Проверьте настройки своего скрипта!
Автор: dimajak 16.1.2012, 21:03
Ситуация такая: в игре остались 1 мирный (или 1 комиссар) и 1 маф, ход мафов. Маф голосует за себя. Выигрывают мирные. Это правильно?
Автор: Ksan 16.1.2012, 21:45
Мне кажется, это справедливо. Пусть она торжествует хотя бы в играх..
Автор: dimajak 17.1.2012, 0:34
Выложил http://mydc.ru/topic5113.html. Заодно подправил скрипт для Птохи. Изменений мало и они несущественны. Текущая версия 1.068. Шапку обновил.
Автор: Alexey 17.1.2012, 2:02
Цитата(dimajak @ 16.1.2012, 21:03)
Ситуация такая: в игре остались 1 мирный (или 1 комиссар) и 1 маф, ход мафов. Маф голосует за себя. Выигрывают мирные. Это правильно?
Нет, это неправильно, ИМХО.
Автор: dimajak 17.1.2012, 3:50
Alexey, почему? Все же логично и для мафии стимул. Иначе, при более мягких условиях игра теряет смысл - побеждать будет всегда мафия :(
Alexey, ты, наверное, не понял игру.
Автор: Alexey 17.1.2012, 21:17
Возможно. Я отвечал исходя из своего опыта игры в оффлайновую игру "Мафия".
Автор: dimajak 28.1.2012, 1:13
Цитата(Alexey @ 17.1.2012, 3:02)
Нет, это неправильно, ИМХО.
Почему неправильно?
Автор: dimajak 3.2.2012, 11:35
версия 1.069 - Добавил возможность запрещать голосовать за себя. Проверьте, у меня пока нет возможности.
Автор: dimajak 17.2.2012, 23:49
Хочу добавить Путану. Путана (Проститутка) имеет ход перед Мафией. При ее выборе этого игрока игрок лишается каких либо действий, т.е. Игрок не может голосовать, т.к. он провел ночь с Путаной, Игрок лишается общения,даже если он мафиози.
При добавлении в игру игрока Путана (Проститутка) есть несколько вопросов. 1. Добавлять Путану при более 15 игроков или какое-то соотношение к общему количеству игроков больше энного количества? Т.е. при наборе какого-то количества игроков будет какой-то коэффициент ? 2. Для добавления Путаны нужно добавить противоположного героя, какого?
Автор: Ksan 18.2.2012, 0:40
dimajak, добавь местного пастора. Сходил к пастору - твой рейтинг вырос. Сходил 10 раз - ты вообще перестал быть мафиози. Убил пастора - считай, что тебя убьют свои же.
Автор: dimajak 20.2.2012, 23:26
Ksan, боюсь церковники будут врать, что они не такие
Итак, для обсуждения выкладываю свои правила: Путана/Проститутка 1) Путана добавляется при наличии игроков более 15 (и она одна). 2) Путана ходит перед Мирными. (Первый ход её - да?) 3) Путана выбрала игрока - игрок пропускает ход. а) Путана выбрала Мирного - игрока не может убит Мафией и п.3. б) Путана выбрала Мафиози - игрок не голосует. в) Путана выбрала Комиссара - игрок не проверяет.
Сообщения о выборе Путаны не выводятся - это не обсуждается, пока не введен Сутенер.
Добавляйте свои предложения.
Доктор Про него на будущее: 1) Ввести Доктора? 2) Доктор может вылечить ночью одного игрока, если попадется убитый - вылечит его. 3) Доктор голосует после Мафии. 4) Доктор в одном экземпляре на всю игру. 5) Доктор добавляется при наличии игроков более 15.
Автор: Alexey 28.6.2012, 17:58
Цитата(dimajak @ 28.1.2012, 1:13)
Почему неправильно?
Потому что маф принципиально не должен голосовать против себя. Это противоречит задачам мафии и здравому смыслу.
Автор: NeirRon 2.9.2013, 13:10
dimajak, Доброго времени суток, на счет новых персонажей правильно, нужно добавлять. В Wiki есть хорошее описание персонажей, хотелось бы чтоб правила были более привычны для игроков, в нашем городе многие играют в чате комфорта, и привыкли к определенным правилам, надеюсь и в Вашем скрипте они будут учтены. Мафиозный аналог Путаны это Вор, они оба блокирут спецспособности игроков
Автор: taylor 6.10.2014, 16:20
почему текстовым документом все скрипты я не могу понять как их закинуть почему не в зип архиве ??
Автор: Артём 6.10.2014, 19:19
taylor, они не в текстовом, а в lua. Их не нужно открывать, а нужно сохранять.
Автор: taylor 6.10.2014, 23:54
Цитата(Артём @ 6.10.2014, 20:19)
taylor, они не в текстовом, а в lua. Их не нужно открывать, а нужно сохранять.
сохранил и что дальше делать делать ??? вот то чт оя сохранил кидаю в папку scripts и ничего нет ((
Автор: Ksan 7.10.2014, 4:41
taylor, послушайте, может, вам забить на всё это? Ну их к чёрту, эту Птоку и эти хабы, всё это не под ваши руки заточено, разве вам самому непонятно ещё?
Автор: PAUK 10.11.2014, 13:53
ЕСТЬ КОСЯК скрипт мафия и действия в общем стоят 2 скрипта когда нажимаем начать игру мафия вылетает следующее
[13:50:18] Синтаксис ...\Electron-Hub v0.5.0.2-Lua5.1.5\scripts\Действия.lua:321: bad argument #1 to 'len' (string expected, got nil) stack traceback: [C]: in function 'len' ...\Electron-Hub v0.5.0.2-Lua5.1.5\scripts\Действия.lua:321: in function <...\Electron-Hub v0.5.0.2-Lua5.1.5\scripts\Действия.lua:315>