忍者ブログ
RPG製作情報など
[139]  [138]  [137]  [136]  [135]  [134]  [133]  [132
×

[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
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
カレンダー
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]