2014年6月9日 星期一

非時間內不能進去

點擊卷軸可以傳送進該地圖

其餘時間不可以進入


如果到指定時間 就自動傳送出該地圖



L1PcInstance.java

搜尋
} else if (!isDead()) { // 念のため
                        System.out.println("警告∶NPC的hp减少的运算出现错误。※将视为hp=0作处理");
                        death(attacker);
                }
        }

        public void death(L1Character lastAttacker) {


在上面添加

if (newHp > 0) {
                                setCurrentHp(newHp);
                                if (GetNowTime.GetNowHour() == 9 && getMapId() == 5805 && !isGm()) {
//我不知道9是不是就是指的9-10這一段時間...
                                        L1Teleport.teleport(this, 33084, 33391, (short) 4, 5, true);
                                        sendPackets(new S_SystemMessage("\\fX為了你的人身安全請勿在活動時間再進入活動地圖!"));
                                }
                        }

這樣寫理論上可用...
雖然我沒有測試過,除非是對時間的讀取有問題,這一段也是我自己一個特定地圖的強制離開方案,原本我的是當玩家等級低于XX級強制離開,百試百靈的.
這段代碼的意思是,如果玩家在地圖5805內,而且時間是9-10這個時間段,那么當玩家被打掉血(只要是被傷害),那么強制送至銀騎士村莊.

前面LZ的寫法,是加在超出13等送出新手村的吧,為什么不可用,原因很簡單,因為那個里面首先是要判斷角色是否升級了...你那樣的寫法,如果某玩家不在活動時間段呆在里面的話,只有他在里面升級,在那一瞬間他才會被傳送出來.

希望對你有用!

資料出處:浪漫物語網路社區  BY tjohny@kimo.com 

沒有留言:

張貼留言