查看: 969|回復: 8

[分享] 能力值、經驗值 核心修改

  [複製鏈接]

10

主題

19

帖子

161

金錢

註冊會員

Rank: 2

威望
1
精華
0
貢獻
0
閱讀權限
20
積分
182
在線時間
6 小時
相冊
0
日誌
0
好友
0
發表於 2016-9-5 21:57 | 顯示全部樓層 |閱讀模式 |          
【JAVA】能力值、經驗值 核心修改
首先能力值需要改3個檔案
calcexp
C_RequestLoginToServer
C_RequestAttr
先說一下新版現在能力值最高隻能點到127超過會變1,所以別設定超過127唷!
calcexp修改位置
if((l1pcinstance.get_baseStr() +
l1pcinstance.get_baseDex() +
l1pcinstance.get_baseCon() +
l1pcinstance.get_baseInt() +
l1pcinstance.get_baseWis() +
l1pcinstance.get_baseCha()) < 150)←這邊150是
你所有能力值總數,如果你要最高可以點到
127的話就127*6=762所以那邊就填762
C_RequestLoginToServer修改位置
if((l1pcinstance.get_baseStr() +
l1pcinstance.get_baseDex() +
l1pcinstance.get_baseCon() +
l1pcinstance.get_baseInt() +
l1pcinstance.get_baseWis() +
l1pcinstance.get_baseCha()) < 150)←這邊跟
clacexp一樣150表示全能力值總數
C_RequestAttr修改位置,上面兩個都是改總互
值這邊是每種能力最高
if(l1pcinstance.get_baseStr() < 25)←str是力量,
25表示最多點到25你隻要改你想要最高限定即可!
if(l1pcinstance.get_baseDex() < 25)←dex敏捷
if(l1pcinstance.get_basecon() < 25)←con體質
if(l1pcinstance.get_baseint() < 25)←int智力
if(l1pcinstance.get_basewis() < 25)←wis精神
if(l1pcinstance.get_basecha() < 25)←魅力
====================以下為經驗值核心修改====================
經驗值要修改核心是clacexp
原始檔,我舉例一段出來解釋唷
if(char_level >= 70 && char_level <= 74)←這邊
表示70等到74等的99.99%
exppenalty = 1.0/4.0;←表示上述等級間所
的到經驗值都必須除4
else←結尾 if為頭 else為尾
if(char_level >= 75 && char_level <= 78)←75-78
之間
exppenalty = 1.0/8.0;←表示上述期間得到經驗值除以8
else
然後到固定等級以後,原始碼開始走向每升一及改一次所需經驗
if(char_level == 79)←79級0%-100%
exppenalty = 1.0/16.0;←所得到經驗值除以16
else
if(char_level == 80)←80級0%-100%
exppenalty = 1.0/32.0;←所得到經驗值除以
32
else
if(char_level == 81))←81級0%-100%
exppenalty = 1.0/64.0;←所得到經驗值除以
64
else
後面還有很多就省略了
所以才會讓大家都很難練因為到99級好像要把所得到經驗除以100萬吧
if(char_level >= 65 && char_level <= 74)←65級0%-74級100%
exppenalty = 1.0/1.5;←所得到經驗值除以1.5
else
if(char_level >= 75 && char_level <= 84)←75級0%-84級100%
exppenalty = 1.0/2.0;←所得到經驗值除以2TW
else
if(char_level >= 85 && char_level <= 94)←85級0%-94級100%
exppenalty = 1.0/3.0;←所得到經驗值除以3
else
就這樣改了因該不算難拉,給大家參考看看唷!
希望能幫到你們唷!
NPC攻速(修改)
基本上用的是467,因為至少467上面mobskill db比較完整這篇主要是解決施放魔法npc死了還一直攻擊
如果是使用467以上版本的還有出現此問題在
往下看吧...
更改:
L1NpcInstance.java
搜索public void attackTarget
最下面
if(skill == 0).....//省略
useSkill(target, skill);
_sleep_time = calcSleepTime
(get_atkspeed()); //補上此行
_sleep_time是用來在每次NPC做完一次動作之後,如攻擊或移動
會停止多久再做下個動作,原本在一般攻擊的時候有加入
但是在使用skill時卻沒有,也就是說有可能skill用完馬上接普攻,中間沒間斷
或是skill沒有間隔時間了化 那就會狂放技能,
但是技能圖表顯示都有固定的時間,發的太快就
會導緻死了動作還沒做完的情況
使用轉生藥水,會廣播,並有天使
修改:C_RequestItemUSe
搜尋:if(k == 43000)-
找到後,仔細看,會有這段
l1pcinstance.sendPackets(new S_ServerMessage(822, ""));
在這段下面加上程式碼
broadcastToAll(("\\fZ→恭喜")+("【")+
(l1pcinstance.get_name())+("】")+("轉生←"));
說明一下:
l1pcinstance.get_name()),意思就是,使用該道具的玩家ID,也就是當喝下去時
就會顯示:→恭喜【線上GM】轉生←
要出現的文字,可以自己更改
至於,要喝下轉生藥水,會出現天使,要怎麼改
沒記錯,原本是這樣:
l1pcinstance.sendPackets(new S_SkillSound(j, 191));
l1pcinstance.broadcastPacket(new S_SkillSound(j, 191));
這段程式也是在,轉生藥水那邊,仔細找找,隻要將191這個數字,改成39440
l1pcinstance.sendPackets(new S_SkillSound(j, 3944));
l1pcinstance.broadcastPacket(new S_SkillSound(j, 3944));
兩個都要改喔!這樣子,喝下去,就會變成天使出現的圖案!
[教學]打死指定怪物~系統廣播
首先~你要先加入廣播功能
在L1Attack.class最下面~有個privateXX上方加入,還有[ i ]內空格自行刪除
private void broadcastToAll(String s)
L1PcInstance al1pcinstance[] =
L1World.getInstance().getAllPlayers();
S_SystemMessage s_systemmessage = new
S_SystemMessage(s);
for(int i = 0; i < al1pcinstance.length; i++)
al1pcinstance[ i ].sendPackets
(s_systemmessage);
以上~在衝武防廣播就有了~所以大家應該知道
首先尋找private int PcNpcDamageCalc()
然後在return (int)dmg;上面貼上下面的指令
以下為打贏指定怪物廣播
if(dmg >= targetNpc.get_currentHp() && 這邊請看"附註")
broadcastToAll((newStringBuilder()).append
("玩家【").append(player.get_name()).append("】
打贏了怪物【").append(targetNpc.get_name
()).append("】").toString());
括號裡面都是廣播之文字~請自行更改所需
附註~targetNpc.getNpcTemplate().get_npcId() >=
45681 && targetNpc.getNpcTemplate().get_npcId
() <= 45684~這樣的設定~就是打贏四大龍會顯示
怪物編號大於等於45681小於等於45684~如
果要改指定怪物~自己改編號吧
targetNpc.getNpcTemplate().get_npcId() == 怪物編號
這個功能~你們也可以套用在攻城部分
給個條件式如下~
if(player.get_classId() == 0 || player.get_classId() == 1)
當職業是公主或是王子~才會發動
if(dmg >= targetNpc.get_currentHp() &&
targetNpc.getNpcTemplate().get_npcId() == 守護者之塔或是王冠的怪物編號)
最後一刀打死守護者之塔的王族才會廣播
broadcastToAll((newStringBuilder()).append("玩家
【").append(player.get_name()).append("】所領導的
【").append(player.getClanname()).append("】
血盟 取得了亞丁城").toString());


********45天堂私服發佈站,每天即時更新news,提供最完善的私服列表********

 

                                                  




上一篇︰【Java教學】基礎核心修改
下一篇︰【★★★★★】GM人物頭銜

0

主題

24

帖子

74

金錢

註冊會員

Rank: 2

威望
0
精華
0
貢獻
0
閱讀權限
20
積分
98
在線時間
5 小時
相冊
0
日誌
0
好友
0
發表於 2016-11-10 23:07 | 顯示全部樓層
感謝您,一目了然

回復 支持 反對

使用道具 舉報

0

主題

60

帖子

2153

金錢

金牌會員

Rank: 6Rank: 6

威望
7
精華
0
貢獻
0
閱讀權限
70
積分
2227
在線時間
21 小時
相冊
0
日誌
0
好友
0
發表於 2016-11-22 19:57 | 顯示全部樓層
感謝,收下學習。

回復 支持 反對

使用道具 舉報

11

主題

23

帖子

143

金錢

註冊會員

Rank: 2

威望
2
精華
0
貢獻
0
閱讀權限
20
積分
170
在線時間
4 小時
相冊
0
日誌
0
好友
0
發表於 2016-11-22 22:31 | 顯示全部樓層
很棒的教學,收下了

回復 支持 反對

使用道具 舉報

11

主題

195

帖子

7775

金錢

黃金VIP

Rank: 8Rank: 8

威望
12
精華
0
貢獻
0
閱讀權限
90
積分
7964
在線時間
61 小時
相冊
0
日誌
0
好友
0

活躍會員最佳新人論壇元老

發表於 2017-1-4 12:05 | 顯示全部樓層
感謝您的分享

回復 支持 反對

使用道具 舉報

1

主題

5

帖子

185

金錢

註冊會員

Rank: 2

威望
1
精華
0
貢獻
0
閱讀權限
20
積分
192
在線時間
4 小時
相冊
0
日誌
0
好友
0
發表於 2017-1-11 12:35 | 顯示全部樓層
感謝大大無私分享

回復 支持 反對

使用道具 舉報

14

主題

29

帖子

108

金錢

註冊會員

Rank: 2

威望
0
精華
0
貢獻
0
閱讀權限
20
積分
137
在線時間
2 小時
相冊
0
日誌
0
好友
0
發表於 2017-1-11 19:59 | 顯示全部樓層
感謝分享

到時候來試試看~

[發帖際遇]: dark8769 撿了錢沒交公 金錢 降了 3 . 幸運榜 / 衰神榜
回復 支持 反對

使用道具 舉報

2

主題

10

帖子

329

金錢

中級會員

Rank: 3Rank: 3

威望
0
精華
0
貢獻
0
閱讀權限
30
積分
339
在線時間
5 小時
相冊
0
日誌
0
好友
0
發表於 2017-1-12 00:30 | 顯示全部樓層
謝謝分享 真的很專業 我用複製的還出錯=..="

[發帖際遇]: 一個袋子砸在了 b2627 頭上,b2627 賺了 1 金錢. 幸運榜 / 衰神榜
回復 支持 反對

使用道具 舉報

2

主題

83

帖子

2098

金錢

金牌會員

Rank: 6Rank: 6

威望
6
精華
0
貢獻
1
閱讀權限
70
積分
2194
在線時間
34 小時
相冊
0
日誌
0
好友
1
發表於 2017-1-12 01:04 | 顯示全部樓層
謝謝分享喔@@_感謝你的愛心

回復 支持 反對

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則

有間天堂

45客服

加入好友| Archiver|手機版|小黑屋| 45遊戲天堂私服論壇,45遊戲網最新天堂列表      

45天堂私服發佈站 ©    天堂私服架設教學  提供最新天堂私服最新資訊

流量最高、品質最好、服務最優、玩家首選、最新天堂私服資訊,都在45天堂私服發佈站.    免責聲明

掃一掃二碼
Line客服聯繫
贈送免費列表
返回頂部 返回列表