Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

MyDC.ru _ Запросы скриптов для PtokaX _ Мафия

Автор: Lesh™ 15.8.2009, 1:21

Может у кого-нить есть скрипт игры Мафия?

Автор: INVISIBLE 15.8.2009, 21:00

а разве есть такая игра для хабов?

Автор: Lesh™ 16.8.2009, 13:43

Цитата(INVISIBLE @ 15.8.2009, 21:00) *
а разве есть такая игра для хабов?

Может у кого нить и есть, знаю что для чата комфорт есть )))

Автор: Drakula 16.8.2009, 19:56

Цитата(Lesh™ @ 16.8.2009, 13:43) *
Может у кого нить и есть, знаю что для чата комфорт есть )))


Что CommFort, а что хаб+) даже если нету то написать его можно. Данная игра очень популярно в CommFort.

Автор: INVISIBLE 16.8.2009, 22:08

пусть сделают, я не против, сам гляну что это за игра big_smile.gif

Автор: DrakonSP 21.1.2010, 20:22

Даааа... Неплохо было бы...

Автор: Nickolya 21.1.2010, 21:09

Тогда расскажите как оно должно работать big_smile.gif

Автор: DrakonSP 22.1.2010, 19:31

http://mydc.ru/r/?http://maffia.ru/

Автор: Nickolya 22.1.2010, 20:04

Нет уж, увольте, так и я могу, что я для начала и сделал прежде чем писать сюда, не очень хочется разбираться и вникать.
Вы расскажите как оно по-вашему должно работать в ВИДЕ СКРИПТА и на ХАБЕ...
+ вашими словами мнение об игре, ее суть и правила, дерзайте! ;)
А уж потом и поговорим о реализации.

Автор: dimajak 23.1.2010, 1:04

Взято из описания бота для комфорта:

Цитата
Комментарий:
- Ход подрывнику теперь даётся каждую 2-ю ночь
- Закрытие приватов со статистикой
- Топ-лист теперь формируется при первом запросе и вдальнейшем не меняется до конца игры
- Ход подрывнику опционально
- Логирование теперь можно отключить
- Исправлен баг с топ-листом
Краткое описание игры "Мафия":

Мафия - крутейшая командная психологическая игра! Тугодумам просьба не беспокоиться - это не для вас.

1. Есть две команды: одна поменьше - мафиози (на слэнге - мафы), вторая - мирные граждане.
(Узнать кто вы, вы можете в открывшемся после начала привате)
2. Мафиози обычно "знакомятся", то есть знают членов своей команды.
3. Один из честных жителей - комиссар. Никто не знает кто он.
3,1 Один из честных жителей - доктор. Никто не знает кто он.Каждой ночью он пытается оживить кого-то
4. "Днём" все жители обсуждают, кто из них может быть бандитом. В конце обсуждения объявляется голосование за посадку в тюрьму. Самый подозрительный житель, набравший большее число голосов - отправляется за решётку (выходит из игры).
5. Наступает "ночь". В борьбу с бандитизмом вступает комиссар, он проверяет статус одного из жителей, точно выясняя его командную принадлежность. Если комиссар угадывает кто маф, то проверенный маф гибнет.
6. Каждую "ночь" мафы убивают (выводят из игры) одного из граждан, пытаясь вычислить комиссара.
7. "Утром" объявляются результаты суток. Про убитых и посаженных в тюрьму становится известно, кто они: мафия или честные жители (т.н. "вскрытие статуса").
8. Игра продолжается до полной победы одной из команд, когда соперники полностью или посажены или убиты.
9. Цель игры - выжить своей командой!

Автор: DrakonSP 14.2.2010, 7:19

Цитата
Если комиссар угадывает кто маф, то проверенный маф гибнет.

Ничего подобного! Просто комисар знает, что данный игрок мафиози.
Цитата
Каждую "ночь" мафы убивают (выводят из игры) одного из граждан, пытаясь вычислить комиссара.

Тоже не совсем верно! Мафы не вычислиют комиссара! Они убивают мирных жителей, к которым собственно комиссар тоже относиться

Попробую изложить разъяснив некоторые моменты.

Итак имеются команды - "Мафия" и "Мирные жители"
(в более сложном есть "Маньяк" - он тоже являеться отдельной командой, т.к. живёт своей жизнью)
Все игроки являються жителями города.

В состав команды "Мафия" самом простом варианте входят только "Мафиози" (в более сложном есть "Бос мафии")
В состав команды "Мирные жители" в самом простом варианте входят "Чесный гражданин", "Доктор" и "Комиссар"
(в более сложном есть "Сержант" - это помошник "Комиссара", т.е. при смерти "Комиссара" "Сержант" становится "Комиссаром")

Когда наступает "Ночь" за дело принимаються "Мафиози", "Доктор", "Комиссар" (и "Маньяк)
Цель "Мафии" убить всех "Мирных жителей" (и "Маньяка)
"Мафиози" знают друг друга.
"Мирные жители" - нет (но у "Комиссара" есть возможность выяснить истинное лицо игрока)
Так же "Комисса" должен пытаться выяснить круг "Чесных граждан" и "Доктора". (но при этом не палиться и ему должны поверить другие игроки. Потому что игра впринципе основана на доверии =)) которым многие пользуеться.)
От сюда и азарт в этой игре.
"Доктор" наносит визит к 1 из игроков и тем самым его лечит
"Комиссар наносит визит к 1 из игроков и тем самым вычисляет истинное лицо игрока
(Цель "Маньяка" так же убить всех "Мирных жителей" и "Мафиози")

Когда наступает День (Город просыпаеться)
Ведущий (Бот) сообщает, что "Мафиози" убили Васю (Чесный гражданин)
"Доктор" вылечил Сашу, и его здоровью ничего не угрожает.
"Комиссар" нанёс визит к одному из жителей, теперь он знает истинное лицо проверяемого.
("Маньяк" злостно убил Гришу (Чесный гражданин))
Соотвественно если "Мафиози" (или "Маньк") убивают к примеру Васю, и при этом "Доктор" его лечт, то Вася остаёться жив.
Если "Мафиози" или "Маньяк" пытаються убить Пашу, но Пашу проверил "Комиссар", то Паша остаётся жив, т.к "Комиссар" спугнул преступника, который хотел убить Пашу.
Затем все игроки голосуют против всех жителей города
(3) жителей считают что Пашу нужно казнить
(1) жителя счиют что Машу нужно казнить
Цель "Мафии" попытаться слить ещё одного "Мирного жителя" (или "Маньяка)
Цель "Мирных жителей" пытаються вычислить "Мафиози" (или "Маньяка")
"Мирные жители" не знают друг друга поэтому получаеться так что
"Мирный житель" может проголосовать против "Мирного жителя" и в итоге слить его

Вообщем как то так

Автор: BVSBVS 15.2.2010, 23:16

Это есть еще такая карточная игра)))) я думаю написать такую игру в просторах lua несложно но надо оч постаратся и терпения)

Автор: dimajak 1.3.2010, 11:14

Нашел описание http://mydc.ru/r/?http://mafiaonline.info/wiki/%D0%9A%D0%BB%D0%B0%D1%81%D1%81%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F_%D0%BC%D0%B0%D1%84%D0%B8%D1%8F, думаю , что ее проще будет написать, а добавлять докторов, маньяков и пр. можно будет и позже.

Автор: PRIZrak 6.3.2010, 15:16

C удавольствием скачаю данную игру (скрипт) big_smile.gif

Автор: Setuper 6.3.2010, 15:23

Проблема стоит во временных рамках.
Допустим ведущий-бот назначил роли. Наступила ночь. Мафия должна решить кого выносить. Но представьте ситуацию, когда мафия намеренно никого не выносит. Можно ждать до бесконечности.
Также, например, пользователь играет за мафию, а он свалил с хаба. Или же он свалил с хаба не по своей води, а, например, его дисконнектнуло.
Как учесть все эти варианты?

Автор: Tarantul13 16.3.2010, 0:13

http://mydc.ru/r/?http://jenya.co.cc/ru/forum/viewtopic.php?f=11&t=3735 незнаю поможет ли в продвижении дела,кароче там есть бот на комфорт может кто и сможет его разобрать и замутить под птоку)

Автор: polpolpol 3.4.2010, 7:46

Очень жду этот скрипт, пожалуйста киньте мне в ЛС когда да делаете!!!

Заранее спасибо!!!!

Автор: Артём 3.4.2010, 8:47

Цитата(polpolpol @ 3.4.2010, 7:46) *
пожалуйста киньте мне в ЛС когда да делаете!!!

big_smile1.gif насмешил, если его сделают то искать будешь его сам в Готовых скриптах big_smile.gif

Автор: Nickolya 4.4.2010, 21:37

Да, игра была бы замечательной, я бы написал, но не хочется разбираться как играть, т.к. опыта с игрой у меня нет. Если кто опишет КАК ПОШАГОВО В КАЖДОМ МОМЕНТЕ С НЬЮАНСАМИ ДЦ должен работать скрипт - вы его увидите.

polpolpol, а ты почаще заглядывай на форум big_smile.gif Ссылка http://mydc.ru/ipb.html?act=Search&CODE=getnew"> тебе поможет.

Автор: polpolpol 5.4.2010, 2:08

я хочу сам написать скрипт!!! я тут где та видел программирования скриптов!! не подскажите!! и у меня есть свой хаб, он цветет, заходите посмотрит что там не хватает я вам в ЛС отправлю!!!

Автор: Nickolya 5.4.2010, 8:33

Хаб ты можешь написать и у себя в подписи чтобы все видели. Как писать скрипты уже много раз обсуждалось - поищи на форуме, навык поиска должен развиваться в наш век информации. А скрипт тебе будет проще описать, если ты в теме, чем написать самому, гарантирую big_smile.gif

Автор: dimajak 11.11.2010, 21:58

2Модер - почистите тему от мусора, плиз.

Вот, немного покопался в правилах и накидал приблизительный алгоритм для простейшего варианта (мирные, комиссар и мафия):

1. Регистрация (набор пользователей). На регистрацию отводится 15 минут.
а) Если по прошествии времени не набрано минимальное количество игроков - добавляем еще 15 минут (точнее - не убиваем таймер)
б) Набран минимум или больше игроков - переход к п.2.
в) Набран максимум игроков - переход к п.2.
2. Раздача ролей (при регистрации все мирные, значит, рандомом назначаем мафов и потом одного комиссара (обращаем внимание на если назначаемый не мафиози)).
3. Ночь (первая). (мафы договариваются, т.е. разговоры мафов видны только им, остальные видят весь трёп кроме мафов). 2 минуты.
(Дальше все приваты отключаются)
4. День. Договариваются мирные, мафы тоже могут участвовать в этом, т.е. все видят чат всех. 2 минуты.
5. Голосование мирных. 2 минуты.
6. Итоги голосования.
a) выбран большинством голосов? переход к п.7.
б) одинаковое количество голосов - возврат к п.5.
7. Подведение итогов голосования (В тюрьму! big_smile.gif ). Открываем статус посаженного.
а) мафы все в тюрьме? Все - переход к п.13.
8. Ночь (мафы голосуют). 2 минуты.
9. Подведение итогов голосования мафов.
a) выбран всеми? Мирный убит. Открываем статус убитого.
a) кто-то не проголосовал или выбран не всеми? - промах.
10. Все мирные убиты? Да - переход к п.13.
11. Выбор комиссара. 2 минуты.
12. Комиссару становится известен статус выбранного игрока.
13. Переход к п.4.
13. Конец игры. Начисление очков. Вывод результатов игры.

Nickolya, достаточно такого описания? big_smile.gif

Повторюсь, что это простейший вариант игры, имхо, не надо сразу охватывать все навороты, добавить новых персонажей потом можно будет.
Я не знаю какое соотношение мафов к мирным должно быть, подскажите, имхо, 1 к 2 и у мирных еще 1 комиссар, хотя больше склоняюсь к варианту 1 к 3 и плюс комиссар.
Надеюсь, что кому-нибудь поможет этот алгоритм.
Для меня пока непонятно как реализовать отдельный чат для игры, пока есть два варианта:
а) жестокий - организовать в общем чате, т.е. всем запретить и разрешить только игрокам big_smile.gif
б) создать отдельный чат-рум (пока не знаю как это работает, буду рад любой помощи в виде кода и пояснениях).

Определился с чатом игры - запихал его в отдельный чат-рум, вроде работает. В планах - добавить еще один чат-рум для мафиози в первую ночь, либо фильтровать сообщения в общей комнате.
Определился с соотношением мирных к мафам - пока это 80% и 20% (возможно изменить ).
Но впал опять в ступор в реализации.

Код
ProcMir = 80 -- % мирных жителей от общего количества игроков
При регистрации все юзеры - мирные. При распределении ролей надо вычислить количество мафов (20%). После определения мафов назначаем среди мирных комиссара.
Расскажите поподробней про math.random ([m [, n]]).
Генерит случайное число от m до n ?
Для чего нужна math.randomseed (x) ?
Надо сперва math.randomseed (x), а потом math.random ([m [, n]]) ?
Чему равна x ?
Я пока не сталкивался в скриптах с ними и нет практики. big_smile.gif
Дайте примеры, плиз!
Хотя... надо посмотреть бомбу и снежки.

Вот что не понятно пока - так это когда юзер, зарегистрировавшийся в игре отключается, причин много здесь может быть.
Хорошо если во время регистрации, а если после раздачи ролей или в процессе игры?
Что в этом случае делать? Ваши идеи?

Автор: Naum_Off 20.11.2010, 21:00

Сотни и тысячи благодарных админов и пользователей памятник воздвигнут тому кто напишет эту игру). Думаю если бы несколько гуру-разрабов скриптов на этом форуме объединили усилия то легко сделали бы это. Так что удачи!

Автор: Maerz 1.1.2011, 11:56

Цитата
Расскажите поподробней про math.random ([m [, n]]).
Генерит случайное число от m до n ?
Для чего нужна math.randomseed (x) ?
Надо сперва math.randomseed (x), а потом math.random ([m [, n]]) ?
Чему равна x ?

это любое число которое ты выбершь сам и все зависит какой диапазон тебе понадобится
Пример
math.random (80,120) будет произвольный выбор числа из диапазона от 80 до 120
в случае когда math.random (60) будет произвольный выбор из диапазаона от 0 до 60

Автор: dimajak 15.1.2011, 2:17

Большой объем навалившейся работы отодвинул мои любительские порывы в созидании данного скрипта :(
Надеюсь, что скоро вернусь к написанию кода.

Цитата(Maerz @ 1.1.2011, 11:56) *
это любое число которое ты выбершь сам и все зависит какой диапазон тебе понадобится
Пример
math.random (80,120) будет произвольный выбор числа из диапазона от 80 до 120
в случае когда math.random (60) будет произвольный выбор из диапазаона от 0 до 60

Код
math.randomseed (x)
Для чего нужен?

Автор: Nickolya 15.1.2011, 2:57

Цитата
math.randomseed (x)

Инициализирует генератор псевдослучайных чисел параметром x ("seed"): каждый параметр порождает соответствующую (но одну и ту же) последовательность псевдослучайных чисел.


Т.е. устанавливает последовательность чисел в случайном генераторе, попробуй такой код, он будет всегда выводить одну последовательность:
Код
math.randomseed(1)
s = ''
for i = 1, 10 do
    s = s..math.random(1, 10)..' '
end
print(s)


Чтобы улучшить случайную последовательность (сделать ее более случайной), применяется math.randomseed от какого-то меняющегося числа, это может быть значения текущих os.time() или os.clock()

Автор: dimajak 27.1.2011, 0:30

1. Если мирные не смогли договориться несколько раз, тогда как?

Автор: dimajak 31.1.2011, 18:40

Осталось написать хэлп, навести красоту, ну и конечно тестирование... feel_good.gif

Автор: PRIZrak 3.2.2011, 23:00

Ждём-с окончательный вариант.

Автор: Naum_Off 7.2.2011, 22:57

Ждем с нетерпением. Мои пользаки к тестированию игры готовы).

Автор: Drakula 7.3.2011, 18:28

Аналагично, такая гуля на хаб бы непомешала бы=))

Автор: dimajak 8.3.2011, 2:05

Терпение, отловил более четырех багов, из-за которых следующая игра останавливалась на голосовании мирных. Первая игра проходила без эксцессов, а во второй или в третьей игра останавливалась без ошибок.
Баг исправил.

UPD
Первое внешнее (на хабе, в узком кругу, на живых юзерах) альфа-тестирование прошло на ура.
Из выявленных недостатков - требуется сочинить правила.
Кто владеет художественным русским языком, чтобы изложить кратко правила игры?

Автор: dimajak 22.3.2011, 2:30

Выложил http://mydc.ru/topic4764.html
Тестируйте.

2 Модеры - закройте тему.