[閒聊] 從程式設計來聊最近的BUG
------------------------------注意---------------------------------------------
請注意版規
5. 發表字數低於30個中文字或60個英數符號即視為一行文
回文字數低於20個中文字或40個英數符號即視為一行文
(交易文、問價文請在文章類別選擇5或6 以固定格式發表)
下次直接給警告了,不再另外通知
--------------------------------------------------------以上請按ctrl+K刪除---
本人大約一年前就被盜了(或是半年
不過我個人一直很喜歡鑽研遊戲的設計原理
大概也研究過寫RO這種的遊戲引擎
但不管怎樣 要把測試的黑窗版(原始的CODE 轉換成 有圖形介面的GUI
要經過很多步驟
而這之中就會產生BUG
小的就來舉個簡單的例子
某弱弱的程式設計師 把裝備欄每個裝備都當成一個類似按鈕的東西好了
當你點兩下 就會觸發(卸除 的程式碼
這個時候就要看這個程式設計者有沒有腦袋 有沒有遠見
如果是劣質的設計者 就會這樣做
裝備 = parameter.getItem
(點下去的時候觸發程式 並且把裝備的資訊傳到另外一個地方
這時候
人物裝備 鎧甲 = null( 假設是鎧甲 那 這個人現在的鎧甲就改成NULL 即沒東西之意
然後
某種鎧甲 在道具攔的數量 +1
......................
類似這樣 但是萬一有人可以用一些方法讓鎧甲先卸除
然後按鈕(裝備欄上面的鎧甲圖樣) 繼續存在 ( 例如讓GUI 圖形介面的部分卡住
那它的鎧甲就會由 null 變成 null ( 空的變空的
但是他道具就會變成兩個
因為基本上按鈕是 被設計在GUI (也就是你們看到那些華麗的動畫 介面等等
然後你按下滑鼠 觸發某些程式碼
補上一句
我覺得RO裡面程式設計師好爛
寫的很好玩沒錯...但是很多東西都沒考慮到
有些東西一定要>0
有時候負重了 他只單方面限制一些東西 例如不能撿道具
但是後來的設計者又貪圖方便 在某些情況直接上玩家得到道具
RO團隊本身把遊戲寫起來的時候
不是前後大批的人出走
要不然就是各寫各的
然後硬兜在一起 後來發現有問題 趕快補補補這樣
沒有團隊寫程式經驗的話
想一想一個大團隊做報告好了
沒有妥善的溝通 到時候東西一定是硬兜
舉個例
裝備欄一定要關掉才可以交易
光這點就很像在剜肉補瘡
真正好的是可以直接從裝備欄拉到交易欄吧...
設計師只想說你不開裝備欄就點不到裝備的按鈕 就不會觸發那些程式碼
光這個BUG就在許紹洋廣告那個時代就好像曾經可以洗了
然後這個遺毒竟然一直留到我最後一次登入都還在
= = 後面字被吃掉
小的淺見而已 已經退出RO了
偶爾打打嘴砲文 希望有幫到大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.230.12.22
推
08/19 23:56, , 1F
08/19 23:56, 1F
→
08/19 23:57, , 2F
08/19 23:57, 2F
→
08/19 23:57, , 3F
08/19 23:57, 3F
※ 編輯: tonylo2ooo 來自: 61.230.12.22 (08/19 23:58)
推
08/20 00:01, , 4F
08/20 00:01, 4F
→
08/20 00:02, , 5F
08/20 00:02, 5F
→
08/20 00:02, , 6F
08/20 00:02, 6F
→
08/20 00:03, , 7F
08/20 00:03, 7F
→
08/20 00:03, , 8F
08/20 00:03, 8F
→
08/20 00:03, , 9F
08/20 00:03, 9F
推
08/20 00:03, , 10F
08/20 00:03, 10F
→
08/20 00:04, , 11F
08/20 00:04, 11F
→
08/20 00:04, , 12F
08/20 00:04, 12F
→
08/20 00:05, , 13F
08/20 00:05, 13F
→
08/20 00:05, , 14F
08/20 00:05, 14F
推
08/20 00:07, , 15F
08/20 00:07, 15F
→
08/20 00:08, , 16F
08/20 00:08, 16F
→
08/20 00:09, , 17F
08/20 00:09, 17F
推
08/20 00:10, , 18F
08/20 00:10, 18F
→
08/20 00:10, , 19F
08/20 00:10, 19F
→
08/20 00:11, , 20F
08/20 00:11, 20F
→
08/20 18:04, , 21F
08/20 18:04, 21F
→
08/20 18:04, , 22F
08/20 18:04, 22F