Boxx 發表於 2025-1-24 21:04

【新手資源】貓大版紋樣系統-動畫代碼解析

本帖最後由 bobo8771 於 2025-1-24 21:31 編輯

延續前一篇【新手資源】善用AI資源 理解源碼原理範例中相同思路
使用核心版本同為3.81貓大版。

以下純粹是個人研究代碼實際學習過程,如有錯誤請各位不吝指正,謝謝

當我嘗試複製相同概念測試新增格蘭肯紋樣時,對點擊開始強化後,對話檔中紋樣跑點數的動畫產生好奇
如下圖(請無視沙哈為什麼是顯示馬普勒,純粹圖檔錯亂)

這到底是如何產生的?難道對話檔也可以使用gif?:o
馬上去尋找源碼看看到底是如何實現
檢視了一下對話檔(wenyangsh-c.html)
<body>
沙哈紋樣<font fg=00DD00><var src="#0"><font fg=ffffff>    </font><img src="#5995"></img></font><var src="#1"></font><br>
<var img src="#2"></img><br>
<var src="#3"><br>
<br>
<img src="#5998" tooltip="更改機率^更改機率" action="shjilv"></font><var img src="#4" tooltip="開始強化^開始強化" action="shstart"></img><br>
</body><br>點擊開始強化會執行action="shstart"
也就是說伺服器端會收到shstart這個字串去執行該做的行為
至於為什麼,一樣請服用J.J. Huang 天堂私服 | 執行行動分析<強化魔法師篇>先
對應核心源碼後(L1Shaha),以下都只貼出部份代碼
public static boolean shaha(String cmd, L1PcInstance pc) {
    try {
         if (cmd.equalsIgnoreCase("wenyangsh")) {
            L1Shaha.WenyangUp(pc);
         } else if (cmd.equalsIgnoreCase("shjilv")) {
            L1Shaha.WenyangRnd(pc);
         } else if (cmd.equalsIgnoreCase("shstart")) {
            L1Shaha.WenyangLevel(pc);
      }
   }
   catch (Exception e) {
      _log.error((Object)e.getLocalizedMessage(), (Throwable)e);
   }
   return false;
}可以看到接收到shstart會執行
L1Shaha.WenyangLevel(pc);繼續往下看代碼,WenyangLevel()中某部份代碼中又執行了WenyangD()。看似是紋樣動畫?不清楚命名標準
switch (pc.getshaha()) {
                case 0: {
                  L1Shaha.WenyangD(pc);
                  break;
                }
                case 1: {
                  L1Shaha.WenyangD(pc);
                  break;
                }
                case 2: {
                  L1Shaha.WenyangD(pc);
                  break;
                }
                case 3: {
                  L1Shaha.WenyangD(pc);
                  break;
                }持續深挖,發現WenyangD() method有將近4000多行?!


不要慌張,把部份code收起來之後發現原來是由於紋樣總共有33階,每一階內都是執行一樣的code(約130行)但 x 33:L


在針對第0階都代碼進行整理會發現,變動的數字就只有5510, 5511, 5512, 5510, 5511, 5512


這6個神秘數字是什麼呢?可以看到它們是被存在
data對應到對話檔中,發現原來這幾個數字就是圖檔編號
<var img src="#2">結論就是,透過代碼讓圖檔變換以達到動圖的效果,結案!

謝謝觀看






KeyCats 發表於 2025-1-24 21:24

Thank You.                  : >      Good

richie 發表於 2025-1-24 21:35

天啊~剖析得太專業了!!
感謝大大無私專業分享~學習了!!

LINEAGEGG 發表於 2025-1-24 21:43

:):):):):):)

030000 發表於 2025-1-24 22:28

挺有意思的講解方式 謝謝分享

a82108751 發表於 2025-1-24 23:34

感謝分享

CClineage45 發表於 2025-1-25 00:16

謝謝分享

powerdream 發表於 2025-1-25 07:58

感謝分享

Magic123 發表於 2025-1-25 08:17

6666666666

Superwenwen 發表於 2025-1-25 08:48

專業分享

showieee 發表於 2025-1-25 14:54

天啊~剖析得太專業了!!
感謝大大無私專業分享~學習了!

冰下隼龍 發表於 2025-1-25 15:04

Cool 感謝分享~

And2046kimo 發表於 2025-1-25 15:21

挺有意思的講解方式 謝謝分享

nahc0618 發表於 2025-1-26 13:28

感謝大大無私分享

羊羽 發表於 2025-1-26 17:49

       
感謝大大無私分享

2266338 發表於 2025-1-26 20:54

:lol:lol:lol:lol:lol:lol:lol

kinkikidsw 發表於 2025-2-3 21:01

好人1生平安~

superjsf 發表於 2025-3-8 23:27

厲害的思路讚喔!感謝分享
頁: [1]
查看完整版本: 【新手資源】貓大版紋樣系統-動畫代碼解析