TWAICL

V62 增加 經驗值加倍buff

發表於 2017-1-18 20:08:49
TWAICL 發表於 2017-1-18 20:08:49 | 顯示全部樓層 |閱讀模式
本帖最後由 呆呆傑 於 2016-10-10 05:47 編輯

此方法從V117端原碼參考後,部分增加至V62原碼內。
所以不確定有沒有什麼未知的錯誤,不過測試下來沒發現任何問題!
不過比較高的版本有支援這個buff的話,就不用這麼麻煩囉~


首先,先來看這個功能到底是在做什麼的!

這個功能跟經驗值兩倍卡的相同,不過V62版本內並沒有這個buff,所以需要自己手動新增!




跟V62的經驗值加倍券比起來,上圖這個可以自行設定時間、倍率還蠻實用的,
---------------------------------------------------------------------------------------------------------------------


接下來,說明一下需要動到的東西:
1. MapleBuffStat.java
2. MapleCharacter.java
3. MapleStatEffect.java
4. MapleMonster.java
5. Item.wz


教學開始! [文中所有新增的東西,都需要自行去研究該放哪個位置]
1. MapleBuffStat.java

本帖隱藏的內容

(1)

搜尋:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
public enum MapleBuffStat implements LongValueHolder, Serializable {

在下方新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
EXPRATE(0x400000),





2. MapleCharacter.java

本帖隱藏的內容

(1)
搜尋:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
public class MapleCharacter extends AbstractAnimatedMapleMapObject implements InventoryContainer {

在下方新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
public transient double expBuff;


(2)
搜尋:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
private void recalcLocalStats() {

在下方新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
expBuff = 100.0;


並且再新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
02
03
04
Integer expbuff = getBuffedValue(MapleBuffStat.EXPRATE);
if (expbuff != null) {
expBuff *= expbuff.doubleValue() / 100.0;
}





3. MapleStatEffect.java

本帖隱藏的內容

(1)
搜尋:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
public class MapleStatEffect implements Serializable {


在下方新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
private int expBuff;


(2)
搜尋:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
private static MapleStatEffect loadFromData(MapleData source, int sourceid, boolean skill, boolean overTime) {


在下方新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
ret.expBuff = (short) MapleDataTool.getInt("expBuff", source, 0);


並且再新增:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
addBuffStatPairToListIfNotZero(statups, MapleBuffStat.EXPRATE, Integer.valueOf(ret.expBuff));





4. MapleMonster.java


搜尋:
[Java] syntaxhighlighter_viewsource syntaxhighlighter_copycode
01
long totalBaseExpL =


這個地方就需要靠自己去思考了,上面的1.2.3已經算是99.9%完成,只差這個獲取經驗值公式後面要怎麼去乘。
可以去參考前面是怎麼寫的!

ps. 你寫的那串值後面要再加上" / 100.0",不然你會發現你WZ輸入200,他不會變成2倍而是200倍!




5. Item.wz


(1)
打開 Item.wz > Consume > 隨便找一個藥水 > 找到 spec > 1.增加 expBuff 2.增加 time

expBuff 值 -> 輸入100=1倍;200=2倍....以此類推
time 值 -> 輸入60000=1分鐘;120000=2分鐘...以此類推





瀏覽 5287 回復 8

您需要登錄後才可以回帖 登錄 | 註冊會員

:還是不太行嗎? 我手頭沒源瑪.. 2017-05-15 14:57回復
返回頂部