#include "hspsock.as" #include "inictl.as" ;「フリーズ判定マシーン」ver1.20正式版 by カーリア(2001/1/16) ; ;ソースの改変・再配布を認めます。サンプルなどにご活用下さい。 ;このままの形でコンパイルし直して配布する場合は、その旨を明記の上 ;できれば配布元のページにリンクを貼るようにお願いします。 ;---------------- ;iniファイル読み込み ini_file "freeze.ini" ;iniファイル名の指定 ini_section "Window" ;iniセクション名[Window] ini_getint sizex,"Size_x" ;Size_x 縦の座標位置を指定 ini_getint sizey,"Size_y" ;Size_y 横の座標位置を指定 ini_section "Sakura" ;iniセクション名[Sakura] ini_getint nanika,"Nanika" ;Nanika SSTP使用の可否(1=不可) ;---------------- ;本体の表示 screen 0,300,90,0,sizex,sizey ;ウインドウ自体の表示位置設定 gsel 0,1 ;ウインドウID0をアクティブにする title "フリーズ判定マシーン v1.20" ;ウインドウID0のタイトルバーに表示 onexit *syu ;終了の場合はsyuへ飛ぶ ;---------------- ;乱数を発生させ、変数に代入 *main randomize ;乱数をバラバラにする rnd x,99 ;乱数0〜98を関数xに代入 x=x+1 ;数値を1〜99に変更 ;---------------- ;偽春菜たん向けメッセージ haruna1="\\t\\h\\s0冷凍確率は"+x+"パーセント。\\w8\\n" haruna2="\\w8\\u決まり文句か。" haruna3="\\w8\\h\\n\\n\\s4うん。" ;---------------- ;ランダムメッセージ if (x<=2)|(x=4) { comment="今日は快適にバリバリ働いてくれます♪" haruna2="\\w8\\uそんなこと言ったらいつまでも起動してるぞ。" haruna3="\\h\\n\\n\\w8\\s4だってカーリアがそう言えって\\w4…\\w4…" } : if x=3 { comment="昔の消費税はねぇ……" haruna2="\\w8\\uさくら、年はいくつや\\w4…\\w4…\\n\\n" haruna3="\\w8\\h\\n\\n0x0b歳。\\w8多分。\\u\\w4…\\w4…" } if x=5 { comment="消費税並み!!" haruna2="\\w8\\n\\n\\s2寒いギャグ!" haruna3="\\w8\\uそんなこと言ったら%0%1に何をされるか\\w4…\\w4…" } if (x>=6)&(x<=9) { comment="かなりサクサク動いてくれるでしょう。" haruna2="\\w8\\uそんなこと言ったらいつまでも起動してるぞ。" haruna3="\\w8\\h\\n\\n\\s4だってカーリアがそう言えって\\w4…\\w4…" } if (x>=10)&(x<=14) : comment="こんなもんですよ……。" if (x>=15)&(x<=24) : comment="普通ですね。Windows君の機嫌次第です。" if (x>=25)&(x<=34) : comment="こまめに再起動すれば問題なしでしょう。" if (x>=35)&(x<=43) : comment="ファイルの保存は定期的にやりましょう。" if x=44 : comment="44......危険な香りのする数字......" if (x>=45)&(x<=54) : comment="もしかして何か重大なエラーの前兆か?" if (x>=55)&(x<=64) : comment="デフラグやスキャンディスクも忘れずに。" if (x>=65)&(x<=69) : comment="かなりピンチ?無茶はしないでね。" if (x>=70)&(x<=76) : comment="危ないです。急なフリーズに気を付けて。" if x=77 : comment="77..これはこれでフリーズしないのでは?" if (x>=78)&(x<=84) : comment="ソフトの過剰な多重起動は危険です。" if (x>=85)&(x<=89) : comment="今日は何もせず終了した方が無難です。" if (x>=90)&(x<=94) { comment="スキャンディスクの「完全」も使いましょう。" haruna2="\\w8\\n\\n\\s1これで数時間は休める\\w4…\\w4…" haruna3="\\w8\\u自分の為に言ったのか。\\h\\w8\\n\\n\\s0うん。" } if (x>=95)&(x<=98) : comment="手遅れ。終了する前にフリーズします…。" if x=98 : comment="内部のホコリを掃除するといいかも。" if x=99 { comment="電源コードが抜けそうになってません?" haruna2="\\w8\\n\\n\\s1電源が抜けたらあたしは\\w4…\\w4…" haruna3="\\w8\\u何を想像してるのや?\\n\\n\\w8\\w8無視かい。" } ;---------------- ;表示 pos 0,0 ;座標(0.0)に合わせる cls 1 ;ウインドウID0を明るい灰色(1)でクリア font "MS ゴシック",42 mes "冷凍確率:"+x+"%" ;冷凍確率を表示 font "MS ゴシック",15 mes comment ;コメントを表示 pos 0,65 ;オブジェクトの位置を指定 objsize 100,25 ;ボタンの大きさを指定 button "もう1回!",*main ;再読込するボタンを作成 pos 100,65 objsize 100,25 button "バージョン",*ver ;バージョン情報のダイアログを表示 pos 200,65 objsize 66,25 button "何か",*niseharuna ;偽春菜用ボタンを作成 pos 266,65 objsize 34,25 button "終",*syu ;終了ボタンを作成 if nanika=1 : stop ;SSTP無効ならば停止 ;---------------- ;SSTP関連。ver1.20最大の冒険。 ;「あれ以外の何か」にSSTPスクリプトを送りつける *niseharuna sockopen 0,"127.0.0.1",11000 ;初期化して接続 if stat : nanika=1 : goto *fail ;失敗したら*failへ sockput "SEND SSTP/1.0\n",0 ;データを送信(SENDリクエスト) sockput "Sender: フリーズ判定マシーン\n",0 ;データを送信(Sender) sockput "Script: "+haruna1+comment+haruna2+haruna3+"\\e\n",0 ;データを送信(Script) sockput "\n",0 ;データを送信(終了を示す空行) if stat : nanika=1 : goto *fail ;失敗したら*failへ ;---------------- ;2秒以内に返るハズのステータスコードを受信(なんとか問題解消) sstp="" ;初期化その1(変数SSTPを空にする) str sstp ;初期化その2(文字列にする) repeat 100 ;ループ(100回) wait 20 ;待ち時間(20ミリ秒)……最高2000ミリ秒=2秒待つ sockcheck 0 ;受信チェック if stat=0 : break ;受信したらループを抜ける loop sockget sstp,64,0 ;データを受信、変数SSTPに代入 sockclose 0 ;ソケットを閉じる if sstp="SSTP/1.0 503 Service Unavailable\n\n" : goto *fail ;失敗or設定オフorブラックリスト入りの時は*failへ nanika=0 ;SSTPオッケーなことを確認 stop ;---------------- ;SSTP通信に失敗した場合の処置 *fail dialog "SSTP通信に失敗しました。設定をオフにします。\n設定をオンにしたいときは「何か」ボタンを押して下さい。\n\n※偽春菜をお持ちでない方は無視して下さい。",0,"SSTPについて" nanika=1 ;SSTPの設定をオフにする。 stop ;---------------- ;「バージョン情報」をクリックした時の表示 *ver dialog "フリーズ判定マシーン Ver 1.20\n(C)karia 2000,2001 All Rights Reserved.",0,"バージョン情報" stop ;---------------- ;「閉」をクリックした時の位置保存&終了処理 *syu wps_restore ;最小化の場合は元に戻る ginfo 2 ;ウインドウの大きさを取得 sizex=prmx sizey=prmy ini_file "freeze.ini" ini_section "Window" ini_setint sizex,"Size_x" ini_setint sizey,"Size_y" ini_section "Sakura" ;iniセクション名[Sakura] ini_setint nanika,"Nanika" ;SSTP設定を保存。 end ;プログラムを終了します。 ;---------------- ;Copyright 2001 karia All Rights Reserved.