广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 13386 个阅读者
 
<<   1   2   3  下页 >>(共 3 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
JrC
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x76 鲜花 x122
分享: 转寄此文章 Facebook Plurk Twitter 版主评分版主评分版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x6
[插件] 编写sma(AMXX)教学第七集
精华文章原创文章
很久都没教大家一些AMXX知识了
而今次主要教一些比较实用的知识
可以用在其他程式语言
c++ c 等等

今天要教大家的是
2D Array , 回圈(For Loop),Boolean

2D Array:
大家有时看见sma中含有
new xx[200]
new xx[33]
等等
这都是1D Array
而2D Array就是
new [33][200]
new [2][64]
这些就是2D Array
相信以上都能够用肉眼分别
看看以下的图(用小画家能够方便我= =)

相信大家都看见1, 2, 3, 4吧
然后1,2,3,4各自有64
new xxx[4][64]
这xxx就是上图的东西了
简单来说
xxx[4][64] 就是有 4个64空间
就等于
new x[64]
new xx[64]
new xxx[64]
new xxxx[64]
打个比喻
有4个同学有储物柜
当然很公平 , 4个同学各自的储物柜只能够放满64个物件
如果不明白 是很正常的, 因为我都花了很多时间才明白= =
例子:
我想取得id的金钱, IP, 名字
new information[3][100]
get_user_name(id, information[0], 99)
get_user_ip(id, information[1], 99, 1)
format(information[2], 99, "%d", cs_get_user_money(id))
这样就能够使用1个Array取得3个资料

回圈(For Loop):
大家都有可以见过以下的东西吧
for(new i = 1; i <= get_maxplayers(); i++)
for(new i = 0;i < get_maxplayers(); i++)
那可能新手有1个问题
这个是什么= =??
这个就是回圈
通常在没有对象的Function出现
register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
register_logevent("logevent_round_start", 2, "1=Round_Start")
register_logevent("logevent_round_end", 2, "1=Round_End")
等等都是没有对象的Function
再说一说原理
for(new i = 0; i <= get_maxplayers() ; i++)
在回圈开始时
i 的数值是 0
然后 中间的是 如果 i是小于或者等于 伺服器总人数(多是32)
最后 i 就会 + 1
然后 i 的数值 = 1; i 又是小于和等于32
i又+ 1了
到最后
当i 是32 时
i 都是小于或等于32
i 变成33了
当i变成33时
33 已经大过32
i不会再+
这就运行了32次
进阶:
AMXX和C / C++类似语言都会设立
Break
Continue
这两个功能
这两个功能和它表面的意思一样
Break = 破坏回圈, 不再循环
Continue = 继续循环

例子:
for(new i = 0; i < get_maxplayers();i++)
if(!is_user_connected(i))
 break;
如果他未进入伺服器
破坏回圈

for(new i = 0; i < get_maxplayers();i++)
if(is_user_connected(i))
  continue;
如果他进入了伺服器
继续回圈

有人可能会问
1 <=32
for(new i = get_maxplayers(); i >= 1;i--)
这样行吗?
答案:
你可以试试= =

Boolean:
在sma / C/C++类似语言都会看见
True / False
很容易使用
首先
new bool:xx[33]
就能设立 xx是一个boolean
if(cs_get_user_team(id) == CS_TEAM_T)
 xx[id] = true
else if(cs_get_user_team(id) == CS_TEAM_CT)
 xx[id] = false
如果玩家是T
xx[id] 就是 true
如果玩家是CT
xx[id] = false

if(xx[id])
这句解如果xx[id]是True
if(!xx[id])
这句解如果xx[id]是False

注:
当Boolean是True时
电脑会将Boolean读取的数值为1
当Boolean是False时
电脑会将Boolean读取的数值为0

教学完满结束


[ 此文章被JrC在2017-08-12 16:04重新编辑 ]

此文章被评分,最近评分记录
财富:100 (by killer699)
财富:500 (by amore12) | 理由: 赞..^^



NTFS伺服器
论坛:
http://ntfs-server.com/forums
献花 x7 回到顶端 [楼 主] From:美国ATT用户 | Posted:2012-05-27 23:49 |
Q4422520 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x23
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

感谢大大的资讯提供~很详细 由于我不太会看这类的东西 所以还是有点复杂(头香)


献花 x0 回到顶端 [1 楼] From:台湾大哥大股份有限公司 | Posted:2012-05-28 03:37 |
JrC
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x76 鲜花 x122
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 Q4422520 于 2012-05-28 03:37 发表的 : 到引言文
感谢大大的资讯提供~很详细 由于我不太会看这类的东西 所以还是有点复杂(头香)
不明白可以在这帖留言
我会尽量为你解答
这类功能都要花一点时间才会明白
努力加油:)


NTFS伺服器
论坛:
http://ntfs-server.com/forums
献花 x0 回到顶端 [2 楼] From:美国ATT用户 | Posted:2012-05-28 19:16 |
Icery
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x12 鲜花 x14
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

对于用 VB6.0 写程式的初学者这个指令有些新鲜说=0=

不过好像大同小异

多学一种语言也无妨~

感谢这么完整的教学!!


献花 x0 回到顶端 [3 楼] From:台湾中华电信股份有限公司 | Posted:2012-05-29 17:10 |
ccw111
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x16 鲜花 x49
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

good

x个同学有x个格子的比喻和2D array很贴切,我也想不出其他比喻了

明白了之后要用3D array储存字串应该就不会是难事了( 不过听人说,Pawn最多只能定义到3D的array )


献花 x0 回到顶端 [4 楼] From:未知地址 | Posted:2012-05-30 12:38 |
JrC
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x76 鲜花 x122
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 ccw111 于 2012-05-30 12:38 发表的 : 到引言文
good

x个同学有x个格子的比喻和2D array很贴切,我也想不出其他比喻了

明白了之后要用3D array储存字串应该就不会是难事了( 不过听人说,Pawn最多只能定义到3D的array )

好像可以定义到4D Array= =


NTFS伺服器
论坛:
http://ntfs-server.com/forums
献花 x0 回到顶端 [5 楼] From:美国ATT用户 | Posted:2012-05-30 19:54 |
96066289 手机
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x10 鲜花 x33
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我不太明白- -
但我也支持你 表情


献花 x0 回到顶端 [6 楼] From:未知地址 | Posted:2012-06-22 01:55 |
ccw111
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x16 鲜花 x49
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 JrC 于 2012-05-30 19:54 发表的 : 到引言文


好像可以定义到4D Array= =

不清楚-.-
因为我未试过
只是听外国人说过@@


献花 x0 回到顶端 [7 楼] From:未知地址 | Posted:2012-06-26 18:13 |
Angelone
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x8
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

我的威望不够啊,怎么办。。求解。。
表情

此文章被评分,最近评分记录
财富:-50 (by 乂舞狼乂) | 理由: 万用回文(威望不足)


献花 x0 回到顶端 [8 楼] From:广东 | Posted:2012-07-06 22:58 |
zhouqiao654
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x1
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

学过C语言的知道这是数组,呵呵


献花 x0 回到顶端 [9 楼] From:未知地址 | Posted:2012-10-13 23:54 |

<<   1   2   3  下页 >>(共 3 页)
首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.056729 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言