SRPGStudio総合スレ その1 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
シミュレーションゲーム制作ソフト、
SRPGStudioについて語るスレです
■公式
http://srpgstudio.com/
■SRPG Studio wiki
http://www8.atwiki.jp/srpg_studio/
関連スレ
【同人ゲーム板】 - SRPG_Studio Part6
http://hayabusa6.2ch.net/test/read.cgi/gameama/1491309082/
【ゲーム製作技術】 - 製作者スレ SRPG Studio 24章
http://mevius.2ch.net/test/read.cgi/gamedev/1495252696/
◆注意事項◆
・次スレは>>950がワッチョイ形式で立ててください
・制作に関する質問や、作品・素材の投稿は自由です
・ほのぼの会話推奨。荒らしはスルー。NG機能を有効に利用しましょう
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) >>647
サンガツ!!!
これでええんか?
var StateItemAI = defineObject(BaseItemAI,
{
getItemScore: function(unit, combination) {
var stateInvocation = combination.item.getStateInfo().getStateInvocation();
var state = stateInvocation.getState();
var score = StateScoreChecker.getScore(unit, combination.targetUnit, state);
if (score < 0) {
return score;
}
if (combination.targetUnit.getClass().getClassRank() === ClassRank.HIGH) {
return score + 20;
//下級のレベル上限
}
return score + combination.targetUnit.getLv();
}
}
);
っていうかこれ武器持ってない丸腰のやつでも狙うのか
ポンコツやな >>648
それだと上級職がLV20扱いになっちゃう(returnの部分で処理が終了してしまう)
あと今後Studioの更新でStateItemAIクラスの中にgetItemScore以外のメソッドが追加されても無効化されてしまうから
以下のようなスクリプト書いてPluginフォルダに突っ込んだ方がいい
var LOW_CLASS_MAX_LEVEL = 20;
//StateItemAIのgetItemScoreだけをピンポイントで上書きする(他には影響しない)
StateItemAI.getItemScore = function(unit, combination) {
------------------------中略-----------------------------------
var level = combination.targetUnit.getLv(); //levelという変数に一旦レベルの値を入れる
if (combination.targetUnit.getClass().getClassRank() === ClassRank.HIGH) {
level += LOW_CLASS_MAX_LEVEL; // 上級職の時はLOW_CLASS_MAX_LEVELの値の分加算する
}
return score + level;// levelを加算した値をスコアとする
};
直接20を書かずにわざわざLOW_CLASS_MAX_LEVELとかいう変数を作っているのは
後で見直した時に何を意味するif文なのか連想しやすくするためのお作法 >>649
ちゃんと書いてくれてありがとやで
>>650
window-skillinfoの_isInvocationTypeをいじればええんやで
デフォルトだと
skilltype = this._skill.getSkillType();
if (skilltype === SkillType.FASTATTACK ||
skilltype === SkillType.CONTINUOUSATTACK ||
skilltype === SkillType.COUNTERATTACKCRITICAL ||
skilltype === SkillType.DAMAGEABSORPTION ||
skilltype === SkillType.TRUEHIT ||
skilltype === SkillType.STATEATTACK ||
skilltype === SkillType.DAMAGEGUARD ||
skilltype === SkillType.SURVIVAL ||
skilltype === SkillType.CUSTOM
) {
return true;
}
else {
return false;
}
ってなってるから、表示させたくない種類のスキルをコメントアウトするか、
全部表示させたくないならfalseで返しちゃえばええんやで >>636
なるほど、何度もすまんね
助かったよ本当にありがとう! 新しい安定版を試したいけど
プラグインがどれだけ使えるかわからない→そもそも数多くのプラグインを一つ一つちゃんど動作するか確かめるのに凄く手間がかかる
のコンボでいつも後回しになってくんだよなぁ
まぁネットで公開するようなゲームなら、バージョン変えずに制作した方が手堅いだろうけど 安定版だと分からないけどツールのアプデ止めるのはまずいなと
ふりーむに上がってるアルモリア物語やって思った
あれ何度もバグ修正してるのにたぶんツールのバージョン上げて
ないせいでエラー落ち系のバグが全然直ってないんだよな >>651
亀レスだけどありがとう! 勉強なったわ 作ってみて分かるのはシステム面よりもテキスト書くのがすこぶる面倒という 分かるなぁ
やれキャラの言葉遣いがおかしいだの時代考証が変だの言われるから
その辺の配慮を全力でやりつつ、さらにくどくならない程度の量の文書にしなければならない
海外だとそんな事はないのに テキスト面倒だと言う人は簡易な状況説明以外のテキストをいっそ無しにしてみるのも手だと思う 現在の章のバックグラウンドまでしっかり説明してくれれば問題ない
あとは後の展開の伏線を張ってればおk
敵でも味方でも重要キャラは早めに顔見せしておかないと、いざって時に誰コイツ?ってなるからな テキストと言えばヘルプの制御文字に\vo[a]って入れるとa.oggが再生される
って書いてあるけどこれのやり方分かる人いる
oggファイルをどこに突っ込んでも音出ないんだけど 適当にフォルダ作って
コンフィグにあるボイスフォルダ名ってところに指定するんじゃないかな 聞いてみるもんだねありがとう!
コンフィグにそんな項目あったの完全に忘れてたよ 連投すまんがプロジェクトと同じフォルダにvoiceフォルダ作って試しても無理だった
コンフィグのフォルダ名の指定の仕方が間違ってるとかなのかなぁ
出来たよって人いたら教えてもらえるとありがたい 講座に専用ページあったなんて完全に確認不足だった申し訳ない
それ見てやったら出来たよ、わざわざありがとう! 強弓スクリプトが機能しないんだけど
不具合起こすとかじゃなくて全く機能しない
バージョンは1.151です
他のプラグインが悪さしてるのかと思って新規プロジェクト作って試してみたけどこれもだめ
どうすればいいんだ…… 強弓スクリプトってEndrange伸ばしてるだけでしょ? {wtype:3}というカスパラを入れておいた弓しか射程伸びない仕様だけど忘れてない? もっというと弓じゃなくて
wtype:3というカスパラさえ入れておけば武器全般なんでも伸びるね
これが作者の想定している仕様なのかどうかは不明 強弓スクリプト自体は動くんだけど
待機型移動範囲と自軍攻撃範囲の表示変更スクリプトと一緒に使うと
射程が反映されないな >>670
待機型スクリプトの方の
USE_PROXIMITY_FIREやUSE_SUPERBOWをtrueにしてやれば動く
おそらく強弓スクリプトが無い時に余計な処理が挟まって
ゲーム全体の動作が重くなる事がないように配慮しているんだとは思う >>673
どうもありがとう
自分が使ってたの古いバージョンだった グリフォンライダーの歩きモーションって素材である?
素グリフォンがあるから、人間の方もありそうだけど見つからない ミスったすまん
闘技場プラグインがどうやっても起動しないんだけど俺だけ?
この手のプラグインで競合の可能性ってあるのかな >この手のプラグインで競合の可能性ってあるのかな
プラグイン競合の可能性の有無をでんでん(云々)する前に
まずは闘技場プラグイン以外を無効化して試せ、タコスケwww 既にやってる可能性もあるのでその指摘は当たらないと閣議決定 そうなんだよ
サンプルは普通に動くし
自分環境でプラグイン外してもうまくいかない
設定は丸写しで試してるんだけど動かんのよ とりあえず俺がやらかしたミスとしては
・変数の代入を面倒でパスしてた
・敵キャラの変数を新しく作ってなかった
・代金の「以上」「未満」の設定を厳密に作ってなかった
このくらいが挙げられるかな 場所注目で2マス注目したいなあ
2人で登場とか橋が2マス架かったとか表現したい 2マス用のカーソル画像作って表示させればいいんじゃない? 場所注目の画像表示なしとかと組み合わせれば違和感なく出来そうだよね 条件で領域を設定するみたいに囲んだとこに任意の色のパネルを表示とかできたら良いな >>682
闘技場っぽいスクリプトは変数の3ページ目、ID:0、1、2を使うんだけど…
変数を作成してないって事はないか?
あるいは、変数の最小値と最大値の範囲が最小値0、最大値999999になってないとか
(敵ユニットIDは65536以上の値になるので、変数の最大値が9999だと値が入らず正しく動かない) そういやあの変数のページ番号ってなんか意味あるの?
面倒だから適当に使ってたけど 思い切って最新バージョンに更新したらめっちゃ便利になっててびっくりした
もうインポート済みのファイルに手を焼かされなくてもいいんだ
ダメージポップは2回ヒットしたのかと思ったけどw
プラグインもほぼ使えるみたいだし、作者さんと職人さんに感謝 フュージョン中、特定の条件下でリリース出来ないようにするにはどうしたらいい?
海の上とかに置き去りにして嵌って動けなくなるのを防止したい デフォの状態で海の上とか進入不可のとこにはリリースできないけど ゴメン更新するの忘れてたわ
答えてた人いたのにクドくなっちゃったね >>696
ちょっと特殊な条件だった、説明不足だったわ
歩兵ユニット(テイマー)が飛行ユニット(グリフォン)にフュージョンして飛行ユニットにクラスチェンジするようにしてるんだけど
それだとフュージョン解除できるんだよね
これをなんとかしたい ん?
担いでいる側ではなく
担がれている側が飛行系クラスになっているから降ろせてしまうという事? だとしたら担がれている側を見た目飛行系の歩兵クラスに変えておくんじゃ駄目なのか?
聞いている感じだとリリースされたら元のクラスに戻るイベントを入れているもんだと >>692
変数の最大値は初耳だ
ちょっとそれ確認して設定しなおしてみるよ >>702
目から鱗だったわ
試したらうまくできた。ありがとう! 703ですが闘技場プロジェクトの原因は変数の上限でした
完全に見落としてました
教えてくれた人ありがとう! 強弓スクリプトとabsolute_counterのスクリプト一緒に入れると
absolute_counterの方が機能しませんね
強弓スクリプトの
AttackChecker.isCounterattack = function(unit, targetUnit)
の所に
var skillArray = SkillControl.getDirectSkillArray(targetUnit, SkillType.CUSTOM, 'absolute_counter');
for (var index = 0; index < skillArray.length; index++) {
if (skillArray[index].skill.getCustomKeyword() === 'absolute_counter') {return true;}
}
って入れると動きますが
一応報告しておきます! absolute_counter側はどうにもならないですね
確かに強弓スクリプト側に処理をマージしてしまえば済む話ではありますが
補足しておきますと
if (weapon === null) {
return false;
}
の後に
absolute_counterの処理を入れとかないと
反撃側のユニットが武器を持ってなくても反撃しようとしてバグると思います 闘技場プロジェクト使えるようになったと思ったら
OT氏のOT_ExtraConfigSkillとの競合でエラー吐くんだね
ExtraConfigBaseの188行が引っかかるみたいなんだけど、対策できてる人いますか? >>708
闘技場スクリプトの
VirtualAttackControl.createVirtualBattlingAttackUnitの中の
return virtualAttackUnit;よりも前の行で
delete virtualAttackUnit.unitSelf.custom.tmpNowVirtualAttack;
virtualAttackUnit.unitSelf.custom.tmpNowVirtualAttack = virtualAttackUnit;
OT_BeforeAttackSkill = true;
の3行を入れておく
そしてTemporaryDataVirtualAttack.jsの
最初の方に書いてある
// 攻撃前にスキル発動するか
OT_BeforeAttackSkill = false;
ってやつも移動させないと動かないかな?
----------------------------------------------------------------
EP・FPを消費してしまって攻撃できない可能性があるため修正
--------------------------------------------------------------------------*/
var OT_BeforeAttackSkill = false; <---ここに移動
(function() {
// 攻撃前にスキル発動するか
//OT_BeforeAttackSkill = false; <---ここに書いてある記述は消す
------------------------------------------------------------------------- おー、ありがとう!
無事に闘技場使えるようになったよ
EPFP武器は無限に使える感じなんだね ユニットごとに勝敗数を記録する機能を作ってみた
GBAやSFC FEのように戦闘に入った瞬間に更新される上に同一周回内の他セーブデータでも共有されます
つまり急いでリセットしても負け数はしっかり記録として残る
https://www.axfc.net/u/3848039 他のデータにも反映されるってすげえな
しかも全部ではなく同じデータだけなんだろ リアル戦闘ありで
戦闘画面に変移する直前に会話イベント発生させるのって
スクリプト使わないと無理かな これで発生するようになる
(function(){
var tempFunctions = {
RealBattleTable: {
_pushFlowEntriesBattleStart: RealBattleTable._pushFlowEntriesBattleStart
},
TransitionStartFlowEntry: {
_completeMemberData: TransitionStartFlowEntry._completeMemberData
}
};
AttackFlow._pushFlowEntriesStart = function(straightFlow) {
};
RealBattleTable._pushFlowEntriesBattleStart = function(straightFlow) {
straightFlow.pushFlowEntry(UnitDeclarationFlowEntry);
tempFunctions.RealBattleTable._pushFlowEntriesBattleStart.call(this, straightFlow);
};
UnitDeclarationFlowEntry.enterFlowEntry = function(battleTable) {
var coreAttack = battleTable.getBattleObject().getParentCoreAttack();
this._prepareMemberData(coreAttack);
return this._completeMemberData(coreAttack);
};
RealBattle.getParentCoreAttack = function() {
return this._parentCoreAttack;
};
CoreAttack._playAttackStartSound = function() {
};
TransitionStartFlowEntry._completeMemberData = function(battleTable) {
MediaControl.soundDirect('attackstart');
return tempFunctions.TransitionStartFlowEntry._completeMemberData.call(this, battleTable);
};
})(); 選択肢の表示で表示される位置を変えたいのですが
方法ありますか? 方法はあります。自分でプラグインを探して加工しましょう。 あれ? 敵行動パターンの待機型って仕様変わった?
最新版でプラグイン全部抜いたけど、行動範囲にこちらが侵入してもどいつもこいつもかかってこない
使える武器は持たせてるし、こっちから隣接して攻撃すればちゃんと反撃してくれる
もちろん行動できる場合でも待機するにはチェックいれてない あ、いや、正確に言えば、移動せずに攻撃できる場合は攻撃してくる
でも移動力はちゃんとあるし、移動範囲も表示されてるのに、移動して攻撃しようとはしてこない それ待機型じゃなくて行動型の「範囲内のみ行動する」の方じゃない? 連投ですまんが言い忘れた。プラグイン無しの新規プロジェクトでも確認してる 上で言ってるけど待機型はもともと移動しなかったと思うよ
近くにくると移動して攻撃してくるのは行動型の「範囲内のみ行動する」じゃない? >>723
うん
>>724
え、ずっと前から間違いなく待機型は攻撃範囲に入れば移動して攻撃してたけど
断言できる
もうずっと前、まだSRPG studioスレが2章だったころからずっとだな
最初に作り始めた時、待機型って攻撃範囲に入ったら移動してくんのか、イメージと違うなと最初に思ったし
それから20程度のステージを何度もテストプレイして動作を見てきてるからな
元々それがおかしかったってこと? おま環で
で、それがどっかの更新でたまたまおまえ環でも問題なくなったとか?
うわ、もうちょっと様子見て自分がおかしかっただけだったら、全ステージ作り直しだな
まぁ行動型+チェックにするだけならマクロ組めばそこまで苦労しなくてもいいだろうけど
とにかく騒がせてすまんかった 2年前とかだと流石に覚えてないけどもしかすると最初はそういう仕様だったのかな
2016/9/23の更新 (Ver 1.094)
【要望】ユーザー拡張に「行動パターンが待機型の場合は移動力0として扱う」を追加
敵ユニットの行動パターンが待機型の場合は、ユニットの行動範囲を表示する際に移動力が0とみなされます。
ってあるから少なくともこの時点ですでは待機は動かないって認識だと思う 魔法系のオリジナルモーションの戦闘画面が変なんだけど
モーションに入っても魔法のエフェクトがでないばかりか敵が表示されずにそのままフリーズする 連続スキル発動時にそれぞれの攻撃で指定したスキルを発動させるプラグインを作りました
要は2連続スキルで1撃目にHP吸収スキル、2撃目で防御無視スキルを指定すれば天空になるって事
https://www.axfc.net/u/3849803
あと敵が攻撃する時になるべく最短経路で移動するプラグインも入れました
例えば、既に隣接してんのに無意味に別方向から隣接し直す事はしなくなる 天空が発動するとフリーズするんだけど
新規プロジェクトでも実証済み
バージョンは1.153
おま環かこれ ウィーアーバンディッツ面白かったで!!!
今更やけどな
バンディッツみたいに魔防を防御対象にするスクリプト作ったンゴ
防御+魔防を防御対象にする武器もおまけで作っておいたで
自分用に作った魔力をそのまま攻撃に加算するスクリプトも公開しとく
ワイ自身Javaとかよくわかってないからガバガバかもしんない
https://dotup.org/uploda/dotup.org1352699.zip.html >>731
天空スキルにどんなカスパラを設定してますか?
記載された数値のスキルは設定されてますか? >>735
新規ゲーム作成してpluginに天空入れて
連続スキル作ってカスパラに
{continuousAttackInvodationSkillArray:[3,4]}
って入れてナッシュくんに天空つけて戦闘させたら止まります
3はダメージ吸収、4は必中です 俺も天空スキル何種類かのスキルで試してみましたがフリーズしました
エラー吐かずにフリーズしちゃうので何でかは不明 >>736
自分の環境では再現しませんが、
天空発動後にゲームを閉じるとマウスポインタの青いグルグルがしばらく出てきますね…
102行目に
generator = root.getEventGenerator();
を追加したら収まったのですが、これでフリーズの件も解決しませんか?
result = tempFunctions.NormalAttackOrderBuilder._setDamage.call(this, virtualActive, virtualPassive);
if (skill) {
generator = root.getEventGenerator();//<-------ここ(102行目)に一行追加する
generator.skillChange(virtualActive.unitSelf, skill, IncreaseType.DECREASE, true);
generator.execute();
} >>738
解決しました!
ありがとうございます! とりあえず修正加えたやつです
あとファイル内に追記しましたが、
この機能は一時的にカスパラで指定されたスキルを取得させて攻撃後に破棄する
という仕組みなので
覚えているスキル数が上限に達していると動かないです
この場合は上限を増やすか覚えているスキルを減らす必要があります
https://www.axfc.net/u/3849901 下級魔道士上がりの杖使いと下級杖使い上がりの杖使いで差がないのもなーって思って回復杖の計算式いじってみた
デフォルトの計算式(魔道士上がりの上級杖使いを想定)は魔力/2、
ヴァルキュリアとかシスターの計算式は(魔力/2)+5
ハイプリースト(シスターの上級職)は杖の回復値+魔力にした
まあおすそわけだ
良かったら使ってくれ
https://www.axfc.net/u/3850525?key=srpg wikiにあった立ち絵表示スクリプトの作者さんに感謝
これ見つけてから立ち絵にまでこだわりだしてもう制作がす進まなくなって嬉しい悲鳴じゃぁ
クラスで変えられるっぽいから夢が広がる ごめん。ちょっと聞きたいんだけど。
現在の仕様だと、Materialのvoiceフォルダ内の音声はメッセージの表示でしか鳴らせないんだよね?
これをイベントコマンドから直接指定したくて スクリプトの実行を使おうと思い手探りで色々と調べたんだけど
イベントコマンドからスクリプトのコード実行で
voicePlay(voice, 主人公勝利, null)
こいつを実行するとvoiceが宣言されてないってエラーがでた
このvoiceはcategoryにあたる部分で、
調べたところコンフィグで設定したvoiceフォルダ名のことだと思ったんだけど、なにか勘違いしてる?
なんか調べたら、宣言っていうのはvarとかで変数に対して使うものみたいだし ■ このスレッドは過去ログ倉庫に格納されています