小夜曲 發表於 2016-8-5 15:39:08

求U6的毁月公式,管理。。

RT。。或者做一个毁月计算器出来,,之前的那个毁月计算器没有U6的。。。


{:4_202:}

admin 發表於 2016-8-5 16:38:01

http://tools.myxnova.com/index.html
計算小工具已經更新
還加了殖民星數量的計算

小夜曲 發表於 2016-8-5 16:50:03

a950216t 發表於 2016-8-5 04:38 PM
http://tools.myxnova.com/index.html
計算小工具已經更新
還加了殖民星數量的計算


多谢老板。。。{:4_204:}

小夜曲 發表於 2016-8-5 17:01:37

a950216t 發表於 2016-8-5 04:38 PM
http://tools.myxnova.com/index.html
計算小工具已經更新
還加了殖民星數量的計算


我问一句,,关于毁月,,是怎么计算的?是需要打穿防御方的防御和留守部队?还是直接计算DS进行毁月。

admin 發表於 2016-8-5 17:17:14

小夜曲 發表於 2016-8-5 05:01 PM
我问一句,,关于毁月,,是怎么计算的?是需要打穿防御方的防御和留守部队?还是直接计算DS进行毁月。 ...

先進行普通戰鬥
還有剩餘艦隊與死星
便會進行毀月
foreach ($fleetAttack as $fleetID => $fleetDetail)
                {
                        $fleetArray = '';
                        $totalCount = 0;
                       
                        $fleetDetail['unit']        = array_filter($fleetDetail['unit']);
                        foreach ($fleetDetail['unit'] as $elementID => $amount)
                        {                               
                                $fleetArray .= $elementID.','.floattostring($amount).';';
                                $totalCount += $amount;
                        }
                       
                        if($totalCount == 0)
                        {
                                if($this->_fleet['fleet_id'] == $fleetID)
                                {
                                        $this->KillFleet();
                                }
                                else
                                {
                                        $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";
                                        $sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";
                                }
                               
                                $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
                        }
                        elseif($totalCount > 0)
                        {
                                $sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
                                $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
                        }
                        else
                        {
                                throw new Exception("Negative Fleet amount ....");
                        }
                }
               
                foreach ($fleetDefend as $fleetID => $fleetDetail)
                {
                        if($fleetID != 0)
                        {
                                $fleetArray = '';
                                $totalCount = 0;
                               
                                $fleetDetail['unit']        = array_filter($fleetDetail['unit']);
                                foreach ($fleetDetail['unit'] as $elementID => $amount)
                                {                               
                                        $fleetArray .= $elementID.','.floattostring($amount).';';
                                        $totalCount += $amount;
                                }
                       
                                if($totalCount == 0)
                                {
                                        $sqlQuery .= "DELETE FROM ".FLEETS." WHERE fleet_id = ".$fleetID.";";
                                        $sqlQuery .= "DELETE FROM ".FLEETS_EVENT." WHERE fleetID = ".$fleetID.";";
                                        $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_state = 2 WHERE fleet_id = '".$fleetID."';";
                                }
                                elseif($totalCount > 0)
                                {
                                        $sqlQuery .= "UPDATE ".FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."' WHERE fleet_id = '".$fleetID."';";
                                        $sqlQuery .= "UPDATE ".LOG_FLEETS." SET fleet_array = '".substr($fleetArray, 0, -1)."', fleet_amount = '".$totalCount."', fleet_state = 1 WHERE fleet_id = '".$fleetID."';";
                                }
                                else
                                {
                                        throw new Exception("Negative Fleet amount ....");
                                }
                        }
                        else
                        {
                                $fleetArray = array();
                                foreach ($fleetDetail['unit'] as $elementID => $amount)
                                {                               
                                        $fleetArray[] = $resource[$elementID]." = ".$amount;
                                }
                               
                                if(!empty($fleetArray))
                                {
                                        $sqlQuery .= "UPDATE ".PLANETS." SET ".implode(', ', $fleetArray)." WHERE id = '".$this->_fleet['fleet_end_id']."';";
                                }
                        }
                }
               
                $GLOBALS['DATABASE']->multi_query($sqlQuery);
               
                if ($combatResult['won'] == "a")
                {
                        require_once('calculateSteal.php');
                        $stealResource = calculateSteal($fleetAttack, $targetPlanet);
                }
               
                if($this->_fleet['fleet_end_type'] == 3)
                {
                        // Use planet debris, if attack on moons
                        $targetPlanet                 = array_merge(
                                $targetPlanet,
                                $GLOBALS['DATABASE']->getFirstRow("SELECT der_metal, der_crystal FROM ".PLANETS." WHERE id_luna = ".$this->_fleet['fleet_end_id'].";")
                        );
                }
               
                foreach($debrisRessource as $elementID)
                {
                        $debris[$elementID]                        = $combatResult['debris']['attacker'][$elementID] + $combatResult['debris']['defender'][$elementID];
                        $planetDebris[$elementID]        = $targetPlanet['der_'.$resource[$elementID]] + $debris[$elementID];
                }
               
                $debrisTotal                = array_sum($debris);
               
                $raportInfo        = array(
                        'thisFleet'                                => $this->_fleet,
                        'debris'                                => $debris,
                        'stealResource'                        => $stealResource,
                        'moonChance'                        => null,
                        'moonDestroy'                        => true,
                        'moonName'                                => null,
                        'moonDestroyChance'                => null,
                        'moonDestroySuccess'        => null,
                        'fleetDestroyChance'        => null,
                        'fleetDestroySuccess'        => false,
                );

      $destext      = "";
               
                switch($combatResult['won'])
                {
                        case "a"://勝利
                                $moonDestroyChance        = round((100 - sqrt($targetPlanet['diameter'])) * sqrt($fleetAttack[$this->_fleet['fleet_id']]['unit']), 1);
                               
                                // Max 100% | Min 0%
                                $moonDestroyChance        = min($moonDestroyChance, 100);
                                $moonDestroyChance        = max($moonDestroyChance, 0);
                               
                                $randChance        = mt_rand(1, 100);
if ($randChance <= $moonDestroyChance)
//毀月成功

小夜曲 發表於 2016-8-5 17:23:23

a950216t 發表於 2016-8-5 05:17 PM
先進行普通戰鬥
還有剩餘艦隊與死星
便會進行毀月

{:4_194:}   ok,多谢老板!

小夜曲 發表於 2016-8-5 18:13:18

a950216t 發表於 2016-8-5 05:17 PM
先進行普通戰鬥
還有剩餘艦隊與死星
便會進行毀月

我又来问问题了。。。


                                    比如A发DS目标C的月球,同时A联合B出攻击舰队进行正常战斗,

                                                那么正常战斗是A+B的舰队对抗C的防守舰队和防御。。。。如果A+B正常战斗胜利,然后进行毁月计算,那么B的联合舰队是否会计算到毁月公式里面。


                                                          还有,,毁月成功后,如果ds成功离开就没事,,如果ds被毁,是否会出渣,出的渣是否会重新计算出月概率。

                                       这个麻烦回答下=。={:4_176:}

admin 發表於 2016-8-5 19:26:13

小夜曲 發表於 2016-8-5 06:13 PM
我又来问问题了。。。



比如A发DS目标C的月球,同时A联合B出攻击舰队进行正常战斗,

                                                那么正常战斗是A+B的舰队对抗C的防守舰队和防御。。。。如果A+B正常战斗胜利,然后进行毁月计算,那么B的联合舰队是否会计算到毁月公式里面。

ogame可是没有联合毁月功能的。
联合攻击只是一般攻击罢了
没有联合毁月这种事

比如A发DS目标C的月球,同时A联合B出攻击舰队进行正常战斗,

                                                那么正常战斗是A+B的舰队对抗C的防守舰队和防御。。。。如果A+B正常战斗胜利,然后进行毁月计算,那么B的联合舰队是否会计算到毁月公式里面。


                                                          还有,,毁月成功后,如果ds成功离开就没事,,如果ds被毁,是否会出渣,出的渣是否会重新计算出月概率。
死星撞月,大概會有四種狀況
第一:月球爆了,死星沒事
第二:月球爆了,死星也爆了
第三:月球沒事,死星沒事
第四:月球沒事,死星爆了

目前飛仔搜集到的死星撞月的訊息有:
第一:
目前尚未得到
20070505補充:
Flotte 月球攻擊
你的艦隊來自星球 月球 [] 到達 星球的月球 . 你的死星的武器系統開始對月球射擊一波波的重力震動波, 震波間開始產生共鳴, 最終摧毀了整個月球. 所有在月球的建築都被摧毀. 多麼偉大的一刻!! 你的艦隊安全地返回母星.

第二:
你 的艦隊來自星球 到達 星球的月球 . 你死星的武器系統開始對月球發射一波波的重力震動波. 微弱的震動漸漸增加, 直到月球碎成碎片. 大塊的殘骸飛向你的艦隊. 現在要避開太慢了,你所有的艦隊就這樣化成灰燼!
月球毀損的機率: 72 %, 艦隊毀損的機率: 32 %
(飛仔慘痛經驗)

第三:
你的艦隊從 月球 到達 的星球的月球 月球的地質結構不夠穩固, 因此艦隊回到母星.
月球毀損的機率: 60 %, 艦隊毀損的機率: 35 %
(飛仔自身經驗)

第四:(官網 zoehe 提供)
你的艦隊來自星球 到達 星球的月球. 你死星的武器系統開始對月球發射一波波的重力震動波,但是事情看來不很順利: 重力波彈回死星, 所產生的共鳴使死星碎成碎片. 而且不幸地,餘留的震波也把所有伴隨的艦隊摧毀了...
造月成功廢墟會消失
造月失敗廢墟依然在

小夜曲 發表於 2016-8-5 19:42:29

a950216t 發表於 2016-8-5 07:26 PM

ogame可是没有联合毁月功能的。
联合攻击只是一般攻击罢了


也就是说,,毁月舰队只能纯ds么? ??

admin 發表於 2016-8-5 20:28:17

小夜曲 發表於 2016-8-5 07:42 PM
也就是说,,毁月舰队只能纯ds么? ??

没有规定要纯DS
但毁月舰队里一定要有ds

可以同时派遣其他舰种支持

頁: [1] 2
檢視完整版本: 求U6的毁月公式,管理。。