倉庫絆

アニメやゲームを中心に、身の周りで起こったことをだらだらと綴る自己満日記です。
記事を読んで不愉快にさせてしまった場合は、当方では責任を負いかねますのでご了承お願い致します。

 

シミュ改修


Edit ゲーム    登録タグ  PSO2   能力追加 
前回のブログ『新しい能力とその効果』を確認したところで、実際のプログラム改修編です。
ミューテーションIIを除き、○○・ジ・ソールまでであれば
プログラムの改修は一切無く、params.jsonのみで対応出来ます。

まずは新規ソールの追加から。(abilityListを編集)
/* 特殊ソール */
{code:'SH01',gid:'D',name:'トウオウ・ソール', extend:[0,60,90],effect:'ALL(+10)'},
{code:'SH10',gid:'D',name:'アクト・ジ・ソール',extend:[0,25,40],effect:'打撃力(+35),PP(+3)'},
{code:'SH20',gid:'D',name:'ティル・ジ・ソール',extend:[0,25,40],effect:'射撃力(+35),PP(+3)'},
{code:'SH30',gid:'D',name:'マギー・ジ・ソール',extend:[0,25,40],effect:'法撃力(+35),PP(+3)'},

次にソール・レセプターとの組み合わせ成功率を追加。(extendAbilityを編集)
/* ソールレセプター、トウオウ・ソールの組み合わせを100%とする場合 */
{base: ['XA01', 'SH01'], ref: 'SH01', success: 100},

最後に○○・ジ・ソールが生成される組み合わせを追加。(extendAbilityを編集)
/*トウオウソール+各種ソール=XX・ジ・ソール*/
{base:['SH01','RA11'],ref:['SH10','SH20','SH30'],success:70},/* グンネ・ソール */
{base:['SH01','RA15'],ref:['SH10','SH20','SH30'],success:70},/* ジグモル・ソール */
{base:['SH01','RA21'],ref:['SH10','SH20','SH30'],success:70},/* ヴォル・ソール */
{base:['SH01','RA23'],ref:['SH10','SH20','SH30'],success:70},/* クォーツ・ソール */
{base:['SH01','RB22'],ref:['SH10','SH20','SH30'],success:70},/* ファング・ソール */
{base:['SH01','RC13'],ref:['SH10','SH20','SH30'],success:70},/* ネプト・ソール */
{base:['SH01','RH21'],ref:['SH10','SH20','SH30'],success:70},/* スノウ・ソール */
{base:['SH01','RH23'],ref:['SH10','SH20','SH30'],success:70},/* エクス・ソール */
{base:['SH01','RJ22'],ref:['SH10','SH20','SH30'],success:70},/* ヴァーダー・ソール */
{base:['SH01','RJ22'],ref:['SH10','SH20','SH30'],success:70},/* シュレイダ・ソール */
{base:['SH01','ROA2'],ref:['SH10','SH20','SH30'],success:70},/* メデューナ・ソール */
{base:['SH01','ROC1'],ref:['SH10','SH20','SH30'],success:70},/* リンガ・ソール */
{base:['SH01','ROE1'],ref:['SH10','SH20','SH30'],success:70} /* バル・ソール */

上記コードは、トウオウ・ソールのコード値を「SH01」と仮定した場合の内容です。

次にミューテーションIIの対応手順です。
こちらは既存のコードをほぼ流用しているため、決して複雑ではありません。
あくまでも可変長に対応しないミューテーションIIそのものも改修手順になります。

まずは新規能力の追加から。(abilityListを編集)
/* ミューテーション(O) */
{code:'OA01',gid:'A+',name:'ミューテーションI', lvup:'OA02',extend:[0,50,80], effect:'打撃力(+10),<br>射撃力(+10),<br>法撃力(+10),<br>HP(+10)'},
{code:'OA02',gid:'A+',name:'ミューテーションII', extend:[0,50,80],generate:[0,10,30,50],effect:'打撃力(+15),<br>射撃力(+15),<br>法撃力(+15),<br>HP(+15)'},

次に同ファイル内のブーストポイントを編集します。(boostPointを編集)
/* ミューテーションI利用時 */
'mutation1':{
/* 生成時のブースト値 */
'create':{
'1':[0,0,0,30,0,0], /* ステータス上昇系 */
'2':[0,0,0,30,0,0], /* レジスト上昇系 */
'3':[0,0,0,40,0,0] /* 状態異常系 */
}
},
/* ミューテーションII利用時 */
'mutation2':{
/* 生成時のブースト値 */
'create':{
'1':[0,0,0,40,30,0], /* ステータス上昇系 */
'2':[0,0,0,40,30,0], /* レジスト上昇系 */
'3':[0,0,0,50,30,0] /* 状態異常系 */
}
},


最後にability.jsをコピペ編集します。
/** ミューテーションIコード */
mutationICd: 'OA01',


/** ミューテーションIIコード */
mutationIICd: 'OA02',

メソッドを複製。
isMutationI: function() {
var me = this;
return 0 < me.hashStack[me.mutationICd];
},
isMutationII: function() {
var me = this;
return 0 < me.hashStack[me.mutationIICd];
},

最後にcalcSuccessにコードを埋め込んで完成。
calcSuccess: function(as, rec) {
var me = this,
ext = rec.get('extend'),
gen = rec.get('generate'),
status = rec.get('status'),
exboost = rec.get('exboost'),
cd = rec.get('code'),
useM1 = as.isMutationI(),
useM2 = as.isMutationII(),
useP = as.isPhotonCollect(),
level = me.getLevel(rec.get('name')),
s1 = 0, s2 = 0, s3 = 0, s4 = 0, boostFn = function(type) {
var sp = 0, sm1 = 0, sm2 = 0, ss = 0;

/* フォトンコレクト利用時のブースト値 */
if (me.constBoostPoint['photon'][type] && me.constBoostPoint['photon'][type][status])
sp = useP? me.constBoostPoint['photon'][type][status][level]: 0;

/* ミューテーションI利用時のブースト値 */
if (me.constBoostPoint['mutation1'][type] && me.constBoostPoint['mutation1'][type][status])
sm1 = useM1? me.constBoostPoint['mutation1'][type][status][level]: 0;

/* ミューテーションII利用時のブースト値 */
if (me.constBoostPoint['mutation2'][type] && me.constBoostPoint['mutation2'][type][status])
sm2 = useM2? me.constBoostPoint['mutation2'][type][status][level]: 0;


if (0 <= me.indexOf(as.exStack, cd)) {
/* 生成 or 継承率ブースト系が存在する場合の加算 */
if (me.constBoostPoint['soul'][type] && me.constBoostPoint['soul'][type][status])
ss = me.constBoostPoint['soul'][type][status][level];
}
return Math.max(sp, sm1, sm2, ss);
};

実際のゲームでは試しておらず、仕様からのコード対応のみです。
式や確立に間違いがあった場合は大変申し訳ございません。

最新版対応のシミュレーターはこちら

追記:フォトンコレクト、ソールレセプターを使用した場合、
同名ボーナスは適用されません。このプログラムは未対応です。

そろそろUI以外のロジックを見直さないと、限界が来そう。(;^ω^)
スポンサーサイト
Community テーマ - PHANTASY STAR ONLINE 2  ジャンル - ゲーム

Newer Entryシンブレ2コラボ

Older Entry新しい能力とその効果

 
09 2017
SUN MON TUE WED THU FRI SAT
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

08 10


 
プロフィール

Pulsar

Author:Pulsar
アニメ、東方、フィギュア、萌える物ならなんでも手を出してしまう深刻な患者。

プレイ中のゲーム
PSO2 - 8鯖のヒュマ子
FF14 - とんべりの猫娘
777Town - 重症レベル

 
 
ユーザータグ
 


ARCHIVE RSS