当前位置 : 145z游戏站 | 热血传奇 | 技术教程 | 

传奇GEE引擎从零搭建完整转生系统脚本教程

热度:
##转生系统的核心构成

GEE引擎里的转生系统由三部分构成:**转生变量**(记录玩家转生次数)、**转生NPC**(玩家交互界面)、**转生功能脚本**(控制属性加成、称号显示等)。下面按搭建顺序把每个环节拆开讲。

##第一步:在QM文件里定义转生变量

转生变量必须放在登录脚本里,每次玩家上线时读取和初始化。打开`D:\MirServer\Mir200\Envir\MapQuest_Def\QManage.txt`,在`[@Login]`段里添加变量定义。

```text
[@Login]
#IF
#ACT
;检测并初始化转生变量,U40用来记录转生次数
;如果U40没有值(新号),自动赋值为0
#IF
CHECKVARHUMAN转生=
#ACT
MOVHUMAN转生0
SENDMSG6你的转生系统已初始化,当前转生次数:0
#IF
#ACT
;调用转生属性加成脚本(后面会写)
CALL转生系统\转生属性加成.txt
```

**变量说明**:HUMAN类型变量是玩家个人变量,下线保存,适合存转生次数。U40是另一种常用变量格式,看你习惯用哪种。CHECKVARHUMAN转生=的意思是检查这个变量是否存在,不存在就创建。

##第二步:创建转生NPC脚本

在`D:\MirServer\Mir200\Envir\Market_Def\`文件夹里新建一个文本文档,重命名为`转生使者-3.txt`(-3代表NPC在土城)。写入以下脚本:

```text
[@main]
欢迎来到转生系统\
当前你的转生等级:<$HUMAN(转生)>转\
\
<查看转生属性/@查看属性>\
<进行转生/@转生>\
<领取转生称号/@领取称号>\
<关闭/@exit>

[@查看属性]
#IF
#ACT
#SAY
当前转生等级属性加成:\
攻击:+<$STR(U41)>%\
防御:+<$STR(U42)>%\
血量:+<$STR(U43)>%\\
<返回/@main>

[@转生]
#IF
CHECKLEVEL>49;需要50级才能一转
CHECKGAMEGOLD>49999;需要5万元宝
#ACT
MOVHUMAN转生1;转生次数设为1
GAMEGOLD-50000
CHANGELEVEL-1;转生降1级(可选)
SENDMSG0250251玩家【%s】成功转生,成为【1转】强者!
SENDMSG6恭喜你完成转生,获得属性加成!
CALL转生系统\转生属性加成.txt
goto@main
#ELSESAY
转生条件不足!\
需要等级50级,元宝50000\\
<返回/@main>
```

这个是最简单的一转脚本。如果你想做多转,需要在转生段里加判断,比如:

```text
[@转生]
#IF
EQUALHUMAN转生0
CHECKLEVEL>49
CHECKGAMEGOLD>49999
#ACT
MOVHUMAN转生1
GAMEGOLD-50000
CHANGELEVEL-1
SENDMSG0250251玩家【%s】成功转生,成为【1转】强者!
#IF
EQUALHUMAN转生1
CHECKLEVEL>59
CHECKGAMEGOLD>99999
#ACT
MOVHUMAN转生2
GAMEGOLD-100000
CHANGELEVEL-1
SENDMSG0250251玩家【%s】成功转生,成为【2转】强者!
;后面继续写3转、4转...
```

##第三步:创建转生属性加成脚本

在`D:\MirServer\Mir200\Envir\QuestDiary\转生系统\`文件夹里新建`转生属性加成.txt`,写入以下内容:

```text
[@转生属性加成]
#IF
EQUALHUMAN转生0
#ACT
MOVU410;攻击加成0%
MOVU420;防御加成0%
MOVU430;血量加成0%
#IF
EQUALHUMAN转生1
#ACT
MOVU415;1转攻击+5%
MOVU425;1转防御+5%
MOVU4310;1转血量+10%
#IF
EQUALHUMAN转生2
#ACT
MOVU4110
MOVU4210
MOVU4320
;继续写到10转或更多
#IF
#ACT
;调用属性刷新命令(GEE专用)
RefreshValue攻击百分比<$STR(U41)>
RefreshValue防御百分比<$STR(U42)>
RefreshValueHP百分比<$STR(U43)>
```

`RefreshValue`是GEE引擎的专用命令,用来实时刷新人物属性。如果不支持这个命令,可以用传统的`USEBONUSPOINT`或其他方式,但GEE最推荐用这个。

##第四步:添加转生称号和变色效果

GEE引擎支持称号系统和人物变色,让高转玩家看起来不一样。

在`转生使者-3.txt`里添加领取称号的脚本段:

```text
[@领取称号]
#IF
EQUALHUMAN转生1
#ACT
ADDTITLE1转称号
SENDMSG6获得称号:一转凡人
#IF
EQUALHUMAN转生2
#ACT
ADDTITLE2转称号
SENDMSG6获得称号:二转脱俗
;继续写更多转生称号
```

如果要让人物变色,可以在登录触发里加身体颜色命令:

```text
;在QManage.txt的[@Login]里添加
#IF
LARGEHUMAN转生0
#ACT
SetBodyColor15101;151是七彩颜色,0表示永久,1表示转生变色模式
```

`SetBodyColor`命令的参数说明:颜色值1-255,时间0为永久,类型1为转生变色模式。

##第五步:在QF文件里添加转生触发功能

打开`D:\MirServer\Mir200\Envir\QFunction-0.txt`,添加杀怪触发,让高转玩家打怪有经验加成:

```text
[@KillMon]
#IF
LARGEHUMAN转生0
#ACT
;根据转生次数增加经验倍数
MULN1<$HUMAN(转生)>10;每转多10%经验
INCN1100;基础100%
KILLMONEXPRATE<$STR(N1)>0
```

##第六步:设置转生限制(进入地图、穿戴装备)

如果你想限制某些地图只有高转玩家能进,在`MapInfo.txt`里对应的地图后面加参数,或者在NPC传送脚本里加判断:

```text
[@进入高级地图]
#IF
LARGEHUMAN转生2;需要2转以上
#ACT
mapG100
#ELSESAY
你转生等级不足,需要2转才能进入!
```

限制穿戴装备:在装备数据库里设置`Need=100`表示需要转生等级,`NeedLevel`字段填需要的转生次数。

##第七步:在M2里配置转生相关参数

1.打开**M2Server.exe**→**选项**→**功能设置**→**转生系统**
2.设置转生属性加成系数(比如每转增加多少攻击、防御)
3.设置转生所需等级、元宝、材料
4.设置转生后的等级变化(降级、保留等级、或额外送等级)

不同版本的GEE引擎界面略有不同,但转生相关配置基本都在这个菜单里。

##第八步:完整调用关系梳理

文件路径|作用
---|---
`QManage.txt`|玩家登录时初始化转生变量,调用属性加成脚本
`Market_Def\转生使者-3.txt`|NPC主界面,玩家点转生时修改转生变量
`QuestDiary\转生系统\转生属性加成.txt`|根据转生变量计算属性加成,调用RefreshValue刷新
`QFunction-0.txt`|杀怪触发、升级触发等,给转生玩家额外效果
`Castle\`或其他数据库|如果需要保存转生数据,HUMAN变量会自动存

##常见问题排查

**问题1:转生了但属性没加**
检查`RefreshValue`命令是否执行成功,可以在属性加成脚本里加一段`SENDMSG6当前攻击加成:<$STR(U41)>%`来调试,看U41变量是否被正确赋值。

**问题2:转生后称号不显示**
检查`ADDTITLE`命令里的称号名称是否在`Title.txt`文件里配置过。称号配置文件在`Envir\Title.txt`。

**问题3:转生次数不保存**
HUMAN变量默认是保存的,如果没保存,在`QManage.txt`的`[@Login]`段前面加上`VARSTRINGHUMAN转生`强制声明变量。

**问题4:NPC点了没反应**
检查文件编码是不是ANSI,文件路径有没有放对,MerChant.txt里有没有添加这个NPC的配置。

**问题5:转生条件判断不准确**
用`EQUALHUMAN转生0`判断时,确保HUMAN变量确实有值。可以先在脚本里加一段显示当前转生次数的文字,确认变量正常。
[顶部]