|
IRC-игры — игры, как сделанные по мотивам телешоу, так и собственные, как правило с денежными призами.
Список форумов › Смотрим и играем › IRC-игры и конкурсы
» 30.10.2010, 03: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
Не знаю, но по-моему этот вариант менее громоздкий, чем тот, который Сергей выложил...
-

Виктор
- The People versus…
-
- Репутация: +106/-7
- Сообщения: 997
- Награды: 5
-
» 05.03.2012, 17:50
есть таймер, которй запускается, к примеру на 3 минуты. при написаниии команды, например /timerRemain, нужно чтобы вывелось оставшееся значение таймера
как это осуществить?
-

Ty4ka
- Ведущий
-
- Репутация: +5/-11
- Сообщения: 254
-
» 05.03.2012, 17:52
Ty4ka пишет:как это осуществить?
Осуществляется созданием 180 секундных таймеров, понижающих счётчик.
-

StereoMaster
- Lord Woo Fak Fak
-
- Репутация: +354/-2
- Сообщения: 5653
-
» 05.03.2012, 18:14
alias -l timerdecrease { %tttt = %tttt - 1 }
timer 180 1 timerdecrease
А вообще рекомендую давать имена переменных с префиксом нужной игры, чтоб меньше путаницы, проще находить и ансетить.
Ty4ka пишет:StM, я просто уже 500 сайтов переворошил, а НОРМАЛЬНОГО ничего не нашёл
Достаточно мануала с bestirc.ru.
-

StereoMaster
- Lord Woo Fak Fak
-
- Репутация: +354/-2
- Сообщения: 5653
-
» 06.03.2012, 15:35
Нашёл там функцию, для увеличения числа на 1: inc %x. Думаю, что это значит инкремент. А dec %x, случайно, не уменьшит число?
-

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

Ty4ka
- Ведущий
-
- Репутация: +5/-11
- Сообщения: 254
-
» 07.04.2012, 10:36
Массивы успешно заменяются токенами. Используйте пары токенов. У таймеров есть параметры, например, -m или -e, которые отсчитывают миллисекунды,
-

StereoMaster
- Lord Woo Fak Fak
-
- Репутация: +354/-2
- Сообщения: 5653
-
» 07.04.2012, 14: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
- Ведущий
-
- Репутация: +5/-11
- Сообщения: 254
-
» 07.04.2012, 14:29
Ty4ka пишет:Что за токены такие?
Дык на этом строится весь мирк-скриптинг. Изучайте матчасть в таком случае. Мануал на bestirc.ru.
Не представляю, как же вы тогда скрипт для хай стейкс делали, если не знаете про токены.
И да, в приведённом выше вами коде как раз всё на токенах и базируются — идентификаторы $numtok, $gettok и прочее.
-

StereoMaster
- Lord Woo Fak Fak
-
- Репутация: +354/-2
- Сообщения: 5653
-
Вернуться в IRC-игры и конкурсы
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей
|
|