找回密码
 注-册

QQ登录

只需一步,快速开始

查看: 1588|回复: 3

源码求助

[复制链接]
rebeccs 发表于 2009-2-11 17:59:00 | 显示全部楼层 |阅读模式
  1. /*
  2. Weapons Mod 2.0
  3. Brought to you by TooLz

  4. Special thanks to DoDPlugins.net for providing the wonderful community!
  5. */

  6. #include <amxmodx>
  7. #include <amxmisc>
  8. #include <fun>
  9. #include <dodx>
  10. #include <fakemeta>

  11. #define MAXWEAPON 23
  12. new got_weapon[32], Weapon_Name[33][32]
  13. enum WeaponData {
  14.         WMOD_Weapon,
  15.         WMOD_SayCmd[32],
  16.         WMOD_Disabled[32]
  17. }
  18. new WEAPON[MAXWEAPON][WeaponData] = {
  19.         {DODW_KAR,"k98","amx_disable_k98"},                                        //0
  20.         {DODW_GARAND,"m1","amx_disable_m1"},                                //1
  21.         {DODW_K43,"k43","amx_disablek43"},                                        //2
  22.         {DODW_M1_CARBINE,"kabin","amx_disable_kabin"},                                //3
  23.         {DODW_MP40,"mp40","amx_disable_mp40"},                                        //4
  24.         {DODW_THOMPSON,"tms","amx_disable_tms"},                        //5
  25.         {DODW_STG44,"stg44","amx_disable_stg44"},                                //6
  26.         {DODW_GREASEGUN,"greasegun","amx_disable_greasegun"},                        //7
  27.         {DODW_SCOPED_KAR,"scopedk98","amx_disable_scopedk98"},                        //8
  28.         {DODW_SPRINGFIELD,"springfield","amx_disable_springfield"},                //9
  29.         {DODW_MG34,"mg34","amx_disable_mg34"},                                        //10
  30.         {DODW_BAR,"bar","amx_disable_bar"},                                        //11
  31.         {DODW_MG42,"mg42","amx_disable_mg42"},                                        //12
  32.         {DODW_30_CAL,"30cal","amx_disable_30cal"},                                //13
  33.         {DODW_PANZERSCHRECK,"panzerschreck","amx_disable_panzerschreck"},        //14
  34.         {DODW_BAZOOKA,"bazooka","amx_disable_bazooka"},                                //15
  35.         {DODW_ENFIELD,"enfield","amx_disable_enfield"},                                //16
  36.         {DODW_STEN,"sten","amx_disable_sten"},                                        //17
  37.         {DODW_BREN,"bren","amx_disable_bren"},                                        //18
  38.         {DODW_PIAT,"piat","amx_disable_piat"},                                        //19
  39.         {DODW_FG42,"fg42","amx_disable_fg42"},                                        //20
  40.         {DODW_SCOPED_FG42,"scopedfg42","amx_disable_scopedfg42"},                //21
  41.         {DODW_SCOPED_ENFIELD,"scopedenfield","amx_disable_scopedenfield"}        //22
  42. }
  43. public plugin_init()
  44. {
  45.         register_plugin("Weapons Mod 2.0","2.0","TooLz")
  46.         register_event("ResetHUD","respawn","be")
  47.         register_clcmd("say","cmdSay",0,"- Checks which weapon was said")
  48.         register_cvar("amx_weapon_changes", "2")
  49.         register_cvar("amx_disable_scopedfg42","0")
  50.         register_cvar("amx_disable_scopedenfield","0")
  51.         register_cvar("amx_disable_k98", "0")
  52.         register_cvar("amx_disable_garand", "0")
  53.         register_cvar("amx_disable_carbine", "0")
  54.         register_cvar("amx_disable_k43", "0")
  55.         register_cvar("amx_disable_mp40", "0")
  56.         register_cvar("amx_disable_thompson", "0")
  57.         register_cvar("amx_disable_stg44", "0")
  58.         register_cvar("amx_disable_bar", "0")
  59.         register_cvar("amx_disable_fg42", "0")
  60.         register_cvar("amx_disable_greasegun", "0")
  61.         register_cvar("amx_disable_bazooka", "0")
  62.         register_cvar("amx_disable_enfield", "0")
  63.         register_cvar("amx_disable_sten", "0")
  64.         register_cvar("amx_disable_mg42", "0")
  65.         register_cvar("amx_disable_mg34", "0")
  66.         register_cvar("amx_disable_30cal", "0")
  67.         register_cvar("amx_disable_springfield", "0")
  68.         register_cvar("amx_disable_scopedk98", "0")
  69.         register_cvar("amx_disable_bren", "0")
  70.         register_cvar("amx_disable_panzerschreck", "0")
  71.         register_cvar("amx_disable_piat", "0")
  72. }
  73. public respawn(id){
  74.         got_weapon[id] = 0
  75. }
  76. stock detect_weapon_id(id) {
  77. // Big thanks to Wilson for this stock!
  78.         new m_iCurEnt = -1, m_iWpnEnt = 0, m_szWpn[32];
  79.         new clip, ammo, m_iWpn = get_user_weapon(id,clip,ammo);
  80.         xmod_get_wpnlogname(m_iWpn, m_szWpn, 31);
  81.         format(m_szWpn, 31, "weapon_%s", m_szWpn);
  82.         if(equal(m_szWpn, "weapon_scoped_enfield")) m_szWpn = "weapon_enfield";
  83.         if(equal(m_szWpn, "weapon_scoped_fg42")) m_szWpn = "weapon_fg42";
  84.         new Float:m_flOrigin[3];
  85.         pev(id, pev_origin, m_flOrigin);
  86.         while((m_iCurEnt = engfunc(EngFunc_FindEntityInSphere, m_iCurEnt, m_flOrigin, Float:1.0)) != 0) {
  87.                 new m_szClassname[32];
  88.                 pev(m_iCurEnt, pev_classname, m_szClassname, 31);
  89.                 if(equal(m_szClassname, m_szWpn))
  90.                         m_iWpnEnt = m_iCurEnt;
  91.         }
  92.         return m_iWpnEnt;
  93. }
  94. stock cmdWeapon(WeaponID, WeaponName[32]) {
  95.         xmod_get_wpnlogname(WeaponID, WeaponName, 31);
  96.         format(WeaponName, 31, "weapon_%s", WeaponName);
  97. }
  98. stock dod_get_scoped(id) {
  99.     new m_iCurEnt = -1, m_iWpnEnt = 0, m_szWpn[32];
  100.     new clip, ammo, m_iWpn = get_user_weapon(id,clip,ammo);
  101.     new is_scoped
  102.     xmod_get_wpnlogname(m_iWpn, m_szWpn, 31);
  103.     format(m_szWpn, 31, "weapon_%s", m_szWpn);
  104.     if(equal(m_szWpn, "weapon_scoped_enfield")) m_szWpn = "weapon_enfield";
  105.     if(equal(m_szWpn, "weapon_scoped_fg42")) m_szWpn = "weapon_fg42";
  106.     new Float:m_flOrigin[3];
  107.     pev(id, pev_origin, m_flOrigin);
  108.     while((m_iCurEnt = engfunc(EngFunc_FindEntityInSphere, m_iCurEnt, m_flOrigin, Float:1.0)) != 0) {
  109.         new m_szClassname[32];
  110.         pev(m_iCurEnt, pev_classname, m_szClassname, 31);
  111.         if(equal(m_szClassname, m_szWpn))
  112.             m_iWpnEnt = m_iCurEnt;
  113.     }
  114.     is_scoped = get_pdata_int(m_iWpnEnt,115,4);
  115.     return is_scoped;
  116. }
  117. public cmdMakeScoped(id){
  118.         new is_scoped = dod_get_scoped(id)
  119.         while(is_scoped != 1){
  120.                 is_scoped = dod_get_scoped(id)
  121.                 set_pdata_int(detect_weapon_id(id),115,1,4)
  122.         }
  123.         client_cmd(id,"slot2;wait;slot3")
  124. }
  125. public cmdGiveWeapon(id){
  126.         if (!equali(Weapon_Name[id],"weapon_scoped_fg42") && !equali(Weapon_Name[id], "weapon_scoped_enfield")){
  127.                 give_item(id,Weapon_Name[id])
  128.         }
  129.         if(equali(Weapon_Name[id],"weapon_scoped_fg42")){
  130.                 give_item(id,"weapon_fg42")
  131.                 set_task(0.2,"cmdMakeScoped",id)
  132.         }
  133.         if(equali(Weapon_Name[id],"weapon_scoped_enfield")){
  134.                 give_item(id,"weapon_enfield")
  135.                 set_task(0.2,"cmdMakeScoped",id)
  136.         }
  137.         got_weapon[id]++
  138. }
  139. public cmdSay(id) {
  140.         new said[32]
  141.         read_argv(1,said,31)
  142.         if(said[0] != '/')
  143.                 return PLUGIN_CONTINUE;
  144.         for(new i = 0 ; i < MAXWEAPON ; i++) {
  145.                 if(equali(said[1],WEAPON[i][WMOD_SayCmd])) {
  146.                         if(get_cvar_num(WEAPON[i][WMOD_Disabled]) != 0){
  147.                                 client_print(id,print_chat, "[Weapons Mod 2.0] This weapon is disabled on this server.")
  148.                                 return PLUGIN_HANDLED
  149.                         }
  150.                         if (got_weapon[id] == get_cvar_num("amx_weapon_changes")){
  151.                                 client_print(id,print_chat, "[Weapons Mod 2.0] You've used up your gun changes, you must wait until respawn to change guns again.")
  152.                                 return PLUGIN_HANDLED
  153.                         }
  154.                         cmdWeapon(WEAPON[i][WMOD_Weapon],Weapon_Name[id])
  155.                         client_cmd(id, "drop")
  156.                         set_task(0.3,"cmdGiveWeapon", id)
  157.                         break;
  158.                 }
  159.         }
  160.         return PLUGIN_HANDLED
  161. }
复制代码
这这源码里面怎么才能才能加入users.ini权限 就是说 怎么才能让users.ini里面得人员才能使用这个权限?
回复

使用道具 举报

Leya 发表于 2009-2-11 22:45:40 | 显示全部楼层
我也不太懂,不过你可以借鉴下 admincmd.sma 这个有权限设置的
回复

使用道具 举报

joysin 发表于 2009-3-5 10:43:18 | 显示全部楼层
可能是权限问题吧
回复

使用道具 举报

=tank= 发表于 2009-10-14 16:17:23 | 显示全部楼层
我也在搞这个自由要枪的权限问题~ 一直没有解决。研究了这个源码貌似想加权限还有其他地方需要改动的。有高手指点一下吗????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注-册

本版积分规则

Archiver|手机版|小黑屋|DoDVip ( 桂ICP备14000730号 )

GMT+8, 2024-5-7 15:46 , Processed in 0.051030 second(s), 20 queries .

Powered by Discuz! X3.5

Copyright © 2001-2024 Tencent Cloud.

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