KMT 發表於 2014-11-30 19:23:14

新仙境傳說(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 行~避免卡住







開啟檔案 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 行~



開啟檔案 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 格




開啟檔案 srcNetworkReceive.pm
=====修改(4) =====
原程式碼use strict;
use Network::PacketParser; # import
use base qw(Network::PacketParser);
use encoding 'utf8';**** Hidden Message *****




頁: [1]
查看完整版本: 新仙境傳說(RO) 【轉貼】「修正」之卡住Bug(2013/11/30 更新)