广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 8579 个阅读者
 
<<   1   2  下页 >>(共 2 页)
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
mischna09
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
头衔:路人饼14ˋ(˙∀˙)ˊ路人饼14ˋ(˙∀˙)ˊ
特约版主
级别: 特约版主 该用户目前不上站
版区: CS提问区
推文 x8 鲜花 x91
分享: 转寄此文章 Facebook Plurk Twitter 版主评分版主评分 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x1
[插件] [SMA教学]巧妙使用变数 第{ 1 }集  (这次将教你如何利用变数写出 - 只能在开场限时内执行某事)
精华文章原创文章
===========================================


 轻松写插件~     表情             ~写插件轻松


===========================================
大家好~我又是Y14Y了~ [依然是AMXX新手]
最近因为帮好友写了魔王 
其中使用了大量的变数
变数? 你问变数是什么吗?
今天你将会认识它并活用他
Let's GO!
-------------主要介绍--------------------------------------------------
1.变数是什么?
变数在SMA中扮演着一种
开关  或是 纪录数字  或是 代替 的脚色
你能透过各种事件 让这个开关or 数字发生变化 
然后在其他的fuction中藉由取得此变数的直来控制他
如果是替代的脚色 则须写一个 解释他是虾饺 的东西


2.建立变数
直接写一个
new 变数名称[33] 
[33] 有时候在其他情况会用更大的数字 如256等等
如果不加 就变成 没有特定对象
大多人会在前面加 g_  我不觉得有差 可能只是方便分辨它是啥吧 
就酱...  (真短 =口=)


3.变数建立位置 (原来还有~)
一般而言可以直接再SMA任何一个 [ 不是别人fuction地盘的地方 ] 供整个插件的所有fuction都能共用 
或 [ 直接加在fuction里面 ] 这样范围就只有这个fuction了


4.解释 (开关与纪录数字不在此范围)
如果你今天建立的变数是用来当代替的脚色
那我直接用一个范例讲解好惹
public example(id)
{
new name[33], money[33]
get_user_name(id, name, 32)
        money = get_user_money(id)
        client_print(id, print_chat, "我的名字是%s 我很穷 我只有%d块钱", name , money)
}
看到了吗? 建立变数后就是要解释他
解释这是名字有点特别 要用这个格式
get_user_name(要解释谁的名字, 要解释的变数名称, 32)
其他的get_user 的这种都可以用money的解释法
顺便教一下好了
%s 和 %d 是取得名称或数字的意思 要解释的东西要写在后面 而且要有顺序之分!
请记得以下内容! 如果用错将导致显示不出来 或显示乱码
[ %s 是用来取得名称 如:玩家名字 || %d 试用来取得数字的 如:钱 击杀数]


5.我希望他是XX 需要做什么? (代替 不在此范围)
一个拿来成为开关或纪录数字的变数 
不管你要拿来当开关还是纪录数字 
不必刻意去做什么解释
P.S. 没动的变数在开关上是指 false (关闭) 在数字纪录上是0


6.如何用在 if 里面 (代替 不在此范围)
今天如果你希望这个式子是
如果 你的变数是开的状态
就要写
if (你的变数[id])
如果是关的状态就
if (!你的变数[id]) 在前面加个惊叹号
数字纪录的话
if (你的变数[id] == 30)
就是如果此变数是30 也可以...
if (你的变数[id] >= 30)
就是如果大于等于30 所以当然也能...
if (你的变数[id] <= 30)
小于等于... 也能
if (你的变数[id] != 30)
如果不等于30


7.变数名称
变数的名称你爽就好! 可以随便取
但请明记一个重点
变数名字的开头第一个字 一定要是英文!!!
-----------------主要介绍结束--------------------------------
活用1 :
我会用一个范例插件(功能是开场限时可以领一把免费武器 CT是m4a1 TR是ak47)来做翻译
也就是把每句都变成中文 方便你更快学会
!!此插件为上次的选单教学中的范例撷取取出来的 上次并没有做详细解释!!
/////////////////////////////////////////////////////////////////////////////////
#include <amxmodx>
#include <fun>


#define PLUGIN "变数实用范例 {1} - 只能在开场限时内执行的事"
#define VERSION "1.0"
#define AUTHOR "Y14Y"


new g_free_time[33]


public plugin_init() 
{
register_plugin(PLUGIN, VERSION, AUTHOR)
register_logevent( "event_round_start", 2, "1=Round_Start");
register_clcmd("14_free", "example")
}
public example(id)
{
if(is_user_alive(id) && get_user_team(id) == 1 && g_free_time[id])
{
client_print(id, print_chat, "[系统]你领取了开场限时免费武器 - AK-47!")
give_item(id, "weapon_ak47")
}
if(is_user_alive(id) && get_user_team(id) == 2 && g_free_time[id])
{
give_item(id, "weapon_m4a1")
client_print(id, print_chat, "[系统]你领取了开场限时免费武器 - M4A1!")
}
if(!g_free_time[id])
{
client_print(id, print_chat, "[系统]限时免费武器的时间已经过了 下次早点吧!")
return;
}
}
public event_round_start()
{
for(new i = 0; i < get_maxplayers(); i++)
{
g_free_time = true
  set_task(10.0, "freeoff", i)
}
}
public freeoff(id)
{
g_free_time[id] = false
}
//////////////////////////////////////////////////////////
翻译 解释: (基础部分就不多加说明了)
#include <amxmodx> //不说明
#include <fun> //不说明


#define PLUGIN "变数实用范例 {1} - 只能在开场限时内执行的事" //不说明
#define VERSION "1.0" //不说明
#define AUTHOR "Y14Y" //不说明


建立一个变数 (名字为)g_free_time[33]


public plugin_init() //不说明
{
register_plugin(PLUGIN, VERSION, AUTHOR) //不说明
        注册事件("event_round_start"代表的事件是"回合开始")
        注册指令("(指令)14_free", 触发"example")
}
public example(id)
{
如果(玩家生存(id) 并且 取得队伍(id) 是 1(TR) 并且  g_free_time[id]这个变数是开启的)
{
client_print(id, print_chat, "[系统]你领取了开场限时免费武器 - AK-47!") //不说明
give_item(id, "weapon_ak47") //给玩家道具- 武器 AK47
}
if(玩家生存(id) 并且 取得队伍(id) 是 2(CT) 并且  g_free_time[id]这个变数是开启的 )
{
give_item(id, "weapon_m4a1") //给玩家道具- 武器 M4A1
client_print(id, print_chat, "[系统]你领取了开场限时免费武器 - M4A1!") //不说明
}
if(g_free_time[id]这个变数是关闭的 )
{
client_print(id, print_chat, "[系统]限时免费武器的时间已经过了 下次早点吧!") //不说明
return; //停止
}
}

public event_round_start() //事件:回合开始
{
for(new i = 0; i < get_maxplayers(); i++) //不说明
{
将g_free_time设定为开启
        计时器(10.0(秒), "执行freeoff" ,对象是i)
}
}
public freeoff(id)
{
将g_free_time设定为关闭
}
====================================
如果身为高手的你觉得哪里讲错或有更好的讲法 欢迎说出~ ^^
今天的教学就到这里了~祝你能成SMA高手

如果你觉得对你有用
就让我吃朵花花 或推推吧~
威望要 2 以上才可以下载附件,您目前威望不足,请勿购买


本帖包含附件
txt example.txt   (2022-06-09 14:20 / 2 KB)  
说明: 范例 - 因为不能上传SMA格式 所以使用TXT记事本
下载次数:15 需要威望:2


[ 此文章被mischna09在2021-07-01 16:39重新编辑 ]

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



献花 x4 回到顶端 [楼 主] From:台湾安源通讯股份有限公司 | Posted:2013-02-04 07:21 |
Nailaz 手机
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖 社区建设奖 创作大师奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x77 鲜花 x254
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

2.建立变数
直接写一个
new 变数名称[33] (<-我不大懂加33和不加33的差别 反正我通常都会加)
大多人会在前面加 g_ 我不觉得有差 可能只是方便分辨它是啥吧
就酱... (真短 =口=)

加[33]是因为要让玩家个别取得ID,玩家最大数是32
[]也不一定要是33可以是256等等的


[ 此文章被郑柏升在2013-02-04 07:53重新编辑 ]


web front-end and software engineer.
献花 x1 回到顶端 [1 楼] From:台湾中华电信股份有限公司 | Posted:2013-02-04 07:43 |
烈Gama英仙座
个人头像
个人文章 个人相簿 个人日记 个人地图
特约版主
级别: 特约版主 该用户目前不上站
版区: MyChat战队
推文 x4 鲜花 x90
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
= =
这对我很有用

给你一个赞!!

希望能再多交一些


献花 x1 回到顶端 [2 楼] From:台湾中华电信股份有限公司 | Posted:2013-02-04 11:50 |
绝影华
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x36 鲜花 x109
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 郑柏升 于 2013-02-04 07:43 发表的 : 到引言文


加[33]是因为要让玩家个别取得ID,玩家最大数是32
[]也不一定要是33可以是256等等的



有时候我也会奇怪......
人数32  为什么不用new xxxx[32]


献花 x1 回到顶端 [3 楼] From:未知地址 | Posted:2013-02-04 12:47 |
八云の橙猫 手机 会员卡
个人头像
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x18 鲜花 x90
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 绝影华 于 2013-02-04 12:47 发表的 : 到引言文




有时候我也会奇怪......
人数32  为什么不用new xxxx[32]



玩家的id是1~32
但是 如果使用32的话 里面包含的只有0~31(0也算在内 编号32的玩家无法被指定到)


所以 用33的话 虽然0用不到 但是才可以包含1~32的位元组可以储存id


有错请指点


献花 x0 回到顶端 [4 楼] From:台湾中华电信股份有限公司 | Posted:2013-02-04 14:21 |
绝影华
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x36 鲜花 x109
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 八云の橙猫 于 2013-02-04 14:21 发表的 : 到引言文




玩家的id是1~32
但是 如果使用32的话 里面包含的只有0~31(0也算在内 编号32的玩家无法被指定到)


所以 用33的话 虽然0用不到 但是才可以包含1~32的位元组可以储存id


有错请指点



还以为像程式一样玩家由0开始计算
表情 表情 表情


献花 x1 回到顶端 [5 楼] From:未知地址 | Posted:2013-02-04 14:59 |
观众甲
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
小有名气
级别: 小有名气 该用户目前不上站
推文 x319 鲜花 x963
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 绝影华 于 2013-02-04 14:59 发表的 : 到引言文




还以为像程式一样玩家由0开始计算
表情 表情 表情

我也是这样以为
但是有一次用for的时候
发现有时候用for(new i=0;i<32;i++)显示某些文字的时候
会有错误
但是for(new i=1;i<32;i++)不会错误
我才发现到,0是显示给全部玩家-w-


献花 x0 回到顶端 [6 楼] From:美国 | Posted:2013-02-04 17:12 |
绝影华
个人文章 个人相簿 个人日记 个人地图
小有名气
级别: 小有名气 该用户目前不上站
推文 x36 鲜花 x109
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

下面是引用 观众甲 于 2013-02-04 17:12 发表的 : 到引言文


我也是这样以为
但是有一次用for的时候
发现有时候用for(new i=0;i<32;i++)显示某些文字的时候
会有错误
但是for(new i=1;i<32;i++)不会错误
我才发现到,0是显示给全部玩家-w-



怪不得........
之前用for由0开始
在等级中玩家名字显示了伺服器的名称
表情


献花 x0 回到顶端 [7 楼] From:未知地址 | Posted:2013-02-04 19:06 |
幻影乂鬼狼
个人头像
个人文章 个人相簿 个人日记 个人地图
特殊贡献奖
版主
级别: 版主 该用户目前不上站
版区: CS提问区
推文 x12 鲜花 x1676
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

内容很详细(打字打得很累吧
送你 表情


く__,.ヘヽ.    / ,ー、 〉
     \ ', !-─‐-i / /´
      /`ー'    L//`ヽ、
     /  /,  /|  ,  ,    ',
   イ  / /-‐/ i L_ ハ ヽ!  i
    レ ヘ 7イ`ト  レ'ァ-ト、!ハ|  |
     !,/7 '0'   ´0iソ|   |   
     |.从"  _   ,,,, / |./   |
     レ'| i>.、,,__ _,.イ /  .i  |
      レ'| | / k_7_/レ'ヽ, ハ. |
       | |/i 〈|/  i ,.ヘ | i |
      .|/ / i:   ヘ!  \ |
        kヽ>、ハ   _,.ヘ、   /、!
       !'〈//`T´', \ `'7'ーr'
       レ'ヽL__|___i,___,ンレ|ノ
         ト-,/ |___./
         'ー'  !_,.:
献花 x1 回到顶端 [8 楼] From:台湾凯擘股份有限公司 | Posted:2013-02-05 20:41 |
kitty3d07 手机
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x2
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

神.
但我也很混乱

此文章被评分,最近评分记录
财富:-20 (by 乂舞狼乂) | 理由: 回文字数少于10中文字或6英文单词


献花 x0 回到顶端 [9 楼] From:未知地址 | Posted:2013-02-17 18:33 |

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