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

改造・制作スレ part8

1名無しさん@桜花爛漫:2016/05/21(土) 22:17:05 ID:1hw1nxVw
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。

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

594名無しさん@立夏:2017/08/15(火) 18:09:25 ID:???
ありがとうございます
試してみましたが人材の場合delskillだのlearnだの設定してあるとスキルが失われたりして結構大変ですね
一般はこれでうまくいきました

595名無しさん@立夏:2017/08/16(水) 00:05:02 ID:???
多分addFriendと一緒にやるって話だと思うんだけど
merceだけ書いてもfriendにできないクラスだと結局雇えないはずだから
merceの方だけ最初から書いといてもいいかも

596名無しさん@立夏:2017/08/16(水) 00:39:45 ID:???
それは最初に考えたのですが
他のMODと簡単に共存できるようにMODを作っておりますので、そのシナリオのクラスやユニットに手を加えて互換性を捨てるのは難しかったのです

597名無しさん@立夏:2017/08/18(金) 17:31:57 ID:7VKZoPZQ
次のようなスクリプトを組んで任意のタイミングで発動させるとメモリーの使用量が増え続けていく現象を見つけたのですがVTの仕様なんでしょうか。
処理が終了したあとも開放されずに居座っている感じです。ESC押しでタイトルに戻った時も使用量が変化していません。
開発中のシナリオでは文字変数を使用してイベントの呼び出しをしている処理が1ターン巡るあいだに数千、数万回実行しているのでかなり困っています。

setv(@call,testevent)
set(idx,10000)
while(idx)
{
sub(idx,1)
routine(@call)
}

event testevent
{
set(a,1)
}

598名無しさん@立夏:2017/08/18(金) 18:02:59 ID:???
メモリ使用量とかは分からんけどループにroutine入れると重くない?

599名無しさん@立夏:2017/08/19(土) 00:06:34 ID:???
>>597
俺もメモリとかはわかんなくてタスクマネジャー見る程度なんですが
呼び出し先(testevent)の変数をその都度クリアしてみたところ
メモリが増えなくなったような気がします
event testevent
{
set(a,1)
set(a,0)
}
ただ素人なんで自信はないです。試したexeはv7.0(最新ではない)です

>>597
そうかな? 俺は感じないけど

600名無しさん@立夏:2017/08/19(土) 00:13:48 ID:???
ローカル変数機能さえアレばな―

601名無しさん@立夏:2017/08/19(土) 00:32:09 ID:DTLyxT1g
>>598
ストレスを感じる程度ではありませんね。
routine()ではなくてevent()で呼び出すと激重ですけど。

>>599
>俺もメモリとかはわかんなくてタスクマネジャー見る程度なんですが
当方もタスクマネージャーの詳細から使用量をモニタリングしていました。

>呼び出し先(testevent)の変数をその都度クリアしてみたところ
構造体変数の配列の代用として使っているのでそれができないです。

setv(@call, event_A)
routine(@call)
set(b, a)

event event_A
{
set(a,1)
}
event event_B
{
set(a,2)
}
etc...

という感じで値を参照するためにつかっているのでイベント構造体内での変数クリアができません。
文字型変数の場合はデータサイズが可変なのでクリアすることでメモリー使用量が変化するのは当たり前ですけど、
データサイズが固定である数値型変数はクリアしたところでメモリーの使用量には変化がないはずなんですけどどういうことなんでしょうね。

602名無しさん@立夏:2017/08/19(土) 07:22:38 ID:???
routineを何万回もやると重いのは俺環だったのか
もしかしてstoryをたくさん付けると重くなるのもうちだけか?
そのせいでstoryは全部一つにまとめてるしroutineも速さがさほど気にならない内政とかでしか使ってないんだけど

603599:2017/08/19(土) 13:26:44 ID:???
>>601
もしかしたら文字変数でイベント呼ぶと扱いが変わるのかもしれないですね
まあ俺にわかるのは「毎回クリアすれば増えないらしい」ってとこまでです

>>602
あ、ごめん、何万回も回したことはないからわかんない
シナリオの規模(イベント数とか)も影響してそうだし、事情が違うのかも

604名無しさん@立夏:2017/08/20(日) 18:46:40 ID:???
eventとかがあるのとないのとで確実に速さ違いますよ
100回ほど回るwhileにeventで100回回すのと、eventの中身をバラして入れたものだと後者のほうが圧倒的に速いです

605名無しさん@立夏:2017/08/21(月) 00:13:53 ID:ViqBZ/Oc
イベント構造体の呼び出しを多用するとメモリー使用量が増加していくのは仕様みたいですね。
幸運なことに開発中のシナリオで見にいく必要がある変数が文字変数だけなのでゲームの開始時に文字変数の配列に展開しておきますか。
つきあってくれてありがとう。

606名無しさん@立夏:2017/08/21(月) 07:20:18 ID:???
>>604
やっぱりそうだよね
良くないけど良かった

607599:2017/08/21(月) 22:58:45 ID:???
>>604
一応確認、event( event構造体名 )が遅いのは仕様ですよ?
https://www28.atwiki.jp/vahren_ency/pages/534.html
> routine( event構造体名 )
> event構造体を呼び出します。
> 戦場マップや背景画像を指定しないただのサブルーチンを呼び出すのはこちらを使ってください。
> routine呼び出しの方が高速です。

>>597の10000回ループもすぐ終わったし、
routine自体が重いってことはないと思いますが、何か条件があるのかも?

608名無しさん@立夏:2017/08/22(火) 06:41:52 ID:???
流れ的にevent「とか」ってのはroutineやstoryを含んでいるのだと思うが
何にせよオリシナやMOD公開するつもりならroutineループが重くなる環境が存在するということは頭に入れておいたほうがいいね

609602:2017/08/22(火) 07:10:31 ID:???
ただ確かに>>597は全然重くないな
重くなった奴貼りたいけどもう全く別のスクリプトに変貌してるから無理だわ
ちなみに>>602です

610名無しさん@立夏:2017/08/24(木) 23:56:53 ID:saFXE.yg
質問です。
power構造体のhome設定を後から変えたり、内容を取得する方法はありますか。

611名無しさん@立夏:2017/08/25(金) 12:02:12 ID:???
たしかないはずです

612名無しさん@立夏:2017/08/25(金) 19:27:32 ID:???
もう消えてるけどsetPowerHome(勢力,領地)がなかったっけ

613名無しさん@立夏:2017/08/25(金) 19:29:38 ID:???
一番簡単なのはwarlike使って線プッツンして狙いの方向に行かせるのが確実かと

614名無しさん@立夏:2017/08/25(金) 20:20:34 ID:???
>>612
少なくともwikiのログにはないけど

615名無しさん@立夏:2017/08/25(金) 20:37:53 ID:???
setPowerHomeは前スレでちょっとだけ出てたね
興味があったら試してみたらいいんじゃない?

616名無しさん@立夏:2017/08/26(土) 02:28:50 ID:???
更新のところにあるやつ、時々シナリオ製作のところに書かれずに流れちゃうことあるからねー

617名無しさん@立夏:2017/08/26(土) 02:52:20 ID:???
領地ウインドウを開いた時にイベントを発動させたいのですが、方法はないでしょうか?
また、領地を開いたり閉じたりする関数、開いている領地を取る変数、開いてる領地を条件にする・・・とかできれば助かるのですが・・・

618名無しさん@立夏:2017/08/26(土) 02:55:57 ID:???
もし仕様的にできないのであれば、ななあしさんに要望として目を通して頂ければとても助かります

619名無しさん@立夏:2017/08/26(土) 10:28:28 ID:???
もう機能追加はないと公式に宣言されてるで

620名無しさん@立夏:2017/08/26(土) 15:45:46 ID:???
公式に宣言されてるからといって完全に望みが絶たれたわけじゃないと思う。
少なくともmidiやoggのループ指定を組み込んでくれれば
RPGツクールやSRPGSTUDIOと同じくらいになるはずだから
それだけは是が非でも搭載してほしい。

621名無しさん@立夏:2017/08/26(土) 16:52:19 ID:???
変な数字入れるとバグって固まるとかでも全然いいんでAI設定の説明が欲しい

バグで思い出したけどスキルヘルプでアイコン出るようになったバージョンで何かスキルヘルプにバグあった気がしたけど
あれ直ったんだっけ?

622名無しさん@立夏:2017/08/26(土) 19:19:42 ID:???
スキルヘルプのバグなのか仕様なのかは分かりませんが、最新版でもそのままですね
ver7.00以降、func未指定の無効スキルのヘルプがスキルアイコンとスキル名が重なる
ワールド画面でユニットのスキルにオンマウスした時、
スキルヘルプ内にマウスカーソルが入っているとヘルプが開閉を繰り返す

623名無しさん@立夏:2017/08/27(日) 11:25:36 ID:???
>>621
このスレの過去ログにもある程度は出てくるけどそれ以外?
どの変数のことか書かにゃアドバイスしようがないと思う

624名無しさん@立夏:2017/08/31(木) 12:58:20 ID:???
scriptそのものが初心者な私に教えてください。

後々整理し易いように、作り始めた今のうちから先人のまとめかたを
参考にしたいんですけど、どの方のを参考にするのが皆さんオススメですか?

ヴァーレン派生のゲームで教えてください。
本家、むなしい努力、光の目は覗いてみました。
どれもすごいんでしょうけどわからなくて・・

625名無しさん@立夏:2017/08/31(木) 14:27:32 ID:???
整理しやすいまとめ方ってんならGreatEuropeWarとかスマブラ戦記とかかな
ジャンル別に細分化して個別にファイル作られてる
見やすいかどうかは別だけど

626名無しさん@立夏:2017/08/31(木) 14:44:14 ID:???
あと、もう使ってるかもだけど、サクラエディタ便利だよ
無いと何もできないレベル

627名無しさん@立夏:2017/08/31(木) 16:32:15 ID:???
自分がいちばん長く遊んだシナリオを読むのもいいよ
遊んで楽しいシナリオは自分の理想にも近い
ゲーム本体に詳しいほうがスクリプト読むのも楽しいし

628名無しさん@立夏:2017/08/31(木) 19:41:28 ID:???
vs codeの方がサクラより便利だよ

629名無しさん@立夏:2017/08/31(木) 22:01:07 ID:???
スクリプト覗くなら
本家ときのたけと銃魔と迫真は止めといたほうが良い

本家は作者がすっごいバラバラで書き方も統一されてない

きのたけと銃魔は国策関連が複雑過ぎて初心者には向かない
迫真はきのたけの流れを受けているから……

光の目は戦闘AIの書き方でいずれお世話になるが初心者にはどうだろう よくわからない

作者のコメントが多いのは祖国と銃と
むなしいも悪くない

630名無しさん@立夏:2017/08/31(木) 22:05:33 ID:???
まあ、こんなこと書いたけど一番良いのは>>627さんの書いた通りスクリプト書きたいと思ったきっかけの作品を見ることだね
一番好きな作品なら愛を持って取り組めるはず
きのたけについて悪く書いたけどこれでMOD作成に入門したから好きであることがやっぱり大事だと思う

631名無しさん@立夏:2017/08/31(木) 23:38:35 ID:???
まぁでも、何をしたいかによるよね
挙動イメージとか掴まないままに見たらどのシナでもきっと鼻血が出る

632名無しさん@立夏:2017/09/01(金) 00:18:13 ID:???
皆さん色々教えてくれてありがとうございます!
書いてもらえたこと全部試してみますね。

今日scriptの種類?とか色々あることを知ったんですけど、
ヴァーレン系のscriptフォルダ内にある.datのファイルって
javascriptで合ってますか?

633名無しさん@立夏:2017/09/01(金) 00:41:35 ID:???
>>632
スクリプトはjavaではなく独自の言語で書くけど
構造体のことかな?

634名無しさん@立夏:2017/09/03(日) 08:03:00 ID:???
そうです構造体です。
あれは独自の言語だったんですね!

続けて答えてくれて皆さんありがとうございました。

635名無しさん@立夏:2017/09/06(水) 16:31:24 ID:???
Visual StudioとC#使える人にしか使えない(デバッグモードで例外周辺の変数を覗いて問題のファイルの場所を特定する)ヴァーレンの構文チェッカー作っててそれなりーにはできたんだけど私以外に需要ある?

636名無しさん@立夏:2017/09/07(木) 10:53:35 ID:FbkupKD6
>>635
ありますあります

637名無しさん@立夏:2017/09/07(木) 22:24:52 ID:2nAU0q1o
Vの次はWだよね的なネーミングセンス

ヴァーレントゥーガ用構文チェッカー
Wahren ver0.0.0
ttps://ux.getuploader.com/vahren/download/4336

638名無しさん@立夏:2017/09/09(土) 18:43:13 ID:???
前にpushDeathの使い方wikiに載ってたような気がするんだけどなぁ
「なんか関数追加されたらしいけどよくわかんねーや」
→「銃魔ってシナリオが公開された、なるほどこう使うのか」
→「あれ、説明が消えてる」
みたいな感じだったと覚えてる
銃魔のために特注されたような関数だから時期としてはその前後だと思うんだけど
そのあたりを編集履歴やらアーカイブやらで探ってもさっぱりだ、あれは夢だったんだろうか

639名無しさん@立夏:2017/09/11(月) 19:54:05 ID:???
IFやWhileにも対応しました
実感としてかなりバグ取りが楽になりました
ttps://github.com/pCYSl5EDgo/Wahren

640名無しさん@立夏:2017/09/12(火) 10:42:54 ID:???
storememberofunit(test,@member)
storealltalent(@talent)
subv(@member,@talent)

上記のようにして人材以外の部隊メンバーに適用するイベントを作ろうとしたのですが人材が除かれませんでした
istalentでwhileループすれば除外できたのでこのイベント自体は問題ないのですが、storealltalentは他でも結構頻繁に使っているので使い方の認識を間違っているのだとしたら不安です
なぜ上の式では除外できなかったのでしょうか

641名無しさん@立夏:2017/09/12(火) 21:57:26 ID:???
>>639 すげえ

>>640
subvかも
以前使ったとき動作がおかしかったような。定かじゃないけど

642名無しさん@立夏:2017/09/13(水) 00:06:24 ID:???
>>640
subvとかaddvは変数に格納されている内容の、一番頭の内容しか見ていないからじゃないかな?
(@talentに「あ、い、う、え、お」と格納されているとしたら最初の「あ」しか見ていない)
だからwhileループで@talentの中に格納されている内容を、一つずつ取り出してやらないと意図した動作にならないハズ

643名無しさん@立夏:2017/09/13(水) 06:49:14 ID:???
>>641
>>642
まじかよ…やべえよやべえよ
複数要素の文字変数でのsubvaddv使いまくってました
今まで特に問題なかったけど大幅な修正が必要そうですね
ありがとうございました

644名無しさん@立夏:2017/09/13(水) 08:22:36 ID:???
まじか
俺のも直さにゃ

645名無しさん@立夏:2017/09/13(水) 08:23:15 ID:???
最終的な動作だけじゃなくて間にmsg&@変数&やら挟んで中身みながら特定してみてもいいと思う
他でうまく回っていたのならそこだけ実はoh! spell miss!してる可能性とか

646名無しさん@立夏:2017/09/17(日) 22:29:25 ID:???
>>588
スクリプトの暗号化はexeだから無いけど
画像の暗号化はPicEncoder.jarっていうやつを使うんだ
jarファイルってのは実はzipと同じフォーマットになっているから解凍をすると中からImageChg.javaっていうソースが出てくる

>>そもそも画像やスクリプトとかの暗号化の部分以外をオープンソースにして欲しい
とのことだが、実は画像の暗号化部分はオープンソースだったんだ
喜べ!

647名無しさん@立夏:2017/09/18(月) 00:10:37 ID:???
>>646
済まないが知ってた

648名無しさん@立夏:2017/09/23(土) 02:50:55 ID:DX35SrLo
艦隊コレクションの二次創作ヴァーレンでやってくれないかな〜(/ω・\)チラッ
昔、海戦再現した派生シナリオなかったっけ?

649名無しさん@立夏:2017/09/23(土) 07:53:26 ID:???
「何これ」のことだな
そこの作者のれどめも書いてるけど艦これは二次創作をゲームで発表するのは公式からNG
なんか、艦これキャラの絵を描いたトランプを出すだけでも動いてきた事がとかあったとかなかったとかあった気がする

650名無しさん@立夏:2017/09/23(土) 13:32:39 ID:???
>>648
ゲーム性があったらアウトなんじゃなかったっけ
フリーだとどうなんだろ

651名無しさん@立夏:2017/09/23(土) 14:15:55 ID:???
艦これのゲーム化権はDMMが独占してるから、艦これの窓口の角川側で勝手に許可が出せない
が、例の騒動もファンが勝手に騒いで勝手に自粛しただけだから、刺されない限りやるのは自由
だ、が、近年のヴァーレン界隈はクリーンに行こうとしているので、たぶん横槍入れられまくると思う

652名無しさん@立夏:2017/09/23(土) 15:08:07 ID:???
何これの艦載機スキルは正直面白いと思ってた
でも、マップが海だけだと代わり映えしないのが難だねぇ

653名無しさん@立夏:2017/09/24(日) 15:23:29 ID:???
極限まで簡素化した提督の決断4みたいだったなあれは

654名無しさん@秋分:2017/09/25(月) 01:36:05 ID:g7jjOoSU
一例とした以下のような文字変数の要素数を数えて、その範囲内で乱数値を得る処理を実行していたのですが、特定の条件下で0ばかりが出力される現象に遭遇しました。
どんな原因が考えられるでしょうか。

setv(@str,a)
addv(@str,b)
addv(@str,c)
addv(@str,d)
addv(@str,e)
...etc(変数の要素数は可変です)

pushRand2(int1) ←ここは毎回乱数が出力されます。
pushv(@str, int2) ←ここも正しく取得されます。
mod(int1, int2) ←おそらくここで問題が発生します。なんで?

msg(&int1&)

655名無しさん@秋分:2017/09/25(月) 16:56:35 ID:???
結構前のバージョンの時にpushRand2について検証したことがあるんだけど、確かpushRand2で出力される乱数って必ず8の倍数だったはず
当時と仕様がが変わってなければ、それが関係しているんじゃないかな

656名無しさん@秋分:2017/09/26(火) 00:55:14 ID:CWMzencM
>>655
剰余算で得た値にやたら偏りがあるのできになっていたんですがそういうことだったのですか。
ありがとう。

657名無しさん@秋分:2017/09/27(水) 09:45:31 ID:dXEgtM9.
たしか許可さえ取ればかんこれは販売も二次創作ゲームもオッケーだった気がする
ただ、ゲームの画像とかbgmをそのまま使用したらアウトなだけでまねて描いた絵とかまねて演奏したやつならたしかおk
spotを陸と海に分ければ南方作戦とかできそう陸に上がれば船は動けない、みたいにすれば…

658名無しさん@秋分:2017/09/27(水) 09:47:11 ID:dXEgtM9.
たしかGEWでなんか海軍と陸軍の移動の制限について語ってた気がしなくもない

659名無しさん@秋分:2017/09/27(水) 10:08:31 ID:???
スレチの雰囲気があったしあまり触れたくはなかったから静観してたけどよく調べもせず作って変な問題になって他のシナリオまで波及したらいやだから書いとくけど

「艦これ」の同人誌やイラスト・漫画・小説・コスプレ(全年齢)等の一般慣例的な【同人活動】については…公序良俗に反するもの・ゲームシステムのあるもの・ゲーム内の音源/画像を使ったもの・関係各社/者に迷惑を与えるもの以外は…【現時点】では基本【OK】と考えています

だからゲームシステムがある時点でトレースうんぬん以前にアウトだよ
フリーなら大丈夫?という意見もでてるけどボードゲームみたいなアナログなものはいいの?という質問に対して公式が

大変大変申し訳ありません、様々な見地/計画からそちらもご遠慮頂けますようお願い申しあげます。

といってるから自分が商品展開しようとしたときにすでに同人であってできないという状態を危惧してのことだろうからほぼアウトだと思うよ
どうしても作りたけりゃ大丈夫だろうから作るじゃなくて公式にしっかり説明して問題にならないようにちゃんと許可とってからやっておくれ

660名無しさん@秋分:2017/09/29(金) 00:33:26 ID:jAYmkXBI
まあ、トランプの時も運営に許可とったかとってないかでももめてたし許可はどちらにしろいりますよね…
すまそ

661名無しさん@秋分:2017/10/05(木) 12:12:31 ID:wUK8trSU
VTのドット素材作りたいなと思うんですけど、教材としておすすめの本とかありませんか?

662名無しさん@秋分:2017/10/05(木) 15:14:16 ID:???
>>661
私はアップローダーのとこにあるドット絵をいじって覚えましたよ〜
なので、教材としてアップローダーのドット絵がVTのドット素材として企画も同じですし一番かと

663名無しさん@秋分:2017/10/05(木) 15:56:50 ID:???
ドット絵の打ち方ぐらいならwebに挙がってるようなやつで十分だよ
というか模写が一番早い 普通の絵もそうだけど、本はある程度描けるようになってからでないと、まず意味がわからない

664名無しさん@秋分:2017/10/08(日) 09:04:22 ID:???
たぶん、ななあしさんも想定していない仕様な気がするのですが、
addtroop等で出現させたユニットについて、出現したユニットが敵サイドのユニットにかかわらず、
その出現した敵ユニットを直接左クリックをすると操作できてしまいます
beastやunctrlTroopをすれば避ける事は出来ますが、
当addtroopで出現させたいユニットはプレイヤー通常操作のユニットでもあるため、beastは出来るだけ避けたく、
そしてunctrlTroopをした場合は、その処理が入ったとたんに戦闘中のユニット操作指定が全部はずれてしまうため、操作性にやや難が出てしまいます

なにとぞ良い知恵のご教授、もしくは何かしらの対応の方よろしくお願いしたく思います

665名無しさん@秋分:2017/10/09(月) 10:14:23 ID:???
複数の配列から配列をゲットする方法ってありますか?


@A→内部A00,A01,A02・・・・・A99
@B→内部B00,B01,B02・・・・・B99





@Z→内部Z00,Z01,Z02・・・・・Z99

と言う感じで配列があったとして、例えば今C56を取得した場合、B56、C55、C57、D56を追加で取得したいと言う場合です

666名無しさん@秋分:2017/10/09(月) 12:00:00 ID:???
ないです

667名無しさん@秋分:2017/10/09(月) 12:08:51 ID:???
配列ってのは文字変数のことで合ってる?
合ってるならindexとwhileループでマッチングすれば複雑にはなるけどできると思う
例えばの後の追加取得の法則性がよくわからないから例が書けないけど…

668名無しさん@秋分:2017/10/09(月) 14:16:51 ID:BzZJDMr6
疑似的に二次元配列に展開されている要素から上下左右の要素を取り出すのならば、
変数を分割せずに要素を全部一つの文字変数配列に放り込んでおいたほうが簡単なのでは、
各列の要素数が100個あるのならインデックス値を+100or-100してやれば上と下の要素にアクセスできますよ。

669名無しさん@秋分:2017/10/09(月) 14:24:07 ID:???
ああ上下左右だったか
何にしても>>668のやり方がベストかな

670名無しさん@秋分:2017/10/10(火) 09:37:48 ID:???
>>668
そこの問題点がありまして、文字変数を一定数以上連結すると非常に重くなる欠点が・・・
以前似たことをしようとして、spot5000個連結したらまず連結時に非常に重くなった問題ががが

671名無しさん@秋分:2017/10/10(火) 09:51:19 ID:???
それだけあるとどんな処理しても正直重そうな
いっそ開き直って「処理中ですからちょっと待ってね」なmsgだすとか
重さ的に許容できる範囲内で実現可能な二案、三案を用意した方がいい気もするとか

672名無しさん@秋分:2017/10/10(火) 10:23:44 ID:???
>>671
500づつに分割してどこがhasしてるか確認して10の配列をelseifで探していけば問題なくいけました

問題はこの配列が10個で済むパターンならいいのですが、最終的なシナリオで数万クラスを想定しているので、それで回数かけてwhileするのは現実的じゃないので何らかの方法を考えていました

673名無しさん@秋分:2017/10/10(火) 18:27:49 ID:CTiGm3/w
以下のスクリプトで事前計算によりループの回転を100回未満に抑制できるはずです。

//変数@allに全要素を格納 A-Zの各列の要素は100個あるものとする
setv(@all,A00)



addv(@all,Z99)

//事前計算用変数
setv(@a,A00)・・・addv(@a,A99)
setv(@b,B00)・・・addv(@b,B99)



setv(@c,C00)・・・addv(@c,C99)

//インデックス値の推測
if( 1 == has(@a, @str) )
{
set(idx, 0)
}
else if( 1 == has(@b, @str) )
{
set(idx, 100)
}
else if( 1 == has(@c, @str) )
{
set(idx, 200)
}



else if( 1 == has(@z, @str) )
{
set(idx, 2500)
}

set(idx2, idx)

//変数@strの上下左右の要素を変数@getに格納する
clear(@get)
while( idx < idx2 + 99 )
{
index(@all, idx, @tmp)
if( 1 == equal(@tmp, @str) )
{
//両隣の要素を取得
set(tmpidx, idx)
sub(tmpidx, 1)
if( 0 <= tmpidx && tmpidx <= idx2 + 99)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 1)
if( 0 <= tmpidx && tmpidx <= idx2 + 99)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}

//上下の要素を取得
set(tmpidx, idx)
sub(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}

break()
}

add(idx, 1)
}

674名無しさん@秋分:2017/10/10(火) 18:33:13 ID:CTiGm3/w
誤りがあったので訂正です。
以下のスクリプトで事前計算によりループの回転を100回未満に抑制できるはずです。




//変数@allに全要素を格納 A-Zの各列の要素は100個あるものとする
setv(@all,A00)



addv(@all,Z99)

//事前計算用変数
setv(@a,A00)・・・addv(@a,A99)
setv(@b,B00)・・・addv(@b,B99)



setv(@c,C00)・・・addv(@c,C99)

//インデックス値の推測
if( 1 == has(@a, @str) )
{
set(idx, 0)
}
else if( 1 == has(@b, @str) )
{
set(idx, 100)
}
else if( 1 == has(@c, @str) )
{
set(idx, 200)
}



else if( 1 == has(@z, @str) )
{
set(idx, 2500)
}

set(idx2, idx)

//変数@strの上下左右の要素を変数@getに格納する
clear(@get)
while( idx < idx2 + 100 )
{
index(@all, idx, @tmp)
if( 1 == equal(@tmp, @str) )
{
//両隣の要素を取得
set(tmpidx, idx)
sub(tmpidx, 1)
if( idx2 <= tmpidx && tmpidx < idx2 + 100)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 1)
if( idx2 <= tmpidx && tmpidx < idx2 + 100)
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}

//上下の要素を取得
set(tmpidx, idx)
sub(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}
set(tmpidx, idx)
add(tmpidx, 100)
if( 0 <= tmpidx && tmpidx < count(@all))
{
index(@all, tmpidx, @tmp2)
addv(@get, @tmp2)
}

break()
}

add(idx, 1)
}

675名無しさん@秋分:2017/10/10(火) 19:00:06 ID:???
>>674
ありがとう
でも最初の2600の配列あるだけで相当重くなりません?

なんか他の原因あるのかな・・・

676名無しさん@秋分:2017/10/10(火) 19:48:21 ID:CTiGm3/w
>でも最初の2600の配列あるだけで相当重くなりません?
ゲーム再開直後に文字変数配列を作成して保存しておけば毎回配列要素の作成をしなくてもいいですよ。

677名無しさん@秋分:2017/10/10(火) 20:39:25 ID:???
>>676
でなくて、その文字変数の配列があるってだけでやたら重いのは何か問題あるのかな・・・と

678名無しさん@寒露:十月十日は萌えの日:2017/10/10(火) 21:54:18 ID:CTiGm3/w
>>677
メモリーの使用量が増えると重くなるのは仕様なのでは、空いているアドレスを検索する処理がリソースを消費しているんじゃないですかね。
メモリーは最大で1.5GB程度まで使えることは確認していますけど、1GBを超えるくらいになると重すぎて実用レベルとはいえませんね。
使っていない、使い終わった文字列変数はclear関数で開放してやってメモリー使用を節約するくらいしかないと思いますよ。

679名無しさん@寒露:十月十日は萌えの日:2017/10/11(水) 14:44:58 ID:???
>>678
なるほど
1つだけの配列だと重くて、複数に分割すると軽いのはそこらへんも関係あるのかなきっと・・・

680名無しさん@寒露:2017/10/15(日) 17:46:24 ID:kTG8KCI.
setPowerHomeで勢力のHome設定を操作しているんですけど、COM勢力のspotの戦力配置に重みをつける方法はありますか。

681名無しさん@寒露:2017/10/16(月) 08:56:13 ID:DwLnCock
質問です。
皆様シナリオのMapを作る時どのようなツールを使用していらっしゃるのでしょうか?

個人的にはむなしい努力の地図の雰囲気がとても好きです。
本家VTも雰囲気好き

私も同じような地図作りたいんでツール教えてください。

682名無しさん@寒露:2017/10/16(月) 09:43:08 ID:???
本家付属ツール使いんさい

683名無しさん@寒露:2017/10/16(月) 12:48:34 ID:???
ワールドマップの事じゃないの?
もしそうなら俺はsaiで描いてるな

684名無しさん@寒露:2017/10/16(月) 16:41:18 ID:???
choiceについてですが、選択肢の数が流動的な場合、想定される選択肢の数を全部書くしか方法はないですか?


誰を仲間から外しますか?の場合
その時点で仲間である物が1〜20人すべての可能性を想定する場合、選択肢1はselectで表現するにしても、choiceで表現する場合引数2〜20個の全てのパターンが必要でしょうか?

685名無しさん@寒露:2017/10/16(月) 16:46:36 ID:???
空欄や名前をクリックしたら元にもどる等の挙動で妥協する予定はありませんので、選択肢の数を決める方向性でお願いします〜

686名無しさん@寒露:2017/10/16(月) 18:04:55 ID:???
妥協せずに一つずつ全部書くしかないと思う

687名無しさん@寒露:2017/10/16(月) 20:31:19 ID:???
ランシナの配下選択みたいに4、5程度の選択肢の複数ページに分ければパターン少なめで済むかも

688名無しさん@寒露:2017/10/16(月) 20:45:53 ID:SKENrydA
>>684
Great Europe Warの「部隊長一覧.dat」が割合そのまま使えそうな感じかな
文字数制限に引っかかったから自分で見てくれ

689名無しさん@寒露:2017/10/16(月) 21:37:49 ID:???
Boiにも似たようなキャラ選択があったな
あっちはキャラ数が多すぎて、小分けが顔あり、顔なし、ゲストの3枠だけでは手間が全く軽減されてない有様だけど…

690名無しさん@寒露:2017/10/17(火) 10:01:55 ID:???
「最後尾のキャラをチームから外します。よろしいですか?」

691名無しさん@寒露:2017/10/17(火) 14:24:02 ID:???
>>687>>689
それは初期の人数が決まってる場合にのみ有効なような・・・


>>690
最後尾が隠れてる状態になると外せるようにしたいので無意味ですね


>>688
調べてみます

692名無しさん@寒露:2017/10/17(火) 14:36:18 ID:???
>>691
場合分けと剰余演算でイケるイケる

693名無しさん@寒露:2017/10/17(火) 18:30:23 ID:???
>>691
おまえ毎回条件後出しにして揚げ足取ってないか?
他人にアイディア求めるならもう少しちゃんと説明しろよ




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