2006年04月27日

ホラバグとか

まだ花見会場におるよーこやー。
次のメンテまで定住したろかしら。

ホラバ(ホラーバッグ)実装されたちゅうことで狩りはんとか狩りはんとか狩りはんとかが色々書いてはるみたいやけれど同時にバグも報告されとるみたいやね。
言わんよ!
絶対言わんよ!
バッグだけにバグなんて!

ある一定数超えると重量マイナスになってまうらしいで。
そん数字が32767でこれ超えると重量マイナス1になってまう。
なしてこんな半端な数字なんやろ思たんやけれど師匠はんの話やと当たり前なんやて。
コンピューターて二進数で動いとるちゅうんはうちも知っとるし扱いやすいで十六進数(=2×2×2×2)使うんもプログラムの世界では2×2×2×2×2×2×2×2=256を基準にしとるちゅうんも知っとる。
こん0〜255までを表すのが1バイトやね。
なんか師匠はんがバイトは0〜255とは限らんとか↓ん解釈も正確やないとか言うてはったけれどおおよそ合っとるちゅうことやから無視して引用。
プログラム言語で整数を扱う場合、shortというのがある。
shortというのは2バイトで65536種類の数字を扱う(言語によっては例外あり)。
整数には負数も含まれるため、signedといって―32738〜+32767の数字を表すことが多い。
恐らく32767超えるとバグるというのは、このsinged shortの範囲をオーバーしたためと考えられる。
一方、整数表現にはlongというのもある。
こちらは4バイトで4294967296種類の数字を扱う(言語によっては例外あり)。
これまたsignedの場合、半減するため―2147483648〜+2147483647までの数字を扱う。
TSの場合、所持金のMAXが2ギガなのはこのせいと思われる。
さて、今回のバグを修正する場合、単純にshortで表していた所持力をlongに置き換えればよいわけではない。
なぜなら、この手の単位修正はバグを生みやすい上、メモリー使用量も増大するため、重くなりやすいからだ。
もう1つの解決策としてはunsignedを使う手がある。
unsignedというのは正の整数しか扱わない。
だからunsigned shortは0〜65535までの数字を扱えるため、とりあえず所持量が65535を超えるまでは問題なくなる。
所持量にマイナスはないわけだし。
しかし、最大の問題がある。
今までの経緯から考えてTSが、いわゆるJ2SE(Java 2 Enterprise Edition)というJAVAサーブレットを使用しているっぽい点だ。
実はJAVA言語仕様にはunsignedがないのだw
無いものは利用できないから、今回のバグを修正しようとするなら、shortをlongに置き換えることになるだろう。
すさまじいメモリー使用量増加でラグの嵐+バグの嵐を覚悟したほうがいい。

ちゅうことらしいで。
ほでもバグ直って貰わんと所持極んなる踏ん切りつかんのよね…。
posted by よーこ at 14:41| Comment(6) | TrackBack(0) | トリックスター | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
ワタシばっかりかい!w
アイシクルとかゴミのように消えていくのは、
気持ちいいかもーw<ホラバク
Posted by 狐狩り at 2006年04月27日 15:56
銀行の個数上限が32kなのも同じ処理だからだね。

正直言って、スキルより暗器と成長合成アイテムの追加を先にして欲しかったです。

敏捷遅くなったけどうさぎ( ゚ω゚ )で頑張るよ!

という訳でルオのホラバ習得はもうちょっと待ってね。
Posted by ハレ&ルオ at 2006年04月27日 17:09
>そん数字が32767でこれ超えると重量マイナス1になってまう。
だから違うっつーの。
32767を超えると−32768になるの。
0x0000から1引いたら0xffffになるだろ?
よって0xffffが−1。
0x7fffが32767で0x8000は―32768。
Posted by 四章 at 2006年04月27日 18:15
帰ってきたので記事をよく読んでみた。

>所持量にマイナスはないわけだし。
ここだけツッコミたい。

ステータス全般が-32768〜+32767の処理になってるので所持だけ変更すればいいって訳でもないと思います。

おそらく、所持のほかに上がりやすいステであるHPやMPも32767を超えたらマイナスになりそう。

あと、-2147483648〜+2147483647までの数字を扱うのは所持金のほかに、拡張しまくった倉庫なんかもありますね。
Posted by ハレ&ルオ at 2006年04月28日 00:57
ちわ、ちょこちょこ読ませてもらってます ノ

いちおーバッグのバグ情報でサイアクパターンがあるようなので報告〜
まぁ単純明快だけどLv250↑で所持極にした人がいるそーな…
これだけでわかるかもしれないけど、装備抜きで限界突破w
おかげで何を捨ててもマイナス、ステ振り直そうとしてもマイショップから
移動させることもできずにLv250にしてチャット専用になってしまった人が
いるらしいです^^;

ちなみにTrickster.binを単純にテキストエディタで開いて検索すると
「○icro○oft ○isual C++ Runtime」って出ますね
Unsignedだと攻撃力マイナスはどぅなるんだろ、逆に激強に…w

ベースで所持32kを夢見つつ精進します ノシ
Posted by テュケ at 2006年05月05日 15:23
これ多分私に対する突っ込みだと思うので回答しとく。
私もCβ〜Oβくらいまでしかやってないので推測でしか書けないんだが、重量の処理は結構重要な処理なので、サーバーサイドでやってると思う。
だから、クライアントアプリがVC++で組まれようがDelphiで組まれようが関係ないし、むしろクライアントアプリでserver side java使ってたら爺の正気を疑う。
#いや、今でも十分正気じゃないという話もあるがw
Posted by 四章 at 2006年05月06日 03:13
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。