レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part6
-
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。
ヴァーレントゥーガまとめwiki シナリオ製作講座
http://www28.atwiki.jp/vahren_ency/pages/411.html
改造・制作スレ
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1250722590/l50
改造・制作スレ part2
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1282244590/l50
改造・制作スレ part3
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1305281909/l50
改造・制作スレ part4
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1331214703/
改造・制作スレ part5
http://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1350187379/
-
ユニットを増やしまくって、マップも広げまくって遊ぶのが好きなんですけど、
どうも途中でスタックメモリの上限を使いきってしまって、ある一定以上の人数or広さになるとゲームが落ちてしまいます
バトル画面でのユニット情報は全部スタックメモリ上に確保されているんですよね?
これをなんとか無制限のヒープメモリ上で行えるように改造することってできますか?
こういう場合って製作者さんに問い合わせたりできるもんなのでしょうか?
あと、バトル中にユニット召喚(メモリ消費)するまではいいんですが、
ユニットが死亡したり離脱した場合にメモリが開放されていないように思われますが、
バトル中に不使用メモリを開放することも難しいでしょうか?
極端な例で言うと、時間無制限状態においてラクタイナが延々と召喚を続けた場合、
たとえアンデッドの総数が同じに保たれていても、いつか必ずメモリ不足でゲーム終了しちゃうと思うんですよ
ヒープメモリにしとくと、各個人のPCに積んであるメモリの分だけ自由に消費できるので、私的にはそっちのほうがいいのですが・・・
-
>>ユニットが死亡したり離脱した場合にメモリが開放されていないように思われますが、
バトル中に不使用メモリを開放することも難しいでしょうか?
これは死亡したユニットの場所の情報とかも保存されていて、それを用いていろいろイベントなどの挙動を指定するケースがあるからじゃないかな。
例えば死亡したユニットからもスキルを発射する関数とか。
-
そういう関連付けの有無も調べるべき or クラスやなんかにフラグを作って
その関数を使いたい奴だけメモリに残るようにすれば
メモリを有効活用出来るんじゃね?ってことだろ
要するに使わない物を省けないかってこと
-
んなメモリ使い切るまで延々ユニット出し続ける状況が一般的か?って考えれば自ずと答えは出ると思うがな
-
ユニット出し続けなくても召喚が多かったり、あちこちから大量に援軍が届けば
落ちちゃってるな最近は
-
ダンジョンだとやたら召喚まみれになる時もあるな
-
バトルで登場総数に上限があるってのは分かるんだけど、広さにも上限発生するもんなの?
いや質問に質問返して悪いんだけど。
-
実際マップメーカーで作る際に上限なかったっけ。
-
本体のバグ報告はここに書いてもいいのかな?
ver5.92、最終決戦Ⅲミシディシ
傭兵隊長状態で雇い主が滅亡、放浪人材になる時に配下の兵士が枠に合わせて自動解雇されて以降
ターン開始時に毎回傭兵隊長じゃなくなった旨のメッセージが出る
状態ボタンを押してみると部隊人数が「9/8」に…
-
そして今士官してみたらほんとに9人で出撃した
部下殺して8人にしてからもう一度放浪してみるとまた「資金と兵士がないので現在は傭兵隊長とはみなされません」
所持金はあるし配下もいるけどダメ
全員一般でも人材混ぜてもダメ
ターン開始時の「資金と兵士を失ったので傭兵隊長とみなされなくなりました。」も消えない
人数が原因じゃなかったみたいだ
そもそも傭兵になる条件理解してないからここらで終わりにしとく…
-
ミシディシにゃarbeit@sc7 = powerの記述があるから、多分傭兵認定周りで妙な具合になってんだと思う。
これ「勢力と契約中の時のみ傭兵になる」って設定らしいんで、あんま人材プレイは推奨されてないんじゃなかろうか。
-
改案
領地を越えて滞在しているユニットを領地の壊滅とともに消滅させるのではなく
連戦機能を備えることにより活用できるようにする
シナリオ構造体等で設定可能
領地満員時ユニットを強制放浪させるのではなく
人材のみ定員を超えて滞在させる
シナリオ構造体等で設定可能
近接領地がないからといって強制放浪ではなく
近場の領地へ移動させる
シナリオ構造体等で設定可能
アイテム購入でとくていイベント発生する特殊アイテム
などなどなどな
-
一番上は意味が分からないけど後は全部スクリプトでできる
アイテムは即反映はできんかもしれんが
-
スクリプトでできることをわざわざ提案するってことは
>>13は実はそのスクリプトを教えてほしいけど恥ずかしくて聞けないんじゃね?
-
一番上はマスターが追い詰められてボンしたときに、いっしょにボンする他の領地にいるユニットを回収したいってことじゃないかな
現状、戦闘後のワールドイベントの前に放浪、勢力滅亡判定があるから、マスターが放浪or自決すると配下の一般ユニットの回収は不可能だし
要するに>>13の一番上3つは滅亡・放浪判定の前にワールドイベントを起きるようにして欲しいって意味じゃないかな
シナリオで設定可能まではいらんけど
最強最大勢力がこっちの預かり知らんところで間の悪さからボンして
広大な中立地帯を取り合って残った弱小を潰すだけの作業とか、確かに興醒めではあるね
-
fightevent 内でstoreUnitOfPower使って(使えるか?)勢力のユニット識別子・あと領地識別子保持
マスターあぼんしたらその識別子内の人材で新しくaddPower(滅亡した勢力の再復活はできない
→addUnit→changeMasterで元のマスターに戻す、で出来そうな気がしないでもない
一般消えちゃうかなあ
まあ勢力識別子変わるからイベントフラグとかメチャクチャになりそうだけどw
-
イベントフラグはp1,p2等と直接指定をするんじゃなくて
保存識別子と文字変数を使えばいいよ
そうすればシナリオが違う = 勢力識別子が違う場合でも共通イベントは一つで済む
-
イベントの発生条件の提案です
アイテムの所持の有無と装備の有無を
ユニットと勢力で個別に判別できるようにできないでしょうか?
それともう一つ、何かのアクションがあった何ターン後に発生すると条件式もあればうれしいです
-
>>19
上は
storeUnitOfPowerとstoreSkillOfUnitで全勢力全ユニットhasで総当りすりゃ余裕
ちょっと重くなるけどね
下は
アクションあった時にpushTurnで値とって
それに何ターン後か希望の分だけaddして条件getTurn()= で待っておけばいい
-
上はそれだけじゃ難しいだろうから具体的に書くと
storeAllPower(@AllPower)
set(num,0)
//全勢力を調査
while(num<count(@AllPower)){
index(@AllPower,num,@NowCheckingPower)
storeUnitOfPower(@NowCheckingPower,@AllUnitOfPower)
set(num2,0)
//全ユニットを調査
while(num2<count(@All@UnitOfPower)){
index(@All@UnitOfPower,num2,@NowCheckingUnit)
storeSkillOfUnit(@NowCheckingUnit,@NowChekingSkill)
if(has(@NowChekingSkill,スキル名)){
//スキル持ってたら起きる何か
}
add(num2,1)
}
add(num,1)
}
-
whileで全ユニット調べたりなんかすると一気に遅くなるんだよなあ。
そういう記述削除して整理するだけで大規模シナが目に見えて軽くなる
-
アイテムを任意で買えるのはプレイヤーだけだから、プレイヤー勢力だけ調べるっていう手もあるね。そうすりゃかなり軽い
COMは装備持った放浪人材拾うかイベントで与えるしかないから、与える対象のみを絞ればいい
ランダム不特定で装備与えてるなら・・・やはり重くても総当りしかないかな・・・
-
while(num<count(文字変数)){…
のくだりを
pushv(文字変数,counter)
while(num<counter){…
に変えると心持早くなる気がするのだが、実際どうなんだろうか?
-
>>20-21
ありがとうございます
普通にやり方があったのですね
式まで書いていただき本当に助かります
>>20-24
どれくらい重くなるのかわかりませんがとりあえずやってみます
-
上記の場合はwhileの条件判定の度に文字変数の個数を数えて、numと比較している
下記の場合は文字変数の個数をcounterに入れた後、whileの条件判定のたびにnumとcounterを比較している
処理数的には下の方が少ないと思う(script読み込みの時に最適化処理とかが行われていなければ)
-
friendの設定でfemaleやmaleをつけると男性のみ、女性のみの雇用になりますが
これを特定種族・クラスは女性のみ、それ以外は性別問わずに雇用可能にする方法はあるでしょうか?
例えばデフォシナのヨネアでデビルは男女問わず雇用可能、リッチーは女性のみ雇用可能などです。
-
friendの条件は&だから、例外を作りたけりゃ直接指名するしかない
-
今のverだと、mapにいわゆる高低差をつける意味って何かありますかね?
直射だと上下共に攻撃できず、曲射だとどちらからでも攻撃できる、移動時間はそれほど差がないように思えますし。
-
基本は飾りのはず
ものすごい地味だけどギリギリの戦闘だと坂下ったり登ったりして時間ロスしてる間に倒されちゃうこともある
だからまったく無意味ではないと俺は思う
-
プレイする上では飾りだけど、直射不可とかを仕込んでおけば視覚的にそうだとわかりやすい
-
>>30-31
ご意見ありがとうございます。
建造物以外の地の利を作れないかと考えていたのですが思いつかなかったもので。
段差を長めにして直射不可にすれば、騎兵突撃を有利にする位はできるかもしれないので、試行錯誤してみたいと思います。
-
>>28
やはり直接指名しかないんですね
わかりました。ありがとうございます
-
ななあし様、立ち絵の個別設定の実装ありがとうございます!
立ち絵の制作がはかどりそうです!
-
バグ報告です
最新版で、恐らくですが落下型スキルのheightの値が高すぎると着弾位置がおかしくなるようです
-
戦闘中のVoice.datについてですが、
昔「プレイヤーが操作できるキャラは喋らない」ってのを見た記憶があるんですが、
最近またVTやっていたら操作できるキャラも喋るようになってました。
同じように「人材キャラを一つの部隊にまとめると部隊長以外は喋らない」という点を
「人材キャラであれば部隊員も関係なく喋らせる方法」はありませんでしょうか。
-
36です。
スレ違いかと思いこちらで聞きなおしたんですが、
ヴァーレンについて語るスレの方で教えてくれた方がいたので解決しました。
結果的にマルチポストになってしまい申し訳ない、ありがとうございました!
-
<あぼーん>
-
if(inPower(各勢力, 領地A) == 1)
{
storeAttackPower(atk_po)
storeLeaderOfSpot(領地A, sihai_unit)
addUnit(@sihai_unit, @atk_po)
removeSpot(領地A)
}
という文を書いているけれども、当初はしっかりマスター含むユニットが支配後すぐに本拠地に移動されて領地Aは空で中立領地に戻るけれども、不明なタイミングでユニットが1部隊残るようになり、とうとうマスターがその次の戦では移動されずに中立勢力のメンバーと化してしまう。
解決方法がわからず悩んでる。組み上げた理論に問題ありなのか、関数動作が不安定なのか…
ちなみに目的は別スクリプトと組み合わせて攻城マップの全勢力支配統計シナリオを作り、バランス調整に活かすため。
-
>>39
addUnitで勢力に追加する場合、マスターがいる領地に追加されますので
マスター含む部隊が領地Aを攻め落とす→領地Aのユニットが領地Aに移動→中立化となってしまうからですね
storeNextSpotで隣接する支配領地を調べてそちらに移動させたりすれば解決すると思います
ユニットが1部隊残ってしまう原因は良く分かりません
-
ユニットが1部隊残るのは、ユニットを移動先領地の部隊数制限以上に移動させようとして
溢れた部隊がたらい回しで中立予定の領地Aに飛ばされてるとかじゃないかな?
先に中立化するか一旦不可視領地に退避させるかして、addunit前にremovespotを実行したらどうだろう?
-
どうでも良い突っ込みだと思うけど、ところどころ@抜けてるけど良いのかな
まず@atk_po国のマスターをAから移動させてから追加処理した方が安定すると思う。
-
かなり知られていない様な気がするが、実はstoreする時点では@つけなくてもいいんだ。
文字変数として使う時につければいい。
-
皆さんありがとうございます。
>>40
storeNextSpot(領地A, tonari_spot)からのaddUnit(@sihai_unit, @tonari_spot)の場合、storeNextSpotがwikiの説明だと:単なる隣接全領地のため、勢力を限定していないようです。このためtonari_spotの内部が支配した勢力の自領か判定できない可能性を考えて用いていませんでした。
>>41
各勢力の当初のマスター所在地は最大駐留部隊数の8となっており、当初のマスター所在地からそれぞれ直接領地A(駐留部隊数8)に接続する構造のため、溢れる現象は考えづらいです。
先に中立化してしまうと支配勢力はマスター不在となり処理が難しくなりそうです。不可視領地も同様です。
>>42
最初の条件式内部で各勢力に@をつけ忘れていました。環境の都合のため、コピペ入力ではないのでご容赦下さい。
その他に関しては文字変数を代入する部分においては@を付さなくても問題なく動いています。
マスターを先に移動するとなれば、スマートな記述は難しそうですね。home領地代入の関数は確かないはずなので勢力の数だけ記述を繰り返す必要があるようですね。
こうなったら支配勢力を振り分ける処理後にaddUnit(@sihai_unit, 領地B)以下振り分けて領地C,そして同処理でD,E…とするしかないのかな。
-
storeNextSpotでだした集団αから、
全ての敵国の領土と中立をsubvして、隣の自領土だけ導くか、
自国の全領土の中にαが含まれるか、indexとwhile、has使って調べるとか。
もう試していて駄目だったりしたらごめん。
-
storeLeaderOfSpotで拾ったリーダー群は直列に並んいてで、addUnitすると先頭から拾って処理していくだろうから
@sihai_unitの中身が(unit1,master,unit2,unit3,unit4,unit5,unit6,unit7)と並んでいた場合、
移動先を勢力(=マスター所在地)としたらunit1だけが領地Aに残ることになる
・・・という可能性を考えてみたので
while使って一つづつ移動させつつdialogを挟んで現在移動させようとしているリーダーをチェックしてみてはどうだろう?
-
1部隊だけ残るのは、おそらく一般兵の識別子の関係で対応策はhttp://jbbs.livedoor.jp/bbs/read.cgi/computer/42292/1331214703/325
マスターが中立勢力のメンバーになるってのは
マスターが中立勢力所属になっても勢力が滅亡しないところを利用すればよくて
removeSpot(領地A)
addUnit(@sihai_unit, @atk_po)
と順番を逆にすれば中立化すべき領地に移動させられることはなくなる
-
被召喚ユニットは召喚者が倒されるか退却すると戦場からいなくなりますが、これをいなくならないようにするにはどうしたら良いのでしょうか?
被召喚ユニットの設定を色々と弄る事ができたらなぁと思うのですが……
-
http://www28.atwiki.jp/vahren_ency/pages/389.html
ブラウザの機能検索で「召喚」という単語を検索
すると、element_lostという項目を見つけることが出来る
-
>>49
class構造体の方はチェックしていませんでした。ありがとうございます
-
全然かまへんで
-
>>45
>>46
>>47
47の方式を採用させて頂きました。
未だに特定の勢力でユニットが1部隊だけ残る現象が続きますが、何らかのミスによるものでしょうから、微調整で解決できるでしょう。
ありがとうございました。
-
>>47のリンク先の方法なら一見、通し番号無しのユニットを抹消できそうな気がするけど
よく考えたら、他のスポットにも初期配置のユニットがいればどっちに通し番号無しのユニットが配備されるかはランダム(先に処理されるスポット順次第?)
なので、通し番号無しバグを絶対に回避したいなら、
一般ユニットの初期配備はspot構造体のmemberではなく、1ターン目開始時のワールドイベントでやるしかないっぽいな
-
すみません…
ななあし様に要望です。
ground = on のときにも bright = on が適用できるようにできませんか?
-
image.datの最大面積を2048より大きくするのは
どうすればいいのですか?
過去スレに手動でやった事がある人がいたみたいですが
ヴァーレンを起動すると2048内に戻されます。
-
要望です。
mapmakerで作成中のマップをペイントソフトの用に
90度回転や左右反転が可能にできませんでしょうか?
ご検討の程よろしくお願いします。
-
バグ報告です
yorozu = troop、troop2、troop3で出したユニットのactiveとactivenumの挙動がおかしくなっています
timeやrangeを設定してもアクティブになりません
-
基本的な質問なんですがCPUの上位雇用っていうのは例えばclassAは自分のmerceなどを無視して自分と同じ(classA)を雇うってことでいいんですよね?
-
質問させて頂きます
光の目のように難易度によって中立モンスターのレベルを
変化させたいのです 色々調べましたが 糸口が掴めません
ヒントでも結構なのでアドバイス戴けないでしょうか
-
>>59 wiki見れ。
>@(シナリオ名) を末尾に付けると各シナリオ毎のデータとして設定できます。
>member@sc5 = mage*8 シナリオ5では魔法使いとなる
>member = soldier*8 それ以外では兵士となる
-
>>59 あとはscenario構造体でmonster_levelを設定するといい。
-
>>61
有難うございます 解決できました
なんか特殊な処理でもやってるのかと思い込んでました
-
一瞬出来たと思ったけど
やっぱり出来ませんでした
>>60>>61を応用すれば出来るんですよね
もうちょっとwikiを熟読します
-
>>63 光の目のorworld5.datを読む限り、ゲーム開始時イベントで中立地帯のユニットのレベルを上げていると思われる。
-
>>64
一応目は通してたのですが …もうさっぱり
気合入れて解読してみます 二時間はかかりそうだw
-
>>65 orworld5.dat で extraで文字列検索すると、
if (extra == 1) {
set(extra, 3)
set(Neutral, 1)
}
if (Neutral == 1) {
storeNeutralSpot(@spaaot)
storeUnitOfSpot(@spaaot, @unaait)
levelup(@unaait, 4)
set(Neutral, 2)
}
という処理がある。extraは「難易度Doomsdayが選択されています。」表示時に1が設定され。他の難易度の時には多分初期値( = 0)になってる。
-
>>66 のコードのおかげで希望通りの結果が得られました。
お手をわずらわせてしまい申し訳ないです。本当に感謝。
早く公開できるレベルになりたい。
-
>>58
厳密には上位雇用というかsamecallだが、そういう事で良いよ
-
>>68
ありがとうございます。
-
ななあし様に質問と要望なのですが
アタックやスピードなどの補助魔法に gun_delay が適用されない
のは仕様なのでしょうか? もし可能であるならば使えるようにして頂きたいのです。
-
要望です。
複数行の選択欄を作りたいです。今だと二択orスクロール必須の縦長にしかないので。
panel(変数, 横列数, 文字列*数字, 文字列*数字, 文字列*数字・・・・・)
文字列は、表示する文字、またはアイコン指定
数字は、0(未指定):選択可能、1:選択不可
みたいな感じでアイコンも表示できると嬉しいのですが、どうでしょうか。
-
既出なら申し訳ないんですがログ追っても出てこなかったんで質問をば。。。
MAPで全勢力駆逐or同盟状態にしてもゲームを終わらせずに
指定ダンジョンクリアしないとゲームクリアにならないようにする設定ってありますか?
-
>MAPで全勢力駆逐or同盟状態にしてもゲームを終わらせない
default_ending = off
>指定ダンジョンクリアでゲームクリア
ダンジョン最終階層でisAllDead()とかgetClearFloor()とかを使って
ダンジョン脱出後にsetGameClear()でクリアにするとか?
-
おお、回答サンクスであります。
関数系は今までノータッチだったので勉強しながら進めていきます。
-
デフォIFシナの最終決戦Fは指定ダンジョン(王都跡)をクリアでゲームクリアになるようになってる
参考になるんじゃないかな
厳密に言うと王都後の最終階層のボスを倒すとクリアだけど
-
すみません。
小物入れにエラー表示の画像をアップしたものなんですが。
現在オリシナ作っていまして。
イベント(シーン)が切り替わる時にエラーが出て困っています。
原因わかる方いらっしゃいませんか?
-
>>76
ggrks
ttp://support.microsoft.com/kb/884538/ja
ttp://okwave.jp/qa/q5697285.html
ttp://orbit.cocolog-nifty.com/supportdiary/2009/09/runtime-error-f.html
-
>>77
余計な一文を加えるなら書きこむなカス
-
エラー文のスクショとってロダに上げるヒマはあるのにエラー文でググらない
エラー文のスクショとってロダに上げるヒマはあるのにスクショへのリンクは張らない
>>78←いまここ
-
下記イベント見た後で、バグる人いる?
event bug_test
{
bcg = ●●●.jpg 適当なBG入れてください。
fadeout()
fadein()
msg(バグテスト)
}
-
いるというか前にもあった。デフォのS7のミシディシイベントだけど
bcgの直後にfadeout()を入れるとおかしくなる
fadein()からなら問題ないはずだけど
-
>>76
>>80
event test
{
フェードイン前の事前処理(省略可)
next() (必須)
戦闘前イベント(省略可。moveTroopなどで部隊を動かせます)
event構造体でのイベント開始時は
next()
を入れる必要があります。
-
ほんとだ。あれnext()入れてたら動いてたのか
next()入れなくても大概動いてたから今まで気付かなかったよ
-
要望です。
yorozu = troopを召喚獣を1匹1匹ばらばらに突っ込ませる敵AIの陣形を整える用途に使用したいのですが、
敵がそのスキルを使用したのみ有効で、かつリーダーのLSは無効でただ部隊に加えるといった設定は出来ませんでしょうか?
-
マップメーカーに関する記述がwikiにほとんど無く、説明書も簡素すぎて詳しい動作がよくわからないので質問なのですが
マップメーカーに登録されているマップチップはマップメーカーのfieldフォルダー内を参照しているものの
出力されるmapファイル内のそれぞれのマップチップはfieldフォルダー内の画像ファイル名を元にfield構造体名を指定している
よって、マップメーカーのfieldフォルダー内の画像が必ずしもimage.dat内のものと一致している必要は無く、
マップメーカーのfieldフォルダーへエッジング派生チップをあえて入れる必要はないが
field構造体でのみ存在するマップチップ(画像は他から流用し、構造体名と画像名が不一致のチップ)を配置したい場合は、構造体名と同じ名の仮画像をマップメーカー内fieldフォルダーに入れる必要がある
・・・という認識であってますか?
-
>>85
あんまりマップメーカー使わないからよくわからんけど
俺もそんな、認識だったかな。fieldフォルダに入れる画像は、あくまでもエディタに使うグラで、ゲームに使うグラじゃなかったはず
だから、エディタ用に画像を縮小したり、色変えて使ってたよ
skill 構造体で
funk = statusで
add2 = fire,water
みたいに記述しても、「に強い」
みたいな表示がされて、複数の耐性がつくスキルを作れないのだが、
これはバグですか?
-
まず*funk*になっているのだが・・・
本家の該当スキルを参照して作ればいい。
-
ごめん、funkは、ここでの書き込み間違えただけです。
本家のスキルで、複数の耐性が同時に上がるスキルってありましたっけ?
本家に限らず、このシナリオのこのスキルが同時に複数の耐性を上げるスキルって知ってる方いましたら
そのスキル名教えていただけませんか
-
fire,waterがattribute構造体にないってオチはなかろうか。
-
>>89
それはないんですよね
ちゃんと、attrを使えば、単体では耐性アップができる事を確認していますので
-
skill skilla
{
name = スキルa
func = status
time = 1
type = 1
func = status
add2 = fire,water
}
これでもダメ?
-
>>87
>>89
>>91
お騒がせしました。
解決しました。
私のオリシナ用に使っている、実行ファイルが古いままで、実行ファイルを書き変えたら、意図通りになりました。
ごめんなさい、そして、色々とありがとうございました
-
>>92
あるあるw
-
>>86
やっぱりそんな感じでしたか>マップメーカー
デフォルトで入ってるのも海チップには草だの土だのあるので、特殊なサムネはどうやってたのか謎がとけました
-
ななあし様
更新に対応し続けるのが困難なので戦場イベント、user_eventのbt_eventを本体から外していただけますようお願いいたします
|
|
掲示板管理者へ連絡
無料レンタル掲示板