冰楓論壇
標題:
新仙境傳說(RO) 【轉貼】「修正」之卡住Bug(2013/11/30 更新)
[打印本頁]
作者:
KMT
時間:
2014-11-30 19:23
標題:
新仙境傳說(RO) 【轉貼】「修正」之卡住Bug(2013/11/30 更新)
2013/11/30 增加修改(1-1)、更新修改(2)修改(3)~說明在4樓
修正當人物坐標~
RO伺服器 跟 OP 不一樣時
造成卡住不動的Bug~
請注意: 以下修改涉及主程式修改,
稍有不慎恐會造成 Openkore 無法執行,若無把握請勿嘗試,
建議修改前先備份該相關檔案,以備不時之需(Sofax222 大大的語錄)
開啟檔案 srcTaskRoute.pm
=====修改(1) =====
原程式碼
} elsif (!$wasZero) {
複製代碼
修改成
} elsif ($self->{index} == 0) {
複製代碼
修改 01 行~避免卡住
2014-11-30 19:20 上傳
下載附件
(6.11 KB)
開啟檔案 srcNetworkReceiveServerType0.pm
=====修改(2) =====
原程式碼
# Perform trigger actions
if ($sourceID eq $accountID) {
$char->{time_cast} = time;
$char->{time_cast_wait} = $wait / 1000;
delete $char->{cast_cancelled};
}
複製代碼
修改成
# Perform trigger actions
if ($sourceID eq $accountID) {
$char->{time_cast} = time;
$char->{time_cast_wait} = $wait / 1000;
delete $char->{cast_cancelled};
}
if (my $player = ($accountID eq $sourceID && $char) || $playersList->getByID($sourceID) || $slavesList->getByID($sourceID)) {
if ($player->{pos}{x} != $player->{pos_to}{x} || $player->{pos}{y} != $player->{pos_to}{y}) {
%{$player->{pos}} = %{calcPosition($player)};
%{$player->{pos_to}} = %{$player->{pos}};
$player->{time_move_calc} = 0;
if ($char->{party} && $char->{party}{users} && $char->{party}{users}{$sourceID}) {
%{$char->{party}{users}{$sourceID}{pos}} = %{$player->{pos}};
$char->{party}{users}{$sourceID}{online} = 1;
}
}
}
複製代碼
複製代碼
增加 07 - 18 行~
2014-11-30 19:20 上傳
下載附件
(6.11 KB)
開啟檔案 srcMisc.pm
=====修改(3) =====
原程式碼
if ($damage == 0) {
($accountID eq $targetID ? $monster->{missedYou} : $monster->{missedToPlayer}{$targetID}) += 1;
$player->{missedFromMonster}{$sourceID}++;
}
複製代碼
修改成
if ($damage == 0) {
($accountID eq $targetID ? $monster->{missedYou} : $monster->{missedToPlayer}{$targetID}) += 1;
$player->{missedFromMonster}{$sourceID}++;
} elsif ($damage > 0
&& ($player->{pos}{x} != $player->{pos_to}{x} || $player->{pos}{y} != $player->{pos_to}{y})
&& !$player->statusActive('EFST_ENDURE')) {
%{$player->{pos}} = %{calcPosition($player)};
%{$player->{pos_to}} = %{$player->{pos}};
$player->{time_move_calc} = 0;
if ($char->{party} && $char->{party}{users} && $char->{party}{users}{$targetID}) {
%{$char->{party}{users}{$targetID}{pos}} = %{$player->{pos}};
$char->{party}{users}{$targetID}{online} = 1;
}
}
複製代碼
增加 04 - 15 行~
被攻擊時~又不在"霸體狀態"時~
計算出實際座標~
視地形 & LAG 情況~誤差約0 ~ 2 格
2014-11-30 19:20 上傳
下載附件
(6.11 KB)
開啟檔案 srcNetworkReceive.pm
=====修改(4) =====
原程式碼
use strict;
use Network::PacketParser; # import
use base qw(Network::PacketParser);
use encoding 'utf8';
複製代碼
歡迎光臨 冰楓論壇 (https://bingfong.com/)
Powered by 冰楓