レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part8
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。
ヴァーレントゥーガまとめ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/
改造・制作スレ part6
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1372172557/
改造・制作スレ part7
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1396009373/
前スレ>>1000
何度も同じ質問繰り返しているけど誰もレスしない時点で誰も知らないと解釈しては如何か
少なくとも自分は知らない
悪いけど試してみようとも思えない
ノックバックで引っ張るとかならできなくもないんだけどねぇ
>>2
1000は999の返信のつもりのやつ
たぶん出来なくはないと思うよ。同じく試そうとは思わない
>>1 乙
>>2
うーむ、やはりそうですか……
部隊全員で拡散接近することで、火力集中攻撃を避けれるスキルが作りたかったんすけど無理っぽいッスネ。
ノックで味方吹っ飛ばして加速ってのもあるんすけど、こっちはなぜかノックバックしてくれないし。
ちょっと考えなおします、返答ありです。
knockだと味方や敵キャラクターにつっかえて吹き飛ばしが止まる仕様かな
すり抜けたいならslideを使うしかないと思うけど、斜めには移動できないからなぁ
ヴァーレントゥーガについて
初心者でよく分からない者ですが
自分の戦力が高すぎて相手が責めてこないです。
相手に責めてきて貰いたいのですがどこを弄ったらいいでしょうか?
今までプログラムなどには全く触れた経験が無いので、もし宜しければ初歩的な所から教えて下さると有難いです。
自己解決しました
スレ汚し申し訳ございません
すみませんやっぱり分からない所がございました。
ラクタイナのskill「ネクロマンシー」で
next=s_undead3
と書かれているのですが、s_undead3とはどこに打ち込まれているのでしょうか?場所を教えたいただけると嬉しいです。
サクラエディタ辺りDLしてgrep検索おすすめ
grep検索お勧めなのは同意だけど、どんなテキストエディタでも(それこそメモ帳ですら)検索機能はついているからまずはそれで検索してみることを勧める
戦闘シーンについてなんですが、スキルを発動しつつ、敵に釣られずに移動させる(固定状態で移動するような感じ)行動をCPU側部隊に取らせることってできませんかね
smoveTroopだと敵(プレイヤー側)に釣られてしまうし、smoveTroopFixだとスキル使えなくなるしで・・・
初歩的な質問ですみません それと既出だったらごめんなさい
attack_rangeとかescape_rangeを0にしてみるとか?
うーん、うまくいきません・・・途中でルートを外れてしまいます・・・
イメージとしては、ある区間を往復する機動砲台みたいなものを作りたいんです
じゃあちょっと動かしてスキル発動、を繰り返せば?
仮に砲台なら、発射時は停止するだろうし。
簡単な方法でよければ
d360=off//敵に向かって表示しない
center=end//ユニットの中心から
で画像を敵の位置に関係なくユニット中心から上部に表示させて
次にノックバック移動させるとか
スタートディグリー系が使えれば上下方向以外もできると思う
よく見てみんさい、その部隊移動、1往復目は正常に機能するのに2往復目は無理って感じじゃない?
smoveの発動条件をrifにし忘れてるだけじゃないかな 可能性としてだけど
>>17 をやるなら片道の移動を一回一回無効にできてるかも確認した方がいい
遅くなりました>>12 です。
>>15 一定のルートを動かし続けるのが目的なので、それでいくと相当な量書くことになりそう・・・
>>16 ノックバックを繰り返してトントン動いていく感じですかね。少し難しそうに見えたので試していませんが、機会があったらやってみたいと思います。
>>15 >>16 これでうまくいきました!rif文忘れるとか恥ずかしいorz
わざわざありがとうございました。
smove中はスキルも発動されるのね。そういう問題だと思ってた
近接や突撃スキルからslideが発動しないけど、発動させるのはどうしたら良いのかな
質問です。
自勢力の特定のクラスの一般ユニットを文字変数に代入というのをしたくて、
storeUnitOfPowerで勢力の全ユニットを文字変数に代入して、
そこからsubvで特定のクラスだけ引いて、
別の文字変数に代入した全ユニットから、全ユニット-特定クラスのユニットを引く、
というのを試したのですがうまくいきませんでした。
過去ログをあさったら、part5にも似たようなことがあったのですが、やはり今も1ユニットずつ調べて文字変数に代入していくしかないのでしょうか?
>>22
それしかなさそう
特定のスキルやクラスのユニットを代入できる関数があればいいんだけどね
>>23
やっぱりそうですか……
ひとまずは1ユニットずつ調べるやり方でいこうと思います。
回答ありがとうございました!
>>21
自己解決した。slide_speedの値が1600になってたのが原因だった
遠距離スキルとそれ以外で仕様が違うのね
近接の場合は意味合いが変わるんじゃなかったっけ
確かwikiの近接スキルのページあたりに解説があったはず
質問なんですが
ランダムシナリオでエデンのユニットを全てプレイヤーキャラで動かせる様にしたいです。
どこをどうすれば動かせる様になるでしょうか。
>>27
エデンユニットの
ボスとしての特別配置処理を無効化して、@rndmunitに入れて
scenarioのroamに入れたらいいんじゃない?
変数でのaddTroopがうまくいきません
addTroop( @RedTeamUnit ,800, 1700, 0, red)←ちゃんと問題なく追加される
addTroop( @BlueTeamUnit ,800, 300, 0, blue)←追加されるけど真っ黒のステオール0。直前に変数の中身も確認済み
scroll(@BlueTeamUnit)←超絶あさっての方向へ行く
msg(&@BlueTeamUnit&)←ちゃんとしたユニット名が返ってくる
//別枠
addTroop( Yamada ,800, 300, 0, blue)←上記の変数のユニットを直接いれたらちゃんと追加される
どういった原因、対策が考えられるでしょうか?
目的としては赤勢力と青勢力の戦いをバトルイベントを使ってするというものです
なので、当たる相手次第で赤も青も兵力・ユニットが大きく変わります
マップメーカーに初期配置として設置するというのはあまり現実的ではないため、お知恵をいただければ幸いです
>>29
addTroop( @BlueTeamUnit ,800, 300, 0, blue)のスペースが全角だったり@BlueTeamUnitの誤字や
addTroopの前の処理で別のものが入っていたり
まだゲーム中に出現していないユニットを出そうとするとなる
出すならunit yamadaにtalent = onを入れて戦闘イベント前に何処かの領地にaddUnitで追加で出来たよ
戦闘後にダミースポットに移動するか最初から座標がマイナスの領地に入れて置いたりプレイヤーの見える場所に置いたりしても良さそう
>>31
ありがとうございます
原因はどうやらtalent=onが青側想定の全ユニットに継承されてなかったのが原因だったようです
ホント助かりました!
最悪敵全部召喚スキルで登場とかするとこでした・・・
何もないように見えるところでスキルを発動させるにはどうしたらいいんでしょうか
意図がつかめないけど、早めにバリア貼るとかだったらCheckをクソ長くするとか
ユニットに十分な射程持ったスキル持たせてどこか安全な場所に置いて、aimTroopで指定発動させればあるいは
isDead()やisAllDead()が1の場合にイベントを終了させたいのですが指定勢力またはユニットを倒しても反応しません
コピペでやっているので誤字などはないはずですが、原因が分かりません。
if文自体がおかしい?
まさかと思うけどrifにはしてるよね流石に
イベント終了ならifでもいいんじゃないか
どこが間違っているか何ともいえないから、そのif文をそのまま載せてもらえると助かる
すみません解決しました 勝利敗北条件のif文を戦闘前会話より後ろに置いていたのですが
それを前に移すことで正常に動作するようになりました
classのvalueが効かなくなっとるぅ。゚( ゚இ௰இ゚)゚
(*´��`●)こういうのかけるんか
初心者ですがすいません
皆さんはシナリオ製作するとき、ワールドマップはどうしていますか?
>>43
最初はペイントでザッと描いて、後から良いものに描き直していく感じ。
改良するときは↓を参考にして描いたよ。
【GIMP】GIMPで古い地図をつくる | 海牛 #pixiv http://www.pixiv.net/member_illust.php?illust_id=36090038&mode=medium
>>44
ありがとうございます
これつくれ
http://koigakubo.seesaa.net/article/439021468.html
>>43
何か面白そうなシンボル見つけて、それを基準に突起付けたりくぼませたりしながら遊んで作ってたな、
配色とかは気に入っているVTマップ見ながら作ってた。
オリシナ自体の規模がでかすぎてお蔵入りになったけど。
製作中の愚痴を書いて、共感してもらうことで制作意欲をあげようとしたが、
どのスレに書けばいいのかわからないのでここで。(スレちだったらごめーんね)
大規模なオリシナがばんばん出ているけど、正直自分が作るとなると収集がつかなくなったり、とほうがなくなったりと、
考えることすら面倒なので、小規模にすませることにしてみた。
が、考え自体はすぐまとまるが、実際かき出してみると割と面倒になってきたので、とりあえず全容をward一枚に簡単にまとめて見返してみたら、
小規模でもとんでもない素材数の確保と処理が必要だと其の一枚に気づかされ、現在泣きそうになっている。
大規模ヴァ―レン作ってる人ってどんな神経してるん?
>>48
だよな
小規模でもキャラ30人くらいで顔絵+チップで×2、一般クラスではもっとだからな
初めは勢力少な目で更新で増やすのもいいかもしれない
もうひとつすいません
昔、spotを簡単に作れるツールでマップ画像読み込んでその上にマウスポチポチで作れるのがあった気がするんですがどこで手に入れられるか忘れてしまいました
知っている人がいましたら教えてもらえれば嬉しいです
>>49
キャラ30人もいない、その半分ぐらい。でも死ぬ。
直感でスポットおけるツールとか俺もほしい。
でも細かい調整するとき構造体いじるの大変そうだな。
>>50
すまん
素材ってどういうとこで手にいれてる?
何でもなかった。普通に使えた
申し訳ない
>>51
VTwikiにのってる「標準素材リンク」や、小物入れ検索とかがあるけど、
よくやってるのは、気にいってるオリシナのクレジットから探してる。
あとはもうネットサーフィンか自作か諦め。
人に頼むor許可とって借りるのもアリかも?
大規模ともなるとそうも行かないので自分で素材作るのが楽しいくらいじゃないとしんどいけれど
ありがとうございます
画像素材詰め合わせ系で結構まかなえるような
アイコンとかはツクール限定って書いてないツクール素材さんのところのを規約をよく読んで借りるとか
別の人だけど、素材とスクリプトができてもバランスがよく分からなかったりする
公開してないシナリオのテストプレイをしてみたい人ってどれくらいいるかな
みんな歓迎だと思うよ
一人ではミスとか見つけられないし
>>57
歓迎だわ。
それに、割と一人で黙々とやると、途中で心折れたりするから、
そうやって周りに期待かけて、自分にプレッシャーかけたほうがいいかもしれないし。
>>58 >>59
ありがとう
週末くらいに上げられそうだからぜひお願いしたい
とあるmp3のBGMデータが鳴りません。
いろいろ検証してみた結果、スクリプト設定のほうは問題なかったので、
おそらくmp3ファイルのほうに何らかの原因があると思うのですが。
同じmp3でもヴァーレントゥーガに反映されないものってあるのでしょうか?
昔の話だが、特定のwav→mp3変換ソフトを使って曲を変換した場合、何故か特定の音楽プレイヤーでは再生されない事があった
同じ事がヴァーレンでも起こる可能性はある
因みにその時はウィンドウズメディアプレイヤーで変換し直したら直った
その事を踏まえて言うと、再生できなかったファイルを一度mp3→wav→mp3としてみたら直るかもしれない
書き忘れたけど、再変換不可の曲もあるから注意してね
演奏までの空白を削ったり増やしたりで鳴ったりしたこともある
mp3はいろいろデータを格納できるから、その何かが引っかかってる可能性もあるな
一旦ID3タグを消してみるのも手
>>62 ・63様
>>64 様
>>65 様
ご意見ありがとうございます。そして、解決しました!
>>62 様のおっしゃるように、一度wavに変換してからmp3に戻したところ、無事音が鳴りました。
改めて、皆様ありがとうございました。
音質落ちない?大丈夫?
spot配列@A・・・内容はとりあえず(a,b,c,d,e)とする
spot配列@B・・・内容はとりあえず(e,f,g,h)とする
この場合eが被るわけだけど、こういう感じに配列@Aと配列@Bに同じ要素があるのでset(kakunin,1)、ない場合は0にするといった感じのスクリプトを作りたいと思っています。
while使って1つづつhasで確認して・・・という方法は想定できるんですけど、関数か何かで1発で被る要素があるかどうかの確認ってできるでしょうか?
引く前にカウント
文字変数の引き算のやつ
またカウント
減ってれば被りあり
pushv(@a, aaa1)
subv(@a, @b)
pushv(@a, aaa2)
if (aaa1 > aaa2) then
{set(kakunin, 1)}
ってことね
>>67
そこ気にしてませんでしたね(汗)
(やはりそういうところを気にする方もプライヤーにはおられると。)
今聞いたところ、これといった違和感はなかったので、問題ないとは思いますが……
金物系があるバンドサウンドだと割と気になりやすいとは思われるが
>>69 >>70
ありがとうございます
確かにそれでいけますね。
テスト用シナリオファイルをアップしました
単独では遊べませんのでVahren.exeと同じフォルダに解凍したフォルダを放り込んで起動してください
http://www1.axfc.net/u/3686014.rar
DLできる期間は5日間です
おつ
>>74
いや、エラーで起動できないもののテストプレイと言われても困るのですが……
しかも原因が構造体名の重複、というか同じ構造体が複数存在しているだけのようですし、失礼を承知で言わせてもらいますが、ご自身で起動すれば気付けたと思いますよ
voice1(主要人材).dat (スベースの入ってない方)を消すとエラー回避で起動できたけれど
アップしたファイルが最新のデータと違うのかもしれない
>>76 >>77
あまりにも初歩的なミスを犯してしまい申し訳ありません・・・
こちらが不具合を修正したファイルとなります
http://www1.axfc.net/u/3686515.rar
こちらもDLできる期間は5日間です
きのたけのランシナで列伝が見えるようにしたいのですが
やり方ご存知の方いますか?
ランダム用のユニット識別子にもdetailをつけてあげたらできる
>>80
解決しました。
どうもありがとうございます
>>60 殿
テストプレイさせてもらってます。
8ターン目に「ゾール連合&ワソ共和国VSマラド帝国」の
スポット「CCCCC」での戦いでフリーズします。
セーブデータ挙げておきます。確認してください。
http://ux.getuploader.com/vahren/download/4071/save2.sav
1つの領地?といえばいいんでしょうか。本来は8部隊しか置けないところを更に多くの部隊を置けるようにするには、どこをどうしたら変えられますかね...?
思うところあって宣伝兼ねて自作品のCharChipを公開することにしました。
改変利用歓迎、ドット打ったことの無い方も是非。
http://ux.getuploader.com/tyche_Library/
>>83
wikiのspot構造体ってところに乗ってるよ
たとえば16部隊おきたいのならspot構造体の中に capacity = 16 って書いたら16部隊おけるようになる
全部を16部隊置けるようにしたいのならばcontext構造体に spot_capacity = 16 と記入すれば全部16部隊置けるようになる
>>85
ありがとうございます!
>>82
ご報告ありがとうございます。拝見します
>>84
スレ違い
素材スレにGO
>>88
ありゃ、これは失礼しました
了解です
特定ユニットを倒した時の戦功値を減らすか、無くすことはできませんか?
大量の敵を倒すイベントで、莫大な戦功値を得てしまう状況をなんとかしたいです。
イベント前にpushMerit
イベント後にpushMeritしてsubで差分とってその分をaddMeritで減らす
とても初歩的なことなのですが、上位雇用の仕組みがいまいち分かりません
どのようにすれば上位雇用ができるようになるのでしょうか
上位クラスの構造体のmerceに上位から下位のclass構造体を記述する
class test2{
name = テスト改
-中略-
merce = test, testup2
change = test3*20
}
class testup2 : test2{
name = テスト改上位
price = 600
change = testup3*20
}
と書きましたがtest2のユニットがtest2upを雇用できずtest2の下位のtestしか雇用できません
やり方を詳しく教えていただけませんか
追記
test2の一般ユニットがtest2upを雇用することはできるのですがtest2の人材の雇用欄に表示されません。この理由を教えていただきたいです
>>95
人材のunit構造体にmerceを設定してたりしてない?
>>96
ありがとうございます解決しました
人材の陪臣雇用を禁止することはできますか?
PCも人材陪臣雇用不可能になっても構いません
contextのactor_perを0にするとかでできる
http://ux.getuploader.com/vahren/download/4073/%E5%88%B6%E4%BD%9C%E3%82%B9%E3%83%AC%E8%B3%AA%E5%95%8F%E7%94%A8.png
上記画像のような巨大ユニットのダメージ判定(及び赤い輪)を中心に据えたいのですが、何か方法はないでしょうか。(MODです。一応…)
>>99 ありがとうございます
多分radius弄っても解決しないよなあ
地面を隆起させるとかになるのかなムズそう
>>102
とりあえず赤い輪を消そうとしたのですが、 yorozu = no_circleがどうにも機能していない?
radiusも100前後で打ち止めのようで、ユニットの大きさには到底及びませんでした。
過去ログを見ましたがそれらしい前例も無さそうです。
no_circleに関しては本体が古かったみたいです。解決しました。
しかし、他はどうにもならなそうです・・・。ありがとうございました。
デバッグモードがよくわかりません。
debug_paper.txtを置いて
【シナリオ名】
skill
とかいて、起動してVボタンを押しても。
「の再解析が終了しました」
と出るだけで何も変わりません。何がいけないんでしょうか。
最後もう一回改行した?
>>106
なんか一番下に空白の行入れたらいけました。
ありがとうございます。
実はwikiに書いてるけどなかなか目に入らない場所にあったような気がする(?)
CPU傭兵ってもうちょっと踏ん張ってくれないんでしょうか?
ちょっと傷ついただけですぐ帰っちゃうからほんと困る。
前スレにあったDirectXのRedist版をインストールする方法以外でも
Windows10でヴァーレントゥーガを起動できたので報告
作業環境はWindows10 Home 64bitのクリーンインストール
起動方法はネットにある32bitのd3dx9_35.dllをexeと同じ場所に置くだけ
Redist版でインストールされるものでは起動できないので注意
各プレイヤーのC:\Windows\System32 にあるものは起動できるかもしれない(当方は試していないので不明)
DirectXの最新版がダウンロードできるようになったら解決することかもしれませんが
現時点では何故かWindows10のダウンロードページへ飛ばされます
msg2で会話ウィンドウを上に表示すると人材の肩書き(unit構造体のhelp部分)がおかしくなるのは本体の不具合かな?
攻撃を受けた際に表示されるHPバーとキャラの下に表示される赤と青の円が表示されません
どのように設定すれば出るようになるのでしょうか
自己解決しました
戦闘で敵からの攻撃の対象にならないようなユニットを作ることって可能ですか?
>>114
stelth = 100 で大体解決する
>>115
その方法でできました
回答ありがとうございました
現代戦のオリシナを作ったのですが誰かテストプレイをやってくれませんか?
歩兵、戦車、装甲車、ヘリ、航空機、宇宙戦闘艦とか戦艦とかもいます。
魔術要素はほとんどありません。
とりあえず上げてみて
こちらのURLからDLできます。
http://ux.getuploader.com/touhu_uploader/download/2/%E6%AD%A6%E5%A3%AB%E3%83%8F%E7%9A%87%E5%9B%BD%E3%83%8E%E7%82%BA%E3%83%8B.zip
注意点として
クリアが不可能(敵が強すぎるとかではなく単純に敵勢力滅亡でのクリアをセットできないだけです)
敵味方どちらも火力が過剰、そしてユニットが多いので重いです。
饅頭型人間敵対生物がツボにハマった
頑張ってくれ応援してる
世界大戦モノかと思ったら人型兵器も宇宙戦艦も怪獣も出て来る大大ロマンシナリオだった
見た目に反して勢力構造は単純だし敵の把握はし易い印象だったな
全体的にレトロな見た目でこれはこれで味があって好き
ただスキルが豊富に作り込んであるのに、アイコンが非常に見分け辛くて結構困ったw
戦闘も超長距離の超大インフレダメージで数の割りに決着は早い
あと自分の主観だけと処理が重いのはユニット数じゃなくてスキル演出で容量使ってる感じはしたかな
>>120
>>121
感想ありがとうございます。
アイコンが見分け辛いのは・・・仕方ナイノデス
重いのはスキル演出でしたか・・・これでも簡略化してるんですよね。
何はともあれ本当にありがとうございます。
銃兵がescape_rangeを無視します。
attack_rangeを低くしてみたりといろいろ試行錯誤した結果、
「銃剣攻撃」というsword系のスキルを除いたら反映されたのですが。
ゲームの使用上、このスキルを取り除きたくありません。
「近接攻撃スキル」を含めたうえで、escape_rangeを反映させるにはどうすればいいのでしょうか?
ソート、並び順で銃より近接を後ろにするとか
近接をmissileだけど近接スキルみたいにするとか
>>123
そのユニットが習得するスキルのうち、sortkeyが一番小さいスキルを射撃スキルにする
これで遠距離思考タイプのAIになり、escape_rangeが機能するはず
>>124 様、ありがとうございます。
skill2やlearnでやってみたのですが、うまくいきませんでした。
下の方法も考えていたんですが、正直めんど手間がかかり、
且つ、それによる不具合も考えられるので手が出せずにいました。
>>125 様、ありがとうございます。
銃スキルと銃剣スキルのsortkeyを入れ替えてみたところうまくいきました。
感謝します。
>>119 の修正版UPしました。
DLは↓から
http://ux.getuploader.com/touhu_uploader/download/3/%E6%AD%A6%E5%A3%AB%E3%83%8F%E7%9A%87%E5%9B%BD%E3%83%8E%E7%82%BA%E3%83%8B.zip
主な変更点はクリアが可能になった事とクトゥルフ神話TRPGのセッションが元ネタなので神話生物を追加した事ぐらいです。
unit構造体で作成した自作のキャラクターをランダムシナリオやメインストーリーの人材プレイなどに参加させたい場合は、どこをどう変更させて何を追加すれば宜しいでしょうか...?
scenario構造体のroamにunit構造体の識別子を追加する
すみませんまたまた質問なのですが、chipファイルの中に入れて使える画像って、上限があるんですか?
すみません何言ってるか自分でもよく分からないんですが、実は言うと新しいキャラクターを作成してヴァーレントゥーガを起動しようとした所、
ユニットのキャラチップが規定サイズを超えました。一部排除して切り詰められます。
と表示されました。これはどういう対処をすればいいのでしょうか?過去レスも覗いて見たのですが、それっぽい事は書いてあったものの、内容が難し過ぎて理解出来ませんでした。
>>130
更に問題が発生しました。シナリオを選んでキャラクターを選択してくださいの所まで行って、右クリックをすると突然ヴァーレントゥーガがフリーズします
chipファイルを全部該当するimage.datにつっこんだと仮定して
image.datに入りきらない分はchipにいれても無理って聞いた気がする
つまり上限があるという事ですね
俺と同じことなってる人いるのなw やっぱり、チップって消すしかないのか。なんか必ずエラー落ちするよね。取り敢えず、ビューアーの方で見えなくてもいいスキルエフェクトとか、チップ消したらいいと思うよ。
下からツタのようなものが生えてきて敵を攻撃という動作がある攻撃魔法を行いたいのですが、画像をどうやって表示させれば良いのか分かりません。表示させたい複数の画像を
image =ナニナニ1、ナニナニ2、ナニナニ3
といれて、
time =100
anime =3
resize_w = -2
resize_interval =1
と設定しました。ですが、画像が表示させず、敵ユニットに攻撃は当たるのですが、透明です。これはどう訂正すればでしょうか?
>>134
ナニナニ0…2までのファイルを用意してimage=ナニナニ と書けばいいよ
chipファイルに関しては画像の大きさ(容量ではない)がデカすぎるのを一枚でも入れるとまともに動作しなくなることがある
キャラチップ切り詰め云々のメッセージは自分も出たことあるけどそっちの問題じゃないかな
ドット絵の大きさじゃないものはchipファイルには入れるべきじゃない
戦闘イベントにおけるroutineがうまく動かずに困っています
event battle
{
中略
next()
battle{
if(a == 0){
msg(aaa)
set(a,1)
routine(sub)
}
if(a==1 && aa == 0){
msg(bbb)
routine(sub)
}
if(a==1 && aa == 1){
msg(ccc)
routine(sub)
}
中略(似たような感じの続く)
}
}
event sub
{
if(aa == 0){
}else if(aa == 1 && count(@neko) == 1){
index(@neko,0,@get)
addTroop(@get,red)
routine(subsub)
}else if(aa == 2 && count(@inu) == 1){
index(@inu,0,@get)
addTroop(@get,1,1,1,red)
routine(subsub)
}
中略(似たような感じなの続く)
add(aa,1)
}
event subsub
{
if(@get == siro){
msg(白いよ)
}else if(@get == kuro){
msg(黒いよ)
}
}
}
この場合、msg(bbb)が通らないと思うのですが、何故か通ってしまいます
変数の数値をsubの最後で確認したりしても通らないはずなのですが、何故か通った上で、msg(ccc)以降が通りません
どういった理由が考えられますか?
addTroop(@get,red) →addTroop(@get,1,1,1,red)のミスです
一応文法そのものには間違いはないと思われます
戦う時のマップを2倍くらいの大きさにしたいのです。どうしたら良いでしょうか?
マップメーカーでサイズ決められるやん?
ちょっと愚痴。
騎兵の調整が難しい。
プレイヤー時には遊撃、急所への攻撃を主とし、CPU時にはプレッシャーを与える役割を担わせるのが理想なんだろうけど……
あんまり強すぎるとプレイヤー操作時無双できちゃうし。だからといって弱くすると、敵対時片手間で倒せてしまう。
一要素なように見えて、こいつの強さ次第でゲーム性全体が問われるのを実感した今日この頃。
あげちゃえ!
き○たけや光○目みたいに突撃属性つけて兵種によって耐性かえればいいのでは
騎兵を雇える勢力を限定する、無双できるのは人材の部隊くらいにする、プレイヤー時とCOM時では別物にするとか
クラス以外の要素で調整してみたらどうだろう
>>44
そうすれば騎兵の確立した立ち位置が出来るけど、その場合「CPUのプレッシャー」より「プレイヤーチート」の拡張のほうがでかいと思う。
攻撃面ではもちろんのこと、防御面でも対策が容易になってしまう。
じゃんけんのような相性を設けるのは戦略ゲームの基礎だけど、その相性が強すぎると、どうもプレイヤーチートが強くなる気がする。
だからといって弱めると、兵科の差別化ができないんだよなぁ……あぁ頭がいたい。
>>45
汎用兵科にしたいから1つ目は難しい。2つ目は想定はしているけど、多すぎると人材ゲーになってしまうから制限はするつもりでいる。
三つ目は手間がかかりそうだけど、一番現実的ですよね。プレイヤーチートを埋めるために、CPUにボーナスを付けるのはよくあることです。
可能な限り避けたいと考えていますが、どうも三つ目に行きつきそうな気がしてならない。
汎用兵科なら、3の案で耐性やステ、突撃の威力を変更した3〜4パターンの騎兵を用意
ゲーム開始時に難易度判定でCPU勢力の雇用を変える感じで比較的簡単にいけそうじゃないかな
1弱い←→4強い
とするとプレイヤー勢力は常に基本の2:騎兵、ハードならCPUに3:騎兵を、イージーなら1:騎兵でプレイヤーが被害少なく勝てる気持ちよさを、的に
静観からのキャラクターチェンジされるとどうしようもないですがw
fkeyも一緒にすれば騎兵を雇えるマスターはそれなりに雇用してくれる筈
高難易度モードに限り優秀なLSを持った無名騎兵人材をCPUに追加するのはどうだろうか
その無名人材が放浪すると削除してプレイヤー側は雇用できないようにするとか
removeSkill( ユニット , スキル )
ユニットからスキルを消去します
戦闘イベントでaddTroopしたユニットこれを使いたいんですが、スキルが消えるようすがありません
その場所を通っていない、ユニットやスキルが間違っているというオチはなさそうなんですが、どういう原因がかんがえられるでしょうか?
あと、戦闘イベント内で一般ユニットのスキルの全消去という挙動を実現させたいのですが、なにか方法はないでしょうか?
上記の方法ではうまくいかず・・・
敵が左右の動きしてくれれば敵にチート入れなくても大丈夫になりそうなんだがな
addTroopで追加したユニットをsleepTroopで止める方法はないでしょうか?
いくつも質問申し訳ありません
どうしても途中から追加したユニットにsleepTroopで止めたり、removeSkillで敵に攻撃をしないという挙動を実現させたいのですが、いくら試してもできません
なにかいい方法はないでしょうか?
戦闘終了後ユニットのHPとMPが全回復するのを無しにすることって可能ですか?
>>153
擬似的には可能
ただ少しめんどくさい方法になるし、若干不正確に手間かかる
%単位でユニットが残りどれだけのHPを持ってるかgetLife( ユニット )で確認し、それをリーダースキルにして突っ込むという方法になると思われます
MPはnanaさんが春に作ってた作品になんかあったね
スキルのたびにイベント起こして管理してるんだっけ?
でも戦闘中にイベント起こすと移動指定とか切れるんだっけ
勢力単位でやると制御できなくなるかもしれないね
回答ありがとうございます
>>154 の方法でstoreRectUnit使ってからスキル付加する方法でなんとかなりそうです
Lvが30になってchipが変わった後、大きさも変化させるにはどうしたら良いでしょうか?初歩的な質問でごめんなさい
>>157
解決しました
クラスによって、移動できる領地を設定することって出来ますか?
例えば船を陸に上がらせないようにするとか、
銃兵とかを海に行かせないようにするとか。
>>146
すっごい遅レスだけどプレイヤーチートを避けるなら逆に突撃耐性を無くしてしまう方法もある
そうすれば例えば騎兵は槍兵にガンガン串刺しにされるけど槍兵も騎馬突撃でボロボロに、みたく一定のプレッシャーは維持できるはず
>>159
陸と海でゾーン設定して
全ユニットを調べて船が陸に居る場合に直ちに接続する港に戻すとかなら現実的かもしれない
一緒にダイアログとか出せばそういうシステムっぽく見えるかもしれない
スキル画像を左右反転させることはできないもののでしょうか。
右向きと左向きの画像を用意しなくてすむようにしたいのです。
多分無理
MAP makerが上手く動かないので、誰か心優しい方2倍か3倍位に大きくした戦場を作ってくださらないでしょうか...
skill selfdamage1
{
str = fix*10
w = 128
h = 128
a = 128
center = on
homing = on
attack_us = 7
slow_per = 100
}
こんな感じで自分のHPを固定値削るスキル作ったんだけど、何故かfixにしても固定ダメージになりません
上の式でもダメージは600とかになるし、固定ですらなく580〜650程度でバラバラです
何か間違ってますか?
スキルテストに使ったのはNGTのテストぐんじんさんです
skill selfdamage1
{
func = missile
str = fix*500
w = 96
h = 96
range = 50
speed = 50
center = on
attack_us = 7
slow_per = 100
}
これでできると思う
>>166
日付変わらんうちにレスもらえるとは思わなかったわ
そしてちゃんとできたサンクス
単体だとちゃんとできたけど俺の使いたい用途だとダメだったわ…
広範囲の全体攻撃技(allfunc=on)からnextで繋いでライフコストのある大技作りたかったんだけど、ヒットした数だけnextが発動してるのか凄い被ダメが出る
他の方法考えなきゃならんなあ
とにかくありがとう
>>168
普通にnextで繋いだらそうなるでしょ
ライフ減らす部分だけ最初の全体攻撃からjust_nextとか使えばいいんじゃないかな
デブォシナセレンの青龍剣参考にしてみたら?
情報求めたし。
自作立ち絵&自作ユニットチップ作成を考えているオリシナ作ってるんですけど。キャラデザに困ってます。
一応世界観として、
☆近代ヨーロッパ風。(ちょっと後かも)
☆マスケット銃が普及し始めたあたり。
☆剣兵・重騎兵も一応いる。
☆魔法がある。
☆(天然)魔人はいません。魔獣はいるかも。
とまぁこんな感じ(のありきたり)なのですが。
これに近い世界設定でキャラデザが素晴らしい作品の情報を聞きたいです。
ご助力お願いします。
>>171
今公開中断してるけどハルスベリヤとか
条件は知らないけどファンタジー的な絵とキャラデザはロストテクノロジーのアガハリさんが神がかってる
そもそも立ち絵のあるオリシナが少ないしなぁ
ヴァーレン以外でなら色々ありそうな気がするけど
item0 = 3
item1 = 2
item2 = 2
item3 = 4
item4 = 2
item5 = 2
item6 = 4
とcontext内で指定しても最大装備数が1から変わらぬのじゃが、変更はできないのじゃろうか
これシナリオ構造体内じゃないとだめなんだなすまん自己解決した
建築物ユニットが逃げて攻撃をやめて困っています
移動力0なので実際移動はしないのですが
一応色々な事情により人材ユニットとなっています。(扱いとしてはクラス的な使い方をしているのですが)
使う場面としては戦闘イベントで、開始時にno_escape=onなユニットをスキルが絶対届かない場所に配置しているのですが、brave=100にも関わらずHPが減るとretreatなmodeになります
このことでスキルを使ってくれないのが困るのですが、何らかの対処法はないでしょうか?
失礼しました
解決しました
連投失礼します
戦闘イベントにおいて、elemental_lost=onを持ったユニットが召喚スキル中に撃破された場合、召喚ユニットが残ってしまいます
そのユニットを消す何らかの方法はないでしょうか?
element_lostじゃなくてelemental_lostでも動くのかは俺は知らないけど
element_lost = on/offは
「召喚するクラス/ユニット」じゃなくて「召喚されるクラス/ユニット」
に記述するすれば大丈夫なはず
おお・・・ありがとうございます
スペルはここに書く時にミスってましたが、あってましたw
される側にも記述するんですね、ありがとうございますー
<あぼーん>
される側にもじゃなくてされる側だけでいいはず
少なくともうちではそれでちゃんと動いてる
簡易戦闘時にも任意の側の勝利で強制的に戦闘を終了させる事は可能でしょうか?
兵士を全滅させての勝利じゃなくて相手逃走での勝利でいいなら戦闘イベントで戦力値だけ糞高い兵士を勝たせたい側に出すようにすればいいんじゃないの
逃げられない場所だと勝てないけど
解答ありがとうございます
なるほど、
isEvent()==0を使って開幕にaddTroopで無敵キャラ仕込めばいいのか
ちょっと調べたら簡易戦闘時はaddTroopやめたほうがいいっぽいのかな?
むむむ
map構造体の方に防衛兵として無敵ユニットを仕込んだmapを用意し、
イベントの条件成立時にのみchangeMapでそのmapとすり替え、
isEvent()==1で通常戦闘時のみその無敵キャラを排除する形で無事自己解決しました
どんな条件でやるか知らないけど、一応CPUターン時想定
攻撃側勝利が想定なら擬似的にやるなら真上にルートと透明なスポットと作って紙ステユニットを大量につっこんでwarlikeで攻めさせる
守る側に勝たせたいなら紙ユニじゃなくて超ステor無敵ユニ突っ込んどく
また、プレイヤー戦闘想定であれば召喚スキル作って召喚者死んでも消えない超ステのやつ召喚させる
説明文あたりを適当にしておいて、条件次第で通常のスキルに戻しておくみたいな
試してないんでなんですけど、自分がやるならこういうのを試してみるって参考にしていただければ
>>188
失礼しましたー
解決したのですね!
〜メーカー系を使うとImagemakarを使うとエラー:メインクラスC〜〜〜〜〜【保存場所】¥シナリオ作成ツール¥Imagemakar¥imagemakar.jarが発見できなかったかロ
ードできませんでした
詳細には違うかもしれませんが一瞬しか出ないので許してください
ヴァ―レンのバージョンは最新でjavaも入れていて最新です。
どうしたらいいですか?
191です すいません大事なこと書き忘れました
エラーが出て使えないんです
質問です。
戦闘にて双方の戦力値を変数に代入するにはどうすれば良いのでしょうか?
なんか変数に一発で代入できる関数あるならそれ使う
ないならwhileループで全部足す
一発で入れる関数はなさそうだね(��´��.�� �� `��)
戦闘参加してる勢力を読み取る
↓
戦場にいるその勢力のユニット全部をループ構文でpushForce戦力値測って足していく
これでできるっぺ
>>195
ループを使うんですね。ありがとうございます
>>180 様
またいろいろ試したのですが、やはりelement_lostだけが原因ではないようです
召喚を2つの状況にわけると
①召喚座標までimageを飛ばす
②召喚ユニットが実際に出現
デフォでいうと①は小さい直線に動くエフェクト、②は大きなエフェクトになりますね
①の途中に召喚元のユニットを倒してみたところ、②が実行され、結局element_lostがどうあろうと召喚されてしまいます
これに対処するなんらかの有効な手立てはないものでしょうか?
一応手段としては召喚ユニットが死んだ瞬間に召喚ユニット即死の攻撃を全体に飛ばす・・・ぐらいしか思いつきませんが、タイムラグがあったりほかの召喚が巻き添えになる可能性があり、躊躇しています
>>197
横レスですが聞いた感じ大したことなさそうなので適当に答えておきます。
間違ってたらごめんなさい
A.通常召喚
B.デフォのネクロマンシー系(他のskillから繋げて召喚するタイプ)
がありますね
聞いた感じスキル中に召喚元が倒されてもスキルが発生するようなのでB.タイプと私は思って回答します。
もしB.でやってて消えないのであればA.にすればいいだけです
B.の利点は『通常スキルでも召喚数限界に関係なく召喚できる』点ですからね
A.に変えて召喚したい数の召喚数に増やして変えるだけ
他にもB.のような使い方はNGTのゴブリンのわんこを召喚する「ゴブリンアタック」攻撃や、
ちょっと違いますが、倒した時だけ発生するエスティールの吸血鬼の牙の攻撃などがありますね
もし『何か』やりたいことがあって『あえて』普通のやり方をやってない場合は、スクリプト自体を貼って貰えないと答えようがないのでよろしくです。
180です
>>197 様の「これに対処する〜」までの文はおそらくVahren本体の仕様だと思います
疑似的に解決する手段の一つとして
召喚するユニットが倒されたときに、召喚スキルを相殺するスキル(以下相殺スキル)を発生させるのはどうでしょうか
召喚スキル①の部分に特有の属性とoffset = on、collision = @を設定し、
相殺スキルにoffset = 特有の属性とおけばスキル同士が相殺されます
この相殺は一対一なので、複数の一般ユニット等に使用しても大丈夫だと思います
また相殺スキルのspeedを早くするか、wとhを大きくすれば
タイムラグの心配もないと思います
>>198
Bの方法であり、単純にネクロマンシー的な発動なので特殊な挙動はしてません
ということでAの方法でRush=5で5人同時召喚でやってみました(召喚限度数99999)
しかし、同じ条件で召喚ユニットが残ってしまいますね
召喚はほんの一瞬(それこそ1秒もかからない)ですが、その間に召喚元を倒すことで召喚ユニットが残ってしまうようです
>>199
召喚相殺スキルに関してですが、同陣営のため相殺できないようです(やり方が悪いかな?)
問題は、召喚されるユニットが動くため、そこが問題にもなりますね
一応これはmissileという意味ではなく、デフォにおける基本的なsummonを分けた感じで書いたつもりでした
音が鳴って小さいimageが飛ぶ→大きいイメージとともにユニットが召喚されるという基本的な感じです
一応目的としては、戦闘イベントにおいて防衛側とされる側が兵舎で兵隊を召喚するのですが、その区画の防衛大将を倒した瞬間、その区画の防衛部隊を全てRemoveTroopし、演出として攻撃ユニットを配置します
この時、防壁をはさんで隣接する区画にいる敵に向け、攻撃、移動をされると困るので、SpeedTroopで全部隊を0、そして攻撃しないようにRemoveSkillでスキルを全て取り上げています
そのため、召喚ユニットが残ってしまうとその攻撃側の演出として残したユニットを一方的に攻撃してしまうことになり、突破したのになんか演出ユニット全滅してるよ!?みたいな状況になってしまいます
もちろん可能性としてはそれほど高い可能性で起きる状況ではないし、起きたとしても配置した演出用ユニットが死ぬだけなんで進行上は問題ないのですが、気にされる方はいるかなーと
>>201
>>199 は間違いでした同陣営では相殺できませんね
基本的なところを間違えたことをお詫びします
召喚スキルは、
Ⅰ:召喚されるユニットが配置できるスペースを探す
Ⅱ:imageの一枚目の画像がユニットが配置できるスペースにspeedの速度で移動する
Ⅲ:timeの分だけimage画像の演出を行う
Ⅳ:召喚ユニットが出てくる
の順序で処理を行います(デフォルトシナリオのs_fireで確認)
ⅠとⅣは一瞬なのでⅡでspeedを速く、Ⅲでtimeを短くすれば
ユニット消去のダブりの確立をかなり減らすことができます
ただし、召喚スキルの画像を無しにしなければⅡでとても不自然に見えてしまいますが・・・
兵舎の召喚スキルの演出に拘らなければ上記の方法がお勧めですが、
そうでなければ、RemoveTroopする寸前に画像透明度が1の兵舎と敵対するユニットを配置し、
そのユニットを自壊させて召喚スキルと相殺させてはいかがでしょうか
とても簡単な問題だと思うのですがすみません
ImageMaker1.batをダブルクリックしても一瞬位画面にファイルの位置が出るだけで消えてしまいます
Windowsのバージョンは8.1
javaは1.80ですヴァ―レンのバージョンは最新のやつです。
最新バージョンのヴァ―レンでやるとこのようなエラーが出るのでしょうか?
>>200
前動作で時間がかかるとAの挙動でも残るのでですね勉強になりました。
>>201 での利用法通りにはいかないかもしれませんが
もしかしたらpopo様の『SD戦国伝』あたりが参考になるかもです。
たしか、アレも召喚ユニットの元となる『陣地』が取られると敵の『陣地』ユニットになったと思います。
1.NGTのマザーアーニェみたいに、消したい兵にだけ即死属性を仕込む。
2.召喚元ユニットのbreakにその属性の広範囲攻撃を仕込む。(attack_usで味方に当たるように設定、timeを長めに設定して、召喚されるのが多少遅れても大丈夫なようにする)
3.召喚元ユニットの死亡と同時に範囲攻撃が発動。召喚された兵は死ぬ。
これでどうでしょう?
耐性記述してくの面倒くさいですけど
ああtime長くするより何回かrushした方がいいかも
そこら辺は適当にやっちゃって下さい
>>202
とりあえずその前者の方法で不自然でないのでやってみます
今のところ不具合はほとんど見えないので、なんとかなりそうかな?
それでも相当低確率であるので、保険程度のことはやってみます
>>203
ですね
SD戦国伝、やったことがないので参考にしてみます
>>204
それも考えたのですが、別の問題ががが・・・
壁こえちゃうので、壁の向こう側の召喚に非常に当たりやすいあたり・・・
無理やり区画全部を32*32の消すスキルで埋め尽くす・・・とかも考えたんですがさすがに無理やりすぎた・・・!(スキル多すぎて重い・・・)
______________
長くなったのですが、もう一つこの目的における質問をば・・・申し訳ありません
対処法でなんとなく思い出したのですが、少し前に実装された攻撃されない確率みたいな属性をつけられる仕様はなかったですっけ?ステルス?みたいな
wikiにないので、ん、んー?と思いつつ調べ方が悪いような気もしてたり・・・
>>207
1.目標地点まで飛んでいくスキル
2.目標地点まで到達したらattack_us=7の自己に対してのみ当たるstr=none*0の範囲スキル発動。nextで次に繋ぐ。
3.ユニット召還
これでいけるのでは。ただし1のスキルが届いたところがユニットで埋まっていた場合は召還されたユニットが沸く位置がずれますが。
>>207
ステルスの説明がない件はおそらく仕様が安定しないための措置だと思われます。
用いるとユニットの敵サーチ時に引っかかりにくいという利点があり、100だとたしか100%近く対象に選ばれない
つまり敵が多数いると攻撃される確率は上がるわけなので少数精鋭や軍隊の敵の察知の違いなどが出来るわけですが
その負荷がどうしても重いようです
色々と仕様を調査したり実験したりしている
親切なMODツール製作者の方にわざわざ静観での調査までしていただいて
教えてもらって実際そうだったのですが
ステルスとスキルのa=での透過率は多いとフリーズ要因になるようです。
特に召喚ユニットで用いる場合は、少数のユニットに『だけ』設定でない場合は負荷が大きくなるようです。
なので今回の用い方の対処法ではよろしくないと思います。
私もステルスは全部コメントアウトして仕様がwikiに乗るぐらい安定するまでは使ってません。
>>209 に補足です
仕様の説明が必要な場合は
ナチガリア戦記のnana様のツイッターでの発言で
たしかステルスに言及しているのがあります
VT関係の調査結果などをつぶやいてたりしますので、他にも参考になりますかも
たとえばbomで攻撃するときに画像通りにはダメージがいかない
イメージ関係のはwとhで、画像は四角形ですのでね
なのでリサイズで画像通りの攻撃範囲に加工する〜とか色々あります。
>>208 >>209 >210
ありがとうございました
おかげで何とか戦闘イベントが完成しました!
本当にありがとうございますー
建築物の召喚で困っています
左右非対称なものを召喚する場合、建築物が左右を向くことで非常に不自然な感じになってしまいます
なんらかの対処法はないでしょうか?
>>212
最新版で追加された
yorozu = keep_direct
じゃ無理なの?
>>213
おお・・・最新版確認してませんでした
ごめんなさいー、ありがとうございます
すみません質問です
大量蘇生の必殺技を作っているのですが
1.蘇生対象のクラスのユニットが死亡すると、死亡時スキルでステージ端に「影」が召喚される
2.必殺技でその影を殺害し、afterdeathでそのクラスのユニットを召喚する
という風にしようと思ったのですが、1の影をステージ端に召喚するというのができません
rangeを短くすると戦場の真っ只中に出るし、長くするとステージ外に飛んで行くのか召喚自体されません
どなたか良い知恵をお願いします
蘇生が実現可能なら上の方法で無くても勿論結構です
>>215
影をw=1h=1の激小+移動力激高+escape_range激高にすれば召喚された瞬間エリア端まですっとんでってくれるんじゃないだろうか
その場合影が小さすぎて見えなくなるけど
もし影を可視化したいなら影に「自分に当たって自分を追尾し貫通する」→「自分の画像で自分を追尾する(最初のスキルのHardと同じ数値のTime)」
みたいなスキルを使わせれば強引に見せることはできると思う
>>216
できたわありがとう
影が見えないのは全く問題ないよ
遅れたけど
もしユニット多くなって負荷おもくなったら
timeながい誰にも当たらないスキルを死亡時だして
蘇生スキルでハード2でオフセットで打ち消し、打ち消されたら召喚発動ってのも出来たはず
>>218
そのやり方もいいな ありがとう
ちょうど蘇生スキル持ちが死んだら召喚されたユニットが使われずに残り続けるのをどうしようかと悩んでいたところだったから助かる
色々試してみるよ
味方スキルって相殺できなかった気がするけど死亡時スキルなら相殺できるの?
いいこと聞いたわ
あーそーなのかー
じゃあ、面倒だけどsd戦国伝の陣地ユニットがやられると敵陣地になるみたいに敵ユニットを召喚する方法かな
敵ユニット召喚→HP回復マイナスで死亡→アフターデスで敵ユニットのスキル扱いで相殺スキル
で発生するかも
味方攻撃相殺できないんだったら蘇生使用ユニットのBreakでAfterdeathの無い蘇生スキルを使わせれば問題解決するのでは
バグ報告です。
マップの件ですが、縦と横のサイズの比が大きい場合(例えば縦21横200)
ミニマップ表示がおかしくなります。
おかしいだけだと分からない事もあるから
スクショもあると直るのが早まるかもね
スクリーンショットをヴァーレントゥーガ小物入れにUPしました。
画像はデフォシナのs61.mapのサイズを縦20横200に変えたものです。
>224
アドバイスありがとうございました
味方へのステータスダウンの魔法を使いたいのですが、ステータスUPは成功するのにダウンは成功しない状態です
ステータスUPのバフのstrをマイナスにしたものを、召喚ユニットに必殺で持たせる方式なのですが、デバフだけうまくいきません
受け手はちゃんとattack_max =150等入れてあるのですが、デバフのみ効果がありません
どういった原因が考えられますか?
ちなみに召喚主に同じスキルを持たせて実行すると、きっちり下がります
原因が不明です・・・
自己解決しました
技術が問題だったようです
ある状況Aからある状況Bに変化した場合、マップが数倍の大きさになるというシナリオを作りたいと思っています
基本的にAからBにする場合を除き、この変化は存在しません
もちろん出来るならば、AからCなら縮小、AからDなら縦増えて横減るみたいな方法が出来ればとても助かるのですが・・・
何かいい方法はないでしょうか?
また、マップとして扱える大きさの最大値とかってあるでしょうか?
城壁みたいなのが壊れるとかでよくね?
>>230
ごめんなさい、よくねえ感じです・・・
まずマップの前提が戦略マップ、説明し忘れ申し訳ありません
次にマップの変更というのが、完全に規模の変わるマップという感じ
1000*1000のマップから、1500*2400に変わるとか、2000*800に変わるみたいな
実際はもっと大規模に変わる感じですが、例としてはそんな感じ
マップ自体は全てbgを使って処理する感じですね
マップ規模を拡張する感じではなく、マンションの室内マップから日本地図マップになる感じですかね?
要は単に広げたいだけじゃなくて、違うマップに対応できる大きさにしたいといったほうが正しいかもしれません
なお、全体マップの大きさ基準にしてしまった場合、何も無い空白部分が大部分を占めることになってしまい、非常にプレイしづらいからです
マップが切り替わるタイミングで使わないスポットハイドにして使うスポットを見せればできるよ
戦略マップという箱の大きさを変えるんじゃなくて、中身の配置を弄る感じ
えっと、つまりは1024*768がデフォルトとして、x=1500,y=100とかにしたら1500*768になる感じですか?
addSpot(testspot)
showSpot(testspot)
ってな感じにシナリオ構造体にいれたんですが、そういうことじゃないのかな・・・
戦闘シーンなら戦闘イベントの最後に入れるとか?
ちょっと要領得てなくてすいません
スキルの挙動に関する質問なのですが、
skill m_twinkle
{
name = トゥインクル
help = 落下型の無属性魔法です。
icon = twinkle.png, @light.png
sound = coin07
image = star0
anime = @
w = 38
h = 38
a = 32
func = missile
str = magic*100
range = 500
movetype = drop
speed = 2000
height = 400
time = 3
flash = 1
next = m_twinkle_nt
next_interval = 2
next_last = on
damage = 0
resize_interval = 2
resize_h = 10
resize_w = 10
resize_a = 9
mp = 50
resize_a_max = 200
}
skill m_twinkle_nt
{
image = c_all
anime = 5
anime_interval = 4
w = 36
h = 72
a = 64
//resize_x = -3
//resize_y = -3
resize_a = -2
resize_interval = 1
time = 12
damage = -1
}
このスキルの落下速度を変更(speed = 2000→speed = 500)にしたところ、ゆっくりと攻撃エフェクトは表示されるのですが、
攻撃指定地点に辿りつく前に消えてしまいます。攻撃判定は消えた部分で発生しました。
色々な数値をいじったのですが上手くいきません。
このズレをどうにかして修正できないでしょうか。お願いします。
すみません!>>236 は色々いじった後のやつでした。
本来はこっちのほうです。
むなしい努力のMOD制作用になります。
skill m_twinkle
{
name = トゥインクル
help = 落下型の無属性魔法です。
icon = twinkle.png, @light.png
sound = coin07
image = star0
anime = @
w = 38
h = 38
a = 32
func = missile
str = magic*100
range = 500
movetype = drop
speed = 2000
height = 400
time = 3
flash = 1
next = m_twinkle_nt
next_interval = 2
next_last = on
damage = 0
resize_interval = 2
resize_a = 9
mp = 50
resize_a_max = 200
}
skill m_twinkle_nt
{
image = c_all
anime = 5
anime_interval = 4
w = 36
h = 72
a = 64
//resize_x = -3
//resize_y = -3
resize_a = -2
resize_interval = 1
time = 12
damage = -1
}
>>233
一応試してみた感じできません・・・
見えるスポットが画面外にあるような感じで、スクロールできません
コサックス3のAIみたいに綺麗に陣形組んでくれるといいな
質問失礼します
歩きながらマシンガンを連射するようなスキルを作る際
スキルの発射位置を自身に固定する方法はありますでしょうか?
origin=onを入れて着弾位置を自身に固定した中間スキルをnext2で連射させて、
send_targetとnext_firstでそこから弾が飛ぶようになど試してみたのですが
スキルの発射位置だけが固定されてしまいうまくいかないのです
origin = on
homing = on
一段目は両方いるで
有難うございます
なんとなくそれっぽいのできました
最終的に悩んだ原因が画像なしの弾丸にrayで射線出してたせいだった…
旗の位置と旗のサイズを変える方法ってありますか?
32*32だと小さすぎるのと、できるだけスポットに密着した場所に配置したい理由がありまして・・・
<あぼーん>
<あぼーん>
<あぼーん>
なんでこんな焼け野原に
質問です
fight = onにしたstory構造体で戦闘中にイベントを発生させようとしたのですが
isInterval()などを使った一定時間ごとに発生するイベントが機能しませんでした。
そこで別途event構造体を分離してbattle{以下で試した所、機能したのですが
今度は戦闘終了時にマスターの所に視点が移動しながらクラッシュしたり、
クラッシュしない場合は「防衛しました」「人材にXを支払いました」等の戦闘終了処理が2回行われてしまいます。
イベント戦闘ではない通常の戦闘中に、isInterval()で一定時間ごとにイベントを起こす事は何とか出来ないのでしょうか。
追伸報告です
同じevent構造体内でも、とにかくbattle{を使うとイベント戦闘として処理されてしまうのか戦闘が二重になって終了時にバグってしまうようです。
battle{を使わずにisInterval()やmoveTroopが使えればいいのですが……
ぱっと思い付くのは召喚スキルで制動してデッドイベントかな
過去ログを漁って自己解決しました
rif文は「battleEvent(rifを内蔵するevent)」で分けないといけないみたいです
お騒がせしました
要望です。
今作っているシナリオが他のPCでどの位快適に動くか分からないので、良ければベンチマーク機能をつけて欲しいです。
要望の便乗で。
セーブしたときの名称がシナリオ内のname=で表記した名称になりますが、
これが長文の場合どこの勢力でのセーブだか分かりにくくなるので
savename=という形でセーブするときの名称を決められればと思います
指定が無いときはname=が反映される形ならば更新停止しているようなオリシナでも影響は出ないと思いますので
ご検討よろしくお願いします
>>253
いいねそれ
先日マップの広さを変えられないか質問した者です
あれから色々ためしたのですが、どうもうまくいきません
方法1
scenario構造体にmap=を条件付きで入れる
条件式内にあるものも無条件に読み込まれてしまいます
例
if(a == 1){
map = aaaaa
}
としてもキャラ選択時にaaaaaというマップが読み込まれてしまってアウト
無論a==1とする挙動は一切行っておりません
方法2
worldイベント内に突っ込む
そもそも読み込みません
セーブしてリセットしても同様の挙動
方法3
さすがにこの方法を使うわけにはいけないのですが実験
image内のファイル名を変える
確かにかわりましたが、これをプレイヤーにやらせるというのはさすがに・・・ということで没
リセット必須になりますし、terminateではVTそのまま切るわけではないですし・・・
以前質問したのですが、途中で回答を頂けなくなったため、再度の質問ですがお答えいただけると助かります
方法4
map = bbbbb
if(a == 1){
map = aaaaa
}
この場合bbbbbになる
後でa=1にして、一度VT切ってオートセーブから始めても同様
方法5
if(a == 1){
map = aaaaa
}
map = bbbbb
この場合aaaaaになる
名前変えたマップファイル同封すればよくね?
>>257
名前を変えたマップファイル同封には問題点が多数ありまして、その場合プレイヤーにイベント都度VT切ってこれをこの名前にして入れて
といった風に毎回変えてもらうハメになるかと思いますが
他の問題として、イベントの内容を変える際にシナリオ構造体をいじってもらうことになります
要するに手間がプレイヤーにとって煩雑になりすぎるということですね
以前の回答によると、何らかの方法でできるようなのですが
召喚されるユニットのクラスチェンジについて質問です
10レベルでクラスチェンジ設定が有るキャラが居るとします
これを8レベルの召喚主が召喚スキル(summon_level=150)で呼び出すと、12レベルになりクラスチェンジすると思うのですが
実際に召喚されたキャラは、12レベルだけどクラスチェンジはしていない状態で呼び出されます
同じキャラを勢力のメンバーにしてaddlevelで12レベルに上げるとクラスチェンジするので、ユニット側の設定としては間違っていないと思うのですが
召喚スキルでの呼び出しの場合はクラスチェンジしないのが仕様なのでしょうか?
想定している状況は、必殺スキルでお助けキャラを出現させるという形なので、タレントunitを召喚する形で使いたいのです
>>258
試してみたけどmap = て指定は条件式より上位みたいやねえ。
同サイズの画像にbg指定で切り替えてスポットを全部再配置することで
世界観が拡大したように見せかけるしかないんじゃなかろうか。
>>259
そのままだと無理だと思うよ
召喚はlevelsetと同じでlearnで覚えるスキルも未習得で出てくる
>>261
なるほど、クラスチェンジしないのは召喚の仕様っぽいのですね
助さん格さん懲らしめてやりなさい的な事をしたかったのですが残念です
なにか別のやりかたを試してみることにします
>>262
クラスチェンジ後を呼び出す魔法とチェンジ前を呼び出す魔法を別々に作ればいいのよ
光の目の更新できたAI制御が面白いな
魔改造が楽しい
あれsmoveTroopで非人材ユニットが動かないから、敵に人材が大量にいないといまいち制御できてないという問題があるんだよね
>>260
不具合・・・に当たるのかな?
大きくするってのは考えたんですけど、スクロール面で問題が出るから困ってたんですよねぇ・・・(全部は出せない)
一応ななあしさんに要望という形で、mapの大きさをスクリプトで変更できる仕様にしていただけると助かりますってことで!
storeNowPower(文字変数)について質問です
以下勢力順でH=ハイドしたスポットのみ領地に持つ勢力として記入します
勢力A(H)→勢力B→勢力C(H)→勢力D(H)→勢力E→勢力F(H)→勢力G(H)以下Aに戻る
といった感じでターンが回っています
プレイヤーは勢力Bです
実際は勢力数はおおよそ40ほどあるんでもっと多いんですが、基本ハイドした領地のみを持っている勢力が多くあると思ってください
ターンをstoreNowPower(文字変数)で取得したいのですが、Bの後Eを取ろうと思っています
しかし、storeNowPower(文字変数)で取った変数はBのターンが終わった後は何故かCばかり(次のBのターンがくるまで)と言う状況になっています
各勢力それでどの勢力のターンかを取りたいのですが、条件式で全て確認する以外に方法はないのでしょうか?
勢力は今後生存ハイド勢力含め100ほどを想定しなければならないため、storeNowPower(文字変数)で取れないと非常に困る状況です・・・
失礼しました・・・初歩的な条件式の{}ミスが発見されたため解決しました・・・
小物いれに作成中のテストスクリプトを上げさせてもらいました
生成されるはずのないゴーストユニットが生成されてしまうのです
どなたか知恵をお貸し願えませんでしょうか?
よろしくお願いいたします
フォルダ内に簡易説明textを入れてあります
尚簡単に解説しますと
ugg_goto というコードのユニット(talent=on)がゲーム内に複数生成されてしまいます
もし自分のスクリプトに不備があろうとも
このユニットが複数存在できてしまうのは本体のバグとしか思えません
どうか知恵をお貸しください お願いします
ゴートユニット?
連投スマソ
普通に複数のユニット出すことはできる
詰めヴァーレンのダルカンパラダイスが参考になら
>272
それは talent=off のユニットである
初期メンバーにキニーが入ったエルフォードとキオーを
スクリプトで配置したらキニーが二人になったことはある
spot構造体の「member = 」と間違えて「monster = 」に人材入れちゃったら大量増殖した
今更ですが、グローバル変数って識別子は対象外なんですね
質問です
勢力選択時の画面にマスター以外の初期人材が表示されないです
どうしたら表示できるか教えて欲しいです
要望なのですが、人材でない一般ユニットを文字変数に入れて呼び出した場合もmovetroopが効くようには出来ないでしょうか。
戦闘イベントなどで移動させるには全部隊人材を隊長にしないといけなくて少し不便なので・・・
>>277
emable_select = on
にしてる?
>>279
してみましたが表示されないです
>>277
spotの方でちゃんと勢力の所有地域に所属させてれば出るはずだけど
その状態でゲームはじめて、表示されてなかった人材はちゃんと勢力所属人材になってる?
emable_talent = onではなくてtalent = onと書き込んだら無事表示
お騒がせして申し訳ないです
BGMにOGG拡張子のファイルを使ってみたところ、
実際に再生してくれました。
次にループポイントを設定して
「最後まで流れた後は設定した地点からループする」
ようにしたかったのですが、
RPGツクールで用いられている方法
(「LOOPSTART」と「LOOPLENGTH」の記入)は受け付けてくれず、
最後まで流れて最初に戻るだけでした。
a_default→main→scriptフォルダ内のファイルを見ても
ループ関係の記述は見当たりませんでした。
どのようにすればoggファイルで
ループ地点からループするようになるのでしょうか?
ループ範囲指定はできないんじゃないのかな
MIDIもループしないし
要望です
タブレットのペンでヴァーレンをしようとしたところ、ユニットの移動や遠距離スキルの目標を定めることができませんでしたので
ペン操作でも遊べるようにしていただけませんでしょうか
>>284
なにーそうなんですか。
個人的には歯がゆいところだな…
ななあしさんは最終更新を宣言したけれども
ダメもとで要望しておきます。
ヴァーレンにも音楽のループ(特にOggファイル)を導入して頂けませんか?
どうかお願いします。
Spotの周りの光ってどうやったら消せますか?
もしくは光の大きさを広げることができますか?
初期Spot@Aを全部ハイドして、別のスポット@Bを表示するという方法を取っているのですが、@Aのスポットの光が全て表示されたままになってしまい、非常に不格好になってしまっています
一応@Aと@Bに関しては複数。Aはおおよそ50、Bは最大700ほどのスポット表示をします(実際は40程度)
光の大きさを画面全体に広げる、もしくは光を消すという方法があれば教えていただければ幸いです
一応実験結果2つ
ゲーム開始時はSpot0のシナリオなので、これを前提に
イベントで@Aを表示させる→イベントで@Aをハイドする→イベントで@Bを表示させる
この場合@Aの領地にあった光は表示されませんでした
イベントで@Aを表示させる→セーブする→ロードする→イベントで@Aをハイドする→イベントで@Bを表示させる
この場合@Aの領地の光が残ってしまい、@Bの中に@Aの光がある状態で非常に不自然な感じに
なお、オートセーブでも同様の結果でした
私の使い方が悪いのかもしれませんが、グローバル変数では文字変数の中身は書き込めませんか?
もし文字列か数値しか記憶できないなら文字変数にも対応していただけると助かります。
グローバル変数に書き込めるのは数値だけで文字列は保存できない
setvやaddstrで保存したい文字列をグローバル変数にはできる
>>288
実験結果追加
①バトルイベントを挟んでみる→戻っても光ったまま
②別のマップに一瞬飛んでみる→戻っても光ったまま
③ハイドのしてshowしてハイド→無駄でした
④新たにaddSpotしてみたり→ダメでした。光だけ独立して別々の判定?
どうやら「データのロード時点」でShowされているspotだけ光る模様?
何か思いついてない方法ないでしょうか・・・
使用している関数が不明なので「Spotの周りの光」が何を指しているのか分かりませんが
マーキングのことなら消去するのは spotmark() です
>>292
違います
スポットの周りが少しだけ明るくなってるやつです
>>290
あー、数値だけでしたか……。write/readの時点で気付くべきでした
gstoreとかgsetが欲しいけど難しいですよね
>>294
数値に関連性持たせるとかどうでしょうか?
具体的に言うと、modとdivを使います
大体数値変数は20億ぐらいまでいけたはず?なので、数字は多分大丈夫
文字変数が「配列」であるのならまたちょっと違う方法になってきますが、例えば100のユニットと50のスキルが存在する場合でいきますと
0〜49までは0番目のユニットのスキル1つと定義します
50〜99までは1番目のユニットのスキル1つと定義します
以下こんな感じで計算していきます(もちろん定義するのは事前にifで全通り探したりwhileで探ったりする必要がありますが)
これを数字からゲットする場合として、範囲はかならず0〜4999になるわけですが、この数値を50で割ります
答えは0〜100、余りは0〜49になります
これにより、その数値がどのユニットを示し、どのスキルを示すかを把握することができます
ちょっと定義を増やせば配列もある程度出来るはずなので、一応参考までに
>>295
それは現状の実装法ですね。何をしたいか書いていなくてすみません。
実はその方法、出来れば避けたいんですよね。
もう最終更新とあるので無意味かもしれませんが、今後gstoreなどのような機能を追加できるのか、そして要望があればしてくださるのかを知りたいです。
>>296
いえいえ、こちらこそ既に実装してる方法提示しちゃって申し訳ありません
確かに手間も多いし後々追加要素入るときにキツいですもんね・・・
超久しぶりにwiki見たけど
ヴァーレン最終更新残念だな
質問ですが
vahren本体のscriptのmainフォルダの一部を書き換えた改造ファイルを公開することについて言及されたことはありますか?
過去スレには無いようですがここだけでやり取りされているわけではないようなので
本体を動かす自作のscriptの公開は許可されているようですが
氏の作品を弄って公開するとなると別の問題があるかと思って情報を探しているのですが
中立放浪スタートで旗揚げすると雇用に □金0 ユニットが表示される、というバグが出て困ってます
クラスfkeyを消すと消えることだけわかったけど、発生する条件がわからない
v685のデフォシナで再現する用のスクリプト上げてみましたので
どなたか情報もらえませんかね?
Script.dat
ttp://ux.getuploader.com/vahren/download/4225/Script.dat
旗揚げ雇用で□金0
まずfkeyというのはそのクラスの基本クラスを指定するものなんやな
ソルジャー系ならソルジャー、マジシャン系ならマジシャンを指定するんや
存在しないクラスを基本クラスに指定したらあかん
そして、ベリアルとかパラディンみたいなユニーククラス以外は
マスター時は自動的に基本クラスが雇用されるようになっとるんやで
!?
なんという思い違い
助かりました。わざわざありがとうございました
>>300 のファイルは消しと来ます
>>269
whileで1人ずつ移動させたら大丈夫だった
特定の勢力に所属してるときのみ特定のアイテムを購入できるようにしたいのですが
人材プレイ時の所属勢力を確認するにはどのように書いたら良いのでしょうか。
プレイヤーを変数に入れて
whileループで各勢力に対してinPowerで回したらええんとちゃうの
storePowerOfUnitとif文使ったら出来るようになったんですが
放浪したときにアイテム欄から消すように処理しないといけないのが2度手間のような気が。
while文を使った方がスマートですかね。
while文読めないし書けないのでもうちょっと勉強してきます。
ありがとうございました。
所属する勢力毎に購入できるアイテムを変えるなら
放浪中は全アイテムをexitItemするイベントは必要になるんじゃないか?
スキル作成って頭おかしくなりそうですね…
スクリプトの著作権ってどうなっているんでしたっけ
犯罪ではないけど常識的に考えて…みたいな感じだったと思ったんですけど
その適当で都合が良すぎる著作権論に「うん」と返してほしいのか
気が引けるならコメントアウトで参考元でも書いておけば良いんじゃなかろうか
自分は気休めでそうしてる
スクリプト読めないの日本語読めないレベルなんですけどそれは…
whileの条件満たすまでループまわしますよってたけだぞ
でも>>304 のケースの場合storePlayerUnit&storePowerOfUnitでやった方がよくね?
プレイヤーの所属調べるためだけにwhileで全勢力調べ上げるのは手間が多いだけだと思う
そっちのほうが楽だね
なんかいろんなものとごっちゃになってる、ごめん
>>309
http://www28.atwiki.jp/vahren_ency/pages/982.html
この記事を昔見ていい風に勘違いしてたみたいです
すいませんでした
どこをどう見たら>>308 みたいな解釈になるんですかねぇ
wikiのページを記事なんて言っちゃう辺り海の向こうの方かな
wikiのページの主なtextを記事というのは別に間違っていないので誤解のないように
でも真似とか似てるとか言い出したら
if(a==0){addUnit(aa,bb)}
とかも絶対どこか被ってるシナリオあるから、結局良識の範囲内ではないかな?という気はする
明らかにここからパクりとか言い切れるラインもないし、逆にVTのシナリオという範囲内である限り、見なくても同じスクリプトになることは別段おかしくないんだから
気になるなら参考元をどこかに記述しておきましょうってかんじじゃ?
※ただし丸コピペしてこれ自分が書いたやつだよ!とかいうのは人として論外と思います
ある種の処理なんて改行位置と変数名以外一緒とかになるしな〜
光の目戦闘AIを見てるんですが、わからない関数があります。
[countVar]
[storeindexVar]
の二つです。
wikiで検索しても出てきませんでした。どなたかご助力願います。
countVar:条件分岐構文(if〜else、while)ページの count と同じ
storeindexVar: 関数(変数への代入) ページの index と同じ
eraseSkillで全スキル削ろうとしてるんですが、初期のスキルだけ削れません
全スキル削る方法は最初はスキル空っぽで開始時に付与するしかないんでしょうか?
内容としては内政の時に通るevent内でeraseSkill(unit)を使っている感じです
内政ユニットのものではなく、一度スキルを一掃して付与し直す感じなのですが、初期スキルのみ何故か消えなくて困っています
解決しました
changeRaceを間に咬ませるとまた初期スキルが復活?かよくわかりませんが、消えないスキルがあるようです
なのでeraseSkill→ChangeRace→addSkillだった順番をChangeRace→eraseSkill→addSkillで解決しました
>>320
ありがとうございます。助かります。
>>323
クラスチェンジしたらまた元に戻るよ
「未設定のスキルが設定されています」ってエラーがおこる。
スキルはしっかり記入してあるし、スキルアイコンはしっかり反映されてるのに、
ワールド画面からアイコンにマウスおくと、上記のエラーが起こる。
助けてください。
流石にスクリプトみないとそういうのはわからないのでは…
そのアイコンの対象をチェックしてミス探すしかないよ
skillかlearnでスペルミスか何かがあるはず
マップ画像を読み込んでそれをマウスでクリックするとスポットが自動生成されるソフトがあったのですけど前誤って消してしまいました
どこにあるかご存知の方、教えて頂けると幸いです
自己解決しました
スキル使用中にスキルを使ってるユニットの画像を消す方法ってないですか?
攻撃するときにユニットの画像自体をアニメにしたくてスキルイメージにユニットのアニメを描いたんだけど元のユニット画像の上に表示されてしまいます
>>331
厳密に消すわけじゃなきゃ超スピードのスライドでどうですか
テストシナリオのかんとの徐晃みたいな感じになります
問題点はスキル使用中の座標判定が変わってしまうこと
>>332
ありがとうございます
新参者ゆえ手こずってますが、頑張ってみます!
すみません、質問です
人材の登場と引退をひたすら眺めるゲーム作りたいんですけど、
VTって人材の自動生成は可能ですかね?
wiki見るとイベントで下記2つが可能だということは分かったんですけど
・ユニットの参入
・パラメータ、スキル、クラスの変更
通常ユニットの人材化、ないしは予め自動生成用の人材を用意しておく必要があるような気がしています。
新規人材の追加ってできないものなんでしょうか
>>334
発想が変態ですね
NGTとかでキャラメイクがあるから、それを弄って乱数で分岐するようにすればできるんじゃないでしょうか?
ただかなり複雑なスクリプトだったと思うので頑張ってください
>>335
回答ありがとうございます。
ぱっと見てきました。
キャラメイクは人材プレイで新規キャラで始めるものであってますかね。
予めユニット構造体を作っておき、それにクラスやらを当てはめてる感じに見えました。
ゲームプレイ内でユニットやクラスの構造体を新規作成できなさそうであれば、
予め箱を作っておくという方向性になりそうですね。
>>335
回答ありがとうございます。
ぱっと見てきました。
キャラメイクは人材プレイで新規キャラで始めるものであってますかね。
予めユニット構造体を作っておき、それにクラスやらを当てはめてる感じに見えました。
ゲームプレイ内でユニットやクラスの構造体を新規作成できなさそうであれば、
予め箱を作っておくという方向性になりそうですね。
>>337
眺めるだけ、というのは途中で人材プレイは不可ということですか?
もしそうなら箱とかは不要ですね。
>>338
箱が不要とは?
最終的な目標は国の興亡のシミュレーターです。
なのでプレイヤーが介入しないで済むのはありありです。
自分でプレイできてもいいですが、勝手に回ることの方が理想的です。
スポーツゲームのシーズンをオートで回し続けるような仕組みを作りたいと考えています。
(年単位で各球団に新規加入者と退団者が現れる。選手を振りかえることができる。など)
>>339
箱というのはunit1,unit2,...みたいに用意するって意味ですよね?
そうじゃなかったら忘れてください。。
>>340
その意味です
予め複数の空のユニット構造体を用意しておいて、
順々に適用させていくことをイメージしています。
すみません 全てのユニットを雇用可能にするには
friend = の所に何を記述するんでしたっけ?
文字変数に代入したclassユニットってskillTroopでスキル発射しないんでしょうか?
そんなはずないと思うんですが、とある検証でunitユニットは発射したのにclassユニットが発射しないんです。
質問です
遠距離スキルでアニメーションを設定したらアニメスキルの画像が1周するごとに一瞬画像が消えて点滅してしまいます。どうしたら点滅を消せるでしょうか?
画像の枚数とアニメでいれた数字があってないんじゃないかな?
画像の枚数がたりてないと、存在しない画像を表示しているという感じ
0から数えるから例えばfire0〜fire4まである場合、アニメ枚数は5枚だぜ
内政雇用について質問です
storePMとsetPMを使って「赤字で雇用できない」ユニットを雇用欄に入れたいのですが、何か方法はないでしょうか?
内政による挙動の質問です
SpotAに領地を持つB国、ユニットはマスターのCのみ
SpotDに領地を持つE国、ユニットはマスターのFのみ
プレイヤーは現在Cを操作しています
ターンはBからEへ流れ、その後数国あったあとまたB国へと戻ります
これをB国の内政を使う事によって
SpotDに領地を持つB国、マスターはF
SpotAに領地を持つE国、マスターはCに変更し、Fを即操作するという状態にしたいと思っています
いいお知恵はないでしょうか?
目的としては、BとEが連合していて、BとEを内政で操作する側を行き来できるようにしたいと考えています
一度ハイドスポットに逃がしてMasterを移動させ、国を入れ替えて場所も入れ替えて元の場所に戻すという方法を使ってみました
ところが、FはE国に所属する人材で、E国のマスターはC
CはB国に所属する人材B国のマスターはFというワケわからん状態になった上、そのまま勝手にターンが内政メニュー開いたまま進んでしまうという状態になってしまいました
バグっぽいですが解決しました
マスターを移動させても、前の国のマスター属性が残るので、ChangeMasterを使っても「両国」が同じマスターという状態になるようです
それをChangeMaster(勢力,ユニット)で両方指定しなおすと、先に指定したほうがマスターから降ろされた扱いになり、再度マスター指定するという感じで2回指定する必要があるようです・・・
板汚し申し訳ありませんでした
スキルについて質問です
必殺スキルで「自軍のステータスを強化し、一定時間後元にもどる」バフスキルを作ろうとしています
ステータスを強化後、弱体スキルをnextで繋げて元に戻るようにしたいのですが、nextのスキルを呼び出せません
どうすればいいでしょうか?
>>351
自分にだけ当たる超広範囲スキルをMissileでつくってMissileのAとBに繋げる
Aは即時発動して当たればステータスが上がるAnextに繋げる
Bは一定時間後発動してステータスの下がるBnextに繋げる
ってな感じでどうですか
範囲が不安ならばホーミングするやつで
ミサイル設定とボムとアフターヒット、それにホーミングでできるかな
ただ、デバフはバフと違ってデクスト参照して成否判定するから確実にはかからないよ
>>352
>>353
>>354
ありがとうございます
このことで1日中悩んでました・・・
ともかく頑張ってみます
>>354
細かい対象選択はできず、全体範囲くらいでしかできない方法だけど
技術がめちゃくちゃ高いユニットを召喚してそいつにデバフを撃たせるという方法がある
ChangeMasterがうまくいきません
やりたいことは
勢力ABCがあります
マスターをそれぞれabcとします
ABCの後にDEFという3つの勢力のターンが行きます
その3つの勢力は最初はマスター無しのハイド勢力として登場します
Cのターンが終わり次第、abcの素早さを比較し、素早さ順にDEFに所属させ、マスターにします
そしてABCをハイドスポットに下げ、DEFをそれぞれのマスターがいた場所にaddSpotし、マスターにします
その後、NewTurn時にDEFをハイドスポットに下げ、ABCをDEFのマスターのいた場所に戻す
といったシステムのシナリオを作っています
しかしChangeMasterをした際、何故か全く違うユニットになってしまったりする事態が多発しています
変数を直前で確認したりしたのですが、うまくいきません
何かいい方法はないでしょうか?
>>346
亀レスですが仰る通り枚数が合ってませんでした
ありがとうございました
>>357
俺詳しくないけど、
changeMasterする前に勢力所有のスポットに居らんとダメですが、それは大丈夫ですか?
1、addSpot( スポットA, 勢力D ) および addUnit( 新規マスターd, スポットA )
新規マスターdが勢力Dのメンバーである、という状態にしてから、
2、changeMaster( 新規マスターd )
>>359
もちろん問題なし
ハイドスポットを一時的にその勢力にしてから移してます
ハイドをshowにしても同様に不可能でした
event a
{
addPower(neko)
event(b)
}
event b
{
addPower(inu)
}
とするのと
event a
{
addPower(neko)
addPower(inu)
}
とするのとでは後者の方が段違いに早いです
実際はこの程度の短いスクリプトではないので、eventを関数のようにして使うようにしているのですが、eventを時間差なく発動させるeventの中身コピペ以外での方法ってありますか?
解決しました
talentである全く何も関係しないユニットXを作成
Cのターン終了後ABCDEFそれぞれ全てのマスターに一度任命
このことでabc全てがマスターではない状態の宙ぶらりんになりマスターではない状態で動かせるようになります
そしてDEFそれぞれにabcを任命することで、解任されるのがかならずXになりabcが解任されずにマスターになることができました
ユニットが死んだ後、レベル100の透明なユニットが勝手に生成されてしまう…
誰か治し方教えてください
>>363
もう少し状況を詳しく教えていただけると・・・
>>364
自作シナリオなんですけども、やられて消滅するはずのユニットがレベル100のグラフィックのないユニットに変化して部隊に残るんです。
このユニットは詳細も見れないし、戦闘に出ても逃げ回ることしかしないっぽいです。
初心者なので、初歩的なところで間違えてる可能性も高いんですが…
>>365
talentにしてあってexpとかが0で経験0でもレベルアップしうる状態になってるとか
>>366
talentではなくて、必要expも正確なので、それではなさそうです…
今確認してみたところ、ユニットの詳細を見ることができました
種族、性別は倒される前と同じですが、クラスが無くなってました
倒されてから普通に消滅できたユニットもいるようなので、もう少し調べてみます
>>367
ChangeClassが入ってるとか・・・?
一般や画像を設定してないUnitはChangeClassで見た目を変えられるので、存在しないクラス行ってるとか
ぐらいしか思いつかないですね
お力になれず申し訳ありません
>>368
それでした!本当にありがとうございます
こちらこそ、お手をわずらわせて申し訳ありませんでした
質問です
回復スキルをHPが減ってないキャラに撃たないようにするにはどうしたら良いですか?
元からうたないはずだけど
>>370 addやadd2使ってるスキルでattr未設定だとそうなると思う
改造スレ4で「CPUはfunc=healスキルのattrだけ見てる」って話があった
なので、attrだけ使うか、add2を使って代表的な効果をattrにも書くいておくか、やね
なおwikiによれば「attrが設定されてるとaddは無効になる」らしいので念のため
>>372
ご指摘の通りaddのみでattr未設定でしたのでattrを設定したら回復スキルをHPが減ってないキャラに撃たないようになりました
ありがとうございました
スクリプトの技術的質問です。
>aimtroop(スキル発射ユニット,目標ユニット)
>skilltroop(スキル発射ユニット,スキル)
というように記述したのですが、スキルが明後日の方向に発射されてしまいます。
目標ユニットに向けてスキルを発射させるにはどうすればよいでしょうか。
スキルの取り出しについて質問です
私のシナリオではかならずユニットが4種類のスキルを持っているのですが、そのうち1つのスキルのみ変数で取り出したいです
例
攻撃スキル、防御スキル、リーダースキルA、リーダースキルB
このうちリーダースキルAは想定される種類が3万種類あります
そのため、if(has(@skill,skill_0)){}else if(has(@skill,skill_1)){・・・}
といった感じで3万回やると普通にプレイに支障が出るほど重くなる想定がされます(1万回で既にきつかった)
そのため、リーダースキルAのみをスマートに取り出す方法が必要なのですが、何かいい方法はないでしょうか?
>>375
>といった感じで3万回やると普通にプレイに支障が出るほど重くなる想定がされます(1万回で既にきつかった)
要素数が三桁以上になるとスクリプトのロジック以前にシステムの設計の段階でNGだと思いますよ。
幾つかのスキルに分解して組み合わせで必要な要素数を表現するのが妥当でしょう。
例えばスキル群1:A-Z スキル群2:A-Z スキル群3:A-Z
この三つのスキル群から一つずつスキルを登録すると26^3通りの要素を表現できます。
「リーダースキルA(何種類でも)のいずれかを持っている」
という状態を別の値で持つ。たとえば「リーダースキルA所持者スキル」
それやると変数にスキル持ってるかどうかのIDを貼る時もループになるのでは
リーダースキルならまぁ普通に幾つかのスキルの和にしちゃうのが楽そうだよね
条件分岐が小分けになって条件探るのが早くなる
ただ見栄えは悪いだろうけどさ
>>376
問題はスキルの内容が全てステータス表示に直結するリーダースキルなんですよね
また、スキルが多いとほかの部分に支障があるため少し厳しいですね
スキルの内容自体を変えられるなら問題ないのですが、VTではそれ自体が不可能なために3万個用意することになりました
>>377 >>378
というと、例えばHPが12345+という状態であれば、HP1万のスキルと2千のスキルと300のスキルと40のスキルと5のスキルを持つって感じでしょうか?
それは試してみたのですが、やはり見栄えが悪いですね
リーダースキルの数値そのものを変える方法・・・とかないでしょうか?
>>377
ああ、もしかして配列を細分化して持ち、細分化の細分化バージョン、その更に細分化バージョン・・・
という形にして、条件を読む回数を大幅に減らすということでしょうか?
それならもしかしたらいけるかもしれません
やってみます
リーダースキルを貼るのをイベントでやってんなら数値情報をもたせればleとかgtで範囲を絞って条件分岐を小分けにできるけども
>>381
事前に複数spotにそれぞれスキルを擬似的な配列のように持たせたユニットを配置、HPに数字を用意
それで擬似配列的にstoreUnitOfSpotでユニットを取得後storeSkillOfUnitでその配列のスキルを全取得
その後それらに事前に設定しておいたHP(じゃなくてもいいけど)をpushStatusで取得後、その取得した数値でもう1つ小分けしたspotから今度は1つづつスキルを持ってるユニットを用意して取得
という形で小分けじゃだめなんでしょうか?
小分けの回数1回のパターンでこれなんで、2回3回の場合はスキルの数を大雑把にするだけですが
あとleとgtっていうのは初耳ですが、何かの関数でしょうか?
lesser equal、greater than
ごめんいろんなの書いててごっちゃになってるけど数値情報で管理しとくと条件分岐が数値がここからこれの範囲みたいに指定してとってこれるから早いのではと思ってさ
結局30000回当たるんじゃなくて2√30000になるから一回小分けにするだけでも相当軽くなると思うからそれでいいんじゃない?
要望です。ベンチマーク機能をつけていただきたいです
シナリオをプレイ・制作するにあたってPCの性能がどれほどなら快適に動くのかの指標があると大変助かります
stealthってリーダースキルとしてメンバーに付与できたりしますか?
そもそもwikiに一切記述がない当たり今のverではstealth自体使えないような気もするんですけども…
>>387
付与できる記述が無いからできなかったはず
この辺はちょっと不便だね
初心者な質問ですいません。
在野の人材が中立の拠点で勝手に旗揚げするようにするにはどうすればいいんだろう。
簡単にはいかないのかな。
過去ログやWikiを探せば書いてあるんだろうけれどガラケーからネットみてるから上手く見つけられない。
マップ上のdoSkillを時間ではなく状況で消えるようにしたいです
具体的に言うと、勢力Aが状況set(effect,1)だとします
このeffect1があると勢力上にスキルエフェクトが1ターンの間発動
isNewTurn()になると消えるといった挙動をしたいのですが、どういった方法が考えられるでしょうか?
>>390
ユーザーフレンドリーにするっていうなら
スキルはあきらめてきのたけの国策みたいに画面端でイメージだすといいと思う
あくまでもスキルっていうなら、効果発動時、プレイヤーターン開始時に自動発動
それと内政に効果状況確認コマンドって感じのいれて任意で発動
くらい?
389だけどたぶん解決した。
スレ汚し失礼しました。
出力できるサイズがちょっと小さい気もするけどマップ作るの面倒な人には良いかもしれん
http://www.moguragames.com/entry/inkarnate-worlds-indiegame-dev/
>>391
1国家ならそれでいいと思うんですが、自操作の勢力が最大6勢力あるため、さすがにスペースが・・・といった感じですね
changePowerNameが上手く行かないのですが、
どうしたらいいでしょうか?
イベント起こしても違う名前になってしまいます…
ウィキにあるworkspaceなるものをコピペして試してもダメでした…
何が悪いのか教えて下さい
>>395
自己解決しました。
boiで陪臣が戦闘ボイス表示させてるけどどういう記述するとリーダー以外もボイス出せるようになるのかな
クリックでスポットや連絡を作れるツール作ってみました。
よかったら使ってみてください。
http://ux.getuploader.com/vahren/download/4245/SpotMakeHelper.zip
オリシナとか作らない人だけど、触ってみて結構良いと思いました
スクリプトをいじる技術が身につかないけどこういうのすごく助かります
スポットを消す操作が簡単にできたらもっといいかな
感想ありがとうございます。
deleteキーで消す機能を追加+少し修正しました。
http://ux.getuploader.com/vahren/download/4247/SpotMakeHelper.zip
ちょっとミスがあったのであげなおしました。
すみません><
http://ux.getuploader.com/vahren/download/4248/SpotMakeHelper.zip
乱数を振りなおす関数ってありませんでしたっけ?シナリオ作成講座のどのへんだったでしょうか?
文字変数に代入したユニットをaddTroopで出現させることってできませんでしたっけ?
レイシストの考えていることがよくわかりません。
戦争物の創作物において、「彼」の存在は(敵役として)かなり重要な地位を占めていると、
個人的に考えていますが、なぜそうなったのか、なぜその考えにあり続けるのかというのが、私にはよくわかりません。
そんなレイシストを、主人公の傍らに置こうと考えているのですが、どう扱えばいいのか迷っています。
なんかそれがわかるような話や、創作物などを紹介していただけないでしょうか。
>>404
きのたけ。
>>404
50年代のアメリカの黒人排斥運動を見ると分かるけど、人の形をした色の違う猿と同一視されるのが嫌なのです
現代では差別解消のために創作物でこのような表現が抑えられているので分かりづらいです
南アフリカやアメリカ、あるいはユーゴ紛争のドキュメンタリー(BBC)など、本物を見てみるのがよいでしょう
ローデシアとかもだな、戦争におけるキルレシオに直結してるとか言われてる
差別に根ざす感情は十人十色である上、
レイシスト自身による差別の美化や正当化、反レイシストによる過剰に醜悪な印象の流布、それこそ反レイシストによるレイシスト差別・・・等々が入り混じってるから
一概に「レイシストの考えはこれ」っていうものは言い表せないんじゃないかな
スキル弄ってるんだけれども、 heal のスキルに next による次のスキル発動は効果ないものでしょうか?
>>409
ないよ
just_nextでなんとかするとか?
>411
なるほど!こういう時に使うのですね。ありがとうございました やりたいことできそうです。
汎用兵科のデザインが決まらない……
皆さんがこれまでいろんなシナリオをやってきた中で、
「この兵科のデザインいいな!!」
なんて思った兵科ありますか?
どの辺がいいとかも教えていただけると幸いです。
どれくらいの世界観かとか言わへんとなにもアドバイスできへんで
よく言われてはいるけどきのたけのキャンディパイクとかいいよね
デザインが見た目を指しているのか
全体的な役割やステータス、スキル構成を指しているのか
>>414
マスケット銃が普及し始めた感じの世界観ですね。
>>416
見た目です、ステータス、スキル構成は調整を残すのみです。
印象に残るのは色合いがはっきりしててシンプルなモチーフのやつでしょ
帽子かぶってるとか何か持ってるとか赤とか青とか緑とか
具体的にはきのたけのキャンディパイクか祖国銃のトゥイードルあたり
あと砲兵系は大砲の形で個性が出るからけっこう印象に残る
ポージングとかはゲームやってるときはそこまで見えない
きのたけのクラシエ、光の目の巫女は
これぞ魔女!これぞ巫女!って感じで分かりやすくて良いかな
あとカラーで見る第一次世界大戦を見た後に光の目をやったとき
レッドコートやブルーコートを見て
「ああ、派手な服着て戦場に出る最後の時代なのね」と妙な感慨を持ってしまったのも印象に残ってる
スキル2でスキルA スキルB と加えました。
スキルAにクールタイムを設定しております。スキルAを使った後、クールタイムが明けるまではスキルBを使うということをもくろんだのですが、スキルAを連発してしまいます。
クールタイムは15、キャラクターのスピードは60にしておりますが考え方間違っているでしょうか?
スキルAでgun_delayにするところをdelayにしてるんじゃない
gun_delayにしております・・・
http://ux.getuploader.com/vahren/download/4251/%E6%94%B9%E9%80%A0%E3%82%B9%E3%83%AC420.txt
小物入れにアップしてみました。良ければお知恵お貸しください。
gun_delayはfunc = swordだと機能しないみたいだからそれかな
俺もちょうどswordスキルにgun_delay設定して悩んでたとこだわ
やっぱ効いてないのか
残念、仕様でしたか。他の方法考えてみます。ありがとうございました!
飛ばない絵のない飛び道具をスライドしながら出すようにして擬似近接技にするといいんじゃないかな
デフォシナの槍スキルの槍部分みたいな感じでグラフィックを透明に
それならgun_delay使える
返答遅れましたすいません
>>405
ストロベリーかわいいですよね。
>>406
「嫌」という表現を見るに、やはり差別的態度の要因の多くは感情から始まるものなのでしょうか。
動画資料については盲点でした。ありがとうございます、いろいろ回ってみようと思います。
>>407
「ローデシア」という国(?)があったのですか、いろいろ調べてみようと思います。ありがとうございます。
>>408
そうですね、人の数だけ考え方がありますので、当然差別の態度にも多々あるのだと思います。
そして、その中に、「多くの人が共感できる差別観」があると思うのです。
私がそうするキャラクターは、立場上多くの人に共感してもらう必要があると考えています。
ですがそういう「差別観」が、なかなか思い浮かばないんです。
勢力数が多すぎて勢力一覧や外交画面の表示がおかしくなってしまった
これってシナリオ製作者側で治せるものなのかな…うーん、困った
>>428
どんなよ見てみたい
因みにどのぐらいの勢力数で表示がおかしくなったの?
興味本位で申し訳ないけど教えていただけないだろうか
428ではないけど自分が試してみたら、
勢力一覧ウィンドウの方だと陣営数が62以上、外交ウィンドウの方だと陣営数が64以上あると、
下の方までスクロールした際にその数値を超えた分の勢力の表示が再描画に失敗してる感じになった
そうなのか
となるとランシナなんかでも50あたりを上限にしたほうが無難ってことだね
ありがとう、参考になった
防衛側で逃げ回って時間切れに持ち込んだとき
「勝ち」になったり「負け」になったりするのはどこで設定するんでしょう?
時間切れ時点で相手が撤退準備に入っていたかどうかじゃない?
だから撤退トリガーとなる戦力比だと思う
ああ、そういえば人材プレイで非太守の防衛時に「負け」判定されたんでした
プレイヤー(俺)は逃げ回って防衛したつもりだったけど、自軍太守が撤退してたのかw
そのへん注意してまた見てみます。ありがとうございました
以前自動生成した人材の成り行きを眺めるゲームを作ると言っている方がいたが(>>334 )
進展はいかほどなんだろうか、個人的にすごく楽しみなんだが。
イベント戦闘で攻撃側をプレイヤーにした場合、castleとhandleは無効なのでしょうか。
CPU専用味方ユニットとするには、beast_unit設定使うしかないんですかね?
傭兵について質問があります。
制作中のオリシナに、初めから傭兵にしたユニット(arbeit = fix:以下初期傭兵)がいるのですが、
戦争に参加したのち、その初期傭兵の一部が普通の放浪人材に戻ってしまいます。
おそらく、その初期傭兵の部下が全滅したためと考えています。
「fix」にした場合は資金・部下0でも放浪にならないはずなのに。
どなたか原因のわかる方はおりますでしょうか、対策をご存じであれば、ぜひともご教授お願いします。
ごめんなさいageます。
しょっちゅう既成シナリオの放浪人材をarbeit=fixにしたりfixの奴を勝手に追加したりしてるけどけどなったことないな
戦闘後に何かイベント仕込んでない?
>>440
返信ありがとうございます。
作成途中の段階であり、イベントは基礎部分が完成してから導入しようと考えております。
現在はその基礎部分に取り掛かっているため、イベントは一切導入していません。
色違いのスキルエフェクトを用いるとき、
braight & color か複数のイメージ
どっちのほうが軽いんでしょうか?
戦闘時に限れば複数の素材を用意した方が軽いけど、体感できるほどじゃない
bright colorを使うとゲーム起動時の読み込みは長くなる(微々たるものだけど)
あと、色違いの素材を多用するとimage2.datの容量をオーバーしやすいので注意が必要
× bright colorを使うと
○ 複数の素材を用意すると
>>443 様ありがとうございます!
戦闘面での重さからの悩みでしたので、複数素材の方針で行こうと思います。
今からオリジナルシナリオ作りたくなったからそれを作ろうと思うのですが
マップの作成がどうすればいいかわからないです。
本家ヴァーレンのような雰囲気のマップを作りたいのですが作成ツールは何ですか?
戦術マップじゃなくてワールドマップの方?
これはもう自分だけのマップを作りたいなら気合いでお絵描きマッピングでさぁ
一から十まで教えてくれる人が欲しいです
光の目のスクリプト見たら大体わかるよ
wiki充実してるし、まずやってみるのがいいんじゃね
教えるのはいいにしても、どんなもの作りたいかわからないとどうしようもない気が・・・
多数勢力が盤上に存在する場合について質問です
例えば300勢力が全勢力領地1で存在し、うち250勢力は隠蔽され、かつどこにもつながっていない領地で存在するとします
この場合、1ターンの思考時間が300勢力分存在することになります
これではとても遅いため、何らかの対策を講じたいのですが、何かいい方法はないでしょうか?
一応ターン順序も非常に重要なため、都度勢力を追加等の方法はないものとしてください
想定した動きとしては、領地に依存した勢力を作りたいと考えています
具体例を上げると
領地A→小隊a1 a2 a3 a4 a5 a6 a7
領地B→小隊b1 b2 b3 b4 b5 b6
・・・
といった具合に領地毎に小隊を出すことができるシステムを考えています
重要なのは旗は全て違うものを使おうと考えているため、同勢力ではそれはできません
そのため、隠蔽された勢力の思考時間をなくしたいと考えているのですが、いい方法はないでしょうか?
現在出撃5隠蔽30勢力程で同様の実験をしているのですが、状況は芳しくないためお力を貸して頂ければと思います
ふつうは総当たり発生するとこで時間かかるものだから
power変数で「外交しない」とか
関数changePowerFix( 勢力,on)で「侵攻しない」とかを試してみては?
私は試したことないし、まったく効果ないかもしれないですが
領地が繋がっていないのなら、いっそのこと「隠避勢力」ってことで一つの勢力にしてしまうとか?
で、領地単位の召喚スキルを作って召喚ユニットとして戦場に呼び出せば、なんとなく近いことは出来そう
それより200も300も勢力有ると、機能の勢力リストが大変な事になりそうね
>>452
それは現状試していますが変化なし
隠れた勢力を最初から用意せず、事前に100万個ぐらい空っぽの勢力用意して、都度使い捨てにしてターン開始で全部順序ごと入れ替えるとかが無難なんでしょうかね・・・
長期プレイ想定すると結構キツそうではありますがw
>>453
一つの勢力にしてしまうと、バラすことができないので意味がないような・・・
勢力リストに関しては、もう最初から捨ててますので問題ないですw
ちなみに同盟は30だか40ぐらいを表に出すと全部表示されなくなりますね(左上)
>>448
とりあえず「オリシナつくっちゃお!!」プレイしてどうぞ。
>>454
逆に考えてみては?則、まったり進むゲームとして売るとか。
待ち時間を減らすことも大事だけど、逆にその長い待ち時間を、
別の方法で活かすというのを考えてみるのはいかがだろうか?
例えば、自ターン終了時に、その世界観の設定や、ちょっとしたテクニックを記入したimageを表示させて読んでもらうとか?
「CPU試行中、お茶とお菓子を用意してまったりしてください」みたいなメッセージ流すとか。
>>454
勢力をまとめるのは、領地が連結されていないのなら移動しないから平気かなって事からです。
あと召喚方式だと、通常のタレントと同じように成長・クラスチェンジさせられるメリットがあり、
デメリットは、呼び出すスキルを、召喚される側がクラスチェンジする度に対応した物を使う必要があるという点です
自作modで、隠れた領地に置いた部隊(タレントのみ)を召喚して、戦闘時に自分の部隊に編入する。っていう物を使っているので提案しただけなので、
454氏の想定しているような使い方が出来るのかは分かりませんけどね
>>456
なるほど、そういった方法もありかもしれませんね
実際プレイヤーさんは1ターンに何分ぐらいまでなら待てるんだろう・・・
ちょっとした疑問ですが、個人個人で違うことは承知の上で興味があります
>>457
小隊として呼び出すと連結した場所に呼び寄せられるのでダメそうですって感じですね
戦場に関しては、自シナの方向性的にRTS戦闘を下手すれば想定しないので厳しいですね・・・
コロンブスの卵的にターン送りをしないで
内政でターン終了(仮)ということにしてスクリプトで処理を…大分苦しいな
ななあしさんが見てらっしゃったら、その勢力のターンが回るかどうかを設定できるようにしてくれればたすかるのだけれど・・・
一応書くだけ書いとくって感じでとりあえずはほかの方法を探してみます
>>459
内政って条件付きイベントトリガーでしかないことを考えるとあまり意味がないようなw
作ってみたくなってオリシナつくっちゃおやってみたんだが
いらん会話のやりとりがうっとおしくて挫折したorz
でっていう
>>461
オリシナ作りとなると逆にその「いらん会話」とかいうのが重要になってくるぞ。ジャンルによるけど。
あのノリに慣れておかんと、オリシナでストーリー作るのはきついんちゃうかと。
◆ちょっとした制作つぶやき。
戦略重視の戦闘バランス(用は数だよ理論)作ってるんだけど、テストプレイでは資金無限でやってたから、
「あーやっぱどうやってもぬるげーになるなー」って感じだったんだよ。
んで、実践想定の資金バランスで行ってみたら収入資金5000違うだけで全然勝てねぇ(笑)
内政に資金莫大にさくよう想定してたけど、そうなったらただの苦行になるかもしんねぇ……
>>461
読み飛ばせばいいよ
重要なところだけでも見たらいいと思うけど、自分はオリシナつくっちゃおなしで覚えたからなぁ
>>463
数だよ理論で兵がほぼ同程度の性能だとしたら、5000って兵の値段にも寄るけどかなり大きいのでは?
たとえば兵が500で雇えるなら毎ターン10人差が開いていくわけだし、ランチェスターの法則でいくと兵力差2倍あるなら質は4倍なければ勝てないっていうぐらいだしね
>>464
うむ、冷静に考えたらバランス的に5000て結構な差だった。
インフレオリシナとかやってると金銭感覚が狂う狂う。
戦闘シーンのCOMの行動を決める数値↓
btl_raidback = (数値)
btl_healer = (数値)
btl_standby = (数値)
等の詳細について纏まった情報が得られるサイトは
ないものでしょうか?
言葉足らずでした、ヴァーレントゥーガまとめwikiはもう閲覧済みです。
更新で勢力ターン飛ばせる機能付いたらしいな
何気に小回り効きそうな設定
キター!!
ななあしさんありがとうございます!!!
これで小隊システムいける!!!
500部隊ぐらい同時にだせる!!!(戦闘結果を全て手動で一気に動かせば高速)
ん、大部隊出せるようになる更新あったの?
>>469
おめでとう。
500部隊出せるってのは、一度の戦闘にという話だろうか?
>>470
なんか、複数の勢力を使って部隊運用うんたらとかいう話が前50レス以内にあったのよ。
そのために勢力を数百単位で導入する必要があったけど、そうなると1ターンの待ち時間が
長いからどうしよって話になってた。
それで今回設定された勢力の思考を完全にスキップできる要素が加わったからシステムに現実味が出てきたって話。
>>471
一度の戦闘にというのはどういうことでしょうか?
戦略マップには500(以上)配置できるようにする予定
隠蔽スポットも含め、使用可能性のあるspot数は現状おおよそ6万ほどを考えています
当然ですが、6万全部占領とかそういうシナリオではないです・・・
>>472
いや、いい忘れてくれ。ぶっちゃけ規格外の勢力数を使うオリシナは想像できんから、
どう現状を知ればいいかわからん。ゆえに質問も明後日の方向に。
公開をまじで楽しみにしてる、6万スポットとかも凄そう、がんばって。
不具合なのかどうかわかりませんが、ななあしさんに報告です。
「isComTurn()」を使ってCOM勢力のターン開始時にイベントを挿入すると、
「storeNowPower()」等で取得できるCOM勢力は、その時にターンが回っている勢力なのですが、
画面上の表示(勢力の状態やマスターの画像)は、一つ前のCOM勢力が表示されており、
内部的にはターンが回っている勢力になっているのに、画面表示は一つ前の勢力になっています。
関連して、ダメ元ながら要望です。
「isComTurn()」で判定されるタイミングは、COM勢力が外交を行う前ですので、
これを使ってCOM勢力のターン開始時に内政イベント等で資金を消費させる処理を行うと、
場合によってはCOM勢力が外交に使う資金が残らなくなってしまいます。(致命的なものではありませんが)
そのため、「isComTurn()」とはまた別に、COM勢力の外交の直後
(外交を実行していなくても、外交の思考を一度ひととおり終えた直後)の、
ユニットの雇用や移動の直前を判定する関数の追加は可能でしょうか。
先述の画面表示の件で仕様変更が出来ない場合の代替案としても要望します。
著作権とかそういう事に関してなんだけど
ユニットのアイコンを自作するため、そのための練習として本家のchipに入っているものをひたすら模写した
その甲斐あって今は自作できているんだけど、非常に本家のものと似ている(目の表現とかそのまんま)
こういう場合も、素材改変として考えたほうがいいのかな?
基本32マス×32マスでそんなこと気にしてたら禿げるぞ
嘘ついてないなら堂々としてればいい
>>476
ありがとう
とりあえず吹っ切れました
公開までがんばってみます
オブジェクトについて2つ質問があります。
マップメーカーの「重ねる」機能を使って、高さの違う二つのオブジェクトを重ねたのですが。
実際のマップで見ると、高さが下の位置のオブジェクトが優先的に描写されてとても不自然に見えます。
(下のオブジェクトの天井が、上のオブジェクトの側面より優先して描写される)
重ねる順番を変えてみたり、typeを変更したりしてみたのですがうまくいきません。
二つ目は、オブジェクトのミニマップの描写が、黒に近い灰色の塊であるため、ミニマップが汚く見える事です。
オブジェクトのミニマップ描写を変える方法はないのでしょうか?
地形チップと同じようにcolorをやってみましたが効果がありませんでした。
上記二つのことについて、何かご存知の方がいれば、ご教授お願いします。
重ねるはこっちではうまいこと動いてるけどなぁ
オブジェクト構造体の高さを見直してもう一度高さが下になるものから順に積んでみては?
祖国と銃との外交システムをロストテクノロジーとかに入れることできますか?
やり方わかる人ぜひ教えてください。
↑でいってた勢力ターンを素早く終わらせる設定はどこで確認できるんですか?
wikiは読みましたか
お手本みたいなクソコテで草
>>480
「祖国と銃との」というのは別シナリオという意味で取るなら別シナリオと直接つなげることはできません
「祖国と銃の」の誤字だとするなら外交システムというのはどの部分かはわからないですが、同じヴァーレンであるのでおそらくできないものはないかと
具体的にどの内政のどういうところをどの程度入れたいのかわからないので、wiki参照ってことで
>>481
勢力ターンを素早く終わらせる=スキップするだけの話なので、少し語弊があるかと
wiki参照です
wikiってまとめwikiのことですか
まとめwikiなら一通り見たのですがどこに書いてあるのかわからなくて…
おしえてくださいおねがいします
wikiってまとめwikiのことですか
まとめwikiなら一通り見たのですがどこに書いてあるのかわからなくて…
おしえてくださいおねがいします
まとめwiki一通りみても一切なにもわからないのならあきらめたほうが早いと思うよ
pcの操作すら分からない人がpcゲーのやり方聞く位スレ的には場違いだよ
wikiの意味は分かるんですか、どこに更新情報のってるんですか
それがわかんないです。
>>484「祖国と銃と」という題名のシナリオです。
内政イベントすこしいじくってロストテクノロジーの内政に上書きしたんですが
成功しないのです。
changePowerFixについてはわかりました。
イベント関連の改造は完璧に理解してないと難しいぞ
まあwikiのシナリオ製作講座見たら大体わかると思うが
個人的に宇宙戦ものシナリオがやりたいけど
もうないんだよね銀河英雄伝説とかをヴァーレンでとかできると良いけど
誰か作ってくれないかな(チラ
なんでいつまでも小学生相手にしてるの
みなさん分からないのですね。
自分で頑張ってみます。
最新版のDLと更新詳細というところを見れば分かると思うんだけど・・・
宇宙戦はシップ書くのがめんどくさい、現代戦+クトゥルフモノは絶賛制作中だけど
一ヵ月後にはエタってそうなやつ相手にパソコンの無料サポートしたいってやつはそうそういないわな
>>494
神々の黄昏ってのがありますよ。
拡張シナリオで。
>>495
更新については解決済みです。
ヴァーレンで三次元戦闘て無理じゃない?
基本は二次元ファンタジーだよね
具体的にどこをどう弄って駄目だったのか一切言わないんだもんな
一部追加ならともかく>>489 で言ってる通りの全上書きなんて祖国内政丸ごと持ってきてscenarioのpoliticsを祖国側と全く同じに上書きするだけだろとしか言えないし
自分で頑張ってみますって頑張ってから質問しろよクズ
勉強しようね
普通に組める様になったらSE職にも就けるよ
>>497
なぜそこでMarrinを勧めないんだ…
後は綺羅星の如くと、こっちは少し毛色が違う空中戦艦物だが黄昏の提督もあるな
VTのスクリプトは真面目にループ組まないと遅くなるからSEに向いてるかもな
言語とか覚えてかけるようになるのはすぐだし
なんか荒れてるなぁ・・・
流れ変えるけどpushDeathとstoreDeathの(部分的な)仕様メモ
wikiに書いてないっぽいし(だいぶ)前に質問している人がいたので書いてみる
直前の戦闘で死亡したユニットのデータを取得
援軍で参加した勢力、その戦闘で滅亡した勢力のデータも取得できる
pushDeath(?,勢力,?,基底クラス,?,数値変数)
storeDeath(?,勢力,?,基底クラス,?,文字変数)
あらかじめ「dead_event = count」がclass構造体(のベース)に書き込まれていないと無効
第六引数以外は@にして省略可、勢力には文字変数が使用できる
消滅しない人材ユニットも戦闘で死亡(HP=0)すればカウントされる
人材を除きたい場合は「dead_event = @」をunit構造体(のベース)に書くのが早い
自決・戦死した人材を含めたいならstoreDeath→生存している全人材をsubVarするのが多分いい
第一・三・五引数が何かは不明
第二引数を省略した場合はその戦闘に参加した全勢力の死亡ユニットが取得される
なんか解説が更新詳細のページに書いてあった時期があった気がする
その後別のページに書き写されるでもなく上書きされて消えた
ちょっと興味があって編集履歴から探してみたことがあったけど駄目だった
更新詳細の古い履歴があればなあ、と思うことがけっこうある
インターネット・アーカイブから探してみたけど見つからない
ファーレントゥーガという履歴書よりも確実な実績があった御人は
FFのリードプログラマーになれた
君も力を示せば就職は明るい
要望ですがimage.datの容量はこれ以上大きくできないでしょうか
可能であれば御一考願います
できればPCのベンチマーク機能も実装してください何でもしますから!
>>509
image.datの容量は最大「2048×2048」になってます・・・。
arbeit_capacity増やした傭兵の部隊にaddunitでユニットを追加しようとしたんだけど、上限増えてても8が上限と認識されるみたいで8人以上に増やせない
addunit以外に何かいい方法はない物だろうか
image dat になってるものを他シナリオで流用する方法はありますか?
例えば光の目のものを祖国と銃で使用するなど
image dat になってるものを他シナリオで流用する方法はありますか?
例えば光の目のものを祖国と銃で使用するなど
あるよ
だけどその方法を教えて良いのかどうかがわからないのだ
image.datの加工が必要になるのだが、昔ななあしさんがImageExtractorいうの作ってたけど問題が生じたとかで削除された経緯があったようでね
実際何がどう問題だったのか、今回のこともOKなのかどうか法律家でもない私にはわからないのだ
素材には素材の著作権があるからな
なんか他人のスクリプト見て勉強してると、else ifを使ってないことが多いのな
専用の変数用意してsetして次のif文飛ばしとかしてるんだが、そっちの方がelse ifより早いのかね?
本当に専用か確認した?
他でも使ってない?
else ifは確認そのものをすっ飛ばすんだからそんなに遅いはずないと思うけど
戦闘時イベントにelseが一切使えないのは理解してる
一応Visual Studio Code使っててフォルダ内全検索機能使って確認してるよ
銃魔のスクリプトだけど難読化目的なのかね?
銃魔見たことないけど俺も else if あんまり好きじゃないわ
if( 条件 ) { 処理 return } でさっさと引き返すほうが好き
他にevent(文字列変数)って手もあるよね。こっちはちょっと恐いけど
else if 使ったほうが後から見た時にひとまとまりの処理と認識しやすい
インデントがお粗末なスクリプトが多すぎて困ることが多い
そもそもそこは人の勝手だから
別に仕事で多人数で開発するわけでもないんだから他人が口を挟むところではないだろう
もちろん可読性が高いほうがバグ探しで有利だけどさ
else if使わないと何度もif通って重くなる場合がなぁ
それぞれ全く違う処理する場合(たとえば人材全パターン全く違うtalkを必要とする場合)で、人材のパターンがとてつもなく多いとelse ifで繋げなきゃいけないパターンもあるし・・・
ABCグループ化してAの中なら・・・Bの中ならで分割すれば軽くなるとはいえ、それだってパターンによってはさらにelse使わなきゃいけない場合もあるし、結局ifだelse ifだといっても何に使うかじゃないんでしょうか
そもそもif(){}if(){}とif(){}else if(){}では結果的に同じ動きするとしてもそれの持つ意味は厳密に言えば違うんだから
switch文が欲しかったです
else ifは使って当然という立場
switchはほしかったね
>>525
returnできるなら分岐内でreturnすれば、elseで繋ぐより速い・・・はず
if ( 1 ) { 処理1 } else if ( 2 ) { 処理2 } else { 処理3 } return
if ( 1 ) { 処理1 return }
if ( 2 ) { 処理2 return }
処理3 return
条件1・2がヒットする場合、後者のほうが1コマンド分速い・・・はず
ま、プレイヤーが体感できるような差ではないので、どうでもいい話ではありますね。
ワールドイベント(シナリオ指定イベント内)でreturnするとストーリー走らなかったりするし。
> 人材ごとにtalk
こんな分岐方法も使えるみたい。自己責任でどーぞ
event talk_人材1 {
talk(人材1だ)
}
event talk_人材2 {
talk(人材2です)
}
:
event プレイヤー人材を取得してイベント呼び出し {
setv( event_name, talk_ )
storePlayerUnit( str )
addstr( event_name, str )
// 存在しないイベントを誤って呼んでもエラーは出ない
routine( event_name )
}
ヴァーレンというより数学の質問なんだけどいいですか
勢力の経済値に連動して価値が上下する証券というか債権というかを作ってるんですけど、現在値段が経済値に比例するようになってる
でもこれだとゲーム序盤とか小規模勢力とかはすぐ証券価値が2倍3倍に上がっちゃうから、もっと緩やかな変化になるようにしたい
そこで√使おうと思ったんだけどヴァーレンの関数になかったから困ってる
ヴァーレンで可能な数値計算でどうにかできる方法はありますか?
教えて理系の人
一番簡単な方法言うぞ
勢力値をnumとして
if(num < 100){
set(loop, 0)
set(tmp, 1)
set(loop2, 0)
set(tmp2, 1)
}
else if(num < 2500){
set(loop, 10)
set(tmp, 11)
set(loop2, 100)
set(tmp2, 121)
}
else if(num < 10000){
set(loop, 50)
set(tmp, 51)
set(loop2, 2500)
set(tmp2, 2601)
}
else if(num < 22500){
set(loop, 100)
set(tmp, 101)
set(loop2, 10000)
set(tmp2, 10201)
}
else if(num < 40000){
set(loop, 150)
set(tmp, 151)
set(loop2, 22500)
set(tmp2, 22801)
}
else if(num < 62500){
set(loop, 200)
set(tmp, 201)
set(loop2, 40000)
set(tmp2, 40401)
}
else{
set(loop, 250)
set(tmp, 251)
set(loop2, 62500)
set(tmp2, 63001)
}
while(true){
if(loop2 <= num && num < tmp2){
break()
}
add(loop, 1)
set(loop2, tmp2)
add(tmp, 1)
mul(tmp, tmp)
set(tmp2, tmp)
set(tmp, loop)
add(tmp, 1)
}
このスクリプトはインデントのために全角空白使ってるからそのまま使うなよ
前半部分は高速化のための呪文部分
本質は後半のwhile(1==1)
癖でwhile(true)って書いてしまった
これで勢力値を二分の一乗した値がloopに代入されるぞ
ニュートン法使った方が早いだろうから自分で考えてくれ
SpotMakeHelper作者様へ
要望なのですが、ドラッグでスポットを自由に移動できるようにしていただけませんでしょうか
今のままですと微妙な位置調整ができず不便さを感じますのでご一考くださると幸いです
平方根はこれでイケるはず:
event calculate_sqrt
{
if(n<=0){
set(n,0)
return()
}
set(vp,1)
set(vq,n)
while(vp<vq){
mul(vp,2)
div(vq,2)
}
set(vq,vp)
set(vp,n)
div(vp,vq)
add(vp,vq)
div(vp,2)
while(vp<vq){
set(vq,vp)
set(vp,n)
div(vp,vq)
add(vp,vq)
div(vp,2)
}
set(n,vp)
}
回答書いてもらって感想の一つも言わんとは失礼なやっちゃ
初歩的かつ、恐らくもはや答えが出てる質問だと思うのですが、
調べても上手く見つけることが出来なかったので質問させて頂きます。
ヴァーレントゥーガ本体に入っている素材はヴァーレントゥーガを改造した
オリジナルのゲームでもヴァーレントゥーガと同じ条件で使用可能なのでしょうか?
ジャンキージャンク様等、素材の出所が分かる素材はそこに従えるのですが、
アイコンなどはどこから出てきてるのかも良く分からず困っています
公開するつもりなら流用はVT自体のMODとかでもない限りは止めた方が無難
アイコンは小物入れになかったっけかな
>>538
ありがとうございます。
「VTの拡張シナリオ」という体ならば、「俺はスクリプト書いてるだけなのでセーフ」になるんですね。
やはりオリジナルゲームとして公開するならばその辺りは一つ一つ確認する必要がありそうですね。
小物入れ探してみます。
重ね重ねお礼申し上げます。
正直√なんて無理だろうから他に良い方法ないですか?的なニュアンスで聞いたんですが普通に√出せるんですね 理系ってすごい
ありがとうございました
実際使うかは分かりませんが内政はそのうち公開するかもしれません(ngt用だけど)
>>535
PC書き込み規制+スマホ紛失コンボから今日復活したんだ
すまんな
独り暮らしでぼっち学生だから誰もスマホ鳴らしてくれないんじゃ
そんならしょうがあるめえ
>>533
作者です。
SpotMakeHelperをお使い頂きありがとうございます。
ドラッグ機能の追加検討したいと思います。
微妙な位置調整ですが、右側にあるNumericUpDownコントロールで値の増減が可能となってます。
そちらにフォーカスを合わせてキーボードのアローキーの上下または、マウスで▲▼ボタンをクリックすることで数値が1づつ変わります。
そちらもお試しください。
>>541
ありがとうございます!
初歩的な質問で申し訳ないんですが
人材追加をしようとした所エラーが出て困っています
ステータスだけのものならエラーが無しで起動するのですが、スキルを書き加えるとエラーが出ます
既存のスキルを名前と説明文だけ変更したものなのでスキル本体に問題はないと思うのですが…
エラー内容は
1:データ文で=を書き忘れています
2:データ文が不正です または関数が不正です
よろしければアドバイスお願いします
多分使っちゃいけねえ文字使ってんじゃねえかな
とりま書き換えた部分全てを調べて半角文字があったら全角にしてみ
>>543
>「スキルを書き加えるとエラーがでる」、エラー内容が「1:データ文で=を書き忘れています」
以上の事から、スキルの書き加えた構文が間違っていると推測できます
たぶん書き加えたスキルの前に「,(カンマ)」が抜けているのじゃないかな?
>>544 >>545
アドバイスありがとうございます
ちょっと忙しくて時間取れないので試せてませんが教えてもらった通りやってみます
返信ありがとうございました
SpotMakeHelper更新しました
http://ux.getuploader.com/vahren/download/4319/SpotMakeHelper+Ver1.2.zip
>>547
ありがとうございます!
ヴァーレン本体が落ちる目安ってPC機体毎に違うのでしょうか?
そもそも処理が重かったり多すぎると何故落ちるのでしょうか
重くなくても落ちるときは落ちるよね
そこらへんの基準がわかればありがたいのですがね
最新版はわからないけどaddtroopあたりは直近くらいまではダイアログでないまま落ちることがあったかな
time長めのスキルは要注意
人材専用スキルならまだしも、一般ユニットも扱えるスキルだと大体重くなる
これがでrushまであった日にはもう大変
おお、ありがとうございます
rushが大きいので、それも一因でしたか
呼ぶと100%無言落ちする関数あるよなしかも複数
ゼロから自作するなら関数のテストから始めたほうがいいですよ
領土を広げたAI勢力のマスターが孤立してアボン滅亡するのがちょっと嫌で、
マスター孤立アボンした勢力を復活させようとしているのですがうまくいきません。
if (isAlive(勢力A) == 0) {
event(勢力復活)
}
event 勢力復活
{
storePowerOfSpot(本拠spot, @文字変数)
if (@文字変数 == @ ) {
addPower(勢力A)
}else {
event(滅亡処理)
}
}
勢力Aが滅亡した時、本拠spot(power構造体のmemberに記述)が空白地なら、addPowerで勢力Aを復活せようとしています。
しかし、addPower(勢力A)の後も勢力Aは復活しておらず、isAlive(勢力A)では0が返ります。
本拠spotも空白地のままです。
wikiのaddPowerの説明には『指定した勢力を出現させます。power構造体のmemberに列挙されてるspotが領地となりますがry』
と記述してあるのですが、一度滅亡したpower構造体の再利用は不可能なのでしょうか?
マスターは死亡していません。
同名の別勢力をつくらないとダメだったと思う
>>556
滅亡時に滅亡するのではなく、アボンのエフェクトと滅亡ダイアログと同時に事前に決めたハイドスポットに逃がすってのはどうですか
復活自体は不可能です
>>557
>>558
ありがとうございます。
やっぱりPower構造体の再利用は不可能なんですね。
アボンのエフェクトと滅亡ダイアログはEXEが制御してるんでしょうか?ちょっと見つかりませんでした。
ちなみにVTではなく、LostTechnologyをベースに色々といじっています。
苦肉の策ですが、
storeSpotOfUnitでリーダーのいるspotを抽出し、isJoinで本拠地spotから途切れていたら、
リーダーを強制的に本拠地に飛ばす処理で滅亡を回避してみたいと思います。
かなり強引ですが・・・。
復活が駄目ならそもそも滅ぼされなければいいじゃない
やったことないが、戦闘開始前にchangeMasterでマスターを他の領地にいる人材に変更すればどうだろう
ただ戦闘中にマスター(元)のステータス確認されるとまずいが
>>559
エフェクトはskill spot_fireだったかな(?)でエフェクトそのものを処理してたはず
で、spotmarkの何番かでそれを指定の領地で発動させられます
ちなみにカチーンも可能
ということで、個人的な復帰というか擬似滅亡方法
イベントで滅亡する場合は勝手に国ごと逃せばおkで簡単なので割愛
条件は以下
1:滅亡条件が攻撃された場合
2:a:最後の1領地が取られる場合
b:隣接する領地がなく、その領地を取られた場合
c:隣接する領地がなく、Escape先がない場合
3:復活する想定がCPUである
2の条件を探すため事前に
a・領地数を数えて1の場合
b・storeSpotOfPower全領地を取って、whileで現在戦闘spotと隣接したspotが存在するかを調査
c・こればっかはもう事前に条件個別に作るしかない
このabcのいずれかが該当した時点で下のスクリプトへ
例として自シナのスクリプトを出しますがご容赦を
まずは戦闘開始時にイベント
//中立も条件にもしくは攻撃側で判定
☆呂蝉、高順、張遼、臧覇は自操作可能な味方で、こちら側が攻めた場合に敵にkahi_escp_spot という擬似撤退用スポットを領地に与え、spotつないで逃げ場を作ります☆
if(@atkpow == pkahi_ryosen|| @atkpow == pkahi_koujun || @atkpow == pkahi_choryo||@atkpow == pkahi_zouha&& zouha_ryuso != 1){
if(@defpow!=pkahi_moutoku){
addSpot( kahi_escp_spot , @defpow )
showSpot(kahi_escp_spot)
linkSpot(@batspot,kahi_escp_spot,0)
}
}
以下は戦闘イベントでなくワールドイベントで制御
storePowerOfSpot( kahi_escp_spot , @escp_now)
☆例として夏侯惇というユニットを使います☆
if(@escp_now != 0){
if(@escp_now==pkahi_kakouton){
if(count(@kakouton_spot)>=2 && has(@kakouton_spot,kahi_escp_spot)){
//守りきった場合、2つの領地を持ってる
//とはいえ、このシナリオでは確実に1領地しか持てない縛りがあるため、通常のシナリオでは戦場になったspotを持っているかを条件にするのがいいかと
subv(@kakouton_spot, kahi_escp_spot)
storeLeaderOfSpot( kahi_escp_spot , @kakouton_escp_unit_now)
addUnit(@kakouton_escp_unit_now,@kakouton_spot)
//連結した逃げ場を削除
hideSpot(kahi_escp_spot)
removespot(kahi_escp_spot)
}else if(count(@kakouton_spot)==1){
//負けた場合、領地が逃げ場の1つになる
//とはいえ、このシナリオでは確実に1領地しか持てない縛りがあるため、通常のシナリオでは戦場になったspotを持っているかを条件にするのがいいかと
storeLeaderOfSpot( kahi_escp_spot , @kakouton_escp_unit_now)
addSpot(kahi_kakouton_saihen_spot,pkahi_kakouton)
addUnit(@kakouton_escp_unit_now,kahi_kakouton_saihen_spot)
hideSpot(kahi_escp_spot)
//再編成用スポットkahi_kakouton_saihen_spotに逃がす
//理由としては、今後同じspotを使う場合があるため、ここに残しておくと夏侯惇以外の勢力が逃げたときに困る
removespot(kahi_escp_spot)
add(kahi_gekiha_point,5)
}
}
}
あくまでもそういう方法もあるってのと、結構細かいところ省いているのと、もっといい方法あるかもって想定の上で参考にして頂ければ幸いです
spotmarkとかは下の負けたパターンの場合の最後にダイアログと共に出せば問題なく表示可能かと
質問者ではありませんが、大変参考になりました
ありがとうございます!
>>561
遅くなりましたがありがとうございます。
とりあえず、
storeSpotOfUnit(マスター名, 現在地spot)
if (isJoin(本拠地spot, 現在地spot) == 0) {
storePowerOfUnit(マスター名, 所属勢力)
storePowerOfSpot(本拠地spot, 本拠地支配勢力)
if (所属勢力 == 本拠地支配勢力) {
addUnit(マスター, 本拠地spot)
dialog(マスター名,マスター名が本拠地spotへ脱出しました。)
}
}
安易で強引ですが、これとchangePowerFixを使って孤立アボンの可能性を抑えたいと思います。
もう1つ質問なのですが、stealth = 100って機能してるでしょうか?
攻城戦で、城壁内の櫓などの防衛兵器を遠距離職が攻撃して無駄死にするのを避けたくて、
防衛兵器のclass構造体にstealth = 100を追加したのですが、近接ユニットが殴りかかりました。
stealthは遠隔は無視するけど近接は殴る筈
>>564
納得しました。ありがとうございます!
addstringって素晴らしいよね
文字列変数に対するaddintegerもあれば本当に良かったのに
他にも数値変数の配列とか欲しかったです
配列使わなきゃい困るような複雑な処理は書かないけど変数名付けるのがめんどいから配列欲しい
変数が増えるに連れてザ・ド素人みたいな長い変数名になっていく
実際ド素人だけども
長い変数名はしょうがない というかそれでいい
へたに短縮するとそっちのほうが駄目でしょう
Wikiの制作講座と最新版のDLと更新詳細にも書いていないような関数とかどこで知るの?
pushDeathとかここで初めて知ったんだけど
>>567
長い名前のがテキストエディタで置換しやすい場合もあるから問題ないんじゃ?
というか配列は存在してるし、どの程度を複雑というかはともかく複雑じゃなくても別に配列は使えると思うけど、どういう配列を考えてるんだろ
Listみたいな?
マップそのものをシナリオ中に変更することってできますか?
マップの画像ではなく、マップ全体の大きさを変えたいです
ワールドマップ?
それとも戦闘マップ?
>>572
ワールドマップ
マップの一部を加えるといった形ではなく、全く違う大きさで違う場所のマップに切り替える感じ
bgを使って裏の画像だけ変えることはできるものの、横幅縦幅のスクロールはどう頑張っても変えられない
本体そのものを切ってスクリプトでmapを変更すればできるんだけど、プレイヤーにそれを求めるわけにはいかないし、内政1発でマップ切り替えみたいなのを想定してます
逆に考えるんだ
最初のマップより大きいのを使えないと考えるんじゃない
使うはずの一番大きなマップに合わせて最初のマップを用意するんだ
無駄なスクロール領域ぐらいなら大丈夫だろう
それはつまり地上戦と空中戦に分けて二つのワールドマップで進めていくみたいな感じ?
>>574
無駄なスクロール領域が極端に大きくなるんで勘弁してください
>>575
2つではないですが大凡そんな感じです
1つが極端に大きいマップでそれと別に極端に小さなマップを使用するため、非常に難儀しています
そこは内政ユニットを使ってセンタリングさせれば2,3クリックぐらいで済むしね?
640*480を2枚(AとB)用意するのじゃなくて、1280*480(A+B)でmap作って、
A側相当/B側相当を部分表示しておいて、hideSpot/showSpotで切り替えて使うとか?
debugPaperで640*480表示に設定してあれば必要な部分だけ表示は出来る…かも?(フルスクリーンの時にどうなるかは知らないケド)
>>578
まあ2枚ならちょっと違和感はありますがそれも可能かな・・・とは
とはいえその方式でするなら1枚+49枚なのでちょっと現実的じゃないかも
1枚をA、49枚をB00からB48として、AとBを行ったり来たりする感じですね
なお、フルスクリーンでbgやるとbgの方は左上に集約されます
map=だと一応ちゃんと表示はされるかなってぐらい
一応それは想定していなくはないのですが、あくまでもやりたいのは1枚と49枚の行ったり来たりって感じですねー
あと、やり方間違ってたらごめんですけどスクロールできちゃわないですか?それは
>>577
センタリングの意味がちょっとわかりません
ごめんなさい
>>580
言葉足らずですまぬ
サイズ小マップ(100*100)
に対して
サイズ大マップ(9000*9000)
としたら元々サイズ大のスクロール移動は呆れるほど面倒くさいはず
だったら内政欄(国策とか社会契約とか禁呪とかのある欄)に『移動』という項目を設けてみてはどうか?
移動内政スポットに置いておいた内政人材でサイズ小マップの中央あたりに存在する領地にスクロールしてセンタリングしたり、サイズ大マップの端の方に移動したり出来るようにすればいいのでは?
まあ、だだっ広い無駄領域がサイズ小マップに広がる事はこの案では避けられないが
>>571
シナリオ中に変更するのは無理
ゲーム中にsetUD(@scenario, @hogehoge)でシナリオ変更するのがいいと思う
>>583
シナリオ中にシナリオ変更できるのですか・・・?
いやもちろんシナリオ構造体からシナリオ構造体に移動できるのなら願ってもないのですが
NPCの新勢力旗揚げと陪臣雇用の両方をOFFする機能はありますが、
陪臣雇用だけをOFFするやり方ってありますか?
全人材に"loyal=自分"を指定するわけにもいかず、
compati_vassal_bdrを100以上にしてみましたが、100以上は認識していない感じでした。
開始時に
pushv(@freezepower,aaa)
msg(&aaa&)
set(idx,0)
while(idx<count(@freezepower)){
index(@freezepower,idx,@freezepower_get)
changePowerFix( @freezepower_get , freeze)
add(idx,1)
}
このような処理をしています
freezeに入っているのはプレイヤー勢力を除いた全勢力30勢力弱(aaaに入った数値)なのですが、プレイヤー勢力に終了を押した後再度プレイヤー勢力にターンが回ってくるまでに5秒ほどのタイムラグがあります
これはfreezeをせずともあるタイムラグと変わりません
どういった原因が考えられますか?
コンテキスト構造体で効果が分からない項目の仕様公開して欲しい
そこさえ改造できりゃ洋ゲー並みに戦えそうなのにもったいなすぎる
そもそも画像やスクリプトとかの暗号化の部分以外をオープンソースにして欲しい
まじかよ 更新されてら
でもバージョンは据え置きか
なんか素材に使えそうなのができたようなので共有
http://make.girls.moe/ #/
いいね!
だけど作成した画像の使用規約が見当たらないけど、知ってる?
すみません
class構造体やunit構造体でmerceを設定できるのはしっているのですが、
シナリオの途中で人材のmerceに新たに追加したいのですが、どのようにすればよいのでしょうか
addMerceって機能しないんだっけ
新しいmerce設定した新クラス設定しといてそっちに強制クラスチェンジとかでも一応出来るよ
ありがとうございます
試してみましたが人材の場合delskillだのlearnだの設定してあるとスキルが失われたりして結構大変ですね
一般はこれでうまくいきました
多分addFriendと一緒にやるって話だと思うんだけど
merceだけ書いてもfriendにできないクラスだと結局雇えないはずだから
merceの方だけ最初から書いといてもいいかも
それは最初に考えたのですが
他のMODと簡単に共存できるようにMODを作っておりますので、そのシナリオのクラスやユニットに手を加えて互換性を捨てるのは難しかったのです
次のようなスクリプトを組んで任意のタイミングで発動させるとメモリーの使用量が増え続けていく現象を見つけたのですがVTの仕様なんでしょうか。
処理が終了したあとも開放されずに居座っている感じです。ESC押しでタイトルに戻った時も使用量が変化していません。
開発中のシナリオでは文字変数を使用してイベントの呼び出しをしている処理が1ターン巡るあいだに数千、数万回実行しているのでかなり困っています。
setv(@call,testevent)
set(idx,10000)
while(idx)
{
sub(idx,1)
routine(@call)
}
event testevent
{
set(a,1)
}
メモリ使用量とかは分からんけどループにroutine入れると重くない?
>>597
俺もメモリとかはわかんなくてタスクマネジャー見る程度なんですが
呼び出し先(testevent)の変数をその都度クリアしてみたところ
メモリが増えなくなったような気がします
event testevent
{
set(a,1)
set(a,0)
}
ただ素人なんで自信はないです。試したexeはv7.0(最新ではない)です
>>597
そうかな? 俺は感じないけど
ローカル変数機能さえアレばな―
>>598
ストレスを感じる程度ではありませんね。
routine()ではなくてevent()で呼び出すと激重ですけど。
>>599
>俺もメモリとかはわかんなくてタスクマネジャー見る程度なんですが
当方もタスクマネージャーの詳細から使用量をモニタリングしていました。
>呼び出し先(testevent)の変数をその都度クリアしてみたところ
構造体変数の配列の代用として使っているのでそれができないです。
setv(@call, event_A)
routine(@call)
set(b, a)
event event_A
{
set(a,1)
}
event event_B
{
set(a,2)
}
etc...
という感じで値を参照するためにつかっているのでイベント構造体内での変数クリアができません。
文字型変数の場合はデータサイズが可変なのでクリアすることでメモリー使用量が変化するのは当たり前ですけど、
データサイズが固定である数値型変数はクリアしたところでメモリーの使用量には変化がないはずなんですけどどういうことなんでしょうね。
routineを何万回もやると重いのは俺環だったのか
もしかしてstoryをたくさん付けると重くなるのもうちだけか?
そのせいでstoryは全部一つにまとめてるしroutineも速さがさほど気にならない内政とかでしか使ってないんだけど
>>601
もしかしたら文字変数でイベント呼ぶと扱いが変わるのかもしれないですね
まあ俺にわかるのは「毎回クリアすれば増えないらしい」ってとこまでです
>>602
あ、ごめん、何万回も回したことはないからわかんない
シナリオの規模(イベント数とか)も影響してそうだし、事情が違うのかも
eventとかがあるのとないのとで確実に速さ違いますよ
100回ほど回るwhileにeventで100回回すのと、eventの中身をバラして入れたものだと後者のほうが圧倒的に速いです
イベント構造体の呼び出しを多用するとメモリー使用量が増加していくのは仕様みたいですね。
幸運なことに開発中のシナリオで見にいく必要がある変数が文字変数だけなのでゲームの開始時に文字変数の配列に展開しておきますか。
つきあってくれてありがとう。
>>604
やっぱりそうだよね
良くないけど良かった
>>604
一応確認、event( event構造体名 )が遅いのは仕様ですよ?
https://www28.atwiki.jp/vahren_ency/pages/534.html
> routine( event構造体名 )
> event構造体を呼び出します。
> 戦場マップや背景画像を指定しないただのサブルーチンを呼び出すのはこちらを使ってください。
> routine呼び出しの方が高速です。
>>597 の10000回ループもすぐ終わったし、
routine自体が重いってことはないと思いますが、何か条件があるのかも?
流れ的にevent「とか」ってのはroutineやstoryを含んでいるのだと思うが
何にせよオリシナやMOD公開するつもりならroutineループが重くなる環境が存在するということは頭に入れておいたほうがいいね
ただ確かに>>597 は全然重くないな
重くなった奴貼りたいけどもう全く別のスクリプトに変貌してるから無理だわ
ちなみに>>602 です
質問です。
power構造体のhome設定を後から変えたり、内容を取得する方法はありますか。
たしかないはずです
もう消えてるけどsetPowerHome(勢力,領地)がなかったっけ
一番簡単なのはwarlike使って線プッツンして狙いの方向に行かせるのが確実かと
>>612
少なくともwikiのログにはないけど
setPowerHomeは前スレでちょっとだけ出てたね
興味があったら試してみたらいいんじゃない?
更新のところにあるやつ、時々シナリオ製作のところに書かれずに流れちゃうことあるからねー
領地ウインドウを開いた時にイベントを発動させたいのですが、方法はないでしょうか?
また、領地を開いたり閉じたりする関数、開いている領地を取る変数、開いてる領地を条件にする・・・とかできれば助かるのですが・・・
もし仕様的にできないのであれば、ななあしさんに要望として目を通して頂ければとても助かります
もう機能追加はないと公式に宣言されてるで
公式に宣言されてるからといって完全に望みが絶たれたわけじゃないと思う。
少なくともmidiやoggのループ指定を組み込んでくれれば
RPGツクールやSRPGSTUDIOと同じくらいになるはずだから
それだけは是が非でも搭載してほしい。
変な数字入れるとバグって固まるとかでも全然いいんでAI設定の説明が欲しい
バグで思い出したけどスキルヘルプでアイコン出るようになったバージョンで何かスキルヘルプにバグあった気がしたけど
あれ直ったんだっけ?
スキルヘルプのバグなのか仕様なのかは分かりませんが、最新版でもそのままですね
ver7.00以降、func未指定の無効スキルのヘルプがスキルアイコンとスキル名が重なる
ワールド画面でユニットのスキルにオンマウスした時、
スキルヘルプ内にマウスカーソルが入っているとヘルプが開閉を繰り返す
>>621
このスレの過去ログにもある程度は出てくるけどそれ以外?
どの変数のことか書かにゃアドバイスしようがないと思う
scriptそのものが初心者な私に教えてください。
後々整理し易いように、作り始めた今のうちから先人のまとめかたを
参考にしたいんですけど、どの方のを参考にするのが皆さんオススメですか?
ヴァーレン派生のゲームで教えてください。
本家、むなしい努力、光の目は覗いてみました。
どれもすごいんでしょうけどわからなくて・・
整理しやすいまとめ方ってんならGreatEuropeWarとかスマブラ戦記とかかな
ジャンル別に細分化して個別にファイル作られてる
見やすいかどうかは別だけど
あと、もう使ってるかもだけど、サクラエディタ便利だよ
無いと何もできないレベル
自分がいちばん長く遊んだシナリオを読むのもいいよ
遊んで楽しいシナリオは自分の理想にも近い
ゲーム本体に詳しいほうがスクリプト読むのも楽しいし
vs codeの方がサクラより便利だよ
スクリプト覗くなら
本家ときのたけと銃魔と迫真は止めといたほうが良い
本家は作者がすっごいバラバラで書き方も統一されてない
きのたけと銃魔は国策関連が複雑過ぎて初心者には向かない
迫真はきのたけの流れを受けているから……
光の目は戦闘AIの書き方でいずれお世話になるが初心者にはどうだろう よくわからない
作者のコメントが多いのは祖国と銃と
むなしいも悪くない
まあ、こんなこと書いたけど一番良いのは>>627 さんの書いた通りスクリプト書きたいと思ったきっかけの作品を見ることだね
一番好きな作品なら愛を持って取り組めるはず
きのたけについて悪く書いたけどこれでMOD作成に入門したから好きであることがやっぱり大事だと思う
まぁでも、何をしたいかによるよね
挙動イメージとか掴まないままに見たらどのシナでもきっと鼻血が出る
皆さん色々教えてくれてありがとうございます!
書いてもらえたこと全部試してみますね。
今日scriptの種類?とか色々あることを知ったんですけど、
ヴァーレン系のscriptフォルダ内にある.datのファイルって
javascriptで合ってますか?
>>632
スクリプトはjavaではなく独自の言語で書くけど
構造体のことかな?
そうです構造体です。
あれは独自の言語だったんですね!
続けて答えてくれて皆さんありがとうございました。
Visual StudioとC#使える人にしか使えない(デバッグモードで例外周辺の変数を覗いて問題のファイルの場所を特定する)ヴァーレンの構文チェッカー作っててそれなりーにはできたんだけど私以外に需要ある?
>>635
ありますあります
Vの次はWだよね的なネーミングセンス
ヴァーレントゥーガ用構文チェッカー
Wahren ver0.0.0
ttps://ux.getuploader.com/vahren/download/4336
前にpushDeathの使い方wikiに載ってたような気がするんだけどなぁ
「なんか関数追加されたらしいけどよくわかんねーや」
→「銃魔ってシナリオが公開された、なるほどこう使うのか」
→「あれ、説明が消えてる」
みたいな感じだったと覚えてる
銃魔のために特注されたような関数だから時期としてはその前後だと思うんだけど
そのあたりを編集履歴やらアーカイブやらで探ってもさっぱりだ、あれは夢だったんだろうか
IFやWhileにも対応しました
実感としてかなりバグ取りが楽になりました
ttps://github.com/pCYSl5EDgo/Wahren
storememberofunit(test,@member)
storealltalent(@talent)
subv(@member,@talent)
上記のようにして人材以外の部隊メンバーに適用するイベントを作ろうとしたのですが人材が除かれませんでした
istalentでwhileループすれば除外できたのでこのイベント自体は問題ないのですが、storealltalentは他でも結構頻繁に使っているので使い方の認識を間違っているのだとしたら不安です
なぜ上の式では除外できなかったのでしょうか
>>639 すげえ
>>640
subvかも
以前使ったとき動作がおかしかったような。定かじゃないけど
>>640
subvとかaddvは変数に格納されている内容の、一番頭の内容しか見ていないからじゃないかな?
(@talentに「あ、い、う、え、お」と格納されているとしたら最初の「あ」しか見ていない)
だからwhileループで@talentの中に格納されている内容を、一つずつ取り出してやらないと意図した動作にならないハズ
>>641
>>642
まじかよ…やべえよやべえよ
複数要素の文字変数でのsubvaddv使いまくってました
今まで特に問題なかったけど大幅な修正が必要そうですね
ありがとうございました
まじか
俺のも直さにゃ
最終的な動作だけじゃなくて間にmsg&@変数&やら挟んで中身みながら特定してみてもいいと思う
他でうまく回っていたのならそこだけ実はoh! spell miss!してる可能性とか
>>588
スクリプトの暗号化はexeだから無いけど
画像の暗号化はPicEncoder.jarっていうやつを使うんだ
jarファイルってのは実はzipと同じフォーマットになっているから解凍をすると中からImageChg.javaっていうソースが出てくる
>>そもそも画像やスクリプトとかの暗号化の部分以外をオープンソースにして欲しい
とのことだが、実は画像の暗号化部分はオープンソースだったんだ
喜べ!
>>646
済まないが知ってた
艦隊コレクションの二次創作ヴァーレンでやってくれないかな〜(/ω・\)チラッ
昔、海戦再現した派生シナリオなかったっけ?
「何これ」のことだな
そこの作者のれどめも書いてるけど艦これは二次創作をゲームで発表するのは公式からNG
なんか、艦これキャラの絵を描いたトランプを出すだけでも動いてきた事がとかあったとかなかったとかあった気がする
>>648
ゲーム性があったらアウトなんじゃなかったっけ
フリーだとどうなんだろ
艦これのゲーム化権はDMMが独占してるから、艦これの窓口の角川側で勝手に許可が出せない
が、例の騒動もファンが勝手に騒いで勝手に自粛しただけだから、刺されない限りやるのは自由
だ、が、近年のヴァーレン界隈はクリーンに行こうとしているので、たぶん横槍入れられまくると思う
何これの艦載機スキルは正直面白いと思ってた
でも、マップが海だけだと代わり映えしないのが難だねぇ
極限まで簡素化した提督の決断4みたいだったなあれは
一例とした以下のような文字変数の要素数を数えて、その範囲内で乱数値を得る処理を実行していたのですが、特定の条件下で0ばかりが出力される現象に遭遇しました。
どんな原因が考えられるでしょうか。
setv(@str,a)
addv(@str,b)
addv(@str,c)
addv(@str,d)
addv(@str,e)
...etc(変数の要素数は可変です)
pushRand2(int1) ←ここは毎回乱数が出力されます。
pushv(@str, int2) ←ここも正しく取得されます。
mod(int1, int2) ←おそらくここで問題が発生します。なんで?
msg(&int1&)
結構前のバージョンの時にpushRand2について検証したことがあるんだけど、確かpushRand2で出力される乱数って必ず8の倍数だったはず
当時と仕様がが変わってなければ、それが関係しているんじゃないかな
>>655
剰余算で得た値にやたら偏りがあるのできになっていたんですがそういうことだったのですか。
ありがとう。
たしか許可さえ取ればかんこれは販売も二次創作ゲームもオッケーだった気がする
ただ、ゲームの画像とかbgmをそのまま使用したらアウトなだけでまねて描いた絵とかまねて演奏したやつならたしかおk
spotを陸と海に分ければ南方作戦とかできそう陸に上がれば船は動けない、みたいにすれば…
たしかGEWでなんか海軍と陸軍の移動の制限について語ってた気がしなくもない
スレチの雰囲気があったしあまり触れたくはなかったから静観してたけどよく調べもせず作って変な問題になって他のシナリオまで波及したらいやだから書いとくけど
「艦これ」の同人誌やイラスト・漫画・小説・コスプレ(全年齢)等の一般慣例的な【同人活動】については…公序良俗に反するもの・ゲームシステムのあるもの・ゲーム内の音源/画像を使ったもの・関係各社/者に迷惑を与えるもの以外は…【現時点】では基本【OK】と考えています
だからゲームシステムがある時点でトレースうんぬん以前にアウトだよ
フリーなら大丈夫?という意見もでてるけどボードゲームみたいなアナログなものはいいの?という質問に対して公式が
大変大変申し訳ありません、様々な見地/計画からそちらもご遠慮頂けますようお願い申しあげます。
といってるから自分が商品展開しようとしたときにすでに同人であってできないという状態を危惧してのことだろうからほぼアウトだと思うよ
どうしても作りたけりゃ大丈夫だろうから作るじゃなくて公式にしっかり説明して問題にならないようにちゃんと許可とってからやっておくれ
まあ、トランプの時も運営に許可とったかとってないかでももめてたし許可はどちらにしろいりますよね…
すまそ
VTのドット素材作りたいなと思うんですけど、教材としておすすめの本とかありませんか?
>>661
私はアップローダーのとこにあるドット絵をいじって覚えましたよ〜
なので、教材としてアップローダーのドット絵がVTのドット素材として企画も同じですし一番かと
ドット絵の打ち方ぐらいならwebに挙がってるようなやつで十分だよ
というか模写が一番早い 普通の絵もそうだけど、本はある程度描けるようになってからでないと、まず意味がわからない
たぶん、ななあしさんも想定していない仕様な気がするのですが、
addtroop等で出現させたユニットについて、出現したユニットが敵サイドのユニットにかかわらず、
その出現した敵ユニットを直接左クリックをすると操作できてしまいます
beastやunctrlTroopをすれば避ける事は出来ますが、
当addtroopで出現させたいユニットはプレイヤー通常操作のユニットでもあるため、beastは出来るだけ避けたく、
そしてunctrlTroopをした場合は、その処理が入ったとたんに戦闘中のユニット操作指定が全部はずれてしまうため、操作性にやや難が出てしまいます
なにとぞ良い知恵のご教授、もしくは何かしらの対応の方よろしくお願いしたく思います
複数の配列から配列をゲットする方法ってありますか?
例
@A→内部A00,A01,A02・・・・・A99
@B→内部B00,B01,B02・・・・・B99
・
・
・
・
・
@Z→内部Z00,Z01,Z02・・・・・Z99
と言う感じで配列があったとして、例えば今C56を取得した場合、B56、C55、C57、D56を追加で取得したいと言う場合です
ないです
配列ってのは文字変数のことで合ってる?
合ってるならindexとwhileループでマッチングすれば複雑にはなるけどできると思う
例えばの後の追加取得の法則性がよくわからないから例が書けないけど…
疑似的に二次元配列に展開されている要素から上下左右の要素を取り出すのならば、
変数を分割せずに要素を全部一つの文字変数配列に放り込んでおいたほうが簡単なのでは、
各列の要素数が100個あるのならインデックス値を+100or-100してやれば上と下の要素にアクセスできますよ。
ああ上下左右だったか
何にしても>>668 のやり方がベストかな
>>668
そこの問題点がありまして、文字変数を一定数以上連結すると非常に重くなる欠点が・・・
以前似たことをしようとして、spot5000個連結したらまず連結時に非常に重くなった問題ががが
それだけあるとどんな処理しても正直重そうな
いっそ開き直って「処理中ですからちょっと待ってね」なmsgだすとか
重さ的に許容できる範囲内で実現可能な二案、三案を用意した方がいい気もするとか
>>671
500づつに分割してどこがhasしてるか確認して10の配列をelseifで探していけば問題なくいけました
問題はこの配列が10個で済むパターンならいいのですが、最終的なシナリオで数万クラスを想定しているので、それで回数かけてwhileするのは現実的じゃないので何らかの方法を考えていました
以下のスクリプトで事前計算によりループの回転を100回未満に抑制できるはずです。
//変数@allに全要素を格納 A-Zの各列の要素は100個あるものとする
setv(@all,A00)
・
・
・
addv(@all,Z99)
//事前計算用変数
setv(@a,A00)・・・addv(@a,A99)
setv(@b,B00)・・・addv(@b,B99)
・
・
・
setv(@c,C00)・・・addv(@c,C99)
//インデックス値の推測
if( 1 == has(@a, @str) )
{
set(idx, 0)
}
else if( 1 == has(@b, @str) )
{
set(idx, 100)
}
else if( 1 == has(@c, @str) )
{
set(idx, 200)
}
・
・
・
else if( 1 == has(@z, @str) )
{
set(idx, 2500)
}
set(idx2, idx)
//変数@strの上下左右の要素を変数@getに格納する
clear(@get)
while( idx < idx2 + 99 )
{
index(@all, idx, @tmp)
if( 1 == equal(@tmp, @str) )
{
//両隣の要素を取得
set(tmpidx, idx)
sub(tmpidx, 1)
if( 0 <= tmpidx && tmpidx <= idx2 + 99)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 1)
if( 0 <= tmpidx && tmpidx <= idx2 + 99)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
//上下の要素を取得
set(tmpidx, idx)
sub(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
break()
}
add(idx, 1)
}
誤りがあったので訂正です。
以下のスクリプトで事前計算によりループの回転を100回未満に抑制できるはずです。
//変数@allに全要素を格納 A-Zの各列の要素は100個あるものとする
setv(@all,A00)
・
・
・
addv(@all,Z99)
//事前計算用変数
setv(@a,A00)・・・addv(@a,A99)
setv(@b,B00)・・・addv(@b,B99)
・
・
・
setv(@c,C00)・・・addv(@c,C99)
//インデックス値の推測
if( 1 == has(@a, @str) )
{
set(idx, 0)
}
else if( 1 == has(@b, @str) )
{
set(idx, 100)
}
else if( 1 == has(@c, @str) )
{
set(idx, 200)
}
・
・
・
else if( 1 == has(@z, @str) )
{
set(idx, 2500)
}
set(idx2, idx)
//変数@strの上下左右の要素を変数@getに格納する
clear(@get)
while( idx < idx2 + 100 )
{
index(@all, idx, @tmp)
if( 1 == equal(@tmp, @str) )
{
//両隣の要素を取得
set(tmpidx, idx)
sub(tmpidx, 1)
if( idx2 <= tmpidx && tmpidx < idx2 + 100)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 1)
if( idx2 <= tmpidx && tmpidx < idx2 + 100)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
//上下の要素を取得
set(tmpidx, idx)
sub(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
break()
}
add(idx, 1)
}
>>674
ありがとう
でも最初の2600の配列あるだけで相当重くなりません?
なんか他の原因あるのかな・・・
>でも最初の2600の配列あるだけで相当重くなりません?
ゲーム再開直後に文字変数配列を作成して保存しておけば毎回配列要素の作成をしなくてもいいですよ。
>>676
でなくて、その文字変数の配列があるってだけでやたら重いのは何か問題あるのかな・・・と
>>677
メモリーの使用量が増えると重くなるのは仕様なのでは、空いているアドレスを検索する処理がリソースを消費しているんじゃないですかね。
メモリーは最大で1.5GB程度まで使えることは確認していますけど、1GBを超えるくらいになると重すぎて実用レベルとはいえませんね。
使っていない、使い終わった文字列変数はclear関数で開放してやってメモリー使用を節約するくらいしかないと思いますよ。
>>678
なるほど
1つだけの配列だと重くて、複数に分割すると軽いのはそこらへんも関係あるのかなきっと・・・
setPowerHomeで勢力のHome設定を操作しているんですけど、COM勢力のspotの戦力配置に重みをつける方法はありますか。
質問です。
皆様シナリオのMapを作る時どのようなツールを使用していらっしゃるのでしょうか?
個人的にはむなしい努力の地図の雰囲気がとても好きです。
本家VTも雰囲気好き
私も同じような地図作りたいんでツール教えてください。
本家付属ツール使いんさい
ワールドマップの事じゃないの?
もしそうなら俺はsaiで描いてるな
choiceについてですが、選択肢の数が流動的な場合、想定される選択肢の数を全部書くしか方法はないですか?
例
誰を仲間から外しますか?の場合
その時点で仲間である物が1〜20人すべての可能性を想定する場合、選択肢1はselectで表現するにしても、choiceで表現する場合引数2〜20個の全てのパターンが必要でしょうか?
空欄や名前をクリックしたら元にもどる等の挙動で妥協する予定はありませんので、選択肢の数を決める方向性でお願いします〜
妥協せずに一つずつ全部書くしかないと思う
ランシナの配下選択みたいに4、5程度の選択肢の複数ページに分ければパターン少なめで済むかも
>>684
Great Europe Warの「部隊長一覧.dat」が割合そのまま使えそうな感じかな
文字数制限に引っかかったから自分で見てくれ
Boiにも似たようなキャラ選択があったな
あっちはキャラ数が多すぎて、小分けが顔あり、顔なし、ゲストの3枠だけでは手間が全く軽減されてない有様だけど…
「最後尾のキャラをチームから外します。よろしいですか?」
>>687 >>689
それは初期の人数が決まってる場合にのみ有効なような・・・
>>690
最後尾が隠れてる状態になると外せるようにしたいので無意味ですね
>>688
調べてみます
>>691
場合分けと剰余演算でイケるイケる
>>691
おまえ毎回条件後出しにして揚げ足取ってないか?
他人にアイディア求めるならもう少しちゃんと説明しろよ
>>680
たぶんないんじゃないかな。隠し関数は知らないけど
ワールドイベントで部隊を動かしてやるほうが早いと思う
>>692
なるほど、〜以上なら1ページ、〜以上なら2ページ・・・って感じで割り算の数値ページ分だけ用意した後、余ったページを使うと言うのはいいですね
>>693
>>691 はなると→なってもですね失礼しました
全想定のラインを細かく話さなきゃいけないならキリなくなるんで質問もできませんが・・・
最後尾のことでしたら、それを限定したはずし方になるのでそもそもの目的と大きく外れますし、元々choiceを用いてということを説明しています
>>694
結局どの仲間を外すかってことにchoiceが必要になってしまいそうなので、choice全通りとページ周りを両方試してみます
ワールドマップでの解雇となると、やはりプレイヤーが解雇「しない」という選択肢を取ってそのまま進めてしまうことを想定できちゃうので、無理そうですね
質問の要点をまとめるのは質問者の最低限のマナーだよ
キリなくなるから後出しジャンケンしますって回答者をbotか何かと勘違いしてない?っていわれても文句いえないぞ
>>692
綺麗にいけました、ありがとうございました〜
>>697
そのためchoiceを用いることと、人数の流動的な仲間を外すことという2点を要点として伝えました
それで足りないのであれば、どの程度をまとめればいいかわかりませんが、botとは考えていません
だからこそ出来る限り返事をしています
以上です
返事を下さった皆様ありがとうございました〜
ぶっちゃけ>>687 で終わってるのに何も考えずに聞き返してる辺りがもう
自分で考える気あるのか
しかも質問の返答に対して無意味ですねとかSAN値0かよ
ユニットの「素早さ (speed) 」と実際の攻撃頻度がどう関係してるのか調べてみました。
戦闘時のゲーム速度は「普通」のまま。行動速度は標準値の unit_action_bdr = 4000 です。
attack = 1, defense = 0 で単発の接近攻撃だけ所有する実験ユニット同士に殴り合いさせて、経過時間とダメージで攻撃回数を数えました。時間は厳密に計ったわけではないです。
speed = 60 だと一分間(戦闘時間で300経過)に43〜44回ぐらい接近攻撃します。
スライド速度が速い場合に攻撃回数が増えるか調べるため、
unit_sword_slide = 9 (12フレームで前進)
unit_sword_slide = 12 (9フレームで前進、標準はこれ)
unit_sword_slide = 50 (2フレームで前進)
で試しましたが、攻撃回数に違いはありませんでした。
スライドが速く終わっても、次の行動間隔までの待ち時間が長くなるだけです。
unit_sword_slide = 4 (25フレームで前進?)
前後にスライドするのに50フレーム(2秒)必要だろうから、スライドが終わるまで次の攻撃を待つなら、一分間の攻撃回数は30回になるはずですが、
実際には攻撃回数は43回と変化しません。
unit_sword_slide = 2 (50フレームで前進?)
前後にスライドするのに100フレーム(4秒)必要だろうから、スライドが終わるまで次の攻撃を待つなら、一分間の攻撃回数は15回になるはずですが、
実際の攻撃回数は30回でした。スライドが終わるのに丁度2秒かかってます。
スライド速度が極端に遅いと、行動間隔よりも長くなって、攻撃回数が減ることが確認できました。
ただ、スライド速度のパーセント指定の数値を極端に小さくした場合は、細かい距離が四捨五入されるせいか、スライド時間は計算通りにはならないようです。
スライド速度が影響しないように速くした条件で、speed だけ変えてみました。
speed = 70 だと一分間に50〜51回ぐらい接近攻撃します。
speed = 80 だと一分間に57〜58回ぐらい接近攻撃します。
speed = 90 だと一分間に64〜65回ぐらい接近攻撃します。
speed = 100 だと一分間に71〜72回ぐらい接近攻撃します。
「きのこたけのこ戦争」や「Brave of Island」では unit_action_bdr = 3500 になってるので、攻撃速度がどれだけ変わるかも調べてみました。
speed = 60 だと一分間(戦闘時間で300経過)に49〜50回ぐらい接近攻撃します。
speed = 70 だと一分間に57〜58回ぐらい接近攻撃します。
speed = 80 だと一分間に66回ぐらい接近攻撃します。
上記の調査結果から以下のことを推論しました。
戦闘時の内部カウンタは経過時間の10倍らしいので、1分で3000カウント、1秒で50カウントです。
「unit_action_bdr の数値」÷「ユニットの speed 値」=「間隔のカウント数」
のような関係がありそうです。
しかし、実際には unit_action_bdr = 4000, speed = 80 にしても、攻撃間隔は毎秒よりも微妙に遅くなるので、
「攻撃間隔=間隔カウント+2」ぐらいになってるのかもしれません。
この計算式を計測結果と比較してみました。
unit_action_bdr = 4000 の場合
speed = 60 なら攻撃間隔は 4000/60+2=69カウントなので、一分間に 3000/69= 43.5回攻撃します。
speed = 70 なら攻撃間隔は 4000/70+2=59カウントなので、一分間に 3000/59= 50.8回攻撃します。
speed = 80 なら攻撃間隔は 4000/80+2=52カウントなので、一分間に 3000/52= 57.7回攻撃します。
speed = 100 なら攻撃間隔は 4000/100+2=42カウントなので、一分間に 3000/42= 71.4回攻撃します。
unit_action_bdr = 3500 の場合
speed = 60 なら攻撃間隔は 3500/60+2=60カウントなので、一分間に 3000/60= 50.0回攻撃します。
speed = 70 なら攻撃間隔は 3500/70+2=52カウントなので、一分間に 3000/52= 57.7回攻撃します。
speed = 80 なら攻撃間隔は 3500/80+2=46カウントなので、一分間に 3000/46= 65.2回攻撃します。
だいたい理論値と計測値が一致するようです。
オリシナ作者がユニットごとの素早さを調節する際の参考にでもしてください。
ありがてえありがてえ
>>700 >>701
制作してからずっと思ってた謎が解けた
今年一番のありがとうを贈りたいよ
遠隔攻撃の速度について調べてる際に、ゲームの描画速度について矛盾点に気づきました。過去ログには描画速度が 25 fps とあったので、フレームレートと内部カウンタは別に進んでる(フレームスキップする為とか?)のだと思ってましたが、よくわかりません。
wiki によると、直進型の遠隔攻撃で「speed は1フレーム毎に進むドット速度」とあります。したがって range = 500, speed = 100 なら最大射程まで到達するのに500フレームかかるはずです。実際に見てみると、戦闘時の経過時間で50(10秒)でした。500フレームで10秒なら、1秒に50フレーム (50 fps) となります。これだと、内部カウンタとフレームの進み具合は完全に一致します。
50 fps で動いてるとするなら、先の接近攻撃のスライド速度も正しいことになります。wiki によると、接近攻撃の slide_speed は「12なら9コマ、25なら4コマで敵に当たる。」とあります。例えば、unit_sword_slide = 2 ならフレームごとに 2% 前進するので、50フレーム(1秒)で前進して、更に50フレーム(1秒)で戻ります。前後にスライドするのに丁度2秒かかる訳で、これは実際に計測した攻撃間隔と一致します。
上記の wiki の記述が正しいとすると、描画速度は 50 fps ということになります。しかし、wiki 内の「関数(イベントの設定)」で wait の説明に「このゲームは25fpsですので1秒間waitするなら25とします。」とあります。もしかすると全体マップと戦場画面でフレームレートが違うのかもしれません。(全体マップでは 25 fps だけど、戦場では 50 fps になるとか。)あるいは、単に wiki に書く際にフレームと内部カウンタを混同してるのかもしれません。(speed は1フレームではなく、1カウント毎とか。)どなたか詳しい情報を持ってる方がおりましたら、教えて頂けるとありがたいです。
一撃で敵を倒しやすいインフレ・シナリオでは、敵が死んだ後もその場所を攻撃し続ける現象が発生します。本家シナリオでは気になりませんが、「Brave of Island」で人材を強化しまくって無双プレイしてると、敵が居ない所を2度3度と攻撃するのが目に付きます。
どうしてこうなるのか script を見てみると、context.dat の unit_search_bdr が関係してました。標準の unit_search_bdr = 100 だと100カウント(2秒)ごとに標的を探すような感じです。「Brave of Island」ではこの値が unit_search_bdr = 160 と大きいので、敵が死んだ後に、誰もいない所をしばらく攻撃し続けます。試しに 50 に減らしてみたら、敵を倒す度に攻撃目標を切り替えてくれました。
無駄撃ちを避け、次々に敵を倒して爽快感を得たい場合は、unit_search_bdr の値を低くすると良さそうです。一方で、特定人材の攻撃力が強過ぎて、大群を片端から掃除してしまう、というのが嫌な場合は、unit_search_bdr の値を高くすることで、空撃ちを多くして、集団戦に弱くできます。「Brave of Island」のスクリプトは凝ってるので、参考になります。
こういうのほんと嬉しい
wiki にある「skill 構造体: missile 」のページの start_degree_type の説明で、「7: スキル発射方向をユニットの向きにします」とありますが、この説明は間違ってるような気がします。実際には「ユニットの向きにスキルを発射します」ではないでしょうか。本家シナリオのスクリプトで start_degree_type = 7 を使ってるのはソルジャー系の「シールド」で、盾は敵の方向ではなくユニットの向きに追随して動きます。
それに、start_degree_turnunit という後に追加された命令は「スキル発射方向にユニットの向きを変えます。」というものです。わざわざ新規に追加したのは、start_degree_type = 7 とは逆の効果にする為だと思います。
ただ、これは私がスキルを試してる際にそう見えただけで、本来の動作なのかはわかりません。とりあえず、他の開発者の経験を知りたくて書き込ませてもらいました。
>>707
日本語の問題だけども元からある説明とあなたの説明とでは前後が入れ替わってるだけでいってることは同じだよ
>>708
あなたのおっしゃる通りです。ご指摘ありがとうございます。
707番の投稿は無視してください。wiki の説明を私が誤読してました。「スキル発射方向を(標的の方向ではなく)ユニットの向き(と同じ)にします」ということですね。それなら実際の挙動通りで問題ありません。「スキル発射方向を(start_degree で標的の方向からずらした後で)ユニットの向き(として扱うこと)にします」みたいな誤解をしてました。本家シナリオで start_degree_type = 7 は start_degree と一緒に使わずに、単独で設定してるので、この場合だけ start_degree は無視されるんだと思います。
<あぼーん>
>>704
の投稿で、このゲームが 25 fps か 50 fps なのか質問した者です。
過去ログを調べると共に、実際にイベントも作って試してみました。結論から言うと、私が調べた限りでは、このゲームは戦闘中もそれ以外も 50 fps で、wiki 等に 25 fps と書かれてるのが間違いです。以下にその根拠を示します。
「改造・制作スレ」の706(2010/05/22)に、開発者(ななあし様?)による「speed=1000だと1フレームに10ドット進みます。」との記述がありました。wiki の speed の説明は正しいということです。
「改造・制作スレ part3」の558(2011/11/15)に、開発者(ななあし様?)による「 戦闘開始から1フレーム毎にカウンタは1ずつ増えます。カウンタ10ごとに制限時間が1減ります。」との記述がありました。普通速度では1分間で制限時間が300減ることからして、1分間=3000カウント=3000フレームになります。戦闘中は 50 fps ということみたいです。
「改造・制作スレ part4」の403(2012/06/24)に、「intervalがないと恐らくintervalのデフォルト設定である5フレーム空けての発射になります。ヴァーレンは1秒25フレームなので、大体0.2秒後くらいに次弾が発射されることになります。」と書き込みがありますが、この回答者は開発者ではないので、不正確な可能性があります。
同じ人による「初段攻撃の発動間隔ということなら、実験したかぎりでは素早さ60のキャラでおよそ60フレーム(約2.4秒)になるようです。」との記述は、私の計測結果(unit_action_bdr = 4000 なら移動中の遠隔攻撃の間隔は素早さ60のキャラで75フレーム(約1.5秒)ぐらい)と合いません。そもそも、攻撃間隔については、同じ speed でも context 設定によって全く変わるので、どういう環境で計測したのかが不明では比較できません。
「改造・制作スレ part7」の635(2015/05/25)に、不明な回答者による「このゲームは標準速度だとだいたい1秒25フレームなので750だと30秒おきに判定されるという意味になります。」との記述がありました。isInterval 関数についての質問だったので、実際にゲーム内で以下のような単純な戦闘中イベントを作って試してみました。
battleEvent(timer_shake)
event timer_shake {
rif (isInterval(750)){
shake()
}
}
すると、15秒ごとに画面が揺れました。そもそも isInterval という関数は、「戦闘カウントが数値で割り切れたら1が返ります。」という仕組みなので、1秒50カウントだから750÷50=15秒おきに発生する訳です。つまり、「1秒25フレームなので」という根拠は見当違いですし、結論も間違っていました。どうも、この回答者は開発者ではなさそうです。
そうなると、wiki の各所にある 25 fps という記述自体の信憑性が怪しくなってきます。例えば、「wait(数値)」の説明に、「数値フレームだけウェイトします。このゲームは25fpsですので1秒間waitするなら25とします。」とあります。上記の定期的に画面を揺らすイベントに wait を追加して実験してみました。
event timer_shake {
rif (isInterval(750)){
shake()
wait(200)
shake()
}
}
wiki が正しければ、200÷25=8で8秒間止まるはずです。しかし、実際には、揺れ始めてから4秒間止まって、再度揺れました。やはり、戦闘中(戦場画面)は 50 fps です。ついでに、ターン開始時に画面を2回揺らすイベントを作って実験してみました。待ち時間を wait(200) にすると、やはり4秒間止まります。ワールドマップ(戦略画面)でも、同じ 50 fps で動いてるようです。こうなると、wiki の説明自体が間違ってることになります。
どうして、いろいろな所に 25 fps という記述があるのか、理由は不明です。開発者が wiki の説明を書いてる訳ではないので、よく知らない人が掲示板等の誤った情報を参考にして、そのまま wiki に書き込んでしまったのかもしれません。あるいは、もしかすると「内部の座標計算やイベント処理は 50 fps でやってるけど、実際に表示する際は 25 fps で描画してる。」という事かもしれません。こればかりは開発者じゃないと確認しにくいです。(ゲーム画面を動画に撮って1フレームずつ動きを検証すれば判るかも?)とりあえず、他の人の反対意見が無ければ、wiki を訂正しようかと思います。
細やかな検証だね
私は支持するよ
>>711
自分の環境でデフォのバージョンは7.0ダウンロードした日17.8.29で40fpsだったよ
ここらあたりで上下してたから固定されてるっぽい
40fpsというのは外部ソフトでFPS表示と弓スピード100のレンジ500の同じ状況で検証
矢が出た瞬間停止録画開始と同時に停止解除、矢が消えたと同時に録画停止大体12秒ちょい計算上は12.5秒かかるはずだからまぁこんなものでしょう
昔のスクリプトでいじれるデータでのけてあるのが5.6あたりでそちらで試しても同じだったそれより前のバージョンはフリームのやつだったりHDDクラッシュでバイバイしてるからしらない
そっちで本当に10秒だとしたら環境で速度が変わってる可能性もあるしそれよりも前のバージョンだと違ったのかもしれない
後昨日いうかどうか悩んだけど多分自分はもう触れないだろうし最後に一つだけいっておくけども
最近ずっと独り言状態になってるけど前のごたごたで嫌われてるかもしれないから聞いても返ってこないかもしれないよ
>>713
検証実験ありがとうございます。他の人の実験結果は参考になります。おかげで「環境で速度が変わる」可能性を見落としてたことに思い至りました。
私は新参者で、過去にどんなごたごたがあったのかは知りませんが、最近は開発者が全く書き込んでませんね。ヴァーレントゥーガ作品群のファンとして、開発者やオリシナ作者の手助けになればと思って、いろいろ調べてます。
開発者(ななあし様)はゲームの動作速度について何 FPS かを明記してません。はっきりしてるのは「戦闘中の経過時間の表示がフレーム数の 1/10 である」という関係だけです。本家シナリオでの標準戦闘時間は500なので、一回の戦闘は5000フレームで構成されています。
ということは、FPS を知るには実際の戦闘時間を時計で測ればいい訳です。私の実験環境(効果音もBGMも無い、一番軽い状態)ではだいたい1分40秒でした。つまり、経過時間500で100秒だから、5000÷100=50 fps という計算です。しかし、こうやって計測できる FPS は環境や動作状況によって異なります。ゲーム動画を撮ってみようかと、FPS表示する撮影ソフトを試してたら、45 fps ぐらいまで遅くなりました。どうも、50 fps というのは理論上の最高値であって、実際のプレイ環境ではもっと下がるようです。
どうしてそうなるかというと、ヴァーレントゥーガにはフレームスキップ機能が無いからだと思います。パソコンが遅かったり、他に重いソフトが動いてたり、描画に時間がかかったり、ユニット数が多かったり、スキルのエフェクトが派手だったりすると、ゲームの動作速度自体が遅くなります。ゲームの中には重い処理を自動的にスキップ(コマ落ち)して、体感速度を一定に保とうという仕組みのもありますが、ヴァーレントゥーガはそのまま1フレームずつ着実に動かします。
要するに、戦闘中に重い処理があると、全体の動きがスローモーションになって、経過時間もゆっくりと進みます。戦闘時間は同じ 500 でも、終わるのに2分かかったなら、5000÷120=42 fps ということになります。何年も前の古いパソコンで、派手な戦闘をしたなら、25 fps しか出なかった、というのも十分考えられます。つまり、厳密に何フレームだから何秒という固定された関係にはなってません。だいたい1秒間に25〜50フレームぐらい進むけど、ゲーム内容やプレイする環境によって変動します。オリシナを作る際は戦闘経過時間(戦闘カウント、フレーム数)と実時間(秒)が一定しないことを考慮に入れる必要がありそうです。
まさかそうとるとはおもわなかったから本当に最後にいうけどあなたが嫌われてるっていう意味だよ
過疎なのか嫌われてるのかは知らないけど今までほとんど返答なしで答えなければwikiいじるぞっていうのはやめておいたほうがいいってことだよ
答えがないのは誰も答えを知らないからだろ
別に嫌ってないけどな
それどころかよくやると感心してたぞ
そういう風に喧嘩売るのやめなよ
そして答えてないのは語ることを持たないから
とりあえず一人やたら因縁つけてる奴がいるのは分かった
正直、同じレベルの検証ができないからありがとう以上の言葉を持てないんだよ
俺はこうやっていろいろ試して解明してくれてるのは非常に助かってるし嬉しいと思ってる
返答なし=嫌われてるってすごい理論だな
wikiって誰でも編集できることに意味があるんだから正しい情報に書き換えるのは別にいいでしょ
前のごたごたも何のことだか分からないし独り言状態ってぽつぽつ反応やお礼があるんだが
前のゴタゴタがすぐ上のことなら、自分の気に食わない人を同一人物と決めつけて、それに対する自分の意見を総意とする人がいるのはやだな
このスレは質問も検証も基本的に有意なことだと思うし、是非色々試して欲しい
加入ユニットに関して質問です
addUnitを使ってユニット加入イベントを作りたいのですが、領土1・その領土のキャパが1部隊という状態で、スクリプトを使って人材ユニットを陪臣でない状態で部隊に加入させる方法はないでしょうか?
どうしても陪臣でない状態で加入させたいと考えています
>>722
非人材ユニットを領地に追加。これに部隊リーダーだった人材1をメンバーとして追加してさらに人材2を追加。
この部隊のリーダーユニットを削除してやればできるのでは。
>>723
addPower(POWER)
addUnit(MASTER,SPOT)
addUnit(DUMMY,POWER)
addUnit(NAKAMA,DUMMY)
storeLeaderOfPower( POWER , @aaa)
set(idx,0)
while(idx<count(@aaa)){
index(@aaa,idx,@aaa_get)
msg(&idx&の&@aaa_get&)
if(isTalent(@aaa_get)==0){
msg(加入)
addUnit(@aaa_get,MASTER)
}
add(idx,1)
}
changeMaster(MASTER)
こんな感じでやりましたが、加入の後のaddUnitが動かないですね
加入は表示されるので、通ってはいるみたいですが
間違ってる部分あったらごめんなさい
あ、厳密にはうごいてるみたいですが、DUMMYが人材じゃないためにMASTERの下に別のDUMMYが加入してしまうみたいです(キャパ1なのでよく見えてなかった)
また、そのあとにaddUnit(NAKAMA,MASTER)も試しましたが陪臣になりました
DUMMYがclass構造体ならそりゃ別のがaddunitされるよ
addPower(POWER)
addUnit(MASTER,SPOT)
addUnit(DUMMY,POWER)
storeLeaderOfPower( POWER , @aaa)
addUnit(NAKAMA,@aaa)
(以下略)
これでどう
というかそのよくわからないwhileは何ぞ
他のユニットがいるところで弄る想定なの?
>>726
unit DUMMY
{
name = 陪臣ダミー
}
こんな感じですね
classではないです
talentじゃないという意味で人材じゃないと言いました
whileに関しては別の領地を新しく発生させてみても同じだったので、まあこれでいいかな?って感じです
いじるの自体はどこででもOKです。最終的にSPOTが1つであれば問題ありません
連投すいません
addPower(POWER)
addUnit(MASTER,SPOT)
addUnit(DUMMY,POWER)
storeLeaderOfPower( POWER , @aaa)
addUnit(NAKAMA,@aaa)
(以下略)
これも試してみましたが、addUnitの部分で結局別のDUMMYがMASTERの下についちゃいますね
じゃあわからないな
ごめんよ
いえいえ、ありがとうございます
やってるうちに何かみつかったり、他の方の回答で解決するかもなので、もう少しがんばってみます!
>>723 の解釈を間違ってないか
DUMMYにMASTERとNAKAMAを追加してDUMMYを消すのでは
>>732
DUMMYをMASTERに追加してみましたが、マスターなので追加できないみたいです
changeMasterは念のためやってるだけですね
最終手段はNAKAMAを全部タレント属性抜きにしてそもそも陪臣にならないようにするぐらいですが、その他のデメリットがヤバい感じです
やってるうちに不具合っぽいものを見つけたのでご報告
talentでないユニットにマスターをやらせて、そのマスターをそのまま別勢力の人材下に加入させると、何故か陪臣になりました
人材ユニットを追加する部隊リーダー人材がマスターであるときも考慮しないといけなかったのか。
だとすると、人材ユニットを追加する部隊のリーダーがマスターであった場合は、ダミーの人材ユニットを適当な領地に追加してこれにマスターを引き継がせます。
さらに非人材のダミーユニットを人材ユニットを追加する部隊がいる領地に追加します。
このダミーユニットの部隊にマスターとメンバーにする人材ユニットの順で追加します。
この部隊からリーダーユニットを削除したあとで勢力マスターを元の人材に戻します。
マスターを代行させていたダミーの人材ユニットを適当に邪魔にならない領地に飛ばします。
この方法でいけませんかね。
ただし、ダミーのユニットが処理の過程で発生するのでメンバーが最低二つは空きがないとだめですけど。たしか溢れたメンバーは削除されていたはず。
>>735 訂正
>このダミーユニットの部隊にマスターとメンバーにする人材ユニットの順で追加します。
正しくは
>このダミーユニットの部隊にマスターだった人材とメンバーにする人材ユニットの順で追加します。
>>733
その解釈でアタリです。
>>736 の訂正。
レス番は733ではなく732に対してです。連ミスごめん。
>>735
ありがとうございます
早速やってみました
addPower(POWER)
addSpot(DUMMYSPOT,POWER)
addUnit(TALENTDUMMY,DUMMYSPOT)
showSpot(DUMMYSPOT)
changeMaster(TALENTDUMMY)
addUnit(NOTALENTDUMMY,SPOT)
addUnit(MASTER,NOTALENTDUMMY)
addUnit(NAKAMA,NOTALENTDUMMY)
storeUnitOfPower(POWER,@POWER_units)
set(idx,0)
while(idx<count(@POWER_units)){
index(@POWER_units,idx,@POWER_units_get)
if(isTalent(@POWER_units_get)== 0){
//NOTALENTDUMMYのみが該当
eraseUnit(@POWER_units_get)
}
add(idx,1)
}
removeSpot(DUMMYSPOT)
changeMaster(MASTER)
このままだとマスター(マスター)・ナカマ(陪臣)という部隊になります
changeMasterをコメントアウトすると、非人材ダミー・マスター・ナカマという部隊になります
eraseUnitをコメントアウトすると、非人材ダミー・ナカマの部隊とマスターの部隊に分かれました
どうやら非人材部隊に所属した時点で陪臣になっているという問題があるようです
理解が間違ってたらごめんなさい
>>715
これは申し訳ありませんでした。
wikiをいじってはいけないとは知らなかったので、情報が不正確なら訂正した方がいいと思ってました。しかし、私は軽率で間違うことが多いので、wikiに関しては慎重な方にお任せします。
その他の閲覧者へ
こういう掲示板のマナーには疎いもので、私の行動を不快に感じた方にはあやまります。他に問題がありましたら、寛容な方は今後ともご指摘ください。
私の実験は、私が試した範囲内での観測結果に過ぎないので、推測や結論が間違ってるかもしれません。実際のゲーム内の動作とは異なる可能性があるので、あくまで参考レベルに留めてください。
スキルを試す為に何度も戦闘させてて感じたのですが、守備側(COM勢力)が、戦闘開始直後から迎撃してくる時と、初期位置で待ち構えてる時があります。実験条件を同じにする為には、毎回どちらか一方に固定したいので、どういう条件で挙動が変わるのかを調べてみました。
まず第一に、マスターの好戦値(kosen)が高いほど迎撃します。(マスターが存在しない勢力なら、その勢力に設定された好戦値)
マスターの kosen 値を指定しない場合、40回攻め込んで、迎撃してきたのは 21回でした。(5割ぐらい)
マスターの kosen = 100 にした場合、40回攻め込んで、迎撃してきたのは 31回でした。(8割ぐらい)
マスターの kosen = 80 にした場合、40回攻め込んで、迎撃してきたのは 26回でした。(6割ぐらい)
マスターの kosen = 50 にした場合、40回攻め込んで、迎撃してきたのは 16回でした。(4割ぐらい)
マスターの kosen = 30 にした場合、40回攻め込んで、迎撃してきたのは 12回でした。(3割ぐらい)
マスターの kosen = 10 にした場合、40回攻め込んで、迎撃してきたのは 3回でした。(1割ぐらい)
サンプル数が少ないのか乱数分布のせいか、うまく比例しませんが、だいたい kosen 値に依存してます。
kosen 値が 100 でも迎撃しないことがあるのは、btl_counter が関係してるみたいです。kosen = 100 にした上で、btl_counter = 80 だと、50回攻め込んで、迎撃してきたのは 41回でした。試しに btl_counter = 50 に減らすと、50回攻め込んで、迎撃してきたのは 30回でした。更に btl_counter = 20 に減らすと、50回攻め込んで、迎撃してきたのは 11回でした。シード値によって乱数にばらつきがあるのか、他にも要因があるのか、試行回数を増やしても正比例しませんが、迎撃する確率に差があるので、第二の条件は btl_counter と言えます。
それなら、btl_counter が高ければ kosen が低くても迎撃するのかと、kosen = 1, btl_counter = 100 でどうなるか試してみましたが、50回攻め込んで、迎撃してきたのは 3回でした。迎撃しやすいのは、kosen と btl_counter の両方が高い場合のようです。それで、kosen = 100, btl_counter = 100 にしたら常に迎撃するようになりました。
あと、戦力値も比較してるようで、守備側の戦力値が、攻撃側の半分以下だと、好戦値に関係なく迎撃しません。半分より少しでも上回ると、迎撃するようになります。また、守備側の戦力値が極端に低い場合は、戦闘開始直後に逃げ出します。どのくらい少なければ逃げるかも、マスターの好戦値に依存していて、前衛同士なら、kosen = 100 なら 4.3倍、kosen = 70 なら 3.2倍、kosen = 50 なら 2.2倍、kosen = 30 や 10 なら 2倍、ぐらいの戦力差で開幕逃亡するみたいです。好戦値が極端に低い場合でも、戦力差が2倍以下なら逃げませんが、2倍を少しでも上回ると逃げるようになります。ただ、前衛と後衛で微妙に違うし、判定基準はわかりませんでした。
また、攻撃側の戦力値が、守備側に比べて btl_intercept のパーセント未満なら、kosen に関係なく迎撃します。btl_intercept の値が大きいほど、少しでも戦力差があれば迎撃します。btl_intercept の値が小さいほど、少ない戦力で攻めても待機します。例えば、標準では btl_intercept = 50 なので、攻撃側の戦力が半分未満なら、攻撃側は必ず迎撃してきます。これは戦闘開始後に双方の戦力値が変動した場合も、適用されるみたいで、部隊を少しずつ退却させていくと、攻撃側の戦力値が半分を切った時点で、待機してた守備側が迎撃に転じます。
とりあえず、COM に必ず迎撃してきて欲しい場合は、kosen と btl_counter の値を両方とも 100 にして、攻撃側の戦力値を守備側の4倍以下にすればいいです。逆に、COM にその場で待機しといて欲しい場合は、kosen を -1 にして、攻撃側の戦力値を守備側に対して btl_intercept %以上にすればいいです。kosen を下げると戦力差で逃げ出しやすくなりますが、攻撃側の戦力値を守備側の2倍以下にすれば逃げません。戦力値と逃亡の関係は btl_retreat_coe の2番目の値が怪しいのですが、どういう仕組みなのかわかりませんでした。
btl_counter や btl_intercept は全ての戦いに反映されるので、実験目的以外で変更すると、予想外の影響があるかもしれません。オリシナ作者が勢力に個性を出したい場合は、好戦値で調節するといいです。本家シナリオの設定値を見てると、ななあし様が種族や勢力の特徴をよく考えてるなあ、と感心します。
ちゃんと投稿できたか見てたら、内容に書き間違いを発見しました。
(誤) 標準では btl_intercept = 50 なので、攻撃側の戦力が半分未満なら、攻撃側は必ず迎撃してきます。
(正) 標準では btl_intercept = 50 なので、攻撃側の戦力が半分未満なら、守備側は必ず迎撃してきます。
投稿前にもっとよく見直すべきでした。何遍もミスしてすみません。
また740番の訂正です。自分で条件を書いといて結論に含めるのを忘れてました。戦力差4倍は逃亡させない条件で、迎撃してもらうには2倍未満にしないといけないんでした。
(誤) COM に必ず迎撃してきて欲しい場合は、kosen と btl_counter の値を両方とも 100 にして、攻撃側の戦力値を守備側の4倍以下にすればいいです。
(正) COM に必ず迎撃してきて欲しい場合は、kosen と btl_counter の値を両方とも 100 にして、攻撃側の戦力値を守備側の2倍未満にすればいいです。
他にもミスしてるかもしれませんが、気付いたら訂正します。
今まで不明だったパラメータを検証してもらえるの有り難い
うーむ、すごい検証数だ。お疲れ様です
ユニットを出し過ぎて大規模戦闘をし過ぎるとクラッシュする対策はないでしょうか
確か死んだユニットにも何かデータ割り当ててたと思うのですが、それを無効にしたりなど出来ませんか
参考までに聞きたいのですが、ユニット出しすぎって何体くらいでなりましたか?
>>745
自分は本家シナリオや「きのたけ」で召喚しまくっても、ユニット数の制限で出せなくなる事はあっても、クラッシュはしませんでした。それで不思議に思って、召喚しまくる実験をしてみました。
陣営ごとのユニット制限を btl_unitmax = 1000 に増やした上で、敵ユニットに範囲攻撃を使わせて、召喚されたユニットを一気に掃除することで、ユニット数の制限に関わらずに、大量に召喚することができます。(掃除しないと、表示されてるユニット数が制限を越えた時点で、それ以上の召喚ができなくなる。)召喚し続けると Vahren.exe のメモリー消費量が増えて行き、ユニット数が多過ぎるとゲームが落ちました。終了時に OS のエラー通知が無かったので、アプリケーション側で状況を見て自ら正常終了した感じです。
次に実験データを例示し、最後に私の結論を載せます。メモリー消費量はタスクマネージャーの数値ですが、微妙に上下するので厳密ではありません。戦場のオブジェクトやエフェクト、BGM、効果音、顔絵などで、実際のゲームではもっと消費が増えるはずです。スキルやエフェクトによる違いは試してないので、それらがユニット数に影響するかはわかりません。
[ 最新の v7.00 2017-10-12版 ]
敵は1ユニット、自軍は8ユニットで 1000 * 8 = 8000ユニット召喚しました。メモリー消費量は、召喚前は 332,748 KB、召喚終了時は 1,315,692 KB でした。(1315692 - 332748) / 8000 = 122.7 なので1ユニット当たり 123 KB ぐらいです。
敵は1ユニット、自軍は8ユニットで 1400 * 8 = 11200ユニット召喚しました。メモリー消費量は、召喚前は 326,152 KB、召喚終了時は 1,701,876 KB でした。ユニットを召喚するたびに増えるメモリー量は 123 KB で一定してます。
敵は1ユニット、自軍は8ユニットで 1440 * 8 = 11520ユニット召喚しました。メモリー消費量は、召喚前は 326,228 KB、召喚終了時は 1,741,600 KB でした。
敵は1ユニット、自軍は8ユニットで 1450 * 8 = 11600ユニット召喚しようとすると、途中で落ちました。召喚できるユニット数の限界は 11500 ぐらいのようです。
敵ユニットを1体から80に増やしてみました。敵は80ユニット、自軍は8ユニットで 1420 * 8 = 11360ユニット召喚しました。メモリー消費量は、召喚前は 336,484 KB、召喚終了時は 1,732,724 KB でした。
敵は80ユニット、自軍は8ユニットで 1430 * 8 = 11440ユニット召喚しようとすると、途中で落ちました。初期配置ユニットが多いと、召喚できるユニット数が減るようです。
味方ユニットも8体から80に増やしてみました。敵は80ユニット、自軍も80ユニットで 141 * 80 = 11280ユニット召喚しました。メモリー消費量は、召喚前は 345,092 KB、召喚終了時は 1,731,812 KB でした。
敵は80ユニット、自軍も80ユニットで 142 * 80 = 11360ユニット召喚しようとすると、途中で落ちました。陣営や召喚かに関係なく、戦場に登場した累計ユニット数に限界があるようです。
[ v7.00 の古い 2017-08-28版 ]
敵は1ユニット、自軍は8ユニットで 1000 * 8 = 8000ユニット召喚しました。メモリー消費量は、召喚前は 326,920 KB、召喚終了時は 558,408 KB でした。古いバージョンの方が、明らかにメモリー消費量が少ないです。
敵は1ユニット、自軍は8ユニットで 1400 * 8 = 11200ユニット召喚しました。メモリー消費量は、召喚前は 326,832 KB、召喚終了時は 650,632 KB でした。(650632 - 326832) / 11200 = 28.9 なので1ユニット当たり 29 KB ぐらいです。
敵は1ユニット、自軍は8ユニットで 1440 * 8 = 11520ユニット召喚しました。メモリー消費量は、召喚前は 326,912 KB、召喚終了時は 659,420 KB でした。古いバージョンでは、ユニットを召喚するたびに増えるメモリー量は 29 KB で一定してます。
敵は1ユニット、自軍は8ユニットで 1450 * 8 = 11600ユニット召喚しようとすると、途中で落ちました。メモリー消費量が少なくても、同じように落ちるので、メモリー不足はクラッシュの原因じゃないです。
敵ユニットを1体から80に増やしてみました。敵は80ユニット、自軍は8ユニットで 1430 * 8 = 11440ユニット召喚しました。メモリー消費量は、召喚前は 330,204 KB、召喚終了時は 660,548 KB でした。新バージョンだと落ちたのに、古いバージョンだと、最後まで召喚できました。
敵は80ユニット、自軍は8ユニットで 1440 * 8 = 11520ユニット召喚しようとすると、途中で落ちました。最大数は微妙に違いますが、古いバージョンでも、累計ユニット数には限界がありました。
味方ユニットも8体から80に増やしてみました。敵は80ユニット、自軍も80ユニットで 142 * 80 = 11360ユニット召喚しました。メモリー消費量は、召喚前は 331,240 KB、召喚終了時は 661,620 KB でした。やはり、古いバージョンの方が少し多くユニットを出せます。
敵は80ユニット、自軍も80ユニットで 143 * 80 = 11440ユニット召喚しようとすると、途中で落ちました。80 + 80 + 11440 = 11600 なので、累計ユニット数は 11500 ぐらいまでみたいです。
[ 開発版の v6.85v 2017-06-16版 ]
敵は1ユニット、自軍は8ユニットで 1440 * 8 = 11520ユニット召喚しました。メモリー消費量は、召喚前は 329,340 KB、召喚終了時は 661,108 KB でした。
敵は1ユニット、自軍は8ユニットで 1450 * 8 = 11600ユニット召喚しようとすると、途中で落ちました。メモリー消費量や限界は 2017-08-28版と同じようです。
[ 正式版の v6.90 2017-03-27版 ]
敵は80ユニット、自軍も80ユニットで 142 * 80 = 11360ユニット召喚しました。メモリー消費量は、召喚前は 331,492 KB、召喚終了時は 662,436 KB でした。
敵は80ユニット、自軍も80ユニットで 143 * 80 = 11440ユニット召喚しようとすると、途中で落ちました。メモリー消費量や限界は 2017-08-28版と同じようです。
実験の結果、最新版(2017-10-12) の問題点を発見しました。ユニット・データのメモリー消費量が古いバージョンに比べて4倍もあります。古いバージョンは1ユニットごとに 29 KB ぐらいだけど、最新版では1ユニットごとに 123 KB ぐらいです。したがって、ユニットを大量に出したいなら、最新版(2017-10-12) を使わない方がいいです。64-bit OS ならともかく、メモリー空間が狭い上に共有されてる 32-bit OS では、ユニット数の限界が来る前に、メモリー不足で動かなくなります。古いバージョンでも1ユニットに 29 KB もメモリーを使ってるのは謎です。数値データだけならもっと少ない筈なので、ユニットごとに画像データを保持してるのか、あるいは不要になったスプライトを解放してないのかもしれません。context や class の設定を変えたり、画像の大きさを変えたりしてみましたが、特に違いはありませんでした。
どうも、「死んだユニットにも何かデータ割り当ててる」のではなく、死んでもデータが丸ごと残ってるような気がします。その証拠に、スクリプトでは死亡ユニットのデータも取得できますし、死亡ユニットにスキルを使わせることもできるみたいですし、死体が消えずに残る不具合(沈んだユニット画像の上端が残る)もあります。スクリプトでユニットを取り除いた場合も、単に死亡扱いになるだけで、データは残ってました。ユニット数の限界に関しては、バグでは無いので、開発者に対応してもらうのは難しいように思います。
とりあえず、オリシナ作者ができる大規模戦闘時のクラッシュ対策としては、戦場に登場する累計ユニット数を 11500 ぐらいまでにするしかありません。守備側の初期配置数や援軍、攻撃側の出撃数や増援、それに双方が召喚する、全てのユニット数の合計です。無限召喚スキル(遠隔攻撃から召喚への連鎖)は、召喚数自体は設定できませんが、スキル使用間隔と連射数から、戦闘時間内に出せる数が決まります。予め、どれだけのユニットが戦場に出てくるかを計算して、その合計が限界以内に収まるようにすれば、クラッシュを避けれるでしょう。
これはかなり参考になるデータ
ありがたいです
メモリ的な限界は予想できてなかったのでうれしい
いや、メモリ的な限界が1番考えられただろ
その限界がどこまでかいまいちわからんかったのが問題だったわけで
それにしてもありがてえ検証だ
setStatus(unit,move,hoge)が上手く動きません
talent=offのユニットだとうまく動かないでしょうか?それともほかの原因がありますか?
少し気になって実験したのですが
unit notlnt
{
talent = off
name = ノータレ
}
setv(@aaa,notlnt)
msg(¬lnt&)→notlntと出力される
setv(@wanko,notlnt)
//この勢力にnotlntが存在するとする
storeUnitOfPower(pow,@bbb)
set(idx,0)
while(idx<count(@bbb)){
index(@bbb,idx,@bbb_get)
msg(&@bbb_get&)→notlntに当たった場合ノータレと出力される
if(@bbb_get == @wanko){
msg(同じものだよ!)→notlntが存在するはずなのに@wankoに合致するものがない
}
add(idx,1)
}
どういった問題を解決すればいいでしょうか・・・
連投すいません
目的としては、データベースとして使用しているtalent=onのユニットのステータスをtalent=offのユニットに移行するという目的です
データベースのmprecの数値でunitの種類を特定し、addUnitして追加したユニットにその他ステータスを落とし込むというのをやりたいと思っています
さらにすいません
>>754 の
誤;msg(¬lnt&)→notlntと出力される
正:msg(&@aaa&)→notlntと出力される
でした
unit構造体で定義された人材じゃないユニットを後からスクリプトでどうこうしようとするととんでもなく厄介だった記憶がある
dead_eventに疑似死亡イベント(レベルリセットして隠し領地に移動とか)を仕込んだ人材とかにした方が楽じゃないだろうか
>>757
talentなユニットだと困ることがあるのであえて外しています
具体的にはaddUnitした際に陪臣になってしまうことがやりたいシステムに致命的な邪魔になってしまうので
先日色々やってみましたが無理だったので、talentを外す方向で対応しました
とりあえずstoreUnitOfPowerとかで取得したユニットとして使えばマトモに使えて、setvで直接文字列突っ込んだのは使えないって感じになってますね
で、ユニットを外して入れ直す際のやり取りが
1・talent=onのダミーユニットを隠しspotに入れる
2・talent=offのユニット(以下メインユニット)のステータスを取得してダミーユニットに性能をコピー
3・メインユニットをeraseUnitで全部消す
4・メインユニットを再び発生させる、この際ダミーユニットを参照
5・ダミーのステータスを取得してメインユニットに反映
で、setLevelがこれまたダミーユニットにうまいこと反映しないみたいで、これはaddLevelを1づつするしかないのかな
<あぼーん>
>754
unit 構造体の名前(notlnt)と、ユニットの名前(ノータレ)の使い分けが難しいです。
wiki によると、setv は文字変数に文字列を代入します。
>> setv(@wanko,notlnt)
この行では @wanko に構造体の名前として「notlnt」を代入してます。
その一方で、storeUnitOfPower は「ユニットの識別子」を文字変数に代入します。そして、unit/classの識別子における文字変数要素とは name で指定した文字列のようです。
>> index(@bbb,idx,@bbb_get)
この行では @bbb_get にユニット名として「ノータレ」を代入してます。
>> if(@bbb_get == @wanko){
「notlnt」と「ノータレ」は異なるので、この比較で合致しない訳です。setv(@wanko,ノータレ) として、ユニット名で探したらどうでしょうか。
>>760
なるほど、全角文字をスクリプトでも使えるのですね
ちょっとそれ念頭においてやってみます
色々目からウロコでした、ありがとうございます〜
ユニットが遠隔攻撃しながら前進&後退するのが嫌で、スキルの減速率を大きくしたり(slow_per = 1 で99%減速するはず)、地形の影響を大きくした(consti = 1 で移動力が20%になるはず)のですが、じわじわ動くようにはなりませんでした。
それで不思議に思って調べたのですが、移動速度には最低値があるみたいです。2種類のユニットの移動力をそれぞれ 1 と 50 にしても同じ速さで動きますが、1 と 51 は微妙に違います。移動速度の最低は 50 と思われます。それなら最高値もあるのかと、移動力を上げて試してみました。移動力 1250 と 2000 は同じ速さで動きますが、1240 と 2000 は微妙に違いました。移動速度の最高は 1250 ぐらいです。
まとめると、地形やスキルの影響で変化した後の移動速度は0(完全に停止)か50〜1250の間になるようです。動きが速すぎると当たり判定が難しそうですが、遅すぎるのも駄目とは意外でした。
どなたかお知恵をお借りしたいのですが、無敵突進スキルを作る方法ってありませんか?
光の目の「幽鬼の浸透」を流用できればよかったのですが、私の勘違いでなければ、
chargeスキルだとslideしても無敵になってくれない(進路上の攻撃にボコボコにされる)ように見えます
nextでmissileスキルに渡してslideさせたら今度は動いてくれませんし、バフをかけることもできませんし…
charge使いたいのは助走の有無を判定したいからなので、missileでもそちらの代替ができるなら構いません
どなたか解決法をご存知ありませんでしょうか
>> 763
chargeスキルで実現する方法をいろいろ考えてみました。
A)高速移動で避ける。
光の目の「幽鬼の浸透」のスクリプトを見ても、どうやって無敵にしてるのか判りませんでした。とりあえず、スライド速度を、敵の発射する魔法・矢・弾よりも速くすれば、スライド中に攻撃されても避けれそうです。ただし、長距離を高速でスライドする必要があるので、思ってる動きと違うかもしれません。
B)バリアーを張る。
本家シナリオのリリスが敵の攻撃を相殺しながらスライド移動します。敵の攻撃に属性を付ければ、遠隔攻撃・魔法攻撃だけなら相殺で無効にできるでしょう。しかし、接近攻撃は防げなさそうです。
C)分身を送り出す。
敵陣をゆっくり往復したいなら、本体はスライドさせずに、攻撃モーションだけ動かす手もあります。「image = @@」にすれば自分のユニット画像になるので、resize_s と resize_s_start で途中から速度をマイナスにして、発射した画像が戻ってくるようにできます。その間、本体は攻撃位置で停止させておけば、分身がスライドしてるように見えそうです。分身は矢・弾と同じ扱いなので、敵に攻撃されません。ただし、本体は普通に攻撃を受けます。
D)回復しまくる。
敵から攻撃されることを前提にして、受けたダメージを直ぐに回復すれば、無敵と同じになります。「attack_us = 7」で自分を命中対象に変えてから healスキルに繋ぐと、敵を攻撃しながら自分を回復できます。ただし、一撃で死ぬような攻撃(即死・大ダメージ)には対処できません。また、回復量の数値がユニットの頭上に湧き上がるのは奇妙に見えるかもしれません。
どの案にも問題がありますが、参考になれば幸いです。
>>764
アドバイスありがとうございます。
そうですね、自分も実現可能なのはその4つだと思っています。
しかし、Aだと一瞬で多数のモブを斬り殺すサムラーイみたいな技になっちゃいますし、
Bは自分もやってみましたが、やはり接近攻撃は相殺できませんでした。
Dも思いつきはしましたが…突進よりむしろ全回復が便利な技になっちゃいますからねぇ。
Cなら工夫次第で、例えば自キャラを画面外にスライドさせて、
しばらくして戻ってこさせたら実質無敵に…等と考えましたが、
やはりヴァーレンの仕様を考えると「往復」にどうしてもなってしまうので、
無敵突進(一定距離まで何があっても突き進む)という自分のイメージとはちょっと合いませんでした。
色々すいません。
>>765
近接攻撃全部を近接で発動してダメージ判定をMissileにしたらどうですかね
近接後に一瞬だけ判定する小さいMissile攻撃を判定する感じです
ごく特殊なパターン以外でほかのユニットにあたることはないかと
シナリオを作っていて時折Vahren.exeを立ち上げてもエラーメッセージすら吐かないで消える事があるんだけど何なのかな?
datファイル開きながら起動すると落ちるよ
exe起動してからなら開いても大丈夫だけど
>>768
それはエディタ次第
terapadだとdat開きながらでも起動できるよ
メモ帳最強
プレイヤー勢力以外がみんな同盟結んでせめてくるんですがどうすれば解消されますか?
幼稚な質問ですいません。
diplo系を弄くろうとしたんですがコンテンツの解説にもなくて困っています。
hostil設定はしていません。
>>771
シナリオ製作講座に「外交について」という、そのものずばりの解説ページがあります。
プレイヤーが最強国になると、残りの敵が同盟を結びやすくなるのですが、その判定を diplo_most_power で調節することができます。最強国じゃないのに仲間外れにされるなら、相性の違いの影響かもしれません。敵同士の相性を悪くするとか、敵マスターの野望を高くして、お互いに争うように仕向ければいいです。
ありがとうございます。
できました。
RPGツクールなどのように
音楽用のOGGやMIDIをあらかじめ決めたループ地点からループするようにしたいのですが、
どなたか方法や改造の仕方をご存知でしたら教えてください。
原曲のファイルとは別にもう一つ、ループ再生用のファイル作っといて、
通常の再生が終わったらそのファイルに繋げるとかどうだろう
再生終了→次ファイルの再生開始がうまいこと繋がるように編集して、2週目以降はループ再生、って感じで
ウィンドウ枠の角を丸く表示する方法を見つけました。
RPGツクールVXのウィンドウスキン素材をそのまま使うと、左上のスキン画像がウインドウ全体に引き伸ばされるので、せっかく右上の枠画像を丸っこくしても、背景が四角に表示されて台無しです。(ツクールでは周囲の 2 dot には表示しないけど、ヴァーレントゥーガは全面に表示する為)
解決策は単純で、左上のスキン画像の四隅を枠の丸みに合わせて透明にするだけです。ウィンドウ枠の丸い角の透明部分は、背景画像でも透明になるので、綺麗に表示されます。(スキン画像は拡大されるので、透明部分も大きくなることに注意)
ほんの少しの修正で見栄えが良くなるので、ツクール仕様のウィンドウスキンを導入してる方は、ぜひ試してみてください。
>>775
灯方式で初回しか流す気がないイントロ部と、
ループさせたい主演奏部を別ファイルに分割する方が容量は軽くなりそうだな…
そういえばVTになってスキルやユニットで大きな画像を使えるようになったけど、スポットや旗だと大きな画像は使えないんだよね。
色々と画像に情報を詰め込もうとすると32×32だと足りない。
そういう意味じゃ旗の大きさ変えたり同じ勢力でも違う旗にできる方法があればいいんだけどねぇ
>>778
旗は仕様が決まってますが、スポット(領地)の画像は大きさを指定できます。
wiki の「シナリオ製作講座」の「spot構造体(領地の設定)」ページを参考にしてください。画像サイズを指定してやればいいだけです。
更にスクリプトで後から領地画像を変更することもできます。「関数(イベントの設定2)」ページの changeSpotImage です。
内政によって街が発展したり、戦乱で荒廃したりするのを、画像で表現すると面白そうです。
質問です
指定勢力の指定一般ユニットを別一般ユニットに変更することはできますか?
レベルによるクラスチェンジは無しで内政コマンドによって上位ユニットが開放されると自動で上位ユニットにクラスチェンジ……
と言うことがしたいのですが、制作講座見てもそれっぽいのがないので……
そういうのが有るなら俺も使いたいな
少なくともwikiにも無いしスクリプトで見た覚えも無いから多分無い
内政コマンドのイベント内でwhile使って全員changeclass処理するしかないと思う
changeClassにしても特定の勢力の特定の一般ユニットを変数に代入できるのかって問題が……
特定の一般ユニットってのがどういう範囲なのか分からないから何とも言えない
特定のクラスならstoreclassofunitで選り分ければいいし、領地ならstoreunitofspotでいい
特定のイベントで加入したユニットとかなると面倒くさいが、加入する時に識別用のスキルでも追加しておけばstoreskillofunitで判別できる
while,storeClassOfUnit,changeClassを使えばできる
勢力の標準雇用ユニットも合わせて変えるならerasePowerMerceとaddPowerMerce2でできる
それとクラスチェンジ前後でステータスが変わるならレベルは振り直した方が良いかもしれない
event classchange
{
storePowerOfUnit(@PowerAUnit, PowerA)
set(idx, 0)
while(idx < countVar(@PowerAUnit)){
index(@PowerAUnit, idx, @idx_unit)
storeClassOfUnit(@idx_unit, @idx_unit_class)
if (@idx_unit_class == classA){
changeClass(@idx_unit, classB)
pushLevel(@idx_unit, idx_unit_lv)
setLevel(@idx_unit, 1)
sub(idx_unit_lv, 1)
addLevel(@idx_unit, idx_unit_lv)
}
add(idx,1)
}
}
たぶんコレでいける
勢力Aの全ユニットのクラスを調べて、クラスAだった場合クラスBにクラスチェンジさせる
レベルを振り直さないならpushLevel以降はいらない
なにこれ凄い
レオーム家のソルジャーをボウマンにすると仮定するならば
まずレオーム家のソルジャー数を数え@PowerAUnitに代入、
レオーム家全ユニットに対してソルジャーかどうか確認しソルジャーならボウマンにクラスチェンジしidxに1加算。idxが@PowerAUnitを越えたら終了
って認識であってますかね……?組み合わせ次第でこんなことも出来るなんて目から鱗です!もっとスクリプト学ばないと……!
(完成するかはともかく)作成中のオリシナにこのスクリプトを改変(する部分が無さそうですが……)使用させて頂いてもよろしいでしょうか?
whileループは基礎中の基礎だからこのくらいは改変して使っても何も問題ないよ
シナリオ制作がんばれー
使用する関数が間違っていたので訂正
× storePowerOfUnit
◯ storeUnitOfPower
名前を間違ってしまった
もうだめだー
event ほにゃらら
{
storeUnitOfSpot(spot1,@s1haitiunit)
//spot1に配置されたユニットの種類を調べる
pushCon(spot1,@s1haitiunit,heisisuu)
//spot1に配置されたユニットの数を調べる(直接配置ユニット数のみを調べる関数は無いらしい?)
if (heisisuu >= 100)
//spot1に配置されたユニット数が100以上ならイベント発動
{
イベント処理
}
}
spot1に100ユニット以上が配置されていてもイベントが発動してくれません
毎ターン読み込まれ、毎ターン100ユニット以上つめこんでいるのでスクリプト自体に問題があるようなのですがどこが問題なのでしょうか?
spot1に2種類以上のユニットが配置されてませんか?
一部の関数以外は、複数の要素が入った文字変数は先頭を参照するので、例えばAが10体、Bが100体いて@s1haitiunitの先頭がAなら反応しないはずです
pushCon使ったこと無いけど
あ、あとユニットの種類に関係なく100体以上で発生ならcountvar(今はcountだっけ)でもいけると思います
ああ、ああ!引数の領地が持つ「全てのユニットの【識別子】」を〜と書いてあったから勘違いしてました!
storeUnitOfSpot(spot1,@s1haitiunit)
if (count(@s1haitiunit) >= 100)
で行けました!ありがとうございます!
addPowerMerce2( 勢力 , ユニット , ユニット , ‥)勢力に標準雇用ユニットを追加します。
addPowerMerce( 勢力 , ユニット , ユニット , ‥)こちらはマスター関連のデフォルト雇用情報がリセットされるので非推奨となりました。
とのことですがmerce2を使用すると本来雇用できない様に設定したマスターと同クラスユニットが、追加されるよう設定していないにも関わらず勢力の標準雇用ユニットに追加されます
反面merceを使用した場合その現象は起きず本来追加したいユニットだけが追加され、デフォルト雇用情報は別にリセットされません
これはwikiの情報が古い、或いは間違っているだけで本来はmerceの方を使用すれば良いんでしょうかね?
ほぼ愚痴
addLevelでフリーズする。AI勢力ターン開始時にフリーズするのでその勢力開始時に発動する内政スクリプト削除を総当りで試すと何度目かのaddLevelでフリーズすることを確認
AI用内政値をブーストして1ターン目にレベル上げると正常作動。正規挙動の20ターン程度で発動するaddLevelでのみフリーズする。なんで?
そのターンで上限超えてたりするんでない?
ごめん上限って何の?
ユニットレベルは上限に達しない。AI用内政値は数値変数使ってるけど20ターン時点でせいぜい内政値1000程度。挙動確認に1ターン目に50000打ち込んだ場合問題なし
後何故かaddBaseLevelでレベルを10以上に底上げしてもフリーズする。クラスチェンジ自体には問題ないのは確認済み
スクリプトでクラスチェンジするとフリーズ?って言うのも意味がわからんし数値変数いじれる回数に上限がある?もうやだなにこれいみわかんない
ああ、ユニットレベル上限のつもりで言ったよ
それで引っかかった覚えはうっすらとあったんだけど、それじゃないならわからないなぁ
それなりに使う事はあるけどこっちは引っかかった事ないねぇ
ホント申し訳ない。特定イベント制御用ユニットのクラスチェンジがおかしくて止まってるだけだった笑えよもうなんでクラスチェンジ設定してんだよいらんだろこんちくしょう
そら1ターン目から追加されるユニットじゃないんだから1ターン目にレベルアップコマンド打ってもバグらないはずだよ死にたいふええ
他でやれよと思ったけど意外と愚痴スレとか無いんだな
戦闘中イベントの発生についての質問です
scenario s1
{
fight = fight_ev
}
event fight_ev
{
if(inBattle(unitA,unitB) == 1 && isPlayer(unitA) == 0){
event(ev1)
}
}
event ev1
{
msg(テスト1)
if(isAnyDead(unitA) == 1){
}
}
event ev2
{
msg(テスト2)
}
こんな感じで作り、戦闘前に(テスト1)のメッセージが出た後、戦闘中にunitAを倒しても(テスト2)のメッセージが出ませんでした
(テスト2)を出すための条件のif(isAnyDead(unitA) == 1)をif(inBattle(unitA,unitB) == 1 && isPlayer(unitA) == 0)に変えたら(テスト2)のメッセージが戦闘前に出ました
他の条件でも試してみましたが、戦闘開始前に条件を満たせたら(テスト2)のメッセージが出て、
戦闘中に条件を満たす形では(テスト2)のメッセージが出ないようでした
wikiでは戦闘中にイベントを発生させるにはbattleEventを使うと書かれていましたが、
battleEventでイベントを指定すると条件を満たせていてもイベントを読み込めませんでした
間違っている部分があったら教えてください
自己解決しました
スレ汚し申し訳ないです
ヴァーレンでリアルな兵站システムって作れる?
自分は分裂した場所を独立させて再併合できるようにするくらいしか思いつかない……
どこまでリアルを追求するか、どういう兵站システムを作りたいのかよくわからないけど、遠くの領土ほど兵站の維持が難しく軍隊が多く配置できないって言うなら
ゾーン制使って移動制限、isnext使って本土から離れる土地程setcapaで配置部隊数下げる
ついでにある程度遠い領地にいつユニット数に応じて追加支出す
setcapaでの変更時、配置限界よりユニットが多く配置されてたらマイナス効果部隊スキル付与…とか?
質問です
敵の弓兵にこちらのヒーラーを狙わせるAIを作っているのですがうまくいきません
event yumihei_ai
{
rif(isInterval(100) == 1){
if(isDead(healer) == 0 && getDistance(healer,yumihei) <= 670 && isSameArmy(healer,yumihei) == 0){
routine(healer_aim)
} else if(inBattle(eventyou) == 0){
routine(aim_lp)
}
}
}
event healer_aim
{
msg(敵の弓兵が味方のヒーラーを狙います)
aimTroop(yumihei,healer)
}
event aim_lp
{
msg(弓兵の標的位置をリセットします)
aimTroop(yumihei,-1,-1)
}
こんな感じのスクリプトを作ってみました
これだとちゃんとこちらのヒーラーを狙って攻撃してくれて、味方のヒーラーがいなくなったら通常通りの動きをしてくれるようになりました
しかし、こっちの軍に敵と同じクラスの弓兵がいた場合、敵にもこちらと同じクラスのヒーラーがいた場合に処理がおかしくなってしまいます
味方の弓兵をyumiheiA、敵の弓兵をyumiheiB、味方のヒーラーをhealerA、敵のヒーラーをhealerBと分けてやったところ正常動作したので、イベントの処理で敵と味方で同じ一般クラスが居てもそれぞれ区別できる方法があれば教えてください
イベント戦闘なら
evhealer:healer
{
}
みたいな同能力別構造体のユニット配置すれば解決しないかな?
storeRectUnit&storeBaseClassOfUnitで選別してくとかstoreAliveUnitとかでクラスそのものでなくユニットを対象にするようにすればいけるかもしれないけど
戦闘中のスクリプトって人材にしか効かないのがあったりするから保証はできない
むしろクラス名直接ぶち込んで動いたと聞いてびっくりしたくらいだ
>>807
実は通常戦闘なんですよね……
今のところは、他の勢力とクラスが被らないラスボス勢力に限定して使うという事にしました
>>808
「敵」を一発で識別できる何かがあれば楽かな〜と思いますね
ちなみですが>>806 でスクリプトでは人材ユニットは対象外のようでした
余談ですが、どうにかして敵と味方の区別をつける方法がないか試行錯誤してた時発見したものがあります
味方のヒーラーと敵のヒーラー、味方の弓兵と敵の弓兵の構造体の名前が違えば正常に動作するなら、
味方のヒーラーと弓兵の構造体名を変えてしまえばいいと思い、
>>786 のスクリプトを使わせていただいて味方のヒーラーと弓兵の構造体の名前自体を変えてみました
これで動作するだろうと思ったら、この場合でも正常に動作しませんでした
あれこれ試した結果、どうやら変更前の構造体で判別してるそうです
例えば
ソルジャーをボウマンに変え、その元ソルジャーのボウマンでボウマン用のイベントを起こそうとしても動作せず、
ボウマンをソルジャーに変え、元ボウマンのソルジャーでボウマン用のイベントを起こそうとしたら動作した、と言った感じです
通常戦闘でのみの検証だったため、普通のイベントではどうなるか分かりませんが。
といった報告でした
>>804 ,805
ナチガリアさんの最新作が本国から兵を進軍させる感じになってたはず
ほかに、ふつうのRTSみたいに戦闘シーンで演出する手もあるんちゃうかな
天候ユニットが敵味方問わず移動Debuff、工兵ユニットが道路召喚して移動Buffとか
「リアルな兵站」という言葉からは仕様の定まらなさを感じる
まずは具体的なルールを列挙するところから始めては?
プレイヤー勢力では上手く雇用できるのに、NPC勢力がまったくユニットを雇用しないのって何か原因があるものなんでしょうか…
NPCの雇用には大きく分けて二つがあります。
①リーダーユニットの部下を雇用する
②勢力に新たなリーダーユニットを雇用する
①は人材や複数のクラスを雇用可能な一般ユニットでも行われますが、「同一クラスを雇用する」がONになっていると同じ基底クラスしか雇用しません。
これはNPCの上位雇用をONにした場合、雇用クラスの1段階目の金額で2段階目などのクラスが雇用されます。
NPCに多種多様なクラスを雇用させたい場合は同一クラス雇用をOFFにして、かつ複数のクラスが雇用可能な状態でなければなりません。
②はpower構造体に書かれているmerceから雇用率に合わせてランダムでリーダーを雇用します。
なのでプレイヤーのように「ユニットから雇用」ではそもそもないと思われます。
なのでそのクラスを雇える人材もユニットもいないのにpower構造体に書かれているユニットが雇用されていたりもします。
>>811 さんの状態ではおそらく②が行えていない状態ではないかと思いますのでpower構造体を見直してみてください。
staffにクラスが記載してあっても種族が抜けていることやmerceの記入が間違っていることなどが考えられます。
あまりに直らない場合は小物入れに該当するスクリプトをアップロードすれば間違いを見つけてもらえるかもしれませんよ。
ありがとうございます!
merceの記入が間違っていたようです。
そのままコピペして勢力を量産してしまっていたので全勢力で雇用していなかったようです
<あぼーん>
特定領地から特定クラスのユニットだけを取り出す方法ってありませんか?
どうしてもわからない……
こんな感じで行けませんかね
スポットで選ぶ→1ユニットずつクラス判定して文字変数に格納
storeUnitOfSpot(特定領地, @unit_spot)
pushv(@unit_spot, sum_unit_spot)
set(i, 0)
while (i < sum_unit_spot)
{
index(@unit_spot, i, @unit)
storeClassOfUnit(@unit, @class) or storeBaseClassOfUnit
if (equal(@class, 特定クラス))
{
addv(@class, @class_spot)
}
}
(あっ i足すの忘れてる...)
サンクス。
試してみる。
パース・クインカンシャル図法を使ったら世界一周を無理なく表現できることに気づいた。
もっと早く気づけていれば……
プレイヤーとは別の部隊を作り、プレイヤーが参戦した時にaddtroopで援軍として参戦させるイベントを作っているのですが、addtroopした一般兵を死亡した時に消滅するようにするのってclassにdead_event仕込んでイベントで消す以外に方法ありませんか
isdead()もgetlife()も一般兵だと使えない上、modなのであまりクラスデータを書き換えられないのです
>>820
召喚ユニットとして援軍の一般兵を出せばいいんじゃないでしょうか。
1)ユニーククラスの隊長ユニットを戦場に追加する。
2)その隊長ユニットが、部下の一般兵を援軍として呼び出す。
3)プレイヤーが死ぬ(逃げる)と、スクリプトで隊長ユニットを消去する。
4)隊長ユニットが召喚していた援軍部隊も一緒に消滅する。
東西ともに1位2位は決まった感あるな
>>821
すみません、意図が正しく伝わっていなかったようです
死んだとき消滅というのは「プレイヤーの死亡時に戦闘シーンから」ではなく「一般ユニットの死亡時に世界地図から」です
普通に出撃した一般兵は死亡すると消滅しますが、addtroopした兵は一般でも人材と同じく死亡時に世界地図から消滅しませんよね(まずここから間違ってたらすみません)
これを通常の兵と同じように死んだら世界地図からも居なくなるようにしたいということです
人材プレイ時に自由にできる自分の部隊をもう一つ作りたいって事
ミスった
人材プレイ時に自由にできる自分の部隊をもう一つ作りたいって事なら普通にやったんじゃ無理だと思う
部隊全員に個別の構造体engun1,engun2……みたいに割り振って名目上人材扱いにして、ソルジャーとして雇用したならソルジャーにクラスチェンジしつつ存在フラグオン……みたいな?
実際やったこと無いスクリプトだからうまくいくか走らないし保証はできない
<あぼーん>
俺もやろうとしたことだが、例えば「大国同士の決戦」みたいなイベントを作るとする
すると大国同士のユニットを関数で拾って戦闘マップにtroopで出現させる事になる
だが、その戦闘イベントでtroopしたユニットはその戦闘中死んでも戦後に普通に存命である
これと似た問題だと思う.良く分からんがaddtroopしたユニットはsleepとか受け付けてくれないし
>>821 はcountUnitで数えて後で疑似的に消すとかしか思いつかない
>>824 そういうことです
やっぱりかなり無理がありそうですね
ひとまず諦めて別の方法を探ります
ありがとうございました
夏休みの思い出にオリジナルシナリオ作りたいんで一通り必要なツール教えてくれませんか?
今のうちに予習しておきたいです
大体はヴァーレン本体に同梱されてるよ
もちろんふりーむとかじゃなく大物入れのやつね
エディタとかは好きなの使えばいいし
先にMODとか作ってみると良いかも
大物入れですか、フリームからダウンしてたので改めて確認してみます
MODから。か
途中行き詰ったらそうしてみます
絶対行き詰まる(確信)
嫌味なモブキャラみたいな台詞でモチベ落そうとするのやめよう
何事もまずは実際に当たってからだ
というか初めてなら今からやり始めないと始業式には間に合わないんじゃないかなあ…
素材全部フリーで揃えるにしてもスクリプト打つだけで結構時間かかるぞ
スクリプト打つだけなら慣れればどんどんペース上がる
問題は大量に打った後にエラー起きて何が原因かわからず頭抱えることだ
自勢力の領地を青色
他勢力の領地を緑色ってカーソルを合わせると光ってますが、どこで変えれますか?
中立勢力みたいにカーソル合わせても緑色、青色にも表示させたくないです
よく分からなくて。
そういうUI表示とかエフェクトみたいなのはcontext構造体で指定する
circle_alpha_perで透明度変えられるはずだから0にすれば消えると思う
聞くだけじゃなくてそれをやってるシナリオとやってないシナリオのスクリプト比べて調べたりしてみてね
どこのシナリオもやってないことは多分できないことだし
大物入れから本家ヴァーレンダウンロードしてきました。Javaの導入も普通にできた
PicEncoder.jar 改変を防ぐためにファイルを暗号化
mapMaker マップを作るエディタ、操作大丈夫そう
imageView imagedata.datが見つからないって出たので試しに名前だけ同じファイル作ってみたけど意味不明、名前からしてイメージビューアなのかな?これは必要ないかも
imageMaker ふええ何これなんかヴァーレンでよく見かけるエフェクトがたくさん並んでるよこれはとっても重要そう、画像データはimage.datに入ってるみたいだねこのエフェクト流用したいな使い方わかんないけどこれは重要そう
CharaChipMaker ユニットのキャラチップでも作るものかな?説明書にはツクール規格と書いてあるし太古の遺産の企画はどうでもいいかな、よくわかんないけどこれは重要度低そう
というとこまで進展しました。
(進展と言えるのか
そしたらソースコード嫁話はそれからだ
本家のコードは辞めといたほうがいいが
>>839
進捗報告はtwitterでやれ
わからん所が出てきたらここに書き込め
質問です。初めてキャラMODを作ろうとしていますがドット改変したキャラチップが黒くなって表示されません
何かしないといけない手順があるのでしょうか
解決しました。質問です。割合強化のリーダースキルにmp回復直接アップを混ぜるにはどうすればいいでしょうか
twitterは敵が多くて目立てません
カギだとアドバイスを得られないので・・ここで聞きます
direct=onとoffをまぜてるのは見たことないから多分2つに分けてスキル作るしかない
分けたほうが視覚的にもアイコンの違いでわかりやすいから、特に理由が無いならくっつける必要もない
回答ありがとうございます。なんとか別にして考えて見ます
あとまた質問です。きのたけの移動タイプ変更のLS(ガルボ)を見てはるすべ2のLSにadd = flyを入れましたが部隊員の移動タイプが飛行になりません。なぜでしょう
作品ごとに移動タイプのコードが共通とは限らない
ハルベリ2で飛行LSを作りたいなら、原作の時点で唯一の飛行LS持ちのラーウガルからコピーしたほうがいいぞ
状態異常以外は大体スクリプトで設定してあるものだからハルベリにmovetype flyの記述が無ければ無理
>>847 の言う通りコピペするか自分でmovetype flyを書く
解決しました。回答ありがとうございました。なんとか目処が立ちました
イベントのネタが思いつきません
というかタイトルが足りません
466(現シロクロ)みたいに後から変えてもいいんやで?
ハルベリ初期勢力多すぎるんですよね
数えたら23もありますよ
10こまでは考えたのに残り13で半分もいってないっていう…
勢力数の多寡といっても、ワールドマップの広さとか、初期領地の広さとか
国家間の関係とかも個々それぞれだし、あまり他所のシナリオばかり気にし過ぎないでも良いと思うで
タイトルだって、有名所でもナチガリアみたいに複雑に見えてかなり単純なのもあるしね
手の届く範囲で好きにやればええやわ
ていうか数日ちょっとで20を超える勢力を考え尽くすのはちょっと無理があると思う
ハルベリだって1の更新終了後に2が出るまで2年以上の間があるしね(実制作期間は知らんけど)
人魔大戦みたく、ワールドマップを2〜3個に分けてそれぞれの地域ごとに個別に完成させていって、
最後に擦り合わせて一つの大陸シナリオにするのもいいかもね
なんにせよ、一度にあれもこれも全部やろうとするとモチベが死ぬから、無理のない範囲から考えていくといいと思う
きのたけみたいにモチーフにできる元ネタあると楽なんだけどね
それこそ祖国と銃とやGreat Europe Warは現実が元ネタで勢力作ってるし
とりあえず薄く多く作るか厚く少なく作るかの方向性を決めれば良いかと
厚く多く作る欲張りセットもあるけど最初からこれは厳しい気が
気長に薄く多く作りたいかなぁ
製作者の方は技術だけでなくモチベもすごいんだなあ
頭の中の声に聞けばいいんですよ
Charがどこのデータか教えてくれますよ
ハルベリの人材を光の目に登場させてみようとしたのですがユニットのアイコンを追加する方法が分かりません
試しにハルベリ側のimageファイルを光の目のchipファイルに入れてみましたが容量が大きいので削除するという表示が出てきました
どなたかご存知の方ご教授ください
859です
自己解決しました
質問です。
特定人材のレベルを条件にイベントを発生させたいと思っているのですが、
人材ユニットのレベルを返す関数って無いのでしょうか?
調べても見つかりませんでした。
ttps://www28.atwiki.jp/vahren_ency/sp/pages/614.html
wikiをまず嫁
pushLevelダゾ
関数ってついてるページを調べまくってたんですが、なんでこのページに辿り着かなかったんだろう……
たった十分で答えてくださりありがとうございました。
できるだけもっと調べて質問するようにします。
人材ユニットのmemberに加えても初期陪臣にならない一部人材ユニットがいるのは何故なんでしょう?
特にloyalも付いてないのに…色々弄ってもはや万策尽きました
一番可能性が高いの
ス ペ ル ミ ス
陪臣にする人材をシナリオの方に記入していて、選択可能人材になっているのでは?
人材イベントの管理項目ってあんなにあるのか……
頭痛くなるな
ハルベリで人材プレイ用のイベントを作りたいのですが何が分からないかも分からない状態です
どういう手順を踏めばいいんでしょうか
ヴァーレんトゥーが本家のwiki見んさい
制作のページ全部読めば大体なんとかなる
story構造体、istalent、isplayer(あるいはstoreplayerunit)で大体なんとかなる
何度でも言うけどwikiや他シナリオを参考にしよう
シナリオはファイル多くて探すの面倒ならmodなら目当てのものだけ入ってるから探しやすい
むなしい努力で人材のイベント作ろうとしてるんですけど 他の部分の記述を参考にして
talk(人材,文章)
で書いていった結果
1 自分が作ったイベントでは、イベントを作りたい人材のtalk()の部分を書いてからゲームが起動しない
2 talk部分を取り除いたmsg()部分でも表示されないものがある
3 他のopイベントでテストした結果、自分がイベントを作りたい人材のtalk()部分だけが表示されない
4 msg(人材,画像,文章)でも同様の結果になる
ということが発生しました 解決しようがありません 助けてください
ファイル上げてみてくんない?
他のopイベントでテストしたってのは、if式ごと入れたんじゃなくてtalk部分だけ入れても表示されないってこと?
>>873 そうです
http://whitecats.dip.jp/up/download/1525079802/attach/
event の中にあるev_サブ.datのop_sigureが自分で作ったイベントです
途中までしかありませんが、eventの中の時雨×デルティエ(mod).txtが全文になります
テストはop_fenekuでやりました
>>874
合言葉はzipです
なんだかよくわからんスペース消したら動いたよ
それとmsg内の()は全角じゃないと駄目よ
あとNGT本体を二次配布しないで
ましてやNGTの中に更にNGT,zipを同梱するのはやめて
そしてMOD制作頑張って
ハルベリ2で人材イベントを作ろうとしているものですがもうなんか分からないのでファイルをアップロードするのでご指導頂けませんでしょうか
githubに公開した方が何かと便利やでー
アップロードするのは構わないけど、その上でどこが分からないか説明してね
何が何やら分からないと言われてもアドバイスしようもない
小物入れにアップしました。
ハルベリ人材イベント質問用というのがそれです
人材が勢力に所属した時にイベントが起きるというふうにするやり方が分からないという
質問になるかと思います。githubは私には早すぎると思ったので今回は遠慮させて頂きました、すいません
inPower(対象勢力,shigeru)をstoryの方のif式に加えるだけじゃないですかね
動かしてないから何とも言えないけど、イベントが始まらないのはイベント構造体名被りまくってるから内部でゴチャゴチャしてるんでは
あとisplayerが無意味に重複してるよ
おかげ様で何とか動くようになりましたのでアップロードさせて頂きました。本当にありがとうございました。
フリープレイ用ですが小笑の一つにもなれば幸いです。
>>874 です
たった今試してみたところ、ちゃんと動きました
また、非常識なふるまい申し訳ありませんでした
手順049 spot構造体の作成(最小限)
spot構造体を作成します。
この構造体は戦略フェイズにおけるエリア単体の情報を表します。
spot構造体はは複数作成可能です。
spot s1 {
name = 西の原っぱ
image = kusa
x = 240
y = 500
member = kumada
map = kusamap1
}
spot s2
{
name = 東の原っぱ
image = kusa
x = 400
y = 500
member = kumagai
map = kusamap1
}
spot s1 のs1って何ですか?
spot構造体 「名前」
{
スポットの内容
}
の「名前」の部分
spot1の略
なるほどそういう意味でしたかありがとうございます
攻撃側のスキルが死霊属性・恐慌の状態異常付加で、攻撃される側の耐性が死霊無敵・恐慌耐性なしの場合はどうなりますか?
ダメージが通らないけど状態以上にはかかる
>>891
回答ありがとうございます
オリキャラの耐性設定の参考にさせていただきます
aとbでaのマスターをbの勢力にaddUnitしたあとにマスターにして、bがaを吸収合併した場合に
aのマスター不在フラグを引き継いでしまう不具合?を発見しました。
bが戦闘を行うとマスター不在で滅んでしまいます。
aとbの合併の前にaのマスターを適当に他のメンバーに選んでおくことで回避できそうです。
スクリプトからアプローチして陪臣を直臣にする方法はありませんか?
普通に一度外してから勢力にaddunitしたらイカンのか
>>895
そのユニットの部隊に入った状態で直臣である状態にしたいのです
CPU状態に一時的にして確実に召し上げる方法とかあればいいんですが
何かそれ前も誰かが聞いてた気がするけど
特定の部隊から外したくない(専属)って時点で直臣というより陪臣じゃん
多分意図的にそういう状態にすることを想定してないと思うしできないんじゃないかな
陪臣か直臣かという設定上の問題よりも、陪臣である場合ユニットの順番変更が部隊内できないという問題がありまして・・・
全員陪臣の場合、特定の順番が固定になってしまう感じで色々困るのですよね
陪臣同士で順番を変更できればいいのですが
むなしい努力からキャラチップの素材を調達したいのですが
どこのファイルにデータがあるのかわかりません
どこに入っているのでしょうか?
>>898
陪臣位置入れ替えできないってことはマスタープレイ想定?
なら直臣は結局部隊から外せちゃうし、だったら部隊に入っていてもいなくても変わらないよね
何にしても前の質問者も色々手を尽くして駄目だったみたいだから代替案探したほうが良いよ
>>898
>陪臣同士で順番を変更できればいいのですが
これならaddUnitを使えば可能です。addUnitで陪臣を一旦部隊から外して領地に移動させ、再度同じ部隊にaddUnitすれば、最後尾に追加されます。
例えば、「リーダーの後ろに、陪臣C、陪臣B、陪臣A」と並んでいて、「リーダーの後ろに、陪臣A、陪臣B、陪臣C」にしたいとすると、陪臣Bと陪臣Cを外して陪臣Aだけにして、陪臣Bを追加してから、最後に陪臣Cを追加すればいい訳です。
あるいは、陪臣の数が多い場合は、全員を外してから、好みの順番でaddUnitすれば、簡単に順番に並んでくれます。リーダーが前衛で、後衛キャラを陪臣にしちゃうと、戦闘時に最前列に並んで死にやすいのですが、この方法で最後尾に移せば安心です。
>>899
素材を抜き出すのはダメだよ
小物入れのこれに入ってるからDLしなさい
https://ux.getuploader.com/vahren/download/3463
さんくす!
>>901
となると内政でどうこうする感じですか
陪臣=人材なので、人数とってchoiceの選択いくつか割ってで選ぶ感じですね
ありがとうございます、参考にいろいろプレイヤーの面倒にならないような処理ができるようにしてみます
内政のアイコンをスキルツリーみたいに配置することってできませんかね?
昔のVerのミドナのカード保有枠みたいなデカい画像に書き起こして、
各アイコンを内政の進行に併せて変更するスクリプトを組めばスキルツリーの表示『は』出来そう
問題点はスキルツリー側での操作は出来ない事や、
どうしても面積取ってしまうから出しっぱなしには向かないし、一時的に呼び出すコードとか組んでいると物凄く煩雑になりそうなことか…
ヴァーレントーガ自体が古くなってきたんだが他にいいゲームないか?
世界観を表現するのに
かーどわーす
SRCおすすめ
ヴァーレンよりも古い気が…w
オープンファーレンを完成させるのだ
>>905
可能か不可能かなら擬似的に可能
内政をツリーみたいにするってことですよね?
ツリー側で操作できるようにもできますが、やはり擬似的になります
具体的には40*36が内政アイコンの限界で、横を敷き詰めることが可能です
これをツリーにみたてた線まで入れて表示します
内政は横敷き詰めないと2段目にいくことができないので、横に不必要な部分は透明のアイコンを開けないようにします
こんな感じでどうでしょう?
ちなみに縦側には敷き詰められないので、そのあたりはアイコンに若干の工夫が必要かもしれません
透明なアイコンというか無効な識別子を指定すればアイコンなしの開けない内政ユニットになるはず
ただいずれにしても見えないオブジェクトが発生しちゃうけど
個人的にはやはりミドナ式をおすすめする
内政、ツリーに関する提案ありがとうございます
とりあえずミドナ式と「ライン」と透明の内政ユニットを配置する方法を試してみて
総合的に見て良さげな方法にしたいと思います
ご協力ありがとうございました
>>914
ミドナ式であれば、下地の画像にアイコンを条件にあわせて座標で表示するようにすれば非常に見た目は綺麗になります
ただしあくまでも座標なのでクリックできないのが弱点ではありますが・・・
どちらも一長一短といった感じですね
フリー素材の詰め合わせに含まれるセルシウスを黒髪の人間風にしたいのですがドットを弄るコツをおしえてくれませんか?
言葉で説明するのは困難なので「ドット絵 加工 講座」とかで調べた方が早いですよ
フリー素材いじるのはいいけど改変大丈夫なやつよね?
フリーだからなにしたっていいだろと勝手に改変して大炎上したことがあったはず
<あぼーん>
>>916
必要なら代わりにやってみるけどもう大丈夫かな?
自力で作れたんですがドットを一つずつ弄るという原始的極まりない方法なのでなんとも
そういうもんやで
クラスユニットがレベル上がってもhp増えないようにするにはどうすればよいですか?
multi=の後の数字消してもコンテンツのfv_○○を1とかにしてもクラスチェンジするとhpあがってしまって困ってます。
とりあえず異性間以外の速度以外の能力がクラスに完全依存のmarlinのスクリプト覗いてきたけど、
multi =で0に指定して上がらなくしているみたい
後、fv_は戦力値算出用だから成長率とは一切関係ないみたいだね
multi=5,hp hpが5%ずつ上がる
hpUp=5 hpが5ずつ上がる
優先度 multi<*Up
らしいのでどこかで*Upが指定されてたらmultiいじっても無視されると思う
みなさんありがとうございます。やってみます。
要望です。
テキストウィンドウや列伝などの文字のサイズを自由に変更できるようにしていただけないでしょうか。
フリーフォントを入れると文字が小さすぎて見えないのが理由です。
>>927
https://www28.atwiki.jp/vahren_ency/?cmd=word&word= フォント&type=&pageid=694
font_text = (フォント名) テキストウィンドウの文字
font_detail = (フォント名) 列伝の文字
>>928
いやフォントを変更すると文字が小さくなってしまうという話です。
質問です
攻城戦で観戦を行うとフリーズするのですが、考えられる原因は何でしょうか
それだけではなんとも言えないけど真っ先に疑うのはメモリ不足
あとはランクアップ記述が間違ってる時もフリーズするね
あと簡易戦闘でaddtroopするとフリーズするよね
あるいは城壁値と観戦を条件にフリーズするような戦闘イベント発生させてるか
ヴァーレンの暗号化オプションはヴァーレン内証明書を使っているのかな
どんな原理なんだろ
>>931 >>932 >>933
確認してみます。ありがとうございます。
<あぼーん>
>>935
素早さが0のやつがいたときにフリーズしたこともあった
誰か銀河英雄伝説シナリオ作ってくれないかな?
あとはオンラインとかやりたいが技術持っている人いないかな?
それはお前がやるんだよ
というのは置いといてとりあえず改変シナリオ一覧から似た設定の奴探してそれ改造するとこから始めてどうぞ
銀英伝に熱中したときに作ろうかなって思ったけど宇宙での小型戦闘機の挙動がvtでは表現できないなって思ってやめた。
てか銀英伝をモチーフにしたオリシナってもうあったと思うんだけど。
綺羅星だな。あくまで系であって、そのものではないんだけど…
銀英伝in石器時代をやればええんちゃう?
バトルアックスとゼッフル粒子地雷で戦う白兵戦シナリオか…
オフレッサー最強だなw
オフレッサー最強だなw
某ロボット世界のミノフスキー粒子みたく、この宙域はゼッフル粒子濃度が高いので火気使用不可です
装甲擲弾兵GO! な感じの設定ならヴァーレンでも出来そう
それもう銀英伝である必要が…
ラインハルトみたいな美形描くの難しそう
フリーアイコンにいいのあるかな
本編では実現しなかったオフレッさーVSローゼンリッターを是非・・・
ミッターマイヤーがバイエルラインを召喚して敵陣に突撃させる姿は見えます
キルヒアイスの副官スキルがやばいのは容易に想像がついた
初歩的な質問で申し訳ありません。
スキルの消費MP<ユニットのmprecだと、
そのユニットのスキル使用時のmp消費は0になってしまうのでしょうか?
speedによるが消費して即回復する感じになるね
消費自体はするからspeedを1000とかにして超速連射させればちゃんと枯渇する
>>952
聞きたいのは「MP消費」ではなく「MPの収支」では?
それならこんな感じでテストすればいいよ
テスト1 ユニットのMP200、mprec0、スキルのMP消費100
テスト2 ユニットのMP100、mprec50、スキルのMP消費100
テスト3 ユニットのMP100、mprec100、スキルのMP消費100
テスト4 ユニットのMP50、mprec1000、スキルのMP消費100
:(好きなだけテストしてみる)
この程度のテストは自分でしないとダメ
>>953
>speedによるが
通常スキル、hprec/mprecの回復はいずれも行動タイミング
speedで処理が前後することはない・・・と思ってたけど俺間違ってる?
そうなんだ
前にクソチートユニット作って無双ごっこした時に適当に設定したらMP尽きてスキル止まってたから回復タイミングはみんな同じだと思ってたわ
じゃあspeed上げると実質的にhpmp自動回復速度も上がるのね
>>954
質問主ではありませんが、興味があったので実験してみました。
テスト1:ユニットのMP10、mprec1、スキルのMP消費1
MPが10から減らないで、何発でも連射できました。
魔法攻撃でMPを消費した直後に、回復するので、表示は最大値のままです。
「最大値 -> 消費 -> 回復 -> 消費量と回復量が同じなので最大値に戻ってる」という状態です。
テスト2:ユニットのMP10、mprec1、スキルのMP消費2
1発撃つごとにMPが1ずつ減っていきます。
「初期値 -> 2消費 -> 1回復 -> 結果として1減ってる」という状態です。
9発撃った時点で残りMPが1になって、スキルを使えなくて休みます。以降は、発射と休憩を繰り返します。
speedを40,60,100,1000と変えて試してみましたが、MP回復のタイミングはスキル使用直後のままでした。
「MP回復 >= MP消費」なら切れ目なく連射できますし、「MP回復 < MP消費」ならMPが足りない間は休みます。
>>955
スキルの連射が止まったのは、MP不足ではなく、移動操作が原因ではないかと思います。
前進型の遠隔攻撃ユニットを敵から遠ざかるように操作して引き撃ちしようとすると判りやすいのですが、
ヴァーレントゥーガの仕様として、移動先を指定した直後(一定時間?)は攻撃できないようです。
更に、移動中も連射速度が落ちます(攻撃間隔が数フレーム長くなる)。
なので、停止してれば高速連射するユニットでも、頻繁に移動先を変えながら遊撃させようとすると、
動くだけであまり攻撃してくれない、という現象が発生します。
すみません。戦闘開始時、団子状になってしまう軍隊を部隊同士が重ならない程度に横列にしたいのですが、システムのどこを帰れば横列になりますでしょうか?初心者の質問ですみません…
>>956
実験&レポートおつかれさまです
>>957
横列とか正方とかはステージエディタ(マップ作るやつ)の時点で指定
広さは確かcontext.datあたりで設定・・・だと思います
スキル取り放題なキャラでのんびりやってたらいつの間にか4万ターンとか超えたけど
ヴァーレンの1ターンって何日くらいなんだろ
本当にのんびりやってますね…
ターン数とかバグらないんですか?
https://i.imgur.com/3VmePOw.jpg
表示は大丈夫みたいです
戦闘と戦闘の間ですら全ての種族の傷が完全に癒える程度には経ってるから1ターンはかなり長いよな
マスターの陪臣が召し上げに金がかからないのは仕様でしょうか?
金が掛かるようにしたいのですが・・・
陪臣の召し上げにお金がいること自体が自分の配下の私兵を買い上げて自分(マスター)の配下にするってことだから
そういう意味ではマスターの陪臣は配下と同義だからお金がかからないのは仕様だと思うよ
そもそもお金がかかったところでマスターの金=軍資金だから出たものが戻ってくるだけ
>>964
マスターの部隊にマップ上で固定したいのですが、何らかの方法はないでしょうか?
一応雇用後に部隊から抜いてマスターの部隊に入れると陪臣になるので、召し上げた瞬間に動かせるイベントがあれば対応できるのですが・・・
>>965
結局のところマスターの下から動かしたくないってこと?
それなら最初は陪臣で近衛でもなんでも特殊な役職にして勢力でトップにできず誰の下にもつけられなくしたら移動は不可能になるのと同義だと思う?
それなら陪臣といても部隊内で順番かえられるし便利なんじゃないかな
あぁよく考えたら人材にトップにできないとかは関係ないか
忘れておくれ
少なくともそういうシステムは見たこと無い
外せるけどstoryで即座に戻ってくる奴しか知らない
>>969
雇用系なら雇用や解雇した瞬間に読み込まれるからできるはず
見たこと無いのは>>967 じゃなく固定の方ね
質問なのですが・・
マスターなし陣営を作った場合、その陣営のみ視界が開けない(view_rangeの設定が無視される?)のだけど、解決方法が見えない・・どなたかご存知ないだろうか?
仮初のマスターを作って置いておくしかないのか。
>>972
マスターが存在しない勢力をプレイヤーが担当するのは想定外なのかもしれません。
バグとして修正してもらえるのを待つ以外には、視界制限を止めるしかなさそうです。
戦闘中イベントで showBlind() を使えば、動的に視界制限を解除できます。
>>973
なるほど・・ありがとうございます。
戦闘中イベントで対処というのは思い付きませんでした・・そういう手もあるんですね。
質問です。
難易度の一つとして戦闘の一時停止が出来ないというのは作れますか?
そこまで行くとスクリプトではなくヴァーレン本体そのものを改造する必要があるんじゃないか?
個人的に「やっちゃあいけないレベルの改悪」だとは思うが
視認性は演出にもなるからともかく、操作性を下げるのは難易度低下じゃなくてただの面倒くさいゲームだぞ
キーコンフィグが変更できるようになったら、ポーズのキーをあえて押しにくいとこに設定することで擬似的にポーズ困難にできるな
スキルの順序調節で、人材固有スキルをクラスが元々持っているスキルより前に出すのってどうすればいいの?
WIKIで順序で検索かけてみたけど一向にそれらしき関数が見当たらない…
>>979
sortkey = (数値)
「skill 構造体(遠距離攻撃/攻撃魔法)」の上にある「スキルの共通基本データ」に折りたたまれてるから覚えとくといいよ
>>980
確認してみたけど使い方がさっぱりわからない…
>>981
skill構造体で
skill sword
{
name = 剣
(中略)
sortkey = 500
}
skill spear
{
name = 槍
(中略)
sortkey = 300
}
skill bow
{
name = 弓
(中略)
sortkey = 700
}
ってすると
[槍][剣][弓]
の順番で並んでくれる
こんな感じ
chipフォルダに805、imageに634の画像ファイルがある状態で起動したら>>130 にある
「ユニットのキャラチップが規定サイズを超えました。一部排除して切り詰められます。」
が出た
chipフォルダの画像を一つ適当に削除したら出なくなったから、画像の上限は1438なんかな
>>982
分かりやすい説明ありがとうございます。試してみます
>>984
sortkeyでもいいけど、人材固有なら普通にskill2でいいんでないの?
なんか勘違いしてたらゴメン
>>985
こういう手段もあったんですね。教えていただきありがとうございます
ゲーム内での現在値ではなくて、構造体内の初期値をどの時点でも参照する方法ってありますか?
>>987
すまない、言ってる意味が分からないが何となくこういう意味かな、と感じた範囲で答えておく
恐らくは何らかの変数の初期値だと思うけど、それを別の変数にも入れて、その別の変数を参照すれば良いのではなかろうか
もしそういう意味じゃないなら、もう少し具体的に質問して欲しい
>>988
恐らくその意味であってます
やっぱりグローバル変数に個別に格納した上で、そこから引き出すしかないって事ですかね
ありがとうございました
classなら新しくaddunitして値取ってすぐ消す手もあるが
基本的にはグローバル変数に格納するか、構造体名を渡すと基本値を返すルーティンとか作っておくかだと思う
質問なんですが、Vahrenに入っているシナリオ製作ツールのImageMakerを使って作成してあるimageに
ImageViewを使ってchip追加しようとすると上手く行きません
と言うのも、透過処理したpngを上書きしようとすると、ImageMakerを使って作成したchipは、背景が真っ黒に対し
追加したchipは背景色となり、これを混ぜると、ImageMakerのchip分が背景真っ黒で登場してしまいます
正しい追加方法を教えて頂けると有り難いです
Image.dat、もしくはimage2.datにちゃんと追加されているなら
多分使い方は正しいと思う
ちなみにこっちだとchip2フォルダ内に置いておくと正常に描写されるけど
image2.datに含めると真っ黒く描写されてしまうpngファイルがある
因みにImageMakerを使って0から作っても、ImageViewを使って追加しても駄目だった
今のところ妥協してchip2フォルダ内に置いているけど、
物によってはシナリオ製作ツールと相性の悪いpngファイルがあるという事だと思っている
で、>>991 の使ったpngファイルもそうである可能性はある
自分と同じ事やって駄目なら、chipフォルダやchip2フォルダに置くしかないと思う
>>992
相性の問題のも有るんですね…何とか騙し騙し追加は出来ているので現状のままやっていきます
回答有り難うございました
属性耐性に関する計算式がwikiにも過去ログにもないようなので以下のようにして調べてみた
・verは6.85とそのスクリプトを7.00にそのまま移したもので最新バージョンに対して有効かは微妙に疑いが残る
・attack100,defense0,magic100,magdef100の一般ユニットと人材ユニットを作る
・各耐性強度に対応するattack倍率1の近接攻撃スキルを持たせて人材ユニットに一般ユニットを殴らせて数字を取る
・乱数があるのでダメージ最大と最少を取って足して2で割って中間値を求め、倍率を予想する
・またattackをmagicに置き換えて倍率がどこにかかるのかを見た
結論として倍率は攻撃値に掛かる形(与ダメージに掛かるわけではないのでダメージが下限になったり防御が高くても大ダメージを貰ったりする)
で耐性強度1から順に
2.0、1.75、1.5、1.2
6からは逆数で、例えば6の倍率は1/1.2、9の倍率は1/2.0
しかしこれはむなしい努力のwikiのダメージ計算と矛盾している
どちらかが間違っているのか、もしくは倍率を変えられるのか
https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1282244590/543
過去ログではこんなんがあるけど
+4が0.2だとどう考えても死にそうにない場面で死ぬのがちょいちょいあるのよな
あと、キノタケだと表記をLanguageで差し替えてるだけだけど
200%/175%/150%/120%/80%/66%/57%/50%と見做してるのよな倍率
ダメージ最低値がデフォだと10だから無敵じゃない限り死ぬときは死ぬ
デフォだと?最低値って変えられるのか
fixですら10未満にならないから無理だと思ってた
>>994
wikiには書いてませんが、耐性によるダメージ倍率をcontextで設定できます。
「改造・制作スレ part3」の403で説明されてます。
https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1305281909/403
damage_consti未設定時のデフォルト値は不明です。
かなり古い情報なので、バージョンによって違うかもしれません。
>>998
おお、これはありがたい
verはヤヌークの立ち絵があるから、恐らく最新版で
damage_constiと
damage_max,damage_minの攻撃値の係数に関する影響まで確認(敵防御0で攻撃値の乱数を変動なしに)
damage_consti未記述では0から順に
即死(表示される数字は最大ダメージ),2,1.75,1.5,1.2,1,1/1.2,1/1.5,1/1.75,1/2,ノーダメージ(最低ダメージも入らない)
逆数は0.83ではなく0.833…となるみたい
あとdamage_constiを記述しても即死とノーダメージは変わらないようだ
記述は標準では存在しないので書き加える形で
https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1537276030/
次スレ立てました
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板