1. **变量命名规则**
- 在GOM引擎传奇架设中,任务变量命名需要遵循一定的规则。变量名通常以“<$”开头,以“>”结尾,例如“<$QuestVar1>”。这样的命名方式可以让脚本系统识别这些变量为自定义变量。
- 变量名应该具有清晰的含义,以便于理解和维护。如果是用于记录任务进度的变量,可以根据任务内容来命名,如“<$KillMonsterCountForQuest1>”表示任务1中的杀怪计数变量。
2. **定义变量的位置**
- **全局变量定义**:
- 对于一些需要在多个脚本或整个游戏范围内共享的任务变量,可以在`\MirServer\Mir200\Envir\QuestDiary\QuestGlobalVar.txt`文件中定义(如果没有此文件可以创建)。例如:
```
;定义一个全局任务状态变量,0表示未开始,1表示进行中,2表示已完成
SET <$GlobalQuestStatus> 0
;定义一个全局杀怪计数变量
SET <$GlobalKillCount> 0
```
- 这些全局变量可以在不同的地图脚本、NPC脚本或其他任务相关的脚本中被访问和修改。
- **局部变量定义(特定任务脚本内)**:
- 如果变量仅用于某个特定的任务脚本,可以在该任务脚本文件中定义。例如,在`\MirServer\Mir200\Envir\QuestDiary\CustomQuest.txt`文件中定义:
```
;任务脚本开始
[@Main]
#IF
#ACT
SET <$CustomQuestStatus> 0 ;设置自定义任务状态变量为0(未开始)
SET <$CustomQuestItemCount> 0 ;设置自定义任务物品计数变量为0
```
- 这些变量只在这个特定的任务脚本执行过程中有效,其他脚本如果没有引用这些变量,不会受到影响。
3. **变量的初始值设置**
- 在定义变量时,通常需要设置初始值。初始值的设置取决于任务的设计。
- 对于任务状态变量,一般可以设置为0,表示任务尚未开始。例如:
```
SET <$Quest1Status> 0
```
- 对于计数变量,如记录杀怪数量或收集物品数量的变量,通常初始化为0。例如:
```
SET <$Quest1KillCount> 0
SET <$Quest1ItemCollectCount> 0
```
4. **变量的作用域和访问权限**
- **全局变量**:
- 全局变量可以在整个游戏服务器环境中被访问和修改,但需要注意避免不同脚本之间的变量冲突。如果多个任务或脚本使用了相同的全局变量名,可能会导致意想不到的结果。
- 例如,在一个地图脚本`\MirServer\Mir200\Envir\MapQuest_def\MapQuest001.txt`中可以访问和修改全局变量:
```
[@KillMonster]
#IF
EQUAL 怪物名称 任务相关怪物
<$GlobalQuestStatus> 1
#ACT
INC <$GlobalKillCount> 1
```
- **局部变量**:
- 局部变量只能在定义它的脚本文件或脚本段内被访问和修改。这有助于隔离不同任务之间的变量,使得每个任务的变量管理更加独立。
- 例如,在`\MirServer\Mir200\Envir\QuestDiary\CustomQuest.txt`文件中定义的变量`<$CustomQuestStatus>`和`<$CustomQuestItemCount>`只能在这个文件内部被访问和修改,其他脚本无法直接访问这些变量,除非通过一些特殊的接口或传递机制。
5. **变量类型**
- 在GOM引擎传奇脚本中,任务变量主要是整数类型。这些整数可以用于表示任务状态(如0、1、2)、计数(杀怪数量、收集物品数量等)、时间戳(用于限时任务)等。
- 虽然没有像高级编程语言那样严格的变量类型定义,但在使用变量时,要根据变量的用途和预期的操作来确保其值的合理性。例如,在进行计数操作时,变量的值应该是整数,并且在进行比较操作(如检查是否达到任务要求的数量)时,要确保比较的逻辑正确。

