myDC.ru

Здравствуйте, гость ( Вход | Регистрация )

 
История благодарностей участнику dimajak. Спасибо сказали: 76
Дата поста: В теме: За сообщение: Спасибо сказали:
3.5.2012, 15:15 Интересные факты
Скрипт вставляет в главный чат интересные факты с сайта
Цитата(KCAHDEP @ 3.5.2012, 9:18) *
Спасибо за хороший скрипт, все работает ошибок не выводит сообщения не повторяются, только вот последнюю букву в предложении съедает постоянно shocked.gif
тырк

Это я символ точки "проглатывал", наверное big_smile.gif
Код
fd = string.sub(fd,1,string.len(fd)-2)
2 заменить на 1.
KCAHDEP
3.2.2012, 11:38 Мафия
игра Мафия для RusHub
Добавил возможность запретить голосовать за себя, проверьте.
CrazyKiller
26.1.2012, 0:39 Адаптация игры "Мафия" с PtokaX на RusHub
Мафия для RusHub
Тему можно закрыть.
Mangust
17.1.2012, 0:21 Мафия
игра Мафия для RusHub
Мафия


Название: mafia v.1.01 для RusHub (1.069 for PtokaX)
Версия RusHub: 2.3.8 и выше
Автор: dimajak

Известная психологическая игра "Мафия" для RusHub. Предварительное обсуждение началось давно.
При отсутствии какой-либо помощи, однозначных ответов по вопросам правил игры, их реализации и пр. придумал свои правила, простейшие, т.е. Мирные, Мафия и Комиссар. Процентное соотношение настраивается в скрипте.
Также настраиваются временные интервалы для регистрации в игру, для голосования.
Баллы за игру суммируются и сохраняются в файл. В данном варианте победившая команда получает по 10 баллов.
Надо будет пересмотреть, например, проголосовавший за "посадку" другого игрока получает 1 балл, оставшиеся в живых +5.

Придерживался правил мною же сформированных.
Использовал для изучения код плагина Мафия для чата Commfort.

Версия для RusHub адаптируется из скрипта для PtokaX

Скачать: v.1.0 - [attachment=6262:mafia_RH_1_0.lua]
v.1.01 - [attachment=6331:mafia_RH_1_01.lua]
Setuper, PomanoB, KT315, CrazyKiller, Saymon21, Mangust
8.12.2011, 2:29 Как сохранить файл в нужной мне кодировке?
Например, если исходные данные в UTF-8...
Была такая необходимость в PHP. Анализировалось в функции наличие в тексте символов с кодами. Из этого строилось в какой кодировке был текст. Проблема стара как само пришествие PHP в русскоязычный сектор. Ищите по запросу "PHP определение кодировки".
Алгоритм понятен даже для новичка.
MIKHAIL
25.11.2011, 1:10 Мафия
игра Мафия для Птохи API2
Цитата(Littlemuk @ 25.11.2011, 0:29) *
Сам пробовал не получилось, тот же юзер повторил этот глюк big_smile.gif
Пока не добрался до этого момента.
Цитата(Littlemuk @ 25.11.2011, 0:29) *
Главный бот рассылает приглашения, игрового отдельно не стал заводить, их и так много
Единственное, что приходит в голову:
Вариант 1. По умолчанию все юзеры хаба получают сообщения от игры Мафия. Создать файл с отказавшимися от сообщений от мафии, а рассылку сообщений отправлять по списку всех пользователей, исключая (искать юзеров из файла отписки), для этого надо добавить в меню пункт "Отказаться от сообщений Мафии". Но при этом увеличится нагрузка на хаб и увеличится объем памяти, выделяемый скрипту. :(
Вариант 2. По умолчанию все юзеры хаба не получают никаких сообщений об игре Мафия. Если кто захочет, то должен будет в менюшке выбрать "Получать сообщения от Мафия". Тогда список получающих оповещения сократится.

В обоих случаях в меню игры добавляются два пункта - "Получать сообщения от Мафии" и "Отказаться от сообщений Мафии".
В первом варианте - нагрузка на хаб, во втором - непопулярность игры. + В обоих вариантах - сложность реализации.

Если есть еще варианты - предлагайте.
Либо, как самый простой вариант - включить бота игры.
Цитата(Littlemuk @ 25.11.2011, 0:29) *
Во время регистрации, после сообщение о набранном необходимом минимуме, много народа подключалось и отключалось.

Могу вывести хаб на внешку, зайдешь сам потестишь )
Над этим и работаю сейчас, есть кое-какие задумки.
Добился -1 минуту. Думаю.
Littlemuk
19.11.2011, 0:36 Мафия
игра Мафия для Птохи API2
Исправил ошибку с сообщением о начале регистрации.
Обновил файл в шапке.

Цитата(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
21.10.2011, 20:12 Мафия
игра Мафия для Птохи API2
Цитата(PRIZrak @ 28.9.2011, 18:44) *
Версия скрипта: 1.063
Дико извиняюсь за столь долгое молчание - оповещение на новое сообщение почему-то не работает :(
хотя в опциях темы
Цитата
Вы уже подписаны на ответы в этой теме

Спасибо за обнаруженную ошибку.
Была ошибка в коде - перепутал операторы конкатенации строк, так как одновременно кодил несколько проектов (в разных языках операции сложения строк различаются :( )

Обновил шапку.
Текущая версия 1.0.64.

P.S.
Про игру в Мафию вчера поржал в этом ролике (8:30) big_smile.gif
PRIZrak
17.6.2011, 19:08 Мафия
игра Мафия для Птохи API2
the623, постараюсь проверить.
the623
20.5.2011, 23:17 Мафия
игра Мафия для Птохи API2
Тогда вместо строк
Код
            TmrMan.RemoveTimer(Tmr)
            Tmr = nil
заменить на
Код
            if Tmr ~= nil then
                TmrMan.RemoveTimer(Tmr)
                Tmr = nil
            end


Выложил в шапке версию 1.06. Исправил ошибки, выявленные внимательными пользователями этого сайта, за что им огромная благодарность, исправил найденные мной ошибки.

Есть смысл создавать MySQL версию?
demondroid
28.3.2011, 8:43 Мафия
игра Мафия для Птохи API2
Цитата(Littlemuk @ 26.3.2011, 19:37) *
Юзер регистрируется в игре, но выходит ДО ее начала, скрипт падает

В строках 667 и 671 заменить user на sNick.

Цитата(Littlemuk @ 26.3.2011, 19:37) *
И что надо прописать в скрипт, что бы комиссары получали сообщение об их статусе, а то методом научного тыка их ищем big_smile.gif Если можно, конечно.

после блока
Код
    -- комиссар
    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 игроков.
Littlemuk
25.3.2011, 20:24 Мафия
игра Мафия для Птохи API2
Цитата(Littlemuk @ 24.3.2011, 9:28) *
ночное голосование, не общение, а именно кто за кого проголосовал ночью!

Понял, исправлю. Как-то я это упустил. big_smile.gif

Исправил, перезалил. Если кому лень скачивать, замените в строке 392 or на and:
Код
if DayState ~= 4 or DayState ~= 3 then
заменить на
Код
if DayState ~= 4 and DayState ~= 3 then

Или сделать чтобы голоса мафов были видны всем мафам? Если так, то Мафам-трупам тоже сообщать?

И еще - в название файла добавлять номер версии и автора (если кто-нибудь захочет вести свою версию), например, mafia_dimajak_1.03.lua ?
Littlemuk
23.3.2011, 13:20 Мафия
игра Мафия для Птохи API2
Цитата(Артём @ 22.3.2011, 22:03) *
В 49 строке ошибка tProfiles нужно, а написано tProfiesl

Нет, все правильно - tProfiles

MARVELtm, передвинуть выше скрипт мафии скорей всего.

UPD : небольшие косметические правки. (v.1.02) + правка на событие отключения юзера во время регистрации (v.1.03).
MARVELtm
22.3.2011, 2:24 Мафия
игра Мафия для Птохи API2
Мафия

Название: mafia v.1.069
Версия API: API2
Автор: dimajak

Известная психологическая игра "Мафия" для Птохи, API2. Предварительное обсуждение началось давно.
При отсутствии какой-либо помощи, однозначных ответов по вопросам правил игры, их реализации и пр. придумал свои правила, простейшие, т.е. Мирные, Мафия и Комиссар. Процентное соотношение настраивается в скрипте.
Также настраиваются временные интервалы для регистрации в игру, для голосования.
Баллы за игру суммируются и сохраняются в файл. В данном варианте победившая команда получает по 10 баллов.
Надо будет пересмотреть, например, проголосовавший за "посадку" другого игрока получает 1 балл, оставшиеся в живых +5.

Придерживался правил мною же сформированных.
Использовал для изучения код плагина Мафия для чата Commfort.


Скачать:[attachment=6329:mafia.lua]
Nickolya, Invisible, PRIZrak, Al-j®, Артём, MARVELtm, PomanoB, Kingston, DimoS, Saymon21, NeirRon, Naum_Off, demondroid, npocToNIK, Marc, STIVAN, Litе, killserver, Littlemuk, Mustik, ImDim, Mishari, radix
16.2.2011, 22:52 Интересные факты
Скрипт вставляет в главный чат интересные факты с сайта
Интересные факты

Название: facts_api2
Версия API: API2
Автор: dimajak

Цитаты с сайта webdiscover.ru
Сваял, как говорится "на коленке". Это не реклама сайта, просто наткнулся на страничку, где выводились факты, через пару дней наткнулся на описание библиотеки Luasocket. Решил их подружить. big_smile.gif

Для работы скрипта необходимы библиотеки Luasocket.

Доступные настройки:
sBot - имя бота (Факты)
TmrTime - периодичность вывода фактов, в минутах (15)


Скачать:
[attachment=5598:facts_api2.lua]

Еще одна версия скрипта с поддержкой MySQL.
Теперь факты сохраняются в БД и повторы не выводятся. Дается 10 попыток запроса для неповторяющегося факта.

Для работы скрипта необходимы библиотеки DLL библиотека для работы с базой данных MySQL.

Скачать:[attachment=5599:facts_mysql_api2.lua]
Taulalan, Tsd, Serx, Shtazi, Saymon21, npocToNIK, WINS, Has21, striker, ProGeTTo, AfLc, MIKHAIL, Unique
31.1.2011, 18:40 Мафия
Осталось написать хэлп, навести красоту, ну и конечно тестирование... feel_good.gif
Nickolya, Naum_Off
20.11.2010, 2:25 User Info 1.0 (русская Версия)
API2 | Скрипт для просмотра информации о юзерах
Поработал немного над скриптом, да простит меня автор - изменил номер версии.
Сохраняет IP-адреса для данного ника.
Добавил в меню инфу по IP-адресу выбранного ника.
Выкладываю на ваш суд.
ВНИМАНИЕ:
Не совместим с файлом userinfo.tbl от предыдущей версии!
Либо измените имя файла в скрипте, либо удалите старый.
Nickolya, whuru, ProGeTTo, Music
12.11.2010, 0:21 Перезапуск скрипта раз в минуту
Код
Count = 0
AllCount = 5
Period = 60000

OnStartup = function()
    TmrMan.AddTimer(Period)
end

OnTimer = function(Id)
    Count = Count + 1
    Core.SendToAll("Я таймер, сработал "..Count.." раз")
    if Count >= AllCount then
        TmrMan.RemoveTimer(Id)
    end
end

как-то так
lankmv, мамин_парень
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
Дайте примеры, плиз!
Хотя... надо посмотреть бомбу и снежки.

Вот что не понятно пока - так это когда юзер, зарегистрировавшийся в игре отключается, причин много здесь может быть.
Хорошо если во время регистрации, а если после раздачи ролей или в процессе игры?
Что в этом случае делать? Ваши идеи?
Nickolya, Naum_Off
10.11.2010, 1:29 Конфликт IP-адресов
Бесполезно что-либо настраивать на хабе.
Настраивайте DHCP-сервер для раздачи айпи-адресов в своей локалке и добавляйте резервирование айпи для своего MAC-адреса.
Naum_Off
1.3.2010, 11:14 Мафия
Нашел описание классической мафии, думаю , что ее проще будет написать, а добавлять докторов, маньяков и пр. можно будет и позже.
Nickolya
26.1.2010, 13:17 Announcements
API2 | Объявления
Цитата(STRELOK @ 9.1.2010, 16:13) *
Сделал 2.0. версию. Изменения в первом посту.
немного доработал - отключил вывод "Последние 5 сообщений администрации" при отсутствии объявлений.
[attachment=3982:announcements.rar]
TiGRpp, доктор ливси
23.1.2010, 1:04 Мафия
Взято из описания бота для комфорта:
Цитата
Комментарий:
- Ход подрывнику теперь даётся каждую 2-ю ночь
- Закрытие приватов со статистикой
- Топ-лист теперь формируется при первом запросе и вдальнейшем не меняется до конца игры
- Ход подрывнику опционально
- Логирование теперь можно отключить
- Исправлен баг с топ-листом
Краткое описание игры "Мафия":

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

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

RSS Сейчас: 14.12.2017, 21:40