查看: 1009|回復: 16

[討論] 妖精魔法施放時繞過屬性檢測的方法

[複製鏈接]

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-10 13:43 | 顯示全部樓層 |閱讀模式
大幅數位科技
先說 我想寫的不是全屬性都可以學的精靈技能。
我想做的是,妖精一樣要選一系魔法學,該系魔法就能正常學習
另外做一份祝福精靈魔法水晶,祝福的精靈魔法水晶則在學習的時候繞過屬性檢查

作法是在com\lineage\data\item_etcitem\skill下的Skill_SpiritCrystal_Earth(Fire、Water、Wind)下新增如果水晶是祝福的就繞過屬性檢查
                final int bless = item.getBless();  //抓精靈水晶的祝福狀態(0,1,2)



                } else if (bless == 1 && pc.getElfAttr() != 1) {                              //  如果 bless 為 1,則只允許地屬性
                        final S_ServerMessage msg = new S_ServerMessage(684);   // 屬性系列不同無法學習。
                        pc.sendPackets(msg);

壓回核心後確實是可以藉由祝福精靈水晶學習到其他屬性的技能,然而....學到的他屬技能確是暗著,無法使用
1.jpg 2.jpg

原本想說會不會是施放技能的時候被屬性檢查擋住了,去\com\lineage\server\model\skill\SkillUse下看

                if ((_skill.getSkillLevel() >= 17) && (_skill.getSkillLevel() <= 22)   //精靈魔法等級
                                && (magicattr != 0)              // 如果不是無屬性魔法
                                && (_player.getElfAttr()<0)   // <<~~把這段判斷直接拿掉
                                && !_player.isGm()) {           // 如果角色不是GM
                        return false;                                // 則回傳false
                }                                       //由於以上判斷式都是用&&連接,因為角色屬性不可能<0,所以理論上不可能回傳false,應該都會是TRUE
                return true;



但還是一樣...學完的別屬技能還是暗著無法使用。
不知道有沒有大大可以指點一下我還有哪個核心應該要看一下改一下的嗎?
或是有沒有同好願意一起交流的?

3.jpg




上一篇︰小白求指教,伊薇270启动没问题,登陆输完密码后无反应
下一篇︰德州撲克玩法聽說很簡單?花五分鐘保證快速理解並上桌!

1

主題

958

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
29652
在線時間
608 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-10 15:29 | 顯示全部樓層
測試你版本GM 全技能指令
無屬性測試一次 選屬性再測試一次
觀察亮燈情況

如果GM指令 可以全屬性都亮
那其他屬性水晶 就可改用GM指令那邊的語法了

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-10 16:05 | 顯示全部樓層
你是說把
                        } else if (nameId.equalsIgnoreCase("$3265")) {// 精靈水晶(體能激發)
                                // 技能編號
                                skillid = EXOTIC_VITALIZE;
                                // 分組
                                magicLv = 15;
                        }
                        // 檢查學習該法術是否成立
                        Skill_Check.check(pc, item, skillid, magicLv, attribute);  
如果是用祝福的精靈水晶,就把最後這段檢查學習法術是否成立的語法,直接改成GM加技能的方式嗎?
                                for (cnt = 129; cnt <= 176; cnt++) {// エルフ魔法
                                        final L1Skills l1skills = SkillsTable.get().getTemplate(cnt); // スキル情報を取得
                                        skill_name = l1skills.getName();
                                        skill_id = l1skills.getSkillId();
                                        CharSkillReading.get().spellMastery(object_id, skill_id, skill_name, 0, 0); // DBに登録
                                }
把cnt直接改成該顆水晶的編號?

回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-11 14:19 | 顯示全部樓層
yasioukon 發表於 2025-4-10 15:29
測試你版本GM 全技能指令
無屬性測試一次 選屬性再測試一次
觀察亮燈情況

我試著改用GM那邊的寫法

                        } else if (pc.isElf()) {// 精靈
                                pc.sendPackets(new S_AddSkill(pc, 255, 255, 127, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
                                                127, 3, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0));
//一般魔法刪掉不貼
                                for (cnt = 129; cnt <= 176; cnt++) {// エルフ魔法
                                        final L1Skills l1skills = SkillsTable.get().getTemplate(cnt); // スキル情報を取得
                                        skill_name = l1skills.getName();
                                        skill_id = l1skills.getSkillId();
                                        CharSkillReading.get().spellMastery(object_id, skill_id, skill_name, 0, 0); // DBに登録
                                }
我把上面IMPORT放過去,應該沒缺索引
然後地水晶裡面改成

else if(bless == 0 && pc.getElfAttr() != 1) {   //新增一段判斷如果水晶為祝福,套用GM方法學習
                        pc.sendPackets(new S_AddSkill(pc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,   //這邊照抄GM的L1AddSkill
                                        127, 3, 255, 255, 255, 255, 0, 0, 0, 0, 0, 0, 0, 0));
                        int Sid = 0;                        //Sid要對應到精靈魔法等級(129~176)
                        String skill_name = "";         // 因為一次只學一顆水晶
                        int skill_id = 0;                         // 所以把FOR拿掉照抄裡面的
                        final int object_id = pc.getId(); // 取得角色ID
                                         //然後把水晶的判斷取得Sid
                        if (nameId.equalsIgnoreCase("$1840")) {// 精靈水晶(大地防護)  
                                Sid=151;
                        } else if (nameId.equalsIgnoreCase("$1841")) {// 精靈水晶(地面障礙)
                                Sid=152;
                        } else if (nameId.equalsIgnoreCase("$1846")) {// 精靈水晶(大地屏障)
                                Sid=157;
                        } else if (nameId.equalsIgnoreCase("$1848")) {// 精靈水晶(大地的祝福)
                                Sid=159;
                        } else if (nameId.equalsIgnoreCase("$1856")) {// 精靈水晶(鋼鐵防護)
                                Sid=168;
                        } else if (nameId.equalsIgnoreCase("$3265")) {// 精靈水晶(體能激發)
                                Sid=169;
                                            //以下略,反正妖精有屬性的全抄進來

                        }                   //最後用跟GM的L1AddSkill一樣的寫法去登錄DB
                        final L1Skills l1skills = SkillsTable.get().getTemplate(Sid); // スキル情報を取得
                        skill_name = l1skills.getName();
                        skill_id = l1skills.getSkillId();
                        CharSkillReading.get().spellMastery(object_id, skill_id, skill_name, 0, 0); // DBに登録
--------------------------------------------------------------------------------------------------------------------------------
然而....結果一樣
主屬的還是可以用,非主屬的就算學了還是一樣按的,沒辦法施展QQ
求救RRR~~~



回復 支持 反對

使用道具 舉報

1

主題

958

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
29652
在線時間
608 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-11 14:43 | 顯示全部樓層
所以才說你要先測試GM技能指令
沒選屬性 有選屬性 亮燈有沒有差

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-11 16:04 | 顯示全部樓層
嗯嗯....
剛剛用GM指令測了
一樣是選的屬性才是亮燈
沒選的屬性都是暗的,跟我用祝福水晶學的其他屬技能一樣QQ
請問有解嗎 OAO

回復 支持 反對

使用道具 舉報

1

主題

958

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
29652
在線時間
608 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-11 16:33 | 顯示全部樓層
GM人物完全沒選屬性也要測
沒屬性 是亮哪個屬性
全屬性亮燈 還是全沒亮

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-11 16:55 | 顯示全部樓層
我是用GM直接去測
不選屬性時加全技能,一般魔法跟無屬魔法正常
屬性魔法全學但全暗。
這時候去選魔法就那系會亮,其他一樣暗。

然後遺忘,屬性魔法全消失(正常)

再選一個屬性(水),再加一次全技能
但一樣只有選的屬性(水)會亮,其他屬性一樣學了但是暗的

回復 支持 反對

使用道具 舉報

1

主題

958

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
29652
在線時間
608 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-11 18:31 | 顯示全部樓層
如果你的版本 GM不管有沒有選屬性都有暗燈

那就要看S封包 那邊應該有寫屬性判斷

[發帖際遇]: 一個袋子砸在了 yasioukon 頭上,yasioukon 賺了 5 金錢. 幸運榜 / 衰神榜
紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-11 23:04 | 顯示全部樓層
請問....
S封包指的是哪一塊QQ

回復 支持 反對

使用道具 舉報

19

主題

270

帖子

4008

金錢

暗殺軍王.史雷佛

Rank: 8Rank: 8

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
45
積分
4288
在線時間
64 小時
相冊
0
日誌
0
好友
7
QQ
發表於 2025-4-12 08:08 | 顯示全部樓層
技能格子亮或暗什么的,与核心代码无关,请修改主程式相关的UI文件……

http://starway.freebbs.tw/index.php
回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-12 08:15 | 顯示全部樓層
阿.....?

所以注定修改無望了嗎 OAO...

我還以為繞過學習限制就可以用了說QQ

回復 支持 反對

使用道具 舉報

1

主題

958

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
29652
在線時間
608 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-12 09:47 | 顯示全部樓層
就是你本身屬性是什麼
他會送出一個S包到主程式接收

假設無屬性 是送出0
那他就會讓四個屬性都暗燈
那可能火是送出1
那他就會讓火屬性的亮燈
以此類推

所以才叫你先測試GM技能指令
連沒選屬性 都無法全亮
就代表他是每種屬性1對1
0不能包含所有屬性 這樣

所以 就可能要從接收端改
不管收到什麼 都判斷同屬或無屬

紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-12 09:51 | 顯示全部樓層
yasioukon 發表於 2025-4-12 09:47
就是你本身屬性是什麼
他會送出一個S包到主程式接收

看不太懂...

請問這個封包是哪裡送出來的,是送到遊戲的主程式?

那是不是只要改送出的這個封包就可以讓程式的燈全亮?

如果是的話這段封包在哪邊改呢?

回復 支持 反對

使用道具 舉報

3

主題

28

帖子

414

金錢

哥布林

Rank: 3Rank: 3

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
30
積分
442
在線時間
11 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-13 12:16 | 顯示全部樓層
他的意思是,游戏本身有没有提供精灵属性全开的功能,所以让你用GM测试,如果GM也只能一种属性的话,那么基本就没有这种功能。
技能点击使用,其实本质上就是一种按钮,首先你要过客户端的逻辑判断,才能发送封包给服务器,现在你连客户端的逻辑判断都过不去,技能是灰的,点不了,那么服务器怎么改也无济于事。
一般来说网游都会这么做,客户端先判断一遍,客户端通过了才让服务器判断,不然什么都交给服务器判断,你一秒点狂点按钮一百次,岂不是人肉攻击啦。
假设你现在主属性是风属性。
现在就看客户端是怎么锁的,如果客户端是靠服务器端提供的技能属性锁的,那么你可以尝试欺骗客户端,比如告诉客户端烈焰之魂是风属性,看看核心有没有这个封包。
当然客户端也有可能是根据技能名字和或者ID写死锁的,那么你可能需要修改烈焰之魂的名字或ID。
当然以上情况,都极有可能造成逻辑上的错误,这个需要修复,但是如果有表现上的错误,那么就麻烦了(比如假设客户端写死了风属性的释放特定特效之类的,然后你烈焰之魂出个风特效,可能怪怪的)。
还有一种可能,就是客户端是根据格子序号锁死的,那么你看看你服务器能不能修改不同技能所在格子的位置,把他们换一换,如果客户端也所在位置都是按照技能写死的,那也麻烦了。
最后一种办法就是,把其他你能使用但是你看不上的技能,改核心逻辑,改成你想要技能的效果,但是可能图标改不了,特效有没有问题也难说。
所以你修改的难度,取决于客户端的写死程度。

回復 支持 反對

使用道具 舉報

22

主題

83

帖子

1143

金錢

妖魔鬥士

Rank: 6Rank: 6

威望
0
精華
0
貢獻
0
鑽石
0
閱讀權限
40
積分
1226
在線時間
35 小時
相冊
0
日誌
0
好友
0
 樓主| 發表於 2025-4-13 15:47 | 顯示全部樓層
感謝解惑~  
看起來主程式是動不了了~ 技術不到家~
現在看起來的替代的構思方案是
做兩份精靈水晶,一份詛咒的可交易,圖樣是精靈水晶但其實類似盒子概念(限制妖精使用)
妖精角色使用後轉變(盒子開出)祝福的精靈水晶(綁定),用道具觸發魔法的方式去實行
就只是把本來在技能格子變成道具格子了

[發帖際遇]: Wsnake 樂于助人,獎勵 2 金錢. 幸運榜 / 衰神榜
回復 支持 反對

使用道具 舉報

1

主題

958

帖子

2萬

金錢

巴列斯

Rank: 10Rank: 10Rank: 10

威望
5
精華
0
貢獻
0
鑽石
0
閱讀權限
60
積分
29652
在線時間
608 小時
相冊
0
日誌
0
好友
0
發表於 2025-4-13 19:32 | 顯示全部樓層
你可以去抽檔技能XML
(改內容需要加解密工具 論壇看有沒有)

把 屬性標籤改掉 吃檔覆蓋看看

[發帖際遇]: yasioukon 撿了錢沒交公 金錢 降了 1 . 幸運榜 / 衰神榜
紅茶
聯絡方式
LINE: lineageapp
回復 支持 反對

使用道具 舉報

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

本版積分規則

天堂私服列表

45客服

Archiver| 45天堂私服論壇   分享到微博! 分享到臉書! 分享到噗浪! 分享到維特! 分享到Google+! 分享到LINE!

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

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

Sitetag
line客服聯繫
掃一掃二碼
Line客服聯繫
24H專人回覆
返回頂部 返回列表