Вход  •  Регистрация

Скрипты для IRC-игр

IRC-игры — игры, как сделанные по мотивам телешоу, так и собственные, как правило с денежными призами.

Сообщение » 22.06.2010, 13:16

В этом топике можно обсуждать всё, что связано с игровыми скриптами: как их написать, как поправить ошибку, какие лайфхаки mIRC-скриптинга знаете и прочее.

Изготовление скриптов

Приму при наличии свободного времени заказы на изготовление скриптов для IRC-игр.

Как заказать:
1. Пишете мне в ЛС как можно более подробное видение вами игры: правила и саундпак. Ваша графика и набросок интерфейса — опциональны, но их наличие и продумывание вашей стороной удешевит разработку скрипта!
2. Я задаю уточняющие вопросы, делаю поправки, выставляю окончательный ценник, возможный срок изготовления.
3. Вы оплачиваете через Игротеку.
4. ??? (few years later)
5. PROFIT!!!!

Для ориентира: стоимость разработки скрипта базовой игры типа «Вопрос—ответ—интерактив» — от 300 ₽ и выше, в зависимости от комплексности правил.

Разумеется, оставляю за собой право отказать в изготовлении скриптов чужих авторских игр. Ну и также заказ скрипта не даёт никаких гарантий на попадание игры в одну из лиг — для этого необходимо проходить процедуру заценки игры администратором лиги.

Продажа скриптов

Летний период в IRC — время для обновлений, подготовок и новых творений отдыха, разгильдяйства и гедонизма. Но тут я решил немножко прибраться в своих кулуарах и навести некоторый порядок со скриптами. А ещё немножечко обогатиться с пользой на будущий сезон, возможно!

Потому я решил выставить на продажу некоторые из своих очень редко используемых скриптов.

«Elimination Game» — 200 ₽
«Абвгдежзиклмнопрстуфхцчшщэюяйка» — 100 ₽
«Всё в порядке» — 100 ₽
«Ставка» — 100 ₽
«Не то, что знаете вы» (старый) — 100 ₽


По 50 ₽:
«11» (старый)
«How much is enough?» (старый)
«MoneyMania» (старый, до ведения STO)
«Башня» (старый)
«Слабое звено» (старый)

Приписка «старый» означает, что код скрипта 7-летней давности вероятнее всего очень далёк от совершенства, хоть и должен работать. Ну а также, что часть функций в нём не до конца автоматизирована — что-то нужно выставлять ручками в процессе игры. Ну и то, что логотип занимает менее 10 строк.

Порядок приобретения и пользования:
1. Вы пишете мне в ЛС об интересующих вас скриптах.
2. Я проверяю их на базовую работоспособность, адаптирую к mIRC 7 и выставляю счёт для оплаты через Игротеку.
3. Если всё ок, высылаю набор файлов скрипта вместе с СП и инструкциями по пользованию товаром.
4. В случае, если скрипт не понравится, при наличии веской причины я возвращаю вам деньги (если вы приобретаете скрипт, то вы соглашаетесь, что игра будет выглядеть и проходить как в последнем её логе и причина «чот игра не зашла» в рассмотрение не берётся), вы же обязуетесь удалить скрипт, в противном случае см п. последний ниже.

— Скрипты распродаются в том состоянии, в котором они сохранились со времени их последнего использования на играх, следовательно, при правильной эксплуатации ими можно провести игру.
— Исправления и апгрейды в стоимость скрипта не входят, но могут быть оговорены отдельно с последующим возможным указанием стоимости доработки, либо отказом от оного.
— Приобретение скрипта не означает появление игры в любой из лиг. Вы лишь приобретаете скрипт и право на его личное использование, но не на официальные анонсы (неофициально, как и всегда, никто не запрещает).
— Приобретённый скрипт запрещается передавать полностью или частично другим пользователям. Если кому-то хочется стать обладателем одного из скриптов, больших богатств его покупка не стоит, но если всё-такие не можете позволить даже старый скрипт, стоит ли вообще браться за проведение игр?
— Ну и для сгущения сгущёнки, если кто-то посторонний будет замечен за использованием скрипта, он будет отстранён от участия во всех моих играх. Оно вам надо?




Дальнейшая инфа устарела (функции доступны в StM Framework):
Поскольку в разгаре межсезонье — время, когда каждый может потренироваться в ведении игр, мы решили сделать этот процесс чуть проще.

Предлагаю вашему вниманию небольшой универсальный скрипт для mIRC.

Он содержит:
  • Форму для интерактива
  • Алиасы выравнивания текста в рамках: по центру, по левому краю, по правому краю

Инсталляция

1. Разархивируйте скрипт в удобную для вас папку в каталоге mIRC.
2. Запустите mIRC
3. Нажмите ALT+R
4. Меню «Файл» — Загрузить (CTRL + L) и выберите файл скрипта.
5. Переключитесь на вкладку «Скрипты».
Если там открыт код другого скрипта, откройте файл через меню «Вид» — Ещё — gs_interactive.ini

Базовые инструкции там написаны.

Использование

Вы можете использовать скрипт как отдельной формой, так и встроив самостоятельно в свою игру.

Для отдельного использования введите в строке чата команду /inter, после чего должна появиться форма скрипта.
Изображение

1. При старте игры непременно обнулите данные кнопкой «Обнул.»
2. Введите верный ответ для интерактива: цифры 1, 2, 3 или 4. Если верный ответ имеет иной формат, то в этом случае ответ зрителей должен быть дословен (но без учёта регистра и цвета). Скрипт понимает разные форматы команд: !1, !2, а, б, a, b, c…
3. Если нужен таймер для ответа, введите интервал в секундах в левое текстовое поле.
4. Нажмите «Старт»
5. Если вы указали интервал для таймера, то интерактив остановится автоматически с выводом команды в активное окно. Иначе нажмите «Стоп».
6. Суммарные результаты интерактива можно вывести кнопкой «Вывести»

Какие-то нюансы использования вы можете узнать из кода скрипта (ровно как и внести изменения в его работу). Ну и встраивание его в свою игру также производится самостоятельно.




Алиасы выравнивания

Также в скрипт входят 4 алиаса, которые помогут вам делать красивые рамки для вопросов и ответов игры.

$leftal() — команда для выравнивания плашки по левому краю. Формат: $leftal(%строка, длина, код цвета текста, код цвета фона).
Например, $leftal(GameSHOWS, 15, 00, 01) — выведет слово на плашке в 15 символов белым текстом на чёрном фоне.

Аналогично используются и $central и $rightal.

НЕ ЗАБЫВАЙТЕ указывать коды цветов в двузначном формате: 00, 01, 02... во избежания слияния с текстом.
Примеры:
$leftal(GameSHOWS, 15, 01, 05)
$central(%khsm_question, 15, 01, 05)
$rightal(%khsm_question, 15, %font_color, %len)
Изображение

Алиасы будут работать и при использовании в иных скриптах, при условии, если этот будет оставаться загруженным.
Последний раз редактировалось StereoMaster 22.06.2010, 15:24, всего редактировалось 1 раз.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 22.06.2010, 13:58

Ещё небольшое дополнение по скрипту:

При возникновении проблемы с неправильным выравниванием по левому-правому краю, нужно добавить больше точек в строку соответствующего алиаса:
Код: Выделить всё
set %script_dot ..................





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

Не забудьте только обнулять данные до и после отбора.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 22.06.2010, 14:48

Изображение

Продолжая тему скриптинга, вот шаблон для создания панелек для саундпаков, которые позволят проще управлять музыкой в игре:

Код: Выделить всё
dialog название {
  title "Саундпак"
  size -1 -1 100 390
  button "intro.mp3", 2, 10 10 90 20,
  button "intro2.mp3", 3, 10 30 90 20,
  button "beginning.mp3", 4, 10 50 90 20,
  button "gong.mp3", 5, 10 70 90 20,
...
}

on 1:dialog:название:sclick:*: {
  msg $active 0play префикс_ $+ $did($did)
  splay префикс_ $+ $did($did)
}

alias название {
  dialog -mots название название
}



Название — название алиаса, который будет запускать панельку. Используется в команде. Запуск — командой /название (например, /tower).

Префикс — префикс у названий саундов в саундпаке.

size -1 -1 100 390 — 3-е и 4-е числа обозначают ширину и высоту панели соответственно.

button "intro.mp3", 2, 10 10 90 20, — название файла, уникальный номер, коорд. X, коорд Y, ширина, высота.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 22.06.2010, 15:31

StereoMaster
а скриптов для проведения конкретных игр нет? :evil:
Аватара пользователя
Qwerty
 
Репутация: +174/-43
Сообщения: 1136

Сообщение » 22.06.2010, 15:33

Qwerty пишет:а скриптов для проведения конкретных игр нет? :evil:
А лицо вареньем не помазать впридачу? :) Вам-то что проводить? Всё равно забанены. :P
Аватара пользователя
wwbm
Хранитель традиций
 
Репутация: +356/-8
Сообщения: 6939

Сообщение » 22.06.2010, 15:33

Qwerty пишет:а скриптов для проведения конкретных игр нет?

«На этой неделе в студенческом городке ожидаются перебои с горячей и холодной водой. Перебьются общежития NN 3, 5, 12.»
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 01.07.2010, 14:58

StereoMaster
Спасибо. На основе этих скриптов, кстати, можно создавать простенькие для проведения каких-то конкретных игр.

Вот сейчас, кстати, этим и занимаюсь. Возник вопрос:
Предположим, я создаю форму "TestTable", которая появляется по команде /table. На ней две кнопки: "Тест1" и "Тест2".
Код: Выделить всё
dialog TestTable {
  title "TestTable"
  size -1 -1 110 75
  button "Тест1", 1, 10 10 90 20,
  button "Тест2", 2, 10 40 90 20,
}

alias table {
  dialog -mots TestTable TestTable
}

Мне нужно, чтобы при нажатии на кнопки выводился определённый текст:
Код: Выделить всё
Кнопка 1:
0,2 Вы нажали кнопку 1 0,0 0play pv_gong.mp3
Кнопка 2:
0,2 Вы нажали кнопку 2 0,0 0play pv_gong.mp3

Как это сделать? Подскажите пожалуйста! :cry:
Аватара пользователя
Qwerty
 
Репутация: +174/-43
Сообщения: 1136

Сообщение » 01.07.2010, 15:04

Qwerty пишет:Как это сделать? Подскажите пожалуйста!

присмотритесь к 3-му посту. там же кусок:

Код: Выделить всё
on 1:dialog:название:sclick:*: {
  msg $active 0play префикс_ $+ $did($did)
  splay префикс_ $+ $did($did)
}


Условие на определение кнопки
Код: Выделить всё
if ($did == ... ) {

}


$did соответственно — ид нажатого элемента. Если взять его так $did(название, $did), то получим текст элемента. $did(название, $did).state — состояние для галочки или радиобокса.
название— ид самой формы. Если используется внутри on *:dialog:название…, то писать его не обязательно.

За этим делом крайне рекомендую мануал, там всё написано. По-русски.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 01.07.2010, 15:09

StereoMaster пишет:присмотритесь к 3-му посту. там же кусок:

Насчёт вызова события клика - это я увидел. Я просто не понял про if.
Аватара пользователя
Qwerty
 
Репутация: +174/-43
Сообщения: 1136

Сообщение » 01.07.2010, 16:01

StereoMaster
Спасибо и +1. А какую IRC-игру делаю, не скажу :D
Аватара пользователя
Qwerty
 
Репутация: +174/-43
Сообщения: 1136

Сообщение » 01.07.2010, 16:20

Qwerty пишет:А какую IRC-игру делаю, не скажу :D
Да больно надо. Всё равно все знают, что ничего вы не будете проводить.
Аватара пользователя
wwbm
Хранитель традиций
 
Репутация: +356/-8
Сообщения: 6939

Сообщение » 01.07.2010, 16:35

wwbm пишет:Да больно надо. Всё равно все знают, что ничего вы не будете проводить.
не-а. Будет. Не очень скоро, но будет.
Аватара пользователя
Qwerty
 
Репутация: +174/-43
Сообщения: 1136

Сообщение » 04.07.2010, 16:49

Уважаемый, StereoMaster.

У меня есть вопрос. А он заключается так:

Дан скрипт:

Код: Выделить всё
dialog stop {
  title "STOP"
  size -1 -1 340 70
  button "СТАРТ", 1, 10 10 100 40
}
alias stop {
  dialog -mots  stop  stop
}


Нужно нажать на кнопку СТАРТ. После этого текст кнопки должен измениться на СТОП.

Прочитавший мануал, я нашел такую вещь: /did -o name id [n] [text | filename].

Поставив известные данные, получаится так: /did -o stop 1 [n] [text | filename]. А дальше ничего не понимаю. Помоги
Аватара пользователя
STO
Осталось STO жизней
 
Репутация: +125/-4
Сообщения: 844

Сообщение » 04.07.2010, 17:47

STO пишет:Нужно нажать на кнопку СТАРТ. После этого текст кнопки должен измениться на СТОП.

А не проще ли сделать 2 кнопки?
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 04.07.2010, 17:51

StereoMaster пишет:
STO пишет:Нужно нажать на кнопку СТАРТ. После этого текст кнопки должен измениться на СТОП.

А не проще ли сделать 2 кнопки?


Тогда подобный вопрос:

Тот же скрипт(но с дополнениями):

Код: Выделить всё
dialog stop {
  title "STOP"
  size -1 -1 340 70
  button "СТАРТ", 1, 10 10 100 40
  text "СТАРТ", 2, 110 10 100 40
}
alias stop {
  dialog -mots  stop  stop
}


Дано изменить тескст текста(id = 2), нажав на кнопку(id = 1)
Аватара пользователя
STO
Осталось STO жизней
 
Репутация: +125/-4
Сообщения: 844

След.

Вернуться в IRC-игры и конкурсы