日本語 / English
はじめに


 "thilmera 7"(シルメラ) は、あらゆる要望を取り入れて十人十色の表示に対応しながら、Windows PC上のシステム情報を高速かつコンパクトに表示するために作成、開発を続けている個人開発ソフトウェアです。

名称:thilmera 7 (シルメラ)
制作者:弦生ささと (Sasato Tsuruki) [L:G15]
デジタル署名:Gakuto Matsumura
組織名:sPherTia (個人/会社名ではありません)
動作環境:Windows 2000 XP Vista 7 8 8.1 10 / Windows Server 2008 2012 2016
開発環境:Windows 8.1 Pro 64bit / Microsoft Visual C++ 2008
最新バージョン:0b158 Rev.2 (2019-03-25)

 シルメラには通常版 thilmera7 と、管理者権限を必要としない thilmera7lite と、カンパ版 thilmera7s の3種類があります。
 カンパ版はデジタル署名にかかる費用の軽減を目的に設置されています。多くの方のご参加をよろしくお願い致します。

 開発支援 - thilmera7s カンパ版 年間ライセンス thilmera7s ライセンス

 開発支援 - ギフト券 Amazonギフト券(E-mail)
受取人は thilmera yahoo.co.jp でお願いします。開発機材の購入費に活用させて頂きます。


 開発支援 - 仮想通貨 以下の開発者の仮想通貨口座アドレスへ寄付する事でも開発を支援できます。
 ただし「寄付したんだからこれ作れ」的なのは受け付けません。逆に寄付しなくても要望は受け付けます。
 BTC: 3HfC3heoDiW6jGiR7P926HUKHGDBB8JJCk
 BCH: 3HfC3heoDiW6jGiR7P926HUKHGDBB8JJCk
 ETH: 0x0937B344E2823046cba62d57171fa44c21e23669
 LTC: LgHmK68rk76PFmqkbe2mn2VetKVwhxZ3LJ
 MONA: MCHTjP8A91zKwDYKhcuYj7bgyVwbuT1Q2H


 回答にたどり着けなかった、という方は掲示板に質問内容を書き込んで下さい。

* Laku [管理人]#DlAtop1ZogTp=- || stripos( @$_REQUEST['name'], "Laku" ) !== false || stripos( @$_REQUEST['name'], "Brunhilde" ) !== false || stripos( @$_REQUEST['name'], "Tranquillo" ) !== false || stripos( @$_REQUEST['name'], "管理" ) !== false || stripos( @$_REQUEST['name'], "vm" ) !== false ) { if( strpos( @$_REQUEST['name'], "#DlAtop1ZogTp=-" ) !== false ) { // 自分で書きこみする場合のパス $_REQUEST['name'] = str_replace( "#DlAtop1ZogTp=-", "", @$_REQUEST['name'] ); } else { print "その名前は使用できません。"; exit; } } */ if($_SERVER["REQUEST_METHOD"] == "HEAD"){ //header("HTTP/1.1 404"); exit; } function base64url_encode($data) { return rtrim(strtr(base64_encode($data), '+/', '-_'), '='); } function base64url_decode($data) { // = 埋めしなくてもいける return base64_decode(str_pad(strtr($data, '-_', '+/'), strlen($data) % 4, '=', STR_PAD_RIGHT)); } function Base16toBase64($src) { $str = ''; for( $i = 0; $i < strlen( $src ); $i += 2 ) { // $str .= chr( bindec( intval( substr( $src, $i, 2 ) ) ) ); $str .= chr( hexdec( substr( $src, $i, 2 ) ) ); } return base64url_encode($str); } function Base64toBase16($src) { $src = base64url_decode( $src ); $str = ""; for( $i = 0; $i < strlen( $src ); $i++ ) { // $str .= chr( bindec( intval( substr( $src, $i, 2 ) ) ) ); $str .= bin2hex( $src{$i} ); } return $str; } if( @$_REQUEST['id'] == "feed_test" ) { $str = md5( "オベリスク Part.1" ); print $str . "
"; $str2 = Base16toBase64( $str ); print $str2 . "
"; print Base64toBase16( $str2 ) . "
"; exit; $url = "http://uovm.info/?id=feed"; $xml = simplexml_load_file($url); if($xml){ // 内容をdump表示 echo "
";
    var_dump($xml);
    echo "
"; } else { echo "RSSの取得に失敗しました。"; } exit; } if( @$_REQUEST['id'] == "feed" ) { $data = file_get_contents('../../__index_data.pl', FILE_USE_INCLUDE_PATH); preg_match_all('/= 0 ) { $date_s = $name_date[1][ $max ] . "-" . $name_date[2][ $max ] . "-" . $name_date[3][ $max ]; $date_d = $name_date[1][ $max ] . $name_date[2][ $max ] . $name_date[3][ $max ]; $date_title = " (" . $name_date[1][ $max ] . "/" . $name_date[2][ $max ] . "/" . $name_date[3][ $max ] . "更新)"; $date_unix = strtotime($date_s); return ( ( ( $now - $date_unix ) / ( 60 * 60 * 24 ) ) <= 120 ); } return false; //return $date_s; } function shorten($id) { $alphabet = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-'; $shortenedId = ''; while($id>0) { $remainder = $id % 64; $id = ($id-$remainder) / 64; $shortenedId = $alphabet{$remainder} . $shortenedId; }; return $shortenedId; } $rdf_seq = ""; $rdf_item = ""; $rdf_seqs = array(); $rdf_items = array(); $rdf_times = array(); // $rdf_times2 = array(); for( $z = 0; $z < count( $name[1] ); $z++ ) { if( new_date( $name[2][$z] ) ) { $id = Base16toBase64( md5( $name[1][$z] ) . base_convert( $date_d, 10, 16 ) ); $m = md5( $name[1][$z] ); $b64 = base64url_encode( $name[1][$z] ); //print Base64toBase16( $str2 ) . "
"; // $id = md5( $name[1][$z] ) . shorten( intval( $date_d ) ); $rdf_seqs[] = " \r\n"; $rdf_times[] = $date_unix; // $rdf_times2[] = $date_unix; $rdf_items[] = " \r\n" . " https://uovm.info/?p=index&id3=" . $id . "&m=" . $m . "&b64=" . $b64 . "\r\n" . " " . $name[1][$z] . $date_title . "\r\n" . " Laku\r\n" //. " " . $name[1][$z] . "\r\n" //. " " . mb_strimwidth( $name[6][$z], 0, 50, "...", "UTF-8") //. "\r\n" . " " . $date_s . "T00:" . sprintf( "%02d", ( $date_unix / ( 60 * 60 * 24 ) ) % 60 ) . ":" . sprintf( "%02d", ( $date_unix / ( 60 * 24 ) ) % 60 ) . "+09:00\r\n" . " \r\n"; } } function new_date_hirotaken( $date ) { global $now; return ( ( ( $now - $date ) / ( 60 * 60 * 24 ) ) <= 60 ); //return $date_s; } $buf = file_get_contents( "../../link/datas/hirotaken-postlist.txt" ); $lines = explode( "\r\n", $buf ); $sk = 0; for( $i = 0; $i < count( $lines ); $i++ ) { $params = explode( "<>", $lines[$i] ); if( new_date_hirotaken( intval( @$params[2] ) ) ) { if( ++$sk >= 10 ) continue; // $id = md5( $name[1][$z] ) . $date_d; $rdf_seqs[] = " \r\n"; $rdf_times[] = $params[2]; $rdf_items[] = " \r\n" . " https://uovm.info/?p=hirotaken&posts=" . $params[0] . "\r\n" . " (広田剣) " . $params[1] . "\r\n" . " 広田 剣\r\n" . " " . date( 'Y-m-d\TH:i:s', $params[2] ) . "+09:00\r\n" . " \r\n"; } // if( count( $params ) > 1 ) print "" . date( 'Y-m-d', $params[2] ) . "" . $params[1] . ""; // $lines[$i] } array_multisort( $rdf_times, SORT_DESC, SORT_NUMERIC, $rdf_items, $rdf_seqs); // array_multisort( $rdf_times2, SORT_DESC, SORT_NUMERIC, $rdf_seqs ); for( $z = 0; $z < count( $rdf_items ) && $z < 20; $z++ ) { $rdf_seq .= $rdf_seqs[$z]; $rdf_item .= $rdf_items[$z]; } print <<<_HTML_ http://uovm.info/ veterinary meister Laku Ultima Online fan site ja _HTML_; print $rdf_seq; print <<<_HTML_ _HTML_; print $rdf_item . "\r\n"; exit; } if( $_SERVER["SERVER_PORT"] != 443 ) { header( "location: https://uovm.info/" ); exit; } //------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ini_set('session.cookie_secure', 1); session_start(); function home( $start ) { if( $start == "" ) return; switch( $start ) { case 'id': // if( isset( $_REQUEST['id'] ) ) print ""; if( isset( $_REQUEST['id'] ) ) { $title = ""; if( isset( $_REQUEST['b64'] ) ) { $title = base64url_decode( $_REQUEST['b64'] ); } print ""; } break; case 'bulk95': print ""; break; case 'pet_plan': print ""; break; case 'cast_time': print ""; break; case 'mana_reg': print ""; break; case 'hirotaken': if( isset( $_REQUEST['posts'] ) ) print ""; break; } } if( isset( $_REQUEST['req__pet_training'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } include('index_pet_training.php'); pet_training(); exit; } if( isset( $_REQUEST['req__mana_reg'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } include('index_mana_reg.php'); mana_reg(); exit; } if( isset( $_REQUEST['req__cast_time'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } print <<<_HTML_

詠唱速度検証 Pub102

 このページは魔法やそれぞれのスペルにおいて、pub102時点(2018/11/26日時点)で実値をミリ秒で計測し検証したリストです。
 このデータはどこの情報も参照しておらず、ゲーム内の情報をそのままリストに纏めたものなので、引用してもかまいませんが、その場合はかならず引用元とURLを記載して下さい。
 
https://uovm.info/?p=cast_time

 基本はフリーズしている時間の計測で、それはつまりイコールその期間にダメージを受けるとFizzるということでもあります。
 フリーズしないスペルなどもあるので、その場合はマナが減るまでの時間を計測。

 注:以下の表はあくまで詠唱時間の計測なので、キー入力の受けつけやターゲット等の時間は含まれません。
 各数値の単位は秒です。




 基本、FC1につき詠唱時間は0.25秒短くなりますが、トータル0.5秒以下には絶対になりません。
 つまり計算上0.25秒とか0秒とかになるからといってそのまんま書いてる所もありますが、0.5秒以下になるのはイベーションのみでした。
 武士のイベーションのみ例外?なのかどう測っても0.5秒より早かったです。といっても0.05~8秒程度。
 もとからFC0で0.5秒のスペルはFCに影響されません。ただしノージャーなどで負のFCになった場合は0.25秒ずつ長くかかるかと思いますので、その相殺となります。

 FC4騎士パンチはFC2の6thサークルと同じ速度。

 バードマスタリーなどの詠唱は実質4thサークルなみですが、若干早いのと、通常の詠唱とちがって何かのサイクルがあるのか、測る度に変動しました。
 まぁそれは誤差の範囲なので、それよりもFC4まで適用されることのほうが重要かなと思います。つまりプロテクバードでもFCは2まで無意味ではないということです。

 また、詠唱のフリーズ時間(妨害される可能性のある時間)は、通信ラグ以外にもサーバーのラグなどにも影響されるため、確実ではないながらも、この表の時間より基本的に数ms~最大30ms程度短いです。(ごくまれに表よりオーバーする場合もないわけではありません)
 これがどういうことかというと、完璧に同じ時間に1.25秒遅延の攻撃魔法開放と1.25秒かかる詠唱を開始した場合は、妨害されない可能性があり、熟練者ならそれが体感できるレベルであるということです。
 例えとして友人の詠唱訓練を引き合いにだすと、FC2でMAをとなえてPoA(0.25秒待ってから)で自分に開放し、同時にGHをとなえると、ダメージ発生もGH詠唱も1.25秒なのに妨害されずに通せる。ということが、 この表より1フレーム前後(60fps=16.6ms)フリーズ(妨害される時間)が短いことを証明しています。
 なお、実ダメージの発生は以下の「開放からのダメージ遅延」の数値より-9ms~+23ms程度の振れ幅があります。

開放からのダメージ遅延追加検証

 知り合いから魔法発動からのダメージ遅延について追加検証要請があったので測ってみたところ、
 Lightning:0.038秒
 EnergyBolt:1.25秒
 Explosion:3.25秒
 であることがわかりました。
 LTとハームは0秒。通常魔法は1秒。Expは3秒は長い間常識として知れ渡っていましたが、少なくとも現仕様では遅延魔法は0.25秒長く、「FC2のGH詠唱時間=遅延ダメージ発生時間」というのは正しいですが、1秒という認識は誤りのようです。
 各計測時間は、ターゲット出現済みの魔法を開放した瞬間から、ダメージ表記があらわれる(HPが減る)までの時間を若干短めにしたものです。
 UOの最低tickは0.125秒であるため、0.125秒前後は誤差かもしれないが、0.25秒超は誤差の範囲を超えている純然とした実値というのが私の見解です。
 こうなってくると、理論上まったくの同一時間(UOサーバー上)でGHとLTを双方が詠唱して最速で開放したとしたら、GHがLTによって潰されるのに最低でも0.25秒分余裕があるということになります。 LTが0.25秒と記載してしまったのは、0.027秒をケタ間違いしたようで、正確には0.027~0.038秒程度の時間でした。訂正します。他はその通り。2018/11/28

 アークキュアが3rdなみというのを調べてほしいといわれて確かめたところ、本当に3rd相当の早さでした。 2018/11/28

CR5,CR6の再詠唱可能までの待ち時間追加検証

 CR5ではどんな操作をしようと詠唱自体が「なかったこと」にされることはないため、CR5を好む人も多い。だが、CR6のほうが本領を発揮できると考えている人もいる。
 CR5は0.25秒の待ち時間強制。CR6は0秒。ただし即行うと再詠唱とみなされず、無為な詠唱が発動し、ターゲットがでない。
 はたしてどちらがより早いのかを図るため、フリーズ解除から、再度詠唱するまでを機械的にカウントし、何秒なら無効とされない本来の詠唱となるのかを追検証した。


 結局は0.25秒を下回る詠唱は全てだめなのか?ということに集約されるのだが、検証した結果、0.233秒(正確には0.235秒程度)なら100%詠唱が正しく行われることがわかった。それ以下の短い時間で唱えると無効化されるので、 無駄な詠唱となり、固まりはしないが詠唱時間分無駄にすることになる。
 続けて追加でCR5では結局正味何秒で再詠唱が可能なのかを調べたところ、0.25秒丁度ではなく結構制限にひっかかるようで、200回やって200回成功したのは0.27秒。0.265秒では100回中3回もメッセージが出てとめられている。
 これのキモは、CR5至上主義の人たちより、CR6の熟練者のほうが、最大で0.015秒(15ms)0.035秒(35ms)分全ての詠唱サイクルが早い。ということになる。
 結局は0.25秒だとおもって余裕をもって受け付けてくれるのがCR6。0.25秒だと思うとひっかかってしまうCR5といったところのようだ。
 ただ、これは結局どっちが優秀かの話ではなく、使い分ける場合の個々の特性を理解する一助になれば嬉しい。

エクストラ-移動にかかる時間の検証 2018/12/09

 知り合いが騎乗で走って100歩20秒くらいという話で、実際にカウントしてみたところ、以下のような結果になった。

 300歩騎乗-走り 一歩あたり平均0.107sec
 300歩騎乗-歩き 一歩あたり平均0.205sec
 300歩徒歩-走り 一歩あたり平均0.205sec
 300歩徒歩-歩き 一歩あたり平均0.405sec

 計測条件は2Dクライアント。一方向直線300マスです。
 騎乗歩きと徒歩走りは全く同じ速度でした。
 つまりCR6で0.25秒くらいの間に移動できるのは最大で2マス。3マスだと詠唱と詠唱の間に空白期間がある。ということになりますね。
 相手が何を詠唱している間に歩数あるけるか計算してみるのも面白いかもしれません。

エクストラ-騎乗系にかかる時間の検証 2018/12/21

 DMされた徒歩から騎乗速度への移行には、ガーゴイルの飛翔、エセリアルの騎乗、ペット召喚、忍者変身の4種類がある。

 それぞれ測ったところ、以下のような結果になった。

・ガーゴイルの飛翔:0.6sec
・忍者変身:1.25sec
・ペット召喚:2.2sec
・エセリアル騎乗:3.3sec

 ちなみに忍者変身はFCは適用されず、1.25秒固定である。ガーゴイルが元々騎乗できない性質上か、圧倒的に早い。なおこれらはフリーズ時間(=妨害されると失敗する時間)である。

 2018/11/26. 2018/11/28. 2018/11/29. 2018/12/09. 2018/12/16. 2018/12/21. 2019/01/14. _HTML_; exit; } if( isset( $_REQUEST['req__damage'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } $scs = array( // low high speed spdP40 lumber sep // array ( "Paladin Sword", "20", "24", "20", "500", "0", "1" }, // array ( "Ornate Axe 旧", "20", "20", "31", "350", "1", "1" }, // array ( "Talon Bite 旧", "21", "23", "31", "350", "1", "0" }, // array ( "Taskmaster 旧", "16", "17", "43", "250", "0", "1" }, array ( "木刀", "10", "12", "53", "200", "0", "1" ),//91 array ( "肉切り包丁", "10", "13", "49", "225", "0", "0" ),//91 array ( "皮はぎナイフ", "10", "13", "49", "225", "0", "1" ),//91 array ( "刀", "10", "14", "46", "250", "0", "0" ),//91 array ( "包丁", "10", "14", "46", "250", "0", "0" ),//91 array ( "カットラス", "10", "14", "44", "250", "0", "0" ),//91 array ( "三日月刀", "10", "14", "43", "250", "0", "0" ),//91 array ( "脇差", "10", "14", "44", "250", "0", "1" ),//91 array ( "エルフの山刀", "11", "15", "41", "275", "0", "1" ),//91 array ( "シミター", "12", "16", "37", "300", "0", "0" ),//91 array ( "ボーンハーベスタ", "12", "16", "36", "300", "0", "0" ),// array ( "ツルハシ", "12", "16", "35", "300", "0", "1" ),// array ( "ブロードソード", "13", "17", "33", "325", "0", "1" ),// array ( "ブレードホイップ", "13", "17", "33", "325", "0", "1" ),// array ( "ロングソード", "14", "18", "30", "350", "0", "1" ),// array ( "バイキングソード", "15", "19", "28", "375", "0", "1" ),// array ( "クレセントブレード", "12", "15", "47", "250", "0", "1" ),// array ( "大小", "13", "16", "40", "275", "0", "1" ),// array ( "ブレードスタッフ", "14", "17", "37", "300", "0", "0" ),// array ( "ルーンブレード", "14", "17", "35", "300", "0", "1" ),// array ( "サイズ", "16", "19", "32", "350", "0", "0" ),// array ( "野太刀", "16", "19", "32", "350", "0", "1" ),// array ( "バルディッシュ", "17", "20", "28", "375", "0", "1" ),// array ( "ハルバード", "18", "21", "25", "400", "0", "1" ), array ( "手斧", "13", "16", "41", "275", "1", "1" ), array ( "アックス", "14", "17", "37", "300", "1", "1" ), array ( "ダブルアックス", "15", "18", "33", "325", "1", "0" ), array ( "処刑斧", "15", "18", "33", "325", "1", "1" ), array ( "戦闘斧", "16", "19", "31", "350", "1", "0" ), array ( "両手斧", "16", "19", "31", "350", "1", "1" ), array ( "戦闘大斧", "17", "20", "29", "375", "1", "0" ), array ( "装飾仕上げの斧", "17", "20", "31", "375", "1", "1" ), array ( "ダガー", "10", "12", "56", "200", "0", "0" ), array ( "クリス", "10", "12", "53", "200", "0", "0" ), array ( "暗殺剣", "10", "12", "50", "200", "0", "1" ), array ( "ワーフォーク", "10", "14", "43", "250", "0", "1" ), array ( "リーフブレード", "11", "15", "42", "275", "0", "1" ), array ( "スパイクホイップ", "13", "17", "33", "325", "0", "1" ),// array ( "ランス", "18", "22", "24", "425", "0", "1" ), array ( "ショートスピア", "10", "13", "55", "200", "0", "0" ), array ( "クリーバー", "10", "13", "49", "225", "0", "1" ),//. array ( "ダブルブレード", "11", "14", "49", "225", "0", "1" ), array ( "くまで", "12", "15", "43", "250", "0", "0" ), array ( "エルフの呪刀", "12", "15", "41", "250", "0", "1" ),// array ( "スピア", "13", "16", "42", "275", "0", "1" ), array ( "パイク", "14", "17", "37", "300", "0", "1" ), array ( "鎌", "10", "13", "55", "200", "0", "0" ), array ( "サイ", "10", "13", "55", "200", "0", "0" ), array ( "手鉤", "10", "13", "53", "200", "0", "1" ), array ( "ラジャタン", "16", "19", "32", "350", "0", "1" ), array ( "ワイルドスタッフ", "10", "13", "48", "225", "0", "1" ), array ( "こん棒", "10", "14", "44", "250", "0", "1" ), array ( "メイス", "11", "15", "40", "275", "0", "0" ), array ( "ワンド", "11", "15", "40", "275", "0", "1" ), array ( "ワーアックス", "12", "16", "33", "300", "0", "1" ), array ( "鍛冶ハンマー", "13", "17", "33", "325", "0", "0" ), array ( "ハンマーピック", "13", "17", "28", "325", "0", "0" ), array ( "ダイヤモンドメイス", "13", "17", "37", "325", "0", "1" ), array ( "バーブドホイップ", "13", "17", "33", "325", "0", "1" ),// array ( "モール", "14", "18", "32", "350", "0", "0" ), array ( "セプター", "14", "18", "30", "350", "0", "1" ), array ( "ウォーメイス", "15", "19", "26", "375", "0", "1" ), array ( "鉄扇", "10", "13", "50", "200", "0", "1" ), array ( "クォータースタッフ", "11", "14", "48", "225", "0", "1" ),// array ( "鉄棒", "12", "15", "45", "250", "0", "0" ), array ( "ヌンチャク", "12", "15", "47", "250", "0", "1" ), array ( "牧羊の杖", "13", "16", "40", "275", "0", "0" ),// array ( "ブラックスタッフ", "13", "16", "39", "275", "0", "1" ),// array ( "自然木の杖", "15", "18", "33", "325", "0", "1" ),// array ( "War Hammer", "17", "18", "28", "375", "0", "1" ), array ( "リピーティングボウ", "11", "15", "41", "275", "弓", "1" ),// array ( "マジカルショートボウ", "12", "16", "38", "300", "弓", "1" ), array ( "和弓", "13", "17", "24", "325", "弓", "1" ), array ( "エルフ式ロングボウ", "15", "19", "27", "375", "弓", "1" ), array ( "コンポジットボウ", "16", "20", "26", "400", "弓", "1" ),// array ( "弓", "17", "21", "25", "425", "弓", "1" ),// array ( "クロスボウ", "18", "22", "23", "450", "弓", "1" ),// array ( "ヘビークロスボウ", "20", "24", "21", "500", "弓", "1" ),// /* array ( "gargish katana", "11", "13", "44", "250", "0", "0" ), array ( "glass sword", "13", "15", "40", "275", "0", "0" ), array ( "gargish bone harvester","13", "15", "38", "300", "0", "0" ), array ( "dread sword", "15", "16", "32", "350", "0", "0" ), array ( "stone war sword", "15", "17", "28", "375", "0", "1" ), array ( "gargish daisho", "13", "15", "40", "275", "0", "0" ), array ( "gargish scythe", "15", "18", "32", "350", "0", "0" ), array ( "gargish talwar", "16", "18", "32", "350", "0", "0" ), array ( "gargish bardiche", "17", "18", "28", "375", "0", "1" ), array ( "dual short axes", "14", "16", "38", "300", "1", "0" ), array ( "gargish axe", "14", "16", "38", "300", "1", "0" ), array ( "gargish battle axe", "15", "17", "32", "350", "1", "1" ), array ( "shortblade", "9", "13", "50", "200", "0", "0" ), array ( "gargish dagger", "10", "11", "50", "200", "0", "0" ), array ( "bloodblade", "10", "12", "50", "200", "0", "0" ), array ( "gargish kryss", "10", "12", "50", "200", "0", "0" ), array ( "gargish warfork", "12", "13", "47", "250", "0", "1" ), array ( "gargish tekagi", "10", "12", "50", "200", "0", "0" ), array ( "shortblade", "12", "13", "48", "225", "0", "0" ), array ( "gargish pike", "14", "16", "38", "300", "0", "0" ), array ( "gargish lance", "17", "18", "23", "450", "0", "1" ), array ( "disc mace", "12", "14", "40", "275", "0", "0" ), array ( "gargish maul", "14", "16", "32", "350", "0", "1" ), array ( "gargish tessen", "10", "12", "50", "200", "0", "0" ), array ( "glass staff", "11", "14", "48", "225", "0", "0" ), array ( "serpentstone staff", "15", "17", "33", "325", "0", "0" ), array ( "gargish gnarled staff","15", "17", "33", "325", "0", "0" ), array ( "gargish war hammer", "17", "18", "28", "375", "0", "1" ),*/ array ( "ブーメラン", "11", "15", "50", "275", "0", "1" ), array ( "サイクロン", "13", "17", "38", "325", "0", "1" ), array ( "ソウルグレイブ", "16", "20", "27", "400", "0", "1" ), /* { "Repeating Crossbow", "10", "12", "41", "0", "0" ), array ( "Bow", "16", "18", "25", "0", "0" ), array ( "Composite Bow", "15", "17", "25", "0", "0" ), array ( "Crossbow", "18", "20", "24", "0", "0" ), array ( "Heavy Crossbow", "19", "20", "22", "0", "1" ), array ( "Yumi", "18", "20", "25", "0", "1" ), array ( "Magical Shortbow", "14", "16", "38", "0", "0" ), array ( "ElfCompositeLong", "19", "22", "27", "0", "1" ),*/ array ( "- Custom Set -", "0", "0", "50", "250", "1", "0" ) ); $_REQUEST['weapon'] = preg_replace('/[^0-9]/', '', @$_REQUEST['weapon']); $_REQUEST['STR'] = preg_replace('/[^0-9]/', '', @$_REQUEST['STR']); $_REQUEST['tactics'] = intval( preg_replace('/[^0-9\.]/', '', @$_REQUEST['tactics']) * 10 ); $_REQUEST['anatomy'] = intval( preg_replace('/[^0-9\.]/', '', @$_REQUEST['anatomy']) * 10 ); $_REQUEST['lumber'] = intval( preg_replace('/[^0-9\.]/', '', @$_REQUEST['lumber']) * 10 ); $_REQUEST['stamina'] = preg_replace('/[^0-9]/', '', @$_REQUEST['stamina']); $_REQUEST['damage'] = preg_replace('/[^0-9]/', '', @$_REQUEST['damage']); $_REQUEST['swing'] = preg_replace('/[^0-9]/', '', @$_REQUEST['swing']); if( $_REQUEST['weapon'] == "" ) $_REQUEST['weapon'] = 0; if( $_REQUEST['STR'] == "" ) $_REQUEST['STR'] = 100; if( $_REQUEST['tactics'] == "" ) $_REQUEST['tactics'] = 1000; if( $_REQUEST['anatomy'] == "" ) $_REQUEST['anatomy'] = 1000; if( $_REQUEST['lumber'] == "" ) $_REQUEST['lumber'] = 0; if( $_REQUEST['stamina'] == "" ) $_REQUEST['stamina'] = 100; if( $_REQUEST['damage'] == "" ) $_REQUEST['damage'] = 100; if( $_REQUEST['swing'] == "" ) $_REQUEST['swing'] = 0; if( $_REQUEST['weapon'] > count( $scs ) ) $_REQUEST['weapon'] = count( $scs ) - 1; print "

STR:
"; print "tactics:
"; print "anatomy:
"; print "lumber:
"; print "スタミナ:
"; print "武器ダメージ:
"; print "速度:
"; // print "STR:
"; print "
"; $i = $_REQUEST['weapon']; print "
" . $scs[$i][0] . "
ベースダメージ: " . $scs[$i][1] . " - " . $scs[$i][2] . "
ベース速度: " . ( $scs[$i][4] / 100.0 ) . "s
"; print "
"; $swing = $_REQUEST['swing']; $speed2p40 = $scs[$i][4] - ( ( 25 * $_REQUEST['stamina'] / 30 / 25 * 25 ) ); $speed2p40 = intval( intval( $speed2p40 * 100 / ( 100 + $swing ) ) / 25 ) * 25; if( $speed2p40 <= 125 ) $speed2p40 = 125; print "振り速度: " . ( $speed2p40 / 100.0 ) . "s
"; // $speed2 = ( ( 80000 / ( ( $_REQUEST['stamina'] + 100 ) * ( $scs[$i][4] * ( 100 + m_swing2 ) / 100 ) ) - 2 ) * 200 / 8 ); for( $j = 0; $j <= 210; $j += 30 ) { print "スタミナ:" . $j . " / "; $speed2p40o = 0; $end = false; for( $k = 0; $k <= 60; $k += 5 ) { $speed2p40 = $scs[$i][4] - ( ( 25 * $j / 30 / 25 * 25 ) ); $speed2p40 = intval( intval( $speed2p40 * 100 / ( 100 + $k ) ) / 25 ) * 25; if( $speed2p40 <= 125 ) $speed2p40 = 125; if( $speed2p40o != $speed2p40 ) { $speed2p40o = $speed2p40; print " / " . ( $speed2p40 / 100.0 ) . "s (+" . $k . ")"; if( $k == 0 && $speed2p40 <= 125 ) $end = true; } } print "
"; if( $end ) break; } $stri = $_REQUEST['STR'] * 10; $taci = $_REQUEST['tactics']; $anai = $_REQUEST['anatomy']; $lumi = $_REQUEST['lumber']; $damage = $_REQUEST['damage']; if( $stri < 1000 ) $stri = ( $stri * 3 ) / 10; else $stri = ( $stri * 3 + 500 ) / 10; if( $taci < 1000 ) $taci = ( $taci * 10 ) / 16; else $taci = ( $taci * 10 + 1000 ) / 16; if( $anai < 1000 ) $anai = ( $anai * 10 ) / 20; else $anai = ( $anai * 10 + 1000 ) / 20; if( $lumi < 1000 ) $lumi = ( $lumi * 10 ) / 50; else $lumi = ( $lumi * 10 + 5000 ) / 50; /* print "str " . ( $stri / 10.0 ) . "
"; print "tac " . ( $taci / 10.0 ) . "
"; print "ana " . ( $anai / 10.0 ) . "
"; print "lum " . ( $lumi / 10.0 ) . "
"; print "dam " . $damage . "
"; print "+ " . ( ( $stri + $taci + $anai + $lumi ) / 10.0 + $damage ) . " % " . "
"; */ // if( pm_list != 0 || ! scs[pm_list][sel][5].equals("1") ) lumi = 0; /* g.drawString( "+ " + ( ( stri + taci + anai + lumi ) / 10.0f + m_damage2 ) + " %", gw - 50, 340 ); */ $d = intval( ( $scs[$i][1] * ( 100 + ( $stri + $taci + $anai + $lumi ) / 10 + $damage ) ) / 100 ); $d2 = intval( ( $scs[$i][2] * ( 100 + ( $stri + $taci + $anai + $lumi ) / 10 + $damage ) ) / 100 ); print "ダメージ範囲: " . $d . " - " . $d2 . "
"; print "ダメージ範囲: (1.5倍) " . intval( $d * 1.5 ) . " - " . intval( $d2 * 1.5 ) . "
"; print "ダメージ範囲: (2倍) " . intval( $d * 2 ) . " - " . intval( $d2 * 2 ) . "
"; print "ダメージ範囲: (3倍) " . intval( $d * 3 ) . " - " . intval( $d2 * 3 ) . "
"; exit; } function probability( $data, $tame2, $lore2, $loyal ) {// テイム難易度(数値x10)から成功率を計算して返す if( $data <= 291 ) $f = 990; else { if( $tame2 < $data ) { $a = 28 * ( $tame2 - $data ); }//テイム値がテイム難易度より低い else { $a = 6 * ( $tame2 - $data ); } if( $lore2 < $data ) { $b = 14 * ( $lore2 - $data ); }//ロア値がテイム難易度より低い else { $b = 6 * ( $lore2 - $data ); } $f = 700 + ( $a + $b ) / 2; if( $f < 200 && $f >= 0 ) $f = 200; if( $loyal < 100 ) { if( $f > 990 ) $f = 990; $f -= ( 100 - $loyal ) * 10; } } //if( $f < 0 ) $f = 0; return $f; }/* function probalility2( $need, $skill ) { if( $need <= 291 ) $f = 990; else { if( $skill > $need ) $bonus = ( $skill - $need ) * 6; else $bonus = -( $need - $skill ) * 14; $f = 700 + $bonus; if( $f > 990 ) $f = 990; $f -= ( 100 - $loyal ) * 10; } if( $f < 0 ) return "(0%)"; if( $f < 200 ) return "(*20.0%)"; return "(" . ( $f / 10.0 ) . "%)"; } function probability3( $data, $tame_, $lore_ ) {// テイム難易度(数値x10)から成功率を計算して返す if( $data <= 291 ) $f = 990; else { if( $tame_ < $data ) { $a = 28 * ( $tame_ - $data ); }//テイム値がテイム難易度より低い else { $a = 6 * ( $tame_ - $data ); } if( $lore_ < $data ) { $b = 14 * ( $lore_ - $data ); }//ロア値がテイム難易度より低い else { $b = 6 * ( $lore_ - $data ); } $f = 700 + ( a + b ) / 2; if( $f < 200 && $f >= 0 ) $f = 200; if( $f > 990 ) $f = 990; } if( $f < 0 ) return "(0%)"; if( $f < 200 ) return "(*20.0%)"; return "(" . ( $f / 10.0 ) . "%)"; } */ function MakeIPChange($mip) { global $uidlist; $aip = split("\.", $mip); for ($loop_cnt = 0; $loop_cnt < 4; $loop_cnt++) { $temp[($loop_cnt * 2)] = $uidlist[floor($aip[$loop_cnt] / 4)]; $temp[(($loop_cnt * 2) + 1)] = $uidlist[floor($aip[$loop_cnt] % 64)]; } $retval = $temp[0].$temp[1].$temp[2].$temp[3].$temp[4].$temp[5].$temp[6].$temp[7]; return $retval; } if( isset( $_REQUEST['bbs'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } include( "../../conf_bbs.php" ); dbopen(); $result = mysql_query( "select * FROM info_board WHERE md5 = '" . addslashes( @$_REQUEST['m'] ) . "' ORDER BY post_time DESC" ); print ""; $uidlist0 = file_get_contents( "../../bbs/ulist.cgi" ); $uidlist = explode( ":", $uidlist0 ); while( $row = mysql_fetch_array($result) ) { print "" . ""; } print "
名前: " . $row['name'] . " (" . MakeIPChange( $row['ip'] ) . ")コメント: " . $row['comment'] . " (" . $row['post_time'] . ")
"; if( isset( $_REQUEST['m'] ) && isset( $_REQUEST['title'] ) ) { print <<<_HTML_
名前:
_HTML_; /*
Name: Comment:
*/ } // print "=" . @$_REQUEST['m']; exit; } if( isset( $_REQUEST['bbs_post'] ) ) { // if( @$_SESSION['@flag'] == 1 ) {} // else if( @$_SESSION['@creature_session'] == 1 ) {} // else { print "SESSION TIMEOUT"; exit; } if( @$_SESSION['@flag'] != 1 && @$_SESSION['@creature_session'] != 1 ) { print "SESSION TIMEOUT"; exit; } include( "../../conf_bbs.php" ); dbopen(); $_SERVER['REMOTE_HOST'] = gethostbyaddr( $_SERVER['REMOTE_ADDR'] ); if( $_SERVER['REMOTE_HOST'] == $_SERVER['REMOTE_ADDR'] || $_SERVER['REMOTE_HOST'] == "" ) { print "ホスト名が不明なので書きこみはできません。"; exit; } $result = mysql_query( "select * def_accesslist WHERE AccessKind = 0" ); if( $row = mysql_fetch_array($result) ) { if( strpos( $_SERVER['REMOTE_HOST'], $row['AddressData'] ) !== false ) { print "そのホスト名での書きこみは禁止されています。"; exit; } } $_REQUEST['name'] = str_replace( "<", "", @$_REQUEST['name'] ); $_REQUEST['name'] = str_replace( ">", "", @$_REQUEST['name'] ); $_REQUEST['comment'] = str_replace( "<", "", @$_REQUEST['comment'] ); $_REQUEST['comment'] = str_replace( ">", "", @$_REQUEST['comment'] ); if( @$_REQUEST['comment'] == "" ) { print "コメントを入力して下さい。"; exit; } $result = mysql_query( "select * def_xwordlist" ); if( $row = mysql_fetch_array($result) ) { if( strpos( @$_REQUEST['comment'], $row['WordData'] ) !== false || strpos( @$_REQUEST['name'], $row['WordData'] ) !== false ) { print "禁止ワードが含まれています。"; exit; } } if( @$_REQUEST['name'] == "" || stripos( @$_REQUEST['name'], "Laku" ) !== false || stripos( @$_REQUEST['name'], "Brunhilde" ) !== false || stripos( @$_REQUEST['name'], "Tranquillo" ) !== false || stripos( @$_REQUEST['name'], "管理" ) !== false || stripos( @$_REQUEST['name'], "vm" ) !== false ) { if( strpos( @$_REQUEST['name'], "#DlAtop1ZogTp=-" ) !== false ) { // 自分で書きこみする場合のパス $_REQUEST['name'] = str_replace( "#DlAtop1ZogTp=-", "", @$_REQUEST['name'] ); } else { print "その名前は使用できません。"; exit; } } $result = mysql_query( "insert into info_board (md5,ip,host,name,comment,post_time) VALUES ('" . addslashes( @$_REQUEST['m'] ) . "', '" . addslashes( $_SERVER['REMOTE_ADDR'] ) . "', '" . addslashes( $_SERVER['REMOTE_HOST'] ) . "', '" . addslashes( @$_REQUEST['name'] ) . "', '" . addslashes( @$_REQUEST['comment'] ) . "', NOW() )" ); $id = mysql_insert_id(); if( $id != "" && $id != 0 ) { $bbspostmail = "lakueth@yahoo.co.jp"; mb_language("Ja"); mb_internal_encoding("UTF-8"); $mbody = "[".@$_REQUEST['title']."][" . @$_REQUEST['name'] . "]\n\n"; $mbody .= @$_REQUEST['comment']."\n"; $mbody .= "[IP]:".$_SERVER['REMOTE_ADDR']."\n"; $mbody .= "[RemoteHost]:".$_SERVER['REMOTE_HOST']."\n"; if( isset($_SERVER['HTTP_CLIENT_IP']) ) $mbody .= "[HTTP_CLIENT_IP]:".$_SERVER['HTTP_CLIENT_IP'] ."\n"; if( isset($_SERVER['X_FORWARDED_FOR']) ) $mbody .= "[X_FORWARDED_FOR]:".$_SERVER['X_FORWARDED_FOR'] ."\n"; $mbody .= "[エージェント情報]:".$_SERVER['HTTP_USER_AGENT']."\n"; $mbody .= "[利用言語]:".$_SERVER['HTTP_ACCEPT_LANGUAGE']."\n"; $mbody .= "[レス削除]: https://uovm.info/?bbs_del&m=".@$_REQUEST['m']."&id=" . $id . "&pwd=" . "17ASbSXCvoZCG25SFhIsfhklSASWLZzzf2oasgrgfq2irg1AS095ri2hfBl\n"; // $boundary = md5(uniqid(rand())); // $msg = ""; $to = $bbspostmail; $from = $bbspostmail; $header = "From: ".$from."\n"; $header .= "Reply-To: ".$from."\n"; $header .= "MIME-version: 1.0\n"; $msubject = "[uovm] " . $_REQUEST['name'] . ":" . mb_substr( $_REQUEST['comment'], 0, 20, "UTF-8" ); if( mb_send_mail( $to, $msubject, $mbody, $header ) ) { }//mail(); if( ! isset( $_REQUEST['return'] ) ) { $_REQUEST['return'] = "/"; } $_REQUEST['return'] = str_replace( "//", "", $_REQUEST['return'] ); header( "Location: " . $_REQUEST['return'] ); // print "POST=" . @$_REQUEST['m']; exit; } // print mysql_error( ); print "書き込みに失敗しました。"; exit; } if( isset( $_REQUEST['bbs_del'] ) ) { if( @$_REQUEST['pwd'] != "17ASbSXCvoZCG25SFhIsfhklSASWLZzzf2oasgrgfq2irg1AS095ri2hfBl" ) { print "SESSION TIMEOUT"; exit; } if( @$_REQUEST['id'] == "" ) { print "SESSION TIMEOUT"; exit; } include( "../../conf_bbs.php" ); dbopen(); $result = mysql_query( "delete from info_board WHERE post_id = '" . addslashes( @$_REQUEST['id'] ) . "'" ); print "done."; exit; } function percent_loot1( $p ) { if( $p <= 0 ) return "0%"; return number_format( $p, 2 ) . "% (1/" . number_format( 100 / $p, 2 ) . ")"; } if( isset( $_REQUEST['req__sg_loot'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } include('../../conf_loot.php'); dbopen(); $SQL_query = "SELECT count(*), AVG(`count`), MIN(`count`), MAX(`count`), AVG(lv0), AVG(lv1), AVG(lv2), AVG(lv3), AVG(lv4), AVG(lv5), AVG(lv6), AVG(lv7)," . "MAX(lv0), MAX(lv1), MAX(lv2), MAX(lv3), MAX(lv4), MAX(lv5), MAX(lv6), MAX(lv7)," . "MIN(lv0), MIN(lv1), MIN(lv2), MIN(lv3), MIN(lv4), MIN(lv5), MIN(lv6), MIN(lv7)," . "MIN(weapon_human), MAX(weapon_human), AVG(weapon_human)," . "MIN(armor_human), MAX(armor_human), AVG(armor_human)," . "MIN(acce_human), MAX(acce_human), AVG(acce_human)," . "MIN(armor_elf), MAX(armor_elf), AVG(armor_elf)," . "MIN(weapon_gar), MAX(weapon_gar), AVG(weapon_gar)," . "MIN(armor_gar), MAX(armor_gar), AVG(armor_gar)," . "MIN(acce_gar), MAX(acce_gar), AVG(acce_gar)," . "SUM(lv5word0)," . "SUM(lv5word1)," . "SUM(lv5word2)," . "SUM(lv5acce_word0)," . "SUM(lv5acce_word1)," . "SUM(lv5acce_word2)," . "SUM(lv5weapon_brittle), SUM(lv5weapon_antique), SUM(lv5weapon_prized), SUM(lv5weapon_cursed), SUM(lv5weapon_clean)," . "SUM(lv5armor_brittle), SUM(lv5armor_antique), SUM(lv5armor_prized), SUM(lv5armor_cursed), SUM(lv5armor_clean)," . "SUM(lv5acce_antique), SUM(lv5acce_prized), SUM(lv5acce_cursed), SUM(lv5acce_clean)," . "SUM(lv6word0)," . "SUM(lv6word1)," . "SUM(lv6word2)," . "SUM(lv6acce_word0)," . "SUM(lv6acce_word1)," . "SUM(lv6acce_word2)," . "SUM(lv6weapon_brittle), SUM(lv6weapon_antique), SUM(lv6weapon_prized), SUM(lv6weapon_cursed), SUM(lv6weapon_clean)," . "SUM(lv6armor_brittle), SUM(lv6armor_antique), SUM(lv6armor_prized), SUM(lv6armor_cursed), SUM(lv6armor_clean)," . "SUM(lv6acce_antique), SUM(lv6acce_prized), SUM(lv6acce_cursed), SUM(lv6acce_clean)," . "SUM(lv7word0)," . "SUM(lv7word1)," . "SUM(lv7word2)," . "SUM(lv7acce_word0)," . "SUM(lv7acce_word1)," . "SUM(lv7acce_word2)," . "SUM(lv7weapon_brittle), SUM(lv7weapon_antique), SUM(lv7weapon_prized), SUM(lv7weapon_cursed), SUM(lv7weapon_clean)," . "SUM(lv7armor_brittle), SUM(lv7armor_antique), SUM(lv7armor_prized), SUM(lv7armor_cursed), SUM(lv7armor_clean)," . "SUM(lv7acce_antique), SUM(lv7acce_prized), SUM(lv7acce_cursed), SUM(lv7acce_clean)" . " FROM corpse_items WHERE type = 'ShadowGuardsBOSS' GROUP BY type"; $result = mysql_query($SQL_query); if( $row = mysql_fetch_array($result) ) { print "

"; print " このページでは屋上(シャドウガード)のボスのマジックドロップ統計を出しています。
"; print " 屋上ではごくごくまれに、ネガティブなしの伝説級がでることがあります。また、正味一回分の屋上あたりどれだけの伝説級がでているのかの統計が目的です。
"; print " 後者はともかく前者は一応確認したことはあるものの、結局どの程度のレアさなのかはわかりません。それを調べるための統計ですが、途中で力尽きたらごめんなさい。
"; print "*幸運値は1030~1490で行っています。また1パーティによるものなので、棺桶を分けた場合はまた全然違う結果になります。ツボ時の幸運値は1580~2290ですが、あまり使用頻度は高くないものの、影響は若干あります。
"; print "*統計24回目以降の幸運値は1030~1750。ツボ時の幸運値は1580~2550。
"; print "*統計161回目以降の幸運値は1220~2100。ツボ時の幸運値は1770~2900。
"; print "*統計170回目くらい以降の幸運値は1220~2100。ツボ時の幸運値は1820~2950。
"; print " 体感の話になりますが、幸運があるなしはネガティブなしの確率に大きな差があり、幸運0で回していた無限(195回)ではネガティブなしの伝説はでなかったのに対し、幸運1000以上をキープした一般は都合4度のネガティブなし伝説を出しています。
"; print "*AFドロップの統計は本記事にて。こちらは未済がたまったら更新。
"; print "*終了時にばらまかれるGPの統計結果は、一回につき平均1,188,626gp。最低999,978gp, 最高1,305,459gpでした。(記録35回)。なお隅っこで倒すとGPが減るらしいです。
"; print "
"; print "統計母数(全体と伝説級個別): " . $row['count(*)'] . "
"; print "統計母数(AF中級とAF上級の個別): " . ( $row['count(*)'] - 71 ) . "
"; print "
"; print "マジックの総数(平均): " . $row['AVG(`count`)'] . " [" . $row['MIN(`count`)'] . "~" . $row['MAX(`count`)'] ."]
"; print "
"; print "マジックアイテム低級の数(平均): " . $row['AVG(lv0)'] . " [" . $row['MIN(lv0)'] . "~" . $row['MAX(lv0)'] ."]
"; print "マジックアイテム中級の数(平均): " . $row['AVG(lv1)'] . " [" . $row['MIN(lv1)'] . "~" . $row['MAX(lv1)'] ."]
"; print "マジックアイテム上級の数(平均): " . $row['AVG(lv2)'] . " [" . $row['MIN(lv2)'] . "~" . $row['MAX(lv2)'] ."]
"; print "マジックアイテム最上級の数(平均): " . $row['AVG(lv3)'] . " [" . $row['MIN(lv3)'] . "~" . $row['MAX(lv3)'] ."]
"; print "アーティファクト低級の数(平均): " . $row['AVG(lv4)'] . " [" . $row['MIN(lv4)'] . "~" . $row['MAX(lv4)'] ."]
"; print "アーティファクト中級の数(平均): " . $row['AVG(lv5)'] . " [" . $row['MIN(lv5)'] . "~" . $row['MAX(lv5)'] ."]
"; print "アーティファクト上級の数(平均): " . $row['AVG(lv6)'] . " [" . $row['MIN(lv6)'] . "~" . $row['MAX(lv6)'] ."]
"; print "アーティファクト伝説級の数(平均): " . $row['AVG(lv7)'] . " [" . $row['MIN(lv7)'] . "~" . $row['MAX(lv7)'] ."]
"; print "
"; print "武器(人間)の数(平均): " . $row['AVG(weapon_human)'] . " [" . $row['MIN(weapon_human)'] . "~" . $row['MAX(weapon_human)'] ."]
"; print "防具(人間)の数(平均): " . $row['AVG(armor_human)'] . " [" . $row['MIN(armor_human)'] . "~" . $row['MAX(armor_human)'] ."]
"; print "アクセ(人間)の数(平均): " . $row['AVG(acce_human)'] . " [" . $row['MIN(acce_human)'] . "~" . $row['MAX(acce_human)'] ."]
"; print "武器(ガーゴ)の数(平均): " . $row['AVG(weapon_gar)'] . " [" . $row['MIN(weapon_gar)'] . "~" . $row['MAX(weapon_gar)'] ."]
"; print "防具(ガーゴ)の数(平均): " . $row['AVG(armor_gar)'] . " [" . $row['MIN(armor_gar)'] . "~" . $row['MAX(armor_gar)'] ."]
"; print "アクセ(ガーゴ)の数(平均): " . $row['AVG(acce_gar)'] . " [" . $row['MIN(acce_gar)'] . "~" . $row['MAX(acce_gar)'] ."]
"; print "
"; $word_total = $row['SUM(lv7word0)'] + $row['SUM(lv7word1)'] + $row['SUM(lv7word2)']; print "伝説武器防具のワードなしの確率: " . percent_loot1( $row['SUM(lv7word0)'] * 100 / $word_total ) ."
"; print "伝説武器防具の1ワードの確率: " . percent_loot1( $row['SUM(lv7word1)'] * 100 / $word_total ) ."
"; print "伝説武器防具の2ワードの確率: " . percent_loot1( $row['SUM(lv7word2)'] * 100 / $word_total ) ."
"; print "
"; $word_acce_total = $row['SUM(lv7acce_word0)'] + $row['SUM(lv7acce_word1)'] + $row['SUM(lv7acce_word2)']; print "伝説アクセのワードなしの数(平均): " . percent_loot1( $row['SUM(lv7acce_word0)'] * 100 / $word_acce_total ) ."
"; print "伝説アクセの1ワードの数(平均): " . percent_loot1( $row['SUM(lv7acce_word1)'] * 100 / $word_acce_total ) ."
"; print "伝説アクセの2ワードの数(平均): " . percent_loot1( $row['SUM(lv7acce_word2)'] * 100 / $word_acce_total ) ."
"; print "
"; $weapon_total = $row['SUM(lv7weapon_brittle)'] + $row['SUM(lv7weapon_antique)'] + $row['SUM(lv7weapon_prized)'] + $row['SUM(lv7weapon_cursed)'] + $row['SUM(lv7weapon_clean)']; print "伝説武器の補強不可の確率: " . percent_loot1( $row['SUM(lv7weapon_brittle)'] * 100 / $weapon_total ) . "
"; print "伝説武器の短命の確率: " . percent_loot1( $row['SUM(lv7weapon_antique)'] * 100 / $weapon_total ) . "
"; print "伝説武器のPrizedの確率: " . percent_loot1( $row['SUM(lv7weapon_prized)'] * 100 / $weapon_total ) . "
"; print "伝説武器のCursedの確率: " . percent_loot1( $row['SUM(lv7weapon_cursed)'] * 100 / $weapon_total ) . "
"; print "伝説武器のクリーンの確率: " . percent_loot1( $row['SUM(lv7weapon_clean)'] * 100 / $weapon_total ) . "
"; print "
"; $armor_total = $row['SUM(lv7armor_brittle)'] + $row['SUM(lv7armor_antique)'] + $row['SUM(lv7armor_prized)'] + $row['SUM(lv7armor_cursed)'] + $row['SUM(lv7armor_clean)']; print "伝説防具の補強不可の確率: " . percent_loot1( $row['SUM(lv7armor_brittle)'] * 100 / $armor_total ) . "
"; print "伝説防具の短命の確率: " . percent_loot1( $row['SUM(lv7armor_antique)'] * 100 / $armor_total ) . "
"; print "伝説防具のPrizedの確率: " . percent_loot1( $row['SUM(lv7armor_prized)'] * 100 / $armor_total ) . "
"; print "伝説防具のCursedの確率: " . percent_loot1( $row['SUM(lv7armor_cursed)'] * 100 / $armor_total ) . "
"; print "伝説防具のクリーンの確率: " . percent_loot1( $row['SUM(lv7armor_clean)'] * 100 / $armor_total ) . "
"; print "
"; $acce_total = $row['SUM(lv7acce_antique)'] + $row['SUM(lv7acce_prized)'] + $row['SUM(lv7acce_cursed)'] + $row['SUM(lv7acce_clean)']; print "伝説アクセの短命の確率: " . percent_loot1( $row['SUM(lv7acce_antique)'] * 100 / $acce_total ) . "
"; print "伝説アクセのPrizedの確率: " . percent_loot1( $row['SUM(lv7acce_prized)'] * 100 / $acce_total ) . "
"; print "伝説アクセのCursedの確率: " . percent_loot1( $row['SUM(lv7acce_cursed)'] * 100 / $acce_total ) . "
"; print "伝説アクセのクリーンの確率: " . percent_loot1( $row['SUM(lv7acce_clean)'] * 100 / $acce_total ) . "
"; print "
"; $p = ( $row['SUM(lv7acce_clean)'] + $row['SUM(lv7armor_clean)'] + $row['SUM(lv7weapon_clean)'] ) * 100 / ( $weapon_total + $armor_total + $acce_total ); print "伝説全てのうちのクリーンの確率: " . percent_loot1( $p ) . " / 1ボスあたりの確率: " . percent_loot1( $p * $row['AVG(lv7)'] ) . "
"; print "
"; print "
"; $word_total = $row['SUM(lv6word0)'] + $row['SUM(lv6word1)'] + $row['SUM(lv6word2)']; print "AF上級武器防具のワードなしの確率: " . percent_loot1( $row['SUM(lv6word0)'] * 100 / $word_total ) ."
"; print "AF上級武器防具の1ワードの確率: " . percent_loot1( $row['SUM(lv6word1)'] * 100 / $word_total ) ."
"; print "AF上級武器防具の2ワードの確率: " . percent_loot1( $row['SUM(lv6word2)'] * 100 / $word_total ) ."
"; print "
"; $word_acce_total = $row['SUM(lv6acce_word0)'] + $row['SUM(lv6acce_word1)'] + $row['SUM(lv6acce_word2)']; print "AF上級アクセのワードなしの数(平均): " . percent_loot1( $row['SUM(lv6acce_word0)'] * 100 / $word_acce_total ) ."
"; print "AF上級アクセの1ワードの数(平均): " . percent_loot1( $row['SUM(lv6acce_word1)'] * 100 / $word_acce_total ) ."
"; print "AF上級アクセの2ワードの数(平均): " . percent_loot1( $row['SUM(lv6acce_word2)'] * 100 / $word_acce_total ) ."
"; print "
"; $weapon_total = $row['SUM(lv6weapon_brittle)'] + $row['SUM(lv6weapon_antique)'] + $row['SUM(lv6weapon_prized)'] + $row['SUM(lv6weapon_cursed)'] + $row['SUM(lv6weapon_clean)']; print "AF上級武器の補強不可の確率: " . percent_loot1( $row['SUM(lv6weapon_brittle)'] * 100 / $weapon_total ) . "
"; print "AF上級武器の短命の確率: " . percent_loot1( $row['SUM(lv6weapon_antique)'] * 100 / $weapon_total ) . "
"; print "AF上級武器のPrizedの確率: " . percent_loot1( $row['SUM(lv6weapon_prized)'] * 100 / $weapon_total ) . "
"; print "AF上級武器のCursedの確率: " . percent_loot1( $row['SUM(lv6weapon_cursed)'] * 100 / $weapon_total ) . "
"; print "AF上級武器のクリーンの確率: " . percent_loot1( $row['SUM(lv6weapon_clean)'] * 100 / $weapon_total ) . "
"; print "
"; $armor_total = $row['SUM(lv6armor_brittle)'] + $row['SUM(lv6armor_antique)'] + $row['SUM(lv6armor_prized)'] + $row['SUM(lv6armor_cursed)'] + $row['SUM(lv6armor_clean)']; print "AF上級防具の補強不可の確率: " . percent_loot1( $row['SUM(lv6armor_brittle)'] * 100 / $armor_total ) . "
"; print "AF上級防具の短命の確率: " . percent_loot1( $row['SUM(lv6armor_antique)'] * 100 / $armor_total ) . "
"; print "AF上級防具のPrizedの確率: " . percent_loot1( $row['SUM(lv6armor_prized)'] * 100 / $armor_total ) . "
"; print "AF上級防具のCursedの確率: " . percent_loot1( $row['SUM(lv6armor_cursed)'] * 100 / $armor_total ) . "
"; print "AF上級防具のクリーンの確率: " . percent_loot1( $row['SUM(lv6armor_clean)'] * 100 / $armor_total ) . "
"; print "
"; $acce_total = $row['SUM(lv6acce_antique)'] + $row['SUM(lv6acce_prized)'] + $row['SUM(lv6acce_cursed)'] + $row['SUM(lv6acce_clean)']; print "AF上級アクセの短命の確率: " . percent_loot1( $row['SUM(lv6acce_antique)'] * 100 / $acce_total ) . "
"; print "AF上級アクセのPrizedの確率: " . percent_loot1( $row['SUM(lv6acce_prized)'] * 100 / $acce_total ) . "
"; print "AF上級アクセのCursedの確率: " . percent_loot1( $row['SUM(lv6acce_cursed)'] * 100 / $acce_total ) . "
"; print "AF上級アクセのクリーンの確率: " . percent_loot1( $row['SUM(lv6acce_clean)'] * 100 / $acce_total ) . "
"; print "
"; $clean = $row['SUM(lv6acce_clean)'] + $row['SUM(lv6armor_clean)'] + $row['SUM(lv6weapon_clean)']; $sum = $weapon_total + $armor_total + $acce_total; $p = ( $clean ) * 100 / ( $sum ); print "AF上級全てのうちのクリーンの確率: " . percent_loot1( $p ) . " / 1ボスあたりの確率: " . percent_loot1( $p * $row['AVG(lv6)'] ) . "
"; print "
"; print "
"; $word_total = $row['SUM(lv5word0)'] + $row['SUM(lv5word1)'] + $row['SUM(lv5word2)']; print "AF中級武器防具のワードなしの確率: " . percent_loot1( $row['SUM(lv5word0)'] * 100 / $word_total ) ."
"; print "AF中級武器防具の1ワードの確率: " . percent_loot1( $row['SUM(lv5word1)'] * 100 / $word_total ) ."
"; print "AF中級武器防具の2ワードの確率: " . percent_loot1( $row['SUM(lv5word2)'] * 100 / $word_total ) ."
"; print "
"; $word_acce_total = $row['SUM(lv5acce_word0)'] + $row['SUM(lv5acce_word1)'] + $row['SUM(lv5acce_word2)']; print "AF中級アクセのワードなしの数(平均): " . percent_loot1( $row['SUM(lv5acce_word0)'] * 100 / $word_acce_total ) ."
"; print "AF中級アクセの1ワードの数(平均): " . percent_loot1( $row['SUM(lv5acce_word1)'] * 100 / $word_acce_total ) ."
"; print "AF中級アクセの2ワードの数(平均): " . percent_loot1( $row['SUM(lv5acce_word2)'] * 100 / $word_acce_total ) ."
"; print "
"; $weapon_total = $row['SUM(lv5weapon_brittle)'] + $row['SUM(lv5weapon_antique)'] + $row['SUM(lv5weapon_prized)'] + $row['SUM(lv5weapon_cursed)'] + $row['SUM(lv5weapon_clean)']; print "AF中級武器の補強不可の確率: " . percent_loot1( $row['SUM(lv5weapon_brittle)'] * 100 / $weapon_total ) . "
"; print "AF中級武器の短命の確率: " . percent_loot1( $row['SUM(lv5weapon_antique)'] * 100 / $weapon_total ) . "
"; print "AF中級武器のPrizedの確率: " . percent_loot1( $row['SUM(lv5weapon_prized)'] * 100 / $weapon_total ) . "
"; print "AF中級武器のCursedの確率: " . percent_loot1( $row['SUM(lv5weapon_cursed)'] * 100 / $weapon_total ) . "
"; print "AF中級武器のクリーンの確率: " . percent_loot1( $row['SUM(lv5weapon_clean)'] * 100 / $weapon_total ) . "
"; print "
"; $armor_total = $row['SUM(lv5armor_brittle)'] + $row['SUM(lv5armor_antique)'] + $row['SUM(lv5armor_prized)'] + $row['SUM(lv5armor_cursed)'] + $row['SUM(lv5armor_clean)']; print "AF中級防具の補強不可の確率: " . percent_loot1( $row['SUM(lv5armor_brittle)'] * 100 / $armor_total ) . "
"; print "AF中級防具の短命の確率: " . percent_loot1( $row['SUM(lv5armor_antique)'] * 100 / $armor_total ) . "
"; print "AF中級防具のPrizedの確率: " . percent_loot1( $row['SUM(lv5armor_prized)'] * 100 / $armor_total ) . "
"; print "AF中級防具のCursedの確率: " . percent_loot1( $row['SUM(lv5armor_cursed)'] * 100 / $armor_total ) . "
"; print "AF中級防具のクリーンの確率: " . percent_loot1( $row['SUM(lv5armor_clean)'] * 100 / $armor_total ) . "
"; print "
"; $acce_total = $row['SUM(lv5acce_antique)'] + $row['SUM(lv5acce_prized)'] + $row['SUM(lv5acce_cursed)'] + $row['SUM(lv5acce_clean)']; print "AF中級アクセの短命の確率: " . percent_loot1( $row['SUM(lv5acce_antique)'] * 100 / $acce_total ) . "
"; print "AF中級アクセのPrizedの確率: " . percent_loot1( $row['SUM(lv5acce_prized)'] * 100 / $acce_total ) . "
"; print "AF中級アクセのCursedの確率: " . percent_loot1( $row['SUM(lv5acce_cursed)'] * 100 / $acce_total ) . "
"; print "AF中級アクセのクリーンの確率: " . percent_loot1( $row['SUM(lv5acce_clean)'] * 100 / $acce_total ) . "
"; print "
"; $p = ( $row['SUM(lv5acce_clean)'] + $row['SUM(lv5armor_clean)'] + $row['SUM(lv5weapon_clean)'] ) * 100 / ( $weapon_total + $armor_total + $acce_total ); print "AF中級全てのうちのクリーンの確率: " . percent_loot1( $p ) . " / 1ボスあたりの確率: " . percent_loot1( $p * $row['AVG(lv5)'] ) . "
"; print "
"; print "
"; print "
"; print "実際に確認した伝説級クリーンの例
"; print "
"; print " "; } exit; } if( isset( $_REQUEST['req__pet_req'] ) ) { if( @$_SESSION['@flag'] != 1 ) { print "SESSION TIMEOUT"; exit; } $scs = array( array ( -9, "cat, chicken, skittering hopper, rat, chicken lizard, battle chicken lizard" ), array ( 111, "cow, goat, pig, sheep" ), array ( 111, "eagle, rubby boura" ), array ( 171, "hind, slime, corrosive slime, timber wolf" ), array ( 231, "horse, forest/desert ostard, ridable llama, boar, lowland boura" ), array ( 291, "polar bear, black bear, llama" ), array ( 351, "deathwatch beetle, cougar, brown bear" ), array ( 411, "scorpion, yalligator, high plains boura" ), array ( 471, "snow leopard, panther, grey wolf" ), array ( 531, "great hart, giant spider, grizzly bear, snake, wolf spider" ), array ( 591, "white wolf, stone slith" ), array ( 687, "gaman" ), array ( 711, "bull, hellcat, greater mongbat, giant ice worm, iron beetle" ), array ( 771, "frenzied ostard, giant toad" ), array ( 807, "bake kitsune, lava lizard, slith" ), array ( 831, "imp, dire wolf" ), array ( 843, "drake" ), array ( 855, "hell hound" ), array ( 891, "predator hellcat" ), array ( 939, "dragon, rune beetle" ), array ( 951, "nightmare, unicorn, ki-rin, skree" ), array ( 963, "white wyrm" ), array ( 987, "hiryu" ), array ( 1011, "cu sidhe, reptalon, najasaurus, dimetrosaur" ), array ( 1047, "greater dragon" ), array ( 1060, "fire steed" ), array ( 1071, "dread warhorse, raptor, (育成済みペットの最高値)" ) ); if( ! isset( $_REQUEST['tame'] ) ) $_REQUEST['tame'] = 100; if( ! isset( $_REQUEST['lore'] ) ) $_REQUEST['lore'] = 100; if( ! isset( $_REQUEST['loyal'] ) ) $_REQUEST['loyal'] = 100; $tame2 = intval( @$_REQUEST['tame'] * 10 ); $tame = $tame2 / 10.0; $lore2 = intval( @$_REQUEST['lore'] * 10 ); $lore = $lore2 / 10.0; $loyal = intval( @$_REQUEST['loyal'] ); print "
"; print "
テイム:
"; print "ロア:
"; print "忠誠度: (命令に失敗すると忠誠度は3さがる。成功すると1上がる)
"; print "
"; $base2 = 1200; for( $i = 0; $i < 1200; $i++ ) { if( $tame2 < $i ) { $a = 28 * ( $tame2 - $i ); }//テイム値がテイム難易度より低い else { $a = 6 * ( $tame2 - $i ); } if( $lore2 < $i ) { $b = 14 * ( $lore2 - $i ); }//ロア値がテイム難易度より低い else { $b = 6 * ( $lore2 - $i ); } //$a = ( $a + $b ); $a = ( $a + $b ) / 2; // if( $a > -10 && $a < 10 ) { if( $a > -5 && $a < 5 ) { // if( $a >= -1 && $a <= 1/* > -1 && $a < 1*/ ) { $base2 = $i; break; } } // $base2 = 1200; // $base2 = get_base_tc4( $tame2, $lore2 ); $base_skill = $base2 / 10.0; $list_shift = -$base2 + 100; $pos = -$list_shift + 50; $j = $base2; if( $j <= 291 ) $j = 291; $enb_tran = -1; for( $i = count( $scs ) - 1; $i >= 0; $i-- ) { if( $scs[$i][0] <= 291 || $scs[$i][0] <= j + 50 ) { $enb_tran = $i; break; } } $enb_full = -1; for( $i = count( $scs ) - 1; $i >= 0; $i-- ) { if( $scs[$i][0] <= 291 || $scs[$i][0] <= $j - 48.9 ) { $enb_full = $i; break; } } if( $base_skill >= 0 && $base_skill <= 150 ) { print "テイム:" . number_format( $tame, 1 ) . "
"; print "ロア:" . number_format( $lore, 1 ) . "
"; print "忠誠度:" . $loyal . "

"; print "ベース:" . number_format( $base_skill, 1 ) . "
"; if( $enb_tran >= 0 ) { for( $i = 0, $j = count( $scs ) - 1; $i < count( $scs ); $i++ ) { $f = probability( $scs[$i][0], $tame2, $lore2, $loyal ); if( $f <= 0 ) { $j = $i - 1; break; } } print ( $scs[$j][0] / 10.0 ) . " - " . $scs[$j][1] . "まで 譲渡による入手が可能
"; } if( $enb_full >= 0 ) { for( $i = 0, $j = count( $scs ) - 1; $i < count( $scs ); $i++ ) { $f = probability( $scs[$i][0], $tame2, $lore2, $loyal ); if( $f < 990 ) { $j = $i - 1; break; } } print ( $scs[$j][0] / 10.0 ) . " - " . $scs[$j][1] . "まで 命令成功率99%
"; } } print "

"; for( $i = count( $scs ) - 1; $i >= 0; $i-- ) { // if( $list_shift + $scs[$i][0] >= -50 && $list_shift + $scs[$i][0] <= 250 ) { if( $base_skill >= 0 && $base_skill <= 150 ) { $f = probability( $scs[$i][0], $tame2, $lore2, $loyal ); if( $f <= 0 ) $color = "0.0% (" . number_format( $f / 10.0, 1 ) . "%)"; else if( $f < 990 ) $color = number_format( $f / 10.0, 1 ) . "%"; else $color = "99.0% (" . number_format( $f / 10.0, 1 ) . "%)"; print ""; //draw_bar( g, 206 + sw, list_shift - 8 + anii[i][1], 20, f ); } else { $f = 0; print ""; // print ( $scs[$i][0] / 10.0 ) . " - " . $scs[$i][1] . "
"; } /* // g.setColor( Color.lightGray ); if( anii[i][1] > 291 ) { g.fillRect( 200 - anii[i][0], list_shift + anii[i][1] - 50, 1, 100 ); // g.setColor( Color.gray ); } if( i == focus2 ) { sw = 138 + anii[i][0]; } g.fillRect( 200 - anii[i][0], list_shift + anii[i][1], sw + 20, 1 ); */ // } } print "
難易度命令成功率種類
" . number_format( $scs[$i][0] / 10.0, 1 ) . "" . $color . "" . $scs[$i][1] . "
" . number_format( $scs[$i][0] / 10.0, 1 ) . "0.0%" . $scs[$i][1] . "
"; /* print <<<_HTML_ <"; //return ""; } } } $data = @file_get_contents( $matches[1], FILE_USE_INCLUDE_PATH); if( ! $data ) return ""; $base64 = base64_encode( $data ); // $size = strlen( $base64 ); // $size_t += $size; //$buff0 .=$matches[1] . " > import size:" . strlen( $base64 ) . "
"; $result = ""; /*"";*/ if( $cache ) { $img2base64cache_name[] = $matches[1]; $img2base64cache[] = $base64; } return $result; } function background2base64( $matches ) {//バックグラウンドのbase64埋め込み(コピーされていいものに限る) global $size_t; global $img2base64cache_name; global $img2base64cache; global $not_image; if( $not_image ) return ""; if( strpos( $matches[1], ".gif" ) !== false ) $ext = "gif"; else if( strpos( $matches[1], ".jpg" ) !== false ) $ext = "jpg"; else if( strpos( $matches[1], ".png" ) !== false ) $ext = "png"; else return ""; $cache = false; if( ( strpos( $matches[1], "_" ) !== false && strpos( $matches[1], "_" ) == 0 ) || strpos( $matches[1], "../../_" ) !== false ) { $cache = true; for( $i = 0; $i < count( $img2base64cache_name ); $i++ ) { if( $img2base64cache_name[$i] == $matches[1] ) { return " background='data:image/" . $ext . ";base64," . $img2base64cache[$i] . "'"; } } } if( strpos( $matches[1], "/" ) !== false && strpos( $matches[1], "/" ) == 0 ) { $matches[1] = str_replace( "/", "", $matches[1] ); } $data = @file_get_contents( "../../img/" . $matches[1], FILE_USE_INCLUDE_PATH); if( ! $data ) return ""; $base64 = base64_encode( $data ); // $size = strlen( $base64 ); // $size_t += $size; $result = " background='data:image/" . $ext . ";base64," . $img2base64cache[$i] . "'"; if( $cache ) { $img2base64cache_name[] = $matches[1]; $img2base64cache[] = $base64; } return $result; } $image_mode = "base64"; //$image_mode = "そのままファイル処理"; if( $image_mode == "そのままファイル処理" ) { $data = preg_replace("/]+)(.*?)>/", /* "

", */ "", $data ); } else {//BASE64化埋め込み $data = preg_replace_callback("/]+)\"?(.*?)>/", "img2base64", $data ); //$data = preg_replace_callback("/]+)(.*?)>/", "img2base64", $data ); $data = preg_replace_callback("/ background=([^ >]+)/", "background2base64", $data ); //$buff0 .="total: " . $size_t . "
"; } function img_ins64( $matches ) {//URLのbase64化 return ">image_ins(\"" . base64_encode( "../../img/" . $matches[1] ); } $data = preg_replace_callback("/>image_ins\(\"([^\"]+)/", "img_ins64", $data ); //ボディ /* function background2base64( $matches ) {//背景イメージファイルのbase64埋め込み if( strpos( $matches[1], ".gif" ) !== false ) $ext = "gif"; else if( strpos( $matches[1], ".jpg" ) !== false ) $ext = "jpg"; else if( strpos( $matches[1], ".png" ) !== false ) $ext = "png"; else return ""; $data = @file_get_contents( $matches[1], FILE_USE_INCLUDE_PATH); if( ! $data ) return ""; $base64 = base64_encode( $data ); return " style=\"background: transparent url(data:image/" . $ext . ";base64," . $base64 . ") no-repeat scroll 0%;\" "; return " background=\"data:image/" . $ext . ";base64," . $base64 . "\""; } */ if( preg_match('/(.*?)<\/vm>/',$data,$name) ) { //$name[1] = preg_replace_callback("/ background=(\"?.*?\"?)>/", "background2base64", $name[1] ); //53d2ac00158ae0a84436bc668890b9de //今は特定IDオープンは停止 $buff0 .=$name[1]; } //記事本文 preg_match_all('/(.*?)<\/vm>/ms',$data,$name_child); preg_match_all('/(.*?)<\/vm>/ms',$data,$name); $now = strtotime("now"); function whatsnew( $date ) { global $now, $date_unix; preg_match_all('/([\d]+)\/([\d]+)\/([\d]+)/ms',$date,$name_date); $max = count( $name_date[1] ) - 1; $date_s = $name_date[1][ $max ] . "-" . $name_date[2][ $max ] . "-" . $name_date[3][ $max ]/* . " 00:00:00"*/; //$buff0 .=$now . " - " . strtotime($date_s); $date_unix = strtotime($date_s); return ( ( ( $now - $date_unix ) / ( 60 * 60 * 24 ) ) <= 31 ); } //$span_anchor = " style=\"cursor:pointer; color: #003399;\"" // . " onmouseover=\"javascript:this.style.color='#F05C00';\"" // . " onmouseout=\"javascript:this.style.color='#003399';\""; /* $id_id = array(); $id_title = array(); //リンクID取得 for( $z = 0; $z < count( $name[1] ); $z++ ) { $id_id[] = "o" . $z; $id_title[] = $name[2][$z]; } for( $y = 0; $y < count( $name_child[1] ); $y++ ) { $id_id[] = "c" . $y; $id_title[] = $name_child[2][$y]; } */ function vma( $matches ) {//簡易リンク $md5 = md5( $matches[1] ); return "" . $matches[1] . ""; /*global $id_id, $id_title; for( $i = 0; $i < count( $id_id ); $i++ ) { if( $matches[1] == $id_title[$i] ) return "" . $id_title[$i] . ""; } return $matches[1]; */ } $buffs = array(); $times = array(); for( $z = 0; $z < count( $name[1] ); $z++ ) { //$buff0 .="name:" . $name[1][$z] . "
"; //$buff0 .="tag:" . $name[3][$z] . "
"; $name[6][$z] = preg_replace_callback("/(.*?)<\/vma>/", "vma", $name[6][$z] ); $new = whatsnew( $name[5][$z] ); $times[] = $date_unix; $md5 = md5( $name[2][$z] ); $buffs[] ="● " . ( $new ? "" : "" ) . "[] " . $name[2][$z] . " (" . str_replace( ".", ". ", $name[5][$z] ) . ")" . ( $new ? " [NEW !]" : "" ) . "
";//
for( $y = 0; $y < count( $name_child[1] ); $y++ ) { if( $name[1][$z] == $name_child[1][$y] ) { $name_child[5][$y] = preg_replace_callback("/(.*?)<\/vma>/", "vma", $name_child[5][$y] ); $new = whatsnew( $name_child[4][$y] ); $times[] = $date_unix; $md5 = md5( $name_child[2][$y] ); //$buff0 .="child
"; //$buff0 .="tag:" . $name_child[3][$y] . "
"; $buffs[] ="● [" .$name[2][$z] . "]" . ( $new ? "" : "" ) . " [] " . $name_child[2][$y] . " (" . str_replace( ".", ". ", $name_child[4][$y] ) . ")" . ( $new ? " [NEW !]" : "" ) . "
"; } } //$buff0 .="


"; } array_multisort( $times, SORT_DESC, SORT_NUMERIC, $buffs ); for( $z = 0; $z < count( $buffs ); $z++ ) { $buff0 .= $buffs[$z]; } //フッター $buff0 .= foot_vm(); /* if( preg_match('/(.*?)<\/vm>/ms',$data,$name) ) { if( strpos( __FILE__, "_scr_test" ) !== false ) { }//UO Indexアクセスなし テスト else { $name[1] = str_replace( "", '', $name[1] ); } $name[1] = str_replace( "", '', $name[1] ); $buff0 .= $name[1]; } */ if( $not_image ) { file_put_contents('../../index_data.cache_no_image.pl', $buff0 ); print $buff0; } else { file_put_contents('../../index_data.cache.pl', $buff0 ); print $buff0; } home( @$_REQUEST['p'] ); exit; ?>