戻る

登録キャラクター数を50以上に対応する方法

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数にも同様の対応が必要です)

戻る