対Mobデバフについて - roratorio-hub/ratorio GitHub Wiki

roro/m/js/mobconfdebuf.js でデバフ状態を選択させて
roro/m/js/mob.jsro4/m/js/head.js などでデバフ状態に応じた計算を行っている

mobconfdebuf.js

# 定義して
MOB_CONF_DEBUF_ID_STRIP_WEAPON = MobConfDebufId;
MobConfDebufData = [
	MobConfDebufId,
	MobConfDebufText("ストリップウェポン"),
	MobConfDebufControlType(CONTROL_TYPE_CHECKBOX),
	MobConfDebufDefaultValue(0),
	MobConfDebufMinValue(0),
	MobConfDebufMaxValue(1)
];
MobConfDebufOBJ[MobConfDebufId] = MobConfDebufData;
MobConfDebufId++;

# 追加する
MobConfDebufOBJSorted[MobConfDebufOBJSorted.length] = MobConfDebufOBJ[MOB_CONF_DEBUF_ID_STRIP_WEAPON];

mob.js

Mobのステータスに影響する処理は GetMobDataParameters() に書く
書く場所を間違えると効果が発揮されないので以下のようなコメントを頼りに
適切な定義場所を探して書くこと

//----------------------------------------------------------------
// 「モンスター状態異常 ストリップウェポン」の効果
//----------------------------------------------------------------
if (n_B_IJYOU[MOB_CONF_DEBUF_ID_STRIP_WEAPON]) {
	mobData[MONSTER_DATA_EXTRA_INDEX_ATK_MIN] -= Math.floor(mobData[MONSTER_DATA_EXTRA_INDEX_ATK_MIN] * 25 /100);
	mobData[MONSTER_DATA_EXTRA_INDEX_ATK_MAX] -= Math.floor(mobData[MONSTER_DATA_EXTRA_INDEX_ATK_MAX] * 25 /100);
}

head.js

デバフ状態は n_B_IJYOU[MOB_CONF_DEBUF_ID_ORATIO] のように取得出来る
例えばオラティオの処理は以下の通り

// 聖属性武器、かつ、オラティオ状態の場合(判定順序は意図的に変えてある)
if ((bufLv = n_B_IJYOU[MOB_CONF_DEBUF_ID_ORATIO]) > 0) {
	if (n_A_Weapon_zokusei == ELM_ID_HOLY) {
		// 特定の戦闘エリアでの補正
		switch (n_B_TAISEI[MOB_CONF_PLAYER_ID_SENTO_AREA]) {
		case MOB_CONF_PLAYER_ID_SENTO_AREA_YE_COLOSSEUM:
			wX -= 40 + 5 * bufLv + 5 * Math.max(0, (bufLv - 8));
			break;
		default:
			wX -= 5 * bufLv;
			break;
		}
	}
}