全体表示

[ リスト | 詳細 ]

記事検索
検索

全8ページ

[1] [2] [3] [4] [5] [6] [7] [8]

[ 次のページ ]

プロセスについて

イメージ 1

ある処理(機能)の固まりごとにプログラムを分けて、ソフトを構築するのが普通で
その固まりをプロセスと呼びます。
チョコットランドでもこの手法は使われていると考えられ、添付のような感じだと思います。


各プロセスには時間を管理するタイマープロセスからのタイマーイベントも入ります。
キーボード&マウスの情報を処理し、メインにその情報を送ります。
この情報は自分のキャラクターの移動、行動の情報ですね。
メインではそれに従い、処理を行ない、マップ処理プロセスへその結果をおくります。
マップ処理プロセスでは、その情報に従い、画像データの更新を行ないます。
画像処理プロセスは別個にある時間ごとに画像データをよみこみ、表示画面に出力します。


あるマップに入ったとしましょう。そのマップ名からデータをよみ、それに従い
画像データを作成します。
この画像データとは出現モンスター情報や、そのドロップアイテム
モンスター、オブジェクトの位置情報が含まれています。

2人以上が同じマップに同居しているときはどうなるかというと、
最初にそのマップに入ったユーザーの画像データをそっくりそのまま、インターネット経由で相手の
画像データに展開しています。
自分のキャラが行動したときには、マップ処理プロセスにそのデータを送るとともに、
同じマップにいる他ユーザーにもその情報をおくります。
最初にそのマップに入ったユーザーの画像データは逐次、同じマップにいる他ユーザーに
配信されます。
結論は、後からマップに入ってきたユーザーは一番最初にいたユーザーの
画像データを使用するということです。

アイテムの増殖のコメントである方が触れておられましたが、
自分のPC画面にはアイテムが見えているが拾えない。
他人からはアイテムが見えない。
これは画像データ自体は同じものを使用しているので、
画像処理プロセス上でのバグで、アイテムがなくなったのに、消す処理をしていないため、
画面には、さもアイテムがあるように見えている。
ですが、他ユーザーは画像データを忠実に表示しているので、アイテムは表示されない。
(アイテムはもとから無いので、正しい)
ということで、増殖されているとは言いかねます。
(画面上に残ってしまったゴミデータのたぐい)
やるならば、画像データを変えないとならないと思います。



実際展開されているかどうかは、うさみみで見るとわかります。
展開される情報には、後から入ってきた、元からいるユーザーのID等のデータもあります。
ちょっと部屋に入ってきた人のIDなんかも広場にいれば展開されます。
展開されるエリアはファーストイン/ファーストアウトのQUE構造になっていると思われるため、
そのデータが長く残るなんてこともあります。

草化をしている主ユーザーにマップデータを間借しているとき、主が気まぐれで落ちると
そのあと、自分の画像データを新たに作成する(データを読み込む)ので、
モンスターが凶暴になって。。ちぬ・・・ってことになるのはこの為です。
加速と呼ばれる行為は、この処理とは関係なく、タイマーの速度を早くするものですので、
仮に、マップに後から入ってきたユーザーが加速をつかうと、周りは遅いのに自分だけ
処理が早いってことになります。
その逆は悲惨で、モンスターの移動速度が速いのに、自分だけが遅いなんてことになって。・・・
袋叩きになるかも・・・・・・です。 ><;

今回はコメントにあった件をお答えしました。。。

花見の季節です ケータイ投稿記事

もうすぐ春ですね♪
世間は不況の真っ只中です例年の花見は盛り上がるのかなぁ?

さて、チョコットでは
ワープとか草化とか、コードをチェックしているので、コードの入れ替えをしていますね。

モンスターがドロップするアイテムにも当然コードがあり、直接のファイルは拡張子lugだったかなぁ?を参照するテーブルがあります。このテーブルのファイル名称を入れ換えると。。


吟じます♪
落とすアイテムを変更したくてぇ〜〜


アイテムファイルを〜
入れ換えるとぉ〜〜

落とすアイテムが変わるかもしれない〜〜

あと、マクロを組んでというのは、データを手動で入れ換えていますよね。それを自動化するという意味です。

当然うさみみの機能のマクロでは一定時間毎に作成したマクロを裏で走らせる事もできます。

追記
加速等の記事を乗せると消されるとか、コメントしてる過去コメントを見ない方がいますが、直接答えを載せるのは、私の主義に反するから削除しています。自分の知識をヒケラカシタイなら、こんな終わってるブログでなく、自分のブログを作って載せたいならいいですよ。

但し、そんな手法はあっという間に閉鎖に追い込まれますけどね♪

でわでわ

XOR早見表の件

イメージ 1 イメージ 2 イメージ 3

イメージ 3

新米さんが早見表なるものをコメントくださいました。

そのコメントをみて気付いたことを書きます。
(正直なんで気付かなかったんだ??って感じですが。。。(笑))

XOR 排他論理OR の論理は

Result(結果)=A XOR B
としたとき、ビットの変化があったら1になり、変化がなければ0となる。
すなわち


A B Result(結果)
0 0 0
0 1 1
1 0 1
1 1 0


ということになるのですが。。。(何回も書いてますね)
結果がすでに分かっていて
AかBが分かっていれば、XORでもう1つを求めることができるのですよね (^−^;

Aをもとめたくて、Bとその結果が分かっているなら

A = B XOR Result(結果)
となりますね・・・・
きっと、新米さんもそれを承知していて、計算したのしょうが、
EXCELで計算させたいと思っても、EXCELが用意している関数では
XORがなぜかない・・・(とおもう・・)

なので、作成してみました。
EXCEL2003なので、今ので動くかは保障しませんが、動くんじゃないかな??(^−^

自作したのはXOR_ABという関数で
ツール→マクロ→Visual Basic Editor でVBをひらき、
挿入→モジュールで白紙のモジュールを開いたところで
ソースをコピー&ペーストして保存します。
ソースコードは仕事中の合間1時間くらいでざっと作ったので
16進文字列→10進あたりのコードはぼろぼろですが、一応動きます。

使い方はエクセルのfxから関数を入れ込みます。
パラメータは2つで、それぞれ任意のセルを指定します。

例 セルに直接書く場合はこんな感じです。
以下の記載をセルA1に書きます。
 = XOR_AB(B1,C1)
B1とC1に4桁までの16進をそれぞれ入れると、
XORした結果がA1のセルに表示されます。
たとえば B1セルに 9001を
C1セルに 1010 を代入すれば、結果がA1に 8011と表示されます。

さっと作ったので、イレギュラー処理をいれてません。。なので16進を入れてくださいね・・♪
みなさんはもっとカッコよく作れると思いますので、参考程度で・・・
へんなことをしている
Function CHG_HEX16(XXX As String) As Integer 関数について軽く説明すると
文字列が1から9までの場合にはそのまま、で
大文字。小文字のAからFまでを10から15に変換して返却しています。
ASCBの関数では0は48、1は49という返り値となりますので、それを使用して
48からその値を引いて、INTタイプの0から9までを取得してます。
また、返り値でー1はエラーとしたのですが、上位モジュールで力つきて、判定してません。。><;
まぁ関数電卓たたけば、いいんでしょうけど・・ね・・・(趣味ですね)
この関数できるとですねぇ・・
データもってきて、EXCELにはりつけて、結果が9001のアドレスを探すっていうような
マクロにも使えますが、それは各自で・・・・(>。<)v
こんなので、どうでしょうね♪新米さん?♪
でわでわ・・・・


■ソース この文章から下をコピーして貼り付けます。

Function XOR_AB(A As String, B As String) As String

Dim TMP_DATA_A As Long
Dim TMP_DATA_B As Long
Dim RESULT_DATA As Long


'10進INTEGERに変換
TMP_DATA_A = STRHEX_TO_INT(A)
TMP_DATA_B = STRHEX_TO_INT(B)

'XOR
RESULT_DATA = TMP_DATA_A Xor TMP_DATA_B

'これを16進 文字列変換・・・
XOR_AB = Hex(RESULT_DATA)

End Function


Function STRHEX_TO_INT(A As String) As Long
Dim CNT As Integer
Dim SUM_A As Long
Dim TMP As String
Dim TMPDT As Long

' Aの文字列は4文字まで
If Len(A) = 0 Or Len(A) > 4 Then GoTo STEP_END


For CNT = 1 To Len(A) Step 1
TMP = (Mid(A, Len(A) + 1 - CNT, 1))
TMPDT = CHG_HEX16(TMP)
If TMPDT = -1 Then
'EROR
STRHEX_TO_INT = -1
GoTo STEP_END
End If

Select Case CNT
Case 1
SUM_A = TMPDT
Case 2
SUM_A = SUM_A + 16 * TMPDT
Case 3
SUM_A = SUM_A + 16 * 16 * TMPDT
Case 4
SUM_A = SUM_A + 16 * 16 * 16 * TMPDT
End Select
Next CNT

STRHEX_TO_INT = SUM_A

STEP_END:

End Function

Function CHG_HEX16(XXX As String) As Integer
Dim RT As Integer
Dim TMPD As Integer

TMPD = AscB(XXX)
Select Case TMPD
'A
Case 65, 97
RT = 10
'B
Case 66, 98
RT = 11
'C
Case 67, 99
RT = 12
'D
Case 68, 100
RT = 13
'E
Case 69, 101
RT = 14
'F
Case 70, 102
RT = 15
Case Else
' 0 から 9
If (TMPD - 48) < 10 And (TMPD - 48) >= 0 Then
RT = TMPD - 48
Else
RT = -1
End If

End Select
CHG_HEX16 = RT
End Function

スキルコードの調べ方 ケータイ投稿記事

スキルコードの検索キーワードの質問が多くなっています。
スキル**は出来るけど、**はできません等々

皆さん全員がそうだとは言いませんが、理屈が解らずに、キーワードを覚えようとしている為です♪

さて、そうは言っても、何度も同じコメントを見るのは嫌気がさしますので、その方法を少し書きます。

知ってるスキル名を検索します。
例えば、ドバムの文字列をしたとします。
対象となる、ドバムのすぐ後方にI_800189
という文字がありますね。これがスキルコードです。
I_80***

これがスキルコードの基本フォームです。
なので、I_80で検索すれば、全てのコードが分かりますよね
くれぐれも
I_80で検索すれば良いと思わずに、なぜそれで検索すれば良いのかを理解しましょう。
なので
検索フォーマットくらいは自分で調べましょうね。

今後、スキルコード教えて等のコメントは削除しますのでご理解下さい。
また
コメントに日付をフッてくれってありましたが、嫌です♪
他人のコメントを読みとくのも解析です♪
努力してコメントあさって下さい。

でわでわ

全8ページ

[1] [2] [3] [4] [5] [6] [7] [8]

[ 次のページ ]


.
fre*dom*f*om_a2
fre*dom*f*om_a2
非公開 / 非公開
人気度
Yahoo!ブログヘルプ - ブログ人気度について

過去の記事一覧

検索 検索
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

スマートフォンで見る

モバイル版Yahoo!ブログにアクセス!

スマートフォン版Yahoo!ブログにアクセス!

よしもとブログランキング

もっと見る

[PR]お得情報

ふるさと納税サイト『さとふる』
11/30まで5周年記念キャンペーン中!
Amazonギフト券1000円分当たる!

その他のキャンペーン


プライバシー -  利用規約 -  メディアステートメント -  ガイドライン -  順守事項 -  ご意見・ご要望 -  ヘルプ・お問い合わせ

Copyright (C) 2019 Yahoo Japan Corporation. All Rights Reserved.

みんなの更新記事