【メモ】irc.twitch.tvはNOTICEコマンドを受け付けない

タイトルの通り。忘れないうちに土曜日の作業メモ。

IRCサーバーと通信するbotは、次の慣習に従うことが強く推奨されている。

  • 受信したPRIVMSGコマンドに反応しないこと
  • PRIVMSGコマンドを送信しないこと
  • botから送信するテキストメッセージにはNOTICEコマンドを用いること

これによりbotのメッセージに別なbotが反応し、それにまた別なbotが...という事態の発生を予防できる。(※と言うことだと思うけどIRC初心者なのでアレ)

このことを踏まえて、例えばLimechat2のスクリプト処理系は、PRIVMSGコマンドの送信をグローバル関数として提供していない。マクロについても同様。ところがタイトルの通りtwitchtvのチャットサーバーであるirc.twitch.tvはNOTICEコマンドに対して421: ERR_UNKNOWNCOMMANDを返却する。そのためbotからのメッセージにもPRIVMSGコマンドを使用する必要がある。以下Limechat2のスクリプト例(JScript)。

/*
このスクリプトにより、ラダー勝敗予想betの開催と締切を行うチャット用コマンドopenladderbetを定義する。
自分自身から送信された"!openladderbet"メッセージに反応し、時間差をおいてModBotのコマンド2つとチャット参加者用案内メッセージを配信用チャンネル#lapack_rtsに送信する。
送信される2つのModBotコマンドとは"!bet open"と"!bet close"である。
*/

//CONSTANTS

//Raw commands strings: irc.twitch.tvはNOTICEコマンドを受け付けないため、PRIVMSGコマンドを送信する必要がある。そのために必要な生のIRCコマンド文字列を定義する。
PRIVMSG_OPENBET = "PRIVMSG #lapack_rts !bet open Lapack,Opponent";
PRIVMSG_ANNOUNCEMENT = "PRIVMSG #lapack_rts ラダーの勝敗予想betがオープンしました。betは120秒後に締め切られます。";
PRIVMSG_CLOSEBET = "PRIVMSG #lapack_rts !bet close";

//bet openからcloseまでの時間
timeToBet = 120000;

//ラダーbet開催コマンドのマッチング用パターン文字列
openladderbet = "/^!openladderbet$/"

//自分自身からの!openladderbetコマンドにのみ反応し、bet open, betの案内メッセージをチャンネルに送信して一定時間後にbet closeを行う。
function event::onChannelText(prefix, channel, text)
{
  if (prefix.nick == myNick) {
    if (text.match(openladderbet) ) {
      sendRaw(PRIVMSG_OPENBET);
      sendRaw(PRIVMSG_ANNOUNCEMENT);
      setTimeout(function(){sendRaw(PRIVMSG_CLOSEBET);}, timeToBet);
    }
   }
}

クラン戦 LiBts vs SoP 20141026 結果とVOD/Replayのまとめ

タイトルの通りです。
両クランの方々ありがとうございました。
視聴してくださった方、宣伝を手伝ってくれた方もありがとうございました。同時視聴で80人近い方に見ていただいていたのでこちらもやる気が上がりました。

Rosters

LiBts

  1. nanamin [Protoss]
  2. emi [Terran]
  3. Lapack [Protoss]
  4. kudryavka [Terran]
  5. EternityJung [Terran]

SoP

  1. NaTre [Zerg]
  2. MoMoTaro [Terran]
  3. azisai [Zerg]
  4. TokiSada [Protoss]
  5. CreamStew [Zerg]

Result/VODs

対戦選手名のところがVODへのリンクになっています。各行の:の右に書かれているのが勝者です。

Clan war

  1. nanamin(P) vs NaTre(Z): Natre
  2. emi(T) vs NaTre(Z): emi
  3. emi(T) vs MoMoTaro(T): MoMoTaro
  4. Lapack(P) vs MoMoTaro(T): Lapack
  5. Lapack(P) vs azisai(Z): Lapack
  6. Lapack(P) vs TokiSada(P): Lapack
  7. Lapack(P) vs CreamStew(Z): Lapack

Show matches

おまけ

Replay

https://drive.google.com/file/d/0B5a-_9WRq5GgVHNuUndKb3RFSGM/view

【ネタ】Barcode Renamer

概要

アカウント探偵の方や、サブアカの名前付けに迷っている方にご利用いただけるツールを作りました。

  • やっつけ
  • バーコードアカウントに分かりやすい名前をつけましょう。
  • 名前をつけたいバーコードアカウントのIDをテキストボックスに入力してRenameを押してください。するとその下に、人間に記憶しやすい普通の英単語が表示されます。
  • 同じIDには使用環境によらず同じ名前がつけられますので、ラダー仲間との情報交換にご利用いただけます。
    • 例: 「sparseは誰々のバーコードだよ」
  • 異なるIDにはほとんどの場合異なる名前がつけられますが、0.01%未満の確率で同じ名前が異なる2つのIDに割り当てられます。
  • アカウントを作りたいけれども適当な名前が思いつかない場合に、ランダムな文字列をRenameしてそれっぽい単語を出すのにも使えます。

ダウンロードと使い方

使用例

  • 判読・区別困難なbarcode IDに"sparse"という名前を割り当てている

展望と課題

  • ラダーの試合開始時点で相手のアカウント名を取得できればゲーム開始前にRenameされた名前との照合が可能となる。

LiBts vs SoP クラン戦

日時

  • 2014年10月26日(日) 
  • 19:00開始

Rosters

LiBts

  1. nanamin [Protoss]
  2. emi [Terran]
  3. Lapack [Protoss]
  4. kudryavka [Terran]
  5. EternityJung [Terran]

SoP

  1. NaTre [Zerg]
  2. MoMoTaro [Terran]
  3. azisai [Zerg]
  4. TokiSada [Protoss]
  5. CreamStew [Zerg]

Rules

  • Bo1の勝ち抜き方式
  • KR Server
  • マップ選択方式:TBD

Streams

http://www.twitch.tv/emi0412

LiBts vs SoP クラン戦

日時

  • 2014年10月26日(日) 
  • 19:00開始

Rosters

LiBts

  1. nanamin [Protoss]
  2. emi [Terran]
  3. Lapack [Protoss]
  4. kudryavka [Terran]
  5. EternityJung [Terran]

SoP

  1. NaTre [Zerg]
  2. MoMoTaro [Terran]
  3. azisai [Zerg]
  4. TokiSada [Protoss]
  5. CreamStew [Zerg]

Rules

  • Bo1の勝ち抜き方式
  • KR Server
  • マップ選択方式:TBD

Streams

http://www.twitch.tv/emi0412

LiBts クランマスター争奪戦ルール

KR鯖内でネタ内輪クランとして始まったのがLiBts(リトバス)です。このクランのキモはクランマスター争奪戦というKing of the Hillフォーマットの試合を行いその勝者であるクランマスターがクランデカールにおいて自分のエゴを発露するところにあります。しかし最近人数が増えてランクの幅がひろがったりクラン戦やっちゃったりとなぜかネタクランらしからざる感じになってきました。そこで争奪戦をより面白くするためにルールを決めようということになり、現マスター(4代目)のクドくんに依頼したところ快く引き受けてくれました。内容は以下の通りです。thx!

争奪戦ルール日本語版

  1. クランマスターの権限は争奪戦を通じて得ることができます。
  2. クランマスターはデカールを変えられる権限を持ちます。それ以外(クラン員をキックするなど)の行為できないことにします。
  3. クランマスター争奪戦は何時でも挑戦できます。ただ、ゲームが始まる前に’クランマスター争奪戦します’という宣言する必要があります。
  4. 争奪戦ルール。
    1. 上に書いてあるように、クランマスター争奪戦の申請は何時でも可能です。しかし、一度挑戦した人は1週間後にまた挑戦することができます。その人以外の人は争奪戦があった日の次の日から挑戦できます。(争奪戦が終わった後すぐに挑戦することを防ぐため。)
    2. ラダーのレベルに差がある場合、高い方にハンディーキャップを与えます。
      • 1段階の差の場合はハンディーキャップ無し。
      • 2段階の差の場合は80%ハンディーキャップ。
      • 3段階の差の場合は70&ハンディーキャップ
      • 4段階の差の場合は50%ハンディーキャップを与えることにします。
    3. 争奪戦はクランマスターが変わった後1週間は挑戦できません。1週後からは一人当たり週一回挑戦できます。
    4. 挑戦したい人が多い場合、挑戦者同士ゲームをして、勝った人がクランマスター争奪戦に挑戦できることにします。
    5. すべての争奪戦は、両方の時間の事情が合う時だけ成り立つことにします。(強制はできない。)
    6. イターニティくん(EternityJung)はGMと考えます。

争奪戦ルール韓国語版 - 쟁탈전 규칙 한국어 버전

  1. 클랜마스터의 권한은 쟁탈전을 통해서 얻는것이 가능합니다.
  2. 클랜마스터는 데칼을 바꿀 수 있는 권한을 가집니다. 그 이외 (클랜원을 강퇴하거나 하는등)의 행위는 불가합니다.
  3. 클랜마스터 쟁탈전은 언제라도 도전 가능합니다. 하지만, 게임이 시작되기 전에 '클랜마스터 쟁탈전 합니다' 라고 하는 선언을 할 필요가 있습니다.
  4. 쟁탈전 룰
    1. 위에 쓰여져 있는 대로, 클랜마스터 쟁탈전의 신청은 언제라도 가능합니다.하지만, 한번 도전한 사람은 1주 뒤에 다시 도전하는것이 가능합니다. 그 사람 이외의 사람은 쟁탈전이 있었던 날 다음날부터 도전 가능합니다.
    2. 래더의 레벨에 차가 있는 경우, 높은 쪽에 핸디캡을 부여합니다.
      • 1단계 차이가 날 경우 : 핸디캡 없음.
      • 2단계 차이가 날 경우 : 80%의 핸디캡.
      • 3단계 차이가 날 경우 : 70%의 핸디캡.
      • 4단계 차이가 날 경우 : 50%의 핸디캡을 부여하는것으로 합니다.
    3. 쟁탈전은 클랜마스터가 바뀐 후 1주간은 도전할 수 없습니다. 1주후 부터는 한명당 주 1회 도전 가능합니다.
    4. 도전 하고 싶은 사람이 많은 경우, 도전자끼리 게임을 하여, 이긴 사람이 클랜마스터 쟁탈전에 도전 가능합니다.
    5. 모든 쟁탈전은, 양방의 사정이 맞는 때에만 성립하는것으로 합니다. (강제로는 불가.)
    6. 이터니티군(EternityJung)은 GM으로 간주합니다.

追加提案

  • ハンディキャップ内容はクランマスターの一存で変更してよい
  • それ以外のルールはクランの過半数の賛成で変更できる

メンバー一覧

現在日本人4名韓国人3名がいます。

  • kudryavka
  • Lapack
  • emi
  • EternityJung
  • by8
  • Champagne
  • nanamin
  • Almace

歴代クランマスター

  1. Lapack (HpHrC)
  2. kudryavka (ここからLiBts)
  3. Lapack
  4. kudryavka
  5. Lapack(2014/10/24-)

Zest vs TaeJa IEM ShenZen Ro8 1st set Nimbus LE

自分用メモ、もうバレてもいいので公開するけど手直しはしない

You should be like this:

Benchmarks/Timetable

Gametime Build
6:10 Gas@Natural
7:00 Robo Bay
7:20 Twilight Council
7:40 Forge x2
8:00 Gate x2
45 Probes
9:15 Gate x3
9:30 Colo Range research start
10:00 Stalker x3
10:30 49 Probes
11:00 3rd Nexus start
Blink complete
12:00 Colo range research complete
12:15 Charge research start
12:30 3rd Nexus complete, 55 probes
13:00 Gate x4
14:00 2/2 upgrades complete, 5 colo, 152 supply
14:30 Charge complete
15:00 6 Colossus, 63 Probes, 178 supply

build order (detailed)

  • 21Nexus
  • Robo, 3Stalkers, no Forge at this time
  • ~43/44 2nd gas, 6:10ish
  • RoboBay@7:00, TC@7:20
  • 2 Forge@7:40
  • 2 more Gates@8:00
  • 45 probes @8:00
  • 4 observers before 1st colossi(boosted)
  • Blink(boost), 1/1 start(no boost)
  • 2nd colo queue -> 3 more Gates@9:15 -> 1 Zealot/1 Sentry
  • Colossus Range@9:30
  • 3 more Stalkers(total 6) @10:00
  • 3rd colo(a little idle time for robotics)
  • 49 probes@10:30,
    • which means slight probe cut after 44, but continue probe production when you can afford it. Chrono should be used for colossus production > blink research at this phase.
  • 2 more Stalkers(total 8)
  • 11:00 - Blink complete.
  • 3rd Nexus 11:00, before starting 2/2. 3rd collosi should be on the way.
  • Chronoboost 2/2 upgrades. Still you should boost collossus production, but its not top priority once you have 3 colossus. 2/2 upgrades takes so long time and will help the 15min'ish engagement (which is very often) so much. So your chronoboost priority should be 2/2 > Colossi.
  • If you lost 2 or more observers, remake them after 3 colossus.
  • 6 more Zealots.
  • 12:00 - Colossus range complete.
  • Start Charge upgrade @12:15
  • 12:30 - 3rd Nexus complete, 55 Probes.
  • 4 more Gates(total 10) @13:00
  • 5 Zealots, 1 Stalker(total 9) 13:30
  • 14:00 - 2/2 upgrades complete. 5 colossus, 152 supply
  • 3 more Stalkers(total 12).
  • start 3/3 @14:20 and chronoboost them.
  • 14:30 - Charge complete.
  • 15:00 - 6 Colossus, 63 Probes, 178 supply. No Templar Archives.