搜索
楼主: [Grief.QQ]

【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

[复制链接]
发表于 2005-9-2 22:23:52 | 显示全部楼层 来自 重庆南岸区

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

还有编译没提示错误,而运行则出现以上情况。
我的SPR文件是绝对没问题的
回复

使用道具 举报

发表于 2005-9-2 22:25:10 | 显示全部楼层 来自 广东广州

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

用8返回+用9翻页就OK啦。。。
回复

使用道具 举报

 楼主| 发表于 2005-9-3 00:00:55 | 显示全部楼层 来自 广东广州

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

我真是佩服你啊,真的定义这么多菜单。。。。。。

第一,第一,第二,第三个定义的菜单中,"\w0. EXIT" 没有换行符。
第二,你定义的第四页有点问题哦,你只有两个选择,所以,你大可不必用循环,而且你的热键定义的也有问题,应该是 keys = (1<<0|1<<9),再者你定义的第四页菜单命令中有三个case,但是你菜单只有两个选择。。。

编译的时候没有错误,是因为你语法上没有错误。

恩,你再仔细检查一下代码,看看前后时候符合!!
回复

使用道具 举报

发表于 2005-9-3 00:38:18 | 显示全部楼层 来自 广东广州

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

我素回答楼主D9楼滴。。。
回复

使用道具 举报

发表于 2005-9-3 08:45:49 | 显示全部楼层 来自 重庆南岸区

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

这是我改进后的代码,我觉得用循环还不如用你之前说地那种,我到没觉得节约了好多代码。。。。
  1. #include <amxmod>
  2. #define TE_PLAYERATTACHMENT 124

  3. new boss
  4. new byebye
  5. new cold
  6. new cool
  7. new cry
  8. new gogogo
  9. new haixiu
  10. new happy
  11. new kiss
  12. new koushui
  13. new mad
  14. new qiang
  15. new sad
  16. new se
  17. new shangxiang
  18. new shaxiao
  19. new smile
  20. new spiderman
  21. new sure
  22. new sweat
  23. new wenhao
  24. new wunai
  25. new wuyu
  26. new xieyan
  27. new xinzui
  28. new zhoumei

  29. public plugin_init()
  30. {
  31.         register_plugin("face show","0.3","[Grief.QQ]")
  32.         register_clcmd( "amx_facemenu","FirstPageMenu",0)
  33.         register_menucmd(register_menuid("\wFirstPage"),1023,"FirstMenuCmd")
  34.         register_menucmd(register_menuid("\wSecondPage"),1023,"SecondMenuCmd")
  35.         register_menucmd(register_menuid("\wThirdPage"),1023,"ThirdMenuCmd")
  36.         register_menucmd(register_menuid("\wFourthPage"),1023,"FourthMenuCmd")
  37.         return PLUGIN_CONTINUE
  38. }

  39. public plugin_precache()
  40. {
  41.    boss = precache_model("sprites/boss.spr")
  42.    byebye = precache_model("sprites/byebye.spr")
  43.    cold = precache_model("sprites/cold.spr")
  44.    cool = precache_model("sprites/cool.spr")
  45.    cry = precache_model("sprites/cry.spr")
  46.    gogogo = precache_model("sprites/gogogo.spr")
  47.    haixiu = precache_model("sprites/haixiu.spr")
  48.    happy = precache_model("sprites/happy.spr")
  49.    kiss = precache_model("sprites/kiss.spr")
  50.    koushui = precache_model("sprites/koushui.spr")
  51.    mad = precache_model("sprites/mad.spr")
  52.    qiang = precache_model("sprites/qiang.spr")
  53.    sad = precache_model("sprites/sad.spr")
  54.    se = precache_model("sprites/se.spr")
  55.    shangxiang = precache_model("sprites/shangxiang.spr")
  56.    shaxiao = precache_model("sprites/shaxiao.spr")
  57.    smile = precache_model("sprites/smile.spr")
  58.    spiderman = precache_model("sprites/spiderman.spr")
  59.    sure = precache_model("sprites/sure.spr")
  60.    sweat = precache_model("sprites/sweat.spr")
  61.    wenhao = precache_model("sprites/wenhao.spr")
  62.    wunai = precache_model("sprites/wunai.spr")
  63.    wuyu = precache_model("sprites/wuyu.spr")
  64.    xieyan = precache_model("sprites/xieyan.spr")
  65.    xinzui = precache_model("sprites/xinzui.spr")
  66.    zhoumei = precache_model("sprites/zhoumei.spr")
  67. }

  68. public cmdboss(id)
  69. {
  70.   if(!is_user_alive(id))
  71.         {
  72.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  73.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  74.         return PLUGIN_HANDLED
  75.         }
  76.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  77.   write_byte(TE_PLAYERATTACHMENT)
  78.   write_byte(id)
  79.   write_coord(40)
  80.   write_short(boss)
  81.   write_short(30)
  82.   message_end()
  83.   return PLUGIN_HANDLED
  84. }

  85. public cmdbyebye(id)
  86. {
  87.   if(!is_user_alive(id))
  88.         {
  89.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  90.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  91.         return PLUGIN_HANDLED
  92.         }
  93.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  94.   write_byte(TE_PLAYERATTACHMENT)
  95.   write_byte(id)
  96.   write_coord(40)
  97.   write_short(byebye)
  98.   write_short(30)
  99.   message_end()
  100.   return PLUGIN_HANDLED
  101. }

  102. public cmdcold(id)
  103. {
  104.   if(!is_user_alive(id))
  105.         {
  106.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  107.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  108.         return PLUGIN_HANDLED
  109.         }
  110.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  111.   write_byte(TE_PLAYERATTACHMENT)
  112.   write_byte(id)
  113.   write_coord(40)
  114.   write_short(cold)
  115.   write_short(30)
  116.   message_end()
  117.   return PLUGIN_HANDLED
  118. }

  119. public cmdcool(id)
  120. {
  121.   if(!is_user_alive(id))
  122.         {
  123.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  124.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  125.         return PLUGIN_HANDLED
  126.         }
  127.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  128.   write_byte(TE_PLAYERATTACHMENT)
  129.   write_byte(id)
  130.   write_coord(40)
  131.   write_short(cool)
  132.   write_short(30)
  133.   message_end()
  134.   return PLUGIN_HANDLED
  135. }

  136. public cmdcry(id)
  137. {
  138.   if(!is_user_alive(id))
  139.         {
  140.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  141.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  142.         return PLUGIN_HANDLED
  143.         }
  144.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  145.   write_byte(TE_PLAYERATTACHMENT)
  146.   write_byte(id)
  147.   write_coord(40)
  148.   write_short(cry)
  149.   write_short(30)
  150.   message_end()
  151.   return PLUGIN_HANDLED
  152. }

  153. public cmdgogogo(id)
  154. {
  155.   if(!is_user_alive(id))
  156.         {
  157.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  158.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  159.         return PLUGIN_HANDLED
  160.         }
  161.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  162.   write_byte(TE_PLAYERATTACHMENT)
  163.   write_byte(id)
  164.   write_coord(40)
  165.   write_short(gogogo)
  166.   write_short(30)
  167.   message_end()
  168.   return PLUGIN_HANDLED
  169. }

  170. public cmdhaixiu(id)
  171. {
  172.   if(!is_user_alive(id))
  173.         {
  174.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  175.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  176.         return PLUGIN_HANDLED
  177.         }
  178.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  179.   write_byte(TE_PLAYERATTACHMENT)
  180.   write_byte(id)
  181.   write_coord(40)
  182.   write_short(haixiu)
  183.   write_short(30)
  184.   message_end()
  185.   return PLUGIN_HANDLED
  186. }

  187. public cmdhappy(id)
  188. {
  189.   if(!is_user_alive(id))
  190.         {
  191.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  192.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  193.         return PLUGIN_HANDLED
  194.         }
  195.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  196.   write_byte(TE_PLAYERATTACHMENT)
  197.   write_byte(id)
  198.   write_coord(40)
  199.   write_short(happy)
  200.   write_short(30)
  201.   message_end()
  202.   return PLUGIN_HANDLED
  203. }

  204. public cmdkiss(id)
  205. {
  206.   if(!is_user_alive(id))
  207.         {
  208.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  209.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  210.         return PLUGIN_HANDLED
  211.         }
  212.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  213.   write_byte(TE_PLAYERATTACHMENT)
  214.   write_byte(id)
  215.   write_coord(40)
  216.   write_short(kiss)
  217.   write_short(30)
  218.   message_end()
  219.   return PLUGIN_HANDLED
  220. }

  221. public cmdkoushui(id)
  222. {
  223.   if(!is_user_alive(id))
  224.         {
  225.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  226.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  227.         return PLUGIN_HANDLED
  228.         }
  229.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  230.   write_byte(TE_PLAYERATTACHMENT)
  231.   write_byte(id)
  232.   write_coord(40)
  233.   write_short(koushui)
  234.   write_short(30)
  235.   message_end()
  236.   return PLUGIN_HANDLED
  237. }

  238. public cmdmad(id)
  239. {
  240.   if(!is_user_alive(id))
  241.         {
  242.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  243.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  244.         return PLUGIN_HANDLED
  245.         }
  246.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  247.   write_byte(TE_PLAYERATTACHMENT)
  248.   write_byte(id)
  249.   write_coord(40)
  250.   write_short(mad)
  251.   write_short(30)
  252.   message_end()
  253.   return PLUGIN_HANDLED
  254. }

  255. public cmdqiang(id)
  256. {
  257.   if(!is_user_alive(id))
  258.         {
  259.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  260.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  261.         return PLUGIN_HANDLED
  262.         }
  263.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  264.   write_byte(TE_PLAYERATTACHMENT)
  265.   write_byte(id)
  266.   write_coord(40)
  267.   write_short(qiang)
  268.   write_short(30)
  269.   message_end()
  270.   return PLUGIN_HANDLED
  271. }

  272. public cmdsad(id)
  273. {
  274.   if(!is_user_alive(id))
  275.         {
  276.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  277.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  278.         return PLUGIN_HANDLED
  279.         }
  280.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  281.   write_byte(TE_PLAYERATTACHMENT)
  282.   write_byte(id)
  283.   write_coord(40)
  284.   write_short(sad)
  285.   write_short(30)
  286.   message_end()
  287.   return PLUGIN_HANDLED
  288. }

  289. public cmdse(id)
  290. {
  291.   if(!is_user_alive(id))
  292.         {
  293.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  294.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  295.         return PLUGIN_HANDLED
  296.         }
  297.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  298.   write_byte(TE_PLAYERATTACHMENT)
  299.   write_byte(id)
  300.   write_coord(40)
  301.   write_short(se)
  302.   write_short(30)
  303.   message_end()
  304.   return PLUGIN_HANDLED
  305. }

  306. public cmdshangxiang(id)
  307. {
  308.   if(!is_user_alive(id))
  309.         {
  310.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  311.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  312.         return PLUGIN_HANDLED
  313.         }
  314.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  315.   write_byte(TE_PLAYERATTACHMENT)
  316.   write_byte(id)
  317.   write_coord(40)
  318.   write_short(shangxiang)
  319.   write_short(30)
  320.   message_end()
  321.   return PLUGIN_HANDLED
  322. }

  323. public cmdshaxiao(id)
  324. {
  325.   if(!is_user_alive(id))
  326.         {
  327.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  328.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  329.         return PLUGIN_HANDLED
  330.         }
  331.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  332.   write_byte(TE_PLAYERATTACHMENT)
  333.   write_byte(id)
  334.   write_coord(40)
  335.   write_short(shaxiao)
  336.   write_short(30)
  337.   message_end()
  338.   return PLUGIN_HANDLED
  339. }

  340. public cmdsmile(id)
  341. {
  342.   if(!is_user_alive(id))
  343.         {
  344.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  345.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  346.         return PLUGIN_HANDLED
  347.         }
  348.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  349.   write_byte(TE_PLAYERATTACHMENT)
  350.   write_byte(id)
  351.   write_coord(40)
  352.   write_short(smile)
  353.   write_short(30)
  354.   message_end()
  355.   return PLUGIN_HANDLED
  356. }

  357. public cmdspiderman(id)
  358. {
  359.   if(!is_user_alive(id))
  360.         {
  361.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  362.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  363.         return PLUGIN_HANDLED
  364.         }
  365.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  366.   write_byte(TE_PLAYERATTACHMENT)
  367.   write_byte(id)
  368.   write_coord(40)
  369.   write_short(spiderman)
  370.   write_short(30)
  371.   message_end()
  372.   return PLUGIN_HANDLED
  373. }

  374. public cmdsure(id)
  375. {
  376.   if(!is_user_alive(id))
  377.         {
  378.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  379.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  380.         return PLUGIN_HANDLED
  381.         }
  382.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  383.   write_byte(TE_PLAYERATTACHMENT)
  384.   write_byte(id)
  385.   write_coord(40)
  386.   write_short(sure)
  387.   write_short(30)
  388.   message_end()
  389.   return PLUGIN_HANDLED
  390. }

  391. public cmdsweat(id)
  392. {
  393.   if(!is_user_alive(id))
  394.         {
  395.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  396.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  397.         return PLUGIN_HANDLED
  398.         }
  399.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  400.   write_byte(TE_PLAYERATTACHMENT)
  401.   write_byte(id)
  402.   write_coord(40)
  403.   write_short(sweat)
  404.   write_short(30)
  405.   message_end()
  406.   return PLUGIN_HANDLED
  407. }

  408. public cmdwenhao(id)
  409. {
  410.   if(!is_user_alive(id))
  411.         {
  412.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  413.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  414.         return PLUGIN_HANDLED
  415.         }
  416.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  417.   write_byte(TE_PLAYERATTACHMENT)
  418.   write_byte(id)
  419.   write_coord(40)
  420.   write_short(wenhao)
  421.   write_short(30)
  422.   message_end()
  423.   return PLUGIN_HANDLED
  424. }

  425. public cmdwunai(id)
  426. {
  427.   if(!is_user_alive(id))
  428.         {
  429.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  430.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  431.         return PLUGIN_HANDLED
  432.         }
  433.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  434.   write_byte(TE_PLAYERATTACHMENT)
  435.   write_byte(id)
  436.   write_coord(40)
  437.   write_short(wunai)
  438.   write_short(30)
  439.   message_end()
  440.   return PLUGIN_HANDLED
  441. }

  442. public cmdwuyu(id)
  443. {
  444.   if(!is_user_alive(id))
  445.         {
  446.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  447.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  448.         return PLUGIN_HANDLED
  449.         }
  450.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  451.   write_byte(TE_PLAYERATTACHMENT)
  452.   write_byte(id)
  453.   write_coord(40)
  454.   write_short(wuyu)
  455.   write_short(30)
  456.   message_end()
  457.   return PLUGIN_HANDLED
  458. }

  459. public cmdxieyan(id)
  460. {
  461.   if(!is_user_alive(id))
  462.         {
  463.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  464.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  465.         return PLUGIN_HANDLED
  466.         }
  467.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  468.   write_byte(TE_PLAYERATTACHMENT)
  469.   write_byte(id)
  470.   write_coord(40)
  471.   write_short(xieyan)
  472.   write_short(30)
  473.   message_end()
  474.   return PLUGIN_HANDLED
  475. }

  476. public cmdxinzui(id)
  477. {
  478.   if(!is_user_alive(id))
  479.         {
  480.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  481.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  482.         return PLUGIN_HANDLED
  483.         }
  484.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  485.   write_byte(TE_PLAYERATTACHMENT)
  486.   write_byte(id)
  487.   write_coord(40)
  488.   write_short(xinzui)
  489.   write_short(30)
  490.   message_end()
  491.   return PLUGIN_HANDLED
  492. }

  493. public cmdzhoumei(id)
  494. {
  495.   if(!is_user_alive(id))
  496.         {
  497.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  498.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  499.         return PLUGIN_HANDLED
  500.         }
  501.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  502.   write_byte(TE_PLAYERATTACHMENT)
  503.   write_byte(id)
  504.   write_coord(40)
  505.   write_short(zhoumei)
  506.   write_short(30)
  507.   message_end()
  508.   return PLUGIN_HANDLED
  509. }

  510. public FirstPageMenu( id )
  511. {
  512.         new testMenu[1024]
  513.         new keys
  514.         new newLen = format(testMenu,1023,"\wFirstPage^n^n")
  515.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w1. " )
  516.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w2. byebye" )
  517.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w3. cold" )
  518.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w4. cool" )
  519.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w5. 娴娉" )
  520.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w6. GOGOGO" )
  521.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w7. 瀹崇" )
  522.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w8. 楂" )
  523.         newLen += format( testMenu[newLen], 1023-newLen, "^n^n\w9. NEXT" )
  524.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w0. Exit" )
  525.         keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
  526.         show_menu(id,keys,testMenu,-1)
  527.         return PLUGIN_CONTINUE
  528. }

  529. public SecondPageMenu( id )
  530. {
  531.         new testMenu[1024]
  532.         new keys
  533.         new newLen = format(testMenu,1023,"\wSecondPage^n^n")
  534.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w1. KISS" )
  535.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w2. f按" )
  536.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w3. unhappy" )
  537.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w4. qiang" )
  538.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w5. 蹭激" )
  539.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w6. 茬" )
  540.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w7. 涓" )
  541.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w8. 荤" )
  542.         newLen += format( testMenu[newLen], 1023-newLen, "^n^n\w9. NEXT" )
  543.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w0. BACK" )
  544.         keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
  545.         show_menu(id,keys,testMenu,-1)
  546.         return PLUGIN_CONTINUE
  547. }

  548. public ThirdPageMenu( id )
  549. {
  550.         new testMenu[1024]
  551.         new keys
  552.         new newLen = format(testMenu,1023,"\wThirdPage^n^n")
  553.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w1. 寰绗" )
  554.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w2. 渚" )
  555.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w3. 姘" )
  556.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w4. 姹姘" )
  557.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w5. " )
  558.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w6. 濂" )
  559.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w7. 璇" )
  560.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w8. " )
  561.         newLen += format( testMenu[newLen], 1023-newLen, "^n^n\w9. NEXT" )
  562.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w0. BACK" )
  563.         keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
  564.         show_menu(id,keys,testMenu,-1)
  565.         return PLUGIN_CONTINUE
  566. }

  567. public FourthPageMenu( id )
  568. {
  569.         new testMenu[1024]
  570.         new keys
  571.         new newLen = format(testMenu,1023,"\wFourthPage^n^n")
  572.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w1. 蹇" )
  573.         newLen += format( testMenu[newLen], 1023-newLen, "^n\w2. 辩" )
  574.         newLen += format( testMenu[newLen], 1023-newLen, "^n^n\w0. BACK" )
  575.         keys = (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)
  576.         show_menu(id,keys,testMenu,-1)
  577.         return PLUGIN_CONTINUE
  578. }

  579. public FirstMenuCmd(id,key)
  580. {
  581.         switch( key )
  582.         {
  583.         case 0: cmdboss(id)
  584.         case 1: cmdbyebye(id)
  585.         case 2: cmdcold(id)
  586.         case 3: cmdcool(id)
  587.         case 4: cmdcry(id)
  588.         case 5: cmdgogogo(id)
  589.         case 6: cmdhaixiu(id)
  590.         case 7: cmdhappy(id)
  591.         case 8: SecondPageMenu( id )
  592.         case 9: return PLUGIN_HANDLED
  593.         }
  594.         return PLUGIN_HANDLED
  595. }

  596. public SecondMenuCmd(id,key)
  597. {
  598.         switch( key )
  599.         {
  600.         case 0: cmdkiss(id)
  601.         case 1: cmdkoushui(id)
  602.         case 2: cmdmad(id)
  603.         case 3: cmdqiang(id)
  604.         case 4: cmdsad(id)
  605.         case 5: cmdse(id)
  606.         case 6: cmdshangxiang(id)
  607.         case 7: cmdshaxiao(id)
  608.         case 8: ThirdPageMenu( id )
  609.         case 9: FirstPageMenu( id )
  610.         }
  611.         return PLUGIN_HANDLED
  612. }

  613. public ThirdMenuCmd(id,key)
  614. {
  615.         switch( key )
  616.         {
  617.         case 0: cmdsmile(id)
  618.         case 1: cmdspiderman(id)
  619.         case 2: cmdsure(id)
  620.         case 3: cmdsweat(id)
  621.         case 4: cmdwenhao(id)
  622.         case 5: cmdwunai(id)
  623.         case 6: cmdwuyu(id)
  624.         case 7: cmdxieyan(id)
  625.         case 8: FourthPageMenu( id )
  626.         case 9: SecondPageMenu( id )
  627.         }
  628.         return PLUGIN_HANDLED
  629. }

  630. public FourthMenuCmd(id,key)
  631. {
  632.         switch( key )
  633.         {
  634.         case 0: cmdxinzui(id)
  635.         case 1: cmdzhoumei(id)
  636.         case 9: ThirdPageMenu( id )
  637.         }
  638.         return PLUGIN_HANDLED
  639. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2005-9-3 10:19:57 | 显示全部楼层 来自 广东广州

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

我对你无话可说了,你实在是厉害。
不过,你这足有六百多行代码啊,我真是佩服你,好在CTRL+V可以复制,如果要手写,那还不累死了啊。
其实如果要用循环和变量来完成的话,估计也就一百多行代码。我正在调试中,遇到点问题,相信很快能解决!
回复

使用道具 举报

发表于 2005-9-3 10:57:31 | 显示全部楼层 来自 四川成都

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

晕了,每个菜单都定义。。。

麻烦了,其实一个循环就把显示人的菜单都定义了。

还有相同的部分,单独做成函数,里面用到时就调用,这样代码会少很多的。

比如这个,

if(!is_user_alive(id))
        {
        set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
        show_hudmessage(id,"Sorry,You Are Dead!!!")
        return PLUGIN_HANDLED
        }
  message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  write_byte(TE_PLAYERATTACHMENT)
  write_byte(id)
  write_coord(40)
  write_short(xieyan)
  write_short(30)
  message_end()
----------------------------

外面定义一个新函数,如showspr(id,sprname)---(玩家索引,和显示的spr)
这样你就只需要一段上面这样的,要用时,就这样

public cmd(id,sprname)
{
showspr(id,sprname)
}

这样响应菜单的部分只需要定义一个,显示spr的部分也只需要一个。
回复

使用道具 举报

发表于 2005-9-3 13:24:17 | 显示全部楼层 来自 四川成都

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

改了一下,spr只用了10个,有翻页,就算再多,也是有多少,增加多少行

没有其他的文件(spr),运行的话,肯定会弹出警告窗口的,所有没有在cs里测试。  ssj4gogeta 你试试吧。

另外,ssj4gogeta,你上面几楼的代码都没有考虑多人同时选择时的情况。

做惩罚插件时我也遇到这个问题,不知道需不需要考虑,而其他的很多插件是考虑了的,可想了好几次,还是

没想通。到现在也不大清楚,谁能解释解释??

是否需要定义为数组 如num[33] ?不定义数组会出错的话,出错过程是怎么样的?

参看*** 号处。


  1. #include <amxmod>
  2. #define TE_PLAYERATTACHMENT 124

  3. new num[10]
  4. new sprname[10][]={"boss","byebye","cold","cool","cry","gogogo","haixiu","happy","kiss","koushui"}
  5. new page[33] = {1,...}
  6. new choices[33][9][10]
  7. new sprnum

  8. public plugin_init()
  9. {
  10.         register_plugin("showspr","0.1","Enigmaya")
  11.         register_clcmd( "amx_facemenu","showmenu",0)
  12.         register_menucmd(register_menuid("\wmenu"),1023,"menucmd")

  13.         return PLUGIN_CONTINUE
  14. }

  15. public plugin_precache()
  16. {
  17.    num[0] = precache_model("sprites/boss.spr")
  18.    num[1] = precache_model("sprites/byebye.spr")
  19.    num[2] = precache_model("sprites/cold.spr")
  20.    num[3] = precache_model("sprites/cool.spr")
  21.    num[4] = precache_model("sprites/cry.spr")
  22.    num[5] = precache_model("sprites/gogogo.spr")
  23.    num[6] = precache_model("sprites/haixiu.spr")
  24.    num[7] = precache_model("sprites/happy.spr")
  25.    num[8] = precache_model("sprites/kiss.spr")
  26.    num[9] = precache_model("sprites/koushui.spr")
  27. }


  28. public showmenu(id)
  29. {
  30.     for(new n=0;n<9;n++)
  31.     {
  32.       choices[id][n] = ""
  33.     }

  34.     new menu[128]
  35.     format(menu,128," which ?  ( Page %d ):^n^n",page[id])

  36.     new pagecount = 10-((page[id]-1)*8)
  37.     if(10-((page[id]-1)*8) > 2)
  38.             pagecount = 2
  39.        
  40.     new offset = (page[id] * 8) - 8

  41.     for(new i=offset;i<pagecount+offset;i++)
  42.     {
  43.         new string[256]
  44.         format(string,255,"\w%d. %s ^n",i+1-offset,sprname[i])
  45.        
  46.         add(menu,255,string)
  47.     }

  48.     if(10-((page[id]-1)*8) > 8)
  49.     {
  50.       choices[id][8] = "Next"
  51.       add(menu,255,"\w^n9. Next")
  52.     }
  53.     add(menu,255,"\w^n0. Back")

  54.     show_menu(id,(1<<0)|(1<<1)|(1<<2)|(1<<3)|(1<<4)|(1<<5)|(1<<6)|(1<<7)|(1<<8)|(1<<9),menu,-1)

  55.     return PLUGIN_CONTINUE
  56. }


  57. public menucmd(id,key)
  58. {

  59.     if(key == 9 && page[id] == 1)
  60.     {
  61.        page[id]=1
  62.        return 1
  63.     }
  64.     else if(key == 9 && page[id] > 1)
  65.     {
  66.       page[id] -=1
  67.       showmenu(id)
  68.       return 1
  69.     }

  70.     if(key < 8)
  71.     {
  72.       sprnum=(page[id]-1)*8+key //------------------------*********************
  73.       sprshow(id,sprnum)
  74.       return 1
  75.     }

  76.     if(key == 8 && equal(choices[id][key],"Next"))
  77.     {
  78.       page[id] += 1
  79.       showmenu(id)
  80.       return 1
  81.     }  

  82.     return 1
  83.   }


  84. public sprshow(id,sprnum)
  85. {
  86.   if(!is_user_alive(id))
  87.   {
  88.         set_hudmessage(200, 100, 0, -1.0, 0.3, 0, 1.0, 5.0, 0.1, 0.2, 3)
  89.         show_hudmessage(id,"Sorry,You Are Dead!!!")
  90.         return PLUGIN_HANDLED
  91.   }
  92.   message_begin(MSG_ALL,SVC_TEMPENTITY,{0,0,0},id)
  93.   write_byte(TE_PLAYERATTACHMENT)
  94.   write_byte(id)
  95.   write_coord(40)
  96.   write_short(num[sprnum])
  97.   write_short(30)
  98.   message_end()
  99.   return PLUGIN_HANDLED       
  100. }
复制代码
回复

使用道具 举报

 楼主| 发表于 2005-9-4 10:28:27 | 显示全部楼层 来自 广东广州

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

楼上的不利于更新SPR
可以用文件来保存SPR名称,那就要简单好多。
这样一来,更新方便,代码也少!
回复

使用道具 举报

发表于 2005-9-4 12:12:24 | 显示全部楼层 来自 四川成都

回复: 【原创】怎样使用循环语句来精简代码--表情插件多页菜单制作

稍稍改一下,增加几个宏定义,更新就只是增加模块定义和改宏定义而已。


文件??读ini列表???嗯,那样设置确实方便。
回复

使用道具 举报

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

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