<?xml version="1.0" encoding="UTF-8" ?>
	<rss version = "2.0"  xmlns:blogChannel="http://backend.userland.com/blogChannelModule">
		<channel>
			<title>水平線の彼方へ</title>
			<description>つれずれなるままに記した航海日誌</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2</link>
			<language>ja</language>
			<copyright>Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.</copyright>
		<image>
			<title>水平線の彼方へ</title>
			<url>https://s.yimg.jp/i/jp/blog/iym_img.gif</url>
			<description>つれずれなるままに記した航海日誌</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2</link>
		</image>
		<item>
			<title>プロセスについて</title>
			<description>&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/1194176/50/25431150/img_0?1238501294&quot; width=&quot;560&quot;&gt;&lt;br /&gt;
ある処理（機能）の固まりごとにプログラムを分けて、ソフトを構築するのが普通で&lt;br /&gt;
その固まりをﾌﾟﾛｾｽと呼びます。&lt;br /&gt;
チョコットランドでもこの手法は使われていると考えられ、添付のような感じだと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
各プロセスには時間を管理するタイマープロセスからのタイマーイベントも入ります。&lt;br /&gt;
キーボード＆マウスの情報を処理し、メインにその情報を送ります。&lt;br /&gt;
この情報は自分のキャラクターの移動、行動の情報ですね。&lt;br /&gt;
メインではそれに従い、処理を行ない、マップ処理プロセスへその結果をおくります。&lt;br /&gt;
マップ処理プロセスでは、その情報に従い、画像データの更新を行ないます。&lt;br /&gt;
画像処理プロセスは別個にある時間ごとに画像データをよみこみ、表示画面に出力します。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
あるマップに入ったとしましょう。そのマップ名からデータをよみ、それに従い&lt;br /&gt;
画像データを作成します。&lt;br /&gt;
この画像データとは出現モンスター情報や、そのドロップアイテム&lt;br /&gt;
モンスター、オブジェクトの位置情報が含まれています。&lt;br /&gt;
&lt;br /&gt;
２人以上が同じマップに同居しているときはどうなるかというと、&lt;br /&gt;
最初にそのマップに入ったユーザーの画像データをそっくりそのまま、インターネット経由で相手の&lt;br /&gt;
画像データに展開しています。&lt;br /&gt;
自分のキャラが行動したときには、マップ処理プロセスにそのデータを送るとともに、&lt;br /&gt;
同じマップにいる他ユーザーにもその情報をおくります。&lt;br /&gt;
最初にそのマップに入ったユーザーの画像データは逐次、同じマップにいる他ユーザーに&lt;br /&gt;
配信されます。&lt;br /&gt;
結論は、後からマップに入ってきたユーザーは一番最初にいたユーザーの&lt;br /&gt;
画像データを使用するということです。&lt;br /&gt;
&lt;br /&gt;
アイテムの増殖のコメントである方が触れておられましたが、&lt;br /&gt;
自分のＰＣ画面にはアイテムが見えているが拾えない。&lt;br /&gt;
他人からはアイテムが見えない。&lt;br /&gt;
これは画像データ自体は同じものを使用しているので、&lt;br /&gt;
画像処理プロセス上でのバグで、アイテムがなくなったのに、消す処理をしていないため、&lt;br /&gt;
画面には、さもアイテムがあるように見えている。&lt;br /&gt;
ですが、他ユーザーは画像データを忠実に表示しているので、アイテムは表示されない。&lt;br /&gt;
（アイテムはもとから無いので、正しい）&lt;br /&gt;
ということで、増殖されているとは言いかねます。&lt;br /&gt;
（画面上に残ってしまったゴミデータのたぐい）&lt;br /&gt;
やるならば、画像データを変えないとならないと思います。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
実際展開されているかどうかは、うさみみで見るとわかります。&lt;br /&gt;
展開される情報には、後から入ってきた、元からいるユーザーのＩＤ等のデータもあります。&lt;br /&gt;
ちょっと部屋に入ってきた人のＩＤなんかも広場にいれば展開されます。&lt;br /&gt;
展開されるエリアはファーストイン／ファーストアウトのＱＵＥ構造になっていると思われるため、&lt;br /&gt;
そのデータが長く残るなんてこともあります。&lt;br /&gt;
&lt;br /&gt;
草化をしている主ユーザーにマップデータを間借しているとき、主が気まぐれで落ちると&lt;br /&gt;
そのあと、自分の画像データを新たに作成する（データを読み込む）ので、&lt;br /&gt;
モンスターが凶暴になって。。ちぬ・・・ってことになるのはこの為です。&lt;br /&gt;
加速と呼ばれる行為は、この処理とは関係なく、タイマーの速度を早くするものですので、&lt;br /&gt;
仮に、マップに後から入ってきたユーザーが加速をつかうと、周りは遅いのに自分だけ&lt;br /&gt;
処理が早いってことになります。&lt;br /&gt;
その逆は悲惨で、モンスターの移動速度が速いのに、自分だけが遅いなんてことになって。・・・&lt;br /&gt;
袋叩きになるかも・・・・・・です。　＞＜；&lt;br /&gt;
&lt;br /&gt;
今回はコメントにあった件をお答えしました。。。</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/25431150.html</link>
			<pubDate>Tue, 31 Mar 2009 21:08:14 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>ドロンジョ様 いい～</title>
			<description>&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/384470/02/25168602/img_0?1237937694&quot; width=&quot;240&quot;&gt;&lt;br /&gt;
知り合いが作成した携帯待受画面。&lt;br /&gt;
やっぱドロンジョ様でしょう！</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/25168602.html</link>
			<pubDate>Wed, 25 Mar 2009 08:34:54 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>花見の季節です</title>
			<description>もうすぐ春ですね♪&lt;br /&gt;
世間は不況の真っ只中です例年の花見は盛り上がるのかなぁ？&lt;br /&gt;
&lt;br /&gt;
さて、チョコットでは&lt;br /&gt;
ワープとか草化とか、コードをチェックしているので、コードの入れ替えをしていますね。&lt;br /&gt;
&lt;br /&gt;
モンスターがドロップするアイテムにも当然コードがあり、直接のファイルは拡張子lugだったかなぁ？を参照するテーブルがあります。このテーブルのファイル名称を入れ換えると。。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
吟じます♪&lt;br /&gt;
落とすアイテムを変更したくてぇ～～&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
アイテムファイルを～&lt;br /&gt;
入れ換えるとぉ～～&lt;br /&gt;
&lt;br /&gt;
落とすアイテムが変わるかもしれない～～&lt;br /&gt;
&lt;br /&gt;
あと、マクロを組んでというのは、データを手動で入れ換えていますよね。それを自動化するという意味です。&lt;br /&gt;
&lt;br /&gt;
当然うさみみの機能のマクロでは一定時間毎に作成したマクロを裏で走らせる事もできます。&lt;br /&gt;
&lt;br /&gt;
追記&lt;br /&gt;
加速等の記事を乗せると消されるとか、コメントしてる過去コメントを見ない方がいますが、直接答えを載せるのは、私の主義に反するから削除しています。自分の知識をヒケラカシタイなら、こんな終わってるブログでなく、自分のブログを作って載せたいならいいですよ。&lt;br /&gt;
&lt;br /&gt;
但し、そんな手法はあっという間に閉鎖に追い込まれますけどね♪&lt;br /&gt;
&lt;br /&gt;
でわでわ</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/25087624.html</link>
			<pubDate>Mon, 23 Mar 2009 08:09:00 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>ＸＯＲ早見表の件</title>
			<description>&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/1194176/30/24604330/img_0?1236685065&quot; width=&quot;560&quot;&gt;&lt;br /&gt;
&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/1194176/30/24604330/img_1?1236685065&quot; width=&quot;560&quot;&gt;&lt;br /&gt;
&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/1194176/30/24604330/img_2?1236685065&quot; width=&quot;560&quot;&gt;&lt;br /&gt;
新米さんが早見表なるものをｺﾒﾝﾄくださいました。&lt;br /&gt;
&lt;br /&gt;
そのｺﾒﾝﾄをみて気付いたことを書きます。&lt;br /&gt;
（正直なんで気付かなかったんだ？？って感じですが。。。（笑））&lt;br /&gt;
&lt;br /&gt;
ＸＯＲ　排他論理ＯＲ　の論理は&lt;br /&gt;
&lt;br /&gt;
Result（結果）＝Ａ　ＸOR　Ｂ&lt;br /&gt;
としたとき、ビットの変化があったら１になり、変化がなければ０となる。&lt;br /&gt;
すなわち&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Ａ	Ｂ	Ｒesult(結果)&lt;br /&gt;
0	0	0&lt;br /&gt;
0	1	1&lt;br /&gt;
1	0	1&lt;br /&gt;
1	1	0&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ということになるのですが。。。（何回も書いてますね）&lt;br /&gt;
結果がすでに分かっていて&lt;br /&gt;
ＡかＢが分かっていれば、ＸＯＲでもう１つを求めることができるのですよね　（＾－＾；&lt;br /&gt;
&lt;br /&gt;
Ａをもとめたくて、Ｂとその結果が分かっているなら&lt;br /&gt;
&lt;br /&gt;
Ａ　＝　Ｂ　ＸＯＲ　Ｒesult（結果）&lt;br /&gt;
となりますね・・・・&lt;br /&gt;
きっと、新米さんもそれを承知していて、計算したのしょうが、&lt;br /&gt;
EXCELで計算させたいと思っても、EXCELが用意している関数では&lt;br /&gt;
ＸＯＲがなぜかない・・・（とおもう・・）&lt;br /&gt;
&lt;br /&gt;
なので、作成してみました。&lt;br /&gt;
EXCEL２００３なので、今ので動くかは保障しませんが、動くんじゃないかな？？（＾－＾&lt;br /&gt;
&lt;br /&gt;
自作したのはＸＯＲ_ＡＢという関数で&lt;br /&gt;
ツール→マクロ→Ｖisual Basic Editor でＶＢをひらき、&lt;br /&gt;
挿入→モジュールで白紙のモジュールを開いたところで&lt;br /&gt;
ソースをコピー＆ペーストして保存します。&lt;br /&gt;
ソースコードは仕事中の合間１時間くらいでざっと作ったので&lt;br /&gt;
16進文字列→１０進あたりのコードはぼろぼろですが、一応動きます。&lt;br /&gt;
&lt;br /&gt;
使い方はエクセルのfxから関数を入れ込みます。&lt;br /&gt;
パラメータは２つで、それぞれ任意のセルを指定します。&lt;br /&gt;
&lt;br /&gt;
例　セルに直接書く場合はこんな感じです。&lt;br /&gt;
以下の記載をセルＡ１に書きます。&lt;br /&gt;
　=　XOR_AB(B1,C1)&lt;br /&gt;
Ｂ１とＣ１に４桁までの１６進をそれぞれ入れると、&lt;br /&gt;
ＸＯＲした結果がＡ１のセルに表示されます。&lt;br /&gt;
たとえば　Ｂ１セルに　９００１を&lt;br /&gt;
Ｃ１セルに　１０１０　を代入すれば、結果がＡ１に　８０１１と表示されます。&lt;br /&gt;
&lt;br /&gt;
さっと作ったので、イレギュラー処理をいれてません。。なので１６進を入れてくださいね・・♪&lt;br /&gt;
みなさんはもっとカッコよく作れると思いますので、参考程度で・・・&lt;br /&gt;
へんなことをしている&lt;br /&gt;
Function CHG_HEX16(XXX As String) As Integer　関数について軽く説明すると&lt;br /&gt;
文字列が１から９までの場合にはそのまま、で&lt;br /&gt;
大文字。小文字のＡからＦまでを１０から１５に変換して返却しています。&lt;br /&gt;
ASCBの関数では０は４８、１は４９という返り値となりますので、それを使用して&lt;br /&gt;
４８からその値を引いて、ＩＮＴタイプの０から９までを取得してます。&lt;br /&gt;
また、返り値でー１はエラーとしたのですが、上位モジュールで力つきて、判定してません。。＞＜；&lt;br /&gt;
まぁ関数電卓たたけば、いいんでしょうけど・・ね・・・（趣味ですね）&lt;br /&gt;
この関数できるとですねぇ・・&lt;br /&gt;
データもってきて、ＥＸＣＥＬにはりつけて、結果が９００１のアドレスを探すっていうような&lt;br /&gt;
マクロにも使えますが、それは各自で・・・・（＞。＜）ｖ&lt;br /&gt;
こんなので、どうでしょうね♪新米さん？♪&lt;br /&gt;
でわでわ・・・・&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
■ソース　この文章から下をコピーして貼り付けます。&lt;br /&gt;
&lt;br /&gt;
Function XOR_AB(A As String, B As String) As String&lt;br /&gt;
&lt;br /&gt;
    Dim TMP_DATA_A As Long&lt;br /&gt;
    Dim TMP_DATA_B As Long&lt;br /&gt;
    Dim RESULT_DATA As Long&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
    &amp;#039;10進INTEGERに変換&lt;br /&gt;
    TMP_DATA_A = STRHEX_TO_INT(A)&lt;br /&gt;
    TMP_DATA_B = STRHEX_TO_INT(B)&lt;br /&gt;
    &lt;br /&gt;
    &amp;#039;XOR&lt;br /&gt;
    RESULT_DATA = TMP_DATA_A Xor TMP_DATA_B&lt;br /&gt;
    &lt;br /&gt;
    &amp;#039;これを16進 文字列変換・・・&lt;br /&gt;
    XOR_AB = Hex(RESULT_DATA)&lt;br /&gt;
    &lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Function STRHEX_TO_INT(A As String) As Long&lt;br /&gt;
    Dim CNT As Integer&lt;br /&gt;
    Dim SUM_A As Long&lt;br /&gt;
    Dim TMP As String&lt;br /&gt;
    Dim TMPDT As Long&lt;br /&gt;
    &lt;br /&gt;
    &amp;#039;　Aの文字列は4文字まで&lt;br /&gt;
    If Len(A) = 0 Or Len(A) &amp;gt; 4 Then GoTo STEP_END&lt;br /&gt;
&lt;br /&gt;
    &lt;br /&gt;
    For CNT = 1 To Len(A) Step 1&lt;br /&gt;
        TMP = (Mid(A, Len(A) + 1 - CNT, 1))&lt;br /&gt;
        TMPDT = CHG_HEX16(TMP)&lt;br /&gt;
        If TMPDT = -1 Then&lt;br /&gt;
            &amp;#039;EROR&lt;br /&gt;
            STRHEX_TO_INT = -1&lt;br /&gt;
            GoTo STEP_END&lt;br /&gt;
        End If&lt;br /&gt;
        &lt;br /&gt;
         Select Case CNT&lt;br /&gt;
            Case 1&lt;br /&gt;
                SUM_A = TMPDT&lt;br /&gt;
            Case 2&lt;br /&gt;
                SUM_A = SUM_A + 16 * TMPDT&lt;br /&gt;
            Case 3&lt;br /&gt;
                SUM_A = SUM_A + 16 * 16 * TMPDT&lt;br /&gt;
            Case 4&lt;br /&gt;
                SUM_A = SUM_A + 16 * 16 * 16 * TMPDT&lt;br /&gt;
        End Select&lt;br /&gt;
    Next CNT&lt;br /&gt;
    &lt;br /&gt;
    STRHEX_TO_INT = SUM_A&lt;br /&gt;
    &lt;br /&gt;
STEP_END:&lt;br /&gt;
&lt;br /&gt;
End Function&lt;br /&gt;
&lt;br /&gt;
Function CHG_HEX16(XXX As String) As Integer&lt;br /&gt;
    Dim RT As Integer&lt;br /&gt;
    Dim TMPD As Integer&lt;br /&gt;
    &lt;br /&gt;
    TMPD = AscB(XXX)&lt;br /&gt;
    Select Case TMPD&lt;br /&gt;
        &amp;#039;A&lt;br /&gt;
        Case 65, 97&lt;br /&gt;
            RT = 10&lt;br /&gt;
        &amp;#039;B&lt;br /&gt;
        Case 66, 98&lt;br /&gt;
            RT = 11&lt;br /&gt;
        &amp;#039;C&lt;br /&gt;
        Case 67, 99&lt;br /&gt;
            RT = 12&lt;br /&gt;
        &amp;#039;D&lt;br /&gt;
        Case 68, 100&lt;br /&gt;
            RT = 13&lt;br /&gt;
        &amp;#039;E&lt;br /&gt;
        Case 69, 101&lt;br /&gt;
            RT = 14&lt;br /&gt;
        &amp;#039;F&lt;br /&gt;
        Case 70, 102&lt;br /&gt;
            RT = 15&lt;br /&gt;
        Case Else&lt;br /&gt;
            &amp;#039;　0　から　9&lt;br /&gt;
            If (TMPD - 48) &amp;lt; 10 And (TMPD - 48) &amp;gt;= 0 Then&lt;br /&gt;
                RT = TMPD - 48&lt;br /&gt;
            Else&lt;br /&gt;
                RT = -1&lt;br /&gt;
            End If&lt;br /&gt;
            &lt;br /&gt;
    End Select&lt;br /&gt;
    CHG_HEX16 = RT&lt;br /&gt;
End Function</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/24604330.html</link>
			<pubDate>Tue, 10 Mar 2009 20:37:45 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>スキルコードの調べ方</title>
			<description>スキルコードの検索キーワードの質問が多くなっています。&lt;br /&gt;
スキル＊＊は出来るけど、＊＊はできません等々&lt;br /&gt;
&lt;br /&gt;
皆さん全員がそうだとは言いませんが、理屈が解らずに、キーワードを覚えようとしている為です♪&lt;br /&gt;
&lt;br /&gt;
さて、そうは言っても、何度も同じコメントを見るのは嫌気がさしますので、その方法を少し書きます。&lt;br /&gt;
&lt;br /&gt;
知ってるスキル名を検索します。&lt;br /&gt;
例えば、ドバムの文字列をしたとします。&lt;br /&gt;
対象となる、ドバムのすぐ後方にI_800189&lt;br /&gt;
という文字がありますね。これがスキルコードです。&lt;br /&gt;
Ｉ＿８０＊＊＊&lt;br /&gt;
&lt;br /&gt;
これがスキルコードの基本フォームです。&lt;br /&gt;
なので、Ｉ＿８０で検索すれば、全てのコードが分かりますよね&lt;br /&gt;
くれぐれも&lt;br /&gt;
Ｉ＿８０で検索すれば良いと思わずに、なぜそれで検索すれば良いのかを理解しましょう。&lt;br /&gt;
なので&lt;br /&gt;
検索フォーマットくらいは自分で調べましょうね。&lt;br /&gt;
&lt;br /&gt;
今後、スキルコード教えて等のコメントは削除しますのでご理解下さい。&lt;br /&gt;
また&lt;br /&gt;
コメントに日付をフッてくれってありましたが、嫌です♪&lt;br /&gt;
他人のコメントを読みとくのも解析です♪&lt;br /&gt;
努力してコメントあさって下さい。&lt;br /&gt;
&lt;br /&gt;
でわでわ</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/24359260.html</link>
			<pubDate>Wed, 04 Mar 2009 13:48:35 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>None_Tile</title>
			<description>&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/1194176/21/24160821/img_0?1235720682&quot; width=&quot;560&quot;&gt;&lt;br /&gt;
&lt;img src=&quot;https://blog-001.west.edge.storage-yahoo.jp/res/blog-a5-7c/freedom_from_a2/folder/1194176/21/24160821/img_1?1235720682&quot; width=&quot;560&quot;&gt;&lt;br /&gt;
リクエストがあったので、転記しましたが&lt;br /&gt;
書いてないとこは自分で調べよう！&lt;br /&gt;
正直調べる気にならない・・・・・・です・・&lt;br /&gt;
&lt;br /&gt;
話題のターゲットは&lt;br /&gt;
character の前　のA...　41.00.00.00&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
【追記】 これを公開したのだから、今後モンスターコード教えてください的なコメントは一掃します。</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/24160821.html</link>
			<pubDate>Fri, 27 Feb 2009 16:44:42 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>無敵人柱の話</title>
			<description>コメントを整理しようとしてて、拝見したバグ？さんのコメントは面白いですね。&lt;br /&gt;
&lt;br /&gt;
話自体の&lt;br /&gt;
cmoc無敵が敵から攻撃される、または攻撃するまでは有効であるということが事実であるなら、&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
こんな感じで無敵をしているのかな。f^_^;&lt;br /&gt;
&lt;br /&gt;
実証していないで、例によって推論です。&lt;br /&gt;
&lt;br /&gt;
先ず１キャラ目でcmoc無敵作って町からワープリンクします。ワープ先がその部屋の移動範囲外であることが重要ですね。&lt;br /&gt;
&lt;br /&gt;
こうすることで、攻撃されません。&lt;br /&gt;
&lt;br /&gt;
この１キャラ目を人柱にして、多重起動で別ＩＤで同じ部屋に入れば、後から入ったキャラは無敵の恩恵を受けられるという訳ですね。&lt;br /&gt;
&lt;br /&gt;
そもそも、過去にかきましたが、魔法使いで敵が移動出来ないエリアにワープして、自分も移動出来ないけど、敵は近寄ろうとして、壁ぎりぎりまで寄ってくる。そこを魔法で撃ち込めば一点なんて、面倒な事を考えなくても、勝手に一点になります。&lt;br /&gt;
&lt;br /&gt;
魔法撃ち込み、回復をキーマクロで自動化すれば良いわけで、要は発想の転換ですね。&lt;br /&gt;
&lt;br /&gt;
でわでわ。</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/22991382.html</link>
			<pubDate>Fri, 30 Jan 2009 17:48:32 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>キャラスロットル消失について</title>
			<description>またまたの「倉庫バグと今回はキャラスロットル消失」事件で大騒ぎしていますが&lt;br /&gt;
&lt;br /&gt;
「キャラスロットル消失」事件を私なりに考えてみます。&lt;br /&gt;
&lt;br /&gt;
まず、チョコットランドでのユーザー管理はどうなっているのか？&lt;br /&gt;
たぶんですが、ＳＱＬ系のデータベース制御をしていると思われます。&lt;br /&gt;
&lt;br /&gt;
で・・構造はというと以下のような感じでしょうか？&lt;br /&gt;
{&lt;br /&gt;
　Long　int　ユーザーID&lt;br /&gt;
　Long  int  倉庫ID&lt;br /&gt;
　Long  int  もち金&lt;br /&gt;
　Long　int　キャラスロットル１&lt;br /&gt;
　Long　int　キャラスロットル２&lt;br /&gt;
　Long　int　キャラスロットル３&lt;br /&gt;
　Long　int　キャラスロットル４&lt;br /&gt;
}　&lt;br /&gt;
これを仮に基本テーブルとしましょう&lt;br /&gt;
&lt;br /&gt;
キャラクタは&lt;br /&gt;
{&lt;br /&gt;
　Long　int　キャラクタID&lt;br /&gt;
　　　・&lt;br /&gt;
　　　・　名前&lt;br /&gt;
　　　・　レベル&lt;br /&gt;
　　　・　パラメータ１&lt;br /&gt;
　　　・　パラメータ２&lt;br /&gt;
　　　・&lt;br /&gt;
　　　・&lt;br /&gt;
}&lt;br /&gt;
これを同じく仮にキャラクタテーブルとします。&lt;br /&gt;
&lt;br /&gt;
　キャラクタが生成されると、作成時に該当するキャラスロットル番号のところに&lt;br /&gt;
　キャラクタIDの番号がはいり、リンクを形成します。&lt;br /&gt;
　キャラクタが登録されていないとき、キャラスロットル番号のところは0がはいっている。&lt;br /&gt;
　ID課金をしていないとここが、0xFFFFFFFFFFFFFFFF（-1）がはいっている・・&lt;br /&gt;
&lt;br /&gt;
キャラスロットルはあって、&lt;br /&gt;
特定のチャラが消失したということは、なんらかの不具合で0が書き込まれた・・・&lt;br /&gt;
という事を意味していますね。&lt;br /&gt;
SQLのコマンドはデータベースの制御をする場合に有効な手法ですが、&lt;br /&gt;
与える条件を誤るととんでもないところにデータを書く可能性もあります。&lt;br /&gt;
&lt;br /&gt;
ここからは推論爆発です・・・&lt;br /&gt;
□開発当初は、ある抽出条件では0件ないし１件しか抽出していなかった。&lt;br /&gt;
□ところが、今回携帯からのアクセスを可能にしたために、なんらかのテーブルに項目を追加した・・。&lt;br /&gt;
　これが、抽出条件に悪影響を及ぼし、複数のIDを抽出する結果となった。。&lt;br /&gt;
□抽出結果が0ないし、1件でないとき、エラー処理にすべきなのに、そのエラー処理がはいっていない&lt;br /&gt;
　構造になっていた。&lt;br /&gt;
　ただし、開発当初なら0件ないし1件しか抽出されないので、&lt;br /&gt;
　エラー処理がなくてもよかった・・・&lt;br /&gt;
□結果複数の抽出があり、その抽出結果をもとに、指定されたパラメータに値を書き込む。&lt;br /&gt;
　意図しないユーザーの基本テーブルにも同じ値が書き込まれる！&lt;br /&gt;
&lt;br /&gt;
□その結果、データベース上あってはいけない、IDの重複が発生する。&lt;br /&gt;
□データベースの思想では、そのようなイレギュラーなデータは削除方向の（リカバリー）&lt;br /&gt;
　処理が行われる。&lt;br /&gt;
□削除というと、基本テーブルのIDを0にして、リセットを行うことを意味する。&lt;br /&gt;
□キャラクタスロットルは存在するが、キャラクタが消失する・・・&lt;br /&gt;
&lt;br /&gt;
これが今回の不具合の原因だと推測されます。&lt;br /&gt;
倉庫バグについても、似たような話なのではないかと思われます・・・&lt;br /&gt;
当たらずとも遠からじ・・だと思います。&lt;br /&gt;
&lt;br /&gt;
どちらにしても、システム試験の不備（試験仕様書の不備）ですね。&lt;br /&gt;
修正したところだけを、確認して全体試験を怠るから、このようなことになるのですね♪&lt;br /&gt;
&lt;br /&gt;
これはデータベースまで壊しちゃってますので、巻き戻しとなる公算が強いですね。。&lt;br /&gt;
↑&lt;br /&gt;
2008/12/26時点で巻き戻しされていない？2008/12/25の10時くらいに戻ったのかな？&lt;br /&gt;
基本テーブルのリンクが消えた部分のテーブルだけを元に戻したのかもしれませんね&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
でわでわ</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/21407919.html</link>
			<pubDate>Thu, 25 Dec 2008 15:28:16 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>16進数とXORの話</title>
			<description>１６進数の話です。&lt;br /&gt;
これで分からなければ、チートとかコンピュータとか向いていないので、諦めたほうが良いかな？&lt;br /&gt;
&lt;br /&gt;
普段世間では１０進数を使用していますが、コンピュータの世界では１６進数を用います。&lt;br /&gt;
これはコンピュータが１と０で物事を表し処理されるためです。&lt;br /&gt;
１、０この単位をビットとよびます。&lt;br /&gt;
このビットが８つ集まったのがバイトです。&lt;br /&gt;
&lt;br /&gt;
表現できる種類は２の８乗で256種類。&lt;br /&gt;
２の８乗は２の４乗×２の４乗と同じですね。&lt;br /&gt;
２の４乗は2×2×2×2で16です。&lt;br /&gt;
&lt;br /&gt;
だから１バイトの中身を表す場合に16×16の形式で表現しているのです。&lt;br /&gt;
&lt;br /&gt;
16×16というのは16進数2桁分ですよね。&lt;br /&gt;
&lt;br /&gt;
16進数は０から始まり１０進数の１０にあたる表記をＡ、１５がＦで16になると桁が上がって１０となります。&lt;br /&gt;
&lt;br /&gt;
１バイトを表現するのに&lt;br /&gt;
都合がよいので16進数を使用しているだけなのです。&lt;br /&gt;
１バイトは16進数で0からFFまでの256種類が表現できますよね。&lt;br /&gt;
&lt;br /&gt;
16進数か10進数か表記を区別するため&lt;br /&gt;
16進数は0xを頭につけ桁数を揃えるお約束があります。。&lt;br /&gt;
0x01とか&lt;br /&gt;
こう書けば16進１バイトを表記してるんだなって分かりますよね。&lt;br /&gt;
&lt;br /&gt;
チョコットランドの話で&lt;br /&gt;
C04 とか中途半端な表記する人いますが本当は0C04&lt;br /&gt;
と書くのが正しく、書いている方は本来の意味を知らないで使われてるという恥ずかしい状態なんです。&lt;br /&gt;
&lt;br /&gt;
さて、1バイトはビット８桁（つ）で成り立っているといいました。&lt;br /&gt;
&lt;br /&gt;
今度はXORを説明します。&lt;br /&gt;
&lt;br /&gt;
これはビットを比較して変化があったら１とする。&lt;br /&gt;
変化がなければ０とする。これだけの事です。&lt;br /&gt;
&lt;br /&gt;
0x01 XOR 0x03 を 考えます。&lt;br /&gt;
&lt;br /&gt;
２進数で１、３はそれぞれ&lt;br /&gt;
00000001&lt;br /&gt;
00000011&lt;br /&gt;
&lt;br /&gt;
なのでビットが変化したところは1とすると&lt;br /&gt;
00000010&lt;br /&gt;
0x02となります。&lt;br /&gt;
&lt;br /&gt;
コメントにあった&lt;br /&gt;
0xC8は&lt;br /&gt;
11001000 &lt;br /&gt;
0x02は&lt;br /&gt;
00000010&lt;br /&gt;
だからビットの変化しているところは１に、してないところは0にすると&lt;br /&gt;
11001010&lt;br /&gt;
0xCA&lt;br /&gt;
が結果ですね。&lt;br /&gt;
&lt;br /&gt;
でわでわ</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/21173250.html</link>
			<pubDate>Sat, 20 Dec 2008 13:01:36 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		<item>
			<title>倉庫バグの検証</title>
			<description>倉庫ソフトバグの検証です。&lt;br /&gt;
そもそも倉庫バグはどのように発生したか？ということを検証します。&lt;br /&gt;
またまた推論爆発なので、軽く読み飛ばしてください。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
（１）１００個のアイテムを置かない状態で、アイテムを落とすとどうなるか？&lt;br /&gt;
&lt;br /&gt;
　～択したアイテムを１個おとすとアイテムボックスの落とした該当アイテム欄が空欄になります。　&lt;br /&gt;
　△修慮紂△發辰討い真量マイナスおとした数量の個数で空欄となっていた欄にアイテムが詰まりま　　　す。&lt;br /&gt;
　　もちろん、結果が0になれば空欄のままです。&lt;br /&gt;
&lt;br /&gt;
　これが一般的なシーケンスです。&lt;br /&gt;
&lt;br /&gt;
次に&lt;br /&gt;
（２）１００個のアイテムを置いた状態で、アイテムを落とすとどうなるか？&lt;br /&gt;
&lt;br /&gt;
　～択したアイテムを１個おとすとアイテムボックスの落とした該当アイテム欄が空白になります。&lt;br /&gt;
　△修慮紂▲瓮奪察璽牽贈錬悗法△海谿幣絅▲ぅ謄爐鮹屬事ができない旨のメッセージがでます。&lt;br /&gt;
　　アイテム欄は空欄のままです。&lt;br /&gt;
　この後、アイテムBOXをとじて、再度開けばもちろん数量-1した結果が反映されています。&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
　今回のソフトバグは（２）△両屬如∩匕砲鰺僂垢襪箸いΔ發里任后&lt;br /&gt;
　アイテム欄が空欄になっている状態で倉庫からアイテムを取り出すと、&lt;br /&gt;
　アイテム欄が空欄になっているから、倉庫からのアイテム移動の条件を満たしてしまいます。&lt;br /&gt;
&lt;br /&gt;
　移動完了後、数量の可変を当然カウントします。&lt;br /&gt;
　ですが、移動が終了した時点で、（２）の処理と同様な処理が走るため、&lt;br /&gt;
　アイテムは捨てたアイテムとなり、その数量は倉庫から移動した結果の数量となる。&lt;br /&gt;
　すなわち、倉庫から出したものが、捨てたアイテムに化けてしまうという不具合になります。&lt;br /&gt;
　（倉庫から重要なアイテムを移動したら、捨てたはずの要らないアイテムに化けてしまう。&lt;br /&gt;
　　結果からいえば、倉庫からアイテムが消失している。ということになります。）&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
さて、今回の緊急メンテナンスでどのような修正を施したか・・・&lt;br /&gt;
（１）のシーケンスが正しく、（２）のメッセージが出るとアイテム欄が空欄になるのが&lt;br /&gt;
　おかしい。という事に気がつかれるはずですね。&lt;br /&gt;
　&lt;br /&gt;
　メッセージを出したあと、（１）△僚萢鬚擦此⊇萢掘璽吋鵐垢鯣瓦韻討い襪里&lt;br /&gt;
　不具合の原因ですから、メッセージを出した後、その処理を追加すれば、正常動作になりますね。&lt;br /&gt;
　そのような修正をしたはずです。&lt;br /&gt;
&lt;br /&gt;
　仮にその修正がされずに、空欄のままであって、倉庫の移動のところに修正を加えたとすれば&lt;br /&gt;
　新たなバグの温床になると思います。&lt;br /&gt;
&lt;br /&gt;
　ここまで推論してきてですが、このバグ見た目にすぐわかることで、&lt;br /&gt;
　（空欄になるし・・・）&lt;br /&gt;
　なぜ、運営が気づかなかったのでしょう？&lt;br /&gt;
　ちゃんとデバッグ後のシステム試験をしているのでしょうかｗｗｗｗｗ&lt;br /&gt;
　してないと思いますね・・・・&lt;br /&gt;
　仮にしていたとしたら、試験された方の見逃し。。。　（＾－＾；）&lt;br /&gt;
　あるいは、バグとしてあがったけれど、設計側で些細なバグだから、修正を却下した&lt;br /&gt;
&lt;br /&gt;
　こんなところですね・・・&lt;br /&gt;
&lt;br /&gt;
　類似のバグがたくさんありそうです。条件分岐、とくにエラーコメントをだす&lt;br /&gt;
　シーケンスについて、再度確認したほうがよさそうですね。&lt;br /&gt;
&lt;br /&gt;
　はてさて、どのように修正されたのか・・・&lt;br /&gt;
　興味はありますが、時間がありませんね。。。。&lt;br /&gt;
&lt;br /&gt;
でわでわ。。。</description>
			<link>https://blogs.yahoo.co.jp/freedom_from_a2/20965588.html</link>
			<pubDate>Mon, 15 Dec 2008 16:13:16 +0900</pubDate>
			<category>ホームページ</category>
		</item>
		</channel>
	</rss>