製作者スレ SRPG Studio 26章©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
ファイアーエムブレムみたいなSRPGが作れるソフト
SRPG Studioについて語りましょう
●公式
http://srpgstudio.com/
●公式アップデートリンク
http://srpgstudio.com/update/
●販売元 DLsite.comにて5,940円で発売中(体験版もあり)
http://www.dlsite.com/home/work/=/product_id/RJ153191.html
●SRPG Studio wiki
http://www8.atwiki.jp/srpg_studio/
関連スレ
●SRPG_Studio Part8【同人ゲーム板】
http://mao.2ch.net/test/read.cgi/gameama/1501447648/
●SRPGStudio総合スレ その1【ゲームサロン板】
http://mevius.2ch.net/test/read.cgi/gsaloon/1499093921/
◆注意事項◆
・ゲームアイデアの提案や、スレ以外で公開されたゲームの寸評などは同人ゲーム板の方をご利用ください
・スレで公開された作品の寸評をする場合、棘のある言い方をしないように。マナーを守りましょう
次スレは>>950が立てるように。立てられない場合は安価を指定するなどして、他の人にお願いしましょう
●前スレ
製作者スレ SRPG Studio 25章
https://mevius.2ch.net/test/read.cgi/gamedev/1499767086/ ∧_∧ / ̄ ̄ ̄ ̄ ̄
( ´∀`)< オマエモナー
( ) \_____
| | |
(__)_) 偉そうに能書きをブッいておきながら
かたくなに感想は書かないスタイルw このツールって、製品版でもshiftキーで一括選択とかできないの? >>404
コントロールキー押しながらクリックだと、クリックした部分だけセンター北出来るぞ >>406
とりあえず体験版で3面くらい作ってみて
挫折したらそこでバイバイ
もっと続きを作りたくなったら購入
みたいなノリでいんじゃね?? 熟練度が上昇するに従って命中率が上昇するってシステムを作ろうとして
とりあえずCB氏の「$singleton-calculator_custom.js」の記述を弄って
AbilityCalculator.getHit = function(unit, weapon) {
var cls = unit.getClass();
var hitb = cls.custom.hitp;
var value;
の下に
var values;
を加えてから // 武器の熟練度が(ランクD)の場合、Dランク補正をつける
if (AbilityCalculator.getJyukurendo(unit, weapon) >= 31) {
values = (ここに数字が入る);
}
// 武器の熟練度が(ランクC)の場合、Cランク補正をつける
if (AbilityCalculator.getJyukurendo(unit, weapon) >= 71) {
values = (ここに数字が入る);
}
// 武器の熟練度が(ランクB)の場合、Bランク補正をつける
if (AbilityCalculator.getJyukurendo(unit, weapon) >= 121) {
values = (ここに数字が入る);
}
// 武器の熟練度が(ランクA)の場合、Aランク補正をつける
if (AbilityCalculator.getJyukurendo(unit, weapon) >= 181) {
values = (ここに数字が入る);
}
// 武器の熟練度が(ランクS)の場合、Sランク補正をつける
if (AbilityCalculator.getJyukurendo(unit, weapon) >= 251) {
values = (ここに数字が入る);
} という感じでクラスごとの補正について記した後に原文の最後にvaluesを加える形で
if (typeof cls.custom.hitp !== 'number') {
// 武器の命中率 + 技 * (数字) + 運 * (数字) +武器熟練度補正
value = weapon.getHit() + RealBonus.getSki(unit) * (数字) + Math.floor( (RealBonus.getLuk(unit) * (数字)) + values );
}
else{
value = weapon.getHit() + RealBonus.getSki(unit) * (数字) + Math.floor( (RealBonus.getLuk(unit) * (数字)) + values ) + hitb;
}
return value;
};
って感じに記述したんだがゲームで確認すると命中率の値が--になってしまって機能しなくなってしまう
誰か解決できる人がいたら教えてくだせえ
他のスクリプトや記述でいい方法があるのならそれでもOK
(連レス申し訳ない、改行が多すぎって弾かれるのよ……) >>413
それ熟練度が30以下だとvaluesに何も値が入ってない状態(undefined)になってしまう
undefinedが計算に混じって計算結果がおかしくなって表示できなくなってしまってるんじゃないかな ほんとに「$singleton-calculator_custom.js」だったら頭の$でスクリプト自体無効化されてない?
あとあんま関係ないけどwikiにある奴だと経験値の算出部分のバージョンだいぶ古いっぽいけど平気? 自分の場合、統合calのSランク補正の数値弄ってE〜Sまで補正付けたけど
3すくみ不利だとこの補正切るやり方がわからなくて結局諦めた >>414
なるほど、ありがとう
アドバイスに従って
// 武器の熟練度が(ランクE)の場合、補正をつけない
if (AbilityCalculator.getJyukurendo(unit, weapon) <= 30) {
values = 1;
}
の記述を増やしたらちゃんと機能した……のはいいけど、
今度は本来かかるはずの補正がかからない……
どれだけ武器レベルを上げても確率は1%も変動しない……
武器レベル自体はステータス画面のページ切り替えでちゃんとレベルが上がってる事を確認したし
これは最初から自作した記述自体が間違ってるって事……? よく分からないけどまず自分で記述追加する前はうまく動いてたん?
追加部分がまずいんだったら新しい変数とか作らずに単純にSランク補正のコピー増やしたら
武器ランクC以上でvalueを+1、B以上でさらに+1……Sだと累計で+5みたいな感じにして >>418
うーん……自分で記述したものを抜いた素の記述でも機能していないみたいだな……
素の01〜04…、10…のプラグインだけを新規プロジェクトに突っ込んで武器ランクをSにして確認したけど
全く命中率は変わってなかった
そもそもが動いてないとはまいった 他のスクリプトファイルに
AbilityCalculator.getHit = function(unit, weapon) {
と書かれているものがあったらそいつが邪魔だから消すか、
頑張って合体させるしかない >>420
いや、完全に新規作成したプロジェクトでやったんだ
だけど何故か動かない、同梱されてた他のフォルダもきちんと導入してるのに
今のバージョンじゃ動かないとかあるのかな? >>421
AbilityCalculator.getHitは最新版でも使われている
たぶん最初からこのメソッドはあったと思うからstudioのバージョンは関係ないと思う
以下のように最後のあたりのif文でroot.logを4箇所に仕込んでみて
コンソールログでどのように表示されるか確かめてみればはっきりするかもしれない
これらがログに全く出力されなければ書いた部分を通過していない事になる
hitbやvalueやvaluesの値を出力するように仕向けているから値がおかしくなってないかついでにチェックしてみるといいかも
root.log("if文の前まで到達");
if (typeof cls.custom.hitp !== 'number') {
root.log("trueと判定");
// 武器の命中率 + 技 * (数字) + 運 * (数字) +武器熟練度補正
value = weapon.getHit() + RealBonus.getSki(unit) * (数字) + Math.floor( (RealBonus.getLuk(unit) * (数字)) + values );
}
else{
root.log("falseと判定 hitb =" + hitb);
value = weapon.getHit() + RealBonus.getSki(unit) * (数字) + Math.floor( (RealBonus.getLuk(unit) * (数字)) + values ) + hitb;
}
root.log("if文終了:value = " + value + "values =" + values); よく見たら>>415の通り
ファイル名自体が悪くて機能が無効化されているのでは
でも、その場合競合もしてないはずのに
命中率が表示されないって現象の説明がつかないな >>388
序盤は山賊、中盤は敵国攻めたり攻められたり、黒幕は竜
なんだ、シナリオなんて要らないじゃないか! >>388
シナリオが面倒な人は戦略SLGやRTSのキャラ性が薄いゲームのキャンペーンシナリオとか参考にすれば良いと思う
基本的にマップ前に説明が入るくらいでシナリオは簡潔
その手のゲームはキャラやシナリオが薄い分ゲーム性が重要
逆に難しいかもしれないけどね SRPGって時点でSLGに比べてゲーム性に大幅なハンデやしなあ FE好きなユーザーってシミュレーションってよりもRPG寄りのゲームがやりたいんじゃないかなって思わなくもない >>422
わざわざありがとう、試してみたよ
熟練度Sの状態で試した結果↓
if文の前まで到達
trueと判定
if文終了;value = 80 values = 1
if文の前まで到達
trueと判定
if文終了;value = 80 values = 1
if文の前まで到達
trueと判定
if文終了;value = 80 values = 1
if文の前まで到達
trueと判定
if文終了;value = 80 values = 1
if文の前まで到達
trueと判定
if文終了;value = 80 values = 1
(以下延々と続く) >>429
つまり書いたスクリプトの処理は確実に行われていて
武器レベルSの補正が1
命中は支援効果抜きで80と計算されているわけだけど
数値は合ってる?
補正が1なのがおかしいというのであれば
何らかの理由で武器レベルが251に達しておらず武器レベルSのif文を通ってない可能性が濃厚
80だけがおかしいなら最後の計算式の(数値)の部分が色々誤っているだけ
ここまで計算通りなのに実際に表示される値が全く違う場合は
競合ファイルが紛れ込んでいるとしか思えない >>427
高い難易度のゲームを叩くヤツとかそうなんだろうな ユニットに顔グラがついてレベルの概念がある時点でRPG要素強いからなぁ
顔なしで兵種のみのSLGとかRTSに比べるとどうしてもメインのユーザー層が違うしね
でもまぁ、ヘックスマップじゃないターンベースのSRPGで高難易度とか言っても
包囲要素もないし壁作るのもヌルすぎて高難易度()って感じだが ストーリー気にするタイプはRPG寄りが好きなんだろ
俺はRPG自体あまり好きじゃなくてゲームのストーリーとかどうでもいいと思ってるタイプだが ・ベタな剣と魔法のファンタジーで好きな子育てたいライトRPGヲタ
・ガチSLGはやりたくないけどパズルや戦術ぽい気分は味わいたいライトSLGヲタ
・特定のブランド信者
あたりのスキマ層がメインの産業やしな、SPRGって 出たばかりの時はRPGシミュレーションと名乗ってた >>430
調べてみたらどうも「ランクは間違いなくSになっている筈なのにランクEとしての処理(つまり30以下の場合)しか行われない」みたいな感じになってるらしい
俺の勘が正しければ「たぶん書き出しが全く同じ処理が連続して行われた場合最初の一回のみ参照してあとは無視」されるようにSRPGSTUDIOの仕様でプログラムされてるから
elseのif文とか使って一回目の処理で書き出さなきゃならないけど
実は最初の処理自体コンソール上では計算されてるけど何故かゲーム内に反映されてないという謎の現象が起きてるわけで……
投げた。 >>439
あと考えられるとしたら
武器レベルの上限値をカスパラでやたら低く設定しているぐらいかな
クラスなりコンフィグのカスパラにswdMax:1とかaxeMax:1とか書いているとか
カスパラの設定ミスがありえないなら
よほど手の込んだ改修をスクリプトに入れて結果的にバグってるか
いらないファイルがこっそり紛れ込んでいるかしかないけど
プロジェクトファイルやプラグインフォルダの中身を直接見ない事には自分もこれ以上はわからん…スマヌ >>439
武器にカスタムパラメータで武器タイプ {wtype:XX} (XXは数値)が設定されていないんだと思われ。
武器タイプ(wtype)が設定されてないから
武器タイプ(wtype):undefinedになってて熟練度の値が拾えていないんだと思う。 >>442
画像見たけど…
コンソール表示部分の計算式は武器命中率+ 技×1 + 運×0.5 "+" valuesになってるのに
一番最後の命中計算式だけが武器命中率+ 技×1 + 運×0.5 "×" values(+hitb)になってるんだが…
多分それが原因だと思う >>442
if文の順番が前のレスに貼られているやつと逆になってる…
その場合でレベルSだと
全てのif文の中通った上でレベルDの補正値が最後に適用されてしまうぞ
前のレスでは武器レベルが低い順に書かれているからスルーしてた 流れをぶった切って質問です
章のタイトルが長くなると
目標確認ウインドウでタイトルが折り返して二行になってしまいます
だから目標確認見出しの丸紙の横幅を長くして一行に収めたいんです
screen-objective.jsのどこかで横幅を設定していると思うんですけど
どうすればいいでしょうか 信じて送り出したフタナリ彼女が農家の叔父さんの変態調教にドハマリしてアヘ顔ピースビデオレターを送ってくるなんて
を「生業の影で」にする等タイトルを工夫して省略する 毎章テレビ欄のサスペンスドラマみたいなタイトルの付いてるSRPGとか面白そう いっそこういうので
ttps://youtu.be/VGc0fltEw9U >>445
ObjectiveWindowクラスの_drawTopのtitleCountの値を増やすと横に伸びない? >>449
できました。ありがとうございます
それをプラグインにするのがまだ上手くいかないです…… >>443-444
何度もすまない……
だがやっぱり画像の最後にある「命中率が反映されない」という現象は何度やっても治らないんだ……
やっぱ詰みなのか?これは…… >>452
他のroot.logはもう消していいから
return value;の前にroot.log(value);と入れて見ろ
そこで表示される値 + 支援補正値 がステータス画面に表示されるはず
書き方から察するに
命中値 = (武器の命中値) + (技) + (幸運) * 0.5 * (武器LV補正値) + (カスパラによるクラス補正値)
でいいんだよな?補正がかかるのは幸運だけでいいんだよな?
間違っているんだとしたら余計なスクリプトが悪さしている
そこに表示される値がおかしいんだとしたら、単に計算式が想定通りになってないだけ >>451
もしかして…テストユニットの幸運0になってない?(初期データのままだと0の筈だが)
442で挙がってた最後の式が「武器命中率+ 技×1 + 幸運×0.5×values」になってるので
幸運が0だと幸運以降の計算結果は「0×0.5×values = 0」ってなって
武器レベルがSだろうが武器命中率+技の値だけになっちゃうんだけど… >>453
>>455
ありがとう……たぶん>>455のやり方で正しいと思う
とりあえず動いたからゲーム内できっちり動くかどうか確かめるよ
長々と申し訳なかった。ありがとう 既出だったらすまないんだが、目パチとか口パクのスクリプトってどこかにある? 持っているアイテムの耐久値に応じてステータスを上げるって方法ってないかな
耐久値が7の状態だと攻撃力が+7されて耐久値が減るに従って-1ずつされてく、みたいな感じの武器を作りたいんだけど
SRPGのあれこれに載ってる「カスタムパラメータ」の「スクリプトの反映」にある例2を参考に作ろうとしたらよく分からなくなってしまった AbilityCalculator.getPowerでいいなら装備武器のデータ引っ張ってきてるし
weapon.getLimit()を足すだけいいんじゃね >>459
あ、すまん特定の武器だけ
セブンソードって武器を持ってたらその処理は働くけど
アイアンソードって武器だと機能しない、みたいな 俺もスクリプト勉強した訳じゃなくて見様見真似なんで適当だが
if (typeof weapon.custom.Limit === 'number'){pow += weapon.getLimit();}
とかで装備武器にLimitってカスパラに数字が書いてあった時だけ力が上がる感じになるはず
ステータス上げてるんじゃなくて攻撃時のユニット能力補正を参照するとこだから少し変な気もするけど >>461
なるほどありがとう
つまり攻撃力を直接上げるためには別のパラメータを弄ればいいのか……
俺の予想だとたぶんパラメータボーナスのスキルを管理するところにヒントがありそうだな
うーん、ここは分からないから詳しい人が来るのを待とう
こっちでもできるだけ調べてみるけど いや、むしろ攻撃力を直接上げるだけでいいならAbilityCalculator.getPowerでいいと思うよ
ステータスを上げるとか言ってたからParamBonusとかの方をいじった方がいいかと思っただけ >>463
すまん、説明の仕方が悪かった
「力」のパラメータが+されるようにしたい
できれば他の武器だと今度は素早さが上がるとかも 単純に武器のステータスボーナスを耐久値倍にするだけでいいなら
BaseUnitParameterのgetUnitTotalParamBonusのd += this.getParameterBonus(weapon);の下に
if (weapon.custom.Limit !== null) d *= weapon.getLimit();
とか入れれば何とかなるかも
ただこれはあんまり綺麗な方法じゃないだろうしちゃんとしたものがほしいなら
詳しい人に聞いた方がよさそう >>464
武器補正値計算してんのは
BaseUnitParameterのgetUnitTotalParamBonusの中の
d += this.getParameterBonus(weapon);って書いてあるとこ
getParameterBonusの中は武器以外の要素も取り扱う事があるからこの部分を改造するのが最も正しい
手抜き気味だけど
if (weapon !== null) {
d += this.getParameterBonus(weapon);
}
ってところを
if (weapon !== null) {
d += this.getParameterBonus(weapon);
if (weapon.custom.limitCorrectionIndex === this.getParameterType()) {
d += weapon.getLimit();
}
}
っと書き換えて
武器のカスパラに
limitCorrectionIndex: ParamType.POW
って入れてやれば力に耐久力の分だけ補正がかかるようになるかな
素早さあげたければカスパラを
limitCorrectionIndex: ParamType.SPD
にする >>466
わざわざありがとう
でも実行すると「文字コードの認証に失敗しました」とかエラーメッセージが出てきてしまうんだがこれはどうして?
後この処理を単独スクリプトで処理する事って可能かな
万が一アプデした部分と被ると問題になりそうで…… >>467
BaseUnitParameter.getUnitTotalParamBonus = function(unit, weapon) {
<getUnitTotalParamBonusの中身コピペして該当箇所改良する>
};
でいけるけど
今後のアップデートで
getUnitTotalParamBonusの中が変わればうまく動かなくなる可能性はある
アップデートする度に差分がないか確認していくしかない
そうやって管理していくもの
そのエラーは正直よくわからないw変なエディタでファイルを修正してしまったんじゃないか? >>468
メモ帳で拡張子変更してやって、一回弾かれてから拡張子がUTC-8で保存した事に気がついて
他の奴と同じANCI形式で保存したけどやっぱりダメで
もういっそのこと他の奴の記述全部消してそれで上書きしてやって、
でもやっぱりダメで……
それで今に至る >>468
すまん自己解決した
じゃあこれで最後になりそう
BaseUnitParameter.getUnitTotalParamBonus = function(unit, weapon) {
getUnitTotalParamBonus: function(unit, weapon) {
var i, count, item, n, id, objectFlag, skill;
var d = 0;
var arr = [];
// 武器のパラメータボーナス
if (weapon !== null) {
d += this.getParameterBonus(weapon);
if (weapon.custom.limitCorrectionIndex === this.getParameterType()) {
d += weapon.getLimit();
}
}
return d;
},
って入力したら「構文エラーです」って表示されてしまう
どこか違うかおしえてくれ たのむ! 確認してないけどこれでいいんじゃないの
耐久足すだけだと耐久高い武器でインフレするしカスパラかなんかで最大を決めて
最大 * (weapon.getLimit() / weapon.getLimitMax())とかにしたほうがいいと思うけど
(function(){
var alias = BaseUnitParameter.getUnitTotalParamBonus;
BaseUnitParameter.getUnitTotalParamBonus = function(unit, weapon){
var value = alias.call(this, unit, weapon);
if(weapon !== null && weapon.custom.type === this.getParameterType()){
value += weapon.getLimit();
}
return value;
};
})(); >>471
何から何まですまない・・・
でもゲーム中で確認したけど効果が反映されてないみたいなんだ
プラグインも全部抜いて確認したけど働いてない
もう自分が情けなくて泣きそうだ そのままコピペしたんなら武器のカスパラもtype:ParamType.POWとかにしないと動かんよ >>470
getUnitTotalParamBonusの中全部コピペした上で該当箇所書き換えないと動かんって https://www.axfc.net/u/3855742
ちゃんとしたやつ
さっき言ってたのと違って複数パラメータ補正かけられるようにした
limitCorrectionIndexArray:[<HP>,<力>,<魔力>,<技>,<速さ>,<幸運>,<守備>,<魔防>]
だとして
あげたい能力にだけtrueを書いて他にはfalseを書いてくれればおk
こんなふうに書くと
limitCorrectionIndexArray:[
false,
true,
false,
false,
true,
false,
false,
true
];
力と速さと魔防に耐久の分の補正が乗るようになる
力だけあげたい場合は2番目だけをtrue, 速さだけをあげたい場合は5番目だけをtrueにして他をfalseにすればいい >>475
ええ!?キュウブさんじゃないっすか!!
貴方のスクリプト素材既に使わせてもらってます・・・
わざわざすいませんでした本当ありがとうございます それと>>473さんもこんな夜遅くまでありがとう
これを機にゲーム作りを更に頑張ります >>475
乙
これ武器だけじゃなくて道具で補正かかっても面白いなと思ってweaponの部分をitemに差し替えたら動かないけど
この処理って対象のカスパラ持ちの道具がアイテム欄の一番上にあるかどうかで判定してる? >>478
そのスクリプトは装備武器しか対象にしてない
アイテム処理に関しては
元のgetUnitTotalParamBonusの中を見ると
アイテムを片っ端から取得してパラメータを加算している処理があるからそこ参考 >>479
>>465の奴のすぐ下の奴だよね?
でもこれだと使用不可能アイテムの処理の場合加算がされなさそう あんまりこのソフト処理の仕方がはっきりしてないからね
公式のマニュアルもかなり不親切だし
まぁウディタに比べればこれでも255倍はマシだけど >>482
また成りすましが出てきたか……
こいつのせいで本当に質問が返って来ないこともしばしばあるから本当やめてほしい if (n !== 0 && ItemControl.isItemUsable(unit, item)) の中は
補正値0、使用できないアイテムに関する処理は行われないよ
通常のアイテム補正と同じだと思うけど >>484
まいったな・・実は欲しいのはズバリその使用不可能アイテムを持っている時にだけ耐久値に応じてステータスが増減する処理なんだ
公式に要望出すしかないんかな >>483
新規の人以外はほとんどわかってるから反応しない方がいいよ
それでも気になるなら荒し対策で作られたこっちで話すといい
SRPGStudio総合スレ その1 [無断転載禁止]
http://mevius.2ch.net/test/read.cgi/gsaloon/1499093921/ 使用不可アイテムにカスタムスキル付けて、そのカスタムスキル持ってる時だけ処理が行われるようにすればいいんじゃないの >>486
ありがとう、いや長々と質問したりするならこっちの方が最適かなーと思ってね
>>487
実はそのアイテム(交換不可)の耐久値の値が激しく上下するのがゲームの肝になっててね・・
カスタムスキルでは対処しきれない内容なんだ ???
処理の一番前にカスタムスキルの設定かませるだけやで?
アイテムがなくならない限りカスタムスキルは消えないんだが じゃあ
if (n !== 0 && ItemControl.isItemUsable(unit, item)) {
d += n;
}
の後に耐久補正処理入れればいいんじゃね? >>489-490
ごめん、スクリプトに関する知識が全くといっていいほどないんだ
自力でできたのは「杖の時(アイテムID1)の回復を幸運で計算する」というスクリプトを「アイテムID2のアイテムで回復するのを力で計算する」に変更するってのにできたのが関の山 補足すると公式のスクリプトマニュアルとかwikiとか読んだけどそれでもさっぱり分からなかった wikiの武器レベルスクリプト(下のやつ)を入れてみたんだけど
NormalAttackOrderBuildierは宣言されていませんってエラーは一体どうすればいいの… 123410とフォルダがある奴なら普通そんなエラーにはならないはずだからそっちにしたら? >>497
なんでJSいじるのにメモ帳なんて使ってんだよwww
Sublime TextやTeraPadを使えってばwwwww 導入するのサボって俺もメモ帳でやってるよ
不便なのはわかりきっている ■ このスレッドは過去ログ倉庫に格納されています