忍者ブログ
RPG製作情報など
[1]  [2]  [3]  [4]  [5]  [6
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

他所でも、AスクリプトとBスクリプトを同時に使うと、
不具合(競合)があると言う記事を目にする。

大抵は、aliasが原因だろう。
aliasはオリジナルのスクリプトに処理を追加する場合に用いる。
大きく分けて3つ xxx ←元の処理名
aaa ←alias名(実は適当な文字列、同じ文字列が存在しないようにしている)
-------------------------------------------------
①オリジナルの処理前に追加
alias aaa xxx
def   xxx
     ss1   ←追加記述    
     aaa ←元の処理に戻る
end
…競合しにくい
-------------------------------------------------
②オリジナルの処理後に追加
alias aaa xxx
def   xxx
    aaa ←元の処理
    ss2   ←追加記述    
end
・・・複数のaliasがある場合は競合するかも
-------------------------------------------------
③条件によってはオリジナルの処理を実行しないで追加のみを処理
alias aaa xxx
def   xxx
    if nの場合
        ss3 ←追加記述
    else n以外の場合
        aaa ←元の処理
    end    
end
・・・この③番目に類似する処理の組み方で競合が発生する。
if nの場合はもとの処理aaaを実行しない為、
同時に使用した①②の処理が発生しなくなる。
いわゆる、追加順でmainより上xxxより下に記述とか書いてある奴
追加順を①②が③より上(先に処理)すれば、回避できるかもしれない
-------------------------------------------------

回避策としては、『再定義』という方法もある。※オリジナルを書き換える
オリジナルの↓を検索して探す。
def xxx
    --- ←オリジナル
end
①の場合は前、②の場合は後ろに追記して
def xxx
    ss1  ①の処理
    --- ←オリジナル
    ss2  ②の処理
end
①②のdef  alias aaa xxx~endを#全てコメントアウトか削除する。
-------------------------------------------------
ゲーム中にF12を押すとソフトリセットできるのだが、
これがaliasの処理に不具合を起こす原因になっている場合もある。

リセット後に不具合がでるようならコレが原因。
hideは↓のように記述している為、F12バグは起こらないハズ?

if !$@;alias aaa xxx;end
↑起動後1度だけalias aaa処理を実行する命令
PR
今回は、以前公開した『Counter_Action01』の不具合を修正し、
拡張機能をつけた『Counter_Action02』と『CAS_Ex』を公開って話。

>ステートに例えば、『反撃¥A』みたいなのを作る。
>¥←は必須の記述で、ABCみたくアルファベットの組み合わせで、
>カウンター行動を指定する。(大文字、小文字どちらでも可)
>反撃←の部分は適当でOK (※アルファベットのステート名だと不具合が...)

>ステートに例えば、『反撃¥A』みたいなのを作る。
↑の部分をステート名に直接記述するタイプから、
データベースの『CAS_Ex』設定に変更した!
これにより、アルファベットのステート名でも不具合がなくなったのだ。

一応、『CAS_Ex』内の↓みたく、Ex[n] 内のnにステートIDを指定するタイプってこと。
Ex[17] = "P25J1A"
※物理攻撃に対して25%の確率で物理攻撃のカウンター


ちなみに拡張した機能は、
①…カウンター発生属性(反応属性)
指定した属性ダメージに反応するカウンターステートで、
属性の配列を作成し、それを指定する。

# Nx    :属性IDを配列で指定、x=ELE_NO[n]のn番を指定
ELE_OK[0] = [1] # ←例 Z0=ID1:炎 に反応するカウンター

Ex[17] = "P25AN0" ←ならば炎に反応する物理カウンター

②…カウンターが発生しない属性(貫通属性)
③…ヘルプに表示する文字列の設定
④…ダメージ文字の設定
⑤…カウンター発生アニメの設定

詳細は『CAS_Ex』内に記述してあるので、このくらいで...
hideは、デフォルトの四角いカーソルがキライなので、
自作のアイコンカーソルを使っている。

ただ、アイコンカーソルは、どの項目を選択しているのか、
分かりにくいという、見た目の問題がある。
アイコンとデフォルトの四角いカーソルの両方を使えば、問題は解決するのだが、
どうにも、気に入らない。
・・・思えば、以前は、こんな無茶をしていたのだが、あまりスマートとは言えない(笑)


今回は、07/03/31記事で、『Window_Command』に限定した、
『点滅コマンド』を作ったのだが、それを大幅?に強化したモノを公開!って話し。

と、その前に、『Window_digits_number』 vol.3.00に更新!
■更新内容
・・・Bitmap.draw_cache_text()によるキャッシュ文字描画機能。
一度描画したテキストを、キャッシュ化して、次回呼び出しを高速化。
・・・回転する数値以外に、テキストでも同様に回転高速描画機能を追加。
・・・点滅する数値と文字、カウントダウンする数値機能の追加。
・・・簡易アニメーションetc...


■『Blink_Window_Command』 vol.2.00 特徴 ※旧『点滅コマンド』
・・・点滅する選択肢ウィンドウを作成する機構。
カーソルが合わさった所の文字色を変えて、点滅させる。

■『Draw_Blink_Word』 vol.1.00 特徴
・・・↓のウィンドウ全てを点滅選択肢に変更(デフォルト設定の場合)
Window_Command
Window_PartyCommand
Window_ShopCommand
Window_MenuStatus
Window_Target
Window_Skill
Window_Item
Window_EquipItem
Window_ShopSell
Window_EquipRight
Window_ShopBuy
※Window_ShopNumber
※Window_SaveFile

※は、『Window_digits_number』 vol.3.00必須
点滅に一部対応できないウィンドウは、Window_digits_numberで再現している。
Window_NameInput
Window_InputNumber
Window_Message
↑は、現在未対応
今回は、07/05/29記事の『MESSAGE vol.00β版』に新たな機能を付けた、
Message_i 』、『MESSAGE_ii』、『MESSAGE_iii』の公開って話し。

何故、3個のスクリプトかと言うと・・・記述が長くなったので、分割しただけ。
一応、スクリプトの追加順は、上から i→ii→iii の順。
※『Message_Ex vol.1.00』は、『MESSAGE_i』に名称を変更!(内容も更新)

※仕様の変更の為↑バージョンは使用不可。07/10/07を参照してね。
------------------------------------------------------------------------------------------------------
■追加した機能
①・・・文章の制御文字を追加
\pos[n] ←表示する文章の揃え
n=0 左揃え n=1 中央揃え n=2 右揃え

例えば、\pos[1]を記入した行は、ウィンドウの幅に対して、文字を中央に表示するってこと。
※1行目は、中央揃え、2行目は、左揃えとかできる。

\text[n] ←登録した文字を表示。
文字置換するだけなら、制御文字を\Pだの\Dだの追加するのは億劫なので、
自分が必要なものだけ、自分で設定したら?ってことで追加。
※一応、サンプルとして、↓を作ってみた。
n=0 ・・・所持金+通貨単位(システム)
※100G
n=1 ・・・プレイ時間
※00時間00分01秒
n=2 ・・・現在のMapの上位Map名+現在のMap名
※コレだけチョット説明。
"マップの設定"で作成したMapのフォルダが、
ツリー状になっているハズ。↓

・フロアAにいるならば、
○○の町/道具屋/1階/フロアA
と表示される。


\word(id)[n] ←登録した文字を表示(アクター別)。
『Message_Ex vol.1.00』では、アクターIDは先頭のアクターに固定!だったのだが、
(id)にアクターIDを指定することができるように変更。
\word[n] ←(id)を省略すると、先頭のアクター。
\word2[n]  ←アクターIID2のアクター

※一応、サンプルとして
n=6
装備中の武器アイコン+装備中の武器名
n=7
装備中の盾アイコン+装備中の盾名

②・・・ポーズサインの位置(0=左、1=中央、2=右)
イベントコマンドの『スクリプト』に例えば、
a = message_window?
a.pause = 0
↑ならば、ポーズサインを左に表示。
※記述詳細は、07/05/27参照

③バグ修正
・・・ \c[n]などデフォルトの制御文字を使うと、ウィンドウの幅が正しく補正されないバグ。
・・・ \gでゴールドウィンドウを表示中、所持金Max(9999999)を超える、
お金を獲得した場合の、回転数値の動作不良。
・・・ バトル開始直後、稀にViewportの取得エラー。

 ←こんな感じ(合成してます...)
カレンダー
03 2024/04 05
S M T W T F S
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
最新コメント
[08/04 Faust]
[05/26 takku]
[11/12 ぱんだ]
[06/28 AntwerpBlue]
[06/28 AntwerpBlue]
[02/07 ジャリン]
[02/07 ジャリン]
[02/05 白豆]
[11/28 I・S]
[11/26 I・S]
プロフィール
管理人
hide
ホームページ
ブログ内検索
カウンター
忍者アナライズ
忍者ブログ [PR]