綁定帳號登入

Android 台灣中文網

打印 上一主題 下一主題

[修改] 感謝大家零碎的資料線索

   關閉 [複製連結] 查看: 8355|回覆: 69|好評: 0
41
onecomet | 收聽TA | 只看該作者
發表於 2015-7-30 09:50
我想改屬性石頭的教學= =
有點趕著用的說.....
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

42
tomo12 | 收聽TA | 只看該作者
發表於 2015-8-7 14:53
感謝大大分享
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

43
 樓主| Duklaan | 收聽TA | 只看該作者
發表於 2015-8-8 09:34
大家到今天還在問虹石方法...
這是我修改史上最自豪的一環,
由得我自私一下吧!
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

44
 樓主| Duklaan | 收聽TA | 只看該作者
發表於 2015-8-8 09:59
eaki 發表於 2015-6-16 17:53
不好意思冷場,不過我覺得還是請大家不要一直想用小石突破吧T^T,那個感覺非常傷官方的營收(>﹏ ...

我一次也沒分享過,一直也在獨享,少來管我。
可是閣下說的我極不同意,為甚麼我改突破就傷營收你們修改刷素材就不傷營收?
你們甚麼關也能通幾星角也不介意根本不會購鑽石那就不傷營收嗎?
官方營收官方自己管,不到你我玩家來管。
再說閣下前後矛盾,你不介意角色強度,那你刷素材來幹嘛?
素材是為了角色強度而存在,誰在玩修改不是為了角色強度?
你們不是都修改刷素材再換回正規版玩麼?
不為角色強度而玩遊戲的玩法是怎樣的?
萬無目的刷素材? 角色數值愛多少改多少? 然後永不協力自我封閉?
別來裝正義怪責我好嗎?

評分

參與人數 1碎鑽 +1 收起 理由
SHEEHS + 1

查看全部評分

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

45
 樓主| Duklaan | 收聽TA | 只看該作者
發表於 2015-8-8 10:05
areswang 發表於 2015-6-22 11:55
如果有這方法還是希望樓主自己知道就好,這事關官方營運問題,大家都這麼搞,那就是把遊戲搞爛搞倒後大家一 ...

都關心些不是你來關心的問題
遊戲早已給你們搞爛了
要不要一哄而散是看官方不是看你跟我
別說一堆毫無意義的大道理
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

46
terrywany2k | 收聽TA | 只看該作者
發表於 2015-8-8 16:12
少年... 吹牛也要有個譜.... 你這樣子家人知道嗎?

首先限界突破是在UI_UnitEnchanceTreeMenu的一個delegate method內.... 代碼如下

  1. internal void <>m__5A4(Dialog.Result sel)
  2.         {
  3.             if (sel != Dialog.Result.No)
  4.             {
  5.                 DeckExceedSendParam postData = new DeckExceedSendParam();
  6.                 postData.ucId = this.<>f__this.m_Unit.ucId;
  7.                 postData.exceedType = this.btn.cost.exceedType;
  8.                 Singleton<NetworkManager>.I.Request<DeckExceedSendParam, DeckExceedModel>(DeckExceedModel.URL, postData, delegate (DeckExceedModel result) {
  9.                     App.Network.Error error = (App.Network.Error) result.error;
  10.                     if (error == App.Network.Error.None)
  11.                     {
  12.                         <DispLimitBreakDetail>c__AnonStorey28E storeye = new <DispLimitBreakDetail>c__AnonStorey28E {
  13.                             <>f__ref$653 = this
  14.                         };
  15.                         if (this.<>f__this.m_UI_UnitEnhanceLimitBreakDetail != null)
  16.                         {
  17.                             UnityEngine.Object.Destroy(this.<>f__this.m_UI_UnitEnhanceLimitBreakDetail.gameObject);
  18.                             this.<>f__this.m_UI_UnitEnhanceLimitBreakDetail = null;
  19.                         }
  20.                         storeye.card = result.result.card;
  21.                         if (storeye.card != null)
  22.                         {
  23.                             int num = Singleton<GlobalDataManager>.I.m_Player.stockCards.FindIndex(new Predicate<CardModel.Param>(storeye.<>m__5A8));
  24.                             if (num != -1)
  25.                             {
  26.                                 Singleton<GlobalDataManager>.I.m_Player.stockCards[num] = storeye.card;
  27.                             }
  28.                             foreach (DeckModel.Param param in Singleton<GlobalDataManager>.I.m_Player.decks)
  29.                             {
  30.                                 num = param.units.FindIndex(new Predicate<UnitModel.Param>(storeye.<>m__5A9));
  31.                                 if (num != -1)
  32.                                 {
  33.                                     param.units[num].Card = storeye.card;
  34.                                 }
  35.                             }
  36.                             this.<>f__this.m_ParentMenu.m_Unit.Card = storeye.card;
  37.                         }
  38.                         Singleton<GlobalDataManager>.I.m_Player.stockItems = result.result.items;
  39.                         this.<>f__this.SetUnit(this.<>f__this.m_ParentMenu.m_CardDetail, this.<>f__this.m_ParentMenu.m_Unit);
  40.                         this.<>f__this.m_ParentMenu.PlayLimitBreakScene(new System.Action(storeye.<>m__5AA));
  41.                     }
  42.                     else if (error == App.Network.Error.ERR_SKILL_LIMIT_BREAK_TIME_OVER)
  43.                     {
  44.                         string body = Singleton<MessageManager>.I.GetMessage(Common_msg.SOULBOARD_LIMIT_BREAK_TIME_OVER);
  45.                         if (<>f__am$cache2 == null)
  46.                         {
  47.                             <>f__am$cache2 = delegate (Dialog.Result r) {
  48.                             };
  49.                         }
  50.                         Singleton<UIManager>.I.CommonUI.OpenDialog(Dialog.Type.OK, body, <>f__am$cache2);
  51.                     }
  52.                     else
  53.                     {
  54.                         if (<>f__am$cache3 == null)
  55.                         {
  56.                             <>f__am$cache3 = r => SceneManager.ChangeOutGame(OutGameManager.Scene.Fatal);
  57.                         }
  58.                         Singleton<UIManager>.I.CommonUI.OpenDialog(Dialog.Type.OK, (App.Network.Error) result.error, <>f__am$cache3);
  59.                     }
  60.                 }, string.Empty);
  61.             }
  62.         }
複製代碼



由此可以看到.. 他會發送的只有是用什么選項去突(50/25/1的type ID).. 而不會發送數量.. 就算你改到用1石去突.. 但實際扣除的還是50個小饅頭..... 而回傳下來的數據是經以下method去處理....


  1. internal void <>m__5A7(DeckExceedModel result)
  2.         {
  3.             App.Network.Error error = (App.Network.Error) result.error;
  4.             if (error == App.Network.Error.None)
  5.             {
  6.                 <DispLimitBreakDetail>c__AnonStorey28E storeye = new <DispLimitBreakDetail>c__AnonStorey28E();
  7.                 storeye.<>f__ref$653 = this;
  8.                 if (this.<>f__this.m_UI_UnitEnhanceLimitBreakDetail != null)
  9.                 {
  10.                     UnityEngine.Object.Destroy(this.<>f__this.m_UI_UnitEnhanceLimitBreakDetail.gameObject);
  11.                     this.<>f__this.m_UI_UnitEnhanceLimitBreakDetail = null;
  12.                 }
  13.                 storeye.card = result.result.card;
  14.                 if (storeye.card != null)
  15.                 {
  16.                     int num = Singleton<GlobalDataManager>.I.m_Player.stockCards.FindIndex(new Predicate<CardModel.Param>(storeye.<>m__5A8));
  17.                     if (num != -1)
  18.                     {
  19.                         Singleton<GlobalDataManager>.I.m_Player.stockCards[num] = storeye.card;
  20.                     }
  21.                     foreach (DeckModel.Param param in Singleton<GlobalDataManager>.I.m_Player.decks)
  22.                     {
  23.                         num = param.units.FindIndex(new Predicate<UnitModel.Param>(storeye.<>m__5A9));
  24.                         if (num != -1)
  25.                         {
  26.                             param.units[num].Card = storeye.card;
  27.                         }
  28.                     }
  29.                     this.<>f__this.m_ParentMenu.m_Unit.Card = storeye.card;
  30.                 }
  31.                 Singleton<GlobalDataManager>.I.m_Player.stockItems = result.result.items;
  32.                 this.<>f__this.SetUnit(this.<>f__this.m_ParentMenu.m_CardDetail, this.<>f__this.m_ParentMenu.m_Unit);
  33.                 this.<>f__this.m_ParentMenu.PlayLimitBreakScene(new System.Action(storeye.<>m__5AA));
  34.             }
  35.             else if (error == App.Network.Error.ERR_SKILL_LIMIT_BREAK_TIME_OVER)
  36.             {
  37.                 string message = Singleton<MessageManager>.I.GetMessage(Common_msg.SOULBOARD_LIMIT_BREAK_TIME_OVER);
  38.                 if (<>f__am$cache2 == null)
  39.                 {
  40.                     <>f__am$cache2 = delegate (Dialog.Result r) {
  41.                     };
  42.                 }
  43.                 Singleton<UIManager>.I.CommonUI.OpenDialog(Dialog.Type.OK, message, <>f__am$cache2);
  44.             }
  45.             else
  46.             {
  47.                 if (<>f__am$cache3 == null)
  48.                 {
  49.                     <>f__am$cache3 = delegate (Dialog.Result r) {
  50.                         SceneManager.ChangeOutGame(OutGameManager.Scene.Fatal);
  51.                     };
  52.                 }
  53.                 Singleton<UIManager>.I.CommonUI.OpenDialog(Dialog.Type.OK, (App.Network.Error) result.error, <>f__am$cache3);
  54.             }
  55.         }

複製代碼



當然你可以修改這個method去放動畫自high一下... 但實際上並無效果... 還不如直接改屬性...

用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

47
2153030 | 收聽TA | 只看該作者
發表於 2015-8-8 16:42
terrywany2k 發表於 2015-8-8 16:12
少年... 吹牛也要有個譜.... 你這樣子家人知道嗎?

首先限界突破是在UI_UnitEnchanceTreeMenu的一個delegat ...

其實也不是不可能啦
8591都有代抽99%中獎了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

48
 樓主| Duklaan | 收聽TA | 只看該作者
發表於 2015-8-8 17:16
terrywany2k 發表於 2015-8-8 16:12
少年... 吹牛也要有個譜.... 你這樣子家人知道嗎?

首先限界突破是在UI_UnitEnchanceTreeMenu的一個delegat ...

大大隨便你怎樣分析UI怎樣說
反正我抽一隻突一隻已經無欲無求了
又不用課金就夠爽
你就當我吹牛吧我不介意

註︰大大我好欣賞你修改的女子高校,真的!可是我沒有玩。

點評

所有發送的數據都會調用NetworkManager.Request這個method(除了協力是用websocket).. 只要注入這個method就知道發送了什么.. 收到了什么.... 代碼是不會騙人的..  發表於 2015-8-9 05:28
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

49
zxc044 | 收聽TA | 只看該作者
發表於 2015-8-8 23:12
大大我支持修改版本也支持你
現在出新版沒大大要做快刷版
希望你能做個像其他大神
做的那種有
寶箱自開怪自死皇冠全滿
怪X倍寶箱X倍等等的效果的
快刷版的來用用
還有簡易版的
然後能另外做一個怪x20寶箱x20的版本
想拿來刷裝飾品 比較快也輕鬆
但又不想要裝飾品一次就掉太過多或破百的數量
所以才想要另外有個
怪x20寶箱x20的版本
希望大大可以做出來分享
感謝了
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

50
terrywany2k | 收聽TA | 只看該作者
發表於 2015-8-9 05:48
本帖最後由 terrywany2k 於 2015-8-9 06:32 編輯
2153030 發表於 2015-8-8 16:42
其實也不是不可能啦
8591都有代抽99%中獎了


99%中獎這個不好說... 因為伺服端的代碼看不到.. 但客戶端的代碼完全可被反編譯.. 你以為我是隨便猜測的? 客戶端可以修改到不用虹石都可以凸(甚至所有角色自動已4凸)..... 但這個凸是沒意思的.. 只能在"已修改"的機有效果.. 即是引繼去其他機子就變會正常... 這樣改還不如直接調屬性?

說一下99%中獎吧.. 很多時為伺服端為了省系統資源.. 設計的時候不會用true random而改用pseudo random... 很多時用時間去做一個seed... 這就可以解釋到為何有時很坑.. 有時11抽可以有數個4*(我試過11抽6個4星.. 但有3個相同).. 不是坑爹時段的話就很容易中到.. [我的理解是這樣]
用Android 就來Android 台灣中文網(https://apk.tw)
回覆 支持 反對

使用道具 舉報

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

本版積分規則