太閤立志伝5イベントソース // // //◆武将成長システム◆ // //◆武将を成長させるシステムです。ゲームスタート時にON、OFFが指定できます。 //◆年の終わりに、主人公以外の武将の能力や技能が少しずつ上昇します。 //◆上昇する値はランダムですが、現在の能力値が低いほど値の幅が大きくなります。 // //◆50未満 (1〜3)  //◆50〜69(1〜2) 技能レベル2が限界 //◆70〜84( 1 ) 技能レベル3が限界 //◆85〜99(0〜1) 技能レベル4が限界 // //◆能力上昇に応じて、各技能レベルが上昇する確率は20%で、能力値によって限界が決まります。 //◆上昇する技能は、 //◆統率力(足軽、軍学)、武力(武芸、弓術)、政務(開墾、鉱山)、知謀(建築、算術)、魅力(礼法、弁舌)です。 //◆武将の技能レベルが限界に達していない場合、 //◆それぞれ20%の確率で2つの内どちらかの技能が上昇します。 // // チャプター:{ イベント:武将成長システム{ 属性:一度だけ 発生契機:ゲームスタート時 発生条件:{ } スクリプト:{ 会話:(出雲の阿国,公家)[[◆武将成長システム◆\n主人公以外の武将の能力値・技能を\n一定の間隔でランダムに上昇させますか?]] //面識付かないように //阿国のイベントとかうぜえだけだし、発生しなくていいよという可能性もありますが //その類いは他人に押し付けるべきものではないだろうし、イベントユーザーに配慮するべきではあるはず //こういう不必要なところで面識が付いたりしないようにすることは地味に重要なことではないかと 選択:[[はい]][[いいえ]] //以下ちょっと整理 ブロック脱出:([[いいえ]]) 代入m:(12)//成長月間隔のデフォルト値(ただし12の約数のみ可) 代入x:(100)//武将割合のデフォルト値 文字列設定:(文字列A)[[12ヶ月に一度]] 文字列設定:(文字列B)[[全て]] 会話:(出雲の阿国,公家)[[<文字列A>\n<文字列B>の武将が成長する設定になっています\n変更しますか?]] 選択:[[はい]][[いいえ]] 分岐:([[はい]]){ ループ:{ 会話:(出雲の阿国,公家)[[◆設定の変更◆\n武将の能力を成長させる間隔を決定して下さい]] 選択:[[毎月]][[2ヶ月に一度]][[3ヶ月に一度]][[4ヶ月に一度]][[6ヶ月に一度]][[12ヶ月に一度]] 分岐:([[毎月]]){ 代入m:(1) 文字列設定:(文字列A)[[毎月]] } 分岐:([[2ヶ月に一度]]){ 代入m:(2) 文字列設定:(文字列A)[[2ヶ月に一度]] } 分岐:([[3ヶ月に一度]]){ 代入m:(3) 文字列設定:(文字列A)[[3ヶ月に一度]] } 分岐:([[4ヶ月に一度]]){ 代入m:(4) 文字列設定:(文字列A)[[4ヶ月に一度]] } 分岐:([[6ヶ月に一度]]){ 代入m:(6) 文字列設定:(文字列A)[[6ヶ月に一度]] } 分岐:([[12ヶ月に一度]]){ 代入m:(12) 文字列設定:(文字列A)[[12ヶ月に一度]] } 会話:(出雲の阿国,公家)[[◆設定の変更◆\n能力を上昇させる武将の割合を決定して下さい]] 選択:[[一割]][[二割]][[三割]][[四割]][[五割]][[六割]][[七割]][[八割]][[九割]][[全て]] 分岐:([[一割]]){ 代入x:(10) 文字列設定:(文字列B)[[一割]] } 分岐:([[二割]]){ 代入x:(20) 文字列設定:(文字列B)[[二割]] } 分岐:([[三割]]){ 代入x:(30) 文字列設定:(文字列B)[[三割]] } 分岐:([[四割]]){ 代入x:(40) 文字列設定:(文字列B)[[四割]] } 分岐:([[五割]]){ 代入x:(50) 文字列設定:(文字列B)[[五割]] } 分岐:([[六割]]){ 代入x:(60) 文字列設定:(文字列B)[[六割]] } 分岐:([[七割]]){ 代入x:(70) 文字列設定:(文字列B)[[七割]] } 分岐:([[八割]]){ 代入x:(80) 文字列設定:(文字列B)[[八割]] } 分岐:([[九割]]){ 代入x:(90) 文字列設定:(文字列B)[[九割]] } 分岐:([[全て]]){ 代入x:(100) 文字列設定:(文字列B)[[全て]] } 会話可否選択:(出雲の阿国,公家)[[<文字列A>\n<文字列B>の武将が成長する設定になっています\nこれでよろしいですか?]] ブロック脱出:(可) } } //月間隔の保存 代入y:(m)%(2) 更新:(イベントフラグ::武将成長_成長月間隔01)(y) 代入m:(m)/(2) 代入y:(m)%(2) 更新:(イベントフラグ::武将成長_成長月間隔02)(y) 代入m:(m)/(2) 代入y:(m)%(2) 更新:(イベントフラグ::武将成長_成長月間隔03)(y) 代入m:(m)/(2) 代入y:(m)%(2) 更新:(イベントフラグ::武将成長_成長月間隔04)(y) //人数割合の保存 //圧縮してフラグも減らしてよさそうですけどそのまま 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合01)(y) 代入x:(x)/(2) 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合02)(y) 代入x:(x)/(2) 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合03)(y) 代入x:(x)/(2) 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合04)(y) 代入x:(x)/(2) 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合05)(y) 代入x:(x)/(2) 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合06)(y) 代入x:(x)/(2) 代入y:(x)%(2) 更新:(イベントフラグ::武将成長_人数割合07)(y) 更新:(イベントフラグ::武将成長)(成立) SEスタート:(画面転換音) 会話:(出雲の阿国,公家)[[以後、各武将の能力が少しずつ上昇します\n間隔:<文字列A>\n人数:<文字列B>]] } } イベント:武将の成長{ 属性:何度でも //発生契機:毎月処理の最後 //わざとこうなっているのかとも思いましたが 発生契機:毎月処理の最後絶対 //年一で全武将がデフォということからするとこちらの方が良いのかと? 発生条件:{ 調査:(イベントフラグ::武将成長)==(成立) 代入a:(0) 代入b:(イベントフラグ::武将成長_成長月間隔04)*(8) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_成長月間隔03)*(4) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_成長月間隔02)*(2) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_成長月間隔01) 代入a:(a)+(b) 代入m:(状況::月)%(a) 調査:(m)==(0) } スクリプト:{ コンテナ設定:(人物,カテゴリ,武将) コンテナ絞り込み:(人物,出現フラグ,出現済み) コンテナ除外:(人物,死亡フラグ,死亡) コンテナ除外:(人物,人物番号,主人公) コンテナソート:(無効,シャッフル,昇順) 代入a:(0) 代入b:(イベントフラグ::武将成長_人数割合07)*(64) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_人数割合06)*(32) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_人数割合05)*(16) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_人数割合04)*(8) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_人数割合03)*(4) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_人数割合02)*(2) 代入a:(a)+(b) 代入b:(イベントフラグ::武将成長_人数割合01) 代入a:(a)+(b) 代入h:(コンテナカウンタ)*(a) //0ではないはず 代入h:(h)/(100)//成長させる武将の人数 //0かもしれない ループ:{ 調査:(h)>(0) ブロック脱出:(偽) コンテナ選択:(人物A,先頭) 代入c:(0) //技能上昇判定 ……いや、なんか変なことになってたので 代入r:(Rnd100)%(5)//どの能力か 場合別:(r){ 場合分岐:(0){//統率力 代入z:(人物::人物A.素統率力) //非常に重要な部分を修正 代入x:(人物::人物A.素軍学技能) 代入y:(人物::人物A.素足軽技能) } 場合分岐:(1){//武力 代入z:(人物::人物A.素武力) 代入x:(人物::人物A.素武芸技能) 代入y:(人物::人物A.素弓術技能) } 場合分岐:(2){//政務 代入z:(人物::人物A.素政務) 代入x:(人物::人物A.素開墾技能) 代入y:(人物::人物A.素鉱山技能) } 場合分岐:(3){//知謀 代入z:(人物::人物A.素知謀) 代入x:(人物::人物A.素建築技能) 代入y:(人物::人物A.素算術技能) } 場合分岐:(4){//魅力 代入z:(人物::人物A.素魅力) 代入x:(人物::人物A.素弁舌技能) 代入y:(人物::人物A.素礼法技能) } } 調査:(z)<(50)//50未満(1〜3上昇) //能力上昇の設定はそのまま 分岐:(真){ 代入a:(Rnd)%(3) 代入b:(a)+(1) 代入m:(z)+(b) } 分岐:(偽){ 調査:(z)<(70)//50〜69(1〜2上昇) 分岐:(真){ 代入a:(Rnd)%(2) 代入b:(a)+(1) 代入m:(z)+(b) 調査:(Rnd100)<(10)//確率を20%から引き下げ 分岐:(真){ 調査:(a)==(0)//速度も意識してaの値を流用 分岐:(真){ 調査:(x)<(2) ブロック脱出:(偽) 代入x:(x)+(1) 代入c:(1) } 分岐:(偽){ 調査:(y)<(2) ブロック脱出:(偽) 代入y:(y)+(1) 代入c:(2) } }//10% } 分岐:(偽){ 調査:(z)<(85)//70〜84(1上昇) 分岐:(真){ 代入m:(z)+(1) 調査:(Rnd100)<(10) 分岐:(真){ 調査:(Rnd100)<(50) 分岐:(真){ 調査:(x)<(3) ブロック脱出:(偽) 代入x:(x)+(1) 代入c:(1) } 分岐:(偽){ 調査:(y)<(3) ブロック脱出:(偽) 代入y:(y)+(1) 代入c:(2) } }//10% } 分岐:(偽){ //能力値100の武将がいるとこの後から非常に不味いことになっていた //何もせずやり過ごすか、技能値だけ上げてみるか 二択ですかね? //で、技能値だけ上げてみる //調査:(z)<(100)//85〜99(0〜1上昇) //分岐:(真){ 代入a:(Rnd)%(2) 代入m:(z)+(a) 条件ブロック:(m)>(100){ 代入m:(100) } 調査:(Rnd100)<(10)//確率を20%から引き下げ 分岐:(真){ 調査:(a)==(0)//速度も意識してaの値を流用 分岐:(真){ 調査:(x)<(4) ブロック脱出:(偽) 代入x:(x)+(1) 代入c:(1) } 分岐:(偽){ 調査:(y)<(4) ブロック脱出:(偽) 代入y:(y)+(1) 代入c:(2) } }//10% //} } } } 場合別:(r){ //技能値上げる部分がとてもおかしかったので本来の仕様だと思われるものに修正 場合分岐:(0){//統率力 更新:(人物::人物A.統率力)(m) 条件ブロック:(c)==(1){ 更新:(人物::人物A.軍学技能)(x) } 条件ブロック:(c)==(2){ 更新:(人物::人物A.足軽技能)(y) } } 場合分岐:(1){//武力 更新:(人物::人物A.武力)(m) 条件ブロック:(c)==(1){ 更新:(人物::人物A.武芸技能)(x) } 条件ブロック:(c)==(2){ 更新:(人物::人物A.弓術技能)(y) } } 場合分岐:(2){//政務 更新:(人物::人物A.政務)(m) 条件ブロック:(c)==(1){ 更新:(人物::人物A.開墾技能)(x) } 条件ブロック:(c)==(2){ 更新:(人物::人物A.鉱山技能)(y) } } 場合分岐:(3){//知謀 更新:(人物::人物A.知謀)(m) 条件ブロック:(c)==(1){ 更新:(人物::人物A.建築技能)(x) } 条件ブロック:(c)==(2){ 更新:(人物::人物A.算術技能)(y) } } 場合分岐:(4){//魅力 更新:(人物::人物A.魅力)(m) 条件ブロック:(c)==(1){ 更新:(人物::人物A.弁舌技能)(x) } 条件ブロック:(c)==(2){ 更新:(人物::人物A.礼法技能)(y) } } } コンテナ選抜:(削る,1) 代入h:(h)-(1) }//ループ }//スクリプト }//イベント }//チャプター