レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part2
-
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので
極力調べてから質問しましょう
前スレ
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1250722590/
-
そして、scenario構造体のworldにセットされたevent構造体の方で
新ターン開始時にcond_markが0より上だったら-1して、
0になったらα傭兵団のユニットをプレイヤー勢力から削除するという
処理を記述すれば傭兵団の雇用期間も実現できます。
内政ユニットをtalent = onにする必要は全くありませんのでどうかご確認ください。
-
>>487
friendに列挙したクラスは強制的にメンバー可能と見なされていまい
雇用は可能でメンバーのみ不可という形にはできません。
「雇用は可能だがメンバーにするのは不可」という設定は自クラスでのみ可能ということで御了承ください。
-
了解しました。
雇用とメンバー関係の設定で試行錯誤してたもので、出来ないとわかってスッキリしました。
回答ありがとうございました。
-
>>483
1、この場合は、
movetype = normal (これは省略可能)
speed = 0 (これも省略可能)
homing = on
の様に静止型スキルで「homing = on」とすると
発生した静止型スキルが術者を追尾する形となりますので
例えば一定時間バリアを纏うようなスキルを実現できます。
2、現verでは停止させる事は出来ず、減速するだけなのです・・・
スキル発射後の停止仕様については後日に追加を考えようと思います。
3、静止型スキルのnextの効果対象者のズレにつきましては
これも後日に検証して可能ならば修正しようと思います。
ただこれは厳密な当たり判定より処理速度を優先させる面から放置するかもしれません・・・
-
>>482
又は「自動訓練の実行」で説明いたしますと
class train {
name = 自動訓練
politics = erase
}
class train_mark {
name = 自動訓練実行中
politics = on
}
と定義して
event p_event
{
if (ptest(p_spot, train) > 0) {
if (ptest(p_spot, train_mark) == 0) { train_markが内政領地に存在するか調べる
addUnit(train_mark, p_test) 無かったらtrain_markを追加して自動訓練オンの処理をする
msg(自動訓練をオンにしました)
}
}
}
とすると自動訓練の追加をユニークなものにできます。
内政領地に表示されるのは雇用ウィンドウで雇用されるイベントトリガ「train」ではなく
それとは別に用意したマークユニット「train_mark」です。
なお「train_mark」は右クリックで削除できます。
この様に内政ユニットの役割を分類してそれぞれを使い分けるようにしてみてください。
-
>>491
ありがとうございます。
1.についてmissileで試したところ、バリアのようなスキルが出来ました。
とりあえず、これでどこまで出来るか試してみようと思います。
2.3.については了解しました。
ただ、3.については攻撃対象(単体)への連撃技にも使えれば、と思っています。
処理速度の関係で全てには難しい場合でも、可能でしたら、一部の限定的な使用方法として考慮していただけるとありがたいです。
バグ報告です。
nextスキルでallfunc = onにしても、効果がありませんでした。
スキル説明欄の文字は表示されています。
似たようなものでは、bomの範囲攻撃は有効、くらいしか試していません。
-
新たな領地を出現させ勢力に加えるイベントをストーリー構造体にて、このように組んだところ
イベント自体は上手くいくものの、このプレイデータを読み直した際に出現させた領地が消えるという現象が起きてしまいます。
その辺りの設定も踏まえてまた別の構造体に記入しなければならないのでしょうか。
色々と探ってはみたのですが、どうも解決しないので、どなたか知恵をお貸し頂けないでしょうか・・・
event p1
{
scroll(170, 540)
wait(20)
showSpotMark(s1, -1)
playSE(goro02)
shake()
wait(15)
showSpotMark(s1)
showSpot(s64)
linkSpot(s1, s64,85)
addSpot(s64,p1)
}
-
マップは、戦闘後やロード後などに再構築されるようです。
領地の透明化を解決するには、world構造体に記述して毎回読み込ませるか、
直接scenario構造体に記述する方法があるようです。
そのevent構造体に、
set(show_spot, 1)
を追加して、scenario構造体か、world構造体の上部に、
if (show_spot == 1) {
showSpot(s64)
linkSpot(s1, s64,85)
}
を追加すると、表示され続けると思います。
どちらの構造体でもいいのですが、
world構造体に書くと、ロード時にVGのように一瞬消えて、
scenario構造体に書くと、光の目のように表示され続けます。
-
>>495
なるほど、そちらの構造体が絡んでいたわけですね・・・
大変わかりやすく2通りもの方法を教えて頂きありがとうございます。
試してみたところ見事に上手くいきました。
これで製作のほうも進むことが出来そうです。大変助かりました。
-
>>472
了解しました。
よろしくお願いいたします。
-
movetype = normal
speed = 0
homing = on
hard2 = on
としてバリアのスキルをつくってみたのですが、うまく相殺ができません
見た感じ発生した瞬間だけ相殺が起こっているような気がします
貫通にしても相殺できるのは一度だけということでしょうか?
-
offsetはつけましたか?
-
すみません自己解決しました
hardの数を設定をしていないという単純ミスでした
-
>>498
bom = onのように設定済かもしれませんけれど。
・center = onにすると発動者が中心となります。
・time設定で表示時間がある程度長くしているならば、delay設定をして重複防止すると良いと思います。
・もしバリアを纏う前に(一瞬ですが)最近の敵に表示されてしまうならば、「range = 1」とし、発動距離をcheckで設定すると解決します。
-
<あぼーん>
-
rush_degreeって、前方を起点にして左右に広がるんじゃなくて、
片側にずれていく物でしたっけ?
degree = 60のrush = 3にすると、前は均等に三方向になったような。
STGみたいな。
-
>>503
念のために、randomではなくrush_degreeですよね。
それで「degree = 60」「rush = 3」、敵が画面上方向にいる場合ですけれど。
右側に60°、正面、左側に60°となりましたよ。(右、正面、左の順番です。)
「rush_interval = -1」にするとSTGのような三方向同時撃ちになります。
-
>>501
おかげでより良くなりました
ありがとうございます
-
>>504
はい、そうです。
でも実際にそう撃つと、指定した位置から左右に30度、
そして右の弾からさらに右に60度、となってしまうんですよ。正面に弾が飛ばない状態です。
特に特殊な物はつけてないはずなんですけどね。
-
>>506
おそらくバグと思われます。
再検証時に言われる通りの動作を確認しました。
imageの比率も違いましたし…。
どうやっても回避方法が見つからず手詰まりです。
-
>>507
なるほど、そうでしたか。
前に作ったスキルは上手くいったので、そうかもしれませんね。
-
すみません、collisionを設定しても普通のフラッシュのままなのですが・・・
-
>>509
collision = (スキル名…例:r_undine)ですが、問題無く表示されました。
設定された(missile)スキルは「単独でも使用可能なスキル」かどうか、確認してみてください。
そうでなければ、置換されないみたいですので。
-
一部訂正します。
collisionで指定したスキルは音だけでも可能でした。
例)相殺可能なスキルに「collision = offsetsound」を追加します。
skill offsetsound
{
sound = metal45_a
}
こうすると、「collisionを設定したスキルが相殺された時」にデフォルトの相殺イメージのままmetal45_a.wavが再生されます。
collisionでmissile(静止型)を指定しても動作しています。
未検証ですが、直進型や放物型スキルでも問題無いとは思います。
-
>>511
どうもありがとうございます、どうやら原因がわかりました。
hard2がついてるとcollisionが動作しないみたいです。
hard2を外したり、ついてないスキルで試したところ問題なく動作しました。
-
内政仕様の変更点です・・・
1、内政ユニットのpoliticsに、on、fix、erase、unique の4つの属性を指定できます。
on :普通の内政ユニット。右クリックによる削除が可能
fix :削除できない
erase :雇用して内政スクリプト処理の後に自動的に削除される
unique:内政領地に一つだけ存在できる。すでに内政領地にある場合は雇用欄から消える
-
>>508
最新版で試したところ、問題無く動いていると思います。
まだであれば、試してみてはいかがでしょうか。
-
>>514
試してみましたが、問題なく動くみたいですね。
ななあし様、修正していただきどうもありがとうございました。
-
ななあし様
指定勢力のターン開始、終了を判定できる条件式の追加は出来ないでしょうか?
以下の様な感じです。
isStartTurn(勢力)
返値: 1 = 指定した勢力のターン開始時、0 = そうじゃない
指定勢力のターン開始時か調べる。
isEndTurn(勢力)
返値: 1 = 指定した勢力のターン終了時、0 = そうじゃない
指定勢力のターン終了時か調べる。
もし可能でしたら、ご検討のほどよろしくお願いいたします。
-
ななあし様。
内政について質問です。
ver4.47にてeraseUnit2で内政ユニットが消せなくなったようですが、
内政ユニットを消すにはerase属性指定若しくは右クリックのいずれかという認識でよろしいのでしょうか。
-
スキル構造体でcolorの処理方法がわかりません。
特にimageが単色でない(20ずつずらすなどで濃淡をつけた)場合、うまく色が作れません。
レイヤーの合成と同じではないかと思っているのですが…。
-
>>518
黒や白が変化しないあたり乗算かと
ttp://aska-sg.net/pstips/manual/030-palette/030-0011-04_jouzan.html
-
>>516
申し訳ありませんが、ご提示された仕様を実現するには
勢力毎の開始および終了時に常にイベントスクリプトを読み込む必要が出てくる為、
ここは処理の軽量化を優先して見送ろうと思います・・・
>>517
申し訳ありません。バグでした。これから修正しようと思います。
>>518
colorですが、これはレイヤーの合成ではなく
スキル画像の各ピクセルの色成分×(colorの色成分数値 ÷ 255)
の形で計算した結果が描画されるようになってます。
例えばcolor = 128, 255, 255とするとスキル画像の各ピクセルの赤成分の明るさが
50%になった形で描画されます。
このような処理ですのでcolorの設定では元の画像より明るい色は表現できません。
-
>>519
>>520
ありがとうございます。
複数の色として使う場合は、元画像の数値を明るく作りたいと思います。
ただ、単色でない画像を別色で複数利用というのは難しそうですね…。
容量制限もありますし、どうにかしたいところですが。
利用可能なものが作れるかどうか、計算してみることにします。
-
デフォに自作したイメージを
以前のようにImageMakerで読み込み→デフォのimageに上書きしたのですが
小物入れからきたイメージの人たち(ミルフォースなど)が透明人間になってしまいます
前から変わってない人たち(ゴートなど)は前のデータからとれたのですが・・・
追加したいイメージだけを追加するにはどうすればいいのですか?
-
>>520
こちらこそ、早とちりしてしまい申し訳ないです。
ひとまず内政部分を弄るのお休みにしておこうと思います。
-
ななあしさん、要望です。
性別による差別化を出したいのですが、スキルの使用制限に性別を加えることはできないでしょうか。(talent = onのように)
ご検討ください。
-
skill構造体に関しての質問です。
演算子として認識される文字(%など)をhelpに記述するとエラーとなります。
それらを文字として表示させる方法はありませんか?
-
slideでキャラが移動するスピードは固定されているのでしょうか?
slow_perやspeedを大きくしてみたのですが、あまり変化しているように見えませんorz
>>522
追加する画像が少なければ、バイナリエディタでimagedata.datを編集するとよいかと
-
wikiをよく読んだら、slide_speedがあるのに気づきました
お騒がせしました・・・
-
>>525
記号ですが全角文字で書いてください。
>>522
これはユニットを作者様の方で全部揃えるしか方法がありません・・・
>>524
性別によるスキル使用の制限ですが一応検討しようと思います。
しかし追加しないかもしれませんので御了承ください。
-
バグ報告が何処か解らないのでスレ違いかもしれませんがご容赦ください
最終決戦IIにおいてマビドレのメンバーのメデューサがかなり前のバージョンからずっと異常な強さになっています
こちらは仕様でしょうか?
違うのならバグかと思われますので報告申し上げます
-
>>528
返信ありがとうございます
がんばって揃えます
-
>>528
やはり、全角文字しかありませんか。
了解しました。
-
>>529
別のスレッドで何度か話題になっていたと思います。
加えて、攻略法も書いてあったかと。
難易度は高いらしいですね。
-
ななあし様
consti設定による耐性値を含むダメージ計算について質問です。
wikiでのダメージ計算(攻撃力×(0.8〜1.2)−防御力×(0.8〜1.2) )
の結果に何らかの計算を施して算出しているものと思われますが
具体的な計算式を差し支えなければ、教えて頂けないでしょうか?
-
属性値を含めたダメージ計算は個人的に興味がありますね。
特に攻撃で、クリティカル(ダメージ2・3倍)や防御力無視などが作れないかと考えていますし。
割合ダメージや固定ダメージは難しそうですが。
-
>>532
それは最終決戦IIでなくIFの青の竜騎士の事だと記憶しています
あの投稿シナリオはデフォルトの能力値に連動する形だったので一緒にそちらのメデューサも強力になってしまっていました
現在だと対応されて通常のレベルに戻っています
ただデフォルトの方はそのままなので、最終決戦IIのマビドレメンバーのメデューサだけ異様に強い状態になっているという訳です
正確にはマビドレについてるメデューサだけ他よりレベルが高くなっている、と言いましょうか
極端に例えるならシナリオ1でゴートのメンバーだけゴートのレベルが5であるにも関わらず配下メンバーはLV40のロードが揃えられているような状態でして
とまぁ一応念の為申し上げましたが、バグでなく仕様なら了解です
お邪魔しましました
-
現状でも、高い攻撃力のスキルと低い攻撃力のスキルを混ぜてnext2に設定すると
クリティカルっぽいことができるね。
割合ダメージ、固定ダメージは難しそうだけど。
最低ダメージのスキルを複数回連鎖させれば、固定ダメージっぽいことはできるかな。
でも色々問題あるなあ。
-
確か耐性とダメージの調査は誰か投下していたはず
しかしどのスレか分からん
ログ漁ってもキーワードが違うのか出てこない
もう少し粘るか・・・
-
>>536
確率でクリティカルはそうですね。
それ以外に、特攻(弱点属性の場合に必ず、通常の数倍ダメージ)というものを考えていまして。
普通ならば、(通常ダメージ + 10[最低値])
弱点ならば、(通常ダメージの2〜5倍) = (通常ダメージ + nextスキルでの属性ダメージ計算結果)
即死は可能ですが、こういうことができればと。
固定ダメージでその発想はありました。
重くなりそうで避けていましたが、問題無さそうですね。
str = @(省略可)
rush = 100
rush_interval = -1
damageが0以上(マイナスは不可)
これで固定1000ダメージになりました。
rush = 1000でも(与ダメージは未確認ですが。)動作に問題は無さそうですし。
ただ、nextスキルで設定する場合が多くなるため、命中率が下がるのが欠点です。
被包囲時では特に多く、敵の近接攻撃動作で避けられているのかもしれません。
-
>>538
実は自分もかつて色々試してました。
複数属性の攻撃の連鎖とか、確率クリティカルとか、ループで連続ダメージとかとか。
ただ一発相手を殴るスキルに20個くらいスキルを使ったりで管理が大変。
ご指摘にもあるように当たり判定の影響でダメージが通ったり通らなかったり。
他にも、ダメージ計算の細かな仕様がわからなかったり
取得経験値のバランスや、実ダメージ値のバランスを取るのが面倒だったりで
今はわりと単純な方法でダメージを取ることを考えてます。
経験上、hardとrush*rushなどで無茶な設定をしない限りは、極端に動作が重くなることは少ないような気がします。
色々試して面白いものができるといいですね。
-
リベリオン・イストゥールをプレイしていて思ったのですが、
与えたダメージを数値化して表示できる機能というのは難しいでしょうか。
具体的な数値を把握できれば、交戦開始時から優劣が明確になり、
戦況の移り変わりが分かりやすくなるものと思われます。
デバッグ中だけでも確認できれば、バランス調整が容易になるのではと思いますが。
-
>>539
複数属性の攻撃は不可ですよね。(分割:攻撃力の調整が難しい。合算:属性欄が飽和。)
計算式が知りたいのは、上記の方法(合算)が使えないからです。
経験値は、exp_perを使えばある程度調整出来そうな気がします。(参考:>>67)
動作イメージを優先しているため、簡単なものからしか作っていませんが。
重複の多いものは別にして、呼び出し(skill spell_A : spell)を多用するなどで管理しています。
rush*rush(rushスキルのnextにもrushを…でしょうか。)を使ったことはありませんけれど。
その辺りは気をつけることにします。
-
func = heal について質問もとい要望があります。
というのもこのスキルからnextで繋いだり。
他からヒール系に繋ぐことは現状できないのでしょうか?
間にfunc missileを挟んで試してみたりしたのですが、
ファイアは発動してもヒールに変えると発動しなかったりという具合です。
もし可能でしたらヒール系からつなぐ、もしくはヒール系につなぐ、どちらかだけでも出来るようにはなりませんでしょうか。
お忙しいところ恐縮ですが、ご検討のほどを宜しくお願い致します。
-
>>533
consiの値によるダメージ算出は以下の通りになってます。
被弾側が
0 = 100万固定
1 = 攻撃力×2.5
2 = 攻撃力×2.0
3 = 攻撃力×1.5
4 = 攻撃力×1.25
5 = 攻撃力×1.0
6 = 攻撃力×0.8
7 = 攻撃力×0.6
8 = 攻撃力×0.4
9 = 攻撃力×0.2
10 = no damage
-
>>533
constiの値によるダメージ算出は以下の通りになってます。
被弾側のconsti値が
0の時は = 100万固定
1の時は = 攻撃力×2.5
2の時は = 攻撃力×2.0
3の時は = 攻撃力×1.5
4の時は = 攻撃力×1.25
5の時は = 攻撃力×1.0
6の時は = 攻撃力×0.8
7の時は = 攻撃力×0.6
8の時は = 攻撃力×0.4
9の時は = 攻撃力×0.2
10の時は = no damage
-
ななあし様へ、要望です。
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ターン以上)になったらそのカウンタ用の勢力と永久同盟にする。
|
|
掲示板管理者へ連絡
無料レンタル掲示板