找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 665|回复: 6

来个懂C语法的

[复制链接]

该用户从未签到

发表于 2010-1-25 08:56:48 | 显示全部楼层 |阅读模式
下面代码可运行无错误但是 7 Warnings.
另外就是cmd[32],
if (strcmp(cmd, "2")==0)
囧Rz 不太懂C语法类型都不识几个 能想到的只有这个了
来个懂的帮修改优化下
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <string>

  5. public plugin_init()
  6. {
  7.         register_plugin("Set_Team", "0.1", "LoveHuai");
  8.   register_clcmd("set_team_menu", "Set_Team_Menu")
  9. }

  10. public Set_Team_Menu(id, level, cid)
  11. {
  12.         new menu = menu_create("队伍转移:", "Test_Menu1_Handler")
  13.         menu_additem(menu, "转移到反恐精英", "1", ADMIN_RESERVATION)
  14.         menu_additem(menu, "转移到恐怖分子", "2", ADMIN_RESERVATION)
  15.         menu_setprop(menu, MPROP_EXIT, MEXIT_NEVER)
  16.         menu_display(id, menu, 0)
  17.         return PLUGIN_HANDLED
  18. }




  19. public Test_Menu1_Handler(id, menu, item)
  20. {
  21.         if (item == MENU_EXIT)
  22.         {
  23.                 menu_destroy(menu)
  24.                 return PLUGIN_HANDLED
  25.         }
  26.         new cmd[32], name[32], access
  27.         menu_item_getinfo(menu, item, access, cmd, 31, name, 31, access)
  28.                 if (strcmp(cmd, "1")==0)
  29.                 {
  30.                                 if (cs_get_user_team(id) == CS_TEAM_T){
  31.                                                                 if (is_user_alive(id)) {
  32.                                 user_kill(id,1);
  33.                         }
  34.                                         cs_set_user_team(id,CS_TEAM_CT,CS_CT_URBAN);
  35.                                 }
  36.                                 menu_destroy(menu)
  37.                return PLUGIN_HANDLED       
  38.                 }
  39.                 if (strcmp(cmd, "2")==0)
  40.                 {
  41.                                 if (cs_get_user_team(id) == CS_TEAM_CT){
  42.                                                                 if (is_user_alive(id)) {
  43.                                 user_kill(id,1);
  44.                         }
  45.                                         cs_set_user_team(id,CS_TEAM_T,CS_T_TERROR);
  46.                                 }
  47.                                 menu_destroy(menu)
  48.                return PLUGIN_HANDLED       
  49.                 }
  50.         menu_destroy(menu)
  51.         return PLUGIN_HANDLED
  52. }
复制代码

该用户从未签到

发表于 2010-1-25 09:29:41 | 显示全部楼层
哎呀。好深奥。。  这回真的是只可远观不可亵玩了。

该用户从未签到

发表于 2010-1-25 09:45:04 | 显示全部楼层
这个是干什么的?

该用户从未签到

发表于 2010-1-25 10:21:27 | 显示全部楼层
说实话。
我也就看不懂而已

该用户从未签到

发表于 2010-1-25 10:31:26 | 显示全部楼层
Warnning 是在什么位置呢?LZ能否提示一下?

该用户从未签到

发表于 2010-1-25 10:42:36 | 显示全部楼层
waring都是loose indentation,意思是排版不好
每个语句前最好用tab进行缩进,不要用空格

该用户从未签到

发表于 2010-1-25 10:52:32 | 显示全部楼层
简单的一个小优化就是在if 后面跟上else,避免形成无谓的判断。当然更推荐使用switch语句。
还有一点是为什么不把:return PLUGIN_HANDLED 写在函数最后?写一个就可以了,这样函数不会很乱。此外请LZ自己添加注释
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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