cs1.6 amxx编程 state临时教程 -- 作者:偶萤蛉(Oinling)
state的语法格式:
state (条件表达式) 自动机名称:状态名称;
state用于设定插件当前使用哪一个自动机,以及进入自动机的哪一个状态.
state语句中,条件表达式是可省略的,若省略,则应该把 ( ) 符号也删掉.
若不省略,则条件表达式为0时,设定失败.否则成功.
state语句中,自动机名称是可省略的,若省略,则应该把 : 符号也删掉.
若不省略,则可指定插件使用一个自动机.否则表示使用匿名自动机(默认自动机).
state语句中的自动机名称和状态名称必须是实际存在的,已经定义的自定义符号(也叫标识符).
自动机名称和状态名称都是在声明函数时定义的.具体查阅:cs1.6 amxx编程 状态分类器精研教程.
state语句中的 ; 符号是可省略的,表示语句结束.在检查分号模式下,不允许省略 ; 符号.
以下是一些设定状态的例子.
#include amxmodx
#define SB故事情节_开端 Beginning
#define SD故事情节_发展 Development
#define SC故事情节_高潮 Climax
#define SE故事情节_结局 Ending
static Story() <> return 1;
static Story() <SB故事情节_开端> return 2;
static Story() <SD故事情节_发展> return 3;
static Story() <SC故事情节_高潮> return 4;
static Story() <SE故事情节_结局> return 5;
public plugin_init()
{
register_plugin("测试", "1.0.0", "偶萤蛉(Oinling)");
server_print("[AMXX]Story = %d", Story());
state SB故事情节_开端;
server_print("[AMXX]Story = %d", Story());
state SD故事情节_发展;
server_print("[AMXX]Story = %d", Story());
state SC故事情节_高潮;
server_print("[AMXX]Story = %d", Story());
state SE故事情节_结局;
server_print("[AMXX]Story = %d", Story());
}
打印结果:
[AMXX]Story = 1
[AMXX]Story = 2
[AMXX]Story = 3
[AMXX]Story = 4
[AMXX]Story = 5