1.Item.csvの変更
キャラアイテムを50〜から100〜にします。
eramakerの仕様では、アイテム購入は0〜99を自動処理するのですが
100番より先は、これからの手順に従って手動で処理さえすればゴリ押しできます。
2.SYSTEM.ERBの変更
SYSTEM.ERBの@EVENTFIRST以降にある
ITEMSALES:50 = 1といったキャラクターアイテムを変更していきます。
ITEMSALESは99までの自動処理しか対応しませんので、FLAGを使って処理していきます。
便宜上、FLAG:1000以降に、Item:100以降の金額を代入していきます。
FLAG:1000 = 500
FLAG:1001 = 800
(以下略)
この代入していった数字が、Item:100以降の売買価格と、購入済みフラグを兼ねます。
3.SHOP.ERBの変更
まずSHOP.ERBを修正してます。
具体的には、キャラクターアイテムの番号が100以降になったのでその対応と、
後述する人身売買処理への誘導です。
※変更後 ;キャラカードを持っているか? C = 0 REPEAT 50 IF ASSI >= 0 ;助手と同じキャラのカードはだめ SIF NO:ASSI == COUNT+1 CONTINUE ENDIF N = 100+COUNT IF ITEM:N C = 1 BREAK ENDIF REND (中略) SIF C || TARGET >= 0 PRINTL [100] - 調教する IF TARGET >= 0 PRINTL [101] - 能力の表示 PRINTL [102] - 休ませる ENDIF PRINTL [111] - 人身売買 PRINTL [200] - セーブ PRINTL [300] - ロード (中略) ELSEIF RESULT == 102 && TARGET >= 0 ;休憩フラグを立てる FLAG:0 = 1 BEGIN TURNEND RETURN 1 ELSEIF RESULT == 111 CALL CHARA_BUY ELSEIF RESULT == 200 SAVEGAME (中略) @SELECT_TARGET ;大人数対応版 ;REPEAT数は人数より多ければ問題ない REPEAT 50 IF ASSI > 0 ;助手と同じキャラのカードはだめ SIF NO:ASSI == COUNT+1 CONTINUE ENDIF N = 100+COUNT IF ITEM:N PRINTFORML [{COUNT}]%ITEMNAME:N% ENDIF REND $INPUT_LOOP INPUT N = 100 + RESULT
4.SHOP2.ERBの導入
SHOP.ERBで追加した人身売買(CALL CHARA_BUY)の実働部分です。
こちらのファイルをダウンロードしてERBフォルダに追加してください。
これだけで終了なのですが、一応仕組みの解説と補足を。
処理的にはFLAG:10**が1以上、かつ、FLAG:10**より所持金が多ければ
FLAG:10**を0にして、Item:1**に1加えるという仕組みになっております。
ソース上は、FLAG:1000以降にItem:100以降の金額を代入し(SYSTEM.ERBの初期設定参照)
アイテム番号を変更しましたので、調教開始関連も対応するよう変更しております。
万が一FLAG:1000番台を他の用途(口上)などで使うのであれば、
どちらかを適当な数字に変更してください(もっとも口上に使うならCFLAGの方が適切なのですが)
また、実験的にページ送りを導入しております。
更に増えた場合でも見栄え良く購入出来るはずです。
反面、ソース上1ページ目の人数が少なくなったので2ページ目の子も表示する
などという気のきいたことは出来ません、申し訳ありません。
見栄え上15行〜20行ぐらいが限度ですので1ページの限界を「60」にしてあります
1ページの表示限界を変更する場合は「60」を適当な3の倍数に、
3ページ分以上になる場合には、43行目の
IF TFLAG:100 < 1
の1を2以上にしてください(最初が0ページ目なので、比較の数字が最終ページ数となります)
また、人数が多くなっている場合は、58行目の
IF RESULT < 100 || RESULT > 100 + 50
の50を最大人数より多い数字にしてください。
(この対応はSHOP.ERBのREPEAT数にも同様の対応が必要です)