Site
Enemies
RTP
Faces
Script

957610
 322   336 
 

目次

ここで公開しているスクリプトの著作権は完全放棄。
・マップ軽量化
・データベース限界突破
・データベース拡張
・連続行動スクリプト
・"本"スクリプト
・スキルウィンドウプレイヤーに丸投げシステム

マップ軽量化 2017/06/03 VXAce専用。
デフォルトで指数関数時間の計算量であった(恐らくRTP内で最も重い部分)と
見えていなくても存在しているだけで重いスプライトの生成開放に変更を加え
マップ中にイベントが多数存在してる場合の軽量化を施します。
プレイヤーのストレス軽減と基本的な処理量を減らすことで
比較的重めかつ毎フレーム実行するようなスクリプトの使用へのハードルを下げます。

ソース

データベース限界突破  

ソース
データベースの最大数を999から無制限に増やします。
エディタにも反映されます。
ただしバックアップはしてください。
データが消えたとか言われても責任もてません。
あと増やしすぎると重すぎのあまりエディタが死に、
プロジェクトを開くことが困難になります。気をつけてください。

データベース拡張  

ソース
サンプル
よくある武器とか防具とかの改造システムの基幹部分です。
武器や防具を自動生成してみたり、アイテム集めて改造してみたり
生きている装備品が成長したりとか
そういうのを出来るようにしてみたいけど、
(主に)データベースとかどうやって弄ればいいのかわかんね。
っていう人向けのスクリプトです。

ただしこのスクリプトは建造物に例えるなら基礎の部分であり家屋は付属していません。
っていうか上に上げた武器防具に対しての各種アルゴリズムって
普通自分で考えるんじゃね?
放置でよくね?

特徴
・エディタのデータベースを一切弄らない
・$data_weaponsの1000~3000番を使用するので使わないでください、
 とかそういう事言わない。柔軟剤使ったくらいには柔軟。
・できるかぎりシンプル。驚きの白さ。
・ただし作った物が行方不明になりやすい
 (正確に言うと、アイテムとIDの対応が製作者には全く予想不可能。
  どのアイテムのIDが:100か判らない。
  逆にID:101のアイテムがなんのことかさっぱり。
  尤もこの手のシステムすべてが抱えている問題ではある。)
・デフォルトのアイテム群と自然な共存が可能。
・改造自体は容易
・改造を施すシーンやシステムは丸投げ
・イベント組んで頑張れ(´ω`)

メソッド(重要な物)
$game_system.clone_item( symbol , id_or_name)
symbolには :weapons :armors :items :skills
のいずれか
id_or_nameはIDか名前を入力
・オブジェクトのコピー
・IDの作成
・データベースへ登録
各種処理を行った上でアイテムのオブジェクトを返す

item = $game_system.clone_item(:weapons , "ロングソード")
item.atk += 10
$game_party.gain_item(item, 1)

で通常より攻撃力の高いロングソードをゲッツ可。
または

item = $game_system.clone_item(:armors , 3)
item.def += 10
$game_party.gain_item(item, 1)

以上で通常より防御力の大きなフレイムシールド入手。

生きている武器やらなんやらはそのうち増えるかもしれません。

連続行動スクリプト  

ソース
おまけ
武器/スキル/アイテム/エネミーの通常攻撃が行われた時に
各種メモ欄に指定の書式で制御文字列を書いとくと
行動発生後に指定の行動を再度取るように変更されます。

【書式例】
<ca>
{type=5 target=ランダム false_stop code=rand(2)==0}
{type=10 target=ランダム retarget true_stop code=rand(2)==0}
{type=0 target=ラストターゲット}
</ca>

以上が上から順に実行されていきます。

・type=n
 行動の種類。スキルのIDを指定します
 type=0の場合通常攻撃が行われます。
・target=n
 再行動時の対象です。
 ランダムならスキルの効果範囲内からランダムに、
 ラストターゲットの場合、先程行動した対象を再度選択します
・false_stop 後のcodeによる判定で失敗した場合(=実行されなかった場合)
 それ以降すべての行動を終了します。
・true_stop ほぼ同上です。
 判定に成功した場合終了します。
・retarget 再行動を取ろうとした時に
 targetがラストターゲットかつ対象がすでに死んでいた場合に
 ランダムに対象を選択します。
・code=foo
 その行の行動が行われるかどうかを判定するコードです。
 文字列によって保存されevalで評価されます。
 foo以降の改行は完全に無視されます。
 code=fooは行の最後に書くようにしてください。

本体だけではcode以下で乱数を用いた判定程度のことしか行いづらいですが、
おまけを追加する事で行動したものや、行動対象の能力値による比較を行いやすくなります

スキルウィンドウプレイヤーに丸投げシステム  


↑15秒で判る画像。というか説明するのが非常にかったるいシロモノなので
全て画像で説明しちまえ的な。
ソースはこちら
追加スクリプト
追加スクリプトを使うとメニュー画面からセッティング画面へ移行出来ます。