したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

改造・制作スレ part6

1名無しさん:2013/06/26(水) 00:02:37 ID:???
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。

ヴァーレントゥーガまとめ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/

2名無しさん:2013/06/26(水) 03:20:33 ID:hBxqKqIg
ユニットを増やしまくって、マップも広げまくって遊ぶのが好きなんですけど、

どうも途中でスタックメモリの上限を使いきってしまって、ある一定以上の人数or広さになるとゲームが落ちてしまいます
バトル画面でのユニット情報は全部スタックメモリ上に確保されているんですよね?

これをなんとか無制限のヒープメモリ上で行えるように改造することってできますか?
こういう場合って製作者さんに問い合わせたりできるもんなのでしょうか?


あと、バトル中にユニット召喚(メモリ消費)するまではいいんですが、
ユニットが死亡したり離脱した場合にメモリが開放されていないように思われますが、
バトル中に不使用メモリを開放することも難しいでしょうか?

極端な例で言うと、時間無制限状態においてラクタイナが延々と召喚を続けた場合、
たとえアンデッドの総数が同じに保たれていても、いつか必ずメモリ不足でゲーム終了しちゃうと思うんですよ

ヒープメモリにしとくと、各個人のPCに積んであるメモリの分だけ自由に消費できるので、私的にはそっちのほうがいいのですが・・・

3名無しさん:2013/06/26(水) 13:56:28 ID:???
>>ユニットが死亡したり離脱した場合にメモリが開放されていないように思われますが、
バトル中に不使用メモリを開放することも難しいでしょうか?

これは死亡したユニットの場所の情報とかも保存されていて、それを用いていろいろイベントなどの挙動を指定するケースがあるからじゃないかな。
例えば死亡したユニットからもスキルを発射する関数とか。

4名無しさん:2013/06/26(水) 18:48:57 ID:???
そういう関連付けの有無も調べるべき or クラスやなんかにフラグを作って
その関数を使いたい奴だけメモリに残るようにすれば
メモリを有効活用出来るんじゃね?ってことだろ

要するに使わない物を省けないかってこと

5名無しさん:2013/06/26(水) 18:51:47 ID:???
んなメモリ使い切るまで延々ユニット出し続ける状況が一般的か?って考えれば自ずと答えは出ると思うがな

6名無しさん:2013/06/26(水) 19:35:35 ID:HLCBOok2
ユニット出し続けなくても召喚が多かったり、あちこちから大量に援軍が届けば
落ちちゃってるな最近は

7名無しさん:2013/06/26(水) 19:38:18 ID:???
ダンジョンだとやたら召喚まみれになる時もあるな

8名無しさん:2013/06/26(水) 21:48:22 ID:???
バトルで登場総数に上限があるってのは分かるんだけど、広さにも上限発生するもんなの?
いや質問に質問返して悪いんだけど。

9名無しさん:2013/06/26(水) 22:10:32 ID:???
実際マップメーカーで作る際に上限なかったっけ。

10名無しさん:2013/06/27(木) 12:34:38 ID:???
本体のバグ報告はここに書いてもいいのかな?
ver5.92、最終決戦Ⅲミシディシ
傭兵隊長状態で雇い主が滅亡、放浪人材になる時に配下の兵士が枠に合わせて自動解雇されて以降
ターン開始時に毎回傭兵隊長じゃなくなった旨のメッセージが出る
状態ボタンを押してみると部隊人数が「9/8」に…

11名無しさん:2013/06/27(木) 12:58:47 ID:???
そして今士官してみたらほんとに9人で出撃した

部下殺して8人にしてからもう一度放浪してみるとまた「資金と兵士がないので現在は傭兵隊長とはみなされません」
所持金はあるし配下もいるけどダメ
全員一般でも人材混ぜてもダメ
ターン開始時の「資金と兵士を失ったので傭兵隊長とみなされなくなりました。」も消えない
人数が原因じゃなかったみたいだ

そもそも傭兵になる条件理解してないからここらで終わりにしとく…

12名無しさん:2013/06/27(木) 13:21:20 ID:???
ミシディシにゃarbeit@sc7 = powerの記述があるから、多分傭兵認定周りで妙な具合になってんだと思う。
これ「勢力と契約中の時のみ傭兵になる」って設定らしいんで、あんま人材プレイは推奨されてないんじゃなかろうか。

13名無しさん:2013/06/27(木) 23:02:03 ID:???
改案

領地を越えて滞在しているユニットを領地の壊滅とともに消滅させるのではなく
連戦機能を備えることにより活用できるようにする
シナリオ構造体等で設定可能

領地満員時ユニットを強制放浪させるのではなく
人材のみ定員を超えて滞在させる
シナリオ構造体等で設定可能

近接領地がないからといって強制放浪ではなく
近場の領地へ移動させる
シナリオ構造体等で設定可能

アイテム購入でとくていイベント発生する特殊アイテム

などなどなどな

14名無しさん:2013/06/27(木) 23:04:20 ID:???
一番上は意味が分からないけど後は全部スクリプトでできる
アイテムは即反映はできんかもしれんが

15名無しさん:2013/06/27(木) 23:33:11 ID:???
スクリプトでできることをわざわざ提案するってことは
>>13は実はそのスクリプトを教えてほしいけど恥ずかしくて聞けないんじゃね?

16名無しさん:2013/06/27(木) 23:41:26 ID:???
一番上はマスターが追い詰められてボンしたときに、いっしょにボンする他の領地にいるユニットを回収したいってことじゃないかな
現状、戦闘後のワールドイベントの前に放浪、勢力滅亡判定があるから、マスターが放浪or自決すると配下の一般ユニットの回収は不可能だし

要するに>>13の一番上3つは滅亡・放浪判定の前にワールドイベントを起きるようにして欲しいって意味じゃないかな
シナリオで設定可能まではいらんけど

最強最大勢力がこっちの預かり知らんところで間の悪さからボンして
広大な中立地帯を取り合って残った弱小を潰すだけの作業とか、確かに興醒めではあるね

17名無しさん:2013/06/28(金) 01:05:43 ID:???
fightevent 内でstoreUnitOfPower使って(使えるか?)勢力のユニット識別子・あと領地識別子保持
マスターあぼんしたらその識別子内の人材で新しくaddPower(滅亡した勢力の再復活はできない
→addUnit→changeMasterで元のマスターに戻す、で出来そうな気がしないでもない
一般消えちゃうかなあ
まあ勢力識別子変わるからイベントフラグとかメチャクチャになりそうだけどw

18名無しさん:2013/06/28(金) 01:41:12 ID:???
イベントフラグはp1,p2等と直接指定をするんじゃなくて
保存識別子と文字変数を使えばいいよ
そうすればシナリオが違う = 勢力識別子が違う場合でも共通イベントは一つで済む

19名無しさん:2013/06/29(土) 08:42:01 ID:FF1fLRfE
イベントの発生条件の提案です
アイテムの所持の有無と装備の有無を
ユニットと勢力で個別に判別できるようにできないでしょうか?

それともう一つ、何かのアクションがあった何ターン後に発生すると条件式もあればうれしいです

20名無しさん:2013/06/29(土) 09:45:57 ID:???
>>19
上は
storeUnitOfPowerとstoreSkillOfUnitで全勢力全ユニットhasで総当りすりゃ余裕
ちょっと重くなるけどね

下は
アクションあった時にpushTurnで値とって
それに何ターン後か希望の分だけaddして条件getTurn()= で待っておけばいい

21名無しさん:2013/06/29(土) 10:02:55 ID:???
上はそれだけじゃ難しいだろうから具体的に書くと

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)
}

22名無しさん:2013/06/29(土) 10:10:38 ID:???
whileで全ユニット調べたりなんかすると一気に遅くなるんだよなあ。
そういう記述削除して整理するだけで大規模シナが目に見えて軽くなる

23名無しさん:2013/06/29(土) 10:22:33 ID:???
アイテムを任意で買えるのはプレイヤーだけだから、プレイヤー勢力だけ調べるっていう手もあるね。そうすりゃかなり軽い
COMは装備持った放浪人材拾うかイベントで与えるしかないから、与える対象のみを絞ればいい

ランダム不特定で装備与えてるなら・・・やはり重くても総当りしかないかな・・・

24名無しさん:2013/06/29(土) 10:53:56 ID:???
while(num<count(文字変数)){…
のくだりを
pushv(文字変数,counter)
while(num<counter){…
に変えると心持早くなる気がするのだが、実際どうなんだろうか?

25名無しさん:2013/06/29(土) 11:07:10 ID:FF1fLRfE
>>20-21
ありがとうございます
普通にやり方があったのですね
式まで書いていただき本当に助かります
>>20-24
どれくらい重くなるのかわかりませんがとりあえずやってみます

26名無しさん:2013/06/29(土) 23:18:42 ID:???
上記の場合はwhileの条件判定の度に文字変数の個数を数えて、numと比較している
下記の場合は文字変数の個数をcounterに入れた後、whileの条件判定のたびにnumとcounterを比較している

処理数的には下の方が少ないと思う(script読み込みの時に最適化処理とかが行われていなければ)

27名無しさん:2013/06/30(日) 13:35:29 ID:???
friendの設定でfemaleやmaleをつけると男性のみ、女性のみの雇用になりますが
これを特定種族・クラスは女性のみ、それ以外は性別問わずに雇用可能にする方法はあるでしょうか?
例えばデフォシナのヨネアでデビルは男女問わず雇用可能、リッチーは女性のみ雇用可能などです。

28名無しさん:2013/06/30(日) 16:48:38 ID:???
friendの条件は&だから、例外を作りたけりゃ直接指名するしかない

29名無しさん:2013/06/30(日) 17:53:41 ID:???
今のverだと、mapにいわゆる高低差をつける意味って何かありますかね?
直射だと上下共に攻撃できず、曲射だとどちらからでも攻撃できる、移動時間はそれほど差がないように思えますし。

30名無しさん:2013/06/30(日) 17:56:24 ID:???
基本は飾りのはず

ものすごい地味だけどギリギリの戦闘だと坂下ったり登ったりして時間ロスしてる間に倒されちゃうこともある
だからまったく無意味ではないと俺は思う

31名無しさん:2013/06/30(日) 18:03:47 ID:???
プレイする上では飾りだけど、直射不可とかを仕込んでおけば視覚的にそうだとわかりやすい

32名無しさん:2013/06/30(日) 18:24:12 ID:???
>>30-31
ご意見ありがとうございます。
建造物以外の地の利を作れないかと考えていたのですが思いつかなかったもので。
段差を長めにして直射不可にすれば、騎兵突撃を有利にする位はできるかもしれないので、試行錯誤してみたいと思います。

33名無しさん:2013/06/30(日) 19:08:28 ID:???
>>28
やはり直接指名しかないんですね
わかりました。ありがとうございます

34前スレ971:2013/06/30(日) 22:33:43 ID:???
ななあし様、立ち絵の個別設定の実装ありがとうございます!
立ち絵の制作がはかどりそうです!




掲示板管理者へ連絡 無料レンタル掲示板