搜索
查看: 2722|回复: 4

插件error问题(与giveoutmoney并用中)(已解决)

[复制链接]
发表于 2009-9-21 23:56:35 | 显示全部楼层 |阅读模式 来自 日本
本帖最后由 cityhonghu 于 2009-10-4 12:02 编辑

出现error提示的插件为plugin_bonus.amxx,提示如下
请问要如何改源码呢? 谢谢

L 09/22/2009 - 00:33:04: [AMXX] Displaying debug trace (plugin "plugin_bonus.amxx")
L 09/22/2009 - 00:33:04: [AMXX] Run time error 10: native error (native "cs_set_user_money")
L 09/22/2009 - 00:33:04: [AMXX]    [0] amxmod.inc::set_user_money (line 47)
L 09/22/2009 - 00:33:04: [AMXX]    [1] plugin_bonus.sma::event_death (line 60)


plugin_bonus源码如下
  1. /*
  2. *   AMXMOD script.
  3. *   (plugin_bonus1.sma)
  4. *   by DreamZSW <DreamZSW@hotmail.com>
  5. *   This file is provided as is (no warranties).
  6. *
  7. */
  8. #include <amxmod>
  9. #include <unlimited_money>

  10. #define MAX_NAME_LENGTH 32
  11. #define MAX_TEXT_LENGTH 512

  12. #define ACCESS_LEVEL ADMIN_LEVEL_A

  13. // Default on/off
  14. new gBonusMode = 1

  15. new gBonusCount = 0
  16. new gBonusIndex[5] = { 50000, 20000, 10000, 8000, 5000 }

  17. public admin_bonuskill(id)
  18.         {
  19.         // Check access level
  20.         if (!(get_user_flags(id)&ACCESS_LEVEL)) {
  21.                 console_print(id,"[AMX] You have no access to that command")
  22.                 return PLUGIN_HANDLED
  23.         }
  24.         // Check arguments
  25.         if (read_argc() < 2) {
  26.                 console_print(id,"[AMX] Usage: amx_bonuskill < 1 | 0 >")
  27.                 return PLUGIN_HANDLED
  28.         }
  29.         new sArg1[MAX_NAME_LENGTH]
  30.         read_argv(1,sArg1,MAX_NAME_LENGTH)
  31.        
  32.         if (str_to_num(sArg1)) {
  33.                 gBonusMode = 1
  34.                 client_print(id,print_console,"[AMX] Bonus money for kills is now ON.")
  35.         }
  36.         else {
  37.                 gBonusMode = 0
  38.                 client_print(id,print_console,"[AMX] Bonus money for kills is now OFF.")
  39.         }
  40.        
  41.         return PLUGIN_HANDLED
  42. }

  43. public event_death()
  44.         {
  45.         if (gBonusMode) {
  46.                 new iKiller = read_data(1)
  47.                 new iVictim = read_data(2)
  48.                 new sMsg[MAX_TEXT_LENGTH]
  49.                 new sName[MAX_NAME_LENGTH]
  50.                 get_user_name(iKiller,sName,MAX_NAME_LENGTH)
  51.                
  52.                 if ((iKiller != iVictim) && (gBonusCount < sizeof gBonusIndex) && (get_user_team(iKiller) != get_user_team(iVictim))) {
  53.                         gBonusCount++
  54.                         set_user_money(iKiller,cs_get_user_money2(iKiller)+gBonusIndex[gBonusCount-1])
  55.                         if (gBonusCount == 1) {
  56.                                 format(sMsg,MAX_TEXT_LENGTH,"奖励第一杀手 %s^n金钱 +$%i",sName,gBonusIndex[gBonusCount-1])
  57.                                 client_cmd(0, "spk misc/coin01")
  58.                                 set_hudmessage(200, 100, 0, 0.01, 0.65, 0, 4.0, 4.0, 0.5, 0.15, 1)
  59.                         }
  60.                         else if (gBonusCount == 2) {
  61.                                 format(sMsg,MAX_TEXT_LENGTH,"奖励第二杀手 %s^n金钱 +$%i",sName,gBonusIndex[gBonusCount-1])
  62.                                 client_cmd(0, "spk misc/coin02")
  63.                                 set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), 0.01, 0.65, 0, 3.0, 3.0, 0.5, 0.15, 1)
  64.                         }
  65.                         else if (gBonusCount == 3) {
  66.                                 format(sMsg,MAX_TEXT_LENGTH,"奖励第三杀手 %s^n金钱 +$%i",sName,gBonusIndex[gBonusCount-1])
  67.                                 client_cmd(0, "spk misc/coin03")
  68.                                 set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), 0.01, 0.65, 0, 3.0, 3.0, 0.5, 0.15, 1)
  69.                         }
  70.                         else if (gBonusCount == 4) {
  71.                                 format(sMsg,MAX_TEXT_LENGTH,"奖励第四杀手 %s^n金钱 +$%i",sName,gBonusIndex[gBonusCount-1])
  72.                                 client_cmd(0, "spk misc/coin04")
  73.                                 set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), 0.01, 0.65, 0, 3.0, 3.0, 0.5, 0.15, 1)
  74.                         }
  75.                         else {
  76.                                 format(sMsg,MAX_TEXT_LENGTH,"奖励第五杀手 %s^n金钱 +$%i",sName,gBonusIndex[gBonusCount-1])
  77.                                 set_hudmessage(random_num(0,255), random_num(0,255), random_num(0,255), 0.01, 0.65, 0, 3.0, 3.0, 0.5, 0.15, 1)
  78.                         }
  79.                         show_hudmessage(0,sMsg)
  80.                 }
  81.         }
  82.         return PLUGIN_CONTINUE
  83. }

  84. public event_round_end() {
  85.         gBonusCount = 0
  86. }

  87. public plugin_precache(){
  88.         precache_sound( "misc/coin01.wav")
  89.         precache_sound( "misc/coin02.wav")
  90.         precache_sound( "misc/coin03.wav")
  91.         precache_sound( "misc/coin04.wav")
  92.         return PLUGIN_CONTINUE
  93. }

  94. /************************************************************
  95. * PLUGIN FUNCTIONS
  96. ************************************************************/

  97. public plugin_init()
  98.         {
  99.         register_plugin("Plugin Money Bonus","1.0","DreamZSW")
  100.         register_event("DeathMsg","event_death","a")
  101.         register_event("SendAudio","event_round_end","a","2&%!MRAD_terwin","2&%!MRAD_ctwin","2&%!MRAD_rounddraw")
  102.         register_concmd("amx_bonuskill","admin_bonuskill",ACCESS_LEVEL,"amx_powers < authid | part of nick >")
  103. }
复制代码
发表于 2009-9-22 00:18:47 | 显示全部楼层 来自 台湾
試試看吧
我是覺得少了
#include <amxmodx>
#include <cstrike>

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注个册吧

×
回复

使用道具 举报

发表于 2009-9-22 00:38:39 | 显示全部楼层 来自 四川
本帖最后由 sakulekingz 于 2009-9-22 00:54 编辑
  1. is_user_connected
  2. cs_get_user_money2
  3. cs_set_user_money2
复制代码
只用
#include <amxmodx>
#include <unlimited_money>
就够了
回复

使用道具 举报

发表于 2009-9-22 00:45:55 | 显示全部楼层 来自 四川
本帖最后由 sakulekingz 于 2009-9-22 00:52 编辑
  1. if ((iKiller != iVictim) && (gBonusCount < sizeof gBonusIndex) && (get_user_team(iKiller) != get_user_team(iVictim)))
  2. 改成
  3. if ((iKiller != iVictim) && (gBonusCount < sizeof gBonusIndex) && (get_user_team(iKiller) != get_user_team(iVictim)) && is_user_connected(iKiller))
复制代码
cs_get_user_money 换成 cs_get_user_money2
set_user_money 换成 cs_set_user_money2
回复

使用道具 举报

 楼主| 发表于 2009-9-22 01:48:52 | 显示全部楼层 来自 日本
谢谢2位,2种都试试看。
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表