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

482名無しさん@立夏:2017/06/01(木) 12:29:58 ID:???
wikiは読みましたか

483名無しさん@立夏:2017/06/01(木) 14:29:50 ID:???
お手本みたいなクソコテで草

484名無しさん@立夏:2017/06/01(木) 22:39:22 ID:???
>>480
「祖国と銃との」というのは別シナリオという意味で取るなら別シナリオと直接つなげることはできません
「祖国と銃の」の誤字だとするなら外交システムというのはどの部分かはわからないですが、同じヴァーレンであるのでおそらくできないものはないかと
具体的にどの内政のどういうところをどの程度入れたいのかわからないので、wiki参照ってことで


>>481
勢力ターンを素早く終わらせる=スキップするだけの話なので、少し語弊があるかと
wiki参照です

485名無しさん@立夏:2017/06/02(金) 20:44:24 ID:PVQCWSNo
wikiってまとめwikiのことですか
まとめwikiなら一通り見たのですがどこに書いてあるのかわからなくて…
おしえてくださいおねがいします

486名無しさん@立夏:2017/06/02(金) 20:44:55 ID:PVQCWSNo
wikiってまとめwikiのことですか
まとめwikiなら一通り見たのですがどこに書いてあるのかわからなくて…
おしえてくださいおねがいします

487名無しさん@立夏:2017/06/02(金) 21:00:14 ID:???
まとめwiki一通りみても一切なにもわからないのならあきらめたほうが早いと思うよ
pcの操作すら分からない人がpcゲーのやり方聞く位スレ的には場違いだよ

488名無しさん@立夏:2017/06/02(金) 21:08:40 ID:PVQCWSNo
wikiの意味は分かるんですか、どこに更新情報のってるんですか
それがわかんないです。

489名無しさん@立夏:2017/06/02(金) 21:18:20 ID:PVQCWSNo
>>484「祖国と銃と」という題名のシナリオです。
 内政イベントすこしいじくってロストテクノロジーの内政に上書きしたんですが
成功しないのです。

490名無しさん@立夏:2017/06/02(金) 21:46:09 ID:PVQCWSNo
changePowerFixについてはわかりました。

491名無しさん@立夏:2017/06/02(金) 23:26:48 ID:???
イベント関連の改造は完璧に理解してないと難しいぞ
まあwikiのシナリオ製作講座見たら大体わかると思うが

492名無しさん@立夏:2017/06/03(土) 04:11:50 ID:???
個人的に宇宙戦ものシナリオがやりたいけど
もうないんだよね銀河英雄伝説とかをヴァーレンでとかできると良いけど

誰か作ってくれないかな(チラ

493名無しさん@立夏:2017/06/03(土) 07:06:10 ID:???
なんでいつまでも小学生相手にしてるの

494名無しさん@立夏:2017/06/03(土) 07:47:59 ID:???
みなさん分からないのですね。
自分で頑張ってみます。

495名無しさん@立夏:2017/06/03(土) 10:15:04 ID:???
最新版のDLと更新詳細というところを見れば分かると思うんだけど・・・

宇宙戦はシップ書くのがめんどくさい、現代戦+クトゥルフモノは絶賛制作中だけど

496名無しさん@立夏:2017/06/03(土) 13:18:17 ID:???
一ヵ月後にはエタってそうなやつ相手にパソコンの無料サポートしたいってやつはそうそういないわな

497名無しさん@立夏:2017/06/03(土) 13:33:22 ID:???
>>494
神々の黄昏ってのがありますよ。
拡張シナリオで。
>>495
更新については解決済みです。

498名無しさん@立夏:2017/06/03(土) 23:54:13 ID:???
ヴァーレンで三次元戦闘て無理じゃない?
基本は二次元ファンタジーだよね

499名無しさん@立夏:2017/06/04(日) 07:14:07 ID:???
具体的にどこをどう弄って駄目だったのか一切言わないんだもんな
一部追加ならともかく>>489で言ってる通りの全上書きなんて祖国内政丸ごと持ってきてscenarioのpoliticsを祖国側と全く同じに上書きするだけだろとしか言えないし
自分で頑張ってみますって頑張ってから質問しろよクズ

500名無しさん@立夏:2017/06/04(日) 14:55:22 ID:???
勉強しようね
普通に組める様になったらSE職にも就けるよ

501名無しさん@立夏:2017/06/04(日) 15:54:56 ID:???
>>497
なぜそこでMarrinを勧めないんだ…
後は綺羅星の如くと、こっちは少し毛色が違う空中戦艦物だが黄昏の提督もあるな

502名無しさん@立夏:2017/06/04(日) 18:22:09 ID:???
VTのスクリプトは真面目にループ組まないと遅くなるからSEに向いてるかもな
言語とか覚えてかけるようになるのはすぐだし

503名無しさん@立夏:2017/06/04(日) 19:46:48 ID:???
なんか荒れてるなぁ・・・

504名無しさん@立夏:2017/06/04(日) 22:35:33 ID:???
流れ変えるけどpushDeathとstoreDeathの(部分的な)仕様メモ
wikiに書いてないっぽいし(だいぶ)前に質問している人がいたので書いてみる


直前の戦闘で死亡したユニットのデータを取得
援軍で参加した勢力、その戦闘で滅亡した勢力のデータも取得できる

pushDeath(?,勢力,?,基底クラス,?,数値変数)
storeDeath(?,勢力,?,基底クラス,?,文字変数)

あらかじめ「dead_event = count」がclass構造体(のベース)に書き込まれていないと無効
第六引数以外は@にして省略可、勢力には文字変数が使用できる

消滅しない人材ユニットも戦闘で死亡(HP=0)すればカウントされる
人材を除きたい場合は「dead_event = @」をunit構造体(のベース)に書くのが早い
自決・戦死した人材を含めたいならstoreDeath→生存している全人材をsubVarするのが多分いい

第一・三・五引数が何かは不明
第二引数を省略した場合はその戦闘に参加した全勢力の死亡ユニットが取得される

505名無しさん@立夏:2017/06/05(月) 01:11:13 ID:???
なんか解説が更新詳細のページに書いてあった時期があった気がする
その後別のページに書き写されるでもなく上書きされて消えた
ちょっと興味があって編集履歴から探してみたことがあったけど駄目だった

506名無しさん@立夏:2017/06/05(月) 01:17:46 ID:???
更新詳細の古い履歴があればなあ、と思うことがけっこうある

507名無しさん@立夏:2017/06/05(月) 01:30:15 ID:???
インターネット・アーカイブから探してみたけど見つからない

508名無しさん@立夏:2017/06/05(月) 16:27:06 ID:???
ファーレントゥーガという履歴書よりも確実な実績があった御人は
FFのリードプログラマーになれた
君も力を示せば就職は明るい

509名無しさん@立夏:2017/06/07(水) 23:22:13 ID:???
要望ですがimage.datの容量はこれ以上大きくできないでしょうか
可能であれば御一考願います

510名無しさん@立夏:2017/06/08(木) 03:17:47 ID:.Gg/4wBQ
できればPCのベンチマーク機能も実装してください何でもしますから!

511名無しさん@立夏:2017/06/09(金) 00:52:01 ID:???
>>509
image.datの容量は最大「2048×2048」になってます・・・。

512名無しさん@立夏:2017/06/10(土) 13:46:57 ID:???
arbeit_capacity増やした傭兵の部隊にaddunitでユニットを追加しようとしたんだけど、上限増えてても8が上限と認識されるみたいで8人以上に増やせない
addunit以外に何かいい方法はない物だろうか

513名無しさん@立夏:2017/06/17(土) 19:01:51 ID:???
image dat になってるものを他シナリオで流用する方法はありますか?
例えば光の目のものを祖国と銃で使用するなど

514名無しさん@立夏:2017/06/17(土) 19:05:32 ID:???
image dat になってるものを他シナリオで流用する方法はありますか?
例えば光の目のものを祖国と銃で使用するなど

515名無しさん@立夏:2017/06/17(土) 19:51:59 ID:???
あるよ
だけどその方法を教えて良いのかどうかがわからないのだ

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




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