編譯插件無限循環問題

Home Home
引用 | 編輯 文♂
2013-10-01 11:32
樓主
推文 x0
複製程式
LoadData(id)
{
       static vaultkey[64], vaultdata[512], datalen
       
       format(vaultkey, charsmax(vaultkey), "%s#", user_name[id])
       format(vaultdata, charsmax(vaultdata), "%s#%i#%i#%i#%i#%i#%i#%i#%s#%i#%i", user_password[id], user_status[id][0], user_status[id][1], user_status[id][2], user_status[id][3], user_status[id][4], user_status[id][5], user_status[id][6], user_ipaddress[id], user_status[id][7], user_status[id][8])
           datalen = nvault_get(nvault_data, vaultkey, vaultdata, charsmax(vaultdata))
       
       if (datalen)
       {
              user_registered[id] = true

              replace_all(vaultdata, 255, "#", " ")

              static cache_status[33][33]
              parse(vaultdata, user_password[id], charsmax(user_password[]), cache_status[0], charsmax(cache_status[]), cache_status[1], charsmax(cache_status[]), cache_status[2], charsmax(cache_status[]), cache_status[3], charsmax(cache_status[]), cache_status[4], charsmax(cache_status[]), cache_status[5], charsmax(cache_status[]), cache_status[6], charsmax(cache_status[]), user_ipaddress[id], charsmax(user_ipaddress[]), cache_status[7], charsmax(cache_status[]), cache_status[8], charsmax(cache_status[]))

              for (new i = 0;i <= 8;i++)
                     user_status[id][i] = str_to_num(cache_status[i])
       }
       else
              user_registered[id] = false

       set_task(1.0, "player_login", id)
}
以上是我的登入程序

問題來了
編譯插件時無限loop
等了十分鐘依舊在編譯

複製程式
parse(vaultdata, user_password[id], charsmax(user_password[]), cache_status[0], charsmax(cache_status[]), cache_status[1], charsmax(cache_status[]), cache_status[2], charsmax(cache_status[]), cache_status[3], charsmax(cache_status[]), cache_status[4], charsmax(cache_status[]), cache_status[5], charsmax(cache_status[]), cache_status[6], charsmax(cache_status[]), user_ipaddress[id], charsmax(user_ipaddress[]), cache_status[7], charsmax(cache_status[]), cache_status[8], charsmax(cache_status[]))

後來發現將這段語法刪去便沒有無限循環的情況
有大大知道這是怎麼問題了表情

獻花 x0
引用 | 編輯 op47
2013-10-01 11:54
1樓
  
應該是charsmax問題

獻花 x0
引用 | 編輯 文♂
2013-10-01 12:04
2樓
  
下面是引用 op47 於 2013-10-01 11:54 發表的 : 到引言文
應該是charsmax問題

不清楚

複製程式
parse(vaultdata, user_password[id], charsmax(user_password[]), cache_status[0], charsmax(cache_status[]), cache_status[1], charsmax(cache_status[]), cache_status[2], charsmax(cache_status[]), cache_status[3], charsmax(cache_status[]), cache_status[4], charsmax(cache_status[]), cache_status[5], charsmax(cache_status[]), cache_status[6], charsmax(cache_status[]), user_ipaddress[id], charsmax(user_ipaddress[]), cache_status[7], charsmax(cache_status[])[color=#FF0000], cache_status[8], charsmax(cache_status[])[/color])

將紅字部份刪除之後
都能解決無限循環問題
難道parse語法不能設太多參數?表情

獻花 x0
引用 | 編輯 op47
2013-10-01 12:09
3樓
  
有隔行嗎

獻花 x0
引用 | 編輯 弒血
2013-10-01 13:02
4樓
  
下面是引用 文♂ 於 2013-10-01 12:04 發表的 : 到引言文

不清楚
複製程式
parse(vaultdata, user_password[id], charsmax(user_password[]), cache_status[0], charsmax(cache_status[]), cache_status[1], charsmax(cache_status[]), cache_status[2], charsmax(cache_status[]), cache_status[3], charsmax(cache_status[]), cache_status[4], charsmax(cache_status[]), cache_status[5], charsmax(cache_status[]), cache_status[6], charsmax(cache_status[]), user_ipaddress[id], charsmax(user_ipaddress[]), cache_status[7], charsmax(cache_status[])[color=#FF0000], cache_status[8], charsmax(cache_status[])[/color])
將紅字部份刪除之後
都能解決無限循環問題
.......



是不是因為你陣列設置太多了的關析表情 


cache_status[33][33] 

你好像只用到8個陣列數


這個問題我沒有遇過..第一次看到無限LOOP..

獻花 x0
引用 | 編輯 a7811311622
2013-10-01 15:42
5樓
  
原因是出在你用了 charsmax … 表情
畢竟 charsmax 只是<string>用 define 定義出來的…
有時候太死板就容易出問題…
至於原因…我不想管~ 表情

反正我將 parse 內全部的 charsmax 全換成 sizeof ? -1 就沒問題了…
複製程式
parse(vaultdata, user_password[id], sizeof user_password -1, cache_status[0], sizeof cache_status -1, cache_status[1], sizeof cache_status -1, cache_status[2], sizeof cache_status -1, cache_status[3], sizeof cache_status -1, cache_status[4], sizeof cache_status -1, cache_status[5], sizeof cache_status -1, cache_status[6], sizeof cache_status -1, user_ipaddress[id], charsmax(user_ipaddress[]), cache_status[7], sizeof cache_status -1, cache_status[8], sizeof cache_status -1)


獻花 x0
引用 | 編輯 文♂
2013-10-05 10:27
6樓
  
下面是引用 a7811311622 於 2013-10-01 15:42 發表的 : 到引言文
原因是出在你用了 charsmax … 表情  
畢竟 charsmax 只是<string>用 define 定義出來的…
有時候太死板就容易出問題…
至於原因…我不想管~ 表情  
反正我將 parse 內全部的 charsmax 全換成 sizeof ? -1 就沒問題了…
.......

呆死了表情
感謝A大大

獻花 x0