搜索
查看: 1985|回复: 6

对写代码比较有帮助的东东

[复制链接]
发表于 2004-8-8 11:06:17 | 显示全部楼层 |阅读模式 来自 陕西西安
在max论坛里翻到的
http://djeyl.net/forum/index.php?showtopic=17495

准备过几天汉化了,再发布,对想编插件的朋友有帮助
 楼主| 发表于 2004-8-8 15:12:46 | 显示全部楼层 来自 陕西西安
再补上一个,这里有错误编号的详细信息
http://www.ravenousbugblatterbeast.pwp.blueyonder.co.uk/Script/
回复

使用道具 举报

发表于 2004-8-8 18:24:11 | 显示全部楼层 来自 云南昆明
沙发。。。。。。。。

看不懂,等汉化吧
回复

使用道具 举报

 楼主| 发表于 2004-8-10 15:24:59 | 显示全部楼层 来自 陕西西安

第一个连接的汉化

对于字符串的操作
先看下面这个代码
example1_bad()
{
  new dest[512], temp[512]
  temp = "some text1"  
  add(dest,511,temp)
  temp = "some text2"   
  add(dest,511,temp)  
  temp = "some text3"
  add(dest,511,temp)  
}

这个代码并不是很有效的,可以看出有好多的命令在重复,而且变量在不断的重复更改
来看看正确写法
example1a_ok()
{
  new dest[512]  
  new len = copy( dest, 511 , "some text1"  )
  len += copy( dest[len], 511 - len, "some text2"  )  
  copy( dest[len], 511 - len, "some text3"  )
}

这个方法的执行效率高,或者可以采用这样的方法
example1b_ok()
{
  new dest[512]  
  new len = format( dest, 511 , "some text%d" , 1  )  
  len += format( dest[len], 511 - len, "some text%d" , 2  )  
  format( dest[len], 511 - len , "some text%d" , 3  )
}

注意其中出现的%d和其后面出现的数字,如果要加入的字符很多的时候,这种方法最有效

对字符的复制
example2_bad()
{
  new text[32]  
  text = "hello world"
}

这个是错误的,其中的字符串和数组变量可能会不匹配
来看看正确的方法
example2_ok()
{
  new text[32]
  copy(text,31,"hello world")
}


对数组中字符的清空
下面的方法效率低
example3_bad()
{
  new text[32]
  text = ""
  if ( !equal(text,"") )
  {  
  }
}

来看一种简单快捷的方法
example3_ok()
{
  new text[32]
  text[0] = 0
  if ( text[0] )
  {
  }
}


对命令的注册
example4_bad()
{
  if (!cvar_exists("mp_somecvar"))
      register_cvar("mp_somecvar", "1")
}

其中存在无用的操作(if语句)
其实如果某个命令在服务器中如果已经存在,那么该命令就不会再被注册一次,来看看这个
example4_ok()
{
  register_cvar("mp_somecvar", "1")
}


对时间间隔的选择
example5_bad()
{
  set_task(0.001,"doSomeThing")
}

这个是错误的,其中的时间间隔是0.001,其实最小的是0.1,所以这会被强迫修改为0.1
来看看正确的
example5_ok()
{
  set_task(0.1,"doSomeThing")
}


先发这些吧
回复

使用道具 举报

发表于 2004-10-21 22:54:34 | 显示全部楼层 来自 湖北武汉
楼主辛苦了,谢谢!
您所说的好象高深的一点,首先能否说明一下这段代码是用来干嘛的?
其次代码中的每一句是执行的什么命令以及格式能否再解释一下?
回复

使用道具 举报

发表于 2004-10-28 22:31:32 | 显示全部楼层 来自 云南昆明
Post by nwb13
在max论坛里翻到的
http://djeyl.net/forum/index.php?showtopic=17495

准备过几天汉化了,再发布,对想编插件的朋友有帮助

max论坛?
amx吧~~
回复

使用道具 举报

发表于 2005-1-25 04:31:13 | 显示全部楼层 来自 广东深圳
哈哈迟到了。支持中。。。。。。
回复

使用道具 举报

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

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