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

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

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

Сообщение » 12.07.2010, 23:36

Изображение

Вот мы и достигли очередной ступени эволюции и теперь шаблон ирц-игр в вике стал ещё более умным и удобным (хотя не всё ему ещё подвластно).

Теперь вы можете беспрепятственно (акция доступна лишь летом!) анонсировать свои ирц-игры на главной. Для этого идём на страницу редактирования шаблона (или попросту в уголке жмём [Ред.]) и по примеру имеющихся там, вводим вот подобный шаблон:

Код: Выделить всё
{{Анонс_IRC_игр|
| название             = «Elimination Game»
| номер                =
| описание             = Хорошая игра, на 999 WMR!
| дата                 = 29.02.2010, 11:00
| логотип              = egsmall.gif
}}


Название*— просто текст или ссылка на страницу правил игры. Также доступны некоторые популярные сокращения — кxсм, eg, русрул и проч.
Номер— порядковый номер игры в сезоне.
Описание— небольшая характеристика игры и возможные отличия от предыдущих.
Дата*— любая дата в допустимом php формате. Время можно не указывать — по умолчанию 20:00.
Логотип — имя файла логотипа в GS-Wiki (напр., rrsmall.jpg)

* — обязательные поля

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

Всего 2 условия к использованию:
1. Шаблон должен вплотную прилегать ко всем соседним — никаких пустых строк между ними.
2. Пихайте шаблон согласно упорядоченным датам, в правильном хронологическом порядке.

Это пока единственное, чего не умеет делать шаблон сам. Ну и не стоит злоупотреблять своими возможностями и добавлять туда всякий мусор и незаслуживающие внимания игры (либо тестовые).
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 19.08.2010, 19:56

После сегодняшней игры «Цвет денег» я решил выложить сюда алиас сортировки игроков (не обязательно интерактива, можно использовать и в игре, если надо).

Что-то с тегом <code> не то, поэтому прикрепляю...
Вложения
alias sort.txt
Алиас сортировки игроков.
(1.2 КБ) Скачиваний: 220
Аватара пользователя
Сергей Бойцов
 
Репутация: +197/-26
Сообщения: 1363

Сообщение » 26.08.2010, 16:34

Сергей Бойцов пишет:После сегодняшней игры «Цвет денег» я решил выложить сюда алиас сортировки игроков (не обязательно интерактива, можно использовать и в игре, если надо).

Я уже сказал, что у мну есть и не в 1 экземпляре, всё равно подроб делать... Тем более результаты интерактива я говорю сразу после игры...
Виктор
iDeVice
 
Репутация: +238/-10
Сообщения: 2986

Сообщение » 30.10.2010, 02:53

Моя собственная версия, которой вот уже пользуюсь чуть больше года. Небольшие пояснения:
%players - переменная, в которой зранятся имена игроков (зрителей итд итп)
%score - переменная, в которой хранятся результаты
c - код символа в таблице ASCII, который разделяет токены
Код: Выделить всё
set %temp1 %players
set %temp2 %score
set %players
set %score $sorttok(%score, c, nr)
set %i 1
while (%i <= $numtok(%score, c)) {
  set %j 1
  while ($gettok(%temp2, %j, c) != $gettok(%score, %i, c)) inc %j
  set %players %players $+ $gettok(%temp1, %j, c) $+ $chr(c)
  set %temp2 $puttok(%temp2, 0, %j, c)
  inc %i
}
unset %temp1
unset %temp2


Не знаю, но по-моему этот вариант менее громоздкий, чем тот, который Сергей выложил...
Виктор
iDeVice
 
Репутация: +238/-10
Сообщения: 2986

Сообщение » 05.03.2012, 16:50

есть таймер, которй запускается, к примеру на 3 минуты.
при написаниии команды, например /timerRemain, нужно чтобы вывелось оставшееся значение таймера

как это осуществить?
Аватара пользователя
Ty4ka
 
Репутация: +29/-17
Сообщения: 503

Сообщение » 05.03.2012, 16:52

Ty4ka пишет:как это осуществить?

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

Сообщение » 05.03.2012, 17:00

ужас... я во всём этом ещё не разобрался
например, у меня есть переменная %tttt. я её уменьшаю так %tttt = %tttt - 1.
само по себе оно работает, а под таймером не идёт :(
как это сделать?

___________________________________________________________________
StM, я просто уже 500 сайтов переворошил, а НОРМАЛЬНОГО ничего не нашёл
Аватара пользователя
Ty4ka
 
Репутация: +29/-17
Сообщения: 503

Сообщение » 05.03.2012, 17:14

alias -l timerdecrease {
%tttt = %tttt - 1
}

timer 180 1 timerdecrease

А вообще рекомендую давать имена переменных с префиксом нужной игры, чтоб меньше путаницы, проще находить и ансетить.
Ty4ka пишет:StM, я просто уже 500 сайтов переворошил, а НОРМАЛЬНОГО ничего не нашёл

Достаточно мануала с bestirc.ru.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 06.03.2012, 14:35

Нашёл там функцию, для увеличения числа на 1: inc %x. Думаю, что это значит инкремент. А dec %x, случайно, не уменьшит число?
Аватара пользователя
Ty4ka
 
Репутация: +29/-17
Сообщения: 503

Сообщение » 10.03.2012, 20:07

Для всех любителей «полезных» скриптов: скрипт бота «Кто хочет стать миллионером?». Также докачайте этот архив, который распакуйте в папку happy_base в корне mIRC. Файлы с вопросами складывать в эту же папку. Используется 15 баз с вопросами (расширение .base), названия — 1, 2, 3, … 15 (соответственно, в каждой из баз вопросы того уровня, какой укзаан в названии файла). Формат:
Код: Выделить всё
В_вопросе_и_вариантах_пробелы_заменяются_знаком_нижнего_подчёркивания Отделить_вопрос От_вариантов_и_варианты друг_от_друга_пробелом Верный_ответ_выделяется знаком_плюс_слитно_после_верного_варианта+

Отдельная просьба не злоупотреблять ботом: когда он не нужен (а в большинстве случаев он не нужен) введите команду /set %happy_started 1, когда кто-то захотел поиграть — /set %happy_started 0.
Аватара пользователя
Demid
 
Репутация: +208/-10
Сообщения: 1564

Сообщение » 07.04.2012, 05:48

Небольшой вопрос:
- поддерживает ли мирк массивы с задаваемыми(!) номерами. Типа set %mass['42'] 0, или как-то иначе
- как высчитывать сотые доли секунд? Например, после команды старт ответ был дан через 2.27 секунд. Как это узнать? Я видел как команда timer повторы период действие работает только с целочисленными значениями
Аватара пользователя
Ty4ka
 
Репутация: +29/-17
Сообщения: 503

Сообщение » 07.04.2012, 09:36

Массивы успешно заменяются токенами. Используйте пары токенов.
У таймеров есть параметры, например, -m или -e, которые отсчитывают миллисекунды,
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 07.04.2012, 13:07

StereoMaster пишет:Массивы успешно заменяются токенами. Используйте пары токенов.
У таймеров есть параметры, например, -m или -e, которые отсчитывают миллисекунды,


1. timer -m 1 230 msg # Прошло 0.23 секунды. Так?
2. Что за токены такие? Мельком видел такой вариант, но это не то:
Код: Выделить всё
massive {
  if ($1 == $null) { halt }
  if  ($prop == num) { return $numtok(% [ $+ [ $1 ]  ],44) }
  elseif ($2 == $null) { halt }
  elseif ($prop == add) {
    if ($3 == -i) && ($4 isnum) {   set % [ $+ [ $1 ]  ]  $instok(% [ $+ [ $1 ]  ],$2,$4,44)  }
    else { set % [ $+ [ $1 ]  ]   $iif(% [ $+ [ $1 ] ],% [ $+ [ $1 ] ] $+ $chr(44),% [ $+ [ $1 ] ])  $+ $2  }
  }
  elseif ($prop == rem) { 
    if ($2 == -i) && ($3 isnum) && ($3 <= $numtok( % [ $+ [ $1 ]  ],44)) { set % [ $+ [ $1 ]  ] $deltok(% [ $+ [ $1 ]  ],$3,44) }   
    elseif ($2 == -o) {
      if ($matchtok(% [ $+ [ $1 ]  ],$3,0,44) >= 2) {  while ($matchtok(% [ $+ [ $1 ]  ],$3,0,44)) {   set % [ $+ [ $1 ]  ] $remtok(% [ $+ [ $1 ]  ],$3,44) } }
      else { set % [ $+ [ $1 ]  ] $remtok(% [ $+ [ $1 ]  ],$3,44) }
    }
    elseif ($left($2,2) == -p) && ($remove($2,-p) isnum) { set % [ $+ [ $1 ]  ] $remtok(% [ $+ [ $1 ]  ],$3,$remove($2,-p),44)  }
  }
  elseif ($prop == find) {
    if ($left($2,1) == -p) && ($remove($2,p) isnum) { return $findtok(% [ $+ [ $1 ]  ],$3,$remove($2,-p),44) }
    elseif ($2 == -o) { return $findtok(% [ $+ [ $1 ]  ],$3,0,44) }
    else { return $findtok(% [ $+ [ $1 ]  ],$2,1,44) }
  }
  elseif ($prop == repl) {
    if ($2 == -p) && ($3 isnum) { set % [ $+ [ $1 ]  ] $puttok(% [ $+ [ $1 ]  ],$4,$3,44) } 
    elseif ($2 == -o) { if ($matchtok(% [ $+ [ $1 ]  ],$3,0,44) >= 2) {  var %i 1 | while ($matchtok(% [ $+ [ $1 ]  ],$3,0,44)) {   set % [ $+ [ $1 ]  ] $reptok(% [ $+ [ $1 ]  ],$3,$4,1,44) | inc %i 1  } }   }
    else {  set % [ $+ [ $1 ]  ] $reptok(% [ $+ [ $1 ]  ],$2,$3,1,44) }
  }
  elseif ($prop == wild) {
    if ($2 == -l)  { var %i 4 | while ($0 >= %i) {  if ($3 == $gettok(% [ $+ [ $1 ]  ],$ [ $+ [ %i ] ],44)) {  inc %i 1 } | else {  return $false | halt }   } | return $true }
    else { var %i 3 | while ($0 >= %i) {  if ($gettok(% [ $+ [ $1 ]  ],$2,44) == $gettok(% [ $+ [ $1 ]  ],$ [ $+ [ %i ] ],44)) {  inc %i 1 } | else {  return $false | halt }   } | return $true }
  }
  else {
    if ($2 == -i) { return $findtok(% [ $+ [ $1 ]  ],$3,1,44) }
    else { return  $gettok(% [ $+ [ $1 ]  ],$2,44) }
  } 
}


$massive(name,N/-ipo[N],value,...value)
Примитивные массивы и работа с ними.

Примечание: массив создаёся переменной и выглядит как %value,value....value.

Свойства:

.num число элементов в массиве.

.add Добавить элемент в массив

-i - перезаписать N элемент массива

.rem Удалить элемент из массива

-i -удалить N элемент массива.

-o -Все значения равные value
и т.п.

Взможности: поиск, перезапись,возвращения элемента.


.find

.repl.

.wild
Аватара пользователя
Ty4ka
 
Репутация: +29/-17
Сообщения: 503

Сообщение » 07.04.2012, 13:29

Ty4ka пишет:Что за токены такие?

Дык на этом строится весь мирк-скриптинг. Изучайте матчасть в таком случае. Мануал на bestirc.ru.

Не представляю, как же вы тогда скрипт для хай стейкс делали, если не знаете про токены.

И да, в приведённом выше вами коде как раз всё на токенах и базируются — идентификаторы $numtok, $gettok и прочее.
Аватара пользователя
StereoMaster
O-|—<
 
Репутация: +564/-8
Сообщения: 7841

Сообщение » 07.04.2012, 13:42

База для скрипта лёгкая. Даже очень. А вот когда уже надо проверять введённое число на открытость его ранее, или на ловушку, вот тут уже это нужно. Просто привык работать с массивами, а тут...

Кстати, этот скрипт взял именно с bestirc [раздел Библиотека Алиасов]. И на том же bestirc почему-то поиск не выдал не одного мануала по токенам :(
Аватара пользователя
Ty4ka
 
Репутация: +29/-17
Сообщения: 503

Пред.След.

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