スランプに入ったよ


2018年 4月10日
 
 
 最近疲れが出て製作がほとんど進んでない。

 こういう時ってあっという間に時間が飛んでしまう、もう 10日も経ってる。

 一つには運動を怠けて筋肉が衰えるとそうなるんだけど、毎日の事で作業で疲れてると運動もできない事もあって、この毎日のバランスはずっと取って行かないと連続して作業なんてできない。


 
 
 それでは、あんまり変わってないけど経過報告。

 まずメインルーチンが変わってる。

/////// hextrategy ゲームルーチン ////////////////////////////////////////////////

*hextrategy

	hextf=0
	while ;------------ ゲームルーチン ---------------------------

	 switch hextf
	  case 0 : gosub *disaster : hextf=1 : swbreak	; 災害
	  case 1 : gosub *country  : hextf=2 : swbreak	; 国力の増減
	  case 2 : gosub *neutral			;中立の人材と人材配置、戦略
	  case 3 : ;gosub *strategy			;ヒーローの人材、アイテム、戦略
	  case 4 : gosub *battle			: swbreak	; 攻め込む

	  ;case 0 : gosub *map_main			: swbreak	; 基本MAP画面
	  ;case 1 : gosub *info				: swbreak	; 国インフォ、情報画面
	  ;case 2 : gosub *organization		: swbreak	; 自国インフォと編成
	  ;case 3 : gosub *battle			: swbreak	; 攻め込む
	  ;case 4 : gosub *battle			: swbreak	; 戦闘
	  ;case 5 : gosub *kuni				: swbreak	; 国の処理
	 swend

	 if mainf!5 : _break
	wend ;-------------------------------------------------------

	return

 下の緑になってる部分は前のソース。

 災害と国力の増減は前と変わって無い。
 
 
 人材とアイテムの登録はそれぞれ専用のルーチンを作った。
 
 
 ユニット

#defcfunc unt int untn ; ユニット登録

	cn=untn ; キャラNp.

	un=0
	repeat ub-1,1
	 ug=cnt*udb	; 空きユニットNo.検出
	 if ud(ug)=0 : un=cnt : break
	loop
	if un=0 : return 0

	ud(ug)=cn	; cnキャラ種類
	repeat 9,1
	 ud(ug+cnt)=cd(cnt,cn) ; データ
	loop
	repeat 5
	 ud(ug+21+cnt)=ud(ug+1+cnt) ; データ
	loop
	ud(ug+8)=cd(8,cn) ; 特殊能力
	ud(ug+10)=pn ; 所属

	repeat 2 : ud(ug+11+cnt)=ud(ug+21) : loop ; 攻防値

	repeat 3,16 ; 装備欄
	 ud(ug+cnt)=cd(cnt,cn)
	loop
	ud(ug+19)=cd(3,cn)/20-ud(ug+18)+1 ; アイテム装備数
	ud(ug+26)=ud(ug+25) ; HP

	return un



#deffunc un_fd int un_fdn ;------- 人材発見 ----------------------------

	m=un_fdn					; mapNo.
	 pn=mpl(m)					; プレイヤーNo.

	repeat 1
	 if pn=0 : n2=0 : break		; NPC
	 kn=mpc(pn)					; 首都
	  un2=mu(kn*10)				; 首領
	   n2=ud(un2*udb+4)*100/2	; 魅力補整
	loop

	mdg=m*mdb
	 n0=md(mdg+1)				; 人口

	un1=mu(m*10)				; 領主
	 n1=ud(un1*udb+4)*100		; 魅力補整

; 建物補整
; 城+50、役所+100

	r1=n0+n1+n2					; 確率
	r2=rnd(100000+(n0*20))		; 乱数

	 if r1<r2 : return			; 出現しなかった

	n0=md(mdg+2)				; 魔術

; 建物補整
; 城+50、役所+100

	r=rnd(n0+n1+n2)/100			; 出現乱数

	s=map(m)					; 地形
	cs=cha_syu(ms)				; その地形のキャラ種類総数
	cz=cha_zoks(ms)				; その地形のキャラスタートNo.

	n=cz+cs-1					; 大きい順
	repeat cs
	 cn=n-cnt : if r>=cd(15,cn) : break
	loop

	f=unc(cn)					; キャラ登録

	return

 
 
 アイテム

#deffunc itt int ittn ; アイテム登録

	in=0
	repeat ib-1,1		; 空きアイテムNo.検出
	 ig=cnt*idb
	 if id(ig)=0 : in=cnt : break
	loop
	if in=0 : return	; アイテム欄がいっぱい

	itn=ittn			; アイテムNo.
	ig=in*idb			; データ位置
	repeat idb
	 id(ig+cnt)=itd(cnt,itn) ; データ
	loop
	id(ig)=itn			; アイテム種類
	id(ig+10)=pn 		; 所属PL

	return


#deffunc it_fd int it_fdn ;------- アイテム発見 ----------------------------

	m=it_fdn					; mapNo.
	 pn=mpl(m)					; プレイヤーNo.

	repeat 1
	 if pn=0 : n2=0 : break		; NPC
	 kn=mpc(pn)					; 首都
	  un2=mu(kn*10)				; 首領
	   n2=ud(un2*udb+2)*100/2	; 魔力補整
	loop

	mdg=m*mdb
	 n0=md(mdg+3)				; マナ

	un1=mu(m*10)				; 領主
	 n1=ud(un1*udb+2)*100		; 魔力補整

; 建物補整
; 城+50、役所+100

	r1=n0+n1+n2					; 確率
	r2=rnd(100000+(n0*20))		; 乱数

	 if r1<r2 : return			; 出現しなかった


	n0=md(mdg+2)				; 魔術

; 建物補整
; 城+50、鍛冶+100

	r=rnd(n0+n1+n2)/100			; 出現乱数

dim ird,100	; 出現アイテム格納テーブル

	rs=rnd(3)+1 : n=0
	switch rs ; 製作できるアイテムをピックアップ
	 case 1 ; 武器
	  repeat 90,1
	   if itd(16,cnt)=0 : continue ; アイテム無い
	   if itd(15,cnt)>r : continue ; 技術Lvに満たない
	   ird(n)=cnt : n+
	  loop
	 swbreak
	 case 2 ; 防具
	  repeat 80,101
	   if itd(16,cnt)=0 : continue ; アイテム無い
	   if itd(15,cnt)>r : continue ; 技術Lvに満たない
	   ird(n)=cnt : n+
	  loop
	 swbreak
	 case 3 ; アイテム+魔法
	  repeat 50,181 ; アイテム
	   if itd(16,cnt)=0 : continue ; アイテム無い
	   if itd(15,cnt)>r : continue ; 技術Lvに満たない
	   ird(n)=cnt : n+
	  loop

	  msimn=0,251,261,281,291,301,321	; 魔法アイテムの属性別初No.
	  msimc=0,10,10,10,10,20,10		; 魔法アシテムの属性別探索数

	  repeat msimc(ms),msimn(ms) ; 魔法
	   if itd(16,cnt)=0 : continue ; アイテム無い
	   if itd(15,cnt)>r : continue ; 技術Lvに満たない
	   ird(n)=cnt : n+
	  loop
	 swbreak
	swend

	itn=ird(rnd(n)) : itt itn ; アイテム登録

	return

 アイテムはまず武器、防具、魔法+道具の 3つをランダムに分け、それぞれ総当りで製作Lvに満つるものを拾って、そこからランダムに一つ選ぶ感じに今の所なってる。
 
 
 そのくらいしか進んでない。

 後はグラの建物が少し増えてるくらい。


 
 
 だめだ眠い。

 しばらくはまた運動する所から調整しないと。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です