レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。
改造・制作スレ part8
-
改造・オリシナ制作などはこちらで。
過去に似たような質問があるかもしれないので、極力調べてから質問しましょう。
ヴァーレントゥーガまとめ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/
-
image.datの加工が必要になるのだが、昔ななあしさんがImageExtractorいうの作ってたけど問題が生じたとかで削除された経緯があったようでね
実際何がどう問題だったのか、今回のこともOKなのかどうか法律家でもない私にはわからないのだ
-
素材には素材の著作権があるからな
-
なんか他人のスクリプト見て勉強してると、else ifを使ってないことが多いのな
専用の変数用意してsetして次のif文飛ばしとかしてるんだが、そっちの方がelse ifより早いのかね?
-
本当に専用か確認した?
他でも使ってない?
else ifは確認そのものをすっ飛ばすんだからそんなに遅いはずないと思うけど
-
戦闘時イベントにelseが一切使えないのは理解してる
一応Visual Studio Code使っててフォルダ内全検索機能使って確認してるよ
銃魔のスクリプトだけど難読化目的なのかね?
-
銃魔見たことないけど俺も else if あんまり好きじゃないわ
if( 条件 ) { 処理 return } でさっさと引き返すほうが好き
他にevent(文字列変数)って手もあるよね。こっちはちょっと恐いけど
-
else if 使ったほうが後から見た時にひとまとまりの処理と認識しやすい
-
インデントがお粗末なスクリプトが多すぎて困ることが多い
-
そもそもそこは人の勝手だから
別に仕事で多人数で開発するわけでもないんだから他人が口を挟むところではないだろう
もちろん可読性が高いほうがバグ探しで有利だけどさ
-
else if使わないと何度もif通って重くなる場合がなぁ
それぞれ全く違う処理する場合(たとえば人材全パターン全く違うtalkを必要とする場合)で、人材のパターンがとてつもなく多いとelse ifで繋げなきゃいけないパターンもあるし・・・
ABCグループ化してAの中なら・・・Bの中ならで分割すれば軽くなるとはいえ、それだってパターンによってはさらにelse使わなきゃいけない場合もあるし、結局ifだelse ifだといっても何に使うかじゃないんでしょうか
そもそもif(){}if(){}とif(){}else if(){}では結果的に同じ動きするとしてもそれの持つ意味は厳密に言えば違うんだから
-
switch文が欲しかったです
else ifは使って当然という立場
-
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 )
}
-
ヴァーレンというより数学の質問なんだけどいいですか
勢力の経済値に連動して価値が上下する証券というか債権というかを作ってるんですけど、現在値段が経済値に比例するようになってる
でもこれだとゲーム序盤とか小規模勢力とかはすぐ証券価値が2倍3倍に上がっちゃうから、もっと緩やかな変化になるようにしたい
そこで√使おうと思ったんだけどヴァーレンの関数になかったから困ってる
ヴァーレンで可能な数値計算でどうにかできる方法はありますか?
教えて理系の人
-
一番簡単な方法言うぞ
勢力値を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)
}
-
このスクリプトはインデントのために全角空白使ってるからそのまま使うなよ
前半部分は高速化のための呪文部分
本質は後半のwhile(1==1)
癖でwhile(true)って書いてしまった
-
これで勢力値を二分の一乗した値がloopに代入されるぞ
-
ニュートン法使った方が早いだろうから自分で考えてくれ
-
SpotMakeHelper作者様へ
要望なのですが、ドラッグでスポットを自由に移動できるようにしていただけませんでしょうか
今のままですと微妙な位置調整ができず不便さを感じますのでご一考くださると幸いです
-
平方根はこれでイケるはず:
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)
}
-
回答書いてもらって感想の一つも言わんとは失礼なやっちゃ
-
初歩的かつ、恐らくもはや答えが出てる質問だと思うのですが、
調べても上手く見つけることが出来なかったので質問させて頂きます。
ヴァーレントゥーガ本体に入っている素材はヴァーレントゥーガを改造した
オリジナルのゲームでもヴァーレントゥーガと同じ条件で使用可能なのでしょうか?
ジャンキージャンク様等、素材の出所が分かる素材はそこに従えるのですが、
アイコンなどはどこから出てきてるのかも良く分からず困っています
-
公開するつもりなら流用はVT自体のMODとかでもない限りは止めた方が無難
アイコンは小物入れになかったっけかな
-
>>538
ありがとうございます。
「VTの拡張シナリオ」という体ならば、「俺はスクリプト書いてるだけなのでセーフ」になるんですね。
やはりオリジナルゲームとして公開するならばその辺りは一つ一つ確認する必要がありそうですね。
小物入れ探してみます。
重ね重ねお礼申し上げます。
-
正直√なんて無理だろうから他に良い方法ないですか?的なニュアンスで聞いたんですが普通に√出せるんですね 理系ってすごい
ありがとうございました
実際使うかは分かりませんが内政はそのうち公開するかもしれません(ngt用だけど)
>>535
PC書き込み規制+スマホ紛失コンボから今日復活したんだ
すまんな
独り暮らしでぼっち学生だから誰もスマホ鳴らしてくれないんじゃ
-
そんならしょうがあるめえ
-
>>533
作者です。
SpotMakeHelperをお使い頂きありがとうございます。
ドラッグ機能の追加検討したいと思います。
微妙な位置調整ですが、右側にあるNumericUpDownコントロールで値の増減が可能となってます。
そちらにフォーカスを合わせてキーボードのアローキーの上下または、マウスで▲▼ボタンをクリックすることで数値が1づつ変わります。
そちらもお試しください。
-
>>541
ありがとうございます!
-
初歩的な質問で申し訳ないんですが
人材追加をしようとした所エラーが出て困っています
ステータスだけのものならエラーが無しで起動するのですが、スキルを書き加えるとエラーが出ます
既存のスキルを名前と説明文だけ変更したものなのでスキル本体に問題はないと思うのですが…
エラー内容は
1:データ文で=を書き忘れています
2:データ文が不正です または関数が不正です
よろしければアドバイスお願いします
-
多分使っちゃいけねえ文字使ってんじゃねえかな
とりま書き換えた部分全てを調べて半角文字があったら全角にしてみ
-
>>543
>「スキルを書き加えるとエラーがでる」、エラー内容が「1:データ文で=を書き忘れています」
以上の事から、スキルの書き加えた構文が間違っていると推測できます
たぶん書き加えたスキルの前に「,(カンマ)」が抜けているのじゃないかな?
-
>>544>>545
アドバイスありがとうございます
ちょっと忙しくて時間取れないので試せてませんが教えてもらった通りやってみます
返信ありがとうございました
-
SpotMakeHelper更新しました
http://ux.getuploader.com/vahren/download/4319/SpotMakeHelper+Ver1.2.zip
-
>>547
ありがとうございます!
-
ヴァーレン本体が落ちる目安ってPC機体毎に違うのでしょうか?
そもそも処理が重かったり多すぎると何故落ちるのでしょうか
-
重くなくても落ちるときは落ちるよね
-
そこらへんの基準がわかればありがたいのですがね
-
最新版はわからないけどaddtroopあたりは直近くらいまではダイアログでないまま落ちることがあったかな
-
time長めのスキルは要注意
人材専用スキルならまだしも、一般ユニットも扱えるスキルだと大体重くなる
これがでrushまであった日にはもう大変
-
おお、ありがとうございます
rushが大きいので、それも一因でしたか
-
呼ぶと100%無言落ちする関数あるよなしかも複数
ゼロから自作するなら関数のテストから始めたほうがいいですよ
-
領土を広げた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構造体の再利用は不可能なのでしょうか?
マスターは死亡していません。
-
同名の別勢力をつくらないとダメだったと思う
-
>>556
滅亡時に滅亡するのではなく、アボンのエフェクトと滅亡ダイアログと同時に事前に決めたハイドスポットに逃がすってのはどうですか
復活自体は不可能です
-
>>557
>>558
ありがとうございます。
やっぱりPower構造体の再利用は不可能なんですね。
アボンのエフェクトと滅亡ダイアログはEXEが制御してるんでしょうか?ちょっと見つかりませんでした。
ちなみにVTではなく、LostTechnologyをベースに色々といじっています。
苦肉の策ですが、
storeSpotOfUnitでリーダーのいるspotを抽出し、isJoinで本拠地spotから途切れていたら、
リーダーを強制的に本拠地に飛ばす処理で滅亡を回避してみたいと思います。
かなり強引ですが・・・。
-
復活が駄目ならそもそも滅ぼされなければいいじゃない
やったことないが、戦闘開始前にchangeMasterでマスターを他の領地にいる人材に変更すればどうだろう
ただ戦闘中にマスター(元)のステータス確認されるとまずいが
-
>>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とかは下の負けたパターンの場合の最後にダイアログと共に出せば問題なく表示可能かと
-
質問者ではありませんが、大変参考になりました
ありがとうございます!
-
>>561
遅くなりましたがありがとうございます。
とりあえず、
storeSpotOfUnit(マスター名, 現在地spot)
if (isJoin(本拠地spot, 現在地spot) == 0) {
storePowerOfUnit(マスター名, 所属勢力)
storePowerOfSpot(本拠地spot, 本拠地支配勢力)
if (所属勢力 == 本拠地支配勢力) {
addUnit(マスター, 本拠地spot)
dialog(マスター名,マスター名が本拠地spotへ脱出しました。)
}
}
安易で強引ですが、これとchangePowerFixを使って孤立アボンの可能性を抑えたいと思います。
もう1つ質問なのですが、stealth = 100って機能してるでしょうか?
攻城戦で、城壁内の櫓などの防衛兵器を遠距離職が攻撃して無駄死にするのを避けたくて、
防衛兵器のclass構造体にstealth = 100を追加したのですが、近接ユニットが殴りかかりました。
-
stealthは遠隔は無視するけど近接は殴る筈
-
>>564
納得しました。ありがとうございます!
-
addstringって素晴らしいよね
文字列変数に対するaddintegerもあれば本当に良かったのに
他にも数値変数の配列とか欲しかったです
-
配列使わなきゃい困るような複雑な処理は書かないけど変数名付けるのがめんどいから配列欲しい
変数が増えるに連れてザ・ド素人みたいな長い変数名になっていく
実際ド素人だけども
-
長い変数名はしょうがない というかそれでいい
へたに短縮するとそっちのほうが駄目でしょう
-
Wikiの制作講座と最新版のDLと更新詳細にも書いていないような関数とかどこで知るの?
pushDeathとかここで初めて知ったんだけど
-
>>567
長い名前のがテキストエディタで置換しやすい場合もあるから問題ないんじゃ?
というか配列は存在してるし、どの程度を複雑というかはともかく複雑じゃなくても別に配列は使えると思うけど、どういう配列を考えてるんだろ
Listみたいな?
-
マップそのものをシナリオ中に変更することってできますか?
マップの画像ではなく、マップ全体の大きさを変えたいです
-
ワールドマップ?
それとも戦闘マップ?
-
>>572
ワールドマップ
マップの一部を加えるといった形ではなく、全く違う大きさで違う場所のマップに切り替える感じ
bgを使って裏の画像だけ変えることはできるものの、横幅縦幅のスクロールはどう頑張っても変えられない
本体そのものを切ってスクリプトでmapを変更すればできるんだけど、プレイヤーにそれを求めるわけにはいかないし、内政1発でマップ切り替えみたいなのを想定してます
-
逆に考えるんだ
最初のマップより大きいのを使えないと考えるんじゃない
使うはずの一番大きなマップに合わせて最初のマップを用意するんだ
無駄なスクロール領域ぐらいなら大丈夫だろう
-
それはつまり地上戦と空中戦に分けて二つのワールドマップで進めていくみたいな感じ?
-
>>574
無駄なスクロール領域が極端に大きくなるんで勘弁してください
>>575
2つではないですが大凡そんな感じです
1つが極端に大きいマップでそれと別に極端に小さなマップを使用するため、非常に難儀しています
-
そこは内政ユニットを使ってセンタリングさせれば2,3クリックぐらいで済むしね?
-
640*480を2枚(AとB)用意するのじゃなくて、1280*480(A+B)でmap作って、
A側相当/B側相当を部分表示しておいて、hideSpot/showSpotで切り替えて使うとか?
debugPaperで640*480表示に設定してあれば必要な部分だけ表示は出来る…かも?(フルスクリーンの時にどうなるかは知らないケド)
-
>>578
まあ2枚ならちょっと違和感はありますがそれも可能かな・・・とは
とはいえその方式でするなら1枚+49枚なのでちょっと現実的じゃないかも
1枚をA、49枚をB00からB48として、AとBを行ったり来たりする感じですね
なお、フルスクリーンでbgやるとbgの方は左上に集約されます
map=だと一応ちゃんと表示はされるかなってぐらい
一応それは想定していなくはないのですが、あくまでもやりたいのは1枚と49枚の行ったり来たりって感じですねー
あと、やり方間違ってたらごめんですけどスクロールできちゃわないですか?それは
-
>>577
センタリングの意味がちょっとわかりません
ごめんなさい
-
>>580
言葉足らずですまぬ
サイズ小マップ(100*100)
に対して
サイズ大マップ(9000*9000)
としたら元々サイズ大のスクロール移動は呆れるほど面倒くさいはず
だったら内政欄(国策とか社会契約とか禁呪とかのある欄)に『移動』という項目を設けてみてはどうか?
移動内政スポットに置いておいた内政人材でサイズ小マップの中央あたりに存在する領地にスクロールしてセンタリングしたり、サイズ大マップの端の方に移動したり出来るようにすればいいのでは?
-
まあ、だだっ広い無駄領域がサイズ小マップに広がる事はこの案では避けられないが
-
>>571
シナリオ中に変更するのは無理
ゲーム中にsetUD(@scenario, @hogehoge)でシナリオ変更するのがいいと思う
-
>>583
シナリオ中にシナリオ変更できるのですか・・・?
いやもちろんシナリオ構造体からシナリオ構造体に移動できるのなら願ってもないのですが
-
NPCの新勢力旗揚げと陪臣雇用の両方をOFFする機能はありますが、
陪臣雇用だけをOFFするやり方ってありますか?
全人材に"loyal=自分"を指定するわけにもいかず、
compati_vassal_bdrを100以上にしてみましたが、100以上は認識していない感じでした。
-
開始時に
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をせずともあるタイムラグと変わりません
どういった原因が考えられますか?
-
コンテキスト構造体で効果が分からない項目の仕様公開して欲しい
そこさえ改造できりゃ洋ゲー並みに戦えそうなのにもったいなすぎる
-
そもそも画像やスクリプトとかの暗号化の部分以外をオープンソースにして欲しい
-
まじかよ 更新されてら
でもバージョンは据え置きか
-
なんか素材に使えそうなのができたようなので共有
http://make.girls.moe/#/
-
いいね!
だけど作成した画像の使用規約が見当たらないけど、知ってる?
-
すみません
class構造体やunit構造体でmerceを設定できるのはしっているのですが、
シナリオの途中で人材のmerceに新たに追加したいのですが、どのようにすればよいのでしょうか
-
addMerceって機能しないんだっけ
新しいmerce設定した新クラス設定しといてそっちに強制クラスチェンジとかでも一応出来るよ
-
ありがとうございます
試してみましたが人材の場合delskillだのlearnだの設定してあるとスキルが失われたりして結構大変ですね
一般はこれでうまくいきました
-
多分addFriendと一緒にやるって話だと思うんだけど
merceだけ書いてもfriendにできないクラスだと結局雇えないはずだから
merceの方だけ最初から書いといてもいいかも
-
それは最初に考えたのですが
他のMODと簡単に共存できるようにMODを作っておりますので、そのシナリオのクラスやユニットに手を加えて互換性を捨てるのは難しかったのです
-
次のようなスクリプトを組んで任意のタイミングで発動させるとメモリーの使用量が増え続けていく現象を見つけたのですがVTの仕様なんでしょうか。
処理が終了したあとも開放されずに居座っている感じです。ESC押しでタイトルに戻った時も使用量が変化していません。
開発中のシナリオでは文字変数を使用してイベントの呼び出しをしている処理が1ターン巡るあいだに数千、数万回実行しているのでかなり困っています。
setv(@call,testevent)
set(idx,10000)
while(idx)
{
sub(idx,1)
routine(@call)
}
event testevent
{
set(a,1)
}
-
メモリ使用量とかは分からんけどループにroutine入れると重くない?
-
>>597
俺もメモリとかはわかんなくてタスクマネジャー見る程度なんですが
呼び出し先(testevent)の変数をその都度クリアしてみたところ
メモリが増えなくなったような気がします
event testevent
{
set(a,1)
set(a,0)
}
ただ素人なんで自信はないです。試したexeはv7.0(最新ではない)です
>>597
そうかな? 俺は感じないけど
-
ローカル変数機能さえアレばな―
-
>>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...
という感じで値を参照するためにつかっているのでイベント構造体内での変数クリアができません。
文字型変数の場合はデータサイズが可変なのでクリアすることでメモリー使用量が変化するのは当たり前ですけど、
データサイズが固定である数値型変数はクリアしたところでメモリーの使用量には変化がないはずなんですけどどういうことなんでしょうね。
-
routineを何万回もやると重いのは俺環だったのか
もしかしてstoryをたくさん付けると重くなるのもうちだけか?
そのせいでstoryは全部一つにまとめてるしroutineも速さがさほど気にならない内政とかでしか使ってないんだけど
-
>>601
もしかしたら文字変数でイベント呼ぶと扱いが変わるのかもしれないですね
まあ俺にわかるのは「毎回クリアすれば増えないらしい」ってとこまでです
>>602
あ、ごめん、何万回も回したことはないからわかんない
シナリオの規模(イベント数とか)も影響してそうだし、事情が違うのかも
-
eventとかがあるのとないのとで確実に速さ違いますよ
100回ほど回るwhileにeventで100回回すのと、eventの中身をバラして入れたものだと後者のほうが圧倒的に速いです
-
イベント構造体の呼び出しを多用するとメモリー使用量が増加していくのは仕様みたいですね。
幸運なことに開発中のシナリオで見にいく必要がある変数が文字変数だけなのでゲームの開始時に文字変数の配列に展開しておきますか。
つきあってくれてありがとう。
-
>>604
やっぱりそうだよね
良くないけど良かった
-
>>604
一応確認、event( event構造体名 )が遅いのは仕様ですよ?
https://www28.atwiki.jp/vahren_ency/pages/534.html
> routine( event構造体名 )
> event構造体を呼び出します。
> 戦場マップや背景画像を指定しないただのサブルーチンを呼び出すのはこちらを使ってください。
> routine呼び出しの方が高速です。
>>597の10000回ループもすぐ終わったし、
routine自体が重いってことはないと思いますが、何か条件があるのかも?
-
流れ的にevent「とか」ってのはroutineやstoryを含んでいるのだと思うが
何にせよオリシナやMOD公開するつもりならroutineループが重くなる環境が存在するということは頭に入れておいたほうがいいね
-
ただ確かに>>597は全然重くないな
重くなった奴貼りたいけどもう全く別のスクリプトに変貌してるから無理だわ
ちなみに>>602です
-
質問です。
power構造体のhome設定を後から変えたり、内容を取得する方法はありますか。
-
たしかないはずです
-
もう消えてるけどsetPowerHome(勢力,領地)がなかったっけ
-
一番簡単なのはwarlike使って線プッツンして狙いの方向に行かせるのが確実かと
-
>>612
少なくともwikiのログにはないけど
-
setPowerHomeは前スレでちょっとだけ出てたね
興味があったら試してみたらいいんじゃない?
|
|
掲示板管理者へ連絡
無料レンタル掲示板