2021年 2月 24日
未実装だった経験値による能力の上昇を実装している。
↓
経験値を稼ぐ場所は沢山あるので、これまた実装には時間がかかっている、まだ途中だ。
経験値取得のプログラムはこんな感じ
#deffunc ep int _ep_f,int _ep_un1,int _epf1,int _ep_un2,int _epf2,int _epfk if walaf=1 : return ; 城攻撃モード ep_f=_ep_f ; 比較種類(0=無し、1=敵、2=都市) ep_un1=_ep_un1 ; 対象ユニット epf1=_epf1 ; 上昇する能力 epfk=_epfk ; 上昇係数 ep_un2=_ep_un2 ; 比較ユニット,国 epf2=_epf2 ; 比較する能力 ; 自ユニット ep_ug1=ep_un1*udb ; 上昇する能力 ep_jf=double(ud(ep_ug1+epf1))*double(epfk) ; の値 if ep_jf=0.0 : return if epf1=1 : exp_n1=ud(ep_ug1+51) ; STR、保持しているexp値 if epf1=2 : exp_n1=ud(ep_ug1+52) ; MAG、保持しているexp値 if epf1=3 : exp_n1=ud(ep_ug1+53) ; INT、保持しているexp値 if epf1=4 : exp_n1=ud(ep_ug1+54) ; CHR、保持しているexp値 exp_n2=double(exp_n1)/1000000.0 ; 実数に変換 ; 比較能力 switch ep_f ; 比較種類 case 0 ep_ef=0.0 swbreak case 1 ; 敵能力 ep_ug2=ep_un2*udb ; 比較する能力 ep_ef=double(ud(ep_ug2+epf2)) ; の値 swbreak case 2 ; 都市 100000 if epf2=1 : ep_ef=double(md(ep_un2*mdb+1))/double(10000); 人口 if epf2=2 : ep_ef=double(md(ep_un2*mdb+2))/double(1000) ; 魔術 if epf2=3 : ep_ef=double(md(ep_un2*mdb+3))/double(1000) ; マナ if epf2=4 : ep_ef=double(100000-md(ep_un2*mdb+4))/double(1000) ; 治安 if epf2=5 : ep_ef=double(wal(ep_un2))/double(100) ; 城壁値 if epf2=6 : ep_ef=double(wp(ep_un2));/double(100) ; wp戦力値 swbreak case 3 ; 数 ep_ef=double(ep_un2)/double(epf2) swbreak swend if ep_ef<=0.0 : return ; exp処理 exp_f=ep_ef/ep_jf ; 取得経験値 if exp_f>0.5 : exp_f=0.5 ; 上限 exp_g=exp_n2+exp_f ; 現総exp exp_n=int(exp_g) ; 整数値 if exp_n>0 { if epf1=1 : ep_defn1=int(round(double(ud(ep_ug1+1))/3.0)) ; 防御 if epf1=2 : ep_mdfn1=int(round(double(ud(ep_ug1+2))/3.0)) ; 魔防 ud(ep_ug1+epf1)+=exp_n if ud(ep_ug1+epf1)>99 : ud(ep_ug1+epf1)=99 ud(ep_ug1+20+epf1)+=exp_n exp_g-=double(exp_n) if epf1=1 { ; 攻撃、防御 ud(ep_ug1+11)+=exp_n ep_defn2=int(round(double(ud(ep_ug1+1))/3.0)) ep_defn3=ep_defn2-ep_defn1 if ep_defn3>0 : ud(ep_ug1+12)+=ep_defn3 } if epf1=2 { ; 魔攻、魔防 ud(ep_ug1+14)+=exp_n ep_mdfn2=int(round(double(ud(ep_ug1+2))/3.0)) ep_mdfn3=ep_mdfn2-ep_mdfn1 if ep_mdfn3>0 : ud(ep_ug1+15)+=ep_mdfn3 } } exp_n3=int(exp_g*1000000) ; 収納するexp値 if epf1=1 : ud(ep_ug1+51)=exp_n3 ; STR、保持するexp値 if epf1=2 : ud(ep_ug1+52)=exp_n3 ; MAG、保持するexp値 if epf1=3 : ud(ep_ug1+53)=exp_n3 ; INT、保持するexp値 if epf1=4 : ud(ep_ug1+54)=exp_n3 ; CHR、保持するexp値 return
基本的な式は次の通りで
exp_f=ep_ef/ep_jf ; 取得経験値
対象の値を自ユニットの能力値で割る、という単純なもの。
少数点で計算するために、経験値のデータは整数で保存しておいて、一度 /1000000で少数にしてから計算し、1.0を超えたらその分を能力値に加算し、残った少数をまた *1000000して整数にしてデータ保存しておく、という手法になってる。
最後の epfkは取得量の係数で、単純に 10 → 30だと取得量 3分の1になる。
敵能力値の比較の場合は主に戦闘で
#deffunc atk int _atkf,int _atkn,int _atkrg ; 攻撃(フラグ(0=素手、1=武器、2=魅惑)、攻撃値、射程) ------- atkf=_atkf atkn=_atkn atkrg=_atkrg atkn2=atkn : atkf2=atkf ; 攻撃処理用フラグ switch atkf case 0 ; 素手 if us=129 or us=94 : swbreak ; 物理アタックしない rang fs,atkrg : if en=0 : swbreak ; 射程外 ep 1,un,1,en,1,10 ; exp if us=152 { ; ピクシーの弓 btsn=13 : btsf2=0 : efs 3,16 ,1,1,8,0 : mmplays 35 ; 表示 atk_syo : bw 20 swbreak } bts 1 : atk_syo : bw 20 ; 表示、攻撃処理 swbreak case 1 ; 武器 ; 大砲 if id(ig)=90 { f=0 repeat 3,1 ; 3体いるか etf cnt : if en=0 : f=1 : break loop if atkrg<(ut-1)+2 : f=1 ; 真ん中に射程が届くか if f=0 { ; 3体の場合 et=2 : bts 3 : bw 7 ; 弾道エフェクト gsr=100 ; 中央 et=2 : etf et : if en>0 : ep 1,un,1,en,1,30 : atk_syo : bts 113 gsr=75 ; 左右 et=1 : etf et : if en>0 : ep 1,un,1,en,1,30 : atk_syo : bts 113 et=3 : etf et : if en>0 : ep 1,un,1,en,1,30 : atk_syo : bts 113 bw 13 ; 爆発ウエイト swbreak } rang fs,atkrg : if en=0 : swbreak ; 射程内に敵がいなかった ep 1,un,1,en,1,30 ; exp bts 3 : bw 7 ; 弾道エフェクト atk_syo : bts 113 ; 1体目 et+ : if et<=3 { etf et : if en=0 : bw 13 : swbreak ; 2体目にいない ep 1,un,1,en,1,30 ; exp gsr=75 : atk_syo : bts 113 ; 2体目 } bw 13 ; 爆発ウエイト swbreak } ; 弓、銃 if id(ig+19)=7 or id(ig+19)=8 or id(ig+19)=9 {;or id(ig+19)=10 { ; 弓、ボウガン、銃、手裏剣 atkrg2=atkrg ; 射程 if ud(ug+8)=28 : atkrg2+ ; 長射 if ud(ug+8)=26 or id(ig+8)=2 { ; 貫通 atkf2=0 repeat 3,1 : et=cnt if atkrg2<(ut-1)+et : break ; 射程外 etf et : if en=0 : continue ; 隊列にいない ep 1,un,1,en,1,30 ; exp atk_syo : gsr-=25 : atkf2+ ; 攻撃処理 loop if atkf2>0 : bts 3 : bw 20 swbreak } bown=1 ; 弓攻撃回数 if id(ig+19)=7 { ; 弓の場合 if ud(ug+8)=27 : bown+ ; 連射 repeat sbkn if ud(ug+40+cnt)<=0 : continue if id(ud(ug+40+cnt)*idb+8)=50 : bown+ ; 回数+ loop } repeat bown ; 弓攻撃 if ud(ug+8)!24 : rang fs,atkrg2 ; 通常 if ud(ug+8)=24 : brang atkrg2 ; スナイピング if en=0 : break ; 射程外 ep 1,un,1,en,1,bown*10 ; exp bts 3 : atk_syo : bw 6 ; 遠距離武器、表示、攻撃処理 gsr-=15 if ud(en*udb+26)<=0 : break ; ターゲットが死んだ場合連射終わり if fn_syof=1 : break ; 全滅 loop bw 14 swbreak } if fn_syof=1 : swbreak ; 全滅 ; 近接武器 rang fs,atkrg : if en=0 : swbreak ep 1,un,1,en,1,10 ; exp if ut=1 and et=1 : bts 2 : else : if id(ig+8)=1 : bts 3 : else : bts 2 ; 表示 atk_syo : bw 20 ; 近接武器、攻撃処理 swbreak case 2 ; 魅惑 bts 1 : atk_syo ; 攻撃処理 temp_atkf=1 : bw 20 : temp_atkf=0 swbreak swend if dm>=0 and ud(eg+26)>0 and ud(ug)=156 { temp 0,ud(ug+9),97 ; キューピッドのチャーム ep 1,un,4,en,4,10 ; exp } return
ep 1,un,1,en,1,10 ; exp
のようになっていて、1=STR、2=MAG、3=INT、4=CHR
国データ比較の場合は主に国力の増減や災害時に上がる。
*country ;---------- 国力の増減 ------------------------------------------------ repeat 25,1 m=cnt ; 国 if map(m)=0 : continue ; 地形無い pn=mpl(m) ; プレイヤーno. mgvg=pn*mgvb ; 政府データ先頭 mc=mpc(pn) ; 首都 mdg=m*mdb ; 国のデータ先頭 un1=mu(mdg) : ug1=un1*udb ; 領主 ;un2=0 : if pn>0 : un2=mu(mc*mdb) : ug2=un2*udb ; 首領 ; 人口増加 ------------------------------- n=50;20 ; 基礎増加値、10 if map(m)=3 : n+=30;20 ; 草原なら人口増加、20 ;if map(m)=5 : n+=10 ; 森、10 n+=md(mdg+2)/1000 ; 魔術Lvによる増加、100000で100 ; n+=md(mdg+4)/1000-50 ; 治安、100%で50 ; 建築物、その他、城30、砦20、市場70、公園10 if md(mdg+7)=1 : n+=30 ; 城 if md(mdg+7)=4 { ; 市場 n+=50 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+24) ; 補整、魅力 if ud(ug+8)=3 : n+=20 ; 行政、20 if ud(ug+8)=5 : n+=10 ; 祭司、10 if ud(ug+8)=8 : n+=10 ; 治安、10 ep 2,un,4,m,1,10 } } if md(mdg+7)=5 { ; 人材府 n+=10 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+24)*1/5 ; 補整、魅力 if ud(ug+8)=3 : n+=20*1/5 ; 行政、8 if ud(ug+8)=5 : n+=10*1/5 ; 祭司、4 if ud(ug+8)=8 : n+=10*1/5 ; 治安、4 ep 2,un,4,m,1,50 } } if md(mdg+7)=7 { ; 砦 n+=10 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+24)*1/5 ; 補整、魅力 if ud(ug+8)=3 : n+=20*1/5 ; 行政、8 if ud(ug+8)=5 : n+=10*1/5 ; 祭司、4 if ud(ug+8)=8 : n+=10*1/5 ; 治安、4 ep 2,un,4,m,1,50 } } if md(mdg+7)=9 { ; 寺院 n+=20 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+24)*2/5 ; 補整、魅力 if ud(ug+8)=3 : n+=20*2/5 ; 行政、8 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、4 if ud(ug+8)=8 : n+=10*2/5 ; 治安、4 ep 2,un,4,m,1,40 } } ; 領主 if un1>0 { n+=ud(ug1+24) ; 領主補整、魅力 if ud(ug1+8)=3 : n+=20 ; 行政、20 if ud(ug1+8)=5 : n+=10 ; 祭司、10 if ud(ug1+8)=8 : n+=10 ; 治安、10 ep 2,un1,4,m,1,10 } ; 政府 un=mgv(mgvg+1) : ug=un*udb ; 首領 if un>0 { n+=ud(ug+24)*1/5 ; 首領補整、魅力 if ud(ug+8)=3 : n+=20*1/5 ; 行政、4 if ud(ug+8)=5 : n+=10*1/5 ; 祭司、2 if ud(ug+8)=8 : n+=10*1/5 ; 治安、2 ep 2,un,4,m,1,50 } un=mgv(mgvg+2) : ug=un*udb ; 政務 if un>0 { n+=ud(ug+24)*2/5 ; 補整、魅力 if ud(ug+8)=3 : n+=20*2/5 ; 行政、8 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、4 if ud(ug+8)=8 : n+=10*2/5 ; 治安、4 ep 2,un,4,m,1,40 } mdg4n=mdg+4 n=int(round(double(n)*(100.0+(double(md(mdg4n))/1000.0-50.0))/100.0)) ; 治安、100%で+50%、0%で-50% ;if pn=1 : n11b=n ;md(mdg+1)+=md(mdg+1)*n/4000 ; 人口の増加 mdg1n=mdg+1 f1=double(md(mdg1n))*double(n)/4000.0 ; 人口の増加数 f2=1100000.0-double(md(mdg1n)) ; 上限補整率 md(mdg+1)+=int(round(f1/1100000.0*f2)) ; 人口の増加 ; 魔術増加 ------------------------------- n=50;20 ; 基礎増加値、20 if map(m)=2 : n+=40;20 ; 水辺なら魔術増加、20 if map(m)=5 : n+=10 ; 森、10 if map(m)=6 : n+=20 ; 沼 n+=md(mdg+3)/1000 ; マナによる増加、100000で100 ; 建築物、その他、城30、魔学院70、公園10、鍛冶30 if md(mdg+7)=1 : n+=30 ; 城 if md(mdg+7)=2 { ; 塔 n+=50 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+23) ; 補整、知力 if ud(ug+8)=4 : n+=20 ; 魔術、20 if ud(ug+8)=6 : n+=10 ; 製作、10 if ud(ug+8)=5 : n+=10 ; 祭司、10 ep 2,un,3,m,2,10 } } if md(mdg+7)=6 { ; 鍛冶 n+=20 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+23)*2/5 ; 補整、知力 if ud(ug+8)=4 : n+=20*2/5 ; 魔術、8 if ud(ug+8)=6 : n+=10*2/5 ; 製作、4 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、4 ep 2,un,3,m,2,40 } } if md(mdg+7)=9 { ; 寺院 n+=20 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+23)*2/5 ; 補整、知力 if ud(ug+8)=4 : n+=20*2/5 ; 魔術、8 if ud(ug+8)=6 : n+=10*2/5 ; 製作、4 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、4 ep 2,un,3,m,2,40 } } ; 領主 if un1>0 { n+=ud(ug1+23) ; 領主補整、知力 if ud(ug1+8)=4 : n+=20 ; 魔術、20 if ud(ug1+8)=6 : n+=10 ; 製作、10 if ud(ug1+8)=5 : n+=10 ; 祭司、10 ep 2,un1,3,m,2,10 } ; 政府 un=mgv(mgvg+1) : ug=un*udb ; 首領 if un>0 { n+=ud(ug+23)*1/5 ; 首領補整、知力 if ud(ug+8)=4 : n+=20*1/5 ; 魔術、4 if ud(ug+8)=6 : n+=10*1/5 ; 製作、2 if ud(ug+8)=5 : n+=10*1/5 ; 祭司、2 ep 2,un,3,m,2,50 } un=mgv(mgvg+3) : ug=un*udb ; 魔術 if un>0 { n+=ud(ug+23)*2/5 ; 補整、知力 if ud(ug+8)=4 : n+=20*2/5 ; 魔術、8 if ud(ug+8)=6 : n+=10*2/5 ; 製作、4 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、4 ep 2,un,3,m,2,40 } mdg4n=mdg+4 n=int(round(double(n*2)*(100.0+(double(md(mdg4n))/1000.0-50.0))/100.0)) ; 治安、100%で+50%、0%で-50% f1=double(n) mdg2n=mdg+2 f2=110000.0-double(md(mdg2n)) md(mdg+2)+=int(round(f1/110000.0*f2)) ; 魔術の増加 ; マナ増加 -------------------------------------- n=50;20 ; 基礎増加値%、20 if map(m)=4 : n+=20;40;20 ; 山ならマナ増加、20 if map(m)=5 : n+=10;20;10 ; 森、10 n+=md(mdg+1)/10000 ; 人口による増加、100000(1000人)で10 ; 建築物、その他、城30、ストーンサークル70、公園10 if md(mdg+7)=1 : n+=30 if md(mdg+7)=3 { ; ストーンサークル n+=50 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+22) ; 補整、魔力 if ud(ug+8)=5 : n+=20 ; 祭司、20 if ud(ug+8)=4 : n+=10 ; 魔術、10 if ud(ug+8)=8 : n+=10 ; 治安、10 ep 2,un,2,m,3,10 } } if md(mdg+7)=4 { ; 市場 n+=10 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+22)*1/5 ; 補整、魔力 if ud(ug+8)=5 : n+=20*1/5 ; 祭司、20 if ud(ug+8)=4 : n+=10*1/5 ; 魔術、10 if ud(ug+8)=8 : n+=10*1/5 ; 治安、10 ep 2,un,2,m,3,50 } } if md(mdg+7)=9 { ; 寺院 n+=20 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+22)*2/5 ; 補整、魔力 if ud(ug+8)=5 : n+=20*2/5 ; 祭司、20 if ud(ug+8)=4 : n+=10*2/5 ; 魔術、10 if ud(ug+8)=8 : n+=10*2/5 ; 治安、10 ep 2,un,2,m,3,40 } } ; 領主 if un1>0 { n+=ud(ug1+22) ; 領主補整、魔力 if ud(ug1+8)=5 : n+=20 ; 祭司、20 if ud(ug1+8)=4 : n+=10 ; 魔術、10 if ud(ug1+8)=8 : n+=10 ; 治安、10 ep 2,un1,2,m,3,10 } ; 政府 un=mgv(mgvg+1) : ug=un*udb ; 首領 if un>0 { n+=ud(ug+22)*1/5 ; 首領補整、魔力 if ud(ug+8)=5 : n+=20*1/5 ; 祭司、4 if ud(ug+8)=4 : n+=10*1/5 ; 魔術、2 if ud(ug+8)=8 : n+=10*1/5 ; 治安、2 ep 2,un,2,m,3,50 } un=mgv(mgvg+4) : ug=un*udb ; 宗教 if un>0 { n+=ud(ug+22)*2/5 ; 補整、魔力 if ud(ug+8)=5 : n+=20*2/5 ; 祭司、8 if ud(ug+8)=4 : n+=10*2/5 ; 魔術、4 if ud(ug+8)=8 : n+=10*2/5 ; 治安、4 ep 2,un,2,m,3,40 } mdg4n=mdg+4 n=int(round(double(n*2)*(100.0+(double(md(mdg4n))/1000.0-50.0))/100.0)) ; 治安、100%で+50%、0%で-50% f1=double(n) mdg3n=mdg+3 f2=110000.0-double(md(mdg3n)) md(mdg+3)+=int(round(f1/110000.0*f2)) ; マナの増加 ; 治安 ---------------------------------- n=50;20 ; 基礎増加値% if map(m)=5 : n+=10;20 ; 森なら治安増加、20 if map(m)=6 : n+=-10;20;10 ; 沼、10 ; 建築物、その他、城30、警察署70、砦+40、市場-20 if md(mdg+7)=1 : n+=30 ; 城 if md(mdg+7)=7 { ; 砦 n+=20 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+21)*2/5 ; 補整、筋力 if ud(ug+8)=8 : n+=20*2/5 ; 治安、20 if ud(ug+8)=3 : n+=10*2/5 ; 行政、10 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、10 ep 2,un,1,m,4,40 } } if md(mdg+7)=8 { ; 警察署 n+=50 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+21) ; 補整、筋力 if ud(ug+8)=8 : n+=20 ; 治安、20 if ud(ug+8)=3 : n+=10 ; 行政、10 if ud(ug+8)=5 : n+=10 ; 祭司、10 ep 2,un,1,m,4,10 } } if md(mdg+7)=9 { ; 寺院 n+=20 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+21)*2/5 ; 補整、筋力 if ud(ug+8)=8 : n+=20*2/5 ; 治安、20 if ud(ug+8)=3 : n+=10*2/5 ; 行政、10 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、10 ep 2,un,1,m,4,40 } } ; 領主 if un1>0 { n+=ud(ug1+21) ; 領主補整、筋力 if ud(ug1+8)=8 : n+=20 ; 治安、20 if ud(ug1+8)=3 : n+=10 ; 行政、10 if ud(ug1+8)=5 : n+=10 ; 祭司、10 ep 2,un1,1,m,4,10 } ; 政府 un=mgv(mgvg+1) : ug=un*udb ; 首領 if un>0 { n+=ud(ug+21)*1/5 ; 首領補整、筋力 if ud(ug+8)=8 : n+=20*1/5 ; 治安、4 if ud(ug+8)=3 : n+=10*1/5 ; 行政、2 if ud(ug+8)=5 : n+=10*1/5 ; 祭司、2 ep 2,un,1,m,4,50 } un=mgv(mgvg+5) : ug=un*udb ; 警察 if un>0 { n+=ud(ug+21)*2/5 ; 補整、筋力 if ud(ug+8)=8 : n+=20*2/5 ; 治安、8 if ud(ug+8)=3 : n+=20*2/5 ; 行政、4 if ud(ug+8)=5 : n+=10*2/5 ; 祭司、4 ep 2,un,1,m,4,40 } md(mdg+4)+=50000*n/4000 ; 治安の増加 if md(mdg+4)>100000 : md(mdg+4)=100000 ; 上限 ; 城壁値の増加 ---------- n=0 ; 建築物 if md(mdg+7)=1 { ; 城 if un1>0 { ; 城主 n+=ud(ug1+21)*2/5 ; 補整、筋力 if ud(ug1+8)=6 : n+=20*2/5 ; 製作、8 if ud(ug1+8)=3 : n+=10*2/5 ; 行政、4 if ud(ug1+8)=8 : n+=10*2/5 ; 治安、4 ep 2,un1,1,m,5,40 } } if md(mdg+7)=7 { ; 砦 un=mas(m) : ug=un*udb ; 支配人 if un>0 { n+=ud(ug+21)*2/5 ; 補整、筋力 if ud(ug+8)=6 : n+=20*2/5 ; 製作、8 if ud(ug+8)=3 : n+=10*2/5 ; 行政、4 if ud(ug+8)=8 : n+=10*2/5 ; 治安、4 ep 2,un,1,m,5,40 } } ; 司令官 un=com(m) : ug=un*udb ; 司令官 if un>0 { n+=(ud(ug+21)+ud(ug+22)+ud(ug+23)+ud(ug+24))*2/10 ; 補整、総力 if ud(ug+8)=6 : n+=20*2/5 ; 製作、8 if ud(ug+8)=3 : n+=10*2/5 ; 行政、4 if ud(ug+8)=8 : n+=10*2/5 ; 治安、4 ep 2,un,1,m,5,50 ep 2,un,2,m,5,50 ep 2,un,3,m,5,50 ep 2,un,4,m,5,50 } ; 政府 un=mgv(mgvg+6) : ug=un*udb ; 軍務 if un>0 { n+=(ud(ug+21)+ud(ug+22)+ud(ug+23)+ud(ug+24))*1/10 ; 首領補整、総力 if ud(ug+8)=6 : n+=20*1/5 ; 製作、4 if ud(ug+8)=3 : n+=10*1/5 ; 行政、2 if ud(ug+8)=8 : n+=10*1/5 ; 治安、2 ep 2,un,1,m,5,100 ep 2,un,2,m,5,100 ep 2,un,3,m,5,100 ep 2,un,4,m,5,100 } wal(m)+=n*10/15 n=1000 ; 最大値 if md(mdg+7)=1 : n=2000 ; 城 if md(mdg+7)=7 : n=1500 ; 砦 if wal(m)>n : wal(m)=n loop ;10000 ; で100人、100000で1000人200000で2000人 ;5000、魔術、50 ;5000、マナ、50 ;50000、治安、50% return
ep 2,un,4,m,1,10
m=国No.、1=人口、2=魔術、3=マナ、4=治安
un,4なので能力値は CHR、m,1なので m国の人口を対象、となってる。
数値はそのターンで増えた値となってる。
そのためユニットデータを 50個から 60個に増やして、51~54を経験値格納、55~58をターンの始めに元の能力値を控えておくデータにして、ターン中に増えた分との比較が表示されるようになってる。
経験値を取得する場所が多いので、まだ少し時間がかかる、今は魔法関連をやってる。