レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part6
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。
ヴァーレントゥーガまとめwiki シナリオ製作講座
http://www28.atwiki.jp/vahren_ency/pages/411.html
改造・制作スレ
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1250722590/l50
改造・制作スレ part2
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1282244590/l50
改造・制作スレ part3
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1305281909/l50
改造・制作スレ part4
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1331214703/
改造・制作スレ part5
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1350187379/
>>946 >>948
すいません出来ました
worldから入る戦闘イベントのbattle{}とbattleEvent()を混同してました……
>>950
ありがとう
isPeace() を使えばできそうですね。
やってみます。
一度イレースしたユニットって、addUnitで出す事ってできないんですか?
やってみて出せなかったなら出せない
eraseに限らずとも他の関数で似た処理はできるから
ちょっと考えてみるといいと思うぞ
もう一度出す前提なら消さないでどっかに隠すほうが良いんじゃないかな
それだと、結局何処かに、隠しようの不自然なスポット(ダンジョンクルセイドの秘密の花園)置かないといけないですよね?
やりたいのは、ルルニーガとアスターゼの加入イベントみたいな奴で、例えば、フェリルでプレイすると、イベントで仲間になるから、放浪させないでおいて。
他勢力でプレイすると放浪している。
また、最初から放浪させないでやるとと人材プレイができなくなるから、放浪させたのを消す感じにしたいんですよね
すみません。
『 』の名称で、中立勢力で、空白のスポット素材用意してみたら、そこまで気になりませんでした。
今気付いたのですが、中立勢力に置いた人材は機能の人材一覧に表示されませんでしたし
隠し用のスポット用意します。
どうもありがとうございました。
消すユニットと消す状況が決まってるなら
全く同じユニットを別の識別子で作っとけばいんじゃない
空白領地はカーソルが乗ると見えるんじゃないか?画面端ならともかく。
hidespotできっちり隠しておいた方が見映えがいい気がする
内政スポットにすると綺麗に隠れなかったっけ?うろ覚えなんだけどね
画面外に領地を置けばいいんじゃないですかね
今のところ援軍の一般ユニットはある程度のダメージを受けると逃走しますが、この挙動を援軍以外の敵ユニットにも適用させる方法はないでしょうか?
プレイヤーは傷ついたユニットを下げて消耗を抑えられるのに対し、CPUの一般ユニットは死ぬまで戦い続けるので・・・
ピンチなら逃げる程度にbraveを設定してやれば
少なくともプレイヤーだけがずるいとはならないんじゃないかな
たとえば天地戦争は敵の一般もきっちり逃げていく
敵だけそうしたいならワールドマップで総入れ替え
あとは間接的に 戦力差がないと戦争を仕掛けないようにcontextいじるとか
ただ 敵が一般を温存するようになると
戦闘ではハナから有利なプレイヤー側が少数防衛しやすくなる
上位雇用でcomを優遇するのであれば 逃げないのはある意味利点かも
…考え方次第ですね
>>963
ありがとうございます。
なるほど、一長一短ということですね。
バランスを見てから調整したいと思います。
braveを設定することで人材は逃げるのですが、一般ユニットが逃げてくれません。
設定したbrave値は50ほどです。
これ以外に何か設定する項目があるのでしょうか?
>>964
信用度
100以下だと一般逃げるはず
天地は90
比べてみると>>964 の通りでした
braveは人材だけですね 申し訳ない
どうやってるんでしょうかねぇ・・・
とりあえず実現可能ということが分かったのでいろんな設定を試してみます。
ありがとうございました。
>>967
信用度減らせばいけるはずだけど、上手くいかないの?
>>968
申しわけありません、見落としておりました。
たった今addTrust関数にて信用度を減らしてみたところ、ちゃんと敵一般が逃げるようになりました。
敵の信用度にも意味があったのですね。
回答していただきありがとうございました。
ちょっとスキルの質問です。
面倒な処理がありそうなので、箇条書きにします
超高速で動くユニットが使用するスキルです。
スキル発射地点をAとします。(この時点でユニットがいた座標)
スキル発射地点Aから距離探査用スキルを打ちます。(slow_timeは入れませんので、普通に動きます。)
距離探査を200以内、201以上400以内、401以上600以内、601以上(全部当たらなかった場合)の4通りに分割します。
この距離探査スキルは非常に遅く、その間にユニットが動くことは十分可能です。
距離探査スキルに引っかかった場合、座標Aから発射するMissile型スキル(弓のような単純なもの)が発動します。
ただし、この座標Aはユニットが移動していたとしても座標Aから飛ぶ必要があります。
分かりやすく言えば、残像(A座標にpair_nextで残したimage=@@が相手の距離を把握してスキルを撃ち分けるというものを想定しています。
近いほど強力で、遠いほど貧弱な物になります。
何かいい方法はないでしょうか?
>>970
難しそうなスキルですね
弓のような単純なものということでしたら、単純に距離減衰を設定すれば簡単かなぁともおもいます
本体ではなく分身が距離をサーチとなると、ざっくりとスイングを振り回してあったったらネクストとするとスイング開始位置から次のスキルが繋がったはずですよ
それの判定を細かく区分していけばいけるかもしれませんね?
>>971
もちろん距離減衰も考えたのですが、最終的には結構派手になるまで進化する予定なので、打ち分けできるのが理想なんです。
分身がswingでしょうか?
それは考えたことがなかったので、少し試してみます
>>970
ふと思いついたので想定している風になるか分かりませんが、参考になれば。
rangeの無い(ユニットの位置に出る)静止型スキルから
nextでHP10くらいの召喚ユニットを出し、それに撃たせるというのはどうでしょう?
青竜剣の様に、距離探査スキルと同時に自爆スキルを撃たせれば
その場で消える&スキルが出る、ような状態になるんじゃないかと。
ユニットの方でbreakやscreamを使って無音で残像を出せばもう少しそれっぽい…かも。
>>971
swingは無理でした。どうやらどんなにnext先にしても、人材ユニットそのものが出すようです。
だいぶ工夫はしてみたのですが・・・
>>973
召喚の弱点として、かなり正確出ない位置で出てしまう場合が多いんですよね・・・
それさえなんとかなればいい案だとは思うのですよね
>>974
スイングからの分身攻撃の一例としてMODとしてあげたものから抜粋して小物入れにtxtをあげました
行動中残像と言う形で分身を置いて行く反応にしてスイングで距離400以内の敵が居る場合に分身から攻撃する事があるという組み方です
一応ヴァーレン最新版で確認したつもりです
すみません。
自分で攻め入ってある勢力を滅ぼすとイベント発生して、第三国が攻め入って滅ぼされても発生しないというイベントを作りたいのですが
条件式がわかりません。
まず、インバトルで 敵のマスターが戦場にいるかどうか? んで 敵の領地が最後かどうか? を判別すればいいかなと思ったのですが
いわゆる孤立して、逃げ道無い状態で複数領地がまだ残っている場合だとイベントが発生しませんよね。
どうやったら自分が攻めてこの国を滅ぼしたってできるのか、教えていただけないでしょうか?
>>976
ワールドイベント開始時に、思考中の勢力を記憶しておくと良い。
event we
{
storeNowPower(@nowpow)
if(f_eventmetubou == 0 && isAlive(「対象勢力名」) == 0){
if(isPlayer(@nowpow)){
//プレイヤーが件の勢力を滅ぼした
}else{
//別の勢力が件の勢力を滅ぼした。
}
set(f_eventmetubou,1)
}
}
単純にプレイヤーターン以外には発生しないって条件付けにしたらいいんじゃないの?
>>975
ありがとうございます
k_helf_at_1の部分は自分も試したのですが、center=onで大きさを倍にすることで修正可能でした
ただし後ろ側にも当たってしまう弱点があるのでなんとも言いづらい部分がありますが・・・
後、索敵時の振り回し速度があまりにも早いと、索敵ミスが出てくる可能性があるところかな。
まあこうしておくと、特定のCOMが別のCOMを滅ぼした時とか、
滅ぼしてはないが侵攻をかけたときなどにも使えて便利ではある。
どうもありがとうございます。
勉強なりましたstoreNowPowerとかどう使うのかまるでわかりませんでした。
bgについて質問です
bgでworldとは違うワールドマップを表示するのですが、セーブしてロードした場合そのbgが適用されません。
変数1の場合だけbg表示をするという手もあるのですが、それをすると非常に重くなってしまいます
ロード後1度だけbgの表示をするという手はないでしょうか?
自己解決しました。
撃破された側のbreakに入れて、トドメを入れた敵ユニットにだけ飛来するスキルって可能ですか?
お聞きしたいんですが小数点の扱いはどうなってるんでしょうか
multiの上昇数値が計算式とずれているようで・・・
>>985 たしか小数点は切り上げられるはず。
>>986
助かりました。再計算してみます。
addLevelをすると、一部の必殺スキルを覚えないことがあります。
その他のスキルはきちんと覚えているのですが、必殺スキルだけ綺麗に覚えてくれません。
removeSkill等も、必殺だけlearn時に覚え直しをしないことがあります。
fkeyも調べたのですが、不備はありませんでした。
考えられる原因があれば、是非ご助言お願いします。
一応動作としては
人材ユニットです
Lv15で必殺 Lv22で通常を覚えます。覚えるスキルにfkey関連の不備はありません(そもそもfkey関係ないスキルなので)
Lv10でクラスチェンジ Lv20でクラスチェンジをするクラスです
初期レベルは10です。プレイヤーの選択次第で開始時に20レベル上がります(尚、他にも同時に一般も含めた180ユニット程上がります)
その際にLv22の通常スキルは覚えるのですが、必殺スキルは覚えてくれません。その180ユニットの同様の条件を持った人材ユニットも必殺を覚えません。
どういった原因が考えられますか?
失礼しました。 Lv22の通常は元々持っているスキルのfkey*2です。
試しにLv22のスキルをlearnから外してみたところ、Lv15の必殺を覚えました。
当然Lv22のスキルは覚えませんが・・・
それを確認の後、Lv22のスキルを再度付与したところ、Lv15の必殺を覚えません。
次にLv15で覚えるスキルを、同時にLv22で覚えるようにしたところ、今度は両方覚えました。
次に必殺をLv23で覚えるようにして、通常を通常通りLv22で覚えるようにしたところ、両方覚えました。
どうやら必殺を先(同時はセーフ)に覚える場合のみ、その必殺をすっ飛ばして後の通常のみを覚えるという現象が起きています。
これはVT側のバグでしょうか?同様の現象が起きる方はいらっしゃいませんか?
learnの使い方がまちがってるんではないだろうか。
レベル上昇で覚えるスキルは、その都度全て列挙しなければいけない。
詳しくは講座を読みなおしてほしい
直接の解決法じゃないけど、一気に20レベル上げるんじゃなくて、
一旦15レベルにして、該当スキルを覚えてるかの確認はした?
そこでちゃんと覚えてるなら22レベルの方の書き方を間違ってる
今回のに限らず、意図しない動作が起きたときは
細かく区切って確認していけばどこで誤動作が起きてるのかわかりやすいよ
すでにやってるなら失礼しました
バグ報告です
context構造体のbtl_lineshiftが機能していません
数字を変えても常に前衛と後衛が等間隔になります
まともにシナリオを作ることが出来ません
story tyakkutyakku
{
friend = sc1
fight = on
if(inBattle(tyakku)){
msg(イベントtyakkucallを読み込みます)
battleEvent(tyakkucall) or event(tyakkucall) or call(tyakkucall) ←ここ
}
}
event tyakkucall
{
set(i,0)
msg(イベントtyakkucallを読み込みました)
rif(getTime() > 1000 && i == 0){
msg(100秒経ちました)
storeAliveUnit(goblin, @gnumber)
pushv(@gnumber, n)
msg(ゴブリンの数は&n&体です)
set(i,n)
}
}
質問です
戦闘開始から100秒後のユニットの数を調べる上のスクリプトを作りました
battleEvent(tyakkucall)の場合、msg(イベントtyakkucallを読み込みました)は表示されませんでしたが100秒後にちゃんと数えてくれました
event(tyakkucall)の場合、msg(イベントtyakkucallを読み込みました)が戦闘開始直後に表示され100秒経っても数を数えません
call(tyakkucall)の場合、msg(イベントtyakkucallを読み込みます)以降には進まないようです
これらの違いはイベント関数の中で使える関数に制限があるといことですか?
またこれとまったく同じスクリプトを使ってもbattleEvent(tyakkucall)すらmsg(イベントtyakkucallを読み込みます)以降に進まない場合があります
それはなぜですか?
992ですけど
配置時は常に部隊メンバー数で間隔が一定になることが判明しました
バグではなかったようです
btl_lineshiftで、配置時も間隔を指定できる仕様になると
開きすぎが起こらなくなって良くなると思いました
>>993
戦闘シーンでのevent()は戦闘終了後に処理されるそうで、call()は、まあちょっと放置された関数ですし……
で、battleEvent()でのイベント呼び出しなんですが基本if文とrif文のみ取り出すもんと覚悟したほうがいいみたいです。
なので
event tyakkucall
{
if(isEvent()){
set(i,0)
msg(イベントtyakkucallを読み込みました)
}
rif(getTime() > 1000 && i == 0){
msg(100秒経ちました)
storeAliveUnit(goblin, @gnumber)
pushv(@gnumber, n)
msg(ゴブリンの数は&n&体です)
set(i,n)
}
}
みたいな書き換えはいかがでしょう
あと2段落目ですが、event tyakkucallの1,2行目が読み込まれず変数iに何らかの理由で0以外が入っていた場合
rif文は読んでても無反応に見えるんじゃないかな、と想像します。
>>995
ありがとうございます
うまくいくようになりました
最後のbattleEvent()が進まない場合があるのを調べてみると
どうやら戦闘する場所によって起こるが起こらないかが決まるようです
上のスクリプトはむなしい努力で使っているのですが、zone0 = s2, s3, s4, s5, s6, s7で指定された雪国では戦闘中battleEventが読み込まれません
ここ以外では正常に機能しました
魔法攻撃ユニットに積極的に前衛させるにはどうスクリプト弄ればいいか教えてください
>>998
自己解決しました
>>997
試してみましたが当方のむなしい努力では問題スポットでも動きました。
問題の再現ができないので想像なんですが、数値変数に0代入したときなぜか動かなくなるケースがあるんですよね。
なので
event tyakkucall
{
if(isEvent()){
set(i,1)
msg(イベントtyakkucallを読み込みました)
}
rif(getTime() > 1000 && i == 1){
msg(100秒経ちました)
storeAliveUnit(goblin, @gnumber)
pushv(@gnumber, n)
msg(ゴブリンの数は&n&体です)
set(i,2)
}
}
といった0使わない形に変えて一度試してみてはいかがでしょう。
なおiにnが入ってないため余所で使ってる場合はまた書き換えが必要になってしまいますが……
フワッとした説明で申し訳ない
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板