
標題: [疑問] 國戰問題 [打印本頁]
作者: sandhinfk 時間: 2010-7-17 00:00 標題: 國戰問題
我剛打用50點軍力去打a3e.....結果唔夠軍力......
但系統沒有出現軍力不足的warning之類...........
而且戰爭還可以繼續.......
還可以打要塞........
但現軍力會變做負數.....一路會負落去
一入戰鬥畫面就會出現"出錯: BTL-2-WTRes-04, 請通知 GM!"
請問這發生了什麼事?
作者: 風之翎 時間: 2010-7-17 06:21
BTL-2-WTRes-04
這是錯誤位置代碼,
我會跟進一下的了,
多謝回報 ^^
作者: dgiti5597 時間: 2010-7-17 14:47
提示: 作者被禁止或刪除 內容自動屏蔽
作者: 風之翎 時間: 2011-8-2 18:11
>>原意是攻方沒有軍力 戰爭就會完結?
>>比要塞擊落扣幾多軍力是如何計算呢?
這個似乎是...
當其中一方戰勝了發生的...
攻擊後某方軍力已到達零或以下,
但玩家所攻擊的時候卻不附合以下條件的組合:
A.
- 玩家組織已對某領地發動攻擊 (即是國戰, 入侵的攻擊)
- 被攻擊人物的組織, 那一刻仍擁有該領地
- 被攻擊人物, 在交戰的領地
B.
- 玩家組織的某領地發動攻擊 (即是防守戰)
- 被攻擊人物的組織, 那一刻仍對某領地發動攻擊
- 被攻擊人物, 在交戰的領地
C.
- 守方領地已沒有軍力 (少於或等於0)
D.
- 攻方組織軍力少於或等於0
A 和 B 條件必定會符合其中一個, 否則不會進入國戰的判定...
C 和 D 同時也達不到的話, 也不會有問題 (國戰未完)
只要達到 A + C 或 B + D 這兩個條件,
就不會出現那個錯誤訊息,,,
問題似乎在於 A + B 或 B + C ...
簡單點說,
就是因一些奇怪原因,
系統判定玩家己沒軍力, 而又未判定哪個組織戰勝的同時, 攻擊「敵人」...
大概會發生在雙方也沒有戰力的時候, (例如互相扣到沒有)
攻擊方發動攻擊, 攻擊守方領地組織成員/要塞...
這種「打和」的情況吧...
只要守方成員攻擊攻方就可以解決... (判定為守方勝利)
作者: 風之翎 時間: 2011-8-2 18:13
一個簡單的修正...
大概是在 battle-2.php
Line 777 - 792:複製內容到剪貼板
代碼:
if(!$Tickets['victory']){
if($Tickets['Op'] <= 0) $War_Victory_Flag = 'Pl';
elseif($Tickets['Pl'] <= 0) $War_Victory_Flag = 'Op';
if($War_Victory_Flag){
$winner_org = $War_Victory_Flag.'_Org';
if($isEnemyFlag == 2 && $War_Victory_Flag == 'Pl'){
$sql = ("UPDATE `".$GLOBALS['DBPrefix']."phpeb_user_war` SET `victory` = 1 WHERE `war_id` = ".$W_ID[1]." LIMIT 1 ;");
$sql_k = ("DELETE FROM `".$GLOBALS['DBPrefix']."phpeb_user_war` WHERE `war_id` != ".$W_ID[1]." AND `mission` = '".$Tickets['mission']."';");
}elseif($isEnemyFlag == 3 && $War_Victory_Flag == 'Op'){
$sql = ("DELETE FROM `".$GLOBALS['DBPrefix']."phpeb_user_war` WHERE `war_id` = ".$W_ID[1]." LIMIT 1 ;");
}else {echo "<hr>出錯: BTL-2-WTRes-04, 請通知 GM!";exit;}
$Result_Tag .= "<br><font color=".${$winner_org}['color'].">".${$winner_org}['name']."</font> 勝出這場戰爭!!";
$HistoryWrite = "<font color=".${$winner_org}['color'].">".${$winner_org}['name']."</font> 勝出了戰爭!!";
WriteHistory($HistoryWrite);
}
}
取代為:複製內容到剪貼板
代碼:
if(!$Tickets['victory']){
if($Tickets['Op'] <= 0 || $Tickets['Pl'] <= 0){
$winner_org = '';
if($isEnemyFlag == 2 && $Tickets['Op'] <= 0){
$War_Victory_Flag = 'Pl';
$winner_org = 'Pl_Org';
$sql = ("UPDATE `".$GLOBALS['DBPrefix']."phpeb_user_war` SET `victory` = 1 WHERE `war_id` = ".$W_ID[1]." LIMIT 1 ;");
$sql_k = ("DELETE FROM `".$GLOBALS['DBPrefix']."phpeb_user_war` WHERE `war_id` != ".$W_ID[1]." AND `mission` = '".$Tickets['mission']."';");
}elseif($isEnemyFlag == 3 && $Tickets['Pl'] <= 0){
$War_Victory_Flag = 'Op';
$winner_org = 'Op_Org';
$sql = ("DELETE FROM `".$GLOBALS['DBPrefix']."phpeb_user_war` WHERE `war_id` = ".$W_ID[1]." LIMIT 1 ;");
}else {echo "<hr>出錯: BTL-2-WTRes-04, 請通知 GM!";exit;}
$Result_Tag .= "<br><font color=".${$winner_org}['color'].">".${$winner_org}['name']."</font> 勝出這場戰爭!!";
$HistoryWrite = "<font color=".${$winner_org}['color'].">".${$winner_org}['name']."</font> 勝出了戰爭!!";
WriteHistory($HistoryWrite);
}
}
這樣就排除了雙方軍力是零的問題...
歡迎光臨 v2Alliance Community | php-eb 官方討論區 (http://forum.v2alliance.net/) |
Powered by Discuz! 6.1.0F |