バトル関連のソースコード の変更点

Top > バトル関連のソースコード


*''概要'' [#o254d719]
#br
Battle.jsから抜き取ったソースコードなので公式なBattle関連のデータとなっている

何らかの参考になるかも
へなぽこや様が制作したファンデーション5のソースコードから"引用"させていただいています
#br
#br
Game_System.prototype.makeEnemyDatas_v2 = function() {
ゲームへのURLはこちら

this.removeEnemyDatas_v2();

var ActiveTime = 0;
https://game.nicovideo.jp/atsumaru/games/gm22140?link_in=index_wadai
#br
公式のデータということで何らかの役には立つと思います
#br
#br
#br
*''name, realname, maxhp, hp, atk'' [#o254d719]

おそらく激戦区のBattleコードの引用

名前とかhpとかatkはこういう風に定義されてるよって感じ
#br
if($gameVariables.value(149)==1){

var a = ["zombie1", "激戦区ゾンビ", 300000, 300000, 15000];

var b = ["zombie2", "激戦区ゾンビ", 300000, 300000, 15000];

var c = ["zombie3", "激戦区ゾンビ", 300000, 300000, 15000];
#br
$gameTemp.tempEnemyData = [a, b, c];

$gameTemp.tempEnemyData2 = [49, 528, 100, ActiveTime, 150];

}

else if($gameVariables.value(149)==2){

var a = ["zombie1", "激戦区ゾンビ", 600000, 600000, 25000];

var b = ["zombie2", "激戦区ゾンビ", 600000, 600000, 25000];

var c = ["zombie3", "激戦区ゾンビ", 600000, 600000, 25000];
#br
$gameTemp.tempEnemyData = [a, b, c];

$gameTemp.tempEnemyData2 = [61, 537, 100, ActiveTime, 200];

}

else if($gameVariables.value(149)==3){

var a = ["zombie1", "激戦区ゾンビ", 800000, 800000, 35000];

var b = ["zombie2", "激戦区ゾンビ", 800000, 800000, 35000];

var c = ["zombie3", "激戦区ゾンビ", 800000, 800000, 35000];
#br
$gameTemp.tempEnemyData = [a, b, c];

$gameTemp.tempEnemyData2 = [66, 537, 100, ActiveTime, 200];

}
#br
};
#br
Game_System.prototype.removeEnemyDatas_v2 = function() {

$gameTemp.tempEnemyData = null;

$gameTemp.tempEnemyData2= null;

};
#br
Game_System.prototype.showEnemyPicture_v2 = function() {

var r = Math.randomInt(3);

var name = "";

if(r == 0){

name = "zombie1";

}

else if(r == 1){

name = "zombie2";

}

else if(r == 2){

name = "zombie3";

}

$gameScreen.showPicture(32, name,   2, 240, 430, 100, 100, 255, 0);
#br
r = Math.randomInt(3);

if(r == 0){

name = "zombie1";

}

else if(r == 1){

name = "zombie2";

}

else if(r == 2){

name = "zombie3";

}

$gameScreen.showPicture(33, name,   2, 408, 430, 100, 100, 255, 0);
#br
r = Math.randomInt(3);

if(r == 0){

name = "zombie1";

}

else if(r == 1){

name = "zombie2";

}

else if(r == 2){

name = "zombie3";

}

$gameScreen.showPicture(34, name,   2, 576, 430, 100, 100, 255, 0);

};
#br
Game_System.prototype.showEnemyPicture_v2_c = function(n) {

var r = Math.randomInt(3);

var name = "";

if(r == 0){

name = "zombie1";

}

else if(r == 1){

name = "zombie2";

}

else if(r == 2){

name = "zombie3";

}
#br
var x=0;

var y=430;
#br
if(n == 32){

x=240;

}

else if(n == 33){

x=408;

}

else if(n == 34){

x=576;

}

$gameScreen.showPicture(n, name,   2, x, y, 100, 100, 255, 0);

};
#br
Game_System.prototype.battleSpeedTimePlus_v2 = function() {

var speed = $gameSystem.finalData[7];
#br
if(speed > $gameSystem.finalData[40]){

speed = $gameSystem.finalData[40];

}

if(speed > 900){

speed = 900;

}

$gameTemp.tempEnemyData2[3] += speed;

};
#br
Game_System.prototype.attackTurn_v2_enemyAtk = function(n) {

var EnemyAtk  = Math.max($gameTemp.tempEnemyData[n][4] - $gameSystem.finalData[3], 0);
#br
this.emitAnimation(19, 400+n*48, 512, false);
#br
//ダメージ半減

if($gameSystem.isCurrentWeapon_A() && $gameVariables.value(209)){

if(Math.randomInt(100) < $gameVariables.value(209)*3){

if(EnemyAtk>=2) EnemyAtk = Math.floor(EnemyAtk/2);

}

}
#br
//" src=

*''ダメージ回避'' [#o254d719]

ダメージを回避の計算式コードの引用
#br
if($gameSystem.isCurrentWeapon_C() && $gameVariables.value(215)){

if(Math.randomInt(100) < $gameVariables.value(215)*2){

if(EnemyAtk>0) EnemyAtk = 0;

}

}
#br
//" src=

*''ゴーレム'' [#o254d719]

if($gameSwitches.value(81)){

EnemyAtk -= this.calcGolemDef($gameSystem.actFriendly[0], $gameParty.numItems($dataItems[901]));

if(EnemyAtk < 0){

EnemyAtk = 0;

}

if($gameSwitches.value(421)){

if(EnemyAtk > 0 && $gameSystem.s1_kakusei_B($gameSystem.actFriendly[0], $gameParty.numItems($dataItems[901]))){

EnemyAtk = 0;

}

}

}
#br
//" src=

*''バフ:自動ガード'' [#o254d719]

自動ガードの効果計算式の引用
#br
if(EnemyAtk > 0 && $gameSystem.PartyBuff[5] > 0 && Math.randomInt(100) < 40){

EnemyAtk = 0;

$gameSystem.losePartyBuff(5, 1);

}
#br
$gameSystem.mainData[1]    -= EnemyAtk;
#br
*''踏ん張る'' [#o254d719]
//" src=
#br
踏ん張りの計算式の引用

if($gameSystem.isCurrentWeapon_A() && $gameVariables.value(213)){

if(Math.randomInt(100) < $gameVariables.value(213)*3){

if($gameSystem.mainData[1] <= 0) $gameSystem.mainData[1]=1;

}

}
#br
if($gameSystem.mainData[1] < 0){

$gameSystem.mainData[1] = 0;

}

};
#br
Game_System.prototype.attackTurn_v2_actorAtk = function() {

var critical = false;

var hitCount = 1;

var exDmg = 0;
#br
//" src=

*''Hit回数判定'' [#o254d719]

Hit回数判定の引用

if($gameActors.actor(1).equips()[0] && $gameActors.actor(1).equips()[0].meta["Type"] == "敏捷"){

hitCount = Math.randomInt(3+$gameVariables.value(211))+1;

}

if($gameActors.actor(1).equips()[0] && $gameActors.actor(1).equips()[0].meta["Type"] == "集中"){

exDmg = Math.floor($gameSystem.finalData[2] * Math.random()/2);

}
#br
//クロエJOB

*''クロエJOB'' [#o254d719]

クロエjob計算式の引用

if($gameSystem.actJobData[20] > 0){

if($gameSwitches.value(92) && $gameSwitches.value(412) && $gameParty.numItems($dataItems[912]) >= 2){

if(Math.randomInt(100) < $gameSystem.actJobData[20]*2){

hitCount += 1;

}

}else{

if(Math.randomInt(100) < $gameSystem.actJobData[20]){

hitCount += 1;

}

}

}
#br
//珠

*''珠'' [#o254d719]

珠の計算式の引用

if($gameSwitches.value(313)){

hitCount += 1;

}
#br
//ポイッツァ

*''ポイッツァ'' [#o254d719]

ぽイッツアの計算式の引用

if($gameSwitches.value(83)){

exDmg += $gameSystem.calcPoittuaAtk($gameSystem.actFriendly[2], $gameParty.numItems($dataItems[903]));

}
#br
//" src=

*''火のオーラ'' [#o254d719]

火のオーラの計算式の引用
#br
if($gameSwitches.value(452) && $gameParty.hasItem($dataItems[1962])){

$gameParty.gainItemPureNonR($dataItems[1962], -1);

if($gameSwitches.value(452) && !$gameParty.hasItem($dataItems[1962])){

$gameSwitches.setValue(452, false);

}

hitCount += 1;

}
#br
//" src=

*''クリ判定'' [#o254d719]

クリティカル判定の計算式の引用
#br
if(Math.randomInt(100) < $gameSystem.finalData[6]){

critical = true;

this.emitAnimation(20, 408, 288, false);

}else{

this.emitAnimation(20, 408, 288, false);

}
#br
//" src=

*''Dmg計算'' [#o254d719]

ダメージの計算式の引用
#br
var playerAtk = Math.max((($gameSystem.finalData[2]*hitCount)+exDmg), 0);
#br
//" src=

*''ダメージ補正熟練系'' [#o254d719]

熟練系ダメージ補正の計算式の引用
#br
if($gameSystem.isCurrentWeapon_A() && $gameVariables.value(201)){

playerAtk += $gameSystem.calcAddPa(playerAtk, $gameVariables.value(201), 0.03);

}

else if($gameSystem.isCurrentWeapon_B() && $gameVariables.value(202)){

playerAtk += $gameSystem.calcAddPa(playerAtk, $gameVariables.value(202), 0.03);

}

else if($gameSystem.isCurrentWeapon_C() && $gameVariables.value(203)){

playerAtk += $gameSystem.calcAddPa(playerAtk, $gameVariables.value(203), 0.03);

}

else if($gameSystem.isCurrentWeapon_D() && $gameVariables.value(204)){

playerAtk += $gameSystem.calcAddPa(playerAtk, $gameVariables.value(204), 0.03);

}
#br
if(critical){

if($gameSystem.PartyBuff && $gameSystem.PartyBuff[4]){

playerAtk *= 5;

$gameSystem.losePartyBuff(4, 1);

}else{

playerAtk *= 2;

}

}
#br
//" src=

*''うちでの合槌'' [#o254d719]

うちでの合計算式の引用
#br
if($gameParty.hasItem($dataItems[1956])){

if($gameSwitches.value(446)){

playerAtk *= 5;

$gameParty.gainItemPure($dataItems[1956], -1);

if(!$gameParty.hasItem($dataItems[1956])){

$gameSwitches.setValue(446, false);

}

}

}else{

if($gameSwitches.value(446)){

$gameSwitches.setValue(446, false);

}

}
#br
//" src=

*''popUp作成'' [#o254d719]

popup作成の計算式の引用
#br
$gameTemp.BattleDamagePopUp = [playerAtk+" ( "+ Math.floor(playerAtk/3) +" ) ", hitCount, 40];
#br
$gameTemp.tempEnemyData[0][3] -= Math.floor(playerAtk/3);

$gameTemp.tempEnemyData[1][3] -= Math.floor(playerAtk/3);

$gameTemp.tempEnemyData[2][3] -= Math.floor(playerAtk/3);
#br
//" src=

*''稀に生き残る'' [#o254d719]

稀に生き残る計算式の引用
#br
if($gameTemp.tempEnemyData[0][3] < 0){

if(Math.randomInt(3)==0) $gameTemp.tempEnemyData[0][3] = 1;

}

if($gameTemp.tempEnemyData[1][3] < 0){

if(Math.randomInt(3)==0) $gameTemp.tempEnemyData[1][3] = 1;

}

if($gameTemp.tempEnemyData[2][3] < 0){

if(Math.randomInt(3)==0) $gameTemp.tempEnemyData[2][3] = 1;

}
#br
if($gameTemp.tempEnemyData[0][3] < 0){

$gameTemp.tempEnemyData[0][3] = 0;

}

if($gameTemp.tempEnemyData[1][3] < 0){

$gameTemp.tempEnemyData[1][3] = 0;

}

if($gameTemp.tempEnemyData[2][3] < 0){

$gameTemp.tempEnemyData[2][3] = 0;

}

};
#br
Game_System.prototype.reviveV2enemy = function(n) {

$gameTemp.tempEnemyData[n][3] = $gameTemp.tempEnemyData[n][2];

};
#br
Game_System.prototype.makeGetBattleDrops_v2 = function(n) {

$gameTemp.BattleDropPop = [false, 40, 1,0, 0,0, 0,0];
#br
var item = null;

var num = 0;
#br
//通常

*''通常'' [#o254d719]

通常についての引用
#br
item = $dataItems[1];

num  = $gameTemp.tempEnemyData2[4] + $gameSystem.finalData[8];
#br
//不死鳥の気

*''不死鳥の気'' [#o254d719]

不死鳥の気の引用
#br
if($gameParty.hasItem($dataItems[1953])){

if($gameSwitches.value(443)){

num *= 5;

$gameParty.gainItemPure($dataItems[1953], -1);

if(!$gameParty.hasItem($dataItems[1953])){

if(!$gameSwitches.value(644)) $gameSwitches.setValue(443, false);

}

}

}else{

if($gameSwitches.value(443)){

if(!$gameSwitches.value(644)) $gameSwitches.setValue(443, false);

}

}
#br
//冬にんじん

*''冬にんじん'' [#o254d719]

冬にんじんの計算の引用
#br
if($gameParty.hasItem($dataItems[1965])){

if($gameSwitches.value(455)){

num += 5;

if($gameParty.hasExtraNo(344)){

num += 5;

}

$gameParty.gainItemPure($dataItems[1965], -1);

if(!$gameParty.hasItem($dataItems[1965])){

if(!$gameSwitches.value(644)) $gameSwitches.setValue(455, false);

}

}

}else{

if($gameSwitches.value(455)){

if(!$gameSwitches.value(644)) $gameSwitches.setValue(455, false);

}

}
#br
$gameParty.gainItem(item, num, false, true);
#br
//ベル盗む

*''ベル盗む'' [#o254d719]

if($gameSystem.isCurrentWeapon_D() && $gameVariables.value(212)){

$gameParty.gainItemPureNonR($dataItems[2], $gameVariables.value(212));

}
#br
//小銭泥棒

*''小銭泥棒'' [#o254d719]

if($gameSystem.PartyBuff[11] > 0){

$gameParty.gainItemPureNonR($dataItems[2], Math.randomInt(16)+5);

$gameSystem.losePartyBuff(11, 1);

}
#br
//ぶんどる

*''ぶんどる'' [#o254d719]

if($gameSystem.isCurrentWeapon_D() && $gameVariables.value(216)){

if(Math.randomInt(100) < $gameVariables.value(216)*1){

$gameParty.gainItemPureNonR($dataItems[1956], 1);

}

}
#br
//通常ドロップ作成

*''通常ドロップ作成'' [#o254d719]

通常ドロップ作成の計算式の引用
#br
item = null;

num  = 0;
#br
if(Math.randomInt(100) < 100+$gameSystem.finalData[11]){

item = $dataItems[$gameTemp.tempEnemyData2[0]];

num  = $gameSystem.finalData[9];
#br
コメント:100-1000まで

num += this.makeExtraDropsNumberA(100+$gameSystem.finalData[11]);
#br
コメント:それ以降で熟練対応

num += this.makeExtraDropsNumberB(100+$gameSystem.finalData[11]);
#br
if($gameSystem.actJobData[2] > 0){

num += $gameSystem.calcAddPa(num, $gameSystem.actJobData[2], 0.05);

}
#br
コメント;フェンリル覚醒

if($gameSwitches.value(89) && $gameSwitches.value(409) && $gameParty.numItems($dataItems[909]) >= 2){

num += 10;

}
#br
if(Math.randomInt(100) < Math.floor($gameSystem.actJobData[26]/2)){

num *= 2;

}
#br
$gameParty.gainItemPureNonR(item, num);
#br
$gameTemp.BattleDropPop[4] = item.id;

$gameTemp.BattleDropPop[5] = num;

}
#br
//" src=

*''レアドロップ作成'' [#o254d719]

レアドロップ作成の計算式の引用
#br
item = null;

num  = 0;
#br
if(Math.randomInt(100) < 100+$gameSystem.finalData[12]){

item = $dataItems[$gameTemp.tempEnemyData2[1]];

num  = $gameSystem.finalData[10];
#br
コメント;100-1000まで

num += this.makeExtraDropsNumberA(100+$gameSystem.finalData[12]);
#br
コメント:それ以降で熟練対応

num += this.makeExtraDropsNumberB(100+$gameSystem.finalData[12]);
#br
if($gameSystem.actJobData[9] > 0){

num += $gameSystem.calcAddPa(num, $gameSystem.actJobData[9], 0.06);

}
#br
コメント;フェンリル覚醒

if($gameSwitches.value(89) && $gameSwitches.value(429) && $gameParty.numItems($dataItems[909]) >= 3){

num += 10;

}
#br
if(Math.randomInt(100) < Math.floor($gameSystem.actJobData[26]/2)){

num *= 2;

}
#br
$gameParty.gainItemPureNonR(item, num);

$gameSystem.GameCounts[17] += num;
#br
$gameTemp.BattleDropPop[6] = item.id;

$gameTemp.BattleDropPop[7] = num;

}
#br
this.makeGetBattleDropsBread_v2();

this.makeGetAnubisWeapon();

this.getJukurenDama();
#br
//" src=

*''POPUP'' [#o254d719]

if(n == 1){

$gameTemp.BattleDropPop1 = $gameTemp.BattleDropPop.slice(0, $gameTemp.BattleDropPop.length);

}else if(n == 2){

$gameTemp.BattleDropPop2 = $gameTemp.BattleDropPop.slice(0, $gameTemp.BattleDropPop.length);

}else if(n == 3){

$gameTemp.BattleDropPop3 = $gameTemp.BattleDropPop.slice(0, $gameTemp.BattleDropPop.length);

}

$gameTemp.BattleDropPop = null;

};
#br
Game_System.prototype.makeGetBattleDropsBread_v2 = function() {

var rate = 1;
#br
if($gameSwitches.value(84) && $gameSwitches.value(404) && $gameParty.numItems($dataItems[904]) >= 3){

rate = 2;

}
#br
if(Math.randomInt(100) < rate){

AudioManager.playSe({"name":"Sound1","volume":90,"pitch":100,"pan":0});

var rnd = Math.randomInt(5);

if(rnd == 0){

$gameParty.gainItem($dataItems[961], 1);

$gameTemp.BattleDropPop[8] = $dataItems[961];

}

if(rnd == 1){

$gameParty.gainItem($dataItems[962], 1);

$gameTemp.BattleDropPop[8] = $dataItems[962];

}

if(rnd == 2){

$gameParty.gainItem($dataItems[963], 1);

$gameTemp.BattleDropPop[8] = $dataItems[963];

}

if(rnd == 3){

$gameParty.gainItem($dataItems[964], 1);

$gameTemp.BattleDropPop[8] = $dataItems[964];

}

if(rnd == 4){

$gameParty.gainItem($dataItems[965], 1);

$gameTemp.BattleDropPop[8] = $dataItems[965];

}

}

};