LV. 10
GP 390

RE:【情報】素質計算網站-Ragnarok Online States Calculator

樓主 lei q5e8f6s4
GP14 BP-
稍微玩玩你寫的計算機,發現有2個BUG,是有關自動調整等級的函數,我直接貼圖比較直覺。


只要先將等級調到175,然後再勾選"自動調整等級",就會出現錯誤訊息。然後我看了一下你的index檔的第157和158行是這樣寫:

157         LV_index2=form.Base_Lv.selectedIndex+1;
158         text2=form.Base_Lv.options[LV_index2].value;

首先再console內輸入form.Base_Lv.selectedIndex,傳回174,因此LV_index2 = 175。但是輸入
form.Base_Lv.options[175],會回傳undefined,因為你的option標籤只到174。

另外一個錯誤是在第150行,你的for循環。



當我勾選"自動調整等級",就會執行if內的code嘛。看一下for循環是從a = 0開始,首先form.Base_Lv.options[0].selected=true; 表示選到等級1,有100點素質點數,text1 = 100,而STR_point_Reduce是STR消耗掉多少素質點數,其他亦然。所以FinalPoint是剩餘點數嘛,而你是從等級1開始,扣掉消耗掉的素質點數後,若FinalPoint < 0,則a就會+1,之後重複循環直到finalPoint >=0,等級自動調整到正確的等級上。

只要調整素質直到等級跳到175時,再繼續調整就會出現錯誤了。例如我把STR、AGI調到120,然後再把VIT調到122,此時等級就會跳到175,此時再把VIT調到123就會出錯。因為此時STR和AGI是消耗掉1079點,而VIT是消耗掉1175點,1079+1079+1175=3333,而你的a會循環到直到a = 175,因為當a = 174時,form.Base_Lv.options[174].value = 3330,而FinalPoint = 3330 - 3333 < 0,此時a再遞增1變成175,但是如前面說的,form.Base_Lv.options[175]是undefined。

簡單來講就是當剩餘點數<0時就會出錯,175等總共只有3330點,但是素質點可以高興亂調,調到總消耗點數超過3330,因此是不是在for裡面添加個if判別式之類的,讓a = 174時就跳出for循環,不要讓a遞增到175。當然我沒改過不確定這方法可不可行啦,就看你想怎麼修正囉~
14
-
未登入的勇者,要加入討論嗎?
板務人員:

10338 筆精華,今天 更新
一個月內新增 7
歡迎加入共同維護。


face基於日前微軟官方表示 Internet Explorer 不再支援新的網路標準,可能無法使用新的應用程式來呈現網站內容,在瀏覽器支援度及網站安全性的雙重考量下,為了讓巴友們有更好的使用體驗,巴哈姆特即將於 2019年9月2日 停止支援 Internet Explorer 瀏覽器的頁面呈現和功能。
屆時建議您使用下述瀏覽器來瀏覽巴哈姆特:
。Google Chrome(推薦)
。Mozilla Firefox
。Microsoft Edge(Windows10以上的作業系統版本才可使用)

face我們了解您不想看到廣告的心情⋯ 若您願意支持巴哈姆特永續經營,請將 gamer.com.tw 加入廣告阻擋工具的白名單中,謝謝 !【教學】