バトル関連のソースコード の変更点
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]; } } };