我錯在那兒 ?

Home Home
引用 | 編輯 火之新城
2012-07-11 13:50
樓主
推文 x0
雖然能夠編繹,但是功能沒法正常使用。

amx_bank 沒法開出選單,在控制台打 bank_menu 沒有任何東西彈出。

VIP_wea 武器攻擊力沒有生效,請大大們幫我看看。

這是我第 1 次修改插件。

本帖包含附件
檔名: zip sma.rar   (2022-06-09 14:20 / 7 KB)   下載次數:9


獻花 x0
引用 | 編輯 ccw111
2012-07-11 17:45
1樓
  
關於VIP_wea.sma
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type, id)

正確是這個
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type )

至於bank_menu沒法開啟的原因,
就是因為你module.ini中
沒有把mysql前面的;去掉
;mysql
;sqlite

因此令插件無法讀取

獻花 x0
引用 | 編輯 火之新城
2012-07-11 19:46
2樓
  
下面是引用 ccw111 於 2012-07-11 17:45 發表的 : 到引言文
關於VIP_wea.sma
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type, id)

正確是這個
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type )

至於bank_menu沒法開啟的原因,
就是因為你module.ini中
沒有把mysql前面的;去掉
;mysql
;sqlite

因此令插件無法讀取

我把 public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type, id)

變成

public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type) 後

他說 VIP_wea 的第 31 行出現錯誤 017 "id"



bank_menu 仍然沒彈出來 (已刪除 ; 號),但是插件的確在運行中。

獻花 x0
引用 | 編輯 ccw111
2012-07-12 01:38
3樓
  
因為的的id未定義

所以你可以把attacker換成id

獻花 x0
引用 | 編輯 火之新城
2012-07-12 08:38
4樓
  
下面是引用 ccw111 於 2012-07-12 01:38 發表的 : 到引言文
因為的的id未定義

所以你可以把attacker換成id
換了後功能沒顯著



bank_menu 仍然沒法開

獻花 x0
引用 | 編輯 ccw111
2012-07-12 10:09
5樓
  
下面是引用 火之新城 於 2012-07-12 08:38 發表的 : 到引言文

換了後功能沒顯著



bank_menu 仍然沒法開

我把VIP_wea.sma修改了一部分
試試這個吧,不過我未測試過

至於bank_menu
好像要2個玩家才能使用
請恕我無法協助( 我是單機測試的 )

本帖包含附件
檔名: zip VIP_wea.rar   (2022-06-09 14:20 / 2 KB)   下載次數:4


獻花 x0
引用 | 編輯 觀眾甲
2012-07-13 15:08
6樓
  
bank_menu你確定你有足夠權限嗎?

獻花 x0
引用 | 編輯 zxzyman
2012-07-17 17:55
7樓
  
bank_restrict 0   // 0=所有用戶都能使用銀行     1=只有文件內的用戶


不然就是


bank_offrounds 1   // 地圖開始 1 回合內禁止使用銀行功能!



再來是上帝說的


bank_min_players 2 //至少須要多少玩家才能開啟銀行

獻花 x0
引用 | 編輯 sonic0103
2012-07-20 08:30
8樓
  
VIP_wea.sma.sma 有出現3個警告訊息你可能要注意一下:

loose indentation:39行、44行 //區塊編排錯誤
function "fw_TakeDamage" should return: 47行 //函數"fw_TakeDamage"應該要有回傳值

複製程式
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type, id)
       if (is_user_alive(id) && (get_user_flags(id)&ADMIN_SLAY)) //這裡不該出現判斷式
       {
              new weaponID = read_data(2)
              if(weaponID == CSW_AK47)
              {
                     damage = (damage * 1.5)
                     SetHamParamFloat(4, damage)
              }
       else if (weaponID == CSW_M4A1)
              {
                     damage = (damage * 2.5)
                     SetHamParamFloat(4, damage)
              }
       return HAM_IGNORED
}


31行應該是寫錯了,少了區塊括號{}
在fw_TakeDamage 函數區塊外就多了判斷式
if (is_user_alive(id) && (get_user_flags(id)&ADMIN_SLAY))

修改後程式碼應該為這樣:
複製程式
public fw_TakeDamage(victim, inflictor, attacker, Float:damage, damage_type, id)
{
       if (is_user_alive(id) && (get_user_flags(id)&ADMIN_SLAY))
       {
              new weaponID = read_data(2)
              if(weaponID == CSW_AK47)
              {
                     damage = (damage * 1.5)
                     SetHamParamFloat(4, damage)
              }
              else if (weaponID == CSW_M4A1)
              {
                     damage = (damage * 2.5)
                     SetHamParamFloat(4, damage)
              }
       }
       return HAM_IGNORED
}


獻花 x0