したらば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/

516名無しさん@立夏:2017/06/17(土) 20:06:37 ID:???
image.datの加工が必要になるのだが、昔ななあしさんがImageExtractorいうの作ってたけど問題が生じたとかで削除された経緯があったようでね
実際何がどう問題だったのか、今回のこともOKなのかどうか法律家でもない私にはわからないのだ

517名無しさん@立夏:2017/06/17(土) 21:41:10 ID:???
素材には素材の著作権があるからな

518名無しさん@立夏:2017/06/18(日) 17:38:27 ID:???
なんか他人のスクリプト見て勉強してると、else ifを使ってないことが多いのな
専用の変数用意してsetして次のif文飛ばしとかしてるんだが、そっちの方がelse ifより早いのかね?

519名無しさん@立夏:2017/06/18(日) 18:06:58 ID:???
本当に専用か確認した?
他でも使ってない?
else ifは確認そのものをすっ飛ばすんだからそんなに遅いはずないと思うけど

520名無しさん@立夏:2017/06/18(日) 19:01:03 ID:???
戦闘時イベントにelseが一切使えないのは理解してる
一応Visual Studio Code使っててフォルダ内全検索機能使って確認してるよ
銃魔のスクリプトだけど難読化目的なのかね?

521名無しさん@立夏:2017/06/18(日) 21:23:19 ID:???
銃魔見たことないけど俺も else if あんまり好きじゃないわ
if( 条件 ) { 処理 return } でさっさと引き返すほうが好き
他にevent(文字列変数)って手もあるよね。こっちはちょっと恐いけど

522名無しさん@立夏:2017/06/18(日) 21:39:49 ID:???
else if 使ったほうが後から見た時にひとまとまりの処理と認識しやすい

523名無しさん@立夏:2017/06/18(日) 23:27:18 ID:???
インデントがお粗末なスクリプトが多すぎて困ることが多い

524名無しさん@立夏:2017/06/19(月) 08:12:37 ID:???
そもそもそこは人の勝手だから
別に仕事で多人数で開発するわけでもないんだから他人が口を挟むところではないだろう
もちろん可読性が高いほうがバグ探しで有利だけどさ

525名無しさん@立夏:2017/06/23(金) 15:39:17 ID:???
else if使わないと何度もif通って重くなる場合がなぁ
それぞれ全く違う処理する場合(たとえば人材全パターン全く違うtalkを必要とする場合)で、人材のパターンがとてつもなく多いとelse ifで繋げなきゃいけないパターンもあるし・・・

ABCグループ化してAの中なら・・・Bの中ならで分割すれば軽くなるとはいえ、それだってパターンによってはさらにelse使わなきゃいけない場合もあるし、結局ifだelse ifだといっても何に使うかじゃないんでしょうか
そもそもif(){}if(){}とif(){}else if(){}では結果的に同じ動きするとしてもそれの持つ意味は厳密に言えば違うんだから

526名無しさん@立夏:2017/06/23(金) 15:49:16 ID:???
switch文が欲しかったです
else ifは使って当然という立場

527名無しさん@立夏:2017/06/23(金) 21:09:31 ID:???
switchはほしかったね

>>525
returnできるなら分岐内でreturnすれば、elseで繋ぐより速い・・・はず

if ( 1 ) { 処理1 } else if ( 2 ) { 処理2 } else { 処理3 } return

if ( 1 ) { 処理1 return }
if ( 2 ) { 処理2 return }
処理3 return

条件1・2がヒットする場合、後者のほうが1コマンド分速い・・・はず
ま、プレイヤーが体感できるような差ではないので、どうでもいい話ではありますね。
ワールドイベント(シナリオ指定イベント内)でreturnするとストーリー走らなかったりするし。

> 人材ごとにtalk
こんな分岐方法も使えるみたい。自己責任でどーぞ

event talk_人材1 {
talk(人材1だ)
}
event talk_人材2 {
talk(人材2です)
}

event プレイヤー人材を取得してイベント呼び出し {
setv( event_name, talk_ )
storePlayerUnit( str )
addstr( event_name, str )
// 存在しないイベントを誤って呼んでもエラーは出ない
routine( event_name )
}

528名無しさん@立夏:2017/06/29(木) 23:22:57 ID:???
ヴァーレンというより数学の質問なんだけどいいですか
勢力の経済値に連動して価値が上下する証券というか債権というかを作ってるんですけど、現在値段が経済値に比例するようになってる
でもこれだとゲーム序盤とか小規模勢力とかはすぐ証券価値が2倍3倍に上がっちゃうから、もっと緩やかな変化になるようにしたい
そこで√使おうと思ったんだけどヴァーレンの関数になかったから困ってる
ヴァーレンで可能な数値計算でどうにかできる方法はありますか?
教えて理系の人

529名無しさん@立夏:2017/06/30(金) 09:29:12 ID:???
一番簡単な方法言うぞ
勢力値をnumとして
if(num < 100){
 set(loop, 0)
 set(tmp, 1)
 set(loop2, 0)
 set(tmp2, 1)
}
else if(num < 2500){
 set(loop, 10)
 set(tmp, 11)
 set(loop2, 100)
 set(tmp2, 121)
}
else if(num < 10000){
 set(loop, 50)
 set(tmp, 51)
 set(loop2, 2500)
 set(tmp2, 2601)
}
else if(num < 22500){
 set(loop, 100)
 set(tmp, 101)
 set(loop2, 10000)
 set(tmp2, 10201)
}
else if(num < 40000){
 set(loop, 150)
 set(tmp, 151)
 set(loop2, 22500)
 set(tmp2, 22801)
}
else if(num < 62500){
 set(loop, 200)
 set(tmp, 201)
 set(loop2, 40000)
 set(tmp2, 40401)
}
else{
 set(loop, 250)
 set(tmp, 251)
 set(loop2, 62500)
 set(tmp2, 63001)
}
while(true){
 if(loop2 <= num && num < tmp2){
  break()
 }
 add(loop, 1)
 set(loop2, tmp2)
 add(tmp, 1)
 mul(tmp, tmp)
 set(tmp2, tmp)
 set(tmp, loop)
 add(tmp, 1)
}

530名無しさん@立夏:2017/06/30(金) 09:30:54 ID:???
このスクリプトはインデントのために全角空白使ってるからそのまま使うなよ

前半部分は高速化のための呪文部分
本質は後半のwhile(1==1)
癖でwhile(true)って書いてしまった

531名無しさん@立夏:2017/06/30(金) 09:32:01 ID:???
これで勢力値を二分の一乗した値がloopに代入されるぞ

532名無しさん@立夏:2017/06/30(金) 09:37:15 ID:???
ニュートン法使った方が早いだろうから自分で考えてくれ

533名無しさん@立夏:2017/07/02(日) 07:30:29 ID:SuIz0SiY
SpotMakeHelper作者様へ
要望なのですが、ドラッグでスポットを自由に移動できるようにしていただけませんでしょうか
今のままですと微妙な位置調整ができず不便さを感じますのでご一考くださると幸いです

534名無しさん@立夏:2017/07/03(月) 02:57:48 ID:???
平方根はこれでイケるはず:

event calculate_sqrt
{
if(n<=0){
set(n,0)
return()
}
set(vp,1)
set(vq,n)
while(vp<vq){
mul(vp,2)
div(vq,2)
}
set(vq,vp)
set(vp,n)
div(vp,vq)
add(vp,vq)
div(vp,2)
while(vp<vq){
set(vq,vp)
set(vp,n)
div(vp,vq)
add(vp,vq)
div(vp,2)
}
set(n,vp)
}

535名無しさん@立夏:2017/07/05(水) 19:35:18 ID:???
回答書いてもらって感想の一つも言わんとは失礼なやっちゃ

536名無しさん@立夏:2017/07/06(木) 16:40:39 ID:???
初歩的かつ、恐らくもはや答えが出てる質問だと思うのですが、
調べても上手く見つけることが出来なかったので質問させて頂きます。

ヴァーレントゥーガ本体に入っている素材はヴァーレントゥーガを改造した
オリジナルのゲームでもヴァーレントゥーガと同じ条件で使用可能なのでしょうか?

ジャンキージャンク様等、素材の出所が分かる素材はそこに従えるのですが、
アイコンなどはどこから出てきてるのかも良く分からず困っています

537名無しさん@立夏:2017/07/06(木) 22:31:24 ID:???
公開するつもりなら流用はVT自体のMODとかでもない限りは止めた方が無難
アイコンは小物入れになかったっけかな

538名無しさん@立夏:2017/07/06(木) 23:01:55 ID:???
>>538
ありがとうございます。
「VTの拡張シナリオ」という体ならば、「俺はスクリプト書いてるだけなのでセーフ」になるんですね。
やはりオリジナルゲームとして公開するならばその辺りは一つ一つ確認する必要がありそうですね。
小物入れ探してみます。
重ね重ねお礼申し上げます。

539名無しさん@立夏:2017/07/07(金) 10:53:01 ID:???
正直√なんて無理だろうから他に良い方法ないですか?的なニュアンスで聞いたんですが普通に√出せるんですね 理系ってすごい
ありがとうございました
実際使うかは分かりませんが内政はそのうち公開するかもしれません(ngt用だけど)

>>535
PC書き込み規制+スマホ紛失コンボから今日復活したんだ
すまんな
独り暮らしでぼっち学生だから誰もスマホ鳴らしてくれないんじゃ

540名無しさん@立夏:2017/07/07(金) 15:45:43 ID:???
そんならしょうがあるめえ

541名無しさん@立夏:2017/07/08(土) 22:53:25 ID:???
>>533
作者です。
SpotMakeHelperをお使い頂きありがとうございます。
ドラッグ機能の追加検討したいと思います。

微妙な位置調整ですが、右側にあるNumericUpDownコントロールで値の増減が可能となってます。
そちらにフォーカスを合わせてキーボードのアローキーの上下または、マウスで▲▼ボタンをクリックすることで数値が1づつ変わります。
そちらもお試しください。

542名無しさん@立夏:2017/07/09(日) 00:10:51 ID:A1.p9DLk
>>541
ありがとうございます!

543名無しさん@立夏:2017/07/11(火) 12:50:13 ID:???
初歩的な質問で申し訳ないんですが
人材追加をしようとした所エラーが出て困っています
ステータスだけのものならエラーが無しで起動するのですが、スキルを書き加えるとエラーが出ます
既存のスキルを名前と説明文だけ変更したものなのでスキル本体に問題はないと思うのですが…

エラー内容は
1:データ文で=を書き忘れています
2:データ文が不正です または関数が不正です
よろしければアドバイスお願いします

544名無しさん@立夏:2017/07/11(火) 16:11:39 ID:???
多分使っちゃいけねえ文字使ってんじゃねえかな
とりま書き換えた部分全てを調べて半角文字があったら全角にしてみ

545名無しさん@立夏:2017/07/11(火) 20:37:23 ID:???
>>543
>「スキルを書き加えるとエラーがでる」、エラー内容が「1:データ文で=を書き忘れています」
以上の事から、スキルの書き加えた構文が間違っていると推測できます
たぶん書き加えたスキルの前に「,(カンマ)」が抜けているのじゃないかな?

546名無しさん@立夏:2017/07/14(金) 20:58:33 ID:???
>>544>>545
アドバイスありがとうございます
ちょっと忙しくて時間取れないので試せてませんが教えてもらった通りやってみます
返信ありがとうございました

547名無しさん@立夏:2017/07/20(木) 23:55:07 ID:jc6SN27k
SpotMakeHelper更新しました

http://ux.getuploader.com/vahren/download/4319/SpotMakeHelper+Ver1.2.zip

548名無しさん@立夏:2017/07/21(金) 04:18:13 ID:UMWAh7aM
>>547
ありがとうございます!

549名無しさん@立夏:2017/07/23(日) 17:41:26 ID:???
ヴァーレン本体が落ちる目安ってPC機体毎に違うのでしょうか?
そもそも処理が重かったり多すぎると何故落ちるのでしょうか

550名無しさん@立夏:2017/07/23(日) 23:16:05 ID:???
重くなくても落ちるときは落ちるよね

551名無しさん@立夏:2017/07/24(月) 13:11:43 ID:???
そこらへんの基準がわかればありがたいのですがね

552名無しさん@立夏:2017/07/25(火) 06:46:00 ID:???
最新版はわからないけどaddtroopあたりは直近くらいまではダイアログでないまま落ちることがあったかな

553名無しさん@立夏:2017/07/25(火) 18:43:17 ID:???
time長めのスキルは要注意
人材専用スキルならまだしも、一般ユニットも扱えるスキルだと大体重くなる
これがでrushまであった日にはもう大変

554名無しさん@立夏:2017/07/25(火) 19:12:53 ID:???
おお、ありがとうございます
rushが大きいので、それも一因でしたか

555名無しさん@立夏:2017/07/25(火) 22:39:58 ID:???
呼ぶと100%無言落ちする関数あるよなしかも複数
ゼロから自作するなら関数のテストから始めたほうがいいですよ

556名無しさん@立夏:2017/07/28(金) 02:49:18 ID:???
領土を広げたAI勢力のマスターが孤立してアボン滅亡するのがちょっと嫌で、
マスター孤立アボンした勢力を復活させようとしているのですがうまくいきません。

if (isAlive(勢力A) == 0) {
    event(勢力復活)
}

event 勢力復活
{
    storePowerOfSpot(本拠spot, @文字変数)
    if (@文字変数 == @ ) {
        addPower(勢力A)
    }else {
        event(滅亡処理)
    }
}

勢力Aが滅亡した時、本拠spot(power構造体のmemberに記述)が空白地なら、addPowerで勢力Aを復活せようとしています。
しかし、addPower(勢力A)の後も勢力Aは復活しておらず、isAlive(勢力A)では0が返ります。
本拠spotも空白地のままです。

wikiのaddPowerの説明には『指定した勢力を出現させます。power構造体のmemberに列挙されてるspotが領地となりますがry』
と記述してあるのですが、一度滅亡したpower構造体の再利用は不可能なのでしょうか?

マスターは死亡していません。

557名無しさん@立夏:2017/07/28(金) 06:26:06 ID:???
同名の別勢力をつくらないとダメだったと思う

558名無しさん@立夏:2017/07/28(金) 18:45:30 ID:KigvTGxQ
>>556
滅亡時に滅亡するのではなく、アボンのエフェクトと滅亡ダイアログと同時に事前に決めたハイドスポットに逃がすってのはどうですか

復活自体は不可能です

559名無しさん@立夏:2017/07/28(金) 19:40:59 ID:???
>>557
>>558
ありがとうございます。
やっぱりPower構造体の再利用は不可能なんですね。
アボンのエフェクトと滅亡ダイアログはEXEが制御してるんでしょうか?ちょっと見つかりませんでした。
ちなみにVTではなく、LostTechnologyをベースに色々といじっています。

苦肉の策ですが、
storeSpotOfUnitでリーダーのいるspotを抽出し、isJoinで本拠地spotから途切れていたら、
リーダーを強制的に本拠地に飛ばす処理で滅亡を回避してみたいと思います。

かなり強引ですが・・・。

560名無しさん@立夏:2017/07/28(金) 20:51:57 ID:???
復活が駄目ならそもそも滅ぼされなければいいじゃない
やったことないが、戦闘開始前にchangeMasterでマスターを他の領地にいる人材に変更すればどうだろう

ただ戦闘中にマスター(元)のステータス確認されるとまずいが

561名無しさん@立夏:2017/07/28(金) 21:06:42 ID:???
>>559
エフェクトはskill spot_fireだったかな(?)でエフェクトそのものを処理してたはず
で、spotmarkの何番かでそれを指定の領地で発動させられます
ちなみにカチーンも可能


ということで、個人的な復帰というか擬似滅亡方法
イベントで滅亡する場合は勝手に国ごと逃せばおkで簡単なので割愛
条件は以下
1:滅亡条件が攻撃された場合
2:a:最後の1領地が取られる場合
  b:隣接する領地がなく、その領地を取られた場合
  c:隣接する領地がなく、Escape先がない場合
3:復活する想定がCPUである

2の条件を探すため事前に
a・領地数を数えて1の場合
b・storeSpotOfPower全領地を取って、whileで現在戦闘spotと隣接したspotが存在するかを調査
c・こればっかはもう事前に条件個別に作るしかない

このabcのいずれかが該当した時点で下のスクリプトへ



例として自シナのスクリプトを出しますがご容赦を
まずは戦闘開始時にイベント
//中立も条件にもしくは攻撃側で判定
☆呂蝉、高順、張遼、臧覇は自操作可能な味方で、こちら側が攻めた場合に敵にkahi_escp_spot という擬似撤退用スポットを領地に与え、spotつないで逃げ場を作ります☆
if(@atkpow == pkahi_ryosen|| @atkpow == pkahi_koujun || @atkpow == pkahi_choryo||@atkpow == pkahi_zouha&& zouha_ryuso != 1){
if(@defpow!=pkahi_moutoku){
addSpot( kahi_escp_spot , @defpow )
showSpot(kahi_escp_spot)
linkSpot(@batspot,kahi_escp_spot,0)
}
}

以下は戦闘イベントでなくワールドイベントで制御
storePowerOfSpot( kahi_escp_spot , @escp_now)
☆例として夏侯惇というユニットを使います☆
if(@escp_now != 0){
if(@escp_now==pkahi_kakouton){
if(count(@kakouton_spot)>=2 && has(@kakouton_spot,kahi_escp_spot)){
//守りきった場合、2つの領地を持ってる
     //とはいえ、このシナリオでは確実に1領地しか持てない縛りがあるため、通常のシナリオでは戦場になったspotを持っているかを条件にするのがいいかと
subv(@kakouton_spot, kahi_escp_spot)
storeLeaderOfSpot( kahi_escp_spot , @kakouton_escp_unit_now)
addUnit(@kakouton_escp_unit_now,@kakouton_spot)
//連結した逃げ場を削除
hideSpot(kahi_escp_spot)
removespot(kahi_escp_spot)

}else if(count(@kakouton_spot)==1){
//負けた場合、領地が逃げ場の1つになる
     //とはいえ、このシナリオでは確実に1領地しか持てない縛りがあるため、通常のシナリオでは戦場になったspotを持っているかを条件にするのがいいかと
storeLeaderOfSpot( kahi_escp_spot , @kakouton_escp_unit_now)
addSpot(kahi_kakouton_saihen_spot,pkahi_kakouton)
addUnit(@kakouton_escp_unit_now,kahi_kakouton_saihen_spot)
hideSpot(kahi_escp_spot)
//再編成用スポットkahi_kakouton_saihen_spotに逃がす
     //理由としては、今後同じspotを使う場合があるため、ここに残しておくと夏侯惇以外の勢力が逃げたときに困る
removespot(kahi_escp_spot)
add(kahi_gekiha_point,5)
}
}
}

あくまでもそういう方法もあるってのと、結構細かいところ省いているのと、もっといい方法あるかもって想定の上で参考にして頂ければ幸いです
spotmarkとかは下の負けたパターンの場合の最後にダイアログと共に出せば問題なく表示可能かと

562名無しさん@立夏:2017/07/28(金) 21:25:35 ID:???
質問者ではありませんが、大変参考になりました
ありがとうございます!

563名無しさん@立夏:2017/07/29(土) 22:54:42 ID:???
>>561
遅くなりましたがありがとうございます。

とりあえず、
storeSpotOfUnit(マスター名, 現在地spot)

if (isJoin(本拠地spot, 現在地spot) == 0) {
storePowerOfUnit(マスター名, 所属勢力)
storePowerOfSpot(本拠地spot, 本拠地支配勢力)
if (所属勢力 == 本拠地支配勢力) {
addUnit(マスター, 本拠地spot)
dialog(マスター名,マスター名が本拠地spotへ脱出しました。)
}
}

安易で強引ですが、これとchangePowerFixを使って孤立アボンの可能性を抑えたいと思います。

もう1つ質問なのですが、stealth = 100って機能してるでしょうか?
攻城戦で、城壁内の櫓などの防衛兵器を遠距離職が攻撃して無駄死にするのを避けたくて、
防衛兵器のclass構造体にstealth = 100を追加したのですが、近接ユニットが殴りかかりました。

564名無しさん@立夏:2017/07/29(土) 23:04:34 ID:???
stealthは遠隔は無視するけど近接は殴る筈

565名無しさん@立夏:2017/07/29(土) 23:26:30 ID:???
>>564
納得しました。ありがとうございます!

566名無しさん@立夏:2017/08/03(木) 17:31:35 ID:???
addstringって素晴らしいよね
文字列変数に対するaddintegerもあれば本当に良かったのに

他にも数値変数の配列とか欲しかったです

567名無しさん@立夏:2017/08/03(木) 17:51:35 ID:???
配列使わなきゃい困るような複雑な処理は書かないけど変数名付けるのがめんどいから配列欲しい
変数が増えるに連れてザ・ド素人みたいな長い変数名になっていく
実際ド素人だけども

568名無しさん@立夏:2017/08/03(木) 18:26:36 ID:???
長い変数名はしょうがない というかそれでいい
へたに短縮するとそっちのほうが駄目でしょう

569名無しさん@立夏:2017/08/04(金) 23:01:47 ID:???
Wikiの制作講座と最新版のDLと更新詳細にも書いていないような関数とかどこで知るの?
pushDeathとかここで初めて知ったんだけど

570名無しさん@立夏:2017/08/04(金) 23:39:27 ID:???
>>567
長い名前のがテキストエディタで置換しやすい場合もあるから問題ないんじゃ?
というか配列は存在してるし、どの程度を複雑というかはともかく複雑じゃなくても別に配列は使えると思うけど、どういう配列を考えてるんだろ
Listみたいな?

571名無しさん@立夏:2017/08/05(土) 17:56:18 ID:???
マップそのものをシナリオ中に変更することってできますか?
マップの画像ではなく、マップ全体の大きさを変えたいです

572名無しさん@立夏:2017/08/05(土) 18:59:28 ID:???
ワールドマップ?
それとも戦闘マップ?

573名無しさん@立夏:2017/08/05(土) 20:28:05 ID:???
>>572
ワールドマップ
マップの一部を加えるといった形ではなく、全く違う大きさで違う場所のマップに切り替える感じ
bgを使って裏の画像だけ変えることはできるものの、横幅縦幅のスクロールはどう頑張っても変えられない

本体そのものを切ってスクリプトでmapを変更すればできるんだけど、プレイヤーにそれを求めるわけにはいかないし、内政1発でマップ切り替えみたいなのを想定してます

574名無しさん@立夏:2017/08/05(土) 20:37:33 ID:???
逆に考えるんだ
最初のマップより大きいのを使えないと考えるんじゃない
使うはずの一番大きなマップに合わせて最初のマップを用意するんだ
無駄なスクロール領域ぐらいなら大丈夫だろう

575名無しさん@立夏:2017/08/05(土) 20:51:34 ID:???
それはつまり地上戦と空中戦に分けて二つのワールドマップで進めていくみたいな感じ?

576名無しさん@立夏:2017/08/05(土) 20:55:00 ID:???
>>574
無駄なスクロール領域が極端に大きくなるんで勘弁してください

>>575
2つではないですが大凡そんな感じです
1つが極端に大きいマップでそれと別に極端に小さなマップを使用するため、非常に難儀しています

577名無しさん@立夏:2017/08/05(土) 21:02:26 ID:???
そこは内政ユニットを使ってセンタリングさせれば2,3クリックぐらいで済むしね?

578名無しさん@立夏:2017/08/05(土) 21:15:30 ID:???
640*480を2枚(AとB)用意するのじゃなくて、1280*480(A+B)でmap作って、
A側相当/B側相当を部分表示しておいて、hideSpot/showSpotで切り替えて使うとか?
debugPaperで640*480表示に設定してあれば必要な部分だけ表示は出来る…かも?(フルスクリーンの時にどうなるかは知らないケド)

579名無しさん@立夏:2017/08/05(土) 21:46:35 ID:???
>>578
まあ2枚ならちょっと違和感はありますがそれも可能かな・・・とは
とはいえその方式でするなら1枚+49枚なのでちょっと現実的じゃないかも
1枚をA、49枚をB00からB48として、AとBを行ったり来たりする感じですね

なお、フルスクリーンでbgやるとbgの方は左上に集約されます
map=だと一応ちゃんと表示はされるかなってぐらい
一応それは想定していなくはないのですが、あくまでもやりたいのは1枚と49枚の行ったり来たりって感じですねー
あと、やり方間違ってたらごめんですけどスクロールできちゃわないですか?それは

580名無しさん@立夏:2017/08/05(土) 21:47:28 ID:???
>>577
センタリングの意味がちょっとわかりません
ごめんなさい

581名無しさん@立夏:2017/08/05(土) 22:21:20 ID:???
>>580
言葉足らずですまぬ

サイズ小マップ(100*100)
に対して
サイズ大マップ(9000*9000)
としたら元々サイズ大のスクロール移動は呆れるほど面倒くさいはず
だったら内政欄(国策とか社会契約とか禁呪とかのある欄)に『移動』という項目を設けてみてはどうか?
移動内政スポットに置いておいた内政人材でサイズ小マップの中央あたりに存在する領地にスクロールしてセンタリングしたり、サイズ大マップの端の方に移動したり出来るようにすればいいのでは?

582名無しさん@立夏:2017/08/05(土) 22:24:00 ID:???
まあ、だだっ広い無駄領域がサイズ小マップに広がる事はこの案では避けられないが

583名無しさん@立夏:2017/08/06(日) 02:40:49 ID:???
>>571
シナリオ中に変更するのは無理
ゲーム中にsetUD(@scenario, @hogehoge)でシナリオ変更するのがいいと思う

584名無しさん@立夏:2017/08/06(日) 21:03:54 ID:???
>>583
シナリオ中にシナリオ変更できるのですか・・・?
いやもちろんシナリオ構造体からシナリオ構造体に移動できるのなら願ってもないのですが

585名無しさん@立夏:2017/08/07(月) 19:48:30 ID:???
NPCの新勢力旗揚げと陪臣雇用の両方をOFFする機能はありますが、
陪臣雇用だけをOFFするやり方ってありますか?

全人材に"loyal=自分"を指定するわけにもいかず、
compati_vassal_bdrを100以上にしてみましたが、100以上は認識していない感じでした。

586名無しさん@立夏:2017/08/08(火) 00:32:17 ID:???
開始時に

pushv(@freezepower,aaa)
msg(&aaa&)
set(idx,0)
while(idx<count(@freezepower)){
index(@freezepower,idx,@freezepower_get)
changePowerFix( @freezepower_get , freeze)
add(idx,1)
}

このような処理をしています
freezeに入っているのはプレイヤー勢力を除いた全勢力30勢力弱(aaaに入った数値)なのですが、プレイヤー勢力に終了を押した後再度プレイヤー勢力にターンが回ってくるまでに5秒ほどのタイムラグがあります
これはfreezeをせずともあるタイムラグと変わりません
どういった原因が考えられますか?

587名無しさん@立夏:2017/08/13(日) 20:50:28 ID:???
コンテキスト構造体で効果が分からない項目の仕様公開して欲しい
そこさえ改造できりゃ洋ゲー並みに戦えそうなのにもったいなすぎる

588名無しさん@立夏:2017/08/14(月) 00:28:29 ID:???
そもそも画像やスクリプトとかの暗号化の部分以外をオープンソースにして欲しい

589名無しさん@立夏:2017/08/14(月) 01:54:43 ID:???
まじかよ 更新されてら
でもバージョンは据え置きか

590名無しさん@立夏:2017/08/14(月) 09:29:40 ID:CPE73pgc
なんか素材に使えそうなのができたようなので共有
http://make.girls.moe/#/

591名無しさん@立夏:2017/08/14(月) 09:38:25 ID:???
いいね!
だけど作成した画像の使用規約が見当たらないけど、知ってる?

592名無しさん@立夏:2017/08/15(火) 13:39:08 ID:???
すみません
class構造体やunit構造体でmerceを設定できるのはしっているのですが、
シナリオの途中で人材のmerceに新たに追加したいのですが、どのようにすればよいのでしょうか

593名無しさん@立夏:2017/08/15(火) 16:57:37 ID:???
addMerceって機能しないんだっけ
新しいmerce設定した新クラス設定しといてそっちに強制クラスチェンジとかでも一応出来るよ

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は前スレでちょっとだけ出てたね
興味があったら試してみたらいいんじゃない?




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