レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part2
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので
極力調べてから質問しましょう
前スレ
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1250722590/
ななあし様へ、要望です。
1.(>>542 )と同じですので、他の使用目的を挙げます。
・「(>>183 )にて不可とされる、複数の回復・能力上昇スキル」
mpの均等配分は可能ですが、発動に時間がかかります。
代わりに他のスキルをdelay = 5などとしては間延びします。
不具合覚悟でattr = allなどで可能かもしれませんが…。
・「スキル装飾」
pairだけでは足りませんでした。
仮にdamageによる遅延設定可能でも、小規模のものしか作れませんので。
next(2)などの設定が使えたらと思っています。
バグ報告を兼ねます。
2.「(nextスキル以降で)ターゲットの再照準・進行方向の屈折(角度変更)が設定可能にはできませんか?」
静止型から直進型では、スキル進行方向がおかしくなっています。
homing = onでは近くの敵に。
offでは画面下方向に進行します。
どうやっても攻撃指定位置には進行しませんでした。
加えて、プレイヤーが先読みしにくいスキル作成にも使えそうですので。
>>540
与えたダメージの数値表示ですが、初期バージョンで一度付けた所
とても見づらく感じたのでHP回復時のみ表示するように変更した経緯があり、
おそらく追加する事はないと思います・・・
デバッグモード時の限定表示については後ほど検討いたします。
>>542
今の所、healスキルからnextでつなぐ事は不可能です。
missileスキルからnextでhealスキルにつなぐ事は可能ですが
対象ユニットが敵のみに絞られますので実質的に能力ダウンスキル以外は
使えません。
より柔軟なnext仕様の追加についても後日に検討しようと思います。
なるほど、ズーム率や攻撃回数の違いでそうなるのでしょうね。
私が提案したのは標準実装ではなく選択制だったのですが、
デバッグ限定でも切り替えが出来るとなれば、バランス調整だけでなく、
記述を推奨してデフレなシナリオでも役に立ちそうですね。
ご検討の程よろしくお願いします。
>>545
・「スキル装飾」ですが、例えばpair_nextのスキルαで
3種類の装飾スキルA、B、Cを重ねて発射させたい時は
skill α
{
rush = 3
rush_interval = -1
next_last = on
next_order = on
next2 = A, B, C
}
としてみてください(もしかしたら上手くいかないかもしれませんが・・・)
>>545
・「スキル装飾」ですが、例えば3種類の装飾スキルA、B、Cを
pair_nextで重ねて発射させたい時は中継用の空スキル α を用意して
skill α
{
rush = 3
rush_interval = -1
next_last = on
next_order = on
next2 = A, B, C
}
のようにしてみてください。(もしかしたら上手くいかないかもしれませんが・・・)
>>545
2.「ターゲットの再照準・進行方向の屈折(角度変更)」
静止スキルからnextで直進スキルにつなげた際は
術者から静止スキルの発生位置の角度方向に進行するように
したつもりなのですが、画面下方向に固定となるとバグかも
しれませんので後ほど検証しようと思います。
なお静止スキルの発生位置が術者とほぼ同座標の場合は
進行角度が真上か真下に固定されてしまいます。
又は、nextが複数連鎖されてる場合は途中で進行角度が
リセットされてしまう場合があります。
なお、nextの途中でhomingの追尾目標を変更ないし
左クリックによるターゲッティングで任意指定する事はできません。
ななあし様
constiの値によるダメージ算出の回答ありがとうございました。
参考にします。
ちょっとお尋ねします。
人材ユニットの移動に関して、
ユニット(A, B, C,...)いずれかを含む勢力が、領土(a, b, c,...)全てを失陥した時、
ユニット(A, B, C,...)のうちその勢力に所属するユニットは、特定スポットに移動する。
という動作をさせたいのですが、この場合
ユニットAの所属勢力が[領土aを持たない][領土bを持たない]...である時、Aは特定スポットに移動する。
ユニットBの所属勢力が[領土aを持たない][領土bを持たない]...である時、Bは特定スポットに移動する。
;
と個別に処理させてくしかないでしょうか?
イベントで動的に構造体のメンバへの上書きって可能でしょうか?
具体的には、addSkillで追加したSkill群を全部リーダースキルにしたいのですが。
>>549
>>550
ありがとうございます。
1.のスキル装飾の例は、別件で上手く使うことが出来ました。
ただ、現行仕様ではhealスキルの(発動者を除く)対象者に表示などは出来ませんね。
2.の件は無理でしたか…。
他の方法で代用出来ないか試してみることにします。
一度雇用した内政ユニットをユニットの雇用欄に表示させないためには
どうすればよいのでしょうか?
ななあし様
イベントスクリプト関連のバグ?報告です。
バグかどうかよくわからないので現象を報告させていただきます。
■状況
本体ver4.48
作成中のオリシナをデバッグモードで起動(タグ名skill、class、eventを指定)
scenario構造体で fight = XX でevent構造体を指定
戦闘開始前イベントスクリプトでeraseSkill(ユニット、スキル・・・・)とaddSkill(ユニット、スキル)を利用しスキルのデリートインサートを行う。
対象のスキルはstatusタイプのスキルでtypeは1を指定(アイテムスキル)
戦闘開始後、観戦モードで先頭を観戦。
すると以下の現象が発生しました。
■現象
ユニットのスキルアイコンの表示確認。
戦闘開始前イベントスクリプトでスキルXXのデリートインサートを行っているためスキルXXのアイコンは1つしか表示されないはずだが
2つ表示されている。
対象のステータスを確認すると効果は1回分だけのようである。
おそらくアイコン表示上の問題だと思われます。
また同一のスクリプトをisNewTurn()の新ターン開始時でも使用していますが
こちらではアイコンが2つ表示されることはないため、戦闘開始前イベント固有の問題だと思われます。
なんというか長くなりましたが、戦闘開始前イベントでスキルの削除追加を行った場合、スキルアイコンの表示に問題が発生する可能性があります。
検証不十分のため、こちらの勘違いかもしれませんが、ご確認のほどよろしくお願いいたします。
>>556 のような事が僕も同じ事が起きました。
確認した限りだと、リーダースキルの確認は戦闘前(fightのイベントの前)に一度だけ行われるため、
効果はその時のものだけになるようです。ちなみにそのLSが戦闘のスキル欄に追加されてました。
戦闘前に必殺技の削除をし、別の必殺技を追加するという事もやったのですが、
削除した技はステータス欄上でLSによって付与されている時と同じアイコンになり、
戦闘中は普通に使用でき、戦闘後に削除されました。
>>552
ご提示されたケースでは、ユニットを中心にした方が良いので
仰る通りユニットごとに個別に判定していく形が望ましいと思います。
>>553
skillデータはスクリプト解析以降固定化されてますので
動的な変更はできません・・・・
(セーブ要素を増やす必要が出てくる為)
>>552
ご提示されたケースではユニットを基準にして条件判定を行った方が良いので
仰る通りユニットごとに個別に判定していく形が望ましいと思います。
>>556-557
ご連絡頂いた現象ですが、
addSkillは「ユニットコンテキスト」(元データ)と
「ユニット」(戦闘時に元データから作成されるキャラ)の双方にスキルを追加し、
eraseSkillは「ユニットコンテキスト」のみからスキルを削除する仕様になってますので
戦闘開始イベントでeraseSkillをしても、すでに元データから
作成されている「ユニット」からはスキルが削除されず
その為にスキルが二つ表示されるようになってしまいます。
なお「リーダーから付与されたスキル」の判定は
「元データに存在しないのに戦闘時ユニットが所持している」条件で行ってますので
eraseSkillでスキルを削除すると付与スキルと表示されてしまう事になります。
eraseSkillによって元データのみからスキルが削除されると
付与スキルと表示されてしまう事になります。
ご回答ありがとうございます。
ユニットをグループで管理するのは難しいのですね。
ななあし様、回答ありがとうございます。
addSkillとeraseSkillの件ですが理屈はわかりました。
勝手なお願いですが、以下のお願いは実現可能でしょうか?
・eraseSkillの仕様を「ユニットコンテキスト」「ユニット」の両方からスキルを削除するよう変更
・もしくは、戦闘時の「ユニット」の生成タイミングを「ユニットコンテキスト」からスキルの追加削除を行った後に変更
影響範囲が大きく修正に工数がかかる等、無理があるようであれば、あきらめます。
【追加で質問です】
1:文字列変数の有効期限は、文字変数への代入時からターン終了(次ターン開始時)までという認識でOKですか?
2:storeUnitOfPower()など文字変数への代入関数、および文字変数の加算減算を
戦闘開始時イベントで使用する場合、それ以外で使用する場合と動作に違いはありますか?
上記のスキルの追加削除にも関係するのですが、新ターン開始時と戦闘開始時での勢力所属ユニットの差分を
とろうとして、いまいち上手くいかないための質問です。
お手数ですが、ご回答よろしくお願いいたします。
>>555
unit 内政ユニット
{
politics = unique
}
のように設定すると、その内政ユニットが内政領地に存在してる間は
雇用欄に表示されなくなります。
>>564
ご回答ありがとうございます。
言葉足らずですみません。本当は内政領地からも消したかったのですが、
その必要がなくなったのでそのようにやってみます。
お手数をおかけしてすみません。
>>563
eraseSkillによる削除をユニットコンテキストだけにしたのは、
addSkill(goto, sp_super) 元データと戦闘キャラに追加される
eraseSkill(goto, sp_super) 元データから削除される
戦闘が終わると戦闘キャラは全消去される
とする事で
その戦闘のみ使用できる特別スキルを設定できるようにする為でしたので
申し訳ありませんが現状維持しようかと思います・・・
なお質問の件ですが
1、文字変数の値はゲームリセット(タイトル画面に戻る)、又は再ロードされるまでずっと保持されます。
2、文字変数への代入および加算減産の動作はどのシーンでも全く同じです。
eraseSkillの件、了解しました。
文字変数の有効期間については非常に参考になりました。
条件判断に文字変数の値を用いると、リロードすることで結果が変わることがあるわけですね。
戦闘開始イベントでおかしな挙動をしていた原因がなんとなくわかりました。
スクリプトを見直してみます。
度々ご回答ありがとうございました。
>558
ご回答ありがとう御座いました。
unit構造体に固定値を入れることで対応しようと思います。
#unit.loyal等もですが、動的に変更できると汎用性高くなると思いましたが残念です。
スキル構造体の「damage = -2」の動作がよくわかりません。
たとえば、直進型の場合。
「目標(敵)到達までは通常動作。
目標で命中・消滅せず、通過。
発動者〜スキル発動時の発動者に最も近い対象、この距離分をさらに進む。
rangeを超過することもある。」
こういうことでしょうか。
funcやmovetypeなどで変化しそうですけれど。
arcやdropは着弾点の延伸、でしょうか。
>>569
damageの効果は「直進型スキル」と「それ以外のスキル」の二つに分かれます。
「直進型スキル」で damage = -2 とすると
敵にヒットせずnext_last=onと併せて繋ぎスキルにする為の設定です。
射程内にいる最も近い敵の位置まで飛びます。
例えばスキルのrange=600でも敵との距離が200ドットなら飛距離が200ドットに詰められます。
damage = -3 も同様に繋ぎスキルとして使う為の設定ですが
これは射程内にいる敵との距離に関係なく例えばrange=600なら
そのまま距離が詰められる事なく最も近い敵の方角に向けて600ドット直進します。
「それ以外のスキル」では、damageがマイナス値の違いはありません。
敵にヒットしなくなるのでnext_last=onと併せて繋ぎスキルにする為の設定です。
ななあし様
4.48最新版のおそらくバグ報告です。
オリシナでemploy_range = 99の設定にしてあっても人材雇用の際緑ネームで表示され、現地にユニットを置かねば雇用できない状況になっています。
一つ前のver(4.48)でオリシナファイル毎移し同じデータで確認した際には通常通り(他領から)雇えましたのでおそらく本体のバグではないかと思います。
度々の更新お疲れ様です。このような素敵な作品で遊ばせて頂いていることにとても感謝しています。
これからも更なる開発、大変かもしれませんが期待しています。
>>570
ありがとうございます。
damageがマイナス値の設定方法がよくわかりました。
追加で質問です。
1.damage = -2、range = 500の直進型スキル場合ですが。
発射時に敵との距離が200、発射後にその敵が遠ざかっても500までは進む。
発射位置から500を超える地点まで逃げ切ればスキルは消滅する。
こういう認識でよろしいでしょうか?
2.damageがプラス値の場合、マイナス値のようなfuncでの違いはありますか?
wikiでは「ヒットから数値ターン後に…」ではなく、「出現から数値ターン後に…」となっていますので。
直進型と静止型、放物線型と落下・上昇型、少なくとも2種類ありそうですので。
加えて、直進型でtimeと同時に設定するとhardのような動作になっている気がします。
3.timeを設定した場合、speedによる「(ヒット後の)消滅までのターン数」に違いはありますか?
たとえばtimeが同じでも、speedが0と1000と10000では違う気がします。
加えて、damageがそれぞれのマイナス値設定の場合も違う気がします。
ななあし様質問です。
・やりたいこと
条件式関数のisInvade()を使い、ある領地で行われた戦闘の攻撃側と防御側の勢力を調べたい。
ある領地を所持する勢力は特定の勢力ではない。(領地、領地を保有する勢力、どちらも不特定多数を想定してます)
以下のようにコーディングしています。
1.戦闘開始前イベントで領地を所持する勢力の識別子を取得、あわせて戦闘があったことを示すフラグをセット
storeSpotOfBattle(@bS)
storePowerOfSpot(@bS,@bP)
set(isBattle,1)
2.戦闘終了時
if(isBattle == 1){
if(isInvade(p1,@bP)){
setVar(@P1,p1)
msg(&@bP&に&@P1&がせめたよ)
}
if(isInvade(p2,@bP)){
setVar(@P2,p2)
msg(&@bP&に&@P2&がせめたよ)
}
以下、存在勢力分くりかえし
set(isBattle,0)
}
3.結果としては攻撃側ではない勢力でもmsg()が処理されてしまいます。
(実際はmsg()ではなく別の処理ですが)
根本的に私の使い方が間違ってるような気もしますが、isInvade()の挙動がよくわかりません。
isWar()とisInvade()を合わせて使っても同様の結果です。
よろしければ使用例を提示して頂ければありがたいです。
あと他に直前の戦闘の攻撃側、防御側を調べる方法があればご教授お願いします。
>>571
こちらで確認した所、employ_rangeを増やせば全領域で雇用できましたので
雇用先の領地が分断されてないかを確認してみてください・・・
>>572
1、damage=-2 の時はスキルを発射した瞬間の敵位置に向けて飛びますので
その後に敵が動いても飛距離が変わる事はありません。
2、damageを1以上にするのは直進型スキル以外の動作に影響します。
timeで設定された表示期間のdamageターン目に当たり判定が発生します。
(デフォルトでは 0 なのでスキル表示直後に当たり判定が発生する)
3、timeへのspeedによる影響はありません。
直進型スキルの場合は飛距離の違いで表示時間の差があるように見えるのだと思います・・・
>>573
isInvade(A, B) は今思うと設計を失敗した形になっておりまして、
引数AとBには直前で行われた戦闘の両陣営を正確に記述しないと
全く無意味な判定値が返ってくる事になります・・・
直前の戦闘の防御側を調べるには、storeSpotOfBattleで得られた領地を引数にして
storePowerOfSpotをコールし勢力を得る方法があります。
しかし攻撃側を調べる方法は現仕様ではありません・・・
「Playerが同盟を3期連続継続した場合、その勢力と永久同盟にする」ってのを作りたいんだが
累計ターン数だと他のイベントで「強制同盟20ターン」とかが使えなくて悩んでる
これトリガーにしてみたら?ってのないかな
>>575
ありがとうございます。
1.予想したものとは違いましたが、よく分かりました。
2.少し疑問はありますが、その前提を考慮して試してみることにします。
3.長くなりますので、次に書き込みます。
ななあし様
isInvade(A, B) の件、了解しました。
とりあえず、戦闘前後ですべての勢力の総戦力値を比較し、総戦力が変動した勢力でかつ
防御側でない方を、取得することで攻撃側の勢力を識別することがおおむねできました。
573に書いた攻撃側を識別し処理するイベントは、戦力値に変化のあった勢力に対するイベントを想定してましたので
目的は達成することができました、多分。(わずかな確率で例外ケースは考えられますが、許容範囲内です)
攻撃側が戦力値を変化させることなく、完全勝利、及びその後雇用を実行しなかった場合は、依然として判別不能ですので
そういったケースにもなんらかのイベントを発生させたい場合には問題が残りますが。
できれば、直前の戦闘の攻撃側と防御側を識別できる関数等検討していただけると幸いです。
回答ありがとうございました。
ななあし様、検証結果報告と要望があります。
578の続きです。
3.に関して。
直進型スキルにおけるspeedとtimeの関係を検証しました。
比較する際に誘導をつけています。
直進型スキルのヒット後の表示時間にはrange、speed、timeが関係しているようです。
rangeの残りの距離をスキルが移動する時間内でtimeが設定可能です。
damage = -3の時のスキル表示時間(発射から消失まで)がtimeの理論上最大値です。
最接近しても理論上の最大値にはならないと思いますが。
対象にrangeの最大距離でヒットした場合、timeの値をいくら大きくしても表示されません。
また、speedが速くなればなるほど、rangeまでの到達時間が短くなるため表示時間が短くなります。
別件ですが、検証時に気が付きましたので要望します。
直進型スキルでhomingをつけた場合、一定以上のspeedで対象と重なっているスキルが左右に振動してしまいます。
振動しないスキルの限界speedは150程度ですので、動きの素早い対象は捕捉し続けることが出来ません。
対して静止型スキルのhomingでは、速くても重なったまま綺麗に表示され続けます。
直進型スキルの場合も静止型のように表示することは出来ませんか?
回復スキルなど、全ての対象に対して同様のことが出来ればとも思いますが。
>>574
領地は分断されておらず(隣の領地)
他2,3のオリシナで確認したところも同じような現象が起こりました。
本体も落としなおしてはみたのですが、他にそのような報告もないのでこちらのなんらかの不具合かもしれません・・・
もう少し探ってみたいと思います、ご返答ありがとうございます。
特定の領地の戦力を底上げすることはできないでしょうか?
コンピューターが防衛施設のある領地に低い戦力で攻め込むのを防ぎたいのですが、
対策があれば教えてください。
582さんの質問に関しては自分も対策できるなら知りたいです。
領地の戦力値算出時にmap内に配置されたユニットの分の戦力値を上乗せするとか
spot構造体にvalueを設定できるようになればありがたいです。
>>581
申し訳ありません。
ゾーン制でない時は仰せの通り所在地しか雇えないようになっていました。
当方の確認不足によりお手数をお掛けした事を深くお詫びいたします。
(土壇場でコードの一部を変えてしまった事が原因でした・・・)
ただちにバグ修正して再アップいたします。
>>582-583
仰せの通り、spot構造体に戦力値を底上げする value データ項目を
追加いたします。
>>579
isInvade関数の仕様を下記のように変更し
isInvade(勢力)
引数の勢力が直前戦闘の攻撃側であった時は 1 を返すようにしました。
なお従来の引数を二つ並べる書式のままでもエラーにはなりません。
(二番目の引数が無視されるだけです)
あと、直前戦闘の攻撃側勢力を文字変数に代入する
spotPowerOfAttack(文字変数)を追加しました。
>>577
御質問された件ですが、これは初期配置時の勢力など
特定の固定勢力を対象とするなら以下の手順で何とか可能です。
1、対象勢力の数だけカウンタ(数値変数)を用意する。
2、毎ターンの開始時に(isNewTurn()でチェック)対象勢力と同盟状態にあるかチェックする
3、同盟状態なら専用カウンタを+1し、そうじゃないなら0にリセットする。
4、カウンタが一定値以上(デフォなら三期間の同盟で18ターン以上)になったらそのカウンタ用の勢力と永久同盟にする。
>>580
すいません。
御指摘通りrangeによって表示時間に差が出る事がありました・・・
なおhomingに関する御要望の件ですが、申し訳ありませんがこのケースの為に
スキルの進行速度の修正をする事は現時点では見合わせたいので、
homingスキルがヒットした後に、speed=150程度の別のhomingスキルにつなげる方法で
代用してみてください・・・
>>584
再アップありがとうございます。
ゾーン制でない状態と前置きするのを忘れていました。お手を煩わせてすみません。
様々な要望に毎度丁寧に答えて頂き感謝しております。
素早い対応ありがとうございます。
imageファイルについて質問です。
imageファイルとしてかためる前のフォルダを紛失してしまったのですが、
imageファイルの画像や名前を確認することはできないのでしょうか。
>>591
>>165-166
前スレ>>445 もどうぞ
_**のタイプは正直人に聞いたほうが早いと思う
>>592
すみません、前スレを見落としてました。
ペイントで開けるなら、なんとか再構築も可能ですね・・・。
どうもありがとうございます。
>>587
あわわ、お忙しいところありがとうございました、使わせて頂きます
>>586
ななあし様
毎度のことながら、対応の早さに驚きの念を禁じえません。
ありがとうございます。
>>588
分かりました。
静止型スキルを除く、homingによる(攻撃・回復)対象の継続捕捉は見合わせですね。
とりあえず放置するか、moveの遅い敵に対する攻撃スキルとして作成することにします。
>>596
一応見直しまして、homingスキルが敵に接触してもspeedを調整して
左右に振動しないようにしました。
>>597
少し試してみたところ、問題なさそうでした。
修正していただき、ありがとうございます。
スキル作成の幅が増えました。
質問です。
next_interval、rush_interval、timeは同じ経過時間だと思いますけれど。
(数値1で、1フレーム分の経過時間)
anime_intervalも同じでしょうか?
anime_interval = 1ならば、anime1コマは1フレーム表示。
= 3ならば、1コマは3フレーム表示。
= 5でtime = 4ならば、2コマ表示で2コマ目は1フレームのみ表示。
ゲーム画面左上の経過時間についても知りたいです。
同様に、時間1に対して1フレームでしょうか?
質問です。
引数の勢力が持つマスターの識別子を代入する関数はありませんでしょうか?
自己解決しました。
storeLeaderOfPower(@randkuni, @tekiunitrand)
set(pagerand, 0)
while(pagerand < countVar(@tekiunitrand))
{
storeIndexVar(@tekiunitrand, pagerand, @tekiunit_onerand)
add(pagerand, 1)
if(isMaster(@tekiunit_onerand) == 1)
{
(@tekiunit_onerandがマスターだった時に起こすイベント)
}
}
この1人1人をチェックするスクリプトは非常に使いやすいですね。
>>599
anime_intervalとtimeによるフレーム数は大体仰るとおりです。
しかしプログラムの構造上の問題から実際は少しずれておりまして
例えば、anime_interval=4 かつ anime=4(4コマのアニメ)のスキルで
きっちり4コマを表示させたい時は理論上の総フレーム数16から−2して
time = 14 としなければなりません。
なお戦闘シーンの時間は10フレームごとに1減ります。
>>602
回答、ありがとうございます。
参考になりました。
確認です。
anime、anime_intervalの数字が変わった場合ですが。
同様に、timeを「総フレーム数 - 2」に設定するときっちり表示される、という認識で良いでしょうか。
報告です。
nextスキル以降でrushとhomingを同時に設定すると、そのスキル以降が移動しなくなります。
これは仕様でしょうか?
>>603
timeを「anime×anime_interval−2 」の数値にすると
アニメの全コマ数がきっちり表示されると考えてください。
ただ、−2の補正はプログラム構造上のミスっぽいので後に修正するかもしれません・・・
rushとhomingの同時設定による不具合ですが、これは後に検証いたします。
(なお、発動時の目的地点に到着してるならそれ以上は移動しません)
ただスキル連鎖のプログラム部分は最初の設計を失敗した事から
後の更新部分を複雑怪奇な形で追加する形になってしまいまして
一部を変更すると他の部分に影響が出る危険が大きく
多少の不具合はスルーする可能性が高いですのでどうか御了承ください。
>>604
ありがとうございます。
timeについては、その計算式の値で設定しておきます。
今後修正されるとしても問題ありません。
スキル連鎖関連は、そういう問題がありましたか。
回避策や別の案を考えてみることにします。
えーと、ななあしさまはいらっしゃいますでしょうか?
IFシナリオの光を継ぐ者作ったものですが、一時期メルトアのセリフがおかしくなったのは
間違いなく私のせいです。
その修正に手間をかけさせてしまいました、この場を借りて謝罪させていただきます。
本当に申し訳ありませんでした。
>>606
わざわざ御連絡くださいまして大変恐縮です。
どうかお気になさらないでください。
シナリオを作ってくださいました事に深く御礼を申し上げます。
Power構造体のFixのon/offを切り替える関数って出来ますでしょうか?
ex)
・homeが侵されたときにだけ攻撃を実行する
・eventAが実行されたら中立領土にも手を出さない
などの処理を行いたいのですが…
微妙なところなので勘違いだったらすみません。
上下以外の方向に直進型のスキルを打つと、少し上側に向かう気がします。
指定をしても指定位置から少し上にずれました。
>>609
center = onが設定されていない、と予想します。
有無どちらでもそうなるのであれば、ななあしさんの返答待ちですね。
>>610
どうもありがとうございます。なんとなく改善したようです。
更新履歴を見る限り、centerの挙動が変更されたのでしょうか。
別のスキルですが、極端にrangeの短い直進スキルを位置指定で撃つと、上の方にしか飛ばなくなりました。
centerを付けると問題なく使えますが、変更されたなら他のスキルへの影響が心配ですが。
>>611
最近の更新では、centerの変更はされていない気がします。
実際にはどうか判りませんが。
range = 10、check = 50、speed = 1000の直進型スキルでは指定位置方向に問題なく進みました。
最低限の設定ですのでcenterなどは設定していません。
問題が発生するのは、最初のスキルではなくnextスキルでしょうか?
homingの有無など、もう少し情報が欲しいです。
>>612
こんな感じです。
skill skillA
{
func = missile
range = 10
rush = 2
next = skillB
next_last = on
}
skill skillB
{
image = m_fire3
w = 32
h = 32
d360 = on
range = 64
speed = 600
damage = -3
}
これで多分なると思います・・・。
このまま位置を指定して撃つと、強制的に上方向に飛び、最初のスキルのrangeを伸ばすごとに徐々に曲がります。
色々と試してみましたが、なぜかrushを消すと真っ直ぐ飛びました。rush=1ではだめでしたが。
すみません、多分すっごい初歩的な質問なんですが、
デフォシナにてED(S6ムナード党)を作りたいんですが
story munado_ed
{
friend = sc6
if(isPeace() == 1){
if(isPlayer(munado) && yet(munado_ed)) {
event(munado_ed)
}
}
}
event munado_ed
{
////イベント/////
}
この様にしているものの、
全領地を制圧した瞬間にイベント→イベント終了後、ターン終了でゲームクリア
となってしまいます。
他のエンディング同様、ターン終了→「大陸を制覇しました!」のメッセージ→エンディング とするには、どの様に記述すれば良いのでしょうか。
他のスクリプトを参考にしたり isGameClear を使ったりしているんですが全くうまくいきません。
どなたかご教授願います・・・。
>>613
確かに、真上方向から±40°程度が限界値となりますね。
原因はこの辺りだと思われます。
検証:最初のスキルにrush、nextが設定されている攻撃スキル
1.rushの最中にnextスキルが発生する。
(最初のスキルで攻撃方向を決定しますが)rushなどでずれが生じるようです。
完全にではありませんが、centerで軽減することが出来ます。
2.rangeがスキル発動者と重なる。
キャラクターの多くは32 * 32(円の半径は24)です。
rangeが一定数値未満では重なってしまうため、位置指定がうまく機能しないようです。
(※最初のスキルは静止型・直進型で検証)
回避するには、おそらくrange = 25以上必要となります。(※checkでは不可。)
また、最初のスキルの設定range内に位置指定すると精度が高いです。
逆に、それを超える場所に指定すると精度が低いです。(少し上側に逸れます。)
代替案:skillAのみ変更します。
こうすれば上記の問題とは無関係です。
skill skillA
{
func = missile
range = 10
time = 5
next2 = skillB, no * 4
next_interval = 1
next_last = on
next_order = on
}
skill noは作成していないスキルです。
rush = 2、rush_interval = 5(=省略時)の設定に合わせています。
next2 = skillB, no, no, no, no でも可ですが、こちらが簡単だと思います。
next_order = onがありますので、「skillB、不発、不発、不発、不発」の順番で繰り返します。
ただ、skillAではrush_degreeなどの角度変更が使えません。
>>609
直進型スキルの軌跡ですが、仰せの通り少しずれてましたので
修正いたしました。
しかし確認が不足してる恐れもありますのでまだ不具合があるようなら御連絡ください。
>>610
power構造体の fix の設定を以下のように修正しました。
off :普通に侵攻する(省略時のデフォルト)
on :他国に侵攻しない
home:homeデータに列挙された領地にのみ侵攻する
なお、changePowerFix(勢力, on/off/home) 関数で随時変更できます。
>>614
すいません。これもバグでした。
更新バージョンの方で修正しましたので今度はstory構造体の
EDイベントが発動すると思います。
>>616
対応感謝します!
>>616
対応ありがとう御座います。
早速、導入してみようと思います。
>>615
詳細な検証をして頂きありがとうございます。
他の部分をそぎ落とせば対処できるのでしょうが、
別のおかしな挙動(派生スキルにcenterつけたら全方位にランダムなど)が発生するなどなかなかイメージ通りにいかなかったので、
違った形で作ってみる事にします。
>>616
ご対応ありがとうございます。
無事、指定した際にも真っ直ぐ進むようになりました。
ななあし様
度々の更新お疲れ様です。
本体ver4.51で追加された「スクリプト機能を追加しました」
というのはどのようなものなのでしょうか。
おそらく製作に関係するようなものではないかと気になってwikiやスレを探したのですが見つからず。
こちらの勘違いや見落とし、また後日追記予定のものであったらすみません;
>>620
>>616 じゃないかと…?
>>616
なるほど、そういうことでしたか!
理解しました、お手を煩わせて申し訳ないです。
改造初心者です。
改造するどころか、まだデータを見ることさえ出来ていません。
scriptでデータを改造するんですかね?
scriptの中のデータをひらいてみたんですが、文字化けと16進数しかでてきません。
こんな質問に付き合える方がいらっしゃいましたら、返答お願いしますm(_ _;)m
>>623
ふりーむで落とした物はスクリプトが暗号化されているので中物入れから本体を落とすべし
>>623
おかげさまで見ることができました!
後は色々弄ってみます。
本当にありがとうございました!(*^_^*)
間違えた、>>623 ではなく>>624 です
addSkillで追加するスキルの識別子は文字変数でもできますでしょうか?
今作っているスクリプトだとユニットは文字変数でも大丈夫ですがスキルは文字変数だとうまくいきませんでした。
私のミスかもしれませんし、もし仕様であるなら別な方法を取ろうと思います。
あと質問なのですがユニットやクラスのスキル、フレンドなどの複数指定できる箇所に要素数の制限はあるのでしょうか?
教えていただけると幸いです。
よろしくお願いします。
すみません。もう一つ質問なのですが人材プレイでキャンプウインドウを使って
あるアイテムを買ったらプレイヤーのユニットが変化(違うユニットへチェンジ)するようにしたのですが
場所の移動をしないと情報?が更新されず、ワールドマップ上には以前のユニットが出続けます。
(状態ボタンからみればちゃんと新しいユニットになっています)
何か画面の更新をする関数等ありますでしょうか?
また、内政ウインドウは過去のレスより閉じることができるとのことでしたが
キャンプウインドウは閉じることができますでしょうか?
質問事項が多くなってしまい恐縮ですがお答えいただければ幸いです。
ななあし様、要望があります。
unit構造体とclass構造体にて、以下のような耐性情報を隠す・記述可能な設定は実装出来ませんか?
検討していただけるとありがたいです。
consti2 = (文字列 * 数値,文字列 * 数値,…)
consti2で設定した耐性の情報は非表示となる。
custom_consti = (文字列)
省略時はconstiで設定した耐性の情報が表示される。
設定時にはconsti情報が全て非表示となり、代わりに文字列が表示される。
使用目的ですが。
1.耐性情報の飽和を防止。
耐性を多く設定するとフェイス画像に重なってしまいます。
また、文字が小さくなるのも防げます。
2.複数属性(攻撃)の設定。
属性毎に分割した分だけダメージが通らなくなります。
攻撃力を強化すると、防御力の大小でダメージ幅が大きくなってしまいます。
3.手探りのゲームが製作可能。
現在は必要な情報全てが表示されるため、事前や戦闘中に対策が可能ですが。
耐性だけでも隠せるならば、未知の敵はそれだけで脅威となります。
スキル構造体でhide_helpで攻撃属性なども隠せば、その効果は更に高まります。
また、攻略(弱点)のヒントを記述する使い方も出来ます。
4.consi値によるダメージ算出における倍率の幅が拡大。
副産物です。
別件です。
PNG画像のアルファ値が認識されないのは仕様ですよね。
透過部分を作るには、a = (数値)で設定するしかないでしょうか。
>>627
addSkill関数のスキルですが文字変数による指定はできません・・・
スキル名を直接指す文字列のみ指定できます。
なお文字列を複数列挙するデータでの要素数の制限はありません。
>>628
申し訳ありませんが、キャンプによるステータス変更に伴う
ワールドマップ上のユニットアイコンを更新させる関数は
現仕様ではありません・・・
なお、キャンプウィンドウを閉じる関数も現在の仕様ではありません。
これらにつきましては後ほどのバージョンで
追加しようと思います。
>>629
属性情報の非表示機能の追加ですが、これは申し訳ありませんが
当方の考えるコンセプトと些か相反する部分がありますので
見送らせていただこうと思います・・・
このゲームはリアルタイムという性質上一つ一つの攻防の効果を
確認し辛いという欠点がありますので情報を隠蔽してしまうと
逆に混乱を招きやすいのではないかと考えてます・・・
ある程度攻防の効果を実感して貰うにはプレイヤー側の予備知識が
必要となると考えてますので、その為にもあえて情報をフルオープンにするつもりです。
(変な例えですが英語のリスニングで英文を見た後の方が
テープの発音をよく認識できるようなそんな感じです。)
このゲームで使われる画像素材では透過部分と非透過部分の二種類しか認識されず、
半透明色の設定はできません。
a=(数値)による半透明は画像全体に適用されますので
一部分だけを透過する又は半透明にするといった処置は出来ない事になります。
>>601
返事が遅れてしまいまして申し訳ありません。
お褒め頂いてありがとうございました。
>>620
申し訳ありません。
後ほどwikiの方にも追加記述いたしますので少々お待ちください。
>>631
回答ありがとうございます。とても参考になります。
関数を追加していただけるということでありがとうございます。
また、ユニットアイコンの更新があれば問題ないとは思いますが、もう一つバグ?を見つけたので一応報告いたします。
キャンプウインドウでユニットを変えて、ワールドマップの画像が更新される前に
新たなユニットにaddSkillで新たなスキルを追加し、そのあと場所を移動(更新が発生?)すると落ちるようです。
addSkillをする前に移動しておけば落ちませんでしたので更新前にaddSkillがダメみたいです。
いじりながらやっているもので、何度も連投になってしまいすいません。これで最後だと思います。
要望なのですが関数のptestも文字変数を使えるようにしていただくことは可能でしょうか。
よろしくお願いいたします。
勢力A,B、領土a,bと有った場合に、領土a,b,cがどちらかの勢力に属しているか?と言うif文を作りたいのですが、
if ((inPower(A, a) == 1 || inPower(B, a) == 1) &&
(inPower(A, b) == 1 || inPower(B, b) == 1)) {
}
とすると構文エラーを吐きます。
当然、論理和同士を囲んでいる中括弧を取ると結果は変わってしまうのですが、
この場合、論理和一個ずつのif文をネスト(下記のように)していくしか方法は無いでしょうか?
if (inPower(A, a) == 1 || inPower(B, a) == 1) {
if (inPower(A, b) == 1 || inPower(B, b) == 1) {
}
}
誤:勢力A,B、領土a,bと有った場合に、領土a,b,cがどちらかの
正:勢力A,B、領土a,bと有った場合に、領土a,bがどちらかの
>>632
現在あるシナリオでは、多人数戦闘が前提で難しいですけれど。
1.最大出撃部隊数を減らす。
プレイヤーの操作は減りますし、確認しやすくなります。
2.type = wallの壁を設置することで、道幅の狭い通路(小部屋)を作る。
多人数同士の戦場でも相対する敵を限定することが出来ると思います。
戦場マップは迷路状のものや細長いものになります。
それらに加えて、一時停止やダメージ表示がありますし。
一人旅、少数部隊による作戦行動、常に多方面戦闘必須、などのシナリオならば可能と考えたのですが…。
方向性が異なるのであれば、わかりました。
透過と非透過の二種類を認識ですね。
ありがとうございます。
半透明は使わずに作成することにします。
>>619
確認してみました。
前述の派生スキルにcenter = on、攻撃位置指定、スキル発動者が移動。
この条件を満たすと、派生スキルの発射方向がおかしくなりますね。
原因がskillAのrangeでなければ削るしか回避策が無さそうです…。
違った形で作成出来れば良いですね。
>>635-636
バグ連絡ありがとうございます。修正いたします。
なおptest関数に文字列変数を用いる件ですがこれは申し訳ありませんが
検討させて頂きます・・・
(こちらの考えとしては文字変数を用いる必要性がそれほど無いように考えてますので・・・)
>>637
条件式内では中括弧が使えませんので御提示された通りの
条件分岐構文にしてください。
>>641
ご回答ありがとうございます。
ネスト深くなってしまうのは若干見辛くて困りますが、何とか対応します。
>>641
回答ありがとうございます。
ptestの用途についてですが、内政ユニットの数が多くなってしまったため、条件判定の文を書くのが大変&大量になってしまったので要望した次第です。
具体的にやろうとしたことは、先ほどまでの質問と関係してくるのですが、内政を用いて好きなスキルをいくつかユニットに追加するということをやろうとしています。
先に内政地に追加するスキルに対応する内政ユニットをいくつか雇用し、トリガーとなる内政ユニットを雇用するとそれらをまとめて判定し、
ユニットにスキルを追加するといった手順でやろうと考えています。
スクリプトとしては内政ユニットと、スキルを文字変数に格納しておき、指定した内政ユニットがいたら、対応するスキルをユニットに追加するというのを考えており、
以下のような構文が使えたらなぁと考えていました。
先に内政ユニットを@naisei_listに、スキルを@skill_listに順番が対応するように格納しておく
set(i,0)
storePlayerUnit(@unit)
while(i < countVar(@naisei_list))
{
storeIndexVar(@naisei_list,i,@naisei)
if(ptest(poli_spot,@naisei)>0)
{
storeIndexVar(@skill_list,i,@skill)
addSkill(@unit,@skill)
}
add(i,1)
}
一つ一つ条件判定を書くことで代替できましたので
実装が大変なようでしたら見送っていただいて構いません。
何度も真摯に質問に答えていただきありがとうございます。
>>643
文字変数につきましては動的で柔軟なデータアクセスを行う事を主目的として
実装した経緯がありましてそれを扱える関数に対しても動的なアクセスが
必要となる部類の関数のみを選定するようにしたので、
御提示されたユニットの識別子をまとめる為の御用法に特化させた
文字列用引数の追加につきましては申し訳ありませんが
現段階では見送らせて頂こうと思います。
後日に改めて検討するという事でどうか御了承ください。
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板