搜索
楼主: Osker Lee

关于队伍换边插件的问题

[复制链接]
发表于 2008-4-2 21:19:12 | 显示全部楼层 来自 广东惠州

回复: 关于队伍换边插件的问题

Post by Osker Lee
“_:就是省略此项参数,用默认值。”我还是不太明白,以下面的这句代码为例,究竟“_”表示的是省略了哪个参数,而使用的又是哪个默认值?另外,这个“_”符号是不是可以随便定义多少个都行的?(比如,写上两个“_”和写上三个“_”到底有什么区别?)

还有就是,下面的这些代码里的“i++”,“next++”和“d_index++”又分别表示什么意思?
你应该去看下C语言相关的书.
回复

使用道具 举报

 楼主| 发表于 2008-4-2 21:48:18 | 显示全部楼层 来自 甘肃兰州

回复: 关于队伍换边插件的问题

嘿嘿~ 说出来不怕楼主你笑话,首先我本人不是学电脑专业的,闲暇时只会用MS3D和MAX之类的工具修改游戏模型,偶尔编一些HTML,帮别人优化一下网页。而对于C语言,尽管计算机的编程语言都有相通的地方(VB,VF和C++),但C语言却是最难啃的骨头。

我去年报了C语言的培训班,然后参加全国的计算机等级(二级)考试,结果只通过了笔试,机试就没通过,正所谓隔行如隔山,不是学电脑专业的还真是没辙了。没办法啊,就等着今年4月份补考咯。:p (呵呵~ 之所以热衷于插件,纯粹是因为对CS的喜爱!)
回复

使用道具 举报

发表于 2008-4-2 22:06:22 | 显示全部楼层 来自 广东惠州

回复: 关于队伍换边插件的问题

基础是必须的,否则你这样照猫画虎,也是知其然不知其所以然.
回复

使用道具 举报

 楼主| 发表于 2008-4-2 22:30:03 | 显示全部楼层 来自 甘肃兰州

回复: 关于队伍换边插件的问题

zwfgdlc大大,你就简要地讲解一下吧,我现在没有C语言的书,网上也暂时找不到相关的资料。心里猫抓似的 --  难受,这些问题没弄懂,估计今晚就会很:em15: ......

(其实我也知道基础知识的重要性,不过现在没时间再复习C++了,等以后放假了再慢慢补上吧。)
回复

使用道具 举报

发表于 2008-4-2 22:40:27 | 显示全部楼层 来自 广东惠州

回复: 关于队伍换边插件的问题

回复

使用道具 举报

 楼主| 发表于 2008-4-3 22:26:32 | 显示全部楼层 来自 甘肃兰州

回复: 关于队伍换边插件的问题

自增运算符 ++ 使操作数的值增 1,其操作数必须为可变左值(您可以简单地把可变左值理解为变量)。++ 可以置于操作数前面,也可以放在后面。
OK,收到!谢谢zwfgdlc大大,我算是弄明白了。
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#define PLUGIN "Team Change"
#define AUTHOR "Jim"
#define VERSION "1.0"
new g_maxplayers
new g_pcvar_tcl
new g_limitteams
new g_autobalance
public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
g_pcvar_tcl = register_cvar("teamchange_level", "8")
g_maxplayers = get_maxplayers()
set_task(get_pcvar_num(g_pcvar_tcl) * 60.0, "change", 10000, _, _, "b")
}
public change(id)
{
g_limitteams = get_cvar_num("mp_limitteams")
g_autobalance = get_cvar_num("mp_autoteambalance")
set_cvar_num("mp_limitteams", 0)
set_cvar_num("mp_autoteambalance", 0)
change_team(1)
}
public change_team(id)
{
if(is_user_connected(id))
{
new CsTeams:team
team = cs_get_user_team(id)
if(team == CS_TEAM_T)
cs_set_user_team(id, CS_TEAM_CT)
else if(team == CS_TEAM_CT)
cs_set_user_team(id, CS_TEAM_T)
if(is_user_alive(id))
user_silentkill(id)
}
new next = id + 1
while(next <= g_maxplayers)
{
if(is_user_connected(next))
{
set_task(0.1, "change_team", next)
break
}
else next++
}

if(next > g_maxplayers)
{
set_cvar_num("mp_limitteams", g_limitteams)
set_cvar_num("mp_autoteambalance", g_autobalance)
}
}
“_:就是省略此项参数,用默认值。”我还是不太明白,以上面的那句红色代码为例,究竟“_”表示的是省略了哪个参数,而使用的又是哪个默认值?另外,这个“_”符号是不是可以随便定义多少个都行的?(比如,写上两个“_”和写上三个“_”到底有什么区别?)
set_task(get_pcvar_num(g_pcvar_tcl) * 60.0, "change", 10000, _, _, "b")
OVER!
回复

使用道具 举报

发表于 2008-4-3 22:32:14 | 显示全部楼层 来自 浙江温州

回复: 关于队伍换边插件的问题

发现PHP和C语言很象。。。。可能是PHP是在C语言上开发的关系吧,反正学了点PHP知识后看代码就觉得轻松多了。
回复

使用道具 举报

发表于 2008-4-3 22:35:25 | 显示全部楼层 来自 广东惠州

回复: 关于队伍换边插件的问题

  1. set_task
  2. [url=mk:@MSITStore:C:\Documents%20and%20Settings\Administrator\桌面\amxmodx-doc.chm::/functions/core/index.htm][u][color=#0000ff]Core[/color][/u][/url] (amxmodx.inc)
  3. Description
  4. set_task - Calls function on specified time.
  5. Syntax
  6. set_task ( Float:time,const function[],id = 0,parameter[]="",len = 0,flags[]="", repeat = 0 )
  7. Type
  8. Native
  9. Notes
  10. Flags:
  11. "a" - repeat.
  12. "b" - loop task.
  13. "c" - do task on time after a map timeleft.
  14. "d" - do task on time before a map timelimit.
  15. Example of executing a task once.
  16. [color=#000000]
  17. [color=#0000bb]set_task[/color][color=#007700]([/color][color=#0000bb]15.0[/color][color=#007700],[/color][color=#dd0000]"MyFunction"[/color][color=#007700])
  18. [/color][/color]
  19. Remember that functions executed by set_task needs be public
复制代码
AMXX1.60插件包里有一份AMXX说明文档,你没事看下.

本帖子中包含更多资源

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

×
回复

使用道具 举报

发表于 2010-9-21 01:23:21 | 显示全部楼层 来自 北京西城
:Q 这么多一时半会还消化不了呢。。。路过学过
回复

使用道具 举报

发表于 2010-9-26 13:53:40 | 显示全部楼层 来自 贵州贵阳
没钱了!哇哇!刷了!22222222
回复

使用道具 举报

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

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