レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part9
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。
ヴァーレントゥーガまとめ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/
改造・制作スレ part8
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1463836625/
>>1 乙
少し興味があったオリシナ制作に興味があったので、ゲーム制作経験もないためまずはオリシナ作っちゃお!という拡張シナリオで勉強し始めたのですが、スキルアイコンを配布してくださっていたWhitecat様のサイトが閉鎖しているようで困ってしまっています。
自分で探して別のサイトで拾ってこれれば一番いいのですが、何分ゲーム制作自体が初めてでどう探せばいいのかもわからないためおすすめのサイトや小物入れのスキルアイコンを教えていただけないでしょうか?何卒よろしくお願いいたします。
素材類は基本的にヴァーレン小物入れ1に投げ込まれるのが慣例になっている(2はオリシナがメイン)から、
とりあえずこっちで『素材』で検索してあるものを全部試してみるといいと思う
それと、千百年目の作者氏もアイコン素材配布してるから、こっちもチェックしてみたらどうだろうか?
ロダはttps://ux.getuploader.com/amagoya/
なるほど、ありがとうございます!!とても助かります!!
ゲームで遊んでいる時なんで小物入れ1と2に分かれてるんだろうと思ってたのですが、そういう風に分けられていたのですね。
不具合ぽいので報告
pushLimitが機能していないようです。かならず2147483647が出力されます。ただし省略戦闘時では正常に動作しています。
whileループでgetLimit()を使って時間を取得しようとしたんですがgetLimit()もダメみたいです。こっちは省略戦闘時も機能しないです。
他に戦闘シーンの時間を取得する方法はあるでしょうか?
戦闘中にそもそもwhileは効かなくなかったかな?
たぶん使えないはず
skillについてitemにした際に、リーダーが装備するとその部下が全員そのスキルを会得するって方法ないですかね?
リーダーが弓装備したら部隊全員弓装備、みたいな感じだとプレイヤーが楽できるかな・・・と。
>>9
出来るよ
アイテムスキルをリーダースキルにして、そのスキルを自前で覚えさせなければ可能
SpotMakeHelper様を参考とさせていただいて、
機能をごちゃごちゃ付けたツールをつくってみました。
https://ux.getuploader.com/vahren/download/4470
よろしければ試してみてください。
(以下、画像にきのたけ様を取り上げさせていただいております)
https://imgur.com/a/SyeKgPr
上のようにスポット構造体名や経済値などを付加的に表示したり、
https://imgur.com/a/9hQn1qj
上のようにそれを画像として出力したりするといった機能があったりします。
ナイスです。
SpotMakeHelper様のでも制作がずいぶん楽になっていましたが、さらに楽になりそうですね!
……すごいです!
軽く触っただけだがかなり親切設計になってるな
グッジョブ!
お疲れ様です
すごい
skill作成初心者です
プレイヤーじゃないユニットから特定の位置に召喚を出させることってできますかね
特定の位置というのは?
いくつか解釈できそうなのでもうちょっと説明が欲しい
遠距離攻撃からのnextで着弾点から出す
無限に出せると困るなら必殺技にして回数制限をつける
召喚スキルとしてやる方法もあるかもしれないけどおそらく面倒臭い
ありがとうございます
多分>>17 の方法で解決しました
召喚スキルの表示にしたければ即座に自爆する見えないくらい小さいユニットを召喚して死亡時スキルで>>17 ってのもある
ただどうしても自爆までにディレイがあるから必殺技表示で良いなら>>17
すごく初歩的な質問かもしれないけど
もしかしてreturn()って結構重い?
スクリプトある程度作って、試しに起動してみたらシナリオ構造体のzoneないの@に変に反応したり、スポットの囲い用の前カッコが不正だとか、綴りも間違えてないものに不正だと反応するとか、コメントアウトした構造体に反応して重複してるとか意味わからん。どう言うことだ?
あのエラーログの不正行数表示は完璧ではないので
条件式の()が片方外れてたりした場合に、対になる()を間違って妙な行を違反表示したりする
おそらく探せばきっとどこかにミスがある
()じゃない{}だ
9です。
>>10 さん 、ユニット側にリーダースキルとしてアイテム化するスキルを持たせるってことですよね?
机上の空論に近かったから実際にいろいろ試してみたんだが、私もあんまり知識がなくてうまくいかなかったのでどうも出来ないみたいだ、すまない
…詫びとしてはなんだが、スキルを付与スキルとして覚えるアイテムを単品の価格と同価格にして、
リーダースキルにしたいキャラ専用にすることで、ほぼ同等の効果を得られるからこの手段で勘弁してください…
>>24
unit構造体のリーダースキルに予め記述しておけばアイテム装備でスキルを習得したときにLSになるって方法があった気がする
あとは戦闘中イベントでアイテム所持ユニットの部下にaddSkillして戦闘後にeraseSkillする方法でもできる気がする
なんか最新の本体アプリバグあるな
context構造体(空)入れただけなのに読みこみ25%の時にエラーもはかず落ちる
旧式のアプリに変えたら普通に起動したし
もしかして俺の知らないところで仕様変わった?
たまたま残ってた6.90で無事起動
7.00もあったけど起動しなかった
なんでだろ
構成体をサクラエディタとかで開いてるときに起動しようとすると読み込み失敗してエラー表記なしで落ちるよ
メモ帳なら大丈夫だけど、やっぱちょっとした修正以外はちゃんとしたテキストエディタじゃないと辛いのがなあ…
サクラエディタで開いているファイル、他のアプリケーションでは読み取れるから別に専有しているわけではないようだけどヴァーレンは読み取れないみたいだよね
どういうわけなんだろうか
アイテムをリーダースキル化するなら
1.リーダースキル化したいアイテム全てをmemberにしたスキルセットを作る
2.全てのクラス、ユニットのleader_skillに1のスキルセットを指定する
3.アイテムを装備するとリーダースキルになる
>>29
私もサクラエディタを使ってますが、設定を変更すればヴァーレンと動きます。
サクラエディタのメニューから
[設定]メニュー -> [共通設定]項目 -> [ファイル]タブ -> [ファイルの排他制御]囲み
の中にある、[排他制御]の選択肢から「しない」を選んでください。
>>32
ありがてえ
>>32
そうだったんですか!ありがとうございます
最新版で一番困るのはデバックモードでv押したらゲームが落ちる事
他はともかく、あそこだけは修正して欲しいけど、これだけの期間放置されてる所をみると、難しい事なんかな
タイトル画像入れたら選択肢が表示されなくなるのなんで?タイトル画像の裏に回ってるのか?
なんか根本的なバグが多すぎてほんと辛いんだけど
9です。 やはりユニットにつけるしかないですね・・・
ファルシスで弓/騎射持った軍団、なんかを気軽に作れるようにしたかったですが記述増やすしかないかー
>>26 の言うような戦闘イベントで戦闘中だけaddskillは駄目なのか
あるいはaddskillした対象全員をstoreudしておいて部隊から外れ次第eraseskillとか
戦闘イベントの中でaddSkill即eraseSkillでもその戦闘中だけは使えるからそっちの方が楽なはず
ただ簡易戦闘でもいけるかは試したことない
構造体の種類名の不正ってなんだろう・・・
datの1行目が不正っていうから見てもおかしいことないし(event xxx)、そのイベント一時的に全部消しても1行目が不正
datの内容全部消したら治るんですが、何から見ればいいかわからないです
自己解決しました
形式がUnicodeに変わってました
戦場マップを自動生成したりするツールをつくってみました。
https://ux.getuploader.com/vahren/download/4471
もちろん凝ったものがポンとできるわけではないのですが、
あまり手間をかけず「それっぽい」地形が出てきますので、
下地や仮置きなどに使えるかと思います。
よろしければ試してみてください。
https://imgur.com/a/6Sry2Iq
上の画像のように、適当に「生成」ボタンをポチポチして、
最後に適当に切り取るという感じでとりあえず使えます。
https://imgur.com/a/11ZEWy2
上は自動生成したマップのゲーム上イメージ例(3枚)です。
これらを生成するサンプル設定は同梱してあります。
ツール作ってくれてる方、いつも感謝しています
マップ関連作るのが苦手なのでとても助かります
おおおおおすごい!!ありがたく使わせてもらいます!
大きく生成してクリッピングできる+114514点
オリジナルのマウスカーソルを作ってみたがカーソルの表示より、実際の判定が左下にずれててうまく行かない
48*48のをWeb上のツールでcurに変換して作ったんだけどやり方違うのだろうか?
雇用について質問です
同種族同クラスのみ雇用可能状態で雇用を試そうとしたところ、雇用欄に金0で無名のユニットが表示されます
別段特殊なことはやってないと思うのですが、どういった原因が考えられるでしょうか?
class suzuki
{
name = 鈴木
image = 11
fkey = rinrin
race = meka
sex = female
level = 1
}
class tanaka
{
name = 田中
image = 12
fkey = denden
race = meka
sex = female
level = 1
}
unit yamada
{
level = 1
name = 山田
face = 2.png
image = 38
talent = on
politics = on
class = tanaka
race = meka
member = tanaka*4
sex = female
}
この場合の山田さんの雇用欄にtanakaが出ない感じです
自己解決しました・・・基底クラス関連の方の記述に問題がありました
すいません〜
想像したらすごいカオスだな
田中と鈴木が量産兵で山田のクラスが田中
しかも全員メカ
しかも女性型
しかも基底クラス名を見るにクラスチェンジして鈴谷や田代になる可能性を秘めている
なぜ佐藤がいないのか
苗字の人材を戦わせるヴァーレン作ったら面白そう
佐藤や鈴木みたいな多い苗字は一般兵で(たくさんいるから)
希少な苗字は人材、みたいな感じでさ
ボス勢力は外国人の有名苗字勢とか妄想した
由来でキャラ設定した方がいいと思う
源平藤橘に非ずば人に非ず
四姓こそ至高。地名性などアウトカースト
源平藤橘の「種族:人間」とそれ以外のヒャッハーな奴らとの闘いか…
割とマジで面白いとは思うけど性能が
完全に全員ただの人じゃん
安倍さんだったら、財政値を持ちつつ、
アーッな攻撃バフを持つ魔力主体の陰陽師にすれば、
差別化できるんでは?(一部漢字違うけど)
スレの流れ切ってすみません
https://www28.atwiki.jp/vahren_ency/?cmd=word&word=skill&type=&pageid=378
にある s_rank = (on/off) で設定できる究極技ってなんですか?
どこから拾ったのか知らんが見たところものすごく古い情報だし、実装されていないか削除されたのでは
試しに設定してみてはいかがかな
状態異常hpの下限っていじれますか?
状態異常絡みなら多分これだな
unit_status_hp = 100 即死以外の状態異常HPの上限(=初期状態)。0を割ると状態異常になる。
unit_status_rec = 10 状態異常HPの1行動辺りの回復量。
unit_status_min = -500 状態異常HPの下限。どれだけ連続で受けても最大でここまでしか蓄積しない。
unit_status_death = 即死の状態異常HP。これのみ蓄積せずに1回ごとに再判定され、これが0を下回ると即死する。
>>42 のツールに、いくつかチップ配置関連機能を付けました。
https://ux.getuploader.com/vahren/download/4474
下の画像のようなペイントツールっぽい塗りつぶし・範囲限定、方向性のあるオブジェの配置支援ができたりします。
興味があれば試してみてください。
https://imgur.com/a/KM12YG4
>>65
公開ありがとうございます。いつか自分でシナリオを作る際に利用させて頂きます。
召集技ってユニットがフィールドに出れば、必殺技でもすぐに使ってくれますよね?
知る限り普通はそうなる
ただ遠距離next形式なら当然射程範囲にいないと使わないけど
>>68
ありがとうございます
range,check指定すると純粋な召喚でも射程制限かかったような記憶
範囲内に敵または地点指定がないと発動できないようならこれ
俺の記憶違いとか本体のバージョンで変更とかはあるかも
質問(不具合報告?)です
セーブデータをロードした後でのダイアログ表示に、数値変数の内部値表示(&〇〇&)を使用したのですが何も表示されません
例
set(test,1234)
dialog(内部値は&test&です)
↓
ダイアログ「内部値はです」
文字変数の場合やロード前の状態では問題なく、「内部値は1234です」と表示されます
if文での条件式で確認したところ、数値変数「test」に「1234」が正常に代入されていることは確認できました
本体は最新版(7.01)ですが、6.90や5.70で確認しても同じ結果でした
おそらくdialogの問題だと思うのですが、なにか解決方法はありますでしょうか
そのままstoryにコピペしたけど1234出ますが
ロードした後というのはどういう意味でしょうか
ランシナで登場する人材数をランダムで半分とかに絞って遊びたいんだがどこをどういじればいけそう?
シナリオにもよるんだろうがどうしても結局いつもの人材部隊のみってなりがちなんだよな
全人材を文字変数に入れてshuffleした後にwhileループで一定数を振り分けるのが一般的だと思うから、こんな感じで大概いけるかな
テストはしてないです
//@alltalentが全人材の入った変数
pushv(@alltalent,num)
div(num,2)
shuffle(@alltalent)
while (num>0)
{
//(全人材数/2)人のユニットを消す
//eraseunitすると半分は登場しない
//eraseunitしない場合は登場するが最初に振り分けされない
index(@alltalent,0,@talent)
subv(@alltalent,@talent)
eraseunit(@talent)
sub(num,1)
}
既存シナリオに別の画像のキャラチップを使いたいんですけど、
imageMakerってどう使うんですか?
既存ののimageにチップ追加するのは不可能に近いから、
シナリオフォルダ内に「chip」フォルダ作って、そこに追加したい画像入れると追加できるよ
スキル画像の場合は「chip2」
え
imageviewでできるでしょ
skillに関して質問です
遠距離からnext3で複数の召喚スキルにつなげる時に
召喚スキルの一つ一つにyorozu = troop2,troop3で独立部隊にしても
それぞれの部隊にうまく編成されません たとえば
skill A{
func = missile
next3 = B,C,D
next_last = on
}
skill B{
func = summon
add = unit1
rush = 3
yorozu = troop2,troop3
}
skill C{
func = summon
add = unit2
rush = 3
yorozu = troop2,troop3
}
skill D{
func = summon
add = unit3
rush = 3
yorozu = troop2,troop3
}
とすると、unit1が一体のみの部隊、unit2が一体のみの部隊、
unit3が三体+unit1とunit2が二体の部隊になってしまいます
troop2,troop3って書く必要あるのですか?
yorozu = troop3 でいいんでは?
そういえばtroopは昔クラッシュ起こしてた気がするけど
あれは直ったんかいな
初歩的な質問ですみません
change = soldier*10, bowman*10, mage*10
と複数のクラスを列記してみたところ「データ文が改行で区切られていません」と表示されるのですが、もしかして
change = soldier*10
change = bowman*10
change = mage*10
と入力しないとダメなのでしょうか?
そもそもchangeに複数記述なんて可能なのか
>>80 です
>>81
条件分岐みたいな感じで「もしリーダーがソルジャーならレベル10でソルジャーにクラスチェンジし、もしリーダーがボーマンなら・・・」
ってことができたらいいなと思って書いたのですが明らかに書き方が悪かったですね
申し訳ないです
きのたけのスキルを他シナリオに、もしくは逆にきのたけに他シナリオのスキルを入れると毎度[構造体の種類名が不正です]と表示される
何か特殊なきのたけだけの動作があるのですか?
>>82
そもそもchangeで見ているのはリーダーのクラスじゃないからそういうのやりたいならイベント組むしかない
event classchange_bunnki
{
//bunnkiのクラスを変える
storeallpower(@allunit)
storeunitofpower(@allunit,@allunit)
while (count(@allunit)>0) {
index(@allunit,0,@unit)
subv(@allunit,@unit)
storeclassofunit(@unit,@class)
pushlevel(@unit,level)
if (isleader(@unit)==0 && level>=10 && @class==bunnki)
//ここに分岐処理
}
}
}
>>83
多分、ファイルごと他シナに持っていってない?
ほとんどのオリシナはSHIFT-JISでエンコードされているけど、きのたけはUnicodeでエンコードされている
だから変換しないと使えない
一度のスキル発動で何度もスライドし直すスキルって作成可能なのでしょうか?
イメージとしては、スライドしてスキル発動→また別方向にスライドして・・を繰り返すスキルみたいな。
rushやnextでどうにかならないかといじってみたものの、最初にスライドするだけでした。
前に作ろうとしたことがあったが1スキルでは無理だった
複数スキルに分けてquickreloadで頑張ればどうにかなるかも
やはりそうなのですか、回答ありがとうございます
start_degree_turnunit = onってのがあって
これといろいろ組み合わせてジグザグに斬り込むスキルなんかで見た気がする
検索してみたら、動画ありましたね。どうやって作っているのだろう。。
>>86
突撃スキルなら敵と隣接した瞬間に発動するので、移動しながら別目標に連続攻撃できます。
助走距離を最短(height = 1)にして超連射(rush = 100など)にすれば、
敵が近くに存在する限り、ひたすら突撃を続けます。
(助走距離が長いと、加速度が減りやすいのか、再突撃しにくいみたい。)
hand_rangeを長くすると突撃が発動する判定距離も広がります。
スライド距離を長くして敵を貫通し、元の場所に戻らないよう(slide_stamp = 数値)にすれば、
ユニットがスライド移動しながら、次々と別の敵を攻撃してくれるでしょう。
(スライド距離が短いと、同じ敵に連続突撃してしまいます。
突撃判定範囲が狭いと、敵から離れた時に突撃が終わってしまいます。)
敵陣を縦横無尽に駆け抜けながら、次々と薙ぎ払っていく強行突破型ユニットとか作れます。
ただ、スライド速度は地形に関係ないので、悪路でも平気で走り回ることになります。
飛行機や空中騎兵のような、地形に依存しない兵科の方が、実装に向いてそうです。
後、そのユニットは、敵に近づくと操作できなくなります・・・(突撃スキルは禁止できない)
即席で作ってみた
それっぽい動きはしたけどstart_degree_turnunitを使ってないことを考慮しても例の動画とは違う気がするんだよなあ
誰か改良しておくれ
//以下3つ全部スキルリストに入れる
skill slidetest
{
func=missile
slide=400
gun_delay=slidetest*1
slide_stamp=50
slide_speed=3000
quickreload = on
range=300
}
skill slidetest2 : slidetest
{
gun_delay=slidetest2*1
}
skill slidetest3 : slidetest
{
gun_delay=slidetest3*1
}
動画元の方のツイッター漁っていたら解説があった!
感激。
>>91
そんな方法が!
これは目から鱗です。ありがとうございます。
操作不能になるのが扱いが難しそうですが、夢が広がりますね。
>>92
{
//ここにcircle挙動のスキル入れて
check=300
start_degree = 30
start_degree_type = 1
start_degree_turnunit = on
slide=400
slide_stamp=50
slide_speed=3000
gun_delay=slidetest*5
quickreload =on
}
これでだいぶ動画っぽくなった気がする。
実際は動画に似せるためmovetype=circleとか本体部分に色々を加えてるけど、スライド関係はこんなん。
checkはrangeでも良いとして、start_degree で角度をつくってstart_degree_turnunit でユニットをそれに追従させる感じか。
あとはslidetest3に「quickreload =off」入れた。不要かも。
先週からオリシナ作成をやってみようと暗中模索している者です
画像を素材を自作してみようと思うのですが、ペイントで保存した画像をそのままimageなりpictureなりに
入れれば大丈夫なんでしょうか 教えてください
スキルアイコンとかイベントシーンで使う普通の画像は暗号化不要ならそれで良い
暗号化する場合とキャラチップやマップチップは本家ヴァーレンに同梱されているツールを使ってimage.datとかに入れる
戦場マップは最近有志のツールもアップロードされてる
<あぼーん>
>>96
実際に戦場で動かすunitの画像やスキル演出に使う画像はどうすればいいのでしょう?
>>98
>>96 で言ったツールの中にImageMakerってのがあるからそれで作る
編集はimageviewで
デフォシナとか他所のオリシナから持ってきてそれを必要な所だけ編集してもいい(素材元は把握しておかないと駄目だが)
質問し直す前に少しは言われたことを試してくれ
ちゃんとわかり易い説明書も付いてるから
>>99
申し訳ありませんでした。
詳しく教えて下さいありがとうございます。
マップ上のdoskillについて質問です
常時スキル(もしくは超長時間)を発生している状態を作りたいのですが、特定のイベントが起きた瞬間にそのスキルを削除する方法ってないでしょうか?
戦略マップでの敵AIの編成に関する質問です。
海タイルだけ移動できるユニット(船とか)をCPUが海タイルのないスポット戦で編成しないような命令ってできるでしょうか?
なければCPUはそのクラスを雇用しない設定のほうがラクかとも思いますが
>>102
イベントで配置変更すればいいのでは
攻め込みに関しては船だけsetdoneすれば良い
setDoneに加えてエリア制にしとけばと思ったけど
CPUはエリア制無視することがあるんでしたっけ?
なら陸軍海軍分けて永久同盟・・・だと援軍で上陸してくるかw
>>101
逆にするしかないんちゃう? 条件が成立しているあいだdoskillし続ける
>>103
>>104
返答ありがとうごさいます。
eventで強制的に編成いじれば良かったですね。
システムにばかり頭がいって。基本的なことを忘れてました。
モニターばかり見ていると駄目ですね。
>>101
そのイベントで新スキルを発射して、発動中の常時スキルを相殺すればいいと思います。
マップ上のスキルって相殺できるのか
>>104
そうすると操作中に発動状態を作れないような
条件が成立している間発動=その間は操作不能になっちゃうし
>>106
マップ上のスキルって相殺できる?
>>107
>>108
試してみたら駄目でした。確認せずに思い付きで書いてすみませんでした。
>>108
たとえばワールドイベントの最初で
if(条件成立) { doskill( 条件成立しましたよ ) }
とでもしたらいいんじゃない? ってことです
条件不成立時にスキルを消すのは面倒だろうし
多少ダブって表示されてもわかりゃ良くね? って
イベントで火災エフェクト発生、その後の火が消えるイベントまで燃え続けてイベントが発生したらパッと消える、みたいなやつでしょ
永続系はワールドイベントだとどんどん重なって重くなっていきそうだし、炎にしろ魔法陣にしろ天候にしろ重なると汚くなるし厳しい
image(画像名)みたいに座標指定なし実行で消えればいいんだが
初歩的な質問ですが例えばクールラントのマリアがゴットハルトを雇用できるようにするにはどうすればいいですがか?
解決しました。
>>111
そんな感じです
相殺とかができないんで、何らかの削除方法がないかなと
一瞬で終わる戦闘シーン挟むとかはいくらなんでも強引すぎますしね
>>101
いろいろ試した結果、マップ上で発動中のスキルを消すことができました。
手法は単純で、発動中の常時スキルに、少し大きな新スキルを被せるだけです。
(削除できなくても、同じ場所に画像を置けば、下に隠れる)
111の例で言うなら、火災エフェクトの上に、背景画像の一部を静止スキルで上に置けば、
火災エフェクトは見えなくなるので、プレイヤーには火災が消えたように見えます。
(ただし、スキルが移動してると、うまく隠れないかもしれません。)
doskillで別の場所に同じスキルを発動すれば消えなかったっけ?例えば画面外の座標とか。
上書きするのであればimageかpicture関数で背景を表示してやれば必ずスキルの上に画像が表示されるね。
描画レイヤーの順番はバックグラウンド->スキル->静止画像の順番。スキルと静止画像の順番を任意に変えることができるといろいろ面白そうなことができそうなんだけどね。
>>116
ありがとうございます、試してみます
目的としては、勢力にバフがかかっている状態を動的な画像で表示したいといった感じです
このバフがかかっている間は勢力所属ユニットの攻撃力が1000アップとかそんな感じですね
勢力同士で内政を多用するシナリオなので、勢力にバフがかかっているかは非常に重要な要素でした
勢力にバフを示すっていうだけなら、勢力旗をちょこっと改変させてもらって、
バフ時だけ旗チェンジっていうのだと動的?かどうかは判断できないし目立ちにくいかもしれないがいけそうでは?
旗は一応2コマあるから、剣マークに↑の長め、短めで簡単なアニメーションも出来るし
バフが掛かった最初だけスキル発動させて、あとは旗で表示。みたいな?
>>116
試しに長時間発動するスキルを1回目、2回目に同様のスキルを-1,-1で発動させてみたところ、1回目のスキルが途中でとぎれました
おもったよりいい感じでありがとうございます
とてもいい感じになって助かりました
>>118
ご意見ありがとうございます
複数buffが表現できないこと、表現に色々縛りが多くなってしまうあたりの理由で今回はスキルの方向性で行くことにしました
容易に大量に作れるという意味では魅力的なので、使える機会があればその方法を是非使ってみようと思います
>>42
私の環境ではJavaのバグでMapMakerを使えないので、mapBuilderで戦場マップを作ってます。
便利なツールを公開して頂いてありがとうございます。
使っていて、奇妙な不具合に気付きました。セレクタ内容を編集する際に
「begmw」の英文字を入力できません。「mud」とタイプすると「ud」になります。
コピペで貼り付けれるので深刻ではありませんが、一応報告しておきます。
スキルを進行方向に左右反転だけする方法ってないでしょうか?
ユニット画像なんかをエフェクトの一部として使いたいときに
向きによって左右反転してくれると色々使えそうなのですが
>>121
本家シナリオの奇襲(b_surp)では「image=@@」にして、ユニット画像を表示してます。
そして、「d360=off」にすれば、スキル発射時のユニットの向きになるようです。
ただ、左右反転だけだと、上下方向に発射する場合は、ちょっと変に見えるかもしれません。
本体と分身の区別も付きにくいし、エフェクトを工夫する必要がありそうです。
>>122
おおっ、ありがとうございます
image=@@って使用者のユニット画像を表示してくれるんですね
エフェクト自体は高速移動の残像みたいにしたりとか、
必殺技とかで兵士がわーっと雪崩れてくるとかそういったのを考えていたので問題は無さそうです。
・・・ここまで書いて思いましたが、使用者以外の画像使用は無理そうですか?
image=スキル名@でいけるのかなーと試してみましたが駄目でした
ground = (数値)
0 にするとユニットの下に表示されるようになります。
ただしこの場合はスキルイメージをimage.datの方に含める必要があります。
っていうのがあるよ
>>120
報告ありがとうございます、小物入れ1に修正したものをアップロードしました
自分では気付けなかったと思うので(あの欄を使わず別のエディタを使っていた)、非常に助かりました
領地が退却線で繋がっているかどうかを判定する関数はないですか?
領地AとBを同勢力に出現させて退却線でつなぐと
isjoin(A,B) isnext(A,B) のどちらも0が返ってきます
>>125
素早い対応ありがとうございます。これからも活用させて頂きます。
>>126
私が以前調べた時は、退却線を判定することはできませんでした。
その代わり、イベントで戦闘開始時に連絡線を設置&戦闘後に除去することで
「戦略マップでの部隊移動や援軍派遣はできないけど、戦闘時に退却できる」のは実現できます。
ただし、どの領地を繋ぐかはスクリプトで制御しないといけません。
アイテム屋機能をきのたけに入れようとしたいです。
アイテムのタブは出来てるみたいなんですけど、肝心のアイテムスキルが全部無効スキルになっています。
どうしたら直るでしょうか。
>>128
そのスキル自体は有効なスキルですか?
アイテムではなく、スキルとして付与してみてください。
それで有効であれば、アイテム付与の記述法が間違っているのかもしれません。
スキル自体は有効なのを確認しました。
原因はアイテムスキルを元のスキルとは別の.datファイルで記述しているせいだとわかりました。
元のスキルと同じファイルで記述すると治ってんですが、別々のファイルで動かす方法って何かありますか?
>>130
元のスキルとはどういった意味でしょうか。
どんな記述をしているのか分からないのでなんとも言えませんが、アイテムスキルと攻撃スキルは別のファイルに記述しても構いません。
>>130
テキストファイルの形式に問題があるのでは。
きのたけは確かunicodeだったはず。
ランシナで自軍の初期人材に選んだ人材が敵勢力の選んだ初期人材と被ってしまって、
敵勢力に人材を持っていかれてしまったり自軍に複数のマスターが発生してしまう問題の解決方法をご存知の方いますか?
具体的には光の目MODを適用したきのたけのランシナです。
difffでスクリプトを見比べたりシナリオ制作wikiを読んだりしてるのですが分からなくて。お願いします。
AシナリオのユニットをBシナリオに入れる改変をしているのですが、Bシナリオ人材にBシナリオの一般を雇用できるように、Aシナリオspotのベースにmerece=を追加してBシナリオのクラス名を入れるとAシナリオの一部人材が一般を何も雇用出来なくなるのを回避する方法を教えていただけませんか
雇用欄に一般が表示されていても赤文字の雇用不可状態になっています
ヴァーレントゥーガまとめwikiにて
「merce(雇用)についてのあれそれ」というTipsページを作ってみました
https://www28.atwiki.jp/vahren_ency/pages/1126.html
分かりづらかったり間違っているところがありましたら教えていただけるとありがたいです。
raceにsortって適用できないかな?
ユニットにカーソル当てた時左上に出てくる「雇用できる種族」の欄を並べ替えたいんだけど。
>>136
その手があったかと試してみましたが、sortを指定しても機能しないようです。
私は雇用欄の種族やクラスを好みの順番にするために、名前の先頭に数字をつけてます。
単純に先頭4文字ぐらいの英数アルファベット順になるようです。
例えば、「human, elf, goblin」と書いても「エルフ(e)、ゴブリン(g)、人間(h)」の順に表示されます。
種族名に「010human, 020elf, 030goblin」みたいな数字を付与しておけば、
その数値の順番に表示されるので、同じ系統の種族・クラスを連続させることができます。
なお、大きな数字を飛び飛びに指定しておけば、後から種族やクラスを間に追加した際に、
他のを書き換える手間が省けます。最初に全て設計しておけばいいのですが・・・
>>137
返答どうもです。色んなソートを試しましたがダメみたいですね。
単純なアルファベット順になってる気はしてたけどrace構造体の名前とは盲点でした。
今のところそれがベストかな
ヴァーレンのダメージ計算式ってどうなっているのですか?
耐性で何割カット、スキルでステータス倍率、最低ダメージ保証ありくらいしかよくわからない
攻撃側のステータス値*スキル倍率*耐性倍率*乱数(0.8~1.2) - 防御側のステータス値*乱数(0.8~1.2)
ステータス値は攻撃側の参照ステータスが(攻撃力・攻撃力+技術)なら防御側は防御
魔力・魔力+技術なら魔抵抗、攻撃力+魔力なら(防御+魔抵抗)/2
耐性倍率は調べてる人がいたんでそれを参考にしてみるしか
https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1463836625/994-
質問です。
ボスキャラがいて、取り巻きの雑魚を倒すとその度にボスが強化される・・・という仕様を作りたいのですが、
breakやskillTroopでの強化スキル発動は強制的にmissile属性になるからなのか、自分なりにどう記述してもうまくいきません・・・
雑魚の人数をカウントして直接ボスの能力値をいじってみましたが、能力最大値が変更されるだけで戦闘中の能力反映もされません
詰んでおります。知恵をお貸しください・・・
普通にbreakに直接これでいけましたよ
何か間違っているのでは
ただ確実にボスだけを狙うとなると話は変わってきますが
skill test
{
w=300
h=300
time=10
bom=on
center=on
attack_us=1
//nextはシナリオで変えて下さい
//ここではNGTのめいどヒール
next=maid_hp
}
クラス設定でボスの強化限界を大きく、雑魚は強化できないようにしておけば、
breakで味方に当たる超広範囲全体攻撃からバフに繋いでも、ボスだけが強化されそう。
(強化限界に達してても雑魚全員にエフェクトがでたらうっとうしいかも・・・)
エヴァネッセントの斉射系スキルみたいに耐性でボス一人に対象を絞れないかな?
各敵の死亡時に見えない効果なしの広範囲スキルを発動させて、それに反応させてボスが自己強化や回復するように繋げればいけるとおもう
もしくはハルベリの戦史MODで使われてた手段だけど、該当の敵を倒したタイミングに合わせてボスにスキルを強制発動させる手もある
逆に戦闘開始時にボスが雑魚をターゲットして追尾スキル発射、外れた時(=雑魚死亡時)にnext4でバフを発動するようにする手も
あとは死亡イベントでaddskill2でバフ必殺技付けるか
ただどっちも死亡からちょっとディレイができちゃうか
ありがとうございます!雑魚の人数をカウントして、>>142 の記述にattack_us=7を追記してボス本人にskillTroopで発動させたら効果が適用されました
属性耐性による差異でのスキル発動もやってみたのですが、強化限界を下げ耐性を無敵にしても強化魔法のエフェクトがかかってしまってうまくいきませんでした
記述を増やせばうまく作用するのかもしれません・・・ただ一行目のやり方でカバーできたので、ボスに発動させるやり方で進めたいと思います。
助かりました!皆さんありがとうございました。
多分timeかwhの記述が無くて判定が発生してなかったオチかな
>>145
その方法だとユニットが斜面にいるときに動作の確実性が保証できませんよ。
画面手前が高くなる傾斜面で、カメラに対して斜面が見えないくらい急な斜面にユニットがいるとスキルの判定範囲内に存在していてもスキルが当たらない場合があります。
ユニットの高さを二次元座標に変換する処理に不具合でもあるのかもしれない。
へー
人材って親子や兄弟などの血縁関係って作れない?
本家ヴァーレンには居ないけど、他シナリオには割と列伝で親子や兄弟と明言されてるキャラがいるぞ
多い所だと敗軍の覇者のからくり士一家(父、5姉弟)とか、天地の教皇一家(父、4兄妹)とか、
VGのサフラン一家(父母、娘2)とかかな
>>150
陪臣とかじゃなくってってこと?
子人材のステ表に
父 ポッチャマ……
母 アチャモ……
とか、表記させたいってことでは
列伝に書き込む!
battle構造体でフラグ乱立すると、ゲームが重くなったりするんでしょうか?
やっぱり列伝レベルになってしまうか
信長の野望よろしく血縁による一体感や引き抜き防止みたいなものが
できないかなと思った次第
そういうのなら宿将設定で出来るんじゃないのかな
一族とは違うかも知れないけど求めてる状態としては同じかと
まぁ陪臣と宿将とfriendの設定と色々やりようはありそう
なるほど、色々やってみる
ありがとう!
がんばれえ
たまにskillとかclassの構造体の名前に「:」が入ってるのを見るんですが、あれって何か意味があるんですか?
オリシナ作っちゃお の引用になるが、
:baseという記述はbase構造体の要素を継承する記述です
とあるよ。これやると、共通の設定とかをイチイチ書き込まなくて済むんだと思う
記述がない項目の数値が継承元と同値に乗なるのと
クラスの場合は雇用条件が継承元でも判定されるようになる
とかそんなん
例えば
class soldier
{
hp=10
mp=10
attack=10
defense=20
move=100
}
class knight : soldier
{
defense=0
magic=1
move=200
}
とするとknightはhp10,mp10,attack10,defense10,magic1,move200のユニットになる
knight側に書いてない部分を指定先から補足するってこったな
雇用継承はよくわからない
defense0だった
理解しました
ありがとうございます
>>163 の雇用継承って初めて聞いたのだけれども
fkeyを継承してるとかではなくそういうのがあるのですか?
どなたか詳細を教えていただけませんか?
制作講座にも載っていないみたいで
去年の最終更新の前にななあし氏に搭載して欲しかった関数が
addMerce、subMerce、changeMerceと戦場マップにいる生存ユニットの位置(x,y)の数値変数取得かな
揚げ足とりかもしれんけど、単に
classかunitに雇用関係が記述されてなくても
:での継承元に記述されていれば雇用条件も上書きされる、という程度の話では?
それなら1行目だけで良いしclassだけでもないのでは
数値ではないが
まあ何にしろ継承それ単体にそういう機能はないと思う
>>167
そもそも>>163 は雇用継承なんて言葉使ってないぞ
さすがにそれは
雇用を継承するシステムを雇用継承と呼ぶのは自然でしょ
基底クラス以外でのグループ化か
想像する分にはちょっと便利そうな機能ではある
skillsetみたいにmerceset構造体とかでまとめて記述できたら…結局手書きしそう
中立ユニットにスキルをランダムに増やしたら記録量すごくなるけどこれがなんか面白い
addAssist_skillが欲しくなる
もうなんの話してるのかすら分からない
addPowerMerce2 が機能していないことに気付いたのですが、原因が分かりません。
addPowerMerce なら動くのですが、wikiにある「マスター関連のデフォルト雇用情報がリセットされる」という情報について詳細をご存知の方いらっしゃるでしょうか?
デメリットを許容できそうなら、そちらを利用していこうと思うのですが。
質問です。
addstr(@mojirenketusitai, 0)
をやろうとしたら「数字を文字列として扱えません」的なエラーが出ました。
なので、数字を文字列として認識させる方法は無いでしょうか?
一般的なプログラミング言語であれば数字を文字列として扱うことは出来るので、方法を模索しているのですが見つけられません。
もしくはこれはバグなのでしょうか?
また、addstrの逆でsubstrは無いのでしょうか?
例えば「0+」と打てば一応0を文字列化することは出来ます。
あとはこの+を削除することさえ出来れば一応0を文字列として残すことが可能となります。
しかし上記のsubstrに該当する関数が無い為、現状この方法は取れません。
ですので、もし私が知らないだけで同じ機能を持つ関数が他にあるのであれば、教えて頂けないでしょうか?
連投失礼
もしやはり数字を文字列として扱えないことが仕様なのであれば、
変数の型を、数字型から文字型へ変換する関数があれば良いなと思いました
こういった関数は存在しないのでしょうか?
やったことないけど数字の前に@置いてもダメなの?
サンプルスクリプト置いてあるサイトあれば拡張シナリオ新規増えるんじゃない?
>>176
具体的にどういう使い方か分からないのですが、代替案を考えてみました。
1)全角文字を使う。addstr(@mojirenketusitai, 0)
人間には読みやすいけど、識別子を作ることはできない。
2)文字列の最期の文字と数字を合わせる。addstr(@mojirenketusita, i0)
連結すれば同じだけど、あらかじめ全ての数字分用意する必要がある。
vahren.exeたんはアh…もといおっちょこちょいだから数字のみの文字列は数字と認識してしまうのだ
可愛いのだ
ちゃんと文字列であることを示してあげないといけないのだ
色々試した結果、skillsetを使う方法をこの前発見したのだ
skillset number0to9
{
member=0,1,2,3,4,5,6,7,8,9
}
story test
{
//テスト用 addstrでunit0〜unit9を作って表示
set(idx,0)
while (idx<10) {
storeskillset(number0to9,@number)
index(@number,idx,@number)
setv(@unit,unit)
addstr(@unit,@number)
msg(&@unit&)
add(idx,1)
}
}
class unit3
{
//構造体認識できてることの確認用
name=ゆにっとさん!
}
長々書きましたが、想定されてる使い方ではないと思うので素直に_を付けるかアルファベットに変換した方が良いと思います(突然の素面)
どの変数がどれくらいメモリーを消費しているか調べる方法はありませんか。
>>181
私は元の質問主ではありませんが、skillsetを使う方法はすごい発見ですね。
自分でちょっと試して無理なのかと諦めたことでも、ちゃんと方法を見つけた人が居てるとは。
この改造・制作スレを読んでると勉強になります。今後もご教授くださるようよろしくお願いします。
>>182
色々やりながらタスクマネージャーをチラ見するしかない
お返事が遅れてしまい申し訳ありません。
皆さん反応して頂きありがとうございました。
>>181 さんのアイディアですが、これは私が求めていた結果の一つでした。
ありがとうございます。是非有効利用させて頂きます!
ド素人で申し訳ないんですが、
元のに入ってるimage.datやimage2.datってオリシナに流用したらNGですよね?
キャラはまだしも、攻撃時のエフェクトまで全部自作するのは流石に無理そうだなって思ってるんですが、
共通で使えるエフェクト集とかってあるんでしょうか。
wikiの素材集とかを漁ってみたら色々あるんじゃまいか?
小物入れとかにいっぱいあるし、オリシナで使われてるものを逆引きすればサイトも見つかるよ
オリシナの逆引き!助かりました!
wikiの素材は多くがリンク切れしてたので困ってました。ありがとうございます!
imageViewについて質問です
imageView2を使っています
ちゃんと起動したんですけど、追加したい画像をimage2フォルダに入れても「追加候補」に上がったりせずimage2.datの中の画像が表示されるだけです
image2フォルダに入れている画像はpngファイルですが、何か問題があるのでしょうか
すいません
自己解決しました
アイコンの追加を押してもエラーメッセージが出続けてるなと思ったら
いつの間にか追加できてました
遅くなったけど、追加するときはボタン押したら何も表示とかなしに追加されるよ
戦闘イベントでskilltroopを使って「一定間隔ごとにスキルを発動する」という処理は、
rif構文でresettimeとgettimeを使う以外に方法はないですか?
isIntervalじゃダメなの?
rif構文以外で繰り返す方法ってこと?
>>194
ピッタリな関数があったんですね・・・すいません。
勉強不足でした。それで解決しました!ありがとうございました。
直線状の味方を回復するスキルを作りたいんですが、
もしかしてmissileからhealにつなげるって不可能だったりしますか?
>>196
本家シナリオのエルティアにアンチヒールというmissileからhealに繋がるスキルがあります。
attack_usで味方に当たるようにすれば、その味方を回復できます。
ただし、missileの標的は敵ユニットになるので、味方ユニットを狙うのは難しいかも。
>>197
ありがとうございます!!
func = healじゃなくて、missileのままadd = hp で書けばいいのか盲点でした!
>>198
いやよく見たらfunc = heal ですね……ともかく参考にやってみます、ありがとうございます!
割と既出の質問だと思いますが見つからなかったので恐縮ですがここで・・・
自部隊の人材がいる部隊を選択中にその人材にセリフを喋らす事は出来るのでしょうか?
死亡セリフなどではなく劣勢時や優勢時の時に自動的に喋ってくれるやつです。
選択中でも喋って欲しいのですがどこをいじればいいのでしょうか><
BGM が流れません
根管設定にもスポットに書き込んでも反応せず イベントで導入してもなりませんでした
ボリュームについても、根幹及びストスポットに書き込んでありゲームでも音量50に設定してありますがなりません
音声ファイルは mp3形式で、しっかりと拡張子も書き込んでます
似たような事案に出会った方はいらっしゃらないでしょうか
助けてください
ぜひ、その空之律者(モデルについてる名前は違うらしいけど)とTda??とその中に一緒に入ってたモデル分けて欲しいです
どうかお願いします
……ID:WrIKbVTQ00は分けてくれなさそうなので
>>200
force_voiceで設定すれば陪臣でも話すようになった気がします。
質問です。既出かと思って過去ログ漁ったけどよくわからなかったので。
オリシナを作ってて、exe起動するとエラー吐かずにイメージの読み込み25%で落ちるんですが、これはスクリプトに問題があるんですか?それともイメージ側ですかね?
よろしくお願いします。
>>204
PCスペックの問題とかでは?
>>203
マスター時での他部隊選択中にもセリフを喋らせたいのですが
これも可能なんでしょうか?
>>205
他のオリシナは問題なく動くんです 祖国と銃と、きのたけ、光の目…etc.
もう少し考えてみます
そもそも選択中ってのが難しいんじゃない?
選択中に喋ったっけ?
そもそも特定条件で喋らなくなるってのが初耳
そんな仕様あったんだ
>>204
試してみたらimageフォルダー内にimage.datやimage2.datが存在しないと、
イメージの読み込み中に強制終了しました。他にも必須のファイルがあるかは不明です。
動くようになるまで、本家シナリオから画像ファイルをコピーしていけば、
どのファイルが足りない(あるいは問題がある)のか判るかもしれません。
>>210
わざわざありがとうございます 帰宅したらそのように調べてみようと思います 当方マジモンの初心者でして、本当にありがとうございます
>>210
動きました!
スキル画像設定してないしimage2いらんやろって入れてなかったのが問題だったみたいです
デフォからそんまま持ってきたら動きました
恥ずかしながら超初心者的アレでしたありがとうございました
>>201
前スレの>>61 から>>66 あたりで同様の現象と解決した事例があるから試してみると良いかと
>>213
ありがとう、親切な人よ。
頑張って素敵なオリシナ作りますね
「雲の隙間から差し込む光」を表現したいんですが、うまくいきません
現状これぐらいの出来なのですが、
https://imgur.com/a/7Xmf6Om
この状態に加えて、光が斜めから差し込むように、縦の光の筋を動かしたいのです。
skill hikari
{
value = 40
exp_per = 60
mp = 5
name = 光
icon = twinkle.png, @light.png
sound = coin07
image = ef020
anime = @
w = 100
h = 100
a = 32
func = missile
damage = -2
range = 5000
time = 3000
just_next = m_twinkle_nt23
resize_interval = 2
resize_a = 9
mp = 50
resize_a_max = 100
}
skill m_twinkle_nt23
{
image = ef020
w = 100
h = 600
a = 64
resize_a = 2
resize_interval = 1
time = 3000
damage = -1
range = 5000
resize_a_max = 100
}
ダミーユニットにスキルをうたせて、マップ上に光を出現させる予定なのですが、
問題は、「どの地点にスキルを撃っても、同じ角度から光が差し込んでくる」ようにしたいのです。
色々と試行錯誤したのですが、理解の範疇を超えた挙動ばかりが起きて、エターになってしまいそうです・・・
もしよろしければご教授お願いします。
余計な記述が多くてすみません。力尽きて現状のものをそのまま張り付けてしまった・・・
start_degree_type=4で向きとか関係なく指定方角に発射できるんじゃなかったか
天候はいくつかのシナリオであるから見てみるといい
なんとかなりました!ありがとうございます。
d360をつけたら射程が短くなりましたが、一旦別のスキルを挟んだりして解決しました。
それにしてもスキルだの内政だのじゃんじゃか作ってるシナリオ制作者って何者なの・・・
>>11
スポット配置ツールは二つあるのですが、SpotMakeHelperはユニコードに対応してないので、
sBuilder(mapBuilderと同じ作者?)を使うことにしました。毎度ありがとうございます。
領地の位置関係やルートを考えながら、その場で調節しながら見れるのが便利です。
ただ、領地の座標を数値で変更すると、その領地に繋がってる連結線が追随しない事があります。
一番上の領地だけ不具合が発生したけど、何が原因かは不明です。
とりあえず、数値入力はテキストエディターで直接編集すればよさそうです。
すみません、原因不明でどなたかわかる方いらっしゃれば……
オリシナ製作中、移動力アップ・ダウン系のスキルが全て動かなくなりました。
(スキル説明文は正しく反映されているものの、発動がされていない)
本家のバフスキルの「ムーブ」をそのままコピペして使っても動かないので、
恐らくスキル以外の部分がおかしいのかなと思っています。
何か心当たりがある方がいらっしゃれば教えて下さると助かります。
移動のバフ上限下限がなくなってて強化弱体しようがなくなってるとかじゃない?
>>221
各ユニットのmove_max = 130に設定しました(raceで記述。念のためclassでも記述しました)
なのでそこは大丈夫だと思うのですが……
ちなみにmove以外のステータス(attack,dextなど)はちゃんとバフ・デバフが機能しています。
>>222
classで記述したつもりだったんですが抜けてたようです……。
classに記述したら動きました。ごめんなさいお騒がせしました。
退却時に助けて―、ぎゃああとか小さな文字が出てくる文章の変更方法分かりますか?
>>224
imageMakerでimage1.datを作るときに編集できる
具体的に言うとはimageMakerフォルダ内のvoce.txtを弄ってからimageMakerを実行すればOK
sBuilderで保存に失敗して作業中のデータが失われる、深刻な問題を発見しました。
データを変更した後に保存せずに終了しようとすると、「終了前に変更を保存しますか?」
と聞かれて「はい」を選ぶと保存されるはずです。
しかし、データを4KBしか保存しない事があり、ファイルのデータ構造は破損します。
そして、それ以降は「既に存在するファイルを作成することはできません。」というエラーがでて、
通常の保存も一切できなくなります。
この時、作業前のデータがscenario_temp.txtとspot_temp.txtという名前でbinフォルダーに存在していて、
これを破損したデータに上書きすることで、作業前の状態に復帰できます。
保存ボタンでの保存は正しく動作して、終了時の保存だけが失敗するようです。
sBuilderで保存できなくなって困った人は、これを参考にしてください。
ななあし様
私はDirectX 9とC++で記述されているであろうヴァーレントゥーガをUnity C#で再実装しようとしているものです。
つきましてはご許可等をいただきたく存じます。
ヴァーレントゥーガの仕様全てをソースコードを見ず把握することは私の腕前では不可能でした。
実に厚かましいお願いではございますが、ソースコードを共有していただけると幸いです。
大変恐縮ですが、ご連絡くださいますようよろしくお願いいたします。
twitter: ttps://twitter.com/pCYSl5EDgo
email: pcysl5edgo@gmail.com
追記:このメッセージはwikiの方にもおおよそ同様の内容として書き込ませていただきました。
おお〜楽しみ
ななあしさん見てくれるかな
見てくれててもソースくれるかどうか
くれる意志があるなら更新終了の時点で出していそうな気がするが
ソース非公開の理由としては(かなり希望的観測ではありますが)、暗号化の仕組みを一般に公開したくないのではないかと思います
ななあしさんと連絡とれるであろう、避難所管理人さんにメールでまずお願いしてみて、こっそりのがいいんじゃない?
ななあしさんと連絡とれるであろう、避難所管理人さんにメールでまずお願いしてみて、こっそりのがいいんじゃない?
暗号化の仕組みが一般に公開されたら正直困るな...
作ったり、作ってもらったりした素材の転用防ぎにくくなるし
ロステクとか銃魔みたいな商用の既存シナリオもあるしね
詳細が公開されてない関数がAI関係だけいっぱいあるんで
AI関係のところは細かく見られたくないのかなあと思ったことはある
2つ質問があるのですが、人材をマスターの部下に、陪臣にせずに移動させるにはどうすればよいのでしょうか?
雇用だけが役割な人材を、邪魔にならないよう開始時にマスターの部隊に入れておきたいのですが、
memberで初期配置したり、addUnitで移動させると陪臣になってしまいます
そうなると召し上げしないと雇用欄が使えないので、少し操作感が悪く……
それと、これは別の質問なのですが、storeMemberOfUnit等で取得できる、複数の要素を持った文字列変数……というか配列ですね
この配列って、作ろうと思ったらコード内でaddvしまくるか、
ダミーのunitを登場させてstoreMemberOfUnitで抜いてくる以外の方法はないのでしょうか?
= a, b, c...って簡単に作れれば使い回しがしやすくてよいのですが……
陪臣は何度か話題に出てるけど誰も解決してない
配列はskillsetにまとめてstoreSkillsetするか
class test
{
skill=a,b,c…
}
みたいなのを作ってaddUnit→スキル取得→即削除で一応できるけど、恐らく想定された使い方ではないので安定動作は保証できない
ダミーのunitを登場させてstoreMemberOfUnitで抜いてくるっていうのはよく分からないけども
直接メアドとかを公開していない以上、問い合わせとか嬉しくないだろうし
掲示板やらでななあしさんに何のメリットも要求を通すために連絡を乞うのはあんまり良くないかもと思った
ソース公開要求に同調する人が出てきたら圧力かかるし。。
ななあしさんと繋がりがある方面の方々に仲介を頼んで、ダメだったら諦めるとかのがスマートそう
>>237
回答ありがとうございます!
なるほどskillsetってそういう使い勝手なんですね。
これまでunitのmemberに文字列を列挙して、それをstoreMemberOfUnitで引っこ抜いて配列にしてたんですけど、
そっちはマップのどこかにそのunitを配置しないと空文字列しか返ってこなくて不便に思ってたんです。
skillsetなら関係ないみたいですね、助かります。
で、陪臣、ダメなんですか……。
莫大な量の雇用から選ばせる形なんで、choiceを使うのもちょっと現実的じゃなさそう……弱ったなぁ。
>>231 さん アドバイスありがとうございます
ソースコード一般公開を要求をしているわけではないです
赤の他人である一人に共有するのって公開と変わらない気もする...
うまくいえないけど、一人に共有しちゃったら、自分にも教えて!って人が殺到しそうだし
ソースコード公開されたり、ほぼパクリなゲーム製作ツール作られたりしない保証なくない?
ヴァーレンができて何年もたつけど、ソースコード公開されてないのには理由があると思う
もう外野がとやかく言う事じゃなくないか
連絡つかなかったり教えてもらえないからって暴れてたりしてたらアレだけど、
この人は別に失礼な訳でも、しつこく要求してる訳でもないんだしさ
一応こっそり連絡とって可能なら・・・みたいな感じにするようだし、後は当人同士の問題でしょ
仲介頼んでこっそりなら、簡単に捨てアド作れないドメインのメールの方がいいよ
ツイッターとかは本人証明にならないからいらないと思う
外野が聞かれてもないのに不安を煽るようなこと言ったりするの、依頼者を間接的にけなしてるのと大差ないぞ
どっちか片方を心配してれば何いってもいいわけじゃない
ちゃんとプログラミングに関連する質問だし、そもそもスレ住民が判断する話題じゃないね
傍から見ても外野がしゃしゃり出過ぎだわ
というか一般公開を求めてないことは本人も言ってるんだしちゃんと文章読もう
外野が干渉しすぎだ〜系のレスもこの辺にしとこう。言葉に棘も見えてきたしこれ以上は荒れる
あとは当人同士に任せよう
何故ageたのか
コレガワカラナイ
>>248
キャップだからだろ
???「連絡を求めます!(固いsageる意思)」
この方がよっぽど意味不明なのでは
>>250
せやね
真摯にお願いしたいなら名無しとしてやるより、目的の人の知人にメールでアイサツして名を名乗り仲介をお願いするとこからはじめた方が良さそうで
目立ちたいなら掲示板・ウィッキーよりふりーむのが良さそう
ななあし氏の知人って誰がいるの?
直接連絡できる人?
界隈長くないから知らないわ
ヴァーレンの作者さん方だと、
避難所管理人様
ロステク作者氏(ロステクに合わせたと思われる本体機能拡張、ロステクの英語版開発に協力&祝辞も寄せている)
おっさん氏(ニコの企画ゲームである銃魔に関わっている)
辺り?じゃないかな。有名シナリオ作ったら信頼も生まれてお話しやすそう
>>239
雇用だけが役割な人材、というのがよく判らないのですが、
一般兵からの雇用じゃ駄目なんでしょうか。
詳しく書けば誰かがいいアイデアを思い付くかもしれません。
名無しもクソもツイッターあるじゃん
オンラインの有志でやるソフト開発で身元示すのに4500ツイート100人以上のフォローの垢なら十分すぎるレベルでしょ
万が一嫌味で言ってるにしても無茶苦茶すぎる
>>254
仰る通りで、>>239 のレスの後、一般に雇用を持たせて毎ターン強制復活&配備させるようにして対応してました
助言ありがとうございました
>>255
そうカリカリしなさんな
真面目なお願いをするなら匿名掲示板より適した方法があるよってだけじゃん
白砂糖すきだからCOMだとすぐいなくなるの悲しいわ
団長の望み通りではあるんだろうが
要望出すのにここ使うのはいつものやり方だし、普段から使ってるSNSアカウントつけてて
名無しや何の実績もないコテだけより頼む方も頼まれる方もずっと重みあるのに文句いわれてるのはさすがに不憫だわ
正直こんなに荒れる話題では無いような
流石に開発を委縮させてしまうぞ・・・
まあプログラミングとかに精通してる人には思うことがあったりしたんじゃない?
>>248 みたいな、何でもいいからイチャモンつけたいって感じの奴も混じってるからややこしくなってるんだ。多分。
俺ルールにしか見えない説明振りかざして噛みついてる時点でアウトですわ
プログラムに詳しい詳しくない以前の問題
改造・制作スレ的にオンライン化って出来そうなの?
出来ればすげぇ楽しみなんだけど
ヴァーレン本体は無論のこと光の目やむなしい努力をオンラインでやれたら無茶苦茶面白そう
前提として参加するユーザー全員の回線の質が良好である必要はあります
結論:
戦略パートでマルチ対戦は十分可能でしょう。
戦闘パートを25FPSで行うのはできなくもないと言えるでしょう。
Unityにおけるオンラインゲーム制作について軽く説明したいと思います。
UnityではPhotonという企業が提供するSDKを利用してP2Pなオンラインゲームを作るのが一般的です。(もちろんPhoton以外の競合もありますが、今回は割愛します。)
このPhotonはこちらのPhoton入門記事 ( ttps://connect.unity.com/p/pun2deshi-meruonraingemukai-fa-ru-men-sono1 )にわかりやすくまとめられていますが、
ルームと言う単位でオンラインゲームを管理しています。
最大20人がルームに参加できます。つまり20勢力まで操作できると考えられます。
さて、オンライン対戦で重要なのは戦闘パートですが、ここは最低限25FPSは確保したい所です。
そしてPhotonではメッセージをお互いに飛ばし合ってゲームを進行させます。
この飛ばせるメッセージ数が1秒間に500回までと決められています。
1ルームの秒間メッセージ数はおよそ、1人のプレイヤーが1秒間に送信するメッセージ数 * ルームへの参加プレイヤー数の2乗です。
4人なら1秒間に30回ほど送れますのでプログラミングをかなり頑張れば戦闘パートが成立するのではないかと思います。
私が無知なだけであればよいのですが、困ったことにPhotonはメッセージを送る相手を選べず、常に全員に送るか、ルーム開設者に送るかしかできません。
故に2勢力間の試合を観戦しないプレイヤーがいたとしてもきっちりメッセージ数が消費されてしまいます。
快適にプレイするならオンライン対戦のプレイヤーは2人、または3人という風に制限するべきでしょう。
なお、これは完全無料でオンライン対戦を行う場合の話です。
サーバー代を払い、かつプログラミングをできる方であればメッセージ数制限を取り払えますので10人対戦とかできるのではないでしょうか。
一応2020年頃までには全く新しい無料ゲームサーバーサービスが始まるという噂もありますので、もっと大人数でプレイできるようになるかもしれません。
そもそも、オンライン対戦の戦闘パートでスペースキーを押しての戦闘中断の扱いをどうするのかなど慎重に議論を重ねるべき内容も多いでしょうね
違うそうじゃないってのは分かるけど
ファーレン時代風にセーブデータ交換したりオリジナルのマスターを自動で競わせるのもオンゲっちゃオンゲ
こういうクラシカルな方向で何かあればやりたいなあと思うけど
ヴァーレンはバランスが自由なんでかえって難しいね
毎度オンラインの話が出てくるけど二人でやっててもガチで勝ちにいくなら経験値稼ぎやらするハメになるし
自分に来るまで1時間以上ほいほいかかるようなゲームをやりたいか?と思わなくもない
ファーレン時代に多人数プレイしたけど回ってくる時間長すぎて別ゲーが主体だったしこれがオンラインだと
相手は暇すぎて別のことしててそのまんまかえってこないとかもありえる
たぶんやるならオフラインで軍隊揃えてオンラインで合戦かねえ
ソシャゲかなんかで良く有りそうな感じかも知れんが
むしろ戦略パートのみ操作できて、戦闘パートは高速観戦のみというのはどうだろう
…ただ、これだと弱勢力が普通に辛いのと、戦闘パートの腕前を競わずして何がヴァーレンか!と言われたら辛いのがあるが
>>261
>>262
チミ達も食いついて
最後っ屁で嫌味入れたり煽ってる時点で同類だって自覚しなさいよ
もう話題変わってるんだから蒸し返さないでくれえ
戦略パートだけならそれこそ別ゲーで良い感はあるな・・・
一番やりたいのは、戦闘パートで1部隊だけ動かして複数人で遊ぶ感じだな
NPCも混ざってわちゃわちゃしてると尚良い
索敵マップも楽しそう
話題流しがてら。
画像表示のために大量のx座標、y座標、移動速度などをセットで保存したいという相談を受けまして、隠し領地と一般兵を使った配列システムの説明用サンプルを作ってみたので、よろしければ。
スクリプトにミスがあるかもしれませんが、肝心の理屈部分は合っていると思うのでご容赦いただきたい。
https://drive.google.com/drive/u/1/folders/10tlVG1FYmBI5Jw-XNaH9mYkJW3WniV2F
お手本のようなどっちもどっち論で草
管理人クソデカ溜息ついてそう(小並
>>273
はえーすっごい
でもちょこちょこデータいじってるだけのクソザコには理解できない・・・
何をどうする時に使う感じなんじゃろ
>>272
みんなで人材プレイみたいな感じか
光の目のrtsシナリオとかめっちゃ楽しそう
>>275
想定しているのは主にデータベースです。
ヴァーレンは一般的な数値配列が無い(無いよね?)ので、例えば毎ターン開始時にあるデータを保存・参照する、という処理をやろうとすると
story kiroku
{
if (isNewTurn()) {
if (getTurn()==1) {
set(data1_turn1,data1)
set(data2_turn1,data2)
set(data3_turn1,data3)
}
if (getTurn()==2) {
set(data1_turn2,data1)
set(data2_turn2,data2)
set(data3_turn2,data3)
}
if (getTurn()==3) {
set(data1_turn3,data1)
set(data2_turn3,data2)
set(data3_turn3,data3)
}
//以下延々と式が続く
}
event hyouzi
{
routine(turnSenntaku)//ターンを選ばせる何らかの処理
if (turn==1) {
set(data1,data1_turn1)
set(data2,data2_turn1)
set(data3,data3_turn1)
}
if (turn==2) {
set(data1,data1_turn2)
set(data2,data2_turn2)
set(data3,data3_turn2)
}
if (turn==3) {
set(data1,data1_turn3)
set(data2,data2_turn3)
set(data3,data3_turn3)
}
//以下延々と式が続く
dialog(&turn&ターン目のデータは以下のとおりです。$data1:&data1&$data2:&data2&$data3:&data3&)
}
という風に膨大な量の変数とif式を書かねばならぬのです。あるいは文字変数を変換したりする手もありますが何にせよ小難しい。
サンプルに入っている配列なら
story kiroku
{
if (isNewTurn()) {
//array[ターン数-1][0〜2]にdata1〜data3を記録
pushturn(a)
sub(a,1)
set(b,0)
set(i,data1)
routine(setArray2)
set(b,1)
set(i,data2)
routine(setArray2)
set(b,2)
set(i,data3)
routine(setArray2)
}
}
event hyouzi
{
routine(turnSenntaku)
set(a,turn)
sub(a,1)
set(b,0)
routine(getArray2)
set(data1,i)
set(b,1)
routine(setArray2)
set(data2,i)
set(b,2)
routine(setArray2)
set(data3,i)
dialog(&turn&ターン目のデータは以下のとおりです。$data1:&data1&$data2:&data2&$data3:&data3&)
}
と何ターン目でも同一の処理でできるわけです。
早口オタク失礼しました。
>>277
おーなるほど!理解できました。ありがとうございます。
最後のhyouziのルーティンはsetArray2じゃなくgetArray2でした
>>277
データベースだけどこういうのはどうですかね。ACVTというシナリオが独自システムの稼働のために大規模にDBをあつかっているので参考になるかも?
event test
{
setv(@call, DB_)
addstr(@call, A)
routine(@call)
msg(値は&i&)
setv(@call, DB_)
addstr(@call, B)
routine(@call)
msg(値は&i&)
setv(@call, DB_)
addstr(@call, C)
routine(@call)
msg(値は&i&)
}
event DB_A
{
set(i, 1)
}
event DB_B
{
set(i, 2)
}
event DB_C
{
set(i, 3)
}
>一般的な数値配列が無い
いちおうグローバル変数を使うことで疑似的に数値変数の配列を扱うことができたが、実行速度が糞雑魚なのとデータのioをするたびにメモリー使用量が阿保みたいに増えるので実用に堪えませんでした。
上に書いた形式の3倍以上時間がかかるんで使い物にならなかったよ。
>>281
件の画像処理は配列システムでなくそれに近い形式が採用されたようです。
eventではなくunit名をaddstrで生成→そのunitのステータスに座標情報、skillに次の座標の入ったunitの識別子を入れておく→storeSkillOfUnitでそれを呼び出し、そのunitのskillに以下略→…という形で連続的な座標データベースを作ったらしいです。話で聞いただけなので詳細は分かりませんが。
色々方法があるのでケースによりけりですね。
そうか、作品作るわけでもないのになんとなく>>273 読んでて、
「配列なんてグローバル変数使えばそのままarray[3][2]みたいなの作れそうなのに、
なんで飛び道具使って歪に実装しようとしてるんだろう?」
と思ってたが、エンジンがあれなので速度とメモリがクソみたいなことになるのか
暇潰しにJavascriptライクな配列操作関数ライブラリ作ってるところだったが、お蔵入りさせよう……
原理としてはユニットたくさん並べてindexで取り出してるだけだし、_1,_2,_3とかをaddstrでくっ付けてグローバル変数名作るよりはシンプルな気がするが
スレの流れ切ってすみません
戦闘イベントで第三勢力みたいなのを設定することはできないんですかね?
>>285
知る限り不可能
おそらく考えてるものとは違うけど、範囲内に入ったどちらにもダメージ与える建造物とかぐらいなら作ることは可能だけど、やはりどちらかの敵としての扱いになるため厳密な第3とはならないと思います
第三勢力欲しいよねぇ
処理が難しいんだろうねぇ
敵味方問わずダメージを与えて動き方もどっちつかずにふらふらするような専用ユニット、
ないし専用スキルを付与した第三勢力のユニットをno_regular = offで置いとけば雰囲気は出るかも
こっちも質問なんだけど、グローバル変数って一度使うと手動で消さない限り消えないの?
消す際はgwrite(aaa, 0, @)ってやればいいのかな
消す処理してないのに消えたら困るべ
そういう趣旨の質問では無いのかも知れないけど
>>289
ああ、いや、セーブ関係無しに本体を終了しても残るようだから、
グローバル変数と聞いて思い浮かべるのと違うし、消し忘れるとゴミが残るしで嫌だなーと思って
>>290
ヴァーレンはローカル変数が無い
ヴァーレンで言うグローバル変数ってのは各セーブデータ間で共有するデータってこと
把握、さんくす
デバッグしてて気づいたんだけど、ものすごい長文をmsgに突っ込んだら、
切り替えた覚えもないのに真っ赤なフォントになって、その後異常終了したわ
バッファオーバーフローかな……
昨日からずっと、動的な名前の変数に値を代入する(つまり@aaaの中身がbbbならbbbに値を代入する)
方法を探してるけど、現在はグローバル変数に代入する以外の方法は存在しないのかな?
以前はstorePMのバグとかに存在していたようだけど
みんな通る道だね
>>281 みたいにイベント名指定するしか無いと思われる
event DB_A
{
set(i, DB_A)
}
event DB_A_dainyuu
{
set(DB_a, i)
}
>>295
だよねぇ、普通の変数が使えるなら速度面も問題なさそうなんだけど…サンクス
あとグローバル変数は一度作ったら削除できないっぽいわ
試しにarray[0]からarray[9999]までぶっこんでgwrite(array[i], @ないし0, @)ってやったら、
global.savのファイルサイズはぜんぜん変わらないでやんの
皆も実験的にグローバル変数触るときは気をつけて
内政ユニットについてなんだけど、
pushConとinSpot以外の関数を受け付けないように思うんだけど合ってる?
money入れてpushMoneyしたり、store何々で取り出そうとしても何も返ってこないものだから
多分
多分か…とりあえずwikiに書いといたけど違ったら編集して
何年も放置されてる記述ミスとか発見した時wiki編集するの不安になるよね
hideBlind()とshowBlind()の説明文が真逆だったのを結構前に編集したけど自信なかった
誰もこの関数使わなかったんか?それとも編集しなかっただけ?とか疑心暗鬼になる
意外と誰かが書いてそうなこと書いてなかったりするよね
普通のプログラミング言語や製作ツールよりも門戸が狭いからかしら
領地の部隊選択画面を開いている最中に、そこにいるユニットをeraseUnit2すると、
選択画面上の該当ユニットにマウスホバーした瞬間に落ちるように思うのですが、
防止する方法はないでしょうか
msg、dialog、fadeout、hideSpotなど試しましたが、効果はありませんでした
あーその現象原因が分からなくて困ってた
eraseUnit2した時になってるのか
原因が分かっても解決策は分からないけど
BoIの問題点を調べてたら、ヴァーレン本体のバグだったので、こちらでも報告しておきます。ユニットがクラスチェンジする際に、class構造体の継承で値がうまくコピーされない事があります。BoIは女性キャラを別クラスにして、男性クラスからデータを継承してるので、バグが顕在化しました。構造体同士での継承がうまくいかないのは、上位クラスで指定された新しい値がクラスチェンジ前の値よりも大きい場合と、レベルアップによって能力値が成長しない場合のようです。移動力はレベルアップでは上昇しないので、継承できないと違いが明らかで、このバグに気付きました。
上位クラスにチェンジする際に能力値が一気に上がるようにしたい場合は、基礎クラスから暗黙的に値を継承するのではなく、継承後のclass構造体の中でも「能力値 = 上昇後の値」と明記した方が確実です。他のシナリオで同様の問題が発生して困った時は、この事例を参考にしてください。
>>303
一晩寝たら、「spotをひとつゴミ箱代わりにして、world内で毎ターン空にすれば……」
とか思いつきましたが、addUnitの性質上一般ユニットには使えないですしねぇ
色々試してみましたがウィンドウ閉じたりは実現できず
wikiにも書いておきますが、どなたか解決策プリーズ
>>305
その手がありましたね。
event eraseUnit2modoki
{
//spot spotのclass一般兵をspot trashへ
storeUnitOfSpot(spot,@allUnit)
while (@allUnit!=0) {
index(@allUnit,0,@unit)
subv(@allUnit,@unit)
storeClassOfUnit(@unit,@class)
if (@class==class && isTalent(@unit)==0) {
addUnit(@unit,trash)
}
}
}
これでいかがか。
ただeraseUnit2なら
eraseUnit2(spot,class)
で済むことを考えるとむず痒いですね。
>>302
BoIの未使用スクリプトを使って実験してみましたが、私の環境(Windows7)ではクラッシュしませんでした。
領地ウインドウを開いてユニットを表示してから、内政イベントを起してeraseUnit2でユニットを消して、
消えたユニットの場所にマウスカーソルをもっていっても特に何も発生せず。OSやシナリオに依存するのかも。
領地の部隊選択画面が閉じてる時、プレイヤーのターンが終わった(あるいは次のターンが始まった)際に、
eraseUnit2すればいいように思うけど、すぐに実行する必要があるのかな。
>>306
自分でも試したのですが、どうも勘違いしてたみたいで、
普通に一般ユニットでもaddUnitで個別移動できる(?)みたいですね。
消去したいやつaddUnitして機を見てeraseUnitするだけでも特に問題はないと思ったのですが、どう思われます?
自分の本体verが最新版でないのが少し不安ですけど。
重複しうる文字でもあり、ポインタ的なものでもあるVTの識別子って、
内部的にどんな扱いしてるんだろう……
>>308
すみません、よく読んだらこちらの症状と違いました。
こちらは領地にマウスホバーするとクラッシュするので別のお話ですね。
一応動かしてみた所、最新版のヴァーレンだと>>302 をやってもマウスホバーだけではクラッシュしないみたいです。クリックして情報見ようとした瞬間クラッシュするからどちらにしろ非推奨ですけど。
>>306 でやったところ一応解決したようです。最新版での実験ですし、その後の経過を見たわけでは無いので長期的に大丈夫か分かりませんが。
一般兵の識別子はステータス変動時やmsgで表示する時だけclassに入ってる構造体を参照するだけで、内部では識別子とは関係ない別々の値で管理されているんだと思います。
連投すみません。
昨日解決したと言いましたが、ステータス確認はできるものの右ドラッグで移動するとクラッシュしました。
内政イベントで消すのは厳しいようです。
>>302
既に存在しないものを参照するとVTが落ちてしまうため
reloadMenu(on)
でウィンドウ内の情報を更新すると良いと思います
collisionで攻撃スキルを出すことって可能ですか?
ちょっと試してみて難しそうだったのですが…
むなしい努力の反射魔道士がやっているが狙いが定まらなくて変な方向に飛ぶ
前にいじってみたけどjoint_skillとか挟んでも敵方向には飛ばなかった
homingするスキルや四方八方に発射するタイプなら良いかもしれない
>collisionで攻撃スキルを出すことって可能ですか?
できますよ。そのかわり向きがランダムになるので特定の方向に指向させるには工夫が必要になります。
>homingするスキルや四方八方に発射するタイプなら良いかもしれない
collisionで発生させたスキルはターゲットの引継ぎは無効だった気がしますけど、ホーミングできましたっけ?
試してないから「かもしれない」なんじゃ
皆さんご返答ありがとうございます
むなしい努力のスクリプトを参考にして再挑戦したいと思います
誰か本格的な宇宙戦争物を作ってほしいわ
綺羅星の如くに神々の黄昏、それにMarlinとDL可能な作品だけでもう3つもあるぞ
いや光の目とかむなしい努力レベルの大型シナリオをだな
無論宇宙戦シナリオで
おまえが作者になるんだよ!!!
神々の黄昏は水素氏特有の仕様全理解+慣れが必要な高難易度シナリオなのが惜しい
単純にぶつかり合うとCPUに中々勝てん
やってみたけどそこまで苦戦しなかった安い艦艇で領土を広げて
高い艦艇で決戦がデフォ
神々の黄昏は駆逐艦も有用だから良いね
まあ最後は巡洋艦がバランスが良くて最強になるけど
戦艦だけでそろえた艦隊は駆逐艦に対して脆い
オーデルライン系は意識すれば上位艦船を早期に導入できるし、勢力マスターがLv10を超すまで大規模な軍拡を行わない方が楽ね
全惑星独立のエグヴォルトはレーゲンスドルフの回収までは二つの意味でアルベルトが救世主になってくれるけど、カッツバルゲルは…まあ、その…
(ところで話題的にここよりオリシナスレ使ってあげたほうがよいのでは)
(もう水素シナスレがあるよ)
mapBuilder使わせていただいてますがこれめっちゃいいですね
作りたい地形よりも複雑に生成してから細かすぎるところを塗りつぶすといい感じに
skillset自体は認識できていて、class/unitのskillに記述すれば付与されるしstoreSkillsetも可能なのですが、スキルグループ名の表示やbackの画像が適用されない原因って何が考えられるでしょうか。
自決しました
他のskillsetに記述がありました
>>329
skillset面白いけど仕様がわかりにくい部分がありますよね
>>329
何も死ぬこたぁないだろ
戦闘中にユニットのimageを切り替えるように見せることはできないでしょうか?
具体的には近接だと切るアクション、遠距離だと弓を撃つアクションみたいな感じで元のimageを消しつつimageを切り替え、終わったら元のimageに戻るといったことをしたいと考えています
スキル行動時のみ切り替える感じにしたいので、tkool企画で歩くのみという感じのは考えていません
元を透明なユニットにして、バリアのように元のimage2を表示させつつ、アクション時にはそれを消してアクションのimage2を表示、元に戻すとかも考えたのですが、イマイチうまくいかず
質問失礼します
勢力のmerceやstaff、人材のfriendやleader_skillなどを取得する方法はないでしょうか?
関数でという意味ではないと思います
リーダースキルであれば、リーダースキルとして定義したスキルを配列にし、storeskillofunitでとったスキルをwhileで回してhasで確認するというのはいかがでしょう?
>>334
不明瞭な質問ですみません、関数で取得したいという意味でお尋ねしました
現状skillsetで勢力・人材ごとに個別にデータを作りaddstrとstoreSkillsetで無理やり取得しています。
ただこのやり方だと1つ変更箇所がでるたびに何箇所も記述しなおさなければいけないので
なにかいい方法はないでしょうか?
別のプログラミング言語でスクリプト生成するようにすれば書き換えは一箇所で済む
ただすごく身も蓋もない感じはする
>>335
逆じゃないでしょうか?
その方法なら1箇所で済むような?
skillsetに入れる方法が分かるならもっと簡単で
①skillset lsにリーダースキルと定義されるものを全部(たとえばls00〜ls99)入れる
②unit ls00〜ls99まで用意して内容をそこにデータベースとして保存
③新しいスキルができたら(例えばls100)skillset lsに追加で記述し、unit ls100をつくる
④スキルの内容が変わるならユニット側の記述を変更する
⑤その上でstoreskillsetを使って入手してwhileループで総当りで確認する
といった感じでやればスマートになりません?
ちなみにリーダースキルの内容の取得が必要ない場合は②や③や④にあるunit云々は飛ばしてもらって結構です
要はskillsetに「リーダースキル」として定義されるもの全部書き出して、storeskillofunitの配列をそれぞれskillsetの配列と見比べてローカルな配列に入れるという感じでどーでしょ
unit unit1
{
leader_skill = skill1,skill2
merce = class1,class2
friend = class1,class2,class3
staff = race1,race2,class1,class2,class3
}
skillset ls_unit1
{
member = skill1,skill2
}
skillset merce_unit1
{
member = class1,class2
}
skillset friend_unit1
{
member = class1,class2,class3
}
skillset staff_unit1
{
member = race1,race2,class1,class2,class3
}
何箇所もということはないけどunitとskillsetの2箇所は変更しないといけないね
あとLSについては>>329 のように自決せぬようルーティンで文字変数に入れた方がいい
あとskillsetは確かに記述量や可読性の面で優秀ではあるけど、その用途では継承のことも考えるとeventにした方が便利かも
unit unit2 : unit1
{
leader_skill = skill3,skill4
}
//LSは変更されているのでオリジナルに作成
event ls_unit2
{
setv(@ls,skill3)addv(@ls,skill4)
}
//それ以外はunit1からの継承なのでroutineで飛ばす
event merce_unit2
{
routine(merce_unit1)
}
event friend_unit2
{
routine(friend_unit1)
}
event staff_unit2
{
routine(staff_unit1)
}
あ、skillsetを継承すればいいのか
忘れてくれ
skillset all
{
member = ls00,ls01,ls02,ls03・・・・
}
event get
{
storeskillset(all,@lsall)
storeskillofunit(@unit,@unit_skl)
clear(@get_ls)
set(idx,0)
while(idx < count(@unit_skl)){
index(@unit_skl,idx,@unit_skl_get)
if(has(@lsall,@unit_skl_get)){
addv(@get_ls,@unit_skl_get)
}
add(idx,1)
}
}
lsの取得ならこれでOKかな?
merceやfriendはちょっと思いつかないですね
配列の取得ができた覚えがないので、結局のところskillsetとaddstrを使うしかないかなと
仮に可変なやり方使うのであれば、skillsetではなく隠しspotとunitを使用するのはいかがでしょ?
ステータスの名前を変更って可能?
MPからスタミナに変えたり
langage.txtをいじる
thx 変更できた
三つ巴戦って可能?
あと敵味方区別なく攻撃して両軍から攻撃を受けるキャラとか
>三つ巴戦って可能?
すべてのユニットは必ずred/blueどちらかのチームに所属しなければならないので、戦闘シーンにおける第三勢力は無理です。
>あと敵味方区別なく攻撃して両軍から攻撃を受けるキャラとか
無差別攻撃は可能だが、後者は前述の仕様からして無理です。
>>347
ご回答ありがとうございました
やはり無理ですか
やってる人がいないので難しいとは思っていましたが
まあしばらくいろいろと試してみます
afterhitでダメージを与えたユニットにだけスキルを飛ばせるので、陣営1以外は属性1に無敵、陣営2以外は属性2に無敵……とすることで特定の陣営のみに飛ぶスキルが作れる
attack_us=7にしてスキル属性を弄ればできないことはない
ただ面倒臭い
7じゃなくて6だった
質問兼要望です。
フォントを変更するとデフォルトでのフォントと比べて文字が小さくなるんですが、同じくらいの大きさにできたりしないでしょうか。
できなければななあしさんにシステムメッセージの大きさを調節できるようにお願いさせていただきます。
>>349
攻撃の命中はそれでできると思うけど、AIとかまでいじれる?
単純に何かスキルを発動する度にスキル発動ユニットを状態異常にして常に混乱状態にしてやるだけでよいのでは。
状態異常で色が変わるのはClass構造体のyorozu = keep_colorで阻止できるし。
AIはClass構造体のfree_moveの設定でランダムウォークにできるんでないかな。
image.dat開くためにimageviewr使うのはわかるんだけど、コマンドプロンプトが一瞬出る
だけで全く起動しない・・・
どうすればええにゃろ 基本的なことなのですがどなたか教えてください
連投になってすいません
image.datの方は開けたのですが、image.dat同士をくっつけることは
できないのでしょうか。個人用に別のシナリオのエフェクトを流用し
ようとしているのですがうまくいきません。.dat→.datまたは.dat→
.png→.datのように中身を移し替えることはできないのでしょうか。
image.datに固めるのは暗号化の意味合いもあるわけだからそれができたら困る
自分のシナリオなら素材残ってるでしょ
質問なのですが古代ギリシア人の肌って白?黒?褐色?それとも三つ全部いたんでしょうか
>>349 確かになんでも流用できてしまうとアカンことになる 自分の頭が
足らんかったわ 返信ありがとう
>>357
中緯度地域ゆえ、黒人でも白人でも無いアジア人のような黄色と言うのが一説。
制作・改造スレのことはよく分からないけど、内容的にスレチでは?
宛先間違え
>>349 ではなく >>356
単純なこと聞いて申し訳ないんですけど
部下にできないユニットって雇用できないんでしょうか?
merceに記入してもfriendに記入してなければ、雇用欄に出てきても雇用ができません
ユニット補充の時に、いちいち対応するユニットを、そのユニットのクラスをリーダーにしたい領地に移動するのが面倒だから
一つのクラスでその勢力の全クラスを雇用できるようにしようとしたのですが……
>>361
それは無理だね
ハルベリではその仕様を逆用して特定人材が加入するまで特定の一般兵科の雇用不可と化していたりするけど
どうしても初期から雇用できるようにするなら、顔なし人材か一般部隊を用意しておくのも一つの手ではある
>>362
返答ありがと
意味が分からない、部下にできるユニットしか雇用できないなら
そもそもmerce必要ないじゃん
オリシナ作ってて一番いやなことなんだよなぁ、自分の想定していた重要な設定構想が
仕様によって不可能になることが
ユニットの部下にユニットを置きたくないんだけどーーーーーーーーあーーーううーーーーー
ななあしさんってもう修正しないんだよな、あーどうしよ
だれかたすけてくれー
内政で良いじゃんそんなもん
>>364
それでもいいし、士官イベント起こしたり、人材雇用用のユニットを導入したりとか考えたけど
UIの問題と、人材同士の交友関係とかを考慮するとそれだとなって感じになる
ななあしさんっていまどうしてるんだほんと
助けてくれというならどういう構想を実現したいのか聞いたほうが早いでしょ
愚痴愚痴いってもだれも何がしたいのかはわからんから何もいえないよ
>>366
すまないその通りだ、そしてさらに申し訳ないが、
別の方法を思いついて今独自検証した結果、どうやら問題なさそうだ、本当に済まない
詫び代わりに何がしたかったかを書くと、スキル欄を整理したかったんだ
オリジナルやオリシナは、ユニット、クラスにとにかくスキルを突っ込んでいるが
自分はスキルの「枠」を作って、そこに上書きする形にしたいんだ
けど、それをするとなるとリーダースキルをどうするかって話になる
下手にLSを配下に加えると、せっかく作った枠が崩れるらどうしようかって
でもまぁ解決した
Fkeyが同じでもLSで載せられるスキルより、そのユニットが持つスキルのほうが上位に反映されるってことがわかったから
無駄レスほんとすいませんでした
仕様なくして構想なし
雇用の話かと思って見ていたらスキルの話だったでごさるの巻。
シナリオを作ろうと思っているのですが要るものってなんでしょうか?
ヴァーレン本体 (各種ビューアーとメイカー含む)テキストエディタ、顔絵とドット絵 (キャラ、拠点、勢力旗、スキルエフェクト)、世界地図、スキルアイコン、BGM、各種image (メッセージウインドウ用の枠など)・・・くらい?
なによりも根気
すみません
スキル効果音の追加はどうすればよいのでしょうか
skill構造体にsoundを記述
複数列挙するとランダムに再生される
>>373
ありがとうございます
if(isPlyer(power) == 1 && getTurn() == 13 && flag == 0){event(talk_ev_sele)}
if(isPlyer(power) == 0 && getTurn() == 13 && flag == 0){event(talk_evskip)}
といった感じでプレイヤーがその勢力ならこのイベント発動、じゃないならこのイベント
ってやりたいのですがうまくいきません、if文の書き方が間違っているのでしょうか?
そのままコピペしてるんだとしたらisPlyerじゃなくisPlayer
そうでなければ変数ミス
>>376
ありがとうございます、無事解決しました
かわいい
武装親衛隊だとか侍従長だとか保安委員会だとか
肩書とか地位とかの知識ってみんなどっから手に入れてるんですか
分かりやすい資料とかあったらサイトとか書籍とか問わず教えてほしいです
御願いします
つWikipedia
シナリオ制作の過程でできた副産物を素材として後日上げたいんだけど、上げた報告はここでして良いのかな?
ここか雑談スレでいいんじゃない?
無言で上げられても気づかれない可能性が割とあるし
極論どのスレでもそのスレにそった雑談まじえれば報告していいんじゃないかな
素材集アップしました。数年前のものの更新版です。
https://ux.getuploader.com/vahren/download/4595
質問です。人材プレイを始めて他の領地に行こうとするとフリーズしてゲームが落ちるんですが、何が原因だと思われますか?
そのタイミングならstoryかワールドイベント
ゲームが落ちる原因はいくつかあるが、無限ループは基本的にフリーズするだけで落ちないからそこは確認しなくていいとだけ言っておく
>>385
私も以前同じ症状が発生したことがあり、本体のバグでした。
実行ファイル(Vahren.exe)の日付が2017/10/01(CRC32=52D59578)ならそれが原因です。
最新版のVahren.exeに置き換えてプレイしたらどうでしょうか。
>>386 >>387
回答ありがとうございます。実行ファイルを最新のものに更新したら直りました。
setPowerHome関数について覚えている方はいらっしゃいますか?
使おうかなと思ったのですが、wikiから詳細が消えているっぽくて記載方法がいまいちよくわからない状態です
過去スレからsetpowerhome(勢力、XX)という順番はわかったのですが
既存のhomeに上書きされるのか、何個列挙してもいいのか、はたまたadd〜タイプも存在していたのか
等の詳細を記憶している方がいらっしゃいましたら教えて頂きますと助かります
>>389
setv(@pow_home,@p003_home)
addv(@pow_home,@p000_home)
setPowerHome(p_003, @pow_home)
こんな感じで使ってるから上書き&列挙可能(のはず)
>>390
回答ありがとうございます
となると、基本homeにしたい領地を都度全列挙すれば特に問題はない感じですね
>>391
そうなりますね。
追記として、勢力のhomeを取得する関数は無いはずなので、
以下みたいな感じでp003_homeにSpot一個一個代入してました。
setv(@p003_home, s_020)
addv(@p003_home, s_021)
addv(@p003_home, s_022)
>>392
重ね重ねありがとうございます
しかし、homeの効力ってどのくらいのものなんでしょう
今までhome=自勢力主要都市ってその名の通りに考えていたんですけど、よくよく考えなくてもこれ普通に進行方向を誘導する機能でもあるんですよね
離れた敵勢力の地でもだいたい進行方向にしてくれる〜ぐらいの効果があればありがたいのですが
>>393
仰る通り、元々の構想はイナゴ防止と侵攻先の制御のために作って貰った関数です。
390は、p_003に隣接しているp_000のhomeを攻撃させる処理で使ってます。
離れたSpotを指定した場合はどうだったかな?
関東(本拠地)と京都(敵地)をhome指定した場合。
関東に十分な兵を補充しつつ、東海道も中山道も北陸道も全部使おうとしたような気がします。
>>394
なるほど、所持中のhomeを中心にしつつおおよそ目安にして他のhomeへ進軍する感じにはなるのですね
逆に東北方面への進軍は控えめになっていた感じですか?
>>395
東北から海路で上洛するルートが無いならば、栃木と茨城の国境固めるだけで侵攻はしないはずです。
海路が有る場合は東北へも侵攻するはずです。
侵攻ルートの優先度は https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1282244590/71 が関わってるかもしれません。
すいません、skillのimageにスキル発動者のユニットチップを参照させるにはなんて記入すればよかったんでしたっけ?
@@
>>398
お早いレスポンスありがたい!感謝します!
ちなwikiの作成講座の欄に勝手ながら追記させていただきました。
今更ながら……このような勝手はよろしかったのでしょうか?
wikiってそういうもんだから気にしないでいいよ
余計な変更なら誰かがバックアップから戻すし、残念なことに利用者ももうあまりいないし……
>>400
悲しい、何とか盛り上げられないかな……
加えて聞きたいんすけど、スキルイメージの向きに合わせての反転ってできないんすかね?
回転じゃなくって裏返し
先ほどの質問から取り入れたイメージ画像がユニットの向きに関わらず常に同じ向きでちょっと違和感が……
あっ、ごめんなさい、よく見たらちゃんと反転してました。
すいません、製作頑張りまーす。
>>119 のワールドマップ上で置いたスキルを消す方法、
分かる方いたら詳しく教えていただけないでしょうか。
doskill(bar, 150, 150, 0, off)
msg(いちじていし)
doskill(bar, -100, -100, 0, off)
としても消えなかったです。(barはtime=1000000ぐらいのスキル)
>>401
>>122
>>396
おお、結構がっちりhome優先に判断するんですね
参照先のやつも初めて知りましたし、こっちもいじれば相当COM思考を変えれそうです、ありがとうございます
>>403
どっかで見たな〜って思っていろいろ探してたけどここだったのか
面目ない
ちな、私は思うにあなたより未熟なので、貴方の質問には答えられませぬ
ですがまぁ、貴方の問題が解決することと、貴方が良い作品を作れることを祈っております
>>405
ありがとうございます。
あなたもファンタスティックなスキル作りがんばってくださいノシ
>>403
doskillで既に発動しているスキルを再度doskillを実行すると別の場所に移動する現象を発見したのはかれこれ三年程前のことなんで今のバージョンでは仕様が変更されたのか、あるいはPCのスペックやOSによって挙動が変わってしまうのかもしれません。
今doskillを座標をかえて複数回実行してみると同じスキルが複数実行されますね、動作としてはこれが正しいでしょうが消去する方法がないのは不便ですね。
>>407
>>119 から更新はないのでやり方の問題かと思いましたが、
それ以外の理由の可能性もありますか。
いずれにせよ同じやり方ではだめみたいですね。
ご検証、ご回答ありがとうございます。
実装しようとした機能はスキルを消せなくても致命的な影響はないので、そのままいこうと思います。
助けてください
スキルでstart_degree及びstart_degree_turnunitが有効になりません。
記載位置を変えてみたり、wikiからコピペしてもうまくいきません。
いかがスクリプトです。
skill boost
{
hide_help = on
mp = 20
sortkey = 0
special = 20
start_degree = 90
start_degree_turnunit = on
func = missile
image = o_charge
attr = art
anime = 8
anime_interval = 2
range = 600
check = 750
time = 12
sound = bom35
slide_speed = 1600
slide = 300
slide_stamp = 96
height = 6
next = boost_d
next_last = on
next_first = on
slow_per = 300
slow_time = 4
}
すいません解決しました。
Vharen最終ver(7.01)で、start_degree_turnunitが機能していないだけでした。
旧バージョンだと普通に動作しました。
やっぱ7.01って呪われてるんじゃないかなぁ……
6.90から7.01の変更点ってエンドロール追加と、細かいバグ修正だけでしたっけ?
turnunitありで左右にランダムに移動って感じにしたいんですよね?
そのスキル確認しましたが、ちゃんとそう動作しますよ。
外した場合は前に進みます。
ver7.01です。
>>411 様
どうやら私の勘違いだったようです。
Turnunitが適応されないVTverが7.01ではなく6.90以前の物であったらしく
Turnunitがまだ導入されていないverの物を、私が勝手に7.01と勘違いしていたようです
最新Verの物で上書きしたところ無事動作しました
私の不注意さ、未熟さによるものでした
お騒がせして申し訳ありません
加えて、「呪われている」などと失礼な物言いをし、ななあしさん及びVT関係者の方にご不快な思いをさせてしまいましたこと
深くお詫び申し上げます。誠に申し訳ありませんでした。
context構造体に @シナリオ名
と付け足したらシナリオ毎に設定することってできますかね?
とりあえず一番わかりやすいspot_capacity@xx〜で試してみたけど、自分の環境では変化しなかったよ
>>414
わざわざ調べていただきありがとうございます。
doskillでマップ上に雨を降らせようと思っているのですが、イベントで雨をぴたっと止める方法はありますか?
BoIの作者が公開してる素材集VT_material_1300.zipに含まれるキーワードのヘルプが便利なことに気付きました。
サクラエディタで使うためのファイル(VTDk.khp)だけど、内容はテキストファイルなので、
拡張子を.txtに変えれば普通に「メモ帳」などで参照できます。
wikiに乗ってないような詳細まで書いてるので、関数の使い方や挙動で疑問に思ったら検索してみるといいかも。
(一部に最新版では変更されてるような古い情報もありますが、それも含めて参考になります。)
フォントだいる導入したはいいんですが、なんか全体的に字が小さくてよみずらいです。
文字サイズってフォントファイル依存なんでしょうか?それともどっかで調整とかできるんでしょうか?
>>418
フォントファイル依存で、大きさ調整機能は残念ながら今の所ないよ
マジかよ……やっとこさ気に入ったフォント手に入れたのに、小さすぎて読めないッ!!
私のオリシナのロード画面にハズキルーペの広告でも入れようかな。
>>420
フォントの利用規約で許可されてるなら、フォントファイルを加工する手があります。
FontForgeというツールで、実際にゲーム内の文字を拡大できることを確認しました。
フォントを読み込んで、[編集]->[選択]->[すべて選択]で、全ての文字を選択してから、
[エレメント]->[変形]->[変形]でTransformダイアログを出して、
[Origin]を[グリフの原点]にして[一様に拡大・縮小]でパーセントを指定します。
標準(MS Pゴシック?)より大きくすると、文字がゲームの表示領域に収まらないことに注意!
変形が終わったら(文字数が多いと時間がかかります)、保存する前にフォント名を変更します。
[エレメント]->[フォント情報]->[TTF名]のファミリーとフルネームを識別しやすい別名にします。
ちなみに、文字のぎざぎざが目立つようなら、
[エレメント]->[フォント情報]->[Grid Fitting]でアンチエイリアスを指定すれば綺麗になります。
後は、TrueType形式で保存したファイルをimageフォルダに入れてcontext構造体で指定します。
>>421
ご丁寧にありがとうございます。
とりあえず今日はねるので、明日言われた通りに試してみます。
ただその前に、TrueType形式で保存とありますが、VTってttf読み込めるのでしょうか?
>>422
私が試したの(加工の許可されてるIPAフォントと衡山毛筆フォント)は、TTFでした。
TrueTypeと書いたのは、Windowsで一般的なアウトラインフォントの形式だからです。
(FontForgeは他のOS用の形式でも保存できるけど、Windows用じゃないとVTで読めない。)
実験で使ったオリシナBoIのフォントに、作者は TTF, TTC, OTF で試されたとか。
ちなみに、VTのフォント読み込みはWin32APIのCreateFontIndirectWを使ってるようで、
Windows OSが対応してる日本語フォントならいけそう。まあ、自分で試せば判る事です。
>>423
度々ご丁寧にありがとうございます
いろいろ苦戦してはいますが、何とかやってみます
これではいかんのかい?
>font(フォント名, 文字サイズ, 文字タイプ(0〜3))
> テキストウィンドウのフォントを変更します。(例)font(AR行楷書体H, 26, 0)
> フォントファイルはimageフォルダに入れてcontext構造体のfont_fileにフォントファイルを列挙してください。
> (例)font_file = argk.ttf
ワールドマップシーンにおいてdoskillで発生させたスキルを消す方法を見つけました。
結論としては一瞬で終了する戦闘イベントを発生させることでスキルを消すことができました。
以下サンプルコードです。
event hoge
{
適当な処理
//ここから
event(test)
fadein(0)
//ここまで
}
event test
{
fadeout(0) //戦闘シーンのパネル類の隠蔽に使う。ミニマップだけは一瞬映ってしまう。
next()
map = aaa //存在ないマップファイル指定でもOK。この場合真っ暗。
limit = 100
battle
{
//一瞬で終わらせる
if( 0 <= getTime())
{
win()
}
}
}
>>219
sBuilderで領地の座標を直接編集すると連結線が追随しなくなるバグの発生条件が判りました。
どうやら入力欄を空白にすると駄目みたいです。数値で0にした場合は問題ありません。
数値を入力する際は、必ず何か仮の値を入れて空にしないようにすれば、バグを回避できました。
>>425
システムファイルもいけるの?
失礼します
"afterhit"を用いて、魔法弾がヒットした敵を中心に、爆炎を起こすスキルがうまくいきません
下の様に記述すると何故か標的位置ではなく、最大射程位置(下の場合は発動者より500離れた位置)に爆炎が発生してしまいます
skill joint
{
//▽性能・仕様
//▼基本仕様
func = missile
//▽Next
joint_skill = on
next3 = @
}
↓とあるスキルに"afterhit"で指定されている。
skill main_mag01_fire_j : joint
{
range = 500
//▽挙動・軌跡
//▼Movetype関連
movetype = drop
damage = off
//▼発射
center = on
//▽Next
next3 = main_mag01_fire_nt_a, main_mag01_fire_nt_b
}
>>429
「joint_skill = on」(center=on、next_last=on、damage=-3)だからでしょう。
damage=-3は pass と同じです。「damage = pass」は、敵にヒットせず、最大射程まで直進します。
スキル構造体の継承を止めるか、joint_skill = offにしたらどうでしょうか。
>>430
ありがとうございます!うまくいきました!
「joint_skill = on」の(center=on、next_last=on、damage=-3)は
「"joint_skill"は、こういう仕様にしないと仕事しませんよ?」ではなく
「"joint_skill"を指定すると、自動でこういう仕様になりますよ」という事だったのですね
勉強になりました。改めてお礼を申し上げます!
なんか時々CPUの騎兵が、スイス傭兵宜しく何もしないまま虐殺されるときがある
たぶん騎兵AIの設定が下手だからこうなってるとは思うんですけど、正直どれぐらいの数値が理想なのかよくわからない
誰かコツとか知りませんか?
戦闘で敵との戦力差が大きい場合、自動で退却を起こすイベントを作ったのですが、うまく反応しません
eventはしっかりscenarioで指定し、下ソースの一番上に描かれている"skillTroop"はしっかり動くのですが、下のrif文がまるで機能しません
(dialogが一度も出ません)
何がいけないんでしょうか
以下ソース
event fight
{
skillTroop(H_base_r, set_H_base)
rif(isInterval(1000) == 1)
{
storeRectUnit(red, 0, 0, 9999, 9999, f_red)
storeRectUnit(blue, 0, 0, 9999, 9999, f_blue)
pushv(@f_red, f_red_Co)
pushv(@f_blue, f_blue_Co)
div(f_red_Co, 5)
dialog(&f_red_Co&$&f_blue_Co&)
if(isDead(H_base_b)== 1 && f_blue_Co > f_red_Co)
{
storeDefensePower(f_Dpower)
if(isPower(f_Dpower) == 1)
{
dialog(防衛拠点本陣が破壊され、$加え戦力差が大きい為、退却します。)
}
retreatTroop(f_blue)
}
}
}
条件文が問題なんだと思うけど、
resetTimeを使うとそのカウントは0になる。
使ってないならわからないな。
>>434
使っていません。シナリオの戦闘に該当するイベントには、現状ここに載せた分しか記してません。
>>435
scenario構造体で指定するのは戦闘開始前イベントで、「戦闘中イベントはbattleEvent関数で発生させる」と
wikiの「戦闘中イベントの発生」というページに書いてます。
初めて戦闘イベントを記述したとなると、もしかすると、発生させたイベントの種類が違うのかも?
たぶん>>436 が正解なのだ
rif 戦闘実行中しか動作しない
if 状況に関わらず動作する。ただし戦闘中は一回ヒットすると停止する
それ以外 戦闘実行中はrif/if下に入れないと動作しない
skillTroopが動作したなら戦闘中になってない可能性があるのだ
battleEventは使ったことないんで俺は解説できませんが
使わない場合の基本的な形はこうです
event stage_event {
title=自作戦闘
handle=blue
stage=stgファイル名(拡張子なし)
:(ユニット配置とか)
next()
:(戦闘前の会話とか)
battle {
rif(勝利条件) {
skillTroop(ユニット,スキル)
talk(勝った!)
win()
}
rif(敗北条件) {
talk(負けた・・・)
win()
}
}
:(戦闘後の会話とか)
}
なお、本体v700あたりの話ですが
battle{}が生きてるとwhile,returnが機能しないという罠があるので注意!
(ななさんのtwitter見てなかったら絶対わからんかった・・・)
動作テストすることをお勧めします
>>437 補足
「基本的な形」といいましたが重要なこと言い忘れてました。rifが動作する状況は
1、スクリプトから戦闘を開始し、battle{}内で使う
2、シナリオ指定イベントからbattleEventでイベントを呼び、そのイベントの中で使う
とあって、>>437 は1のサンプルです。これを言うの忘れてました
あなたのはおそらく2のbattleEventが必要なパターンじゃないかと思います
以上です
>>436 様、>>437 様 ご丁寧にありがとうございます
そして検証の結果完成しました! 完成したんですが
人材部隊長しか"retreatTroop"に従ってくれませんでした
一般クラス部隊長の部隊は、退却してくれません
折角のご助力をいただきながら誠に申し訳ないのですが、仕様を変更することにしました
ただ、助けていただけたうえで作ったのを、そのまま捨てるのはもったいないので
どこかに貼りたいのですが、作ったイベントスクリプトを張るスレッド立ててもよろしいでしょうか?
作ったけど没になったイベント、自作だが他の人にも役立つだろうと思うイベント、見てほしいスクリプトなど、
そういったものが集まる場所があったほうが、全体の開発がはかどるのではと思うのですが
>>437 訂正
× stage=STGファイル名
○ map=mapファイル名
でした。すみません
>>439 それはよかった
スクリプト投稿用のスペースはwikiにもないっぽいですね
完成品置き場はあってもいいと思う
・・・書き込み修正できないので俺みたいなミスの問題はありますが
戦闘イベントを作ってるのですが、不具合が出て困ってます。
こちらは防衛側で城に籠っているのですが、
戦力差が劣勢なせいで敵のsleepTroopをした部隊が勝手に動いてしまいます。
味方にvalueをつけると回避出来るのですが、
味方優勢になると勝手に城門を全て開きます(そもそも自分で開けない)。
戦闘イベントは防衛側での戦闘を想定していないのでしょうか?
良い解決方法があれば教えてください。
>>441
実際に試してないのでアイデアだけを書きます。使えそうなら実験してみてください。
COM部隊を一時的に動かなくするなら、スキル使用時の減速で停止させればいいかも。
addSkillなら、イベント専用でない通常ユニットにも戦闘時にスキルを追加できます。
出現位置から届く発動距離で、クールタイムを戦闘時間よりも長くすれば、
最初に1回だけ停止スキルを使って、後は時間経過で普通に動けるようになります。
時間経過じゃなく、特定のタイミングで動きだすようにしたいなら、
戦闘中イベントで減速なしのスキルを使わせれば、停止が解除されるでしょう。
>>441
そういう制御はしたことないけど、篭城しない状態は経験ある
そのときはspotのyorozuが原因だった
> yorozu = (基底クラス, 基底クラス, ‥)
> 列挙された基底クラスが全ユニット数の一定の比率以上だと攻城戦モードがキャンセルされます。
これ篭城 し な い ユニットの指定なんだけど
未指定だと暴発することがあるようなので、1クラスは指定したほうがいい
なお「一定の値」ってのはcontextのbtl_nocastle_bdrらしいです
あとは、防衛側が中立勢力になってるとか
まずないだろうけど敵出現位置にトップレベルの曲輪(@0)が重なってるとか
思いつくのはこのぐらいかな
>>442
試してみましたが、slow_timeの仕様が複雑でちょっと扱いきれなさそうです。
それと今思いつきましたが、speedTroopで多分よさそうですね。
限定的になりそうですが、そのうち使ってみようと思います。
ご回答ありがとうございました。
>>443
すみません、戦闘イベントと書きましたが正確にはイベント戦闘です……。
(一応イベント戦闘用領地で試しましたが変化なし)
籠城で言えばcastle_battleを記述しても、マップデータに配置した自動の防衛部隊も
城門から飛び出してく(仕様としては今回は問題なし)ので、
そもそも籠城状態になってるのか、どうなのか……?
最近企画をまとめつつある新オリシナがあります。
人員を募集しています。
ご興味を持っていただいた方はディスコ―ドサーバーにて質問などに答えることができるので、よろしければ来てください!
https://discord.gg/pg3TKV
最近企画をまとめつつある新オリシナがあります。
人員を募集しています。
ご興味を持っていただいた方はディスコ―ドサーバーにて質問などに答えることができるので、よろしければ来てください!
https://discord.gg/pg3TKV
ごめんなさい上のは一日限定招待コードだったので
期限無限のコードを張りなおさせていただきます!
https://discord.gg/QjgKCKK
今作ってるオリシナのマップ作りで、いいマップができて感動したから
その感動をみんなと共有したくリークするぞよ
公開はまだまだ先だけど(半年までにはα版を出したい)
今めちゃくちゃ頑張ってるから応援してくれると嬉しいぞよ
(画像は若干加工済みだぞよ)
リーク画像
→https://ux.getuploader.com/vahren/download/4607
これは凄いですね!戦闘マップ作りは奥が深い……
頑張ってください、応援してます。
>>449
ありがとう頑張る!
マップ作りはほんとに奥が深いのよ、時間かければかけるほどいいのができる
でも見た目にこだわりすぎると戦闘時に問題が出るから困る
戦いやすさと見た目のバランスを見極めるのは本当にムズイ、でもそこが楽しい!
なにこれ凄い
こういうマップ作ってて楽しいだろうな
>>451
ありがとう、初め楽しかったけど一度あれこれできるようになると逆に中途半端じゃ物足りなくなって
だからってあれこれ作ろうとすると、途方もなく時間がかかってそれを想像しただけで気がめいって
やヴぁい、これどっかで落としどころ見つけないときつい。気をつけなはれや!
リーク画像も凄いがそもそもマップ作れる人が凄いわ自分はくじけたさ
しかし段差の多いマップは操作が下手でしぬw
>>453
どもども。マップメーカー大変だよね、でも板タブ液タブあると楽なんよ
自分もマウスでは折れた
それな、段差や障害物多いと部隊移動が結構負担になる、部隊が壁で分断されたりする
よく見るシンプルな戦場マップに物足りなさを感じて、複雑なマップ作ってるけど
そういう負担を感じるたびに、シンプルマップのよさを痛感する
綺麗なマップだけどこれって…と思ったけど弊害はわかっているようで安心した
ロステク、銃魔、問題外あたりが該当するんだけど高低差が激しいと変な動きするんだよね
強制移動を伴うスキルで城壁を超えたり上階に飛び乗ったり壁に埋まったり、攻撃が当たらない安全地帯が発生したり
あと、旧バージョンの問題外で壁の向こうの視認できない位置から必殺喰らって壊滅して殺意が湧いたり
こだわってるマップでも端の方の地形が画面外(高低差が激しすぎて、右クリックで位置指定が上手くできない)とかだったりすると萎える
やっぱ複雑なマップっていろいろ問題があるんだなぁ
それでもこのレベルのマップ作りをやめるつもりはないから
公開した際はいろいろと受け入れてくださると助かりますだ
甘えさせてくだせぇ、一応できる限りのデバックもしますので
クォータービューでは画面上に高所を持ってきたいんだが
それができないんだよなヴァーレンは
すぐはみ出すから
流れ切ってすみません
経験値を直接いじれる関数とかってありませんか?
wikiを探しても見当たらない気がするのですが、知ってる方がいたら教えて貰えませんでしょうか?
銃スキルの表現としてはMP消費&装填スキル式とウェイト式のどちらを採用すべきか悩む
MPもディレイもわかりづらいから演出次第
MP切れで装填スキル発動ってのはほんといいアイディアだと思うわ
>>460
表現したい銃が単発式か連射式かで変わってきそう。
火縄銃など再装填に時間が掛かる旧式の単発銃なら、銃スキルにdelayを付けて、一発撃つ度にしばらく攻撃禁止にするとか。
(装填中に攻撃できたら変だから、他の攻撃スキルも全て使えなくする。)
マガジン交換で一気に装填できる連発銃なら、装填スキルにgun_delayを付けて、MPが無くなるまで連射してから、装填スキルで一気にMP回復すればいいし。
(装填スキルに連射回数と同じだけのgun_delayを付けないと、スキルの優先順位次第で、弾が残ってるのにマガジン交換するのに注意です。)
>>462
確かに単発と連発で印象違うね。参考になりました
<あぼーん>
HAGE
デフォシナの勢力プレイ時、配下の陪臣を召し上げする際に費用がかかりますが、この額はどこで設定されているんでしょうか?
できれば無料で召し上げできるように額を自分で設定し直したいです
また、part8スレの>>585 と全く同様の質問なのですが
NPCの新勢力旗揚げと陪臣雇用のうち片方だけを無効にする方法はありませんか?
陪臣雇用はせず旗揚げだけを行うアクターが設定できればよいのですが、
そういった設定方法はwikiと過去ログを調べた限りでは見つかりませんでした
>>466
召し上げの費用は、context構造体のvassal_price_coeで設定します。
陪臣なしで旗揚げさせたいなら、スクリプトで操作するしかないです。
オリシナ「Brave of Island」のスクリプトを参考にしたらどうでしょうか。
>>467
召し上げの費用は設定できるのですね
wikiのcontext構造体のページを確認したら確かに記述がありました
「召し上げ」で検索したのですが表記ゆれで見落としていたようです……
>陪臣なしで旗揚げさせたいなら、スクリプトで操作するしかない
旗揚げについてのみアクター時の人材のように振る舞ってほしいと思っていましたが、
自分でイベントを組まない限りそういうことはできないのですね
BOIなど参考にしてみます
ご回答いただきありがとうございました!
ロマサガのファイナルレターみたいな挙動(Z字型にユニットが移動しながら攻撃判定を出す)を
攻撃スキルとして作ろうとしてて、slideが最初以外機能してくれないんだけど
どうやったらそういう動きをさせられるかわかる方いますか?
Z字以外にもユニットを多角的でスタイリッシュな移動をさせながら攻撃するスキルを作りたくて
色々試してるんですが解決できずにいます
できればスキル単体でそれをさせたいんですが、
複数のスキルをソートで並べて疑似的にやるしかないのでしょうか?
ロマサガ技を再現したい気持ち、超わかりみ
最初以外機能しないのは悲しいけどスライドの仕様なのよね
でも、オリシナのACVTがなんか連続スライドみたいなことやってるんだ
んで解析したら、自分にしか当たらないスキルにノックバックつけて弾き飛ばしてたんだわ
すげー調整に根気がいるだろうけど、この手法でやったらできるんじゃないかな?
>>470
ありがとうございます
「むなしい努力」でロマサガの技がいくつか再現されてましたし(mod含む)
あれを見ていて自分も作ってみたいと思ったんです
きのたけifをちょっといじって色々な再現をやってみたものの
再現度が満足のいくレベルにならなくてモヤモヤしてました
乱れ雪月花もどきとかができあがったんですが納得いく感じにしたくて…
自らへのノックバックを使う方法は盲点だったので確かに作れそうです
ノックバック無効キャラ(重歩兵など)だと使えない手法のようですし
そのあたりも想定して実装してみようと思います
ノックバックだと敵キャラに邪魔されて、複雑な動きをするのは難しそうです。
発想を転換して、そもそもユニットが移動しながら自分で攻撃しなくても、
敵の所に飛び込むスライド攻撃に連動して、スライドが終わって戻るまで、
自ユニット画像をスキル画像として表示しながら貫通攻撃したらどうでしょうか。
命中箇所に命中エフェクトの背景画像を置くことで、
スライド中の自ユニットを目立たなくして、「image = @@」でユニット画像を
「start_degree_type = 4」で任意の方向に動かします。
これならどんな複雑な軌跡でも、next4 で続けながら自由に表現できます。
例えば、Zの文字を背景画像としてアニメーションで描きながら、
ユニット画像のエフェクトを追随させて、軌道上の敵を攻撃するとか。
更に、ユニット画像をスキル画像にする手法なら、next3で複数スキルに繋げば、
3体が同時に違う方向に進む「高速ナブラ」のような技だって表現できます。
スキル中にユニット消す関数があったらいいのにって思ったけど
スキルエフェクトの陰に隠せばいいのか成る程
んでその間にユニットチップコピーエフェクトで暴れまくると
さては御主天才だな?
>>472
ノックバック無効ユニットでも使えそうな手法で素晴らしいですね
きのたけの妹modでたしかそういう感じのスキル使ってるキャラがいたので
それをちょっと改変していけそうな気がしてきた
ロマサガだけじゃなくてテイルズシリーズの技の再現もやりたかったので
秘奥義や複雑な軌道の技も作れそうなので感謝です
崩龍斬光剣とか作りたかったし(実用性はともかく見た目はかっこいい)
自らにノックバック弾を当てるやり方もそうだったけど
かなり個性的な挙動のスキルを作る幅が広がりそうですね
マップオブジェクトってやっぱ処理重いのかなぁ
オブジェクト入れまくったコースなんかすげー戦闘重く感じる
contextの「btl_retreat_coe」から始まる8つほどの良くわからない設定欄について
詳しい方はいらっしゃいませんか?
ImageViewを起動すると読み込み失敗となるのですが
JAVAが最新版だとダメなのでしょうか?
imagedataの置き忘れという初歩的なミスでした…。
スレ汚し申し訳ございません。
制作ド初心者です。
imageフォルダにキャラチップ、マップチップが入っているのですが、
スキルアイコンや戦場マップは真っ黒になってしまいます。
どなたかご助言くださると幸いです…
なお、スキルアイコンについては、skill構造体にて
name = 農具Ⅰ(刺突)
help = 錆びた農具。$
icon = _num1,_gawa,we_lsp1,a_stback
と、アイコンが重複してスキルを彩るように設定しております。
スキルアイコンは多分、iconフォルダを作っていないっぽい気がします、jpgとかの指定はいらないみたいでしたので。
作っている作品フォルダーの中にiconフォルダーを作ってそこに必要なアイコンを入れて下さい
キャラチップやマップチップのほうももしかしてimageフォルダに直接いれていませんか?
これらもimageフォルダに直接入れるのではなく、丁度上のほうで質問されていた方と同じく、一緒に付いていた制作ツールでdatファイルに固めるか、
同じくchip1(キャラやマップのアイコン)フォルダー、chip2(こちらはスキルイメージのアイコン)フォルダーを作ってその中に入れてもOKです
あ、すみませんchip1ではなくchipでした
あと作る場所はiconフォルダーと同じく作品フォルダーの中になります
480様
ご丁寧な説明ありがとうございます!!!
ご指摘の通り、chipフォルダにアイコンを入れたら正常に反映されました。
ありがとうございます!
御力に為れた様で幸いです
私はある程度ぐらいしか説明できませんが、複雑な事もわかる方がいらっしゃるので、これから先わからない部分があったら気軽に質問して下さっても大丈夫だと思いますよ
わかる人が見つけたら答えてくれる筈です
制作頑張って下さいね
制作が詰まりましたら、気兼ねなく質問投稿させていただきます。
作品が日の目を浴びるまで、まだまだ先は長いですが…
ありがとうございました。
時間停止するスキルで既出のモノってありますか?
もしくはそういったスキルを持ったキャラが出るシナリオ・MODを教えていただきたいのですが…
karumsamiTVさんがTwitterでgifあげてたよ
たぶん広域ノックバックで無理やり止めてるやつ
>>485
「むなしい努力」というオリシナに登場するビヨナが、
「星天不動」という敵の動きを止める必殺技を使います。
長時間の短距離ノックバックで実装してるようです。
敵だけでなく味方にも当たるようにすれば、時間停止になるかも。
参考になりました!ありがとうございます。
以前、攻撃間隔と素早さ(speed)の関係について調べた者ですが、
今度は、移動力(move)がどの程度影響するかを調べてみました。
ヴァーレン本家シナリオの中立地帯に標的ユニットを配置して、
長射程スキル(即着弾で命中率100%)で最低ダメージを与えて攻撃回数を計りました。
前回実験の検証として、まずはmove=0にして試しました。
標準戦闘時間500は5000フレーム
speed=50だと60回攻撃した。攻撃間隔は5000/60=83.3フレーム
speed=60だと72回攻撃した。攻撃間隔は5000/72=69.4フレーム
speed=80だと95回攻撃した。攻撃間隔は5000/95=52.6フレーム
speed=100だと118回攻撃した。攻撃間隔は5000/118=42.4フレーム
speed=120だと141回攻撃した。攻撃間隔は5000/141=35.5フレーム
speed=130だと153回攻撃した。攻撃間隔は5000/153=32.7フレーム
speed=150だと176回攻撃した。攻撃間隔は5000/176=28.4フレーム
speed=200だと233回攻撃した。攻撃間隔は5000/233=21.5フレーム
停止状態(接近戦や減速100%の遠隔攻撃も)だと、ユニットのspeedにほぼ比例します。
新たな実験として移動しながら攻撃した場合の攻撃間隔を調べてみました。
speed=50、move=100だと50回攻撃した。攻撃間隔は5000/50=100フレーム
speed=50、move=200だと55回攻撃した。攻撃間隔は5000/55=90.9フレーム
speed=50、move=300だと59回攻撃した。攻撃間隔は5000/59=84.7フレーム
speed=50、move=400だと59回攻撃した。攻撃間隔は5000/59=84.7フレーム
moveを2倍や3倍と、大きく増やしても、攻撃回数は微増するだけです。
更にspeedとmoveを変えながら計測してみました。
speed=60、move=100だと53回攻撃した。攻撃間隔は5000/53=94.3フレーム
speed=60、move=200だと62回攻撃した。攻撃間隔は5000/62=80.6フレーム
speed=60、move=300だと70回攻撃した。攻撃間隔は5000/70=71.4フレーム
speed=60、move=400だと71回攻撃した。攻撃間隔は5000/71=70.4フレーム
speed=100、move=100だと74回攻撃した。攻撃間隔は5000/74=67.6フレーム
speed=100、move=200だと100回攻撃した。攻撃間隔は5000/100=50フレーム
speed=100、move=300だと111回攻撃した。攻撃間隔は5000/111=45フレーム
speed=100、move=400だと112回攻撃した。攻撃間隔は5000/111=44.6フレーム
speed=120、move=100だと80回攻撃した。攻撃間隔は5000/80=62.5フレーム
speed=120、move=200だと105回攻撃した。攻撃間隔は5000/105=47.6フレーム
speed=120、move=300だと118回攻撃した。攻撃間隔は5000/118=42.4フレーム
speed=120、move=400だと125回攻撃した。攻撃間隔は5000/125=40フレーム
speed=130、move=100だと133回攻撃した。攻撃間隔は5000/133=37.6フレーム
speed=130、move=200だと136回攻撃した。攻撃間隔は5000/136=36.8フレーム
speed=130、move=300だと144回攻撃した。攻撃間隔は5000/144=34.7フレーム
speed=130、move=400だと144回攻撃した。攻撃間隔は5000/144=34.7フレーム
speed=140、move=100だと146回攻撃した。攻撃間隔は5000/146=34.2フレーム
speed=140、move=200だと151回攻撃した。攻撃間隔は5000/151=33.1フレーム
speed=140、move=300だと148回攻撃した。攻撃間隔は5000/148=33.8フレーム
speed=150、move=100だと147回攻撃した。攻撃間隔は5000/147=34フレーム
speed=150、move=200だと151回攻撃した。攻撃間隔は5000/151=33.1フレーム
speed=150、move=300だと148回攻撃した。攻撃間隔は5000/148=33.8フレーム
speed=200、move=100だと150回攻撃した。攻撃間隔は5000/150=33.3フレーム
speed=200、move=200だと151回攻撃した。攻撃間隔は5000/151=33.1フレーム
移動中の攻撃回数は、停止状態よりも少なくなりますが、計算方法の詳細は不明です。
speedが同じでもmoveが上がるほど、攻撃回数も増えますが、影響は小さめです。
基本はspeed依存で、そこからmoveで微調節される感じです。
新たな発見として、移動中の攻撃間隔には最低値(33フレーム?)があることが判りました。
speedが140を超えると、それ以上speedを上げてもmoveを上げても差がでません。
なので、speedが200とか極端に速くても移動中の攻撃間隔には影響せず、
移動を停止させた時だけ攻撃間隔が短くなります。
moveの検証、お疲れ様です。
そういえば以前、移動力が極端に落ちる地形(海など)で移動しながらだと
手数が露骨に減ったのを経験したので、大きな差ではないとはいえ移動力の増減が手数に影響あるんですね。
検証乙です。
停止した方が速い事自体知らなかったですが、
移動が速い方が攻撃回数減少が抑えられるんですね。
バランス調整的にはspeedが120→130で攻撃回数激増するのが気になります。
この値をまたぐと調整が難しくなりそう。
テスト&報告おつです。Part8の700さんかな?
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1463836625/700-701
まあわかんないけど、この仮説で逆算してみました
仮説が正しければすべて同じ結果(公式のContext設定なら4000)になるはずだが・・・
speed 50 → 4065
speed 100 → 4040
speed 120 → 4020
speed 130 → 3991
speed 150 → 3960
speed 200 → 3900
※式: ( 行動間隔 - 2 ) × speed → unit_action_bdr
データ: >>489
・・・予想した結果にはならなかった。
speedが掛かる部分に固定値設定したら結果を近づけることはできるが
たとえば ( unit_action_bdr + 固定値100 ) ÷ speed + 固定値1 = 行動間隔 とか?
式をいじるより他の処理の影響を見るほうが有意義かな
>>492 , 493, 494
移動中の攻撃頻度については、おおまかな傾向しか判りませんでした。
「移動力の下がる苦手地形では、手数が減ってDPSが下がる」みたいな設計なのかも。
speedは手数への影響が大きいので、バランスを考えるのが難しそうです。
本家シナリオにおいてspeedは50〜100ぐらいの狭い範囲に設定されてるので、
本来はバフ込みで最高125ぐらいまでしか想定されてないのかもしれません。
Part8の700です。昔の投稿を覚えてた人が居たとは、ありがとうございます。
行動間隔にunit_action_bdrが関係してるのは確かですが、
実際に関係式を考えて試算すると計測結果から微妙にずれます。
なので、今回は具体的な計算式の推測は省きました。
ソースコードを読まない限り、実際にどうやってるかは謎のままです。
なるほど。過去ログの話題を踏まえての実験に見えたのでリンク貼らせてもらいました
ユニットごとに1フレームの処理数に制限があるんかな
もしくは最低単位の移動が終わるまでは他の処理が一時停止するとか・・・
<あぼーん>
召喚スキルについて質問です。
召喚で出現するユニットの排出率を変える事は可能でしょうか?
3体の中からランダムでユニットが出るとして、それぞれ5:4:1みたいに…
同じユニットの名前を複数書けばできた気がする。
add2 = (A,A,A,A,A,B,B,B,B,C)
最近VTから遠ざかっているので、確かめてはいない。
間違っていたらごめん。
隠し仕様扱いだけどできる
add2 = (A,A,A,A,A,B,B,B,B,C)じゃなくても
add2 = A*5,B*4,Cでも可
A*50000,B*10000,C*500,D*10,E*2とか大幅で召喚レア度も設定できる
こだわる場合はhide_helpで説明文を消して、helpを使って自分で説明文を作ったほうがいいかも
基本のhelp文だと、ずらっと「ランダム召喚ユニット:A、A・・・」ってAが続くから
499様、500様、501様
お三方の説明通りに試してみたら、バッチシやりたい事ができました!
ありがとうございます!
COMの思考について質問です。
contextファイルのbtl_retreat_coe をいじると、退却に関する思考を操作できるとwikiにありましたが、
具体的にはどのように設定すればよいか分かる方はいらっしゃいますか?
デフォルトでは、btl_retreat_coe = 20, 5, 200 となっていました。
ラスボスとの戦闘で10倍ほどの戦力差があると同盟国が退却してしまうので、困っています。
どなたかご教授願えませんでしょうか。
>>503
追記です。この値だと、5倍程度なら退却しないようです。
BoIの作者の用語説明によると、btl_retreat_coeの最初の三つは「前進判断・総退却判断・戦力比率」だそうです。
ただし、この戦力比率(デフォルトでは200)は基礎値であって、
実際の戦闘では勢力マスターの好戦値(kosen)の影響が大きいようです。
戦力比率200だから標準(kosen=50)なら2倍の戦力差(50%以下)で退却するとして、
kosen=60なら戦力が40%以下、kosen=70なら戦力が30%以下で退却、みたいな感じです。
本家シナリオをプレイして、ゲルドは劣勢でも全滅寸前まで粘るけど、グリーンはちょっと減ると逃げ出す、
みたいな体験をするのは、マスターの好戦値の影響っぽい。
btl_retreat_coeは全ての戦闘に影響するので、あまり変えない方がいいように思います。
ラスボス戦だけなら、ラスボス陣営のユニットの戦力値をマイナスのvalueで減らしたらどうでしょうか。
class構造体で「value = -1000」みたいに設定すれば、能力値は高くても戦力値を低くできます。
>>505
別角度からの回答ありがとうございます。
気持ちいいくらいにすっぱり解決できました。感謝感激雨あられです!
戦闘シーンにおいて、戦闘前でイベントを発生させることはできますが、
戦闘中にイベントを発生させるにはどうすればいいでしょうか。
if(isWorld() == 0 && battleevent == 0 && getLimit()==1200 && yet(5goisgod_heal) )
{
set(battleevent,1)
set(battlebgmchange,1)
routine(5goisgod_heal)
addSkill2(5goisgod,sp_heal_2)
}
例として、残り時間が1200のときに特定のユニットにスキルを付与しようと思ったのですが、
この構文ではイベントが発生しません。
シナリオ制作講座の戦闘中の条件式関数を見る限りだと、戦闘開始後でもイベントを起こせるかと思ったのですが…不可能なのでしょうか?
wikiの「戦闘中イベントの発生」ページを見ながら試してみました。
戦闘前イベントでbattleEvent関数を指定して、戦闘中イベントを予約する以上、
既に戦闘中なのに条件分岐で「isWorld() == 0」の項は必要ないです。
そもそも、簡易戦闘(戦闘を見ない)だと戦闘中イベントは発生しないもよう。
「getLimit() 〜」の項は正しく動作することが確認できました。
「yet(5goisgod_heal)」の項は「battleevent == 0」の項と条件が重複するような。
どういうroutineか知らないので未確認です。
とりあえず、戦闘中に指定された残り時間になったらif文の内容を実行して、
addSkill2でスキルを付与して使うことはできました。
デバッグするなら、「msg(battleevent=&battleevent&)」みたいな状態表示メッセージ
を各所に入れて、戦闘中イベントが発生して、if文が判定されてるか、
内部の変数がどういう値なのかを確認していけばいいでしょう。
参考までに、私が実験したコードを載せておきます。
イーサリーで戦闘に参加すると、残り時間450でファイアが付与されます。
story btl_test
{
fight = on
if ( isPlayer(t_sld1) && inBattle(t_sld1) ){
battleEvent(btl_evt)
}
}
event btl_evt
{
if (getLimit() == 450){
addSkill2(t_sld1, m_fire)
}
}
>>508
丁寧なご説明ありがとうございます。
戦闘中に会話イベント+スキル付与ので、非常に参考になりました!
シナリオではないのかもしれませんが、シナリオの一つでロストテクノロジーと銃魔のchip画像が破損しているか大きすぎる、などの理由で見ることができずMapMakerなどに取り込む事ができません。
windowsフォトビュアーでもペイントでも開くことができませんでした。
対策などを知ってる方はいますか?ぜひ教えて下さい。
その二作は暗号化されてる見れない状態がデフォだから諦めるがよろし。
著作権保護の関係だからね
そうなんですね
ありがとうございます!
>>510
ほとんどのシナリオではチップ画像を暗号化せずimage.datに結合してます。
このimage.datの拡張子をpngに変えたら(image.pngにする)、
Windowsフォトビュアーやペイントでも普通に表示できます。
ロステクと銃魔の両方で試して、見えることを確認しました。
なお、シナリオ製作ツールのImageViewなら、チップの名前も表示されます。
銃魔のディレクターされてるのロステクの作者さんで
二作とも商業展開しててかつ立ち絵を暗号化してるから
chipも見られたくなくて、拡張子変更してるのかとおもった
暗号化してないとchip改変されて流用とかされてしまう可能性高まりそうなんだけど大丈夫なのかな
まあ今更だし、暗号化自体も解除方法見つけてた人いたけど
>>512
自分がやってた頃のverのロステクはmage.datに結合してなくて
暗号化された画像ファイルがそれぞれ並んでる状態だったから勘違いしちゃってた
(そして銃魔もロステクも同じ形式と勘違いしてた)
今は結合してたのね。ごめんね
操作中のユニットにセリフを喋らせることはできないんでしょうか?
また、セリフの表示間隔を狭める方法なんかはございませんか?
必殺技のセリフは手動操作でも表示されるから
全スキル使用回数無限の必殺技に設定するのは?
なるほど、ランダムに発動させることもできますしね。
画期的な案ですね。ありがとうございます。
以前フォントが小さいと困ってる人がいましたが、解決策を見つけました。
SandBurstというツールでゲーム画面自体を拡大するという手法です。
文字だけでなく、ボタンやスキル・アイコン、ユニット画像も大きくなって、
視認性は良くなるし操作もしやすいので、いい感じです。ぜひ試してみてください。
質問です。
戦闘中にaddtroopで追加したユニットが退却する場合、必ず強制終了してしまうのですが、
なにか対処法はないでしょうか。
>>520
もう少し詳しく書きます。
・プレイヤーが攻撃側の場合、守備側の場合の二パターンに分けてスクリプトを書きましたが、
攻撃側の場合は退却しても強制終了は起きません。
・退却先の拠点があろうとなかろうと強制終了します
>>521 に更に追記
if(isWorld()==0 && inBattle(po26)==1 && isPlayer(po26) && (isNowSpot(sp6) || isNowSpot(sp15) || isNowSpot(sp16) || isNowSpot(sp17) || isNowSpot(sp25) || isNowSpot(sp26) || isNowSpot(sp52) || isNowSpot(sp53) || isNowSpot(sp55) || isNowSpot(sp56) || isNowSpot(sp71) || isNowSpot(sp72) || isNowSpot(sphzn) || isNowSpot(spkmn2)))
{
event(kaisen2_genri)
}
↑この関数で呼びだして、
↓このようなイベントを起こしています
event kaisen2_genri
{
if (inBattle(geruch)==1 && isPostIn(red,geruch,100)==0 || inBattle(genria)==1 && isPostIn(red,genria,100)==0 || inBattle(genrib)==1 && isPostIn(red,genrib,100)==0 ||inBattle(fmrim)==1 && isPostIn(red,fmrim,100)==0)
{
if (countSpot(po26)<3)
{
addTroop(hune30,2799,3199,4,blue)
(中略)
addTroop(kobune37,2799,3199,4,blue)
}
if (countSpot(po26)==3 || countSpot(po26)==4 ||countSpot(po26)==5)
{
addTroop(hune30,2799,3199,4,blue)
(中略)
addTroop(kobune39,2799,3199,4,blue)
}
if (countSpot(po26)>5)
{
addTroop(zoku21,2799,3199,4,blue)
(中略)
addTroop(hune32,2799,3199,4,blue)
}
if (inBattle(po24)==1 && isLeague(po26,po24)==0)
{
if (countSpot(po24)<3)
{
addTroop(zoku7,2,2,4,red)
(中略)
addTroop(kobune12,2,2,4,red)
}
if (countSpot(po24)==3 || countSpot(po24)==4 ||countSpot(po24)==5)
{
addTroop(zoku7,2,2,4,red)
(中略)
addTroop(hune12,2,2,4,red)
}
if (countSpot(po24)>5)
{
addTroop(zoku7,2,2,4,red)
(中略)
addTroop(hune14,2,2,4,red)
}
}
}
}
目の滑る下手くそなスクリプトで申し訳ございませんが、もし原因が分かる方がいれば、教えていただけると幸いです。
>>520
私の環境だと、addTroop後の退却で問題は再現できませんでした。
本家シナリオの放浪人材で旗揚げ戦闘開始時にaddTroopで戦場に他の人材を追加して、
その人材のHPが減って逃げてもエラーは発生しませんでした。
retreatTroopで退却させても問題は起きませんでした。
戦闘イベントとか、特殊な状況なのかな?他のスクリプトが原因の可能性もあります。
>>524
戦闘時に特定の領地であれば、大量の艦船を出現させるスクリプトのつもりで作りました。
艦船のユニットそれ自体の問題かもしれません。
unit kobune1:a004
{
help = @
name = ガレオン船
/+face = @
face = @
race = r0_hm
sex = @
class = c_ship
//yabo = 50
kosen = 100
brave = 100
//enable = 0
//enable_max = 20
//arbeit_capacity = 8
level = 5
//sortkey = 0
consti = sw*5, pl*5, ch*3, ar*5, gn*5, fire*3, wate*10, wind*2, eart*5, thun*2, ligh*5,
msw*5,mpl*5,mch*3,mar*5,mgn*5,mfire*3,mwate*10,mwind*2,meart*5,mthun*2,mligh*5,
poi*3,fear*5,ill*5,conf*5,stone*5,para*5,sil*5,drain*5
hp = 1500
defense = 40
hprec = 2
no_regular = on
no_escape = on
skill = b_gun,seiretsu
skill2 = s_kaizoku
friend@rsc = allrace,
friend@rsc2 = allrace,
friend@rsc3 = allrace,
friend@rsc4 = allrace,
friend@rsc5 = allrace,
friend = allrace,
staff = r0_hm,r10_hm,r1_co,r20_re,r2_hu,r3_ei,
join = @
dead = @
member=@
no_knock = @
break = robodead
movetype = ship
}
class c_ship:a004
{
image = ship3
fkey = c_ship
unique = on
same_friend = off
same_call=off
merce = @
summon_max = 3
change = c_ship2*15
}
class c_ship2:a004
{
image = ship
fkey = c_ship
unique = on
same_friend = off
same_call=off
merce = @
summon_max = 6
change = c_ship3*25
}
class c_ship3:a004
{
image = ship2
fkey = c_ship
unique = on
same_friend = off
same_call=off
summon_max = 9
merce = @
}
↑を基本形として、
unit kobune2:kobune1
{
}unit kobune3:kobune1
{
}
}unit kobune4:kobune1
{
skill2 = s_kaizoku_drama
}
・
・
・
というような流れでユニットを92個作ったのですが、継承のやり方に問題があるのでしょうか。
ユニットの数が多すぎて処理落ちしているということも考えましたが、
プレイヤーが攻撃側の際は同数のユニットをaddtroopで呼びだしても問題が起きなかったことから、違うのではないかと考えているのですが……。
実験してる間に追加で投稿されてたのに気付きませんでした。
新たに、自分が守備側でblue側にaddTroopしても問題は起きませんでした。
戦闘前イベントでaddTroopした人材は戦闘終了したら、
未登場の人材ならまた消えて(未登場に戻る?)、
登場済みの人材なら元の場所に戻る(部下も復活する)ようです。
強制終了のタイミングが謎です。戦闘中に特定のユニットが退却した瞬間に落ちるのか。
あるいは、戦闘が終了してワールドマップに戻った時に落ちるのか。
前者なら戦闘中イベント、後者ならワールドイベントかstory構造体内の
スクリプトのどこかに問題がある可能性が考えられます。
>>527
タイミングは退却ボタンをクリックした瞬間です。
BGM等も一瞬止まり、ゲームがそのまま落ちてしまいます。
戦闘のたびに起こしたいイベントなので、yetなどを指定していないため、
戦闘中に何度もイベントが反復されているのかと思い、getlimitで時間を指定してみましたが、
なぜか戦闘開始直後にイベントが発生して困惑しています。getlimitって効果ないんでしょうか……。
>>528
getLimitは(battleEvent関数で起す)戦闘中イベントで使います。
戦闘開始直後に発生するイベントは(scenario構造体で指定した)戦闘開始前イベントで、
両者は異なります。詳しくはシナリオ製作講座wikiを見てください。
それはさておき、やっと問題のエラーを私の環境でも再現できました。
先の実験では人材をaddTroopで追加して問題なかったんですが、
投稿525のunit構造体にtalent指定が無いから一般兵ではないかと気付いて
一般兵をaddTroopしてみたら、攻撃側だと退却できる(戦闘後は消える)けど、
防衛側だと退却ボタンを押したら強制終了しました。Vahren本体のバグだったんですね。
したがって、解決策としては艦船のユニットを全て人材(talent=on)にすればよさそう。
ただし、「退却先が無い」というメッセージが人材の数だけ出るのが難点です。
addTroopで追加する人材を「司令部」のような感じで一人だけにして、
大量の艦船ユニットは「司令部」が召喚するユニットとして出せばいいかも。
守備側に一般兵を追加するなら、部隊チップとしてマップに配置する手もあります。
ただし、addTroopと違ってプレイヤーが追加ユニットを操作することはできません。
配置するユニットの数を状況に応じて変更したいなら、
マップごとの部隊チップより、戦闘前スクリプトで追加した方がいいのかな。
でも、戦場のマップも変更できるから、部隊配置パターンを何種類か用意すれば同じか。
まあ、作者がやりたい事を実現する方法はいろいろあるということです。
>>529
>>getlimitについて
なるほど、そもそもの使い方が間違っていたんですね。ご教授ありがとうございます。
そして本題の召喚ユニットについてですが、残念ながらtalent=onにしても退却時に落ちるのは変わりませんでした。
しかし、「艦船を司令部が召喚するユニットにする」というアイデアを見て、
その司令部を召喚後に自爆させることを思いつき、実行してみたところ、問題は起きなくなりました。
何度も検証していただいた上に、素晴らしいアイデアをくださったこと、本当に感謝しています。
やりたいことが上手くできて感動しています。何度謝辞を述べても言い尽くせないほどですが、本当にありがとうございます。
>>531
人材によって違うのか試してみた所、そのシナリオに登場する人材じゃないと駄目でした。
領地(spot)に配置されてなく、放浪人材(scenario構造体のroam)でもない人材を守備側に
addTroopしたら、その人材を退却させた時だけ強制終了されました。不思議なバグです。
とりあえず、うまくいく方法が見つかってよかったです。
「退却するとバグるなら、退却する前に殺せばいい」という発想は思いつきませんでした。
バグは直せないけど、対処の仕方はいろいろあると。これもデバッグの醍醐味です。
雇用関係で質問です。
敵側のユニット雇用費を減らすには、どうすれば良いのでしょうか?
基本は敵専用のクラスを作って対応するしかないかな
例えば
class hei
{
price = 500
}
がいるとして、こいつを
class hei_enemy : hei
{
price = 100
}
という雇用費を継承したクラスを作る
それから今度はイベントで1ターン目にプレイヤー勢力以外の全勢力を調べて
それぞれerasePowerMerce(勢力A)、addPowerMerce(勢力A,hei_enemy)
って感じで全部対応するしかない
ぶっちゃけクラスと勢力が増えれば増えるほど面倒になるので、敵勢力に毎ターンお金を追加。で対応したほうが無難ではあるかも
失礼、「雇用費を」じゃなくて「雇用費以外を」継承したクラスです
あと「addPowerMerce」じゃなくて「addPowerMerce2」でした
ついでにクラスチェンジは継承しなかった気がするので
クラスチェンジもするならchenge = ○○を加える必要がある筈
丁寧なご説明ありがとうございます!!!!
MapMakerが一瞬Javaの起動をしてから本体の起動も反応しません。
PCはWindows10でjavaも更新しましたが、どうすれば正常に起動できますか?
起動すらしないのなら、環境変数を設定してないのかも。
JDKをインストールしただけじゃ駄目みたいです。
私はOpenJDKを使ってますが、
https://www.javadrive.jp/start/install/
このページを参考にして設定しました。
返信ありがとうございます。
教えて頂いた方法を試してみたのですが、
Java(黒い画面?)が直ぐに落ちてしまいます。
開くのに選択するアプリは『Java』を選んでいるのですが、
間違っていたでしょうか?
JARファイルをダブル・クリックして一瞬出てくる黒い画面はコマンドプロンプトです。
Java自体は呼べてるなら、JARファイルの関連付けに「-jar」オプションが抜けてるのかも。
自分ならレジストリを修正して直すけど、Jarfixという修正ツールがあるみたい。
修正しなくてもMapMakerさえ動けばいいなら、バッチ・ファイルで起動する手もあります。
MapMaker.jarがあるフォルダーにテキストドキュメントを新規作成します。
その内容に「javaw.exe -jar MapMaker.jar」という行を書き込みます。
で、ファイルの名前を「なんたら.bat」に変更してバッチ・ファイルのできあがり。
返信ありがとうございます。
Jarfixを使ったところ一発で起動できました。
教えていただきありがとうございました。
spotの名前をイベントなどで変更する方法はありませんか?
勢力名やspotの画像は変えられるみたいですが、どうも見つかりませんでした
spot構造体の中にif関数を設定して条件に応じて名前が変わるようにしようとしてみましたが、それもダメでした
>>542
すみません解決しました。
>>542
に関連した内容だけど、久しぶりに弄っていて宇宙物の完全ランダムシナリオを作ろうとしているんだが、
領地の名前をランダム設定することは難しいのだろうか?
文字変数で地名によくある接頭辞と接尾辞のリストを作って繋げて合成しようと考えているのだけど
spot構造体のnameは文字列のみで文字変数は使用できないようだし…
イベント関数からspotの名前を変更するのもできないようだし。
最悪、名称の合成を捨ててX数字,Y数字の座標番号でも良いんだけどね。
ワールドマップの仕様としては5000x5000のマップで、縦50マス横50マスの2500か所を設定する予定。(処理の重さ次第で規模縮小は検討)
予め同じ位置に複数のspotを作っておいて、どれを表示するかをスクリプトで制御すればいいかも。
でも、領地の数が多いと、データを用意するのが大変そう。連結線も繋がないといけないし。
プログラミングができるなら、ゲーム開始前にデータ自体を別のソフトで書き換える手もあります。
(ヴァーレン本体のスクリプトでできないことは他のツールでやればいいという考え。)
この方式なら、領地名だけでなく人材名や能力値、顔絵、だろうとなんでも、
必要に応じて内容をランダムに変更することができます。
(定型テキストファイル内の置換ならHSPとかで簡単に作れそう。)
>>545
ありがとうございます。VBAとVBSが出来ますので、
VBSからファイルシステムオブジェクト参照でSpotデータ生成を考えます。
ちなみに領地連結は以下の枠組みでランダム設定できるであろうと考えています。
久しぶりですので間違っていればご指摘いただけると幸いです。
set(ii, 0)
storeAllSpot(allspot)
while (ii <= 2499) {
Index(allspot, ii, thisspot)
//ここにカウンタ数値変数iiから座標計算の上でIF判定しthisspotから近隣地にランダム連結処理
add(ii, 1)
continue()
}
同盟してる状態での援軍を不可能にしたいんですが、設定では無理なんでしょうか?
support_rangeを0以下にしても、1(標準)と同じになるようです。
diplomacy=offにして外交を禁止しても、援軍要請は行えますし。
スクリプトで連結線を一時的に切って、援軍ルートを遮断するしかないのかな・・・
ダメージ計算式について質問です。
ダメージ計算式は
発射側の攻撃値×(0.8〜1.2)-被弾側の防御値×(0.8〜1.2)
ですが、この(0.8〜1.2)の数字を変更する事はできないのでしょうか?
>>548
ダメージのバラつきは、context構造体のdamage_maxとdamage_minで変更できます。
>>549
おかげで変更することができました。
回答ありがとうございます。
>>233
久しぶりにふと戻ってきて、ログを眺めての亀レスだけど素材暗号化の仕組みは公開されてる
jarってのはzipとして解凍可能で、素材暗号化のjarを解凍すると中にソースが入ってる
detailのよくわからない箇所で構文エラー「データ文で=を書き忘れてます」が出るんだけど、同じ症状出たことある人います?
なぜかテキスト書いてる行がエラーになって、その通りに修正したらこんな状態に
detail
{
unit=
文章
=文章
文章
;
一応=入れたら動きはするんだけど・・・どうにも不便で
他にもスキルのヘルプにテキスト書いても改行したらエラー出ることがしばしば
おま環かな・・・使ってるのはメモ帳です
ちゃんと括弧は閉じてる?
スキルのヘルプは改行出来なかった気が、1行にずらーっと書くしかない
detailは他のユニット項目で「;」を間違って消してしまっているとかが可能性としてあげられます
>>553-554
ありがとうございます、色々試してるうちになんとか解決しました
多分DATファイルそのものがおかしくなっていたようで
そのファイルは消して別のDATファイルに中身をコピペしたら普通に動くようになりました
スキルのヘルプは無理なんですね・・・一行にまとまる程度に書こう
>>555
何となく察しが付いた
文字コードが変わってたのが原因かもしれないよ
SHIFT-JISか、UTF-8に統一すべき
>>556
本当だ、このファイルUTF-8になってる・・・今まで文字コード意識したことなかったから全く気付いてませんでした
ありがとうございます!他のファイルも調べて統一します
BoIというオリシナをやってると、内政ユニットの雇用欄に赤字で雇用できないユニットが居るけど、
他のオリシナの内政には出てこないので、どうやってるのか謎だったんですが、いろいろ試してたら、
赤色になる条件がわかりました。以前質問してる人が居たので、参考までに書いておきます。
普通は内政ユニットにraceやclassを指定しないので、同種族同クラス雇用の制限にひっかからないので、
setPMしたら全ての内政ユニットを雇用できます。(雇用不可の赤字表記にならない)
BoIの内政ユニットにはclassが設定されてるので、クラスが違うから雇用できなくなるっぽいです。
私の実験シナリオでは、raceを指定しても、同じように雇用できなくすることができました。
classやraceを指定した上で、必要なのがfriendを設定することみたいです。
雇用不可にする内政ユニットがfriendに指定されてないと、別種族・別クラスでも雇用できてしまいます。
friendに記述したユニットだけが雇用制限されるのは変な気もしますが、どういう仕様かは不明です。
ここまでで雇用欄に雇用不可の内政ユニットを出せるんですが、priceに金額が設定されていて、
資金不足で雇用できない場合は、赤色じゃなく青色で表示されることに注意してください。
ランスシリーズ好きなので、「ルドラサウム大陸」やってみたいのですが・・・
お持ちの方いましたらどこかにアップしていただけませんか?
スバリアの傭兵とかアストゥール戦記にあった編制画面から訓練できるボタンを追加したいんですけど、wikiにも方法載ってないしこれ無理っぽいですかね…?
内政からレベル上げに誘導する方法だと遊ぶ側にとって操作が複雑でわかりづらくなってしまうので、なにかしら直感的にレベル上げできるものを追加したいんですが…
アイテムでレベルアップ用アイテムを買って、そのアイテムを持ってるユニットをターン開始時にレベルアップするぐらいならとか?
ボタン自体の追加は無理そうだし、アイテム使って何とか直感的にわかりやすくできんかなと考えてはいるが上手くはいってないな・・・
何の解決にもならないかもしれないけどSD戦記ってのが編成画面にアイテムボタン入れてたり
内政で個別レベルアップとかいれてるからスクリプト覗いたら参考になるかも?
ツイッターもやってるけどさすがに聞いてみれば?まではいえないけど
>>560
561の人のアイテムを使う方法は良い案ですが、
レベルを上げたいユニットごとにアイテムを買うのは操作が大変だろうから、
装備させたユニットと同じ部隊とか領地の複数ユニットを一度に訓練するようにしたら楽かも。
訓練用アイテムの費用によって、何ターン訓練してくれるとか、何レベルまで上げれる、
みたいな性能差も付けてもいいでしょう。訓練教官を臨時で雇う感じです。
アイテム…考えたこと無かった、目から鱗です…
この方法で思ってる操作感になるまで、いろいろ試してみたいと思います。皆様ありがとうございます。
シナリオ製作講座のsound構造体のページの内容が消えてるんだけど、元々なかったっけ?
編集履歴をみると2010/01/24 (日) 18:40:39 に作られてそのまんまだったからずっと白紙だったんじゃないかな
まじでか、じゃあ仕様わからないじゃないですかヤダー
どうしよう……
デフォシナのテキストみたらなんとなーくわかりそうなものだけど効果音とかの元の音量が違う場合統合性とるために音量調節するだけの機能だよ
元の音声が小さいなら大きく、大きいものは小さくそんな感じの機能
その辺は見て何となくわかったけど、+と-があるのがよくわからない
要望です
BGMのmidiファイルとmp3ファイルをそれぞれ一括で音量調整できる機能が欲しいです
>>569
+が相対的な音量で-が絶対的な音量(デシベル)だった気がする
>>570
おぉ、ご教授ありがとうございます!
絶対的っていうのはわかるんですけど、相対的っていうのがよくわからないですね・
どの基準に対して相対的なんでしょうか?お聞かせ願えませぬか?
>>571
過去スレに載っていたような気がするのですが忘れました。すみません
探したらあるかも
ヴァーレントゥーガってななあしさん=wiki制作者でいいのかな
権利関係がよくわからん
wikiにシナリオ作品公開に際しての注意事項が書いてあるのは確認したけど、本体の説明書には特に書かれてなくて???状態
ツクールやウルフみたいに自由にやってもいいのかね
質問です。
近接攻撃後、相手の能力を低下させるスキルを作ろうとしています。
まず、近接から下記の skill_1 につなぎ、skill_1 からskill_2とskill_eにつなぐという形で複数のスキルを発動させようとしています。
skill skill_1
{
func = missile
center = on
str = none
damage = 0
range = 0
speed = 0
time = 1
next3 = skill_2, skill_e
next_last = on
}
skill skill_2
{
sound = se1
func = heal
str = magic_dext*-10
add = defense
add_per = 100
range = 64
}
しかし、いざしてみると、skill_eは発動するのですが、skill_2が発動しません。
説明文では
||front
低下力:(Magic+Dext)×10%
と、skill_2の説明が表示されているのですが、設定するsoundすらならない状態です。
どなたかわかりましたらご回答いただけないでしょうか?
よろしくお願いします。
next3は遠距離攻撃のみに使えるとあるので「近接」を最初に入れた時点で作動しないのかもしれないです。
解決方法としては「next2」と「next_order」を使うことで両方発動します。
デメリットとしてnext_orderなので
スキル1→スキルnt1のあとにもう一度スキル1をはさんでスキルnt2が発動します。
すみません。質問内容をよく見ましたら
スキル近接→スキル遠距離(※ただし誰にも当たらない)でnextデバフ、nextスキルに繋がっています。
→誰にも当たらない
これが問題です。
nextデバフスキルにスキルの攻撃対象がスキル遠距離の不発によって設定されないのでデバフが発動していないのだと思われます。
nextスキルの方は攻撃スキルであるなら対象設定関係なしにnext_last=onによって飛んでいくから発動している感じだと思います。
単純な解決方法はつなぎのスキルに範囲を設定してください。
私のシナリオで参考になるスキルをコピペします。
skill mace
{
name = メイス
icon = mace.png, @.png
help = 刃のない鈍器です。確率で防御力低下か防御無視ダメージを与えます。$#―――――――――――――――――――――$#【攻撃:近接型】$##威力:(攻撃)×120%$属性:衝撃$↓$#【攻撃:範囲】$##威力:(攻撃)×5%$属性:城壁破壊 /射程:-- /「範囲:(24×24)」 /「範囲攻撃」$↓以下のいずれかに派生$#【敵防御低下:追撃型】$##威力:(攻撃+技術)×5%$#【敵HP低下:追撃型】$##威力:(攻撃)×50%$「発動確率:50%」
hide_help = on
sound = attack
func = sword
attr = shock
str = attack*120
next = a_p_nt
}
skill a_p_nt
{
bom = on
w = 24
h = 24
attr = wall
str = attack*5
rush = 1
next3 = mace_nt_debuff, mace_nt_debuff2
}
skill mace_nt_debuff
{
func = heal
str = attack_dext*-5
add = defense
}
skill mace_nt_debuff2 : hp_debuff
{
func = heal
str = attack*-50
add = hp
add_per = 50
}
こんな感じで防御低下デバフとHP低下防御無視攻撃が発動しているはずです。
>異界さん
healスキルは前スキルが当たらないと不発になるのですね……
参考スキルまでコピペいただきありがとうございます。
早速お教えいただい通りに前スキルに攻撃範囲をつけて当たるようにしたところ、無事発動するようになりました。
回答いただきありがとうございます。
維持費や財政値がある状態だとターン終了時に報告ダイアログが出てきます。
このダイアログを表示しないようにするには、どうしたらいいんでしょうか?
全てのユニットから維持費と財政値を消すしかないのかな・・・
<あぼーん>
>ななあし様
今更で申し訳ないのですがヴァーレン本体のバグ報告です。(Ver7.01にて確認)
英文モードでの動作中のみ、picture2関数による画像表示が行なわれない模様です。
もし可能であればご対応いただけますと幸いです。
>>581
失礼しました。こちら、当方の確認ミスだった模様です。
お騒がせしました・・・。
今更だけどデバッグモードでv押すと落ちるのって、
シナリオファイルいくつか消すと治んのね。
わざわざ過去のバージョン探す必要なかった…
どなたかお力添えください…
普通の戦闘だと正常にイベントが始まるのですが、
簡易戦闘だとターンの経過無く強制終了してしまいます。
何度も見直しましたが、クラスchangeのループやメモリ不足の線は無いと思います。
イベント関数の問題でしょうか?
イベントスクリプトは下記の通りです。
story fight_event
{
friend = sc1
fight = on
if(isWorld() == 0)
{
if(inBattle(a,b) == 1 && yet(vs_b) == 1 && isSameArmy(a,b) == 0)
{
event(vs_b)
}
if(inBattle(a,c) == 1 && yet(vs_c) == 1 && isSameArmy(a,c) == 0)
{
event(vs_c)
}
if(inBattle(a,d) == 1 && yet(vs_d) == 1 && isSameArmy(a,d) == 0)
{
event(vs_d)
}
if(inBattle(a,d) == 1 && yet(vs_e) == 1 && isSameArmy(a,e) == 0)
{
event(vs_e)
}
if(inBattle(a,f) == 1 && yet(vs_f) == 1 && isSameArmy(a,f) == 0)
{
event(vs_f)
}
}
}
classやunitに「stealth」を使っていませんか?
特に召喚ユニットに使われていると簡易戦闘時に重くなったり落ちる不具合をだいぶ前にですが教えていただきました。
>>異界さん
使ってないですね…
イベントをフォルダ外にパージしてもフリーズする事から、unitかskillかclassに問題があるんでしょうが…
もう少し発生理由の切り分け進めます。レスありがとうございます。
>>584
skillの問題なら、通常戦闘でも発生しそうなものだけど、簡易戦闘でだけ落ちるのは謎です。
優先順位的に、プレイヤー操作時は、問題のあるスキルが使われてないのかも?
召喚とか必殺技もボタンを押さないと使わないですし。
>>587 さん
>>異界さん
切り分けを行ったところ、召喚スキル持ちが参加する簡易戦闘時に強制終了することがわかりました。
もう一度スキルの見直しをしてみます。お二人ともありがとうございました!!!
俺もsummonスキルでぶっ飛んだ記憶ある
そのときはyorozu指定消したら直ったような
作者のななあしさんと連絡を取る事ってできないですか?
色々と要望があるからお伝えしたい
1年前なら>>227 がここやwikiの一行メモに書き込んで連絡を取ったようだけど
やり取り見てる感じ、管理人さんに仲介してもらえば連絡とれそうだが
ただの要望ならここに書いておけばいいでしょ
メールにして送る意味がわからない
そもそも最終更新から2年以上経っているし、ななあ神は今後はバグ修正のみって言ってるんだぞ
別のエンジンで再現したいから許可が欲しいって言っていた人は連絡が取れたらしいが
作る上で致命的or明らかなバグが見つかったならここに書くだけ書いてほしいなぁ
氏に拾ってもらえるかとは別に、共有できるものはしてほしい感がある
そういえばユニティだかで再現するとか言ってた人はどうなったんだろうね
あのエンジンだと糞重になりそうだけども結局諦めたのかな
続報が欲しいところではあるね
ヴァーレン本体を改良or作り直す事があるのなら使える画像の容量制限と大きさを何とかしてほしい
ヴァーレントゥーガ小物入れ、にある「Vahren.exeを改造してみた」ってのはどうなのかな?
作り直しじゃなく、本体の実行ファイルをバイナリ編集してるみたいですが、
データを弄るだけならともかく、挙動自体を変えれるとは知りませんでした。
ワールドマップ上のプレイヤーの位置表示と、
実際の配属スポットがズレる現象は何が原因でしょうか?
>>599
自己解決しました。
どうやらストーリーイベントからゲームスタートさせて人材プレイさせると起こるようです。
黙って放浪人材から選択させるようにしたら正常に動作しました。
失礼いたしました〜
デフォシナ遊ぶとmidiが音化けしたりサウンドフォントの設定が反映されないのが時たま辛い
改造スレのpart2あたりから話題に出てる仕様らしいから致し方なしか…
自分で遊ぶだけならmidiをmp3に変換して鳴らしておけばいいけど
>>601
wikiの「最新版の更新詳細」のページを見ると、
「debug_paper.txt」の中に「midi2」という行を追加すれば、midiの変音が減るそうです。
debug_paper.txtを「a_system」というフォルダーに入れれば、デバッグモードにはなりません。
(私はゲームしてるのがばれないように、musicoffを追加するから、midiの音は未確認です。)
>>602
おぉ、これは気付かなかった
試してみます
ちなみに、上記書き込みの後過去スレpart2の>>6 を参考にしてnofeed_bgmを設定してみたら体感で音化けがあんまり起きなくなったことも一応書いておきます
友好度による関係性の表示がどうなるのか興味があったので調べてみました。
100 = 友邦
80 ~ 99 = 親密
60 ~ 79 = 良好
40 ~ 59 = 普通
20 ~ 39 = 疎遠
1 ~ 19 = 嫌悪
0 = 宿敵
context構造体のdiplo_bestfriend値以上の友好度なら同盟できます。
標準だとdiplo_bestfriend = 80なので、親密なら同盟可能と、分かりやすいです。
駄目だ、召喚スキルを何度見直しても召喚する度にゲームが強制終了する謎。
まさかこんなところで制作が中断するとは…
>>605
スキル単独の問題だと気付きやすいけど、他の要素がからんでると難しそう。
問題なく動くことが分かってる本家シナリオなどに、
該当スキルとユニットだけを追加してみて、挙動がどうなるかを試してみたらいいかも。
あるいは、自分一人で解決するのを諦めて、どこかで公開して他の人に見てもらうとか。
もしも、ヴァーレン自体のバグや仕様が原因なら、他の手を考えないといけませんし。
>>605
わからんけどどっかで無限ループしてそう
エフェクトとか盛り盛りで複雑な事をさせているのならコメントアウトでいちいち確認しつつ、引っかかる場所を探してみてはどうだろう
一段目だけのシンプルなやつで止まるならなんだろうね? 召喚物が悪いのかね?
「むなしい努力」のクエスト遊んでて気付いたevent()関数のバグ
戦闘イベントで経験値もらえなくなるやつの回避策
本体バージョン:2017年7月(最新版では確認してません)
バグの内容:
参戦した部隊が召喚ユニットのような扱いにされる。
経験値がもらえない、一般ユニットが死なない(戦闘では消えるが復活する)、など
発生条件:
プレイヤーがBLUE側で参戦する戦闘イベントがあるとして、
event player_battle_event {
handle=blue
:
}
青勢力を空(未指定や@)で呼び出すとバグる
event(player_battle_event) // 未指定なのでアウト
バグ回避策:
参戦する勢力を正確に指定する
event(player_battle_event,赤勢力,プレイヤー所属勢力) // セーフ
ヴァーレントゥーガの機能ウィンドウで設定した値や
グローバル変数として書き込んだ値は「global.sav」に保存されます。
このグローバル変数は実績・トロフィーなどを記録するために使われますが、
wikiによると、一度作成したグローバル変数は消去できないそうです。
自分でオリシナを作る際に不便だし、どうやって記録されてるのか興味を持ったので、
「global.sav」ファイルの書式を調べてみました。
これって、プレイヤーが勝手に書き換えないように難読化されてるんですが、
(ゲーム内のスクリプトじゃ変数の一覧表示や部分的な削除ができないから)
制作者向けに、グローバル変数を閲覧・削除するツールを作ったら需要ありますかね?
需要はあるだろうし助かる人も多いとは思う
作者も好きにやってくれ状態だから何も言わないかもしれないけど勝手にやると割とまっくろけなことではあると思うよ
Wikiに新しくVahren.exe仕様ページができて、エンコーディングについて書かれてます。
私の実験だとUnicodeモードにすれば中国系の漢字を表示できました。OSはWindows 7です。
三国志のギョウ(業P)や公孫サン(王贊)みたいな、シフトJISじゃ駄目なやつ。
外国語を表示できるかどうかは、文字コードじゃなくフォントの問題っぽい。
LostTechnologyはUnicodeモードだけど、外人は日本語が化けて見えるようですし。
すみません、質問なのですが、部隊の前衛/後衛を調べる方法ってあったりしますか…?
プレイヤー操作で大量のユニットにアイテム装備の付け替えを行うとき、どうしても操作量が多くなってしまうので、システム側で自動で前衛/後衛を判別して装備を付け替えさせるイベントを組もうと思ったのですが、wikiに載っていなくて…
同じクラスがプレイヤーの振り分けによって装備を付け替えられるようにしたいのですが、もし無いのなら、クラスを増やすかスキルで分類する方式にするつもりです
ゲーム開始からものの10分でカクつくのは何が原因なんだろう
再起動すると治るけど、10分ごとに再起動なんてやってられない
最低でも1時間ぐらいは持ってもらいたいだけど
そのシナリオがメモリーリークやらかしてるんじゃないの
文字列変数のクリア忘れとか
>>614
ありがとう
メモリーリークという言葉すら知らなかったよ
とりあえず文字列変数にclear関数を使ってみました
それでもまだ使用メモリが少しずつ増加してる感じなんで、
クリアし忘れがあるのか探してみます
メモリ使用量の問題なら画像データの方が影響が大きそう・・・
私が古いパソコンで遊んでた時はmusicoffでBGMを無しにすると軽くなりました。
セーブデータの内容を見て気付いたんですが、一度使った数値変数は全て記録されてました。
ローカル変数じゃないから、変数の名前が被ると、以前の値が残ってることに注意です。
また、イベントを呼び出す際にevent()関数を使うと、そのイベント名も記録されます。
routine()関数で呼び出した場合は、特に記録されないみたい。
うん
文字(列)変数はセーブされないからそれじゃねって話
だいたいだけど
画面がフリーズ→スクリプトで無限ループやらかした可能性
ヴァーレンが突然落ちた→関数?(よくある) スキル?(稀。召喚とか)
最初から重い
→データが重い? スクリプトが重い?(全人材のループ処理が走りまくってるとか)
徐々に重くなる。セーブ・ロードすると軽くなる
→文字(列)変数のクリア忘れかな!
徐々に重くなる。セーブ・ロードしても直らない
→わからん・・・タスケテ・・・
心が折れかけているときに有益な情報が……
気になっているのは数値変数ですかね
人材のレベルに応じてイベントを起こすために事あるごとに代入してるので、それが蓄積してるんですかね
オリシナを作り、youtubeでプレイ動画や作業配信がしたい!
と考えている者ですが、ヴァーレントゥーガの配信ガイドラインはどこにありますか……?
既に、ヴァーレントゥーガ自体やオリジナルのシナリオの作業配信をしている方はいますが、こちらの場合、
『シナリオフォルダに存在しないファイルは自動的に標準フォルダa_defaultから読みに行きます。』
の仕様を利用して、ウィンドウ枠等は標準フォルダのを読み込むようにしています。
この場合、配信ガイドラインにひっかかったりするのでしょうか?
大丈夫なんじゃない?
再生されないmp3とされるmp3ってどう違うんでしょう
基本的には後者なんですが、素材探してていいな!と思った素材が前者の時がある・・・
621ですが自己解決しました
失礼いたしましたー
ビットレート落とすといんじゃなかったっけ
「スポット詳細見る時に、スポットの風景画像が画面いっぱいに広がったら素敵じゃね?
確かそんなシナリオ合ったよな」って思って一生懸命風景画描いていざ導入!って思ったら
いくら探してもその関数が無くて、よくよく調べてみたらスポット詳細表示時画像表示する仕様なんてどこにもなくて
完全に記憶違いの猪突猛進だったでござる
この用意した画像と私の汗と涙と悲しみと怒りを一体どこにぶつければいいのでしょうか?
>>624
領地で何かイベントを発生させる際に、その風景画を表示すればよさそう。
たとえ今は使い道が無くても、いつかきっと役に立つ日が来ますよ。
ボイス機能追加もロステク作者からのおねだりが元だったし、
ななあしさんと連絡が着けば追加される可能性はなくはないと思う
ただ、すでに更新終了を明言してるから前よりは確率は低いか…
シェムハみたいに、領地ごとに個別に内政ユニットを用意した上で、内政ユニットの立ち絵に指定したら表示されるかもしれないね。
試してないんですが。、
あぁ、いろんな意見をいただけて感激……ありがとうございます!
>>625 様
イベント中の背景画像はきのたけのような著作権切れ絵画を使おうと考えてます
巨匠の絵の中に素人の自分の絵を混ぜるのは抵抗がありますね(笑)
が、その線も考えようとおもいます
>>626 様
ななあし様一度コンタクトを取りたいと思ってましたので、その際におねだりしようかと思います
>>627 様
すいません、シェムハの内政ユニットというのは、どれを指しているのでしょうか
いろいろ考えた結果「鋼の時代」の内政領地みたいなのを各リュージョン(スポットの集まり:≒ゾーン)に設置して
その領地に専用ユニットを置いて、そのユニット参照時にpictureで風景画像が表示されるようにしようかなと考えてます
おそらく>>627 様の案に近いものですね
閲覧に手数がかかる上、不必要なステータス情報が表示されるのに抵抗はあるのですが……
イベントの多いシナリオだったら背景画像あると良いだろうなぁ。
でも、スポットで画像が表示できるなら、そういったフレーバー的な物より戦闘マップが表示されたら良いな。すごく重くなりそうな気がするけど。
あれ、ここ水辺スタートなの?からの不可避の攻撃で開幕壊滅っていうインフレシナあるあるが多少なりとも防げるのなら…
お久し振りです
ここ数年はヴァーレントゥーガのスクリプト言語(VTScript)の文法を調べていました
その結果構造体に記述する要素の種類名によって構文解析の挙動が異なることがわかりました。
・ROAM (文字列, ... ただし;で終わらなくてはならない)
roam, power, spot
・LOYAL (文字列*数値 文字列と数値をペアとして保持しているらしい)
attribute構造体
loyal, change, fkey, str, arbeit, brave, ground, gun_delay
・CONSTI (文字列*数値, ... 文字列と数値をペアとして保持しているらしい)
consti, icon, leader_skill, assist_skill, diplo, league, enemy_power, merits, loyals, wave, cutin, yorozu
・MEMBER (文字列*数値, ... CONSTI型との違いは数値回数文字列を繰り返しているのと一緒)
workspace構造体, context構造体
member, merce, add2, next2, next3, just_next, monster, sound, item, castle_guard, item_sale, item_hold
・TEXT (;が出てくるまで全部テキスト扱い)
detail構造体
text
・RAY (文字列 or 数値, ...)
ray, poli, camp, home, multi, learn, skill, color, joint, weapon, skill2, weapon2, activenum, friend_ex
・OFFSET (文字列 or 数値, ... RAY型と違って順番を保持しないっぽい)
voice_type, delskill, delskill2, friend, enemy, staff, offset
・DEFAULT
その他
CONSTI型とMEMBER型
RAY型とOFFSET型
ROAM型とTEXT型
これらを分類して総ざらいして判別するのにものっそい時間かかりました
ttps://ux.getuploader.com/vahren_ency2/download/669
ヴァーレントゥーガ用のLinterを作りました
Vahren.exeのあるフォルダに置いてダブルクリックするだけでバグとか怪しい書き方をもりもり検出できます
ttps://ux.getuploader.com/vahren_ency2/download/670
ちょっと機能足しました
大物入れはファイルのリンクを変えずにファイルだけアップデートすることはできないのでしょうか?
下のリンクのAssetsからWahren.exeという名前でダウンロードすることもできます
ttps://github.com/pCYSl5EDgo/Wahren/releases
来週金曜に機能を追加したものを大物入れに公開できたら良いなと考えています
unitのimage要素で指定したファイルがimageフォルダ以下に存在しないというバグを指摘できるようにしたいと思います
ttps://ux.getuploader.com/vahren_ency2/download/671
機能を大幅に追加しました。
1: 日本語化 (もし文字化けするようでしたら ttps://github.com/pCYSl5EDgo/Wahren/releases/download/v0.2.7/Wahren.exe )
2: 構造体の継承における無限ループの検知
3: skill構造体のバグ検出大幅強化
ダブルクリック以外でもコマンドラインから使用する場合format機能を使用可能です。
すごい便利そうなものが公開されてる
おつかれさまです
お疲れ様です。使ってみて凄い便利なんだけど起動しないパターンを。
シナリオフォルダ名を本家と同じ「a_default」にしないとスクリプト探せないシナリオがある。
debug_paperによって起動しないシナリオがある。(光の目)
>>637 さま フィードバックありがとうございます
光の目 v6.63のa_system/debug_paper.txtについて調査しました
シナリオ制作講座 ( ttps://w.atwiki.jp/vahren_ency/pages/411.html ) によりますと
> debug_paper.txtの行の末尾は必ず改行してください。
光の目のそれには最後の改行が存在しないのでこれが原因でしょう
わかりやすいエラー文を出すようにしたいと思います
>シナリオフォルダ名を本家と同じ「a_default」にしないとスクリプト探せないシナリオがある。
どちらのシナリオなのかわからないので原因は不明です
debug_paper.txtのエラー分わかりやすい版です
ttps://github.com/pCYSl5EDgo/Wahren/releases/tag/v0.2.8
上のは現在大規模な機能追加中で多少不安定になっています
大物入れの方は今回更新しません
来週か再来週の金曜あたりに大物入れにアップロードしたいと思います
お疲れ様です。ご対応ありがとうございます。
a_defaultの件ですがこれもdebug_paperが原因と思います。
debug_paperが無い場合、もしくは改行すらしていない空の場合はa_defaultである必要があります。
逆にある場合や、空でも改行だけしてあれば、検索できました。
本家のdebug_paperがこの改行していない状態なのでa_defaultをリネームするだけで状況再現できます。
>>640
再現方法の提示をしてくださりありがとうございました
ttps://ux.getuploader.com/vahren_ency2/download/672
改行していないことに対するエラーによる指摘はそのままにしておりますが、検索できるようにいたしました
Linterの実装に深刻な見落としがありましたので、大物入れのWahren.exeのアップデートを行いました
Linter、使用してみましたが凄いツールだと思いました
ところで、下記2点のメッセージが出たのですが、
これは不正記述ではないかも?と思いましたので報告します
・event構造体は要素'personal_battle'を持たないはずです。
・skill構造体は要素'offset_on'を持たないはずです。
ttps://w.atwiki.jp/vahren_ency/pages/534.html
personal_battle = (on/off)
onとすると戦場画面下の全部隊ウィンドウが人材プレイ時と同じになります。
ttps://w.atwiki.jp/vahren_ency/pages/378.html
offset_on = (on/off)
相殺されるスキルとなる。
スクリプトに熟達しているわけではないので、勘違いだったらすいません
>>642 さま
wikiを引用してわたしの見落としを指摘してくださりありがとうございました
ttps://github.com/pCYSl5EDgo/Wahren/releases/tag/v0.2.11
今週金曜日にたぶん大物入れに出せるWahren.exeからは半自動更新機能がついてくるはずです
Wahren.exeをダブルクリックするとインターネット上に最新版が存在するかどうか確認しにいくようになります
最新版が存在する場合それをWahren.new.exeという名前で同じフォルダに勝手にダウンロードしてきます
>>637 さまや>>642 さまらのようなありがたいご指摘を素早く反映し、手軽に手元にもってこれるようになると思います
> offset_on = (on/off) 相殺されるスキルとなる。
この情報は古いです。
最近のバージョンでは機能しません。offset_on = on と記述しても相殺されません。
少し古いv6.85と最新のv7.01で試しましたが、両方で相殺されませんでした。
わざわざ古いバージョン専用にオリシナを作る意味はないので、
offset_on という要素が存在したら「現在では無効です」と警告を出すべきです。
相殺されるだけのスキルにしたい場合は、offset = on と記述しないといけません。
相殺に関する関数って現在
「offset」 :相殺できる属性、スキル名の記載
「offset_attr」:相殺できるスキル名の記載
「hard2」 :相殺レベルの強さ
「collision」 :相殺された際の発動スキル
しかなかったよね
ところで「offset_attr」君って、いつ使うんですか?
「offset」君がスキル名参照での相殺対象設定できるから、「offset_attr」君はいらない子なんじゃないですか?
教えてっ!エロい人!!
スキル名を一つずつ記述するより、一括して書けた方が便利からだと思います。
例えば、盾のスキルで offset = dagger, knife, spear
みたいな感じで、防御したいスキル名を個別に書かないといけません。
スキルの数が多いと書くの大変ですし、表示も長くなってプレイヤーは読みにくい。
そこで、盾で防げる無属性スキル用に allshot という名称だけのスキルを作って、
それぞれのスキル内で offset_attr = allshot と記述すれば、
盾のスキル内では offset = allshot だけで済みます。
全てのスキルに属性を設定してる場合は、その属性で指定すればいいから
offset_attr は要らないかも。
無属性だけど相殺される複数のスキルを一括して指定したい時に使う感じ。
Wahren.exeはダブルクリックで起動して使用できるようにしています
……ですが、作者本人はVS Code付属のTerminalから起動してCtrl + Clickで該当エラーに飛んで修正しています
こっちのほうが正直便利ですよ(下のリンクはこんな感じという画面)
ttps://twitter.com/pCYSl5EDgo/status/1448323386925477892
offset_onについてこちらでも再現してみようと思います
>>647
えっと、「offset_attr」は攻撃時に参照される属性とは別に、
相殺時に参照される属性を設定できるという事でしょうか?
(要は相殺専用の属性)
そして設定の際は、
・その相殺専用属性の名称を持つ空スキル関数を設け、
・被相殺スキル群の「offset_attr」に、その空スキル関数名を記載し、
・相殺スキル群の「offset」にその空スキル関数名を記載する
こうすることで、無属性スキルでも手軽な相殺ができるという事ですか
>>649
はい、その通りです。「相殺専用の属性」とは、うまいこと言いますね。
オリシナ「Brave of Island」の作者が公開してる素材集VT_material_1400.zipに、
スクリプトのヘルプ(VTDk.hhp)が同梱されてます。関数の使い方や説明など。
サクラエディタ用キーワードヘルプなんですが、中身はテキスト形式ですので、
拡張子を .txt に変更すれば、普通に内容を読めます。参考にしてみてください。
ttps://ux.getuploader.com/vahren_ency2/download/673
・半自動アップデート機能追加
・offset_on再度エラー
・dungeon構造体は 要素名@数値 と 要素名@シナリオ名 の2通りありうるのだが、これまでそれを正しく処理できなかった問題の修正
Wahren.exeの次回以降の機能追加について要望があれば投票してください
ttps://twitter.com/pCYSl5EDgo/status/1448968780005081096
・world map編集
scenarioの初期ワールドマップを見える化し、GUIで編集できるようにする
作業量:大
・変数列挙
自分が定義した数値変数や文字列変数、グローバル変数の一覧を表示する機能
作業量:小
・エラー検知の充実
作業量:中
>>650
ご丁寧にありがとうございます
ちょうど同じ攻撃参照属性を持ちながら、相殺したいスキルとそうでないスキルの問題を有していましたので
そこに今回ご教授くださった知識を活用したいと思います
もふもふさんの公開素材にそんなものがあったのですね、知りませんでした
早速拝読しようと思います、ありがとうございます!
>>652
シナリオ作者さんの負担が大きく減りそうだし作業量も小な変数列挙に一票
>>652
自分もこの中で使うなら変数列挙かなぁ
ローカルな定義がないぶん使い方によっては事故りやすいし
Wahren.exeさわりました。
「class構造体は要素leader_skillを持たないはずです。」
と出ますが、一般にもリーダースキル持ちを生成できます。
とご報告をば
リーダースキル持ちの一般なら光の目のビーストテイマーとか、
天地戦争のフィセンルニク士官とかあちこちのシナリオで実装されてるし別におかしくなくない?
で、ついでに言っとくけど一般部隊の付与スキル指定は祖国と銃との
部隊単位装備アイテムで活用されている(Classのおおもとにスキル付与が仕込まれている)から、こっちもまるっきり問題なかったりする
おかしくないのに通知が無限にきてるから邪魔なの
文体からして設定できることがおかしいと勘違いしたわ、すまない
>>656 さま
漏れを教えてくださりありがとうございます
>>657 さまの提示してくださった例を確認しました
お二方とも大変ありがとうございます
v0.2.20とwikiを修正しました
# 新機能
変数列挙機能がわりとサクッと休日丸一日で実装できましたのでv0.2.20から搭載されました
コマンドワインで↓のように起動すると対話モードに移行します
wahren.exe interact
「ダブルクリックで起動したいのじゃー」という方向けにbatファイルを小物入れに上げました
Wahren.exeと同じフォルダに置いてください
ttps://ux.getuploader.com/vahren/download/4741
## 対話モードの使い方
help
ヘルプを表示します
reload
scriptフォルダの再解析を行います
list [kind]
[kind]で指定したものを列挙します
- list num
-- 数値変数を列挙します
- list str
-- 文字列変数を列挙します
- list gnum
-- グローバル変数を列挙します
- list gstr
-- グローバル文字列変数を列挙します
- list unit
-- unit構造体を列挙します
ref [kind] [name]
[kind]で指定した[name]という名前のものに対する参照を列挙します
- ref num hogehoge
-- hogehogeという数値変数がスクリプト中のどこから呼び出されているのか一覧を表示します
半自動アップデート機能がうまく動作すれば、現在のWahren.exeをダブルクリックしてしばらく待てばWahren.new.exeという名前でダウンロードされるはずです
うまく行かない場合は教えて下さいませ
ところでvahren本体に記述されているunit構造体の
sub_image@@15
ってどういう意味なのでしょうか?
@15ではなく@@15という点がとくによくわかりません
私自身では未確認ですが、VT_material_1400.zip同梱のヘルプから以下の内容を転載します。
sub_image(文字列) = (ユニットアイコン名)
unit/class構造体:アイコンの差し替え設定。特定のシナリオ・Lvの条件を満たした時、アイコンを差し替えます。
レベルを指定する場合はsub_image@@(指定Lv) = (ユニットアイコン名)とします。
シナリオを指定する場合はsub_image@(シナリオ構造体の識別子) = (ユニットアイコン名)とします。
レベルとシナリオを指定する場合はsub_image@@(指定Lv)@(シナリオ構造体の識別子) = (ユニットアイコン名)とします。
Lv指定時は@を『二つ』書く必要がある点に注意して下さい。
回答ありがとうございます
非常に助かりました
と、特殊挙動……
次のバージョンでいい感じに処理できるようにしたいと思います
<あぼーん>
<あぼーん>
offset_attr君を試してみたんだけど息してない
offsetにoffset_attrで引用するスキルを記入したら、
offsetを設定したスキルのヘルプ内に「相殺できますよ」的な表示がされたけど、
実際に試してみるとまるで相殺してない
いろいろ試した結果、offset_attrが設定されてるスキルに、武器属性が反映されてない気がする
どうしよう
ごめんなさい、行けました
被相殺スキルのほうに、相殺側の武器属性を記入してませんでした
相殺ってそういえば、双方にお互いの武器属性記入しないといけないんでしたね
よかった、これで解決ですね!
ただそうなるとあれですか
相殺レベル関係なくこの武器属性を持ってると
とある武器属性に対して絶対的な優位性(相殺力)を
持つことはできないという事ですか
offsetを設定するということは
「その属性を打ち消せる」
というよりも
「その属性を有するスキルと、相殺の土俵で戦える」
ってことなんですかね
なんかいろいろ設定してるうちに、どうとらえたらいいかわかんなくなっちゃった
offset_attrは相殺の土俵で戦えるではなく相殺の設定のしようのないスキルを一部スキルで打ち消せるようにするためのスキルだよ
それがないと属性設定してないものは相殺できないけどそういうスキルを相殺できるように使う
wikiに書いてある通りシールド実装したときに今までの仕様だと魔法の属性でも弓の属性でもないスキルは打ち消せなかったからそれ以外も打ち消せるようにするために作られたやつ
デフォでいうなら投擲物カテゴリー
interactの使い勝手に関してフィードバックが欲しいです
<あぼーん>
すいません、質問です。
オリシナを作っている者なのですが、人材プレイ開始時に人材が死亡してゲームオーバーになってしまうようになってしまいました。
解決方法があれば教えてください。
お願いします。
確か人材が放浪したらゲームオーバーになるような記述なかったっけ。
うろ覚えだから確かじゃなかったらすまん;
674さんの指摘が当たってそう。
context構造体で talent_mode = off にしてるのが原因かもしれません。
<あぼーん>
673の者です。
context の部分を確認させてもらったところ、talent _mode やその他のスクリプトが消滅していたことが原因でした。
無事人材プレイを始めることができるようになりました!
返信ありがとうございました!
人材プレイの際に天界/エニグマなどを選んだ際に顔アイコンが表示されないのでオリジナルアイコンを表示させたいのですが
エニグマなどのコードはどこにあるのでしょうか?
デフォスレで質問してた人っぽいけどそれだと何のゲームかわからないしコードがキャラのアイコンとか性能決めてるやつならシナリオで違うしそもそも暗号化してていじれないのもあるよ
>>678
「ヴァーレントゥーガまとめwiki」内の「シナリオ製作講座」に詳細が書いてます。
まず、faceフォルダーに画像ファイルを入れます。
次にscriptフォルダー内の .datファイルから「unit」で検索して狙いのunit構造体を探して、
表示させたいフェイス画像を「face=画像名」の項目で追加すればいいです。
他のunitデータを参考にすれば、だいたいどこを変えたらいいか分かりそう。
>>679
>>680
該当のユニットが見つからなかったので新規に追加することで解決しました
”func = sword”のスキルがうまく反応しなくなった
contextで設定した”handrange” 内に敵がいるのに、なぜかスキルが発生せず
敵に密接しながら一緒にジリ…‥ジリ……って動いて何もしない
ちょっと前にユニットの”radius”いじったけど、それと関係があるんだろうか
682です
一応問題は解決しました。
よく調べてみたところ、上記の問題は”func = sword”を設定したすべてのスキルで発生するものではなく
その中の特定のスキルでのみ、上記問題挙動(スキルが発生せず、微挙動を繰り返す)がおきました
ただ問題が起きるスキルと、問題が起きるスキルに類似した、健全に作動するスキルの記述を比較したところ、
これといった問題点は確認できませんでした(何かしらの記述が抜けている、スペルミスがある等が見当たらなかった)
問題解決の為に、問題スキルの部位ごとの記述を入れ替えたり、書き直したりしたのですが、結局解決はせず
最終的には、問題の起きるスキルを全消去したうえで、類似する健全なスキルを複製し、
それを問題スキルの仕様に沿った記述に修正することで、解決をすることが出来ました
問題は解決しましたが、どうしてこれが起きたのかはわからないまま、当案件は終了した形になります
とてもこわい
>>683
問題のあるスキルを記述してた .dat ファイルの文字コードが違ってたのかも。
最近の Windows OS だと、テキストファイルは標準でユニコードになってそう。
ヴァーレントゥーガまとめwikiの「最新版のDLと更新詳細」ページによると。
Vahren.exeは標準では ShiftJIS です。Unicode のファイルは無視されます。
Unicode 読み込みにしてる場合は文字コードを UTF-16 BOM 付にすればいいっぽい。
>>684
返答ありです
結論から申しますが、文字コードの違いはありませんでした
あと、>>682 の記載内容に不備がありました、謝罪いたします
誤:
contextで設定した”handrange” 内に敵がいるのに、なぜかスキルが発生せず
敵に密接しながら一緒にジリ…‥ジリ……って動いて何もしない
正:
contextで設定した”handrange” 内に敵がいる状態の際
「暫くは普通に(近接)スキルが発動する」のですが
一定回数発動後、急にスキルの発動が行われなくなり
その後、敵に密接しながら、ジリ…‥ジリ……って動いて何もしなくなる
一度距離を取って再度"handrange"無いに入った際も、
一度発動するか、一度も発動せずに、再び上記の状態に入ります
MPを消費するスキルでMPが足りないならその状態になるかな
>>686
あーーーーー!!!それだぁああ
ありがとうございます―――!!解決しましたっ!!!
よかったねっ
おもちゃのチャチャチャみたいなスキル作りたい
damage_consti の設定が標準でどうなってるのか不思議に思って調べてみました。
まず、context構造体に damage_max = 100 と damage_min = 100 を追加して
ダメージのランダム性を無くしてから実験しました。
攻撃側ユニットは attack = 1000、スキルは str = attack * 100 に属性は attr = fire です。
防御側ユニットは defense = 0 にしました。
consti = fire * 0(致死)ならダメージ表示は「-9999」でした。HPがそれ以上でも一発で死ぬ。
consti = fire * 1(凄く弱い)ならダメージ表示は「-2000」でした。100% 増加
consti = fire * 2(弱い)ならダメージ表示は「-1750」でした。75% 増加
consti = fire * 3(少し弱い)ならダメージ表示は「-1500」でした。50% 増加
consti = fire * 4(微弱)ならダメージ表示は「-1200」でした。20% 増加
consti = fire * 5(普通)ならダメージ表示は「-1000」でした。
consti = fire * 6(微強)ならダメージ表示は「-833」でした。16.7% 軽減
consti = fire * 7(少し強い)ならダメージ表示は「-667」でした。33.3% 軽減
consti = fire * 8(強い)ならダメージ表示は「-571」でした。42.9% 軽減
consti = fire * 9(凄く強い)ならダメージ表示は「-500」でした。50% 軽減
consti = fire * 10(無敵)ならダメージ表示はありませんでした。HPは減らない。
ちなみに、ユニットの頭上に出るダメージ表示は最大で -9999 までみたいです。
耐性が6以上でダメージを軽減する際に中途半端な数値になったので、
追加で攻撃力を 10000 に上げた場合も実験してみました。
consti = fire * 6(微強)ならダメージ表示は「-8333」でした。16.67% 軽減
consti = fire * 7(少し強い)ならダメージ表示は「-6667」でした。33.33% 軽減
consti = fire * 8(強い)ならダメージ表示は「-5714」でした。42.86% 軽減
consti = fire * 9(凄く強い)ならダメージ表示は「-5000」でした。50% 軽減
どうやら、小数点以下が続くのは、分数で計算してるからのようです。
耐性値 = 1 なら、攻撃力が 2/1 になる。200%
耐性値 = 2 なら、攻撃力が 7/4 になる。175%
耐性値 = 3 なら、攻撃力が 3/2 になる。150%
耐性値 = 4 なら、攻撃力が 6/5 になる。120%
耐性値 = 5 なら、攻撃力が 1/1 になる。100%
耐性値 = 6 なら、攻撃力が 5/6 になる。83.33%
耐性値 = 7 なら、攻撃力が 2/3 になる。66.67%
耐性値 = 8 なら、攻撃力が 4/7 になる。57.14%
耐性値 = 9 なら、攻撃力が 1/2 になる。50%
耐性の中央値5を挟んで、分数の分母と分子が逆転してるのが分かります。
こういう規則的な数値を見ると、計算方法が理解しやすく、スッキリしました。
あと、damage_max と damage_min の標準値も調べてみました。
攻撃力を 1000 にしてダメージ表示を見続けてたら、
ダメージの範囲は -801 〜 -1199 でした。
-800 や -1200 にはならなかったけど、もっと繰り返せば出てくるのかは分かりません。
とりあえず、私が観察した限りでは、標準設定は
damage_max = 120
damage_min = 80
だろうと思われます。
<あぼーん>
おはようございます。貴情のくーろんです
今だオリシナ製作を続けています、難航していますが(;´∀`)
年末年始(12/29〜01/04)ですが、作業効率の低下を防ぐため
pixivスケッチで08:30〜17:30(予定)に監視配信(マイク有※変更有)やろうと思います
(一日だけ休みます。今の所01/02日予定)
配信前に毎回こちらで誘導URL付きの告知をさせていただこうと考えております
ご不快な思いをされる方もいると思いますが、お許しをいただきたくおもいます
(スレチ等ありましたら、お手数ですが一言ください)
足を運んでくださるだけでも、ものすごく励みになりますので
もしよろしければお越しください
>>690
検証お疲れ様です ^^) _旦~~
メモ帳に保存しました、バランス調整の再活用させていただきます!
複数のスキルを有するユニットが、スキルを発動する場合の
発動の優先順がどのような仕様になってるのか、ご存知の方いませんか?
例えになるのですが
発動範囲が重なるスキルA、スキルBがあり
スキルBのほうの消費MPが、スキルAより高いとして
上記両方のスキルを持っているユニットが自動戦闘を行う際
そのユニットにスキルBを発動できるだけのMPが溜まっている時、優先してBを発動してほしいのですが
動かしてみたところ消費MPの少ないスキルAばかり使用し、スキルBを使用してくれません
この場合スキルBを優先させるために、どのように設定すればよいのかがわかりません
スキルBのsortkeyを低くしたり、スキル順を前に持ってきたりしたのですが、優先しての発動はありませんでした
各スキルにgun_delayを設ける方法や、発動範囲を変える方法もあるにはあるのですが
出来る事ならをれらを行わずにスキルBを優先発動してほしいと思っています
ご助力宜しくお願いします
使用者のmprec50
スキルA、消費MP40 sortkey-400
スキルB、消費MP50 sortkey-401
これ以外は全く同じmissileスキル(見分けるためにimageだけ別)
これでBのみ使用
スキルAのsortkeyを-402にして再度試すとAのみ使用した。
続いてそのままスキルBのcheckとrangeを長くしてみたが、
Aの射程外ならBを使用、Aの射程内であればAのみ使用した。
他にも消費MPや威力や属性をバラバラにしてみたが、
射程とsortkeyによる優先度順守って感じでした。
あとsortkeyの更新はユニットを再生成しないといけない点に注意(新しいスキルの追加と同じ様に)
おはようございます!貴情のくーろんです。
pixivスケッチにて「年末年始VTオリシナ作成監視会」(マイク有)開始いたしました!
下記URLから参加することが出来ます
どなたでもお気軽にご参加ください!!
https://sketch.pixiv.net/@peacefull-wicca/lives/2650821588374018943
>>697
あぁっ!わざわざ検証までしてくださって、ありがとうございます!!
やはりsortkey依存なのですね、じゃあなんで自分のはできなかったんでしょうか?
もしかして、funcが異なるのが問題なのでしょうか
片方のスキルがfunc=swordで、もう片方がfunc=missileなんですけど
それが関係があったりするんでしょうか
おはようございます!貴情のくーろんです!
本日もpixivスケッチにて「年末年始VTオリシナ作成監視会」(マイク有)開始いたしました!
下記URLから参加することが出来ます
どなたでもお気軽にご参加ください!!
→https://sketch.pixiv.net/@peacefull-wicca/lives/5155308158016803419
>>699
プレイヤー勢力だとスキルの優先順位はアイコンの並び順(sortkey)ですが、
COM勢力はほぼランダムのようです。(一定時間ごとに順序が変わる感じ。)
697の実験では、自分が操作するユニットだったんじゃないかと思います。
696の質問者は、COMが担当してるユニットの挙動を見てたのかも。
あと、func=sword のスキルは敵に隣接した直後に発動します。
func=missile のスキルは一定間隔ごとにしか発動しないので、
speedが遅くてタイミングが悪いと発動するまで待たされたような。
敵に接近→後退を繰り返すことで近接攻撃の頻度が上がるのはそういうことね
おはようございます!貴情のくーろんです!
本日もpixivスケッチにて「年末年始VTオリシナ作成監視会」(マイク有)開始いたしました!
下記URLから参加することが出来ます
どなたでもお気軽にご参加ください!!
→https://sketch.pixiv.net/@peacefull-wicca/lives/7328647517276212541
あけましておめでとうございます!貴情のくーろんです!
本年も何卒宜しくお願いします!!
年始早々本気出していいきます!!正月配信!
よろしければお付き合い宜しくお願いします!
→https://sketch.pixiv.net/@peacefull-wicca/lives/334409983019059310
>>701
返信遅れてすいません、加えいろいろとお手間をかけていただき、本当にありがとうございます!
実際自分が見た挙動は701の下記のようなものでした
COM挙動での確認ですが、swordスキルを積極的に使用し、missileの方は本当にまれにしか使用しませんでした
missileの方のスキルの発動タイミングが、swordスキルにくわれていたと解釈できる光景でした
私が抱えていた問題につきましては、仕様を変えてそれなりに納得のいく形になりました
質問に答えてくださりありがとうございました!今後ともよろしくお願いします
おはようございます!貴情のくーろんです
pixivスケッチにて製作配信(マイク有)を開始しました
下記URLから配信場所へアクセスできます
もしよろしければお付き合いお願いします!
→https://sketch.pixiv.net/@peacefull-wicca/lives/7285718510117346440
おはようございます!貴情のくーろんです
ヴァーレン制作配信最終日始めました
最後まで頑張って行きたいと思いますので、よろしければお付き合いお願いしまーす!
アクセスは下記URLより
→https://sketch.pixiv.net/@peacefull-wicca/lives/4608464340198730582
本日で最後の告知となります
これまでお付き合いくださった皆様に、あらためて感謝申し上げます!ありがとうございました!!
あと、スレ占領みたいなことになってしまい、申し訳ありませんでした(;´Д`)
なんか自作スキルデバックしようとするとフリーズしてゲームが落ちる
なんで?
dat数が多すぎると落ちる仕様がある
>>709
治りましたありがとうございますー!!!
そんな仕様があったなんて知りませんでした、メモさせていただきます!
ちなみに、数えてみたらskillファイル32個ありました
人材が多過ぎると、機能ウィンドウの人材一覧に表示されなくなるんですが、
数えてみたら丁度 400人まででした。他の人もこの現象で困ったら参考にしてください。
実行ファイル改造した物をアップしておきました
小物入れ1
>>489 辺りの見てて気づいたけど減速がクソ重いスキルよりslow_per = -1のほうが結果的に動き(減速から回復する速さ)は早くなるね
というより減速率が大きければ大きい程数値上の見た目よりも実際のペナルティが厳しいというか
地形相性やスキルによる減速で元の移動力から落ちるほどユニットの行動回数にも支障が出る仕様だけど
移動を完全停止してる状態だと逆に最も早くターンがまわってくるから硬直からの復帰も早くなる
きのたけのフライコーア銃みたいな-60%とかの減速が入ると手数的にもかなりロストが大きいので
減速移動しながら戦うより固定砲台にした方が復帰が早いから使用時移動停止スキルのがマシだったりする
オリシナ製作してるとその制作の最中で
「DPSのバランスとかって、他の製作者はどう調整してるんだろう」とか考えるんですが
上記のやり取りみてると、その辺の調整ってVTだとほんとに大変そうですね
純粋にダメージと一定ごとの攻撃回数を調整するだけならある程度は収まりそうですが
VTの場合射程とか相殺とかも出てくるわけですし、みんなどうしてるんでしょう
私はデータでみても分からない部分が多いんで、実際にテストプレイして経験値効率とかと合わせて強さ調整してます。
戦場での火力の大小よりも、その後のレベルアップによる戦力の増加の方が「強さ」に直結するのでって感じです。
『火力が出ている≒レベルアップが早い』
と考えてます。
で「火力を出さないけど戦場で貢献する」攻撃スキルとかは経験値効率を調整します。
そこらへんは作者のバランス能力によると思うよ
経験値効率の話があったけど連射と攻撃位置が違うだけで成長速度の桁が違う
ほかにもオール系の補助や回復で効果位置を下にずらすと効果を及ぼした人数分まるっと経験値がはいってすごいことになる
dot床生成とか持続回復とか自分以外を回復とか一定距離は当たらなくて癖が強いけど威力は高いとか振り分けようと思えばかなりいろんなスキル作れるよ
ただcpuが使いこなせないので結局無難なものになる
皆様はじめまして
最近オリシナ作りにハマりはじめた者です
皆さんにお聞きしたいのですが、部隊長のみ自動・部隊員は待機のようなボタン設定は可能でしょうか?
的外れな質問でしたらすみません
可能であれば人材の経験値稼ぎの際に便利かと思いまして
>>718
戦闘画面右上に兵士の体力バーがならんどるじゃろ?
そこの選択したい部隊長のユニット画像のすぐ隣の体力バーをクリックする
すると部隊長のみに指示できる状態になるので、その状態で左下の指示ウィンドの「自動」を選択するのじゃ
>>719
そんな方法があったとは!
長年VTプレイしてましたが今まで知りませんでした、恥ずかしいです
ご教示ありがとうございます
早速試してみます
>>719
言葉足らずですみません
全部隊長を一斉に、という意味でお聞きたつもりでいました
人材20人とかで出陣してると一人一人を手動で変えていくのが手間だったので
ごめんなさい、本当に失礼しました
右クリック押しながらズバーって部隊長を選択していけばいいのでは?
>>722
うわ、ホントにできた
すみません、やはり私が無知なだけでしたね
何度もお答え頂き、本当にありがとうございました!
人材から基底クラスのスキルを削除(上書き?)するのはどうしたらいいですか?
遅くまで精がでますね。
まとめwikiからですが、unit構造体で
delskill = (文字列, 文字列, ‥)
スキルリストから削除する。learnで習得するスキルは削除対象外です。
delskill2 = (文字列, 文字列, ‥)
learnで習得したスキルリストから削除するものを列挙する。
とのことです
>>725
できました!!ありがとうございます
質問なのですが、dialogの表示時間はどこかで設定出来ないでしょうか。
出来れば自動で消えないようにしたいと思っております。
たいとる未定部屋さんのサイトやVT用標準素材リンクの599さんの
素材のリンクが切れててマップチップ素材に困っています。
VT説明書には
「このソフト内で使用されている画像素材と音楽素材を抜き出して、他の用途に使用しないでください」
とありますが
「オリシナ作っちゃお!」では
「今回はフラッグ画像とスキルエフェクトをVTデフォから引用しますので用意しません、」
「不足しているファイルはVTデフォシナ本体から間借りする形で利用できます。」
とあります。
オリシナはVTの二次創作であり「他の用途」にはならない、ということなのでしょうか?
どなたかご存知の方、境目をご教示くださいませ。
すみません、
「単体公開する場合は別に用意しましょう」
を見逃してました。
前から危惧されたような気はするけど、たいとる未定部屋さん遂にリンク切れちゃったんだな・・・
何度もすみません。
mapBuilderを使用して著作権を明記すれば
同梱された「たいとる未定部屋」さんの素材を使用してもよいのですね。
>>727
ごめんなさい、自分も分からないです。
COMが人材登用した時、一瞬で終わっちゃうの変えれたらいいんですけどね
スキルアイコンの装飾について質問なのですが
iconフォルダに_item.pngを用意してもアイテムスキルが装飾されず
またcontextにて skillicon_item = _item.png と記述しても反映されないのですが
何が原因でしょうか
>>732 ですが、アイテムスキルがリーダースキルなどでは無く
戦闘スキルで無ければ装飾されないのですね
失礼いたしました
next_intervalってmovetypeによって適応出来たりできなかったりするのかマジか……
落ちてくる隕石みたいなものにキラキラのエフェクト付けたいんだけどスクリプトの力じゃ無理ですかねぇ……
>>734
出来ますよー
隕石を落としたい場所からstart_degreeのtype=4で真上にスキルを移動させて
nextにstart_degreeのtype=4で真下に発射される普通のmissileでスキルを作れば装飾出来ると思います
>>735
出来ましたー
ありがとですー
こんな仕様があるなんて知りませんでした
てかこうできるならDropいらないんじゃ……
シナリオ作成ツールを探しているのですがご存じの方いらっしゃいますか?
wikiには大物入れにあるVahren.zipの中にあると書かれているのですが大物入れの中にそれらしいものがなかったので質問させていただきます。
先日大物入れの本体が消えた自称があって、それと一緒にシナリオ作成ツールも消えてしまいました
なのでもうありません
(詳しくは言いませんが、「オリジナルシリオ総合スレ」を少しさかのぼると幸せになれるかもしれません)
なるほどねえ
定期的にこの話が出るということは避難所の人口も捨てたもんじゃないな
ユニットの体力減少による自動退却時の計算式ってどこかにありませんか?
信用度と忠誠と勇猛値が大きく関係してるのは何となくはわかるのですが……
エルカ ブレイブ15
信用100忠誠0 840/1000
信用100忠誠100 840/1000
信用50忠誠0 890/1000
信用0忠誠0 890/1000
信用50忠誠100 890/1000
信用0忠誠100 890/1000
ブレイブ30
信用100忠誠100 700/1000
信用0忠誠0 890/1000
信用50忠誠0 890/1000
信用90忠誠0 790/1000
信用95忠誠0 750/1000
最低保証10%、忠誠は関係なし、ブレイブ値の%分だけ耐えて信用度はブレイブ値にマイナス補正って感じみたいよ
信用度はほかにも撤退時の忠誠度低下に+効果で通常なら撤退で10下がるのが信用50なら60引かれて40
信用0なら撤退すると忠誠100から0になる模様
質問です。ImageViewが起動しなくて困っています。
コマンドプロンプトと共に
"Could not find the main class: main.ImageView. Program will exit."
という文面のメッセージボックスが出てきて起動しません。
現状として
javaのバージョンは6u43
ImageMakerはjavaw.exeで起動できる
ImageView.jarがimage.dat、imagedata.datと一緒のフォルダー内にある
となってます
過去ログ見て頑張ったのですが自力では修正できませんでした。
よろしくお願いします。
Javaランタイムのバージョンが古すぎるのかも。6u43は2008年ぐらい。
ImageViewは2017年7月が最終更新っぽいので、Java 8の時代です。
なので、最低でもJava 8以降じゃないと動かない可能性があります。
ちなみに、私はWindows10でMicrosoft製のOpenJDK 17を使ってます。
>>744 >>743 の件ですが、
早速OpenJDK 17をダウンロードしたところ、動きました!
ありがとうございます!
お尋ねしたいんですけど
マップ作っている際に高さの設定が違うFieldチップ同士が
実際に反映した時、なぜか同じ高さに位置するのですが
FieldのAltって高さ制限あったりしますか?
フィールドの広さによって制限されたりするものなのでしょうか?
746です
すいません自己完結しました
どうやらaltはフィールドの広さに関係なく
「-256〜256の間」
までしか反映できないっぽいですね
しんどい
すいません、お尋ねしたいことが二つあります
・SkillTroopで発動するスキルは、強制的に「func = missile」になるのでしょうか?
・While文は戦闘マップ内でのイベントでは利用できないのでしょうか?
Wikiには載ってなかったのですが、実際上記二つに触れる機会があった際
こう憶測できる挙動になったのですが、この解釈で正しいでしょうか?
>>748
SkillTroopではfunc=swordやhealなども一応使えますが
近接はaimで狙っても当てる事が出来なかったり、healがmissile扱いになったりと色々と怪しいので
基本的にはmissileでやりたい事をさせるのが良いと思います
whileは使えません
>>749
ありがとうございます!
ところで、これらのことがWikiに記載されていないので
書き足したいと考えているのですが、どこかで許可が必要なのでしょうか?
あるItemを装備しているユニットをリーダーにする方法ないでしょうか?sdownを難易度に設定して、そのアイテムを保持しているユニットをリーダーにできる仕様にしたいのですが…。
お久しぶりです
アルカディア作者です
近いうちに素材をアップしたいと思います
以前のバージョンはこちらになります
https://ux.getuploader.com/vahren/download/4595
戦闘中にvoiceが設定されている人材はvoice構造体に記述されている台詞を喋りますが、そのとき台詞と同時に人材のfaceに設定されている顔画像が表示されますよね
このとき表示する顔画像のサイズが大きすぎると画像が途中で見切れてしまう(顔グラ標準のサイズである96×96を超えた分は表示できない?)ようなのですが、見切れずに画像を元のサイズそのままで表示させる方法はありませんか?
具体的には人材の顔グラでなく立ち絵にあたる画像を表示しながらvoice構造体の台詞を喋ってほしいのです
画面いっぱいを使う形になってもいいのですが、現状だと立ち絵としては小さめのサイズでも途中で見切れてしまうようです
(例としてヴァーレントゥーガver7.01大物入れ版でムッテンベルの立ち絵をfaceフォルダに入れてunit構造体でface画像として指定すると、上記の通り画像が途中で見切れてしまうことが確認できました)
voiceの台詞を喋る際に表示する画像のサイズ制限を無視する方法がありましたら、教えてほしいです
ヒント:ロストテクノロジー
あの人がななあしさんに作らせたけどwikiには書いてないからロステクのスクリプト見て、どうぞ
>>754
ありがとうございます
とりあえずunit、voiceのスクリプトファイルを覗いてみましたがどこでそういう動作の指示をしているのかわかりませんね…
どんな関数が使われてるか、どの構造体に記述してあるかだけでもわかればいいのですが
>>753
ロストテクノロジーのような戦闘中立ち絵に戦闘ボイスを話す方法を軽く調べてみたが
たぶんcontext構造体でfullbody_detail = onにしたうえでunit構造体にpicturedetail = onとしたうえで picture@cutin = (表示させたい立ち絵画像)
とすれば表示できるくさい
間違ってたらスマン
>>756
ありがとうございます
contextにfullbody_detail = on
unit baseにpicturedetail = on
unit tesutenu : base1に
picture = tes.png
picture_detail = on
picture@cutin = tes.png
と記述した状態で、シナリオ2のレオーム家でフェリル党に攻め込んで動作確認してみました
敵スポットに攻め込むメンバーの立ち絵を次々に表示する演出などはロステクで見たのと同様に動いているようでしたが
voiceに記述した台詞を喋る際にはpictureは表示されず通常通りfaceの画像が表示されるだけでした…
まだ何か必要っぽいですね
voiceフォルダに素材入れてないと動きませんよ
で「@素材名」をvoice構造体に入れると動きます。
フキダシはimageフォルダに「balloon2」で入れてください
ありがとうございます
シナリオフォルダ(デフォシナの場合はa_default直下)にvoiceフォルダを作り、そこに立ち絵であるtes.pngを入れて
voice2.datのテステヌのvoice_typeであるnml, sld, coolに対応した台詞に立ち絵素材名を記述しました
ロステクを参考にして↓このように
voice a1
{
voice_type = male, advance, sld
spot =
前進!@tes,
前進だ@tes,
前へ@tes,
かかれ!@tes,
よし、出撃だ!@tes,
;
}
するとテステヌやケニタルなどが戦闘開始時にvoiceの台詞を立ち絵付きで喋るようになりました
(@tesと書くべきところを@tes.pngと拡張子名まで書いていたので動かずしばらく手こずりました)
ただ、voiceを喋る頻度が低い?ようですね…長時間戦闘していても何も喋らないことが多いです
ロステクだとそんなことは無く高頻度で喋ってくれるようなのですが
voice台詞がどこで何度表示されるかというのは元々厳密には分からないのでちょっと曖昧ですが
ちなみにballoon2は元からデフォシナのimageフォルダに入っているようで、立ち絵が表示された際フキダシもきちんと表示されるようでした
ロステクのvoiceフォルダにはwavファイルしか入っていないように見えますね
PicEncoder.jarは画像を暗号化するファイルのようですし
voiceフォルダに入れるべき素材というのは音声ファイルだけなんでしょうかね?(自分は立ち絵を表示したいだけで声を鳴らす予定はないのでこれは本題ではないのですが)
なお途中で気づいた点として、VT本体の機能の「立絵演出」の設定も適切な値(10など)にしておくべきなようですね
色々とっ散らかってしまいました
現状、戦闘開始時には立ち絵付きで喋ってくれますが戦闘中には黙ってしまうように見えます(立ち絵が表示されないだけでなく元々face画像付きで喋っていた台詞も喋らなくなった?)
ロステクのような形で戦闘中にvoice台詞を立ち絵付きで喋らせるのは設定項目が多岐に渡っていて全容の把握が難しそうですね…
試してないから分からないですが
突貫で作ってある都合上
①「同じキャラクターが連続で発言しない」仕様があるかもしれません。
数多くのキャラクターに実装しないとダメかもです。
>>760
wikiにも載ってないわけですし実装するには色々と検証が必要そうですね…
contextに何か書くだけで簡単に実現できそうならやってみたい、程度に考えていたのですが、どうにも自分の手に負えなさそうなので
voice表示時に立ち絵も表示するのは一旦保留…というか諦めようと思います
アドバイスを下さった方々ありがとうございました
前進しかいれてないのならほかのものも入れてみたら?
プレイヤーが操作してるときは自動とかにしないとしゃべらないってのと入れてるのが近距離だけなので自動にしたところで後退という概念がないキャラ達だし開幕とまれに前進のとき後は戦力比で負けそうになった時とかにしかしゃべらないよ
>>762
voiceの台詞はユニットの操作を固定でなく自動などに指定しておかないと喋らない、というのは把握しています
push,back,evenの台詞にも@tesを付けてみたのですがやはりそれらの台詞は喋ってくれませんでした
複数のmodを競合させずにシナリオに導入させる方法についての質問です
たとえば人材Aにヒールを覚えさせるmodを作る場合
unit A
{
skill = c_hp
(以下その人材に必要な要素)
}
と記述したunit.datをmod側で用意し
modをDLしたユーザーがシナリオ側のunit.datに上書きする、という形式での導入方法が考えられます
人材Aのデータを変更するmodを一つしか導入しない場合はこれでいいのですが
人材Aに別のスキルを覚えさせたりするmodを同時に導入したい場合、順次上書きしていくと先に導入したmodのデータは上書きによって当然反映されなくなってしまいます
他mod(他の人が既に作ったscriptファイル)との競合を避ける形でunitにスキル追加などのデータ変更を行いたい場合、どのような形が一番スマートと言えるでしょうか?
一応
(例.キュアオールを覚えさせるmodの場合)
unit A
{
skill = c_all
}
と記述したunit.datを用意して、必要な行だけコピーして既存のscriptにペーストして使ってください……というような導入案内も考えたのですが
これは多数の人材に手を加えている場合コピペする箇所が多すぎてユーザー側にとって導入の負担が大きいので避けたいです
story構造体で特定のunitを探して新規スキルを覚えさせるイベントscriptを組んで、そのscriptを導入してもらう、という方法なら他scriptとの競合なしでスキル追加ができると考えたのですが、もっと適切なやり方があるでしょうか?
(このやり方だと、人材が取得するスキルがunitやclassを眺めただけではぱっと見で分からなくなる、シナリオ開始前の人材選択画面などにはスキルが反映されない、という欠点があります)
長くなりましたが回答いただけると嬉しいです
またこういったことを実現しているシナリオがありましたら、それも教えていただけると幸いです
modを複数入れたいって思ったことが無いから分からないなぁ。
いまだにここに残ってる人は自分で好きにscriptいじくり回せる人ばかりだろうし各自でやるのでは?
書いてから思い出した。本家のアナザーシナリオのユニットの継承の
やり方でいけるんじゃないか?
例えばダルカンを変更するとき
unit darukan :baseを
unit darukan :darukan_atrとかにする。
新しくdarukan_atrを作ってスキルを書けば継承されるからいけるんでないの?
内政ウィンドウで勝手に表示される水色(?)の枠を非表示にすることはできないのでしょうか?
連投失礼。結局元のユニットファイルに手を加えることになってたから
さっきの話は聞かなかったことにしてくれい
アナザーでは、scenarioなどあらゆる部分で呼び出すユニットをデフォシナ本体のものでなくatr11_から始まるアナザー用のユニットに置き換えてるんですよね(見た感じ多分)
アナザーは本家からは独立したシナリオなのでそれでよいのですが、たとえば本家をいじるmodとして作るのであれば本家のユニットを継承した新ユニットを作るとなると
他のmodとの互換性は無くなるしscenarioなども書き直しになってしまいますね
今困ってるのが、eventでスキルを覚えさせようとするとassist_skillが使えないからfunc=statusのスキルは覚えさせられても使用するタイプのスキル(ヒールとか)を副官スキルとして付与することができないんですよね
やっぱりunitに普通に記述して各自で移植して使ってもらうしかないのかな…
modの競合の話ってなんかあまり聞いたことないけどこういうことで困った人っていないのかなと思ったけど
modは本体に取り込まれてるというケースも多いのかもしれませんね
きのこたけのこ戦争では
属性攻撃や状態異常に対する耐性を表示する欄に「混乱に強い」などではなく「混乱(57%)」のように倍率が数値表記されていますが
これはどうやって実現しているのでしょうか?
attributeを見てみましたscriptの記述はデフォシナのものと変わりないように見えます
>>770
scriptフォルダーにあるlanguage.txtに、変更後の表記を加えます。
>>771
ありがとうざいます!変更できました
前スレの>>995 にも記載がありましたね…見落としていました
耐性だけでなく戦死とかの表記も変更できるようですね
機能ウィンドウやセーブウィンドウを開く関数ってありませんでしたっけ?
func = healスキルについて、
str = -magic*100などとすることで味方へのデバフスキルを作ることはできたのですが、
敵へのバフスキルや敵を回復するスキルを作ることはできませんか?
func=missileスキルで作れないかと思ったのですが、attrやaddでは能力値やhpを対象に指定できないようです
ダメ0ヒットからnextヒール
防御貫通、固定値デバフ、固定値状態異常蓄積
全部できる
>>775
ありがとうございます
func=missileスキルからnextでfunc=healスキルに繋げたら無事実現できました
すみません、敵へのバフ自体はかけられるのですが、敵の全ての能力が強化限界に達しても更にバフをかけ続けることができてしまうようです
こうなると制限時間をフルに使って経験値を稼げすぎてしまうので、味方への普通のバフと同様に、強化限界に達したらそれ以上はバフをかけられないようにしたいのですが、可能でしょうか?
スクリプトは下記の内容になっています
skill enemyBuff
{
name = 敵へのバフ
icon = hoge.png
sortkey = 999
item_type = 0
price = 500
item_sort = 4955
sound = power14
image = sp_magic
anime = 5
mp = 0
w = 32
h = 32
a = 160
flash = 1
movetype = throw
speed = 1000
slow_per = 100
range = 2000
func = missile
str = none
next = enemyBuff_nt
}
skill enemyBuff_nt
{
sound = power14
image = sp_magic
anime = 5
value = 20
w = 32
h = 32
a = 160
flash = 1
speed = 2000
slow_per = 100
func = heal
str = fix*1000
add2 = attack, defense, magic, magdef, speed, dext, move, hprec, mprec
}
改造・制作スレpart2の>>153 の2が>>163 で解決した状況に似ていると思ったのですが
両スキルにattr = attackを記述してみましたが、攻撃の能力値が強化限界に達してもやはりバフをかけ続けてしまうようでした
ミス、正しくは下記のとおりです
スレ汚し申し訳ない
skill enemyBuff
{
name = 敵へのバフ
icon = hoge.png
sortkey = 999
item_type = 0
price = 500
item_sort = 4955
sound = power14
image = sp_magic
anime = 5
mp = 0
w = 32
h = 32
a = 160
flash = 1
movetype = throw
speed = 1000
slow_per = 100
range = 2000
func = missile
str = none
next = enemyBuff_nt
}
skill enemyBuff_nt
{
sound = power14
image = sp_magic
anime = 5
value = 20
w = 32
h = 32
a = 160
flash = 1
speed = 2000
slow_per = 100
func = heal
str = fix*1000
add2 = attack, defense, magic, magdef, speed, dext, move, hprec, mprec
}
よく見たら>>777 のペースト内容は別に間違ってなかった…再三すみません
・経験値は取得したい
・敵にバフをかけたい
ってこと?
経験値いらないならexp_perなり必殺技扱いなりできる
そのスキルが必要な状況がわからないし条件小出しにされてもアドヴァイスしづらい
>>780
珍妙なスキルで恐縮なのですが
・敵に強化魔法をかけることで自分が経験値を得られる(近接攻撃しかなくてレベルを上げにくい人材のためのレベリング手段のひとつ)
・バフをかけることで経験値を稼ぐのが目的だが、強化限界に達した相手にまで使えてしまうと稼げすぎてしまうので強化限界に達したら使えなくしたい(経験値は与えたいのだが、あまりにも与え過ぎるのは避けたい)
・アイテムスキルであり安価で購入できてレベリングしたい任意の人材に付与できる(遠距離攻撃やヒールは高価なのに対して、敵強化というリスクがあるこのスキルは格安で販売される)
…という特徴になるよう作っています
つまり、敵に強化魔法をかけたい、それによって経験値を取得したい、しかし取得経験値にある程度の上限は設けたい(ので強化限界に達した時点で、対象には使えなくなるかもしくは使っても経験値が入らないようにしたい)
ということになります
どうもごちゃごちゃし過ぎているので、レベリング目的なら素直に投石などしょぼい遠距離攻撃スキルに置き換えるなどしたほうがいいかもしれませんが…こんなスキルも作れないかなぁと思った次第で
たぶんできないですね
味方に強化ならhealでスタートしてjust_nextすればバカ撃ち抑制できるけど
heal(空スキル)- just_next -> missile(命中判定) - next -> heal(実体)
敵に強化って指示だと、ヴァーレンさんたぶんこうなっちゃう
「敵にhealですね! ではチェックします! ・・・OKです! 低下の余地あり!」
>>782
そうでしたか…変な挙動のスキルを作ろうとしてるわけですし仕方ないですね
ありがとうございます
初歩的な質問で申し訳ないのですが
face画像で透明度が設定されている部分がゲーム内では不透明になって表示されてしまいます
アルファ値が1の部分でも255で表示される?
face画像のアルファ値を反映させる方法はございますか?
自分が知る限りではなかったかと
顔グラの背景を透過させる場合、背景を透過状態で保存するのではなく
scriptのcontext内において「face_colorkey = (R, G, B)」を設定する必要があります
そこで設定した値の数値が、ゲーム内では透過処理されます
なので、その設定した値を顔グラの背景に設定すれば透過することは可能です
設定するべき色については、あまり使用しない黒に近い色を設定することを推奨します
派手な色でも可能ではありますが、手書きの顔グラの場合、イラストの透過部分に重なる背景色が
透過処理されず、その透過処理されなかった部分がゲーム上で反映され雑な感じになるので
(一応対処はできますがものすごくアナログ的な手段且つ面倒なので割愛)
手書きではありませんがD-rabbitさんの素材をグラフィック合成器で組み合わせてました。
face_colorkeyは0,0,0にしてます。
仰る通りゲーム上で背景との境界部が雑な感じになってしまうのですが
直すならばやはり地道に作業する他ないのですね。
丁寧に教えて頂きありがとうございました。
それ俺も思ってた
face_colorkeyとかまったく知らずに全部同じ処理のpng透過画像を使ってたら
一部の画像だけ境界部が雑な処理になってて謎だったんだよね
透過処理だけでちゃんと表示される画像も多いけど、比べてもなにが原因なのかさっぱりわからんかった
そんな仕様なのかとすっかり諦めてたけど、俺もいろいろと試してみるか
たいとる未定部屋さんの素材確保してると思ったらなかった
つら
というかこうなるとマップチップ素材が統合まとめ内の戦場チップ集だけか?
あとスポット用フィールドオブジェクトがもしかしたら配布無いなったのでは?
自分はオリシナ制作から離れているので素材関係はあまりチェックしてないが、足りないものはVT界隈以外の素材サイトで探すことになるかもね。復活してくれるのが一番嬉しいけど…
旗も未定部屋以外はそんななかったような
「check範囲内に味方がいる時に、無条件で発動できるスキル」
って作れないのでしょうか?
「attack_us = 1」でも「func = heal」でもうまくいかなくて困っています
上記追記
上記条件のスキルを発動しnextでユニット召喚からの
召喚即死亡によるイベント発生を起こしたいのですが
attack_us = 1の場合check内に味方が入っても何の反応もせず
func = heal の場合、無効バフ仕様にすることでスキル自体は発動しますが
Nextスキルに繋がりません
func = heal で味方をターゲットにスキルを発動させて、
同時に just_next か pair_next で召喚スキルも発生させればいいかも。
イベント用ならターゲット位置とか関係ないし。
手元に残っていた一部とのことで、たいとる未定部屋の人が小物入れに素材上げ直してくれてるな
ありがてぇ
それは本当にありがてぇありがてぇ
まじだ…
ありがたやー
ウホッ、これは助かるぞぉ
まだ見てくれていたんだ
ありがたやありがたや
テンプレがリンク切れしてるので次の人は入れ替えてもらえると…
↓がリンク切れしないテンプレ
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。
ヴァーレントゥーガまとめwiki シナリオ製作講座
http://www28.atwiki.jp/vahren_ency/pages/411.html
改造・制作スレ
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1250722590/l50
改造・制作スレ part2
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1282244590/l50
改造・制作スレ part3
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1305281909/l50
改造・制作スレ part4
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1331214703/
改造・制作スレ part5
http://jbbs.shitaraba.net/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/
改造・制作スレ part8
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1463836625/
改造・制作スレ part8
https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1537276030/
あっPart9のタイトルをPart8から書き換え損ねたすまぬ
戦闘イベント中のplayBGM()が機能しません。
volume(60)を設定し、スペルミスも何度も見直し、他の条件では鳴る楽曲を使用して
mp3拡張子をしっかり記載しても何度やってもなりません。
バージョンは最新版の物を使っています。何かしらの特別な仕様とかがあるのでしょうか?
もう一時間近く戦っています、誰か助けてください。
解決しました
どうもvolume()の次にplayBGM()を記載すると、音源が再生されない
謎仕様があるようです。
逆にしたら普通に再生しました。
ここで聞くこととは違うかも知れませんが全体的に文字を大きく表示させる方法ってありますか?
context構造体で大きいフォントに変更すれば、文字だけ大きくなります。
(あるいは、フォント加工ツールで文字を大きくして使えばいい。)
ただ、枠は大きくならないので、表示領域に収まらなくなるかも。
ウィンドウ表示なら SandBurst のようなツールで
ウィンドウ全体を拡大表示することもできます。
(マウスがウィンドウ外にでるから微妙に操作しにくいのが難点)
COMは劣勢になると全ユニットが撤退を始めますが、攻城戦などでは移動力0の守備施設まで撤退モードになり攻撃を行わないただの的になることがあります
普通のユニットたちが撤退を開始しても守備施設だけは最後まで撤退しない、という設定にしたいのですがどこをどのように設定すればいいのでしょうか?
自創作をUnicode仕様に変更したのですが、以下の二点で困っています
1)「language.txt」各種をWikiや他作品を参考にし書き換えても、ゲーム上で反映されない
2)Unicodeに変更したら、これまで使っていたフォントが参照されなくなった。 別のフォントに変更しても、反映されない
「2)」に関しては、「フォント名が日本語だと反映されない」といった記載をWiki内で確認したのですが
他オリシナを参照したところ、Unicode化していてもフォント名が日本語のフォントファイルを適用していました
Wikiに掛かれていない必要手順があるのでしょうか? ご教授賜りたく思います
一番考えられる原因は「datファイルの文字コードがUnicodeになってない」かな。
文字コードが異なるdatファイルは読み込まれないので、
変換し忘れてると思わぬ不具合が発生します。特定のファイルだけ無視される。
メモ帳のようなテキストエディターでは普通に読めるから、
文字コードが異なることに気付きにくいです。
私が使ってるサクラエディタでは「UTF-16 BOM付」と表示されます。
Unicodeといっても、UTF-8だと駄目っぽい。
806です、807様返答ありがとうございます
自作品内のdatファイルを改めて確認してみましたが、Unicode化されていないファイルは確認できませんでした
(あと、Unicode化されていないファイルがあった場合、ゲーム開始時にエラーが発生したと記憶しております)
私もサクラエディタを用いており、確認はウィンドウの左下の文字コードで行いました
再度質問して申し訳ないのですが、「UTF-16 BOM付」という表記はサクラエディタのどこで確認できるのでしょうか?
またそのような状態にどうやって持ってゆけば良いのでしょうか、ご教授賜りたく思います。何卒お願いします
追記、806にて他シナリオを参考にしたと記載しましたが、私が確認したオリシナはUnicode化されていませんでした
誤表記失礼しました
>>806
うちの環境で Unicodeにしたデータファイルを読み込むと、
サクラエディタのステータスバー右側(ウィンドウの右下)
「にUTF-16 BOM付」って表示されます。
wikiの「最新版の更新詳細」を見てると、
「Unicode読み込み+英文モード」というのもあるようです。
私が昔作ってたやつでは「Unicode読み込み」にしかしてませんでした。
language.txtで表記を変更することもできてました。
「英文モード」かどうかでも違いがあるのかも。
問題の原因を探るには、一つずつ順番にチェックしていけば良さそうです。
まずは、Unicodeの読み込みが正しく行われてるか確かめるべきかと。
地名や人材名などに、ShiftJISには存在しないUnicode文字を入れて、
標準フォント(contextで変更しない状態)で表示してみる。
それで、フォント指定(あるいはフォント自体)の問題かどうかが判別できます。
Vahrenは標準シナリオと追加シナリオの両方が存在してると、
自作のオリシナに存在しないデータを自動的に標準のデータから参照する
仕組みがあったような。オリシナにデータの欠落があっても顕在化しにくい。
>>809 様 >>810 様
返信遅れて申し訳ありません、またご回答ありがとうございました。
ご提案頂いたことも踏まえ、あれからいろいろと試してみたのですが、
どうにもうまくいきそうにありません。
ですので、一度Unicodeへの意向は見直そうと思います。
お時間をいただいておりながら、このような結果になってしまい申し訳ありません。
今後ともよろしくお願いします。
>>806
他のオリシナがUnicodeで外国語版を作れてることからして、
何か解決策があるとは思うんですがね。
すでに公開してるシナリオなら、どれか言ってもらえれば、
私がUnicode化できるか試してみてもいいですよ。
>>812
ありがとうございます
お気持ちは嬉しいのですが、まだ公開しておらず
加え諸事情によりお渡しできませんので
そのお心遣いに応えることはできません、申し訳ありません
・フリーで転がってる文字コード一括変換ツールを使う
・エディタ使って変換する
あたりで解決するかな?
UTF-8はBOMなしだと行けた記憶があるけど駄目だったかも
class/unit構造体のsub_imageについて教えてください。
>sub_image = (文字列)
> ユニット画像。image.dat内のイメージ名を指定する。
> sub_image@@(level)@(scenario)と特殊なバリエーション指定をします。
wikiの仕様では以上のように説明されていて
image = imgA
sub_image@sc1 = imgB
このように記述するとシナリオsc1ではキャラチップにimgBが適用されます。
sub_image@@5 = imgB
↑のようにwikiの仕様に沿って記述しましたがレベル5以上になっても変化がありませんでした。
レベルによってキャラチップを変更したいときはどう記述すればよいのでしょうか。
>>815
本家シナリオの.datファイルを見るとWikiに書いてる通りになってます
しかし、実際にプレイしてみると、変化する時としない時があります。
例えば、ロイタールやアイアンはユニット画像がちゃんと変わるのに、
フォルゴットやデッドライトは駄目でした。
何が違うかデータを見てみると、sub_imageを指定してるかどうかでした。
これはWikiの説明が足りないですね。初めての人は間違って当然でしょう。
(本家シナリオですら、正常動作しないデータが含まれてるぐらいですし。)
image = imgA
sub_image = imgA
sub_image@@5 = imgB
という風に、sub_imageの標準値とバリエーションの両方を記述しないと駄目です。
私が実験した限りでは、これでうまくいきました。ぜひ試してみてください。
>>816
回答ありがとうございます。確認できました。
image = imgA
sub_image = imgA
sub_image@@5 = imgB
sub_image@@5@sc1 = imgC
技巧的な記述として↑のように記述するとレベル5以上になったときにimgBに切り替わるが、
シナリオsc1に限定してレベル5以上になったときにimgCに切り替えるということができるんですね。
wikiには記載されていませんがpictureもシナリオによって切り替えることができました。
picture = picA
picture@sc1 = picB
この記述ではシナリオsc1ではpicBが表示されます。こちらはsub_imageのようにレベルではできませんね。
pushSpotPos(領地, x座標用の数値変数, y座標用の数値変数)
領地のワールドマップ上の座標を代入します。
これ使って近くの領地をランダムで表示したり連結したりでランダムマップを作る的なスクリプトを作ろうとしたら数値変数が0しか返してくれないんで格闘してたんだけど
非表示の領地はx,yが0,0扱いになるとか知らんかった…一時的にshowSpotで出してまたhideSpotで隠すようにしたらなんとか動いたぜ
すみません、BGMについての質問です…
シナリオ製作ツールのPicEncoderに同梱されている「WavEncoder」でwavファイルを暗号化したところ、本体でも再生できなくなってしまいました。
暗号化する前のファイルは問題なく再生できます。SEに関しても同様です。
BGMの利用規約上暗号化されてない音源ファイルを同梱することができないのですが、何か解決方法を知っている方はいないでしょうか…?
>>819
BGMに関してはmidとmp3とoggしか再生出来なかったと思ったけどうろ覚え
>>820
やっぱりそうですよね…拡張子込みで指定したら再生できたんで「もしかしていけるか!?」と思ったんですが…
大人しく同梱OKのサイトから探すことにします
試しにデフォルトシナリオを弄ってみようと思ったのですが、pictureフォルダやその他のpngの画像が確認できません。
エラーとしては"このファイルはサポートされていない形式のようです"と出るのですが。
どうすれば確認する事が出来ますでしょうか?
調べた限りで出来る事は試してみました。
試した事
・別のプログラムで開いて見る(ペイント、gimp)
・JPGに変換してみる(ネットの変換サイトを利用)
・フォトビューアーのプログラムを修復してみる。
お手数ですが、お知恵を貸していただけると幸いです。
>>822
ふりーむのヴァーレントゥーガ本体は暗号化されてていじれないようになってる
不便だよね
大物入れ版も画像は編集できなかったはず
差し替えはできるよ
今はデフォの最新版のやつ消されてて暗号化済みのやつしかないんじゃなかったっけ?
そうだね、去年の5月頃に急に消えてしまった
ヴァーレントゥーガについて語るスレ part95でもその辺りの話題が出てる
「画像を確認」というのが、何を指すのか不明ですが、
どんな画像か見たいだけなら、ヴァーレン自体に表示させればいいです。
シナリオ制作講座の「関数(イベントの設定)」にある
image / face / picture 関数で画面に表示できます。
例えば、以下のイベントを追加すれば、チルク選択時にアルティナの立ち絵が表示されます。
story op_cg
{
if (isPlayer(chiruku)){
if (yet(op_show_cg)){
event(op_show_cg)
}
}
}
event op_show_cg
{
picture(01アルティナ.png, 50, 0)
msg(画像を表示します。)
}
>>827
それって今ダウンロードできるふりーむ版の暗号化されているイベントスクリプトにも追加できますか?
story構造体はworldイベントに自動的に追加されるので、
worldイベントが書かれたファイルが暗号化されていても大丈夫です。
ふりーむ版でも実験してみましたが、問題なく動きました。
スクリプトを拡張子 .dat のテキストファイルに書き込んで、
scriptフォルダーのどこかに置いてください。
文字コードをシフトJISにするのをお忘れなく。
画像を表示する場所を変えて複数表示することもできます。
event op_show_cg
{
picture(01アルティナ.png, 0, 0)
picture(02ムームー.png, 50, 0)
picture(03ウェントル.png, 100, 0)
msg(画像を表示します。)
}
みたいにすれば、3人横に並んで表示されます。
イベントの書き方の詳細はシナリオ制作講座を参照してください。
ありがとう、やってみます
小物入れ1にぴぽや倉庫素材を加工したマップチップ集を上げました。
(「素材元を明記し、無償の場合、改変データの素材としての配布を許可」とのことです。)
作品に組み込む場合は商用利用可クレジット表記不要の素材で配信規約を整備したオリシナも作りやすくなるはずなので、
これで人気配信者が実況してヴァーレンがバズるという夢に一歩近づけたはず…
>>831
お疲れ様です
素材DLしました。お疲れ様です
乙です。DLさせていただきました
Vahren.exeってBGMのループが苦手なイメージがあったけど別にそんなことはなかったぜという気付きを最近得た
確かに冒頭部分とループ部分が分かれてるような素材には対応できないんだけど最初に戻ってループするやつなら基本問題ナシ
素材ダウンロードしてリネームしてbgmフォルダにぶち込むだけだと駄目な場合も多いけど
これは大抵の場合素材の方に問題があって、編集ソフトで最初と末尾の無音部分をカットしてoggで再エンコードしてやると綺麗にループしてくれる
こうなると今まで使用に耐えないと思っていた20〜30秒の素材がむしろ高品質で容量削減できる優良素材として立ち上がってきてテンション上がってる
ユニットの階級について質問です。
功績値や勢力の領土数、レベル、loyalに関係なく、重臣、上士…と設定するにはどうすればよいでしょうか?
setRunkのような変数があれば便利なのですがwikiにも記述がないもので…
重臣と上士は、その勢力のリーダー・ユニット(一般兵も含む)の戦功値で決まります。
それぞれ executive_bdr と senior_bdr の割合で上位から任命されます。
本家シナリオだと、senior_bdr = 30、executive_bdr = 10になってるから、
マスター以外のリーダーが10人居たら、重臣が1人、上士が2人となります。
上位30%以上が上士だから3人かと思いきや、10%以上が重臣になるので、
重臣の分を引いて、上士は2人だけというのがややこしいです。
特定の人材ユニットを重臣や上士にしたい場合は、戦功値を調節すれば良さそう。
初期戦功値はpower構造体の中で指定できます。
イベントで設定する場合は、その勢力のリーダー数を考慮しないといけないのが複雑です。
現在の戦功値を保持する必要が無ければ、順番に数値で指定したら楽かも。
例えば、リーダーが20人なら、重臣にしたい2人の戦功値を9000、
上士にしたい4人の戦功値を8000、残りの人の戦功値は0にしてしまう、みたいな。
ただ、戦闘で戦功値が変動した場合は、次のターンから順位が更新されてしまうので、
差を大きくするか、毎ターン設定し直すか、工夫する必要があります。
>>837
詳しい回答ありがとうございます!
オリシナ(ロステク?)か何かで、戦功値やレベルが同じなのに重臣・上司になっているユニットを見た気がしまして…
とりあえずベーシックに戦功値で管理して、慣れたらイベントで操作できる様に頑張ってみます。
枠ギリギリで片方だけ重臣入りしたんじゃない?
>>837 の言う通り、戦功いじる以外に順位制御する方法はないはず
宿将は戦功0でも宿将だけどね
人材プレイ時の操作権限とかの問題なら戦功操作がいるけど
単に見た目が気に入らないだけならlanguageで一般上士重臣一律で「武将」とでもしておいてクラスや種族や脳内補完で地位表現した方が早そう
銀減の中盤〜プレイヤーが優位に立ってる後半といった、
部隊数が多くて予備兵力が出やすいシナリオなら、
一戦も出てないユニットが訓練+戦功値自動上げで横並びになるから割とよくある話だったりする
多分戦功値の次はレベルじゃなくて雇用準が優先されてるんじゃないかな?
822です。成程、暗号化されていて確認出来ない事は仕様なのですね。
シナリオ製作講座の方は今と環境と言うか素材周りがやはり幾つか違っていて大変ですが、其方で必要時は確認してみようと思います。
ご丁寧にありがとうございました!
リーダースキル付与されるけどユニット操作不能な召喚スキルって作ることできますかね?
召喚スキル側にyorozu = troop
unit側をbeast_unit = onにするとか?
>>844
試してみたんですけどリーダーもbeast_unit = onにしないと機能しないっぽいんですよね…
>>843
プレイヤーが何の操作をできなくしたいのかによっては疑似的に可能かも。
位置指定で動かしたくないなら、free_moveを設定するとか。
使用スキルを選択させたくないなら、自動的に発動するスキルだけにするとか。
あるいは、考え方を変えてみる。特定の人材だけが使う召喚スキルなら、
召喚されるユニットにスキルが付いた状態で専用classを作っておけばいい。
人材ごとに専用召喚ユニットを用意するという方法です。
再現性のない強制終了に頭を悩ませています。
どうもBGMが切り替わる際に稀に起こるようなのですが
私の環境が悪いのでしょうか?
本体最新、画面1920x1000、BGMは容量削減の為ogg変換してます。
>>847
私は戦闘終了時に強制終了したことがver8以降に一回あります。
musicoffでBGMを無くしてからは発生してません。
そちらでも試してみて、問題が起き無くなればBGM関係と言えるかも。
あと、フルスクリーンでプレイしてると、
Windows Defender にマルウェア判定されることが二回ありました。
どちらも再現性が無いので、根本的な原因は分かりません。
アドバイスありがとうございます。
すみません8気づいてませんでした。
早速試してみます。
faceやflagの画像サイズが小さ過ぎるように最近は感じますが、もっと大きな画像が使えるようにはならないのでしょうか?
皆さんはシナリオ作成の際、AIの突っ込んでくる仕様どうされています?
スキルで引き撃ちに不利な調整しても誘い込み・各個撃破はできてしまう……
一時期オリシナ作者の間でAI強化がプチブームになったことがあってな…
戦闘イベントで定期的に集合させるとか開幕時に移動速度別に段階的な減速スキルを一時習得させて足並みを揃えるとか
横向きのslide_stampで疑似的に横列陣形にするとかいろいろなアイディアがあってこのAI強くねとガチに思うものもあったがそれで面白くなるかは別の話
レベルと資金差でゴリ押すだけ突撃馬鹿が相手だからこその醍醐味もあるし
>>851
突撃のタイミングが合わずに確固撃破に持ち込まれるのがCOM側の弱点なんで全体の状況判断をしてタイミングを調整するくらいしかないんだよなと。
過去に作ったスクリプト供養
https://ux.getuploader.com/vahren2/download/2581
>>852
>面白くなるかは別の話
ほんとそれ。結局各クラスの移動速度を同程度に揃えて騎兵クラスは接敵したら加速スキルで突入させるきのこたけのこ戦争式の設定に落ち着いてしまった。
>>851
突撃のタイミングが合わずに確固撃破に持ち込まれるのがCOM側の弱点なんで全体の状況判断をしてタイミングを調整するくらいしかないんだよなと。
過去に作ったスクリプト供養
https://ux.getuploader.com/vahren2/download/2581
>>852
>面白くなるかは別の話
ほんとそれ。結局各クラスの移動速度を同程度に揃えて騎兵クラスは接敵したら加速スキルで突入させるきのこたけのこ戦争式の設定に落ち着いてしまった。
>>851
突撃のタイミングが合わずに確固撃破に持ち込まれるのがCOM側の弱点なんで全体の状況判断をしてタイミングを調整するくらいしかないんだよなと。
過去に作ったスクリプト供養
ttps://ux.getuploader.com/vahren2/download/2581
>>852
>面白くなるかは別の話
ほんとそれ。結局各クラスの移動速度を同程度に揃えて騎兵クラスは接敵したら加速スキルで突入させるきのこたけのこ戦争式の設定に落ち着いてしまった。
>>853 >>854 は削除しておいてください。
反応が悪いのはサーバー側の不調なのかな?
>>856
アップされていた物とても面白いですね。ちょっと弄って遊んでみます!
きのたけの内政面白いと思ってデフォシナでも同じようなことできるようにしてみようと思ったけど内政触るの初めてなのでやはり難しいですね
いきなりきのたけのスクリプト見るよりオリシナ作っちゃおの内政講座の改変から始めるべきかな
きのたけのスクリプトはハッキリ言って変態(誉め言葉)なので容易に真似できるものではないが
国策システムは全勢力に実装しようとすると目が回るものの自勢力限定要素と割り切ると比較的簡単に実装できたりする(簡単とは言ってない)
やはり難しいですか
きのたけの内政を100%再現したいわけではなく勢力固有国策や傭兵雇用だけでもできたら楽しいよねと思ってるんですが
もう少しシンプルというか内政スクリプトの参考にしやすいオリシナなんてありますかね?
ポイント消費でユニット強化や傭兵雇用を出来ると言えばはるべりもそうでしたが
ハードルをなるべく下げていかないとエタりそうなのでとりあえず内政は自国限定要素としてみようと思います
民と戦
光と闇と
>>859
リソース管理を導入したせいで、
きのたけよりもっと作業量がヤバそうな内政システムを実装しているACVTともののふ絵巻も触れてあげて?(鬼畜の所業)
しかし今となっては両方とも新規入手がほぼ無理なのが泣ける
>>861
>>862
ありがとう、見てみます
ヴァーレンってttfのフォントファイルは使えないのか
使えるようにして欲しいな
ttfは使えたはずだけど
context構造体でフォント"ファイル名"を指定するところと"フォント名"を指定するところがあって若干ややこしいのと
ハイフン等指定に使えない文字があって場合によってはファイルの方に手を加える必要があるのがやや面倒(改変不可等の規約によっては詰み)
>>866
otf形式じゃないとダメだったはず
内政領地にaddUnitを用いて追加したユニットを、イベントで後から削除する方法はありませんか?
ターン開始ごとに保有する人材によって、内政領地内の内政ユニットを変化させたいのですが、
内政ユニットを削除できず、ターンをまたぐごとに同じ内政ユニットが量産されて困っています
storeUnitOfSpotとeraseUnit2を活用してみましたがうまくいきませんでした
誰か助けてください
>>868
「シナリオ制作講座」の「内政について」ページによると、
storeUnitOfSpotでは内政ユニットを取得できないそうです。
eraseUnit2(内政領地の識別名, 内政ユニットの識別名)
という風に直接名前を指定して消せば良さそうです。
返答ありがとうございます。個別に消していく必要があるという事ですか……
出来ることならスクリプトの美しさ的にも内政領地内のユニットを参照して消したいのですが
何とか獲得する方法は無いものでしょうか?
種類が違えば構造体名被りが許されて、storeSkillOf〜〜で受け取った文字変数でもユニットを扱う関数にぶち込むと同名のユニットを扱ってくれる仕様を利用して
初期配置かaddSpotで存在はするけどshowSpotしないダミー中立領地にダミー人材を配置して
内政イベントの実行時にそいつに内政ユニットと同じ名前のスキルを習得させてworld_eventではそのスキル欄を参照するとかどうだろう
実際にその名前で空スキル作っておくとかしておかないとたぶんデバッグモードで未設定スキルエラー吐きまくるのでそこは注意
あとやっぱ構造体名被らすのは正直危ない処理な感あってバグらない自信ない。処理にaddstrとか絡ませてちゃんと分けた方がいいかも
>>870
私は知らないですが、他のオリシナを参考にしたらどうでしょうか。
内政ユニットがいくつもあって個別に消すのが面倒なら、
eraseUnit2(spot1, unit1, unit2, unit3, ...)
のようにして、まず最初に全て消すと楽です。
それから、所属人材に応じて内政ユニットを追加しなおせばいい。
お二方の迅速なご回答に感謝申し上げます
>>871 様
そのような仕様があるんですね、確かにそれなら処理部分は
スキル読み込みと参照だけで済むので小規模且つ綺麗に落ち着きそうです
……ですが、ダミー領地とダミー人材の配置、加えそれの為に空スキルの作成と追加は
結局容量を食うことになってしまいます
加えおっしゃるようにバグ利用は少し抵抗がありますね(不具合の原因や、修正後に利用不可に成る等)
ご教授賜ったうえでこのように申すのは心苦しいのですが、その提案は見送ろうと思います
申し訳ございません。お時間をいただき、誠にありがとうございます
>>872 様
再度のご回答ありがとうございます
もう少しだけ自分で調査・検証してみて、うまくいきそうにないなら
その無難なパワープレイに移行しようと思います
改めてお二方ありがとうございました。製作頑張ります!
(あれ?そもそも追加するif文に「inSpot()」設けて
対象の内政ユニットが既にあるなら追加しないようにすれば済むのでは……?)
セーブデータって改造できないんでしょうか?
>>875
むしろ改造できたらやばいのでは
バイナリエディタでセーブデータを弄れる可能性はあるが、ヴァーレンの場合どう考えてもチート実行するstory構造体書いた方が早い
初心者です。field・マップ製作でエッジングしてくれなくて四苦八苦してます。色々調べたら
描画field構造体というものが出てきました。通常のfield構造体とは何が違うんですか?
自己解決しました、idの指定ミスでエッジングしませんでした スレ汚し失礼しました
すいません、初歩的で確認忘れがあるかもしれませんが、map作成で、画像のように城壁がくっついてくれません。
どうかご教授頂ければ幸いです
https://i.imgur.com/icfNMX2.png
自己解決しました、ペン幅変えたらいけました
ペン幅かと思ったら重なるボタンでした......
debug_paperで画面サイズを変えても
ユニットとか文字とか小さいままなのが嫌なんだけど
なにか解決方法とかあります?
自己解決しましたか?
>>883
ウインドウ・モードでプレイする時だけですが、
SandBurst というツールを使うと画面を拡大できます。
ただ、Windows10 だと SandBurst の動作モード選択から、
編集で描画モードを DWM にしないと駄目でした。
skillTroop活用において、文字変数に入れたユニットから射出できるかなって思ってやったらできたので
「ヤヴェえこれもしかしてスキルの方も文字変数で行けんじゃね!?」
と思ったら流石に無理だったでござる
addstr活用すればソースコードかなり削減できるから何とかしたいんだけどうまくいかない……
dialogに文字変数格納した物は、ちゃーんとスキル名を表示してくれたからいけると思たんだけどなぁ
何かしらのコツを設ければ行けたりしますか?それとも無理?
軽量化のためなのか特に戦闘イベント用関数は引数に変数が使えそうで使えないやつが多くて使えないやつについてはどうしようもないと思う
目標が何かにもよるけど解決方法としてはスキル自体を必殺技orクソ長gun_delayスキルにしてaddSkill即eraseSkillみたいな方法で代用するか
文字変数の中身がm_fireであればskillTroopでm_fireを撃つ、中身がm_waterであればm_waterを〜〜みたいに総当たりするevent構造体を表計算ソフトでも使って作ってroutineで呼び出すみたいな力技しかないと思う
IsPostInの半径指定で判定するのもしかしたら機能してないかもしれない
いくらやってもうまくいかんかって、やけくそで半径9999にしてもまるで反応せえへん
左上右下位置指定の方はうまくいったけど
IsPostInはユニット部分文字変数にすると動かないから素で指定しないといけない…はず
別問題だったらすまん
ユニットって何のことかと思ったら、ユニット付近にいるかを調べるなんてのもできたのか
直上にあるのに気づかんかった
現状自分が抱える問題に対しては必要ないけど、便利そうだから将来的に活かせそう
ただ文字変数使えんのまじかぁ、使えたら利便性半端なさそう
あえてムナードとレオナールをフェリル党、ジャンクションをゴートに初期配置した。それぞれめっちゃ活躍してて適材適所だな
ジャンクシャンでした
ゴート「領地の行き来がしやすくなって便利だな」
島ャンクシャン…ってコト!?
戦闘時に双方の戦力値を測定する変数が無い事に今更気づいた
測定する方法ってある?
storeRectUnitで各陣営の全ユニット代入して
whileとindexでpushForceを繰り返してから全部足すという方法がパッと思いつくけど
非人材ユニットも正確にやってくれるかとか詳しい挙動はわからない
他ゲームでよく見るゲーム画面に各種変数を表示するようなデバッグ機能を
ヴァーレンにも取り入れたいんですが、画面にテキストを表示できる機能が「title」以外に見つかりません
「image」とか使って疑似的に出来ない事はなさそうですが、正直手間が……
純粋に画面上に画面を止めずに各種変数を表示したいんですが、良い方法はありませんか?
あきらめて何らかのスキル発動でdialogとかに表示させるしかないでしょうか?
割り込みすみません。
トラバサミをスキルとして作ろうと思ったのですが、地雷型スキルのようにonehitで消滅するのではなく、timeの期間中、触れる度にヒットする仕組みにできません。実装できないですかね?
>>897
Vahren群雄割拠-Strategy-のゲーム内の「内政」「他勢力情報」にて各種変数を取得して表示しているから可能
>>898
①楽なの
bom=on 、hard=on
デメリット「hardに設定した時間経過ごとに1HIT」
「bomだけonにする場合は同じ敵に何度もHITは出来ない。」
②面倒なの
ヒットしてから必要時間たったらnextトラバサミをもっかい出す
デメリット「ヒット後に新しいトラバサミが出るまでクールタイムが挟まる。トラバサミの場所がズレる可能性」
>>899
ありがとうございました!
hard = 1だけでなくhard = onを書き足したら実装できました。
自動戦闘の内部処理を知ってる方いますか?
>>901
どれぐらい詳しかったら答えていいの?と逆に聞きたくなる質問
どれくらい自動戦闘なの?
傭兵の雇用先がわかる識別子が
ほしい!
VT最新版にあるバグです
・固定ダンジョンに設置出来る固定宝箱の中身が滅茶苦茶になる
・addTroopでユニットを配置する際handle=onはプレイヤー陣営じゃない場合は無効になる筈が「敵陣営ユニットでも操作可能」になっている
・スキルのbrightが機能しない
存在するか分かりませんが後続作者の役に立つといいな
アナザーももうまともに動かないし
2015年位のバージョンが総合的にはバランスとれてたかな?
質問です、今ランダムシナリオの作品をいじってるんですが
狙った位置にイベントを起こせないので質問させて下さい。
強キャラ何体も引いて独走してる1勢力の領土内に強敵を出現させたい(プレイヤーnpc問わず)
んですがどうすればいいでしょうか?
一応、強敵勢力の出現自体は出来ているんですが
場所が特定の位置からランダム抽選して出現になっているので
それを先の独走してる1勢力の領土内に当てたいです
どうすればいいでしょうか?
自分で調べた所 countSpotで勢力を特定するのは解ったんですが
ランダム位置の1勢力の領土をどう記述したらいいのか解りませんでした
解る方いれば答えて頂けると有難いですm(_ _)m
>>905
結構まずそうなバグだ
ななあしさんに報告が届いて欲しいね
ちなみに戦闘終了時の体力を内政時に引き継ぐことって可能でしょうか?
ちょっと縛りプレイみたいなことをやってみたいなと思ってて
>>907
storePowerOfForce(順位, @power) ではダメなので?
>>909
pushStatus、setStatus ってのがあるみたいだけど
使ったことないので動作しなかったらごめん
質問です
特定の一般ユニットが戦場に出ている際にイベントを起こす事はできませんか?
>>910
ありがとうございます
>>911
戦闘イベントで countUnit(ユニット) 使ったらどうでしょ?
>>913
inBattleでいけました
ありがとうございます
VT最新版、多数のユニット同士で戦闘やると撃破されても当たり判定が残り続けるね
あとエフェクトが戦場にずっと残り続けたりもある、大量のユニットやらスキルエフェクトやら出すとこうなるっぽい?
質問です
内政って人材プレイ用と勢力プレイ用に分ける事ってできないんですか?
光の目とかですとできているような気がしますが、Wikiの制作ページを見ても分からなくて
>>916 だけどscenario構造体にpoliとcampの事が記載されていますね
勝手ながら内政の方にも追記しました
https://w.atwiki.jp/vahren_ency/pages/804.html
>>915
私は最新版でも特に気付きませんでした。
もしかすると、誘導弾(homing)が死体を追尾し続ける現象のことかも?
エルフの矢の動きを見てると分かりやすいんですが、敵が死んで消えた後も、飛行距離の間は死体の位置に矢が残ります。
ユニットに追随するタイプのエフェクトも同様に、持続時間が経過するまで死体の位置に残ります。
>>918
全然そういうのじゃないよ
こっちはヴィスクルムで確認したけどユニット数1000以上を超える戦闘だとバフやHP回復の表記がずっと残り続けたり、攻撃のエフェクトも消えずに残ったり、死んでも当たり判定だけ残るのかユニットが何も無い所へ接近攻撃を発動し続ける
nimizeの人もそうなったらしく最新版へ移行してないみたいだし
全然そういうのじゃなくてももっと優しい言い方してほしかった
>>919
なるほど、本家シナリオはユニット数が少ないから不具合が顕在しないのか。
最新版なのに問題があると移行しにくいですね。
私は最新版で部隊に旗が表示されるの、操作したら消えるとはいえ、ユニットが見にくくて微妙に嫌です。
人材プレイで旗揚げしたら部隊ごとに旗が違うのも不自然ですし。
部隊の旗表示といえばランダムシナリオ等で旗が表示されるのもおかしくなってるね
unit側にpower_flagが設定されてれば問題無いけど設定されてないと滅茶苦茶な旗が表示されるようになる
最新版は本当にななあしさん本人だったのかどうかも怪しいからなあ。特にアナウンスもなく、続く更新も無かったし
quickreloadとgun_delayの組み合わせで右手と左手と右肩と左肩の武器同時に撃つACみたいな挙動ができないかと半月ほど妄想していたんだけど(最近ロボシナリオがアツいし)
quickreload=onでの再行動時には「HP回復&MP回復値による回復」「そのスキル以外のgun_delayによるクールタイムを行動1回分消化」をしてしまうらしく
「gun_delay=右手武器*1、quickreload=on」「gun_delay=左手武器*1、quickreload=on」というスキルを実際持たせてみたところ
「右手武器を撃つと左手武器のクールタイムを消化→左手武器を撃つと右手武器のクールタイムを消化」の繰り返しでエンドレスで撃ち続けてしまう…
上手く調整すればいけなくもなさそうだけど難しそうだ
改善案1
gun_delayをquickreloadによる消化込みで成り立つ値に設定する。全部位が常時稼働していないと行動回数が減ってしまう(右手武器の射程が足りないだけで左手のクールタイムまで回らないとかが起こる)ので超射程で優先度の低い何もしないスキルを各部位に設定して持たせておく
→スキル欄がゴチャゴチャする、ハンドガンとスナイパーライフルでgun_delay変えたいとかなるとまたややこしいことになる
改善案2
quickreloadは諦める。gun_delayを4とかで各部位の武装を1回ずつ使ってくれるようにした上でスキルを持たせたロボを素早さがめちゃ高いユニットにする
→最初にやりたかったことと全然違うけどスマートな解決策ではある
ヴィスクルムでは武器腕系スキルや艦砲一斉射撃は複数のスキルを一まとめにした固有スキルで実装していたなあ
ただ、プレイヤー操作時限定で、機体によってはクールタイムが無いハンドガンやサブマシを撃ちたがってそれ以降のスキルを全然使ってくれない問題があるけど
デフォシナでもプレイヤーとcpuで選択する戦術違いすぎてcpuだと弱い問題あるよねえ
吸血攻撃しないゾーマとか突撃しないスヴェステェンとか
今だとみんなスクリプトもAIとか使ってやってるの?
>>928
AIは使ってないというか、学習元データがないから使えない
一般のメッセージとかイベントでのガヤとか作るのには使えるかも
中立領地にaddUnitした時に追加した順に並ばなかったり攻め込んで占領に失敗するとなぜか順番が入れ替わったりとか変な現象があったんだけど自己解決できた
中立領地所属ユニットは戦功値がないように見えても内部的にはあって(addMeritsで増減もできて戦闘中ならカーソルオーバーで見れる)部隊は戦功順に並んでる
よって1部隊ずつ追加しながら戦功の大小を作ってやればその順に並んでくれるし
順番を維持したければとりあえず1戦闘で順番が入れ替わらないように段階を万単位の刻みとかにしてからイベントで毎ターン調整してやればいい
あげ
あげ
>>931
勉強になる
今までの叡智の積み重ねがwikiにまとめられていないのは悲しいね
part1と3以外はアーカイブも残ってないみたいだし
event内でmsgを用いた会話中に、話しているユニットの立ち絵が右側に表示されますが
これ次話すユニットの立ち絵を左に表示して、二人が並んで会話してるみたいのするので出来ましたっけ?
次に立てるときはこっちに書き換えた方が良さそう
改造・制作スレ
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1250722590/
改造・制作スレ part2
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1282244590/
改造・制作スレ part3
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1305281909/
改造・制作スレ part4
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1331214703/
改造・制作スレ part5
http://jbbs.shitaraba.net/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/
改造・制作スレ part8
http://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1463836625/
改造・制作スレ part9
https://jbbs.shitaraba.net/bbs/read.cgi/computer/42292/1537276030/
質問途中ですみません。一回の戦闘の味方の死者数をカウントする方法って思いつきますでしょうか?
過去ログ見る限りPushDeathがそうなのかなと思ったり…
>>936
今まで気にしたことなかった……。
案外、image/face/picture(ファイル名, x座標, y座標)から指定した方が早いかも。
>>938
戦闘前の味方ユニット数から戦闘後の味方ユニット数を引くというのはどうだろう(召喚ユニットは計算外になるが)。
『鋼の時代』の鹵獲システムは、戦闘開始時に世界中のアイテムスキルの総数を数えて、
戦闘終了時にもう一回数えて、プレイヤーが勝ったとき差額をゲットする仕組みだったはず。
参考になるかも。
>>938 >>939
死者数カウントは銃魔がすでにやってるな
あっちは禁呪の仕様のためにゲーム開始からの累積・
社会不安値のためにユニット1体ごとに値の変更もやってるから、
どれがそうなのかはちょっと分かりにくいかも知れんが…
>>939 >>940
既存であったのですね!召喚ユニットは対象外でいいのでさっそく参考にしてみます。
ありがとうございます。
>>941
銃魔でやっているけどpushDeathでカウントしているから参考にならない
dead_system.datのbattle_resultがそうだけど、他でやるのは無理だと思う
なぜ新規仕様をななあし神に作ってもらっておいて、情報をwikiに残していないのか?
これが分からない
もう編集履歴からも見れないけど最新版の更新詳細ページに解説載ってた時期があったはず
消す時シナリオ製作講座ページに移すとかは「たぶんななあし氏がやってくれるやろ…」(むしろ勝手にやる方がまずそう)とかみんな思ってたらなんかいつの間にか消えてた
そんなことあったんだ
当時の関係者で仕様知ってる人、追記してくれんかねぇ
WIKIのバックアップ見たら最も古いバックアップで0.685だけは残ってた
全体から見るとほんのわずかとはいえ、ここだけでも回収しといたら?
>>938 です。
>>942
見てみましたが、確かに参考にさせていただくのは難しい感じでした。
ご返答ありがとうございます。
敵/味方の死者数を数えるのがこんなに大変だとは思いませんでした。
getRedCount()
getBlueCount()
はif文の中でしか使えないんですもんね。
妙案あったら教えてください。
>>947
Ver7使うならdeadeventが使えるから
1)戦闘開始時にプレイヤーが攻撃側か防御側かを記憶
2)ユニットが戦闘不能になったとき、そのユニットが自陣側かを判断
3)自陣側の場合、死亡カウント数に+1する
だけでできる気はする。
ただ注意、問題点として
・召喚ユニットをカウントしたくない場合、召喚ユニットは別の召喚用ユニット構造体を設ける必要がある
・クラス構造体にdeadeventは使えない可能性がある
っていうのがあるかもしれない。
戦闘開始前と戦闘開始後の駐留数も参考にするのも、ありかもと思う。
戦闘開始前に自勢力全領土のユニット数をカウント、保存しておいて
戦闘終了後に、また自勢力内の全領土のユニットをカウントし
保存しておいたものとの差を求めるのが一番軽くて効率的で、システムも小さいから楽でいい。
物によっては多少の誤差が出るとは思うが、許容範囲だろう。
これならNPC勢力の方も気軽にカウントできるから、NPCにも適用できるな。
▼システム全般と流れ
1)戦闘開始前に、カウントする勢力の勢力名を文字変数Aに格納
2)確保した勢力が持つすべての領土を文字変数配列Aに格納
3)確保した領土のすべてのユニットを文字変数配列Bに格納
4)文字変数配列Bの要素数を数値変数Aに格納
5)戦闘を行う
6)戦闘終了後、該当する勢力に対し1〜3を繰り返す
7)戦闘終了後に更新した文字変数配列Bの要素数を数値変数Bに格納
8)数値変数AとBの差を求める。
9)その差を死亡カウント用の変数に加算
メソッド15行もいかんなこれなら。
なんなら戦闘前と後にstoreUnitOfPowerしてsubvで引くくらい簡略化してよくない?と思ったけど
元のユニットが死んだ後ユニットが入った文字変数がどうなるかようわからんのでやっぱ一旦数値変数に代入した方が無難そう
>>949 さん、ありがとうございます。
文面通りにやってみたのですが、不慣れで理解が追い付いていない部分があります。
問題点等ご指摘いただければ幸いです。
event battle_deadcount
{
1)勢力の勢力名を文字変数Aに格納
storePlayerPower(@base_power)
2)領土を文字変数配列Aに格納
storeSpotOfPower(@base_power, @base_area)
3)ユニットを文字変数配列Bに格納
storeUnitOfSpot(@base_area, @base_unit)
4)文字変数配列Bの要素数を数値変数Aに格納
pushv(@base_unit, base_unit_numA)
5)戦闘を行う&6)戦闘終了後、該当する勢力に対し1〜3を繰り返す(ここからが不明瞭)
while(inBattle(@base_power)){
storePlayerPower(@base_power)
storeSpotOfPower(@base_power, @base_area)
storeUnitOfSpot(@base_area, @base_unit)
pushv(@base_unit, base_unit_numA)
}
7)戦闘終了後に更新した文字変数配列Bの要素数を数値変数Bに格納
pushv(@base_unit, base_unit_numB)
8)数値変数AとBの差を求める。
sub(base_unit_numA, base_unit_numB)
set(base_unit_numA, dead_num)
}
横からだけどまず死者カウントに同盟勢力の援軍を考慮するかどうかでスクリプトの難度が変わって来ると思う
自勢力限定ならそもそも繰り返しがいらないので一発でOK。しかし今回はいらなくなるとはいえwhile文の使い方が間違ってるのでそこはちょっと気になる
援軍を考慮する場合、援軍で戦闘に参加した勢力を代入する関数は存在しないのでそれを判定する処理を自力で組み上げる必要がある
どーも>>949 です
>>952 さんが既に書いていますが、自勢力の戦死者数だけでいいならループ処理は不要です
(ループを用いるのは、「生存している全勢力」の戦死者数を、それぞれ数える場合のみ)
◇個人的な修正案(正直合ってる自信はない)
▼戦闘前に呼び出すイベント
event battle_deadcount_get
{
・まず戦闘前に、自勢力の全てのユニット数をカウントし、数値変数Aに保持する。
1)プレイヤーの勢力を文字変数Aに格納
(※可能であれば自勢力の文字変数格納は、ゲーム開始時に済ませておくと良い。)
storePlayerPower(@base_power)
2)自勢力が持つ全ての領土を、文字変数配列Aに格納
storeSpotOfPower(@base_power, @base_area)
3)文字変数配列A内の領土に居る、全てのユニットを文字変数配列Bに格納
storeUnitOfSpot(@base_area, @base_unit)
4)文字変数配列Bの要素数を数値変数Aに格納
pushv(@base_unit, base_unit_numA)
}
5)戦闘を行う
▼戦闘後に呼び出すイベント
event battle_deadcount_set
{
・戦闘終了後に、自勢力内の全てのユニット数を改めてカウントし、数値変数Bに保持する。
6.1)プレイヤーの勢力を文字変数Aに格納
→すでに(1)で獲得しているので、そちらを利用
6.2)改めて自勢力が持つ全ての領土を、文字変数配列Aに格納。
(※戦闘結果により、自勢力の所持領地数が変更されている可能性がある為)
storeSpotOfPower(@base_power, @base_area)
6.3)文字変数配列A内の領土に居る、全てのユニットを文字変数配列Bに格納
storeUnitOfSpot(@base_area, @base_unit)
7)戦闘終了後に更新した文字変数配列Bの要素数を数値変数Bに格納
pushv(@base_unit, base_unit_numB)
8)数値変数Aと数値変数Bの差を求める。
sub(base_unit_numA, base_unit_numB)
9)その差を死亡カウント用の変数に加算
add(dead_num, base_unit_numA)
}
自勢力だけ数えるならこんな感じでいい。
以下補足、無視していい。
他勢力も数えたいなら、storePlayerPowerをstoreAllPowerに変えて、加えindex用いて
それぞれの領土獲得とそこのユニット獲得をして、それぞれの差を求めればよい
但し処理が重くなるし、ゲーム上の勢力数が安定しないなら、その為の数値変数枠を
あらかじめ作っておく必要や、数値変数と勢力を照合する必要がある為、正直おすすめしない
この場合簡易戦闘は別に考える必要があるな
普通の戦闘終了ならisWorld()でイベントを起こせばいいけど、
簡易戦闘中が終わったときのアプローチが存在しないからね
銃魔はその辺どうクリアしてるんだろ
あーまじですかー
確かに今ざっと調べてみたら、簡易戦闘前後だとアプローチ・トリガーがないなぁ
となるとdead_event活用する感じかなぁ
でもdead_eventって簡易戦闘でも機能するんだろうか?
「今簡易戦闘終了後のタイミングか」を判定する条件式がないだけでワールドイベントは読み込まれるから
戦闘イベントのどこかに
set(sentoushita,1)
ワールドイベント直下に
if(sentoushita==1)
{
/*
戦闘後イベント諸々
*/
set(sentoushita,0)
}
で引っ掛かるくない?
>>949
>>956
質問者です。いろいろとありがとうございます。
battle_deadcount_setはif(sentoushita==1)の時、でいけそうですね。
銃魔のレザネーションのスクリプトを確認したらbattle_resultを似た方法で起こしていました。
国語の問題で恐縮なのですが、
▼戦闘前に呼び出すイベント(event battle_deadcount_get)
の「戦闘前」は、isPlayerTurn()とisComTurn()と、それぞれ開始時に起こせば良いということでしょうか?
>>956 さん
自分もそれぱっと思いついて
例えばdead_eventとの組み合わせで(過剰にはなるんだけど)兵士が死んだら
set(sentoushita,1)すればできそうだなって思ったんですけど
「ワールドイベントって簡易戦闘が終わった直後に読み込まれるのか?」って不安がありまして
ただ、>>957 さんのを見た感じ行けそうですね
ワールドイベントって簡易戦闘直後に読み込まれるんですね勉強になる〜
でしたらまぁ全てのマップに開幕時即死亡するユニットをマップチップで置いて
deat_eventでset(~)すればいけるかな?
>>957 さん
とりあえずおつかれさまです
戦闘前というのは、「マジで全ての戦闘が始まる」直前をさします
すなわち、「○○が侵攻しました」のダイアログが出て
ダダダダッと「自分またはCPU問わず何らかの勢力」が「どこぞの領地」に攻め込むたびに
イベントを起こしてほしいです
戦闘は攻撃戦だけでなく、防御戦、援軍戦もあります
もし「自勢力が攻める直前だけイベントを起こす」となると、攻める時は死亡数カウントされますが
攻め込まれたときや援軍に行ったときに、死んだ兵士をカウントし損ねます
ですので「あらゆる戦闘が始まる直前」に必ず、当該イベントを起こしてください
>>958 さん、無事に作っていただいたスクリプトが機能しました!
ありがとうございます。
なによりでーす
製作、頑張ってくださいな
ヴァーレン制作ミリしら勢ですが、ヴァーレンで将棋を再現することって結構難しいのでしょうか?今考えていることとしては、
・領地を実際の将棋盤に見立てて駒の取り合いを再現する
・同じユニット(駒)でも先手か後手かによって移動できる領地が変わる
・駒が敵陣に入ったり、出たりしたときに成ることができる(成不成の確認コマンドが必要)
・ユニットの種類によって移動・出陣可能なエリアを個別に設定する(駒の動きを再現)
・手番が変わるたびにユニットが移動可能エリアの再判定を行う
・進路上に味方や敵ユニットがいる場合はそれ以上先に進めない、という判定が必要
・攻撃側は必ず勝ち、防衛側は必ず敗北する
・防衛側のユニットはターン終了後、攻撃側のユニットになり攻撃側の駒台に移動する
・取られたユニットは敵味方の領地にかかわらずどこにでも移動・出陣が可能(ただしユニットが存在しない領地に限る)
・各領地に配置可能なユニットは一体のみ
・先手と後手がそれぞれユニットを一回動かした時点でそのターンは強制的に終了する
・偶数ターン、奇数ターンなどで厳密に先手と後手を分けるか、同じターン内で必ず先手が先行して動けるようにする
・一回でもマスターが戦闘で敗北した時点でゲーム終了、勝敗が決まる
・マップ上で領地にいるユニットが見えるようにする(いちいち領地を開いてユニットを確認する手間を省くため)
・初めは、完全解析されているどうぶつしょうぎや3x3将棋から実装すると良いかもしれない
などを考えています。政策を使ってもこれを再現するのって厳しいですよね?
>>961
将棋はルール的にエンジン側と致命的に相性が悪い要素があまりにも多いし、
わざわざヴァーレンを使ってやる理由がないだろうなあ…
いつぞやウディタで要素追加型の将棋作ってる人もいたし、他エンジンを当たった方がいいと思う
ツクールやウディタでもRTSは作れるけどヴァーレンで作った方がいいよね
楽ではあるだろうけど目的自体ではお勧めしない
ヴァーレントゥーガの最新版の戦闘シーンで
部隊長の上に旗が表示されるんだけど
あんまり好きじゃなくて、表示しないようにする方法とかありますかね
制作お疲れ様です。
勢力選択画面で旗が表示されなくなりますが次のような方法があります。
現バージョンではchangePowerFlag()で旗を変更しても戦闘画面では以前の旗が表示されるのを利用し、
何も書いていない64×32の透明な旗を用意してシナリオ構造体のpowerにはそれを設定、
ゲーム開始時のイベント等でchangePowerFlag()で表示したい旗に変更する。
>>966
なるほどなぁ、そんな方法があったんすね。
回答に感謝します。
addUnit()で追加されたユニットって、追加されたターンだと
所属する勢力の情報とかを持たない状態になるんですね
(一度ターンを跨ぐと、所属勢力情報などが追加されている)
ユニットが持つ情報ってどのタイミングで補完されるかご存知の方っていますか?
いやっほう
上げてしまってすみません
統合素材集ってもう更新されていない感じでしょうか?
後日に素材を登録したいのですが
>>970
流石に最終更新10年前なので更新されてないと見て良いのでは…
大人しく小物入れに上げてWikiの素材リンクページに追記するとヨロシ
戦闘中ってwhile使えないんでしたっけ?
戦闘中に反復処理したいんですけど、どうすればいいでしょうか?
>>972
どんなイベント作るか言わないと住民も助言できないと思うのだが
過去の制作スレか、まとめwikiの if〜elseと条件式関数 か 関数(戦闘シーン)でも読んでみたら?
>>973
ご返答感謝です
どんなといわれましても、文字変数の配列を用いる全ての戦闘イベントで用いますので
個別に対応するというより、反復処理のアイデアだけでも頂ければ助かりますね
wiki確認しましたけど、探した限りでは記載なかったんですよね
ただこのスレさかのぼったら普通に使えないとありました
失敬失敬
CPU勢力のターン終了時に処理を入れたいんですけど
そうするために必要なif分の条件式が見つからないのですが
もしかしてそもそものやり方が存在しない?
おま環かもしれないがBluetoothヘッドホンで一部シナリオをやったとき酷い音ズレになったがケーブルでヘッドホン繋いだらよくなった
どこに書くか迷ったが記録として残しておく
>>975
手番勢力を毎回取得してチェックするしか・・・
結構面倒だと思う。文字変数はセーブされないので
ストーリー勢力ならワールドイベントの追加あるから勢力判定できるかな?
>>977 さん、返答ありがとうございます
あと、すいません、私の書き方が悪かったです
以下に長々と書きますが、要は「何らかの勢力のターン終了時にイベントを発動できるトリガー(条件式)が欲しい」という事ですね
wikiの「if〜elsenと条件式関数」において「プレイヤー勢力のターン終了時か」を調べられる
isPlayerEndという関数はあるのですが、CPU勢力に関しては、ターン開始時(isComTurn())はあるのですがターン終了時が無いのですね
貴方のおっしゃるように、手番勢力の勢力名を確保できれば、CPUに限らず
「何らかの勢力ターン終了時に発生させる条件式」があれば問題は解決するのですが、それも無いようで……
あと、試しに「isPlayerEnd()」がそもそも「ターン終了時に、その終了した勢力がプレイヤー勢力であるか」
という条件式であるという可能性を仮定してテストしてみたのですが、普通にターン終了時のタイミング以外もイベントが読み込まれました
storeNowPower(文字変数) で
@pre_power = @power
storeNowPower(@power)
if(@power!=@pre_power) {
勢力が変わったときの処理
}
という感じで行けると思います。たぶん
ただこの処理だと@pre_powerが空のときヒットする
特にロード直後はすべての文字変数が空なので常にヒットしてしまう問題が・・・
977さん、貴重なお時間を使ってくださり、ありがとうございます
その勢力のターン終了時ではなく、次の勢力のターン開始時に処理を行うというのは
確かに良いアイデアですね
その場合(isPlayerTurn || isComTurn)で行けそうです
しばらくこれで様子を見て見ようと思います
改めてご返答、ありがとうございます
質問です
勢力A・Bが勢力Cに対して共闘する関数もしくは処理はありませんか?
雇用関係で詰まってます
あるユニットが、別のクラスを持つユニットを雇えるようにしたいんですけど
同時に、その雇ったユニットを配下に持ちたくないんですね
(同僚として雇いたいが配下にはしたくない)
同クラスのユニットであればsamefriend,samecallでできるのですが
別クラスの場合、どうすればよいでしょうか?
戦闘マップの侵攻位置ってワールドマップの座標で固定なのでしょうか?
初歩的なことですみません。どうしても変な位置から始まるもので…
マップメーカーにて「@@」で部隊配置してください。
その地点が侵攻部隊の出現位置になります。
マップメーカーにある部隊名を入力する所の上の「部隊名」という文字をクリックしたら
少し幸せになれると思いますよ
終盤の中だるみを解決するため、スクリプトをつくってみました。
・マスターから3マス離れた地点を「遠征地」として補給が乱れる(弱体化LS)
・ただし重臣がいるエリアは、弱体化除外
if (isNewTurn() == 1)
{
storePowerOfForce(1, @p_top1)
storePowerOfForce(2, @p_top2)
if (@Player == @p_top1)
{
pushForce(@p_top1, v_top1_force)
pushForce(@p_top2, v_top2_force)
if (v_top2_force > 0)
{
set(v_ratio, v_top1_force)
mul(v_ratio, 100)
div(v_ratio, v_top2_force)
if (v_ratio >= 300)
{
storeMasterOfPower(@Player, @u_master)
storeSpotOfUnit(@u_master, @s_capital)
storeSpotOfPower(@Player, @s_spots)
set(v_i, 0)
while (v_i < count(@s_spots))
{
index(@s_spots, v_i, @s_now)
// 首都から3マス以上離れている場合のみ判定
if (isNext(@s_capital, @s_now, 2) == 0)
{
clear(@u_tmp)
storeUnitOfSpot(@s_now, @u_tmp)
set(v_has_jushin, 0)
// 【追加修正】その地点にマスター自身がいるか確認
if (inVar(@u_tmp, @u_master) == 1) {
set(v_has_jushin, 1)
}
// マスターがいない場合のみ、中のユニットのRankを精査
if (v_has_jushin == 0) {
set(v_j, 0)
while (v_j < count(@u_tmp))
{
index(@u_tmp, v_j, @u_one)
if (isUnit(@u_one) == 1)
{
set(v_rank, 0) // 毎回リセット
pushRank(@u_one, v_rank)
if (v_rank >= 2)
{
set(v_has_jushin, 1)
set(v_j, 999)
}
}
if (v_j < 999) { add(v_j, 1) }
}
}
// 判定結果の出力
if (v_has_jushin == 1)
{
scroll(@s_now)
talk(@s_now, &@s_now&:重臣・君主統治エリア)
}
else
{
if (count(@u_tmp) > 0)
{
scroll(@s_now)
talk(@s_now, &@s_now&:遠征弱体化を適用)
addSkill(@u_tmp, ls_bad2) ※弱体化LS
storeUnitOfSpot(@s_now, @u_tmp)
}
}
}
else
{
scroll(@s_now)
talk(@s_now, &@s_now&:本国近郊(対象外))
}
add(v_i, 1)
}
storeUnitOfPower(@Player, @player_allunit)
}
}
}
}
終盤の消化試合回避・人材の結集部隊による1点突破を難しくしようと考えてみました。
もしよかったら感想などください。
>>986 さん
スクリプト拝見しました
isVarとかisUnitとか、Wikiで不明といわれてたり
そもそも記載されてない条件式を扱ってるあたり、かなりの猛者とお見受けします
条件付きの弱体化処理、面白いアイデアだと思います
終盤の消化試合じみた占領作業に対して、マスターや重臣の配置配分の考慮や
失った手応えを取り戻せるように兵士を弱体化させるというのは
手応えを持続させる上での一つの在り方だと思います
ただ、第三者目線からの感想として理不尽さと不必要性を感じる要素だとも思います
まずイベント発生の条件面で、プレイヤー勢力が圧倒的な戦力を持っているとありますが
頂点をつかむよう、貴方のゲームに真摯に向き合ったプレイヤーのその労力対し
対価としてペナルティを課す様は、とても理不尽だと感じました
また、条件式を見るに
「プレイヤー勢力の戦力が全勢力内で最大で、かつ二番手の戦力の三倍以上」とありますが
この条件を満たしてる場合、すでにそのゲームをやりつくしている状態にあるように思います
個人的には、そこにペナルティを課すよりも、そこで勝利条件を満たさせて
また一からニューゲームさせた方が、プレイヤーも楽しめるのではと考えます
対案として、そのオリシナの領地数にもよりますが
そもそも巨大勢力は必然と領地数が増すので、このイベントの適用範囲を
「プレイヤーの戦力が一定のラインを越えたら発動する枷」ではなく
「全ての勢力に常時課される補給線という枷」とした方が良いと考えます
そうすればざっと考えても以下のメリットが見いだせます
・補給線という、一種のリアリティをゲーム内でシステムとして表現できる
・仕様が全勢力に当てはまる事なので、理不尽さが軽減される
・プレイヤーが巨大勢力に追い詰められた際の救済措置になる
・直線的な侵攻を行った場合も弱体化するので、侵攻戦略として地盤を固める事が重要視され戦略性が増す
・プレイヤーが優勢の際にも発生するので、「プレイヤーに対する枷」という元の目論見通りの働きも十分こなせる
当イベントを「プレイヤーにのみ課されるペナルティ」ではなく
「あなたの作るオリシナ要素の一つ「補給線」という個性」に昇華してみてはいかがでしょうか?
いきなり出てきて踏み込んだ発言、失礼しました
素人意見ではありますが、ご参考にして下さると幸いです
isVarなどの旧構造体を知らない人へ
ヴァーレントゥーガ小物入れ1から「VT_material_1400」をDL
解凍後「_Tool」→「SAVT」とフォルダを開けて、そこにある「VTDk.khp」ファイルを
サクラエディタ(無ければメモ帳でも可)で開くと旧構造体などの解説一覧があるので
目を通しておくと参考になるかも
>>988 さん
早速確認しました
確かにWikiでは把握できない情報もあり、とても頼りになりそうです
ただなんというか、すごくVT製作者としての覚悟が問われそうな内容ですね
時間をかけて情報整理しつつ、必要に応じてWikiに反映させていこうと思います
素敵な情報をありがとうございます
>>989
ここの利用者たちの合意形成なしに勝手にWikiに反映させるのは流石にマナー違反だろ
旧い構造体には、どのverまで正常に機能するかが不明なモノも多い
使われなくなった構造体には、使われなくなった理由があると思え
>>990
気持ちは分かるけどその言い方はないやろ
リンク切れがあるから新しくスレ立てするときは>>937 に書き直すべきだと思う
次のスレで終わりそうな雰囲気もあるし記録として残しておきたい
>>991
慌てていて語気が強くなったのは謝る
ただ、ver8で今までどおりには機能しない構造体やそれに伴うバグが増えたし、
これからも機能しない構造体が増える可能性を考えたら、wikiの改竄はやはり慎重に取り扱って貰いたかった
個人的な案として、備考として掲載するのであれば今のwikiには、「このページヘのコメント」の項目があるので
コメント欄に記載する程度で十分だと考えている
よく分からんけどWIKIってちょこちょこ追加・改変していくものじゃないの?
昔あんな情報あったなーって探しに行くとちょこちょこ消されてるよ
それを改竄ってかなり言葉強いしWIKI信仰でもしてるの?
>>994
>>WIKI信仰でもしてるの?
関係各位(ななあしさんや管理人さん、各素材の提供者さんなど)に迷惑かけないでねって言ってるの
989は「VT_material_1400」のデータを「Wikiに反映させていこう」と言っているが、問題はそのやり方だ
「VT_material_1400」の ReadMe.txt には
・著作権
(´・ω・`|∀・)っ|) ◆RS5djDtutMに帰属します。
の一文がきちんと明記されており、989が「◆RS5djDtutM」氏に「引用」「転載」の許可を取ったのか
外野である我々からは不明であり、後から揉めないか住民として気になるのが、まず1点目の問題
更に、上記「引用」「転載」の問題をクリアしていたとして、「動作確認の検証」を行ったか否かも不明であり、
開発者向けのwikiとしての信憑性に欠ける点が、2点目の問題
加えて、「動作確認の検証」を行っていたとしても、旧構造体自体が何時まで使えるかが不明瞭であり、
場合によっては、旧構造体が使えなくなった際に生じるクレームが、ななあしさんや管理人さんにまで及ぶ
可能性を引き上げているのが、3点目の問題
これらの問題を避けるために、ここの住民たちの間では、
「権利者に許可を取る」「他の利用者に意見を聞く」「管理人さんに相談する」などの合意形成が行われてきたし、
それらを怠った強引な改変だったから「改竄」と評価したんだ
それを言葉強いとか手前勝手な価値観で被害者ぶり、相手を信者扱いして煽るとか、オレどころか住民(特に権利者)
全体に喧嘩売ってるのか?それともハナっからココの荒らしや私物化が目的か? キッチリ答えろ
>>991 だけど>>994 とは別人だよ
別人て・・・今更・・・
とは言え確認しなかった俺も悪かったし、そこはスマンかった
それと、これ以上この問題引っ張るとこっちも荒らし認定されそうなんで、この件からっ手を引く
問題点に関しては995で述べたし、何かあったら989が処理するだろう
wikiにもバックアップもあるし、アタマ冷やすつもりで当面は読む専に戻るわ
質問と要望です
スパロボ風の会話って実装できますかね?
event構造体でやるにしても喋っていないキャラの立ち絵を暗くする処理が分からなくて
もしその機能がなく、ななあしさんが見ておられたら実装をお願いしたいです
1000
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板