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

传奇登录脚本速成班!转生后自动加血量蓝量,一招搞定

热度:
大家好,玩过传奇的朋友都知道,转生是提升角色实力的重要途径!很多服主想让玩家转生后获得更长的血条、更厚的蓝条,上线就霸气侧漏。这个效果其实靠登录脚本就能轻松实现,而且原理超级简单!今天咱们就抛开代码恐惧,用“说人话”的方式,一步步教会你怎么通过脚本让转生玩家上线自动获得血量和蓝量加成,新手也能秒懂!

核心原理:玩家上线 ➜ 查转生等级 ➜ 按公式加血加蓝!

想象一下流程:
玩家登录:双击游戏图标,输入账号密码,选角色进入游戏。

引擎干活:游戏服务端(M2Server)马上执行登录脚本。

脚本判断:脚本检查这个角色的转生等级是多少。

计算加成:脚本根据转生等级,算出应该增加多少血量和蓝量。

设置属性:脚本把这些额外的血蓝,永久加到角色的基础属性上(只在本次登录有效,需永久则加在引擎或全局变量)。

刷新显示:玩家的血条蓝条瞬间变长!

我们的任务:写一个能自动完成第3、4、5步的脚本!

你需要准备什么?
传奇服务端:你架设好的传奇(GEE/GOM/V8等引擎通用)。

脚本文件路径:

登录脚本通常位于:D:\MirServer\Mir200\Envir\MapQuest_def\QManage.txt (GEE/GOM等常用)。

(引擎不同位置可能略有差异,但核心文件基本都叫QManage.txt或类似)。
文本编辑器:记事本、Notepad++、VSCode等任何能编辑TXT文件的工具。

了解引擎变量:不同引擎储存“转生等级”的变量名不同,需要查证!(这是关键!)

超详细步骤 & 通用脚本模板(附通俗解释)

步骤 1:找到并打开你的登录脚本文件 (QManage.txt)
打开你的传奇服务端文件夹。

导航到 Mir200\Envir\MapQuest_def\ 目录。

找到 QManage.txt 文件,用文本编辑器打开它(备份是个好习惯!)。

步骤 2:确定你引擎的“转生等级”变量名(最关键一步!)
没有统一标准! 不同引擎、不同版本、不同登录器,这个变量名可能不一样!务必查找你的引擎说明书(CHM帮助文档)或问引擎提供商。

常见变量名示例(需要替换成你服务器的实际变量名!):

<$RELEVEL> (常见于较新引擎,如GEE)

<RELEVEL> (历史遗留写法,可能需要配合Check [XX] XX命令)

<REBORNLEVEL> (部分引擎可能用这个)

<$HUMAN(转生等级)> (如果用了自定义NPC命令存入人物变量)

<$ZSLEVEL> (自定义写法)

如何确定? 在你的转生系统脚本或引擎说明书里找“读取当前转生等级”的命令,看它用哪个变量。

重要提示: 假设我们教程后面都用 <$RELEVEL> 作为示例变量,你一定要替换成你服务器的真实变量名! 写错了脚本就不生效!

步骤 3:在登录脚本中编写转生加成逻辑

找到登录脚本里某个合适的位置(通常在脚本开头登录事件处理部分),添加以下代码块(注意替换<$RELEVEL>):

########### 转生后血量蓝量上线加成逻辑 (放在 [@Login] 或类似标签下) #############

[@Login] ; 这是玩家登录时引擎自动调用的入口标签(核心!)
; ------ 1. 检查玩家是否已经转生 (转生等级 > 0) ------

#IF
Check [<$RELEVEL>] > 0 ; 如果转生等级 > 0,说明已经转生了,执行后面
#ACT
------ 2. 计算应该加多少血和蓝 (这里用简单公式,可自由修改) ------

公式说明:假设每转生1级,增加 基础血量 15000点,蓝量增加5000点

Mov S1 <$RELEVEL> ; 把转生等级存入临时变量 S1 (便于计算)
Mul S1 15000 ; 将 S1 乘以 15000,得到血量的加成总量 = 转生等级 * 15000
Mov S2 <$RELEVEL> ; 再次存入等级
Mul S2 5000 ; 将 S2 乘以 5000,得到蓝量的加成总量 = 转生等级 * 5000
------ 3. 设置玩家的最大HP和MP(实现血蓝条变长) ------

SetNewHumValue MaxHP + <$STR(S1)> ; 给玩家的基础最大HP(血条上限)永久增加 S1 点 (需要支持此命令的引擎)
SetNewHumValue MaxMP + <$STR(S2)> ; 给玩家的基础最大MP(蓝条上限)永久增加 S2 点
------ 4. 立刻给玩家补满血和蓝!(让血蓝条看起来就是满的) ------

HumanHP + <$STR(S1)> ; 当前血量瞬间加满(补齐因上限增加而“缺少”的部分)
HumanMP + <$STR(S2)> ; 当前蓝量瞬间加满
------ 5. (可选) 发送一条炫酷提示给玩家 ------

SendMsg 6 尊贵的【<STR(S1)>转】强者!您上线获得血脉觉醒加成,【血量上限】增加[<STR(S1)>]点,【魔法上限】增加[<$STR(S2)>]点! ; 紫色显示在聊天框底部

#ELSEACT ; 如果转生等级=0 (未转生)
什么都不做,保持默认血蓝

break
; ################################################################

逐行代码通俗解释(不懂代码也能懂!)
[@Login]: 传奇引擎的“魔法标签”,只要玩家登录游戏,引擎必定会执行这个标签 {} 里的代码!这就是我们写登录效果的地方。

#IF Check [<$RELEVEL>] > 0:

#IF:表示“开始判断一个条件”。

Check [<RELEVEL>] > 0:判断条件的内容。这里检查变量 <RELEVEL> 代表的数值(玩家当前的转生等级)是否大于0。

如果大于0(玩家转生过),就执行紧跟着的 #ACT 里的动作。

如果等于0或没值(玩家没转生),就执行 #ELSEACT 里的动作(这里没写就是忽略)。
Mov S1 <RELEVEL> & Mov S2 <RELEVEL>:

Mov:赋值命令,相当于“把右边的值存到左边的临时小盒子里”。

S1 和 S2:这是引擎提供的临时数值变量盒子(类似盒子1号,盒子2号)。<$RELEVEL> 是装转生等级的变量。这行意思是:把玩家的转生等级数字,复制一份分别放进 盒子1(S1) 和 盒子2(S2) 里备用。
Mul S1 15000 & Mul S2 5000:

Mul:乘法命令(Multiply缩写)。

S1 15000:取出 盒子1(S1) 里的数字(转生等级),乘以 15000(这是血量的加成系数),然后把结果(转生等级*15000)放回 盒子1(S1) 里。

同理,S2 5000:转生等级*5000(蓝量的加成系数),结果放回 盒子2(S2)。

你可以修改15000和5000! 想少加点就写小点(如5000,1000),想加得多就写大点(如30000,10000)。
SetNewHumValue MaxHP + <STR(S1)> & SetNewHumValue MaxMP + <STR(S2)>:

SetNewHumValue:重点命令! 这个是相对较新引擎(如GEE/V8)提供的强大命令,用于永久性修改角色的基础属性(上限)。

MaxHP:要修改的是“最大生命值上限”。

MaxMP:要修改的是“最大魔法值上限”。

+:表示在原有基础上增加(也可以替换成 = 赋值)。

<STR(S1)> / <STR(S2)>:获取之前计算好的数值(血量加成总量/蓝量加成总量)。<$STR(...)> 是把数值变量转成字符串的命令(引擎需要)。

这一步做完,玩家血条蓝条的上限真的变长了!而且是登录时的基础属性。
HumanHP + <STR(S1)> & HumanMP + <STR(S2)>:

HumanHP:设置玩家当前生命值。

HumanMP:设置玩家当前魔法值。

+ <$STR(S1)>:给玩家当前的血量值增加刚才计算的加成总量(注意:+ 很重要)。因为之前我们只加了上限,玩家的当前血蓝还是旧的数值(可能低于新的上限)。这两行命令的作用是:立刻把玩家当前的血蓝补满到新的上限值!(如果用的是 = 赋值,这里可以直接 HumanHP = 9999999 但不如 + 安全)。

玩家上线就看到血蓝是满的,且上限变高了!
SendMsg 6 ...:

在游戏聊天框左下角(6频道)给玩家发送一条彩色提示消息,告诉ta获得了多少血蓝加成。消息内容你可以自定义修改。
#ELSEACT break:

如果玩家没有转生(Check 条件不成立),这里不做任何操作(保持默认血蓝),用 break 结束当前判断。

步骤 4:保存、配置 & 重启引擎
保存文件:在你编辑好的 QManage.txt 文件中,把你精心编写的代码段保存进去(位置要放对,一般是 [@Login] 标签内)。

重启引擎:非常关键! 修改脚本文件后,必须重启你的 M2Server (GameCenter.exe),新脚本逻辑才会被加载生效!

关区操作:安全起见,在修改脚本前,先关闭游戏网关(Rungate.exe)和登录网关(Logingate.exe),断开玩家连接,然后关M2Server。改完脚本,先启动M2Server,再启动其他网关。

步骤 5:上线测试!(绝对重要的环节)
启动服务器。

创建测试账号或使用GM账号。

登录一个未转生的角色,记录血量和蓝量。

下线。在服务端后台(或数据库管理工具如DBC2000/HEX,或GM命令)修改这个角色的转生等级(<$RELEVEL> 变量)为 1 或更高。小心操作!

再次用这个角色登录游戏!

观察效果:

聊天框底部应该出现你写的提示消息。

角色的血条蓝条上限明显变长了!

当前的血和蓝应该是满的(因为加了HumanHP/MP)。
检查数值:输入 /ShowTest (或引擎提供的查看属性命令) 看新血蓝是否 = 旧血蓝上限 + (转生等级 * 15000 / 5000)?是就对了!

进阶玩法 & 贴心提示
公式自由发挥:

感觉15000/5000太多/太少?大胆改这两个数字! (Mul S1 新数值 / Mul S2 新数值).

想每级加得不一样?用个#CALL调用公式脚本或者用#IF多段判断,1转加1000,2转加2000,3转加5000...
引擎兼容性:

老引擎警告! 如果 SetNewHumValue 报错(可能引擎不支持),替代方案1:

老引擎可能用这些命令 (效果是设置角色基础属性,需要引擎支持)

SetHumAbility + 0, 0, 0, <STR(S1)>, 0, 0, 0, <STR(S2)>, 0, 0, 0 ; (参数含义需查老引擎文档!危险!建议查引擎说明书SetHumAbility用法)
CheckLevelUp ; 有时需要这个刷新一下

替代方案2 (最常用、最简单、兼容性最好):

用引擎的AddHP/AddMP功能(模拟基础属性增加,稳定兼容但非永久存入引擎)

PlayHP MAX + <$STR(S1)> ; 设置玩家的最大血量=当前最大血量+S1 (兼容性高)
PlayMP MAX + <$STR(S2)> ; 设置玩家的最大蓝量=当前最大蓝量+S2
HumanHP = <$PLAYHPMAX> ; 设置当前血满
HumanMP = <$PLAYMPMAX> ; 设置当前蓝满

永久存储加在引擎层面:

SetNewHumValue 是模拟修改角色基础属性(配合变量存储),但如果希望永久记录加成值到角色文件,需要更复杂的引擎设置或二次开发(如Hook PlayHP 和 PlayMP 的实际调用地址)。一般登录脚本实现的是“每次上线加一次”的逻辑就足够满足需求了。要引擎永久记录,建议在转生成功的脚本里修改角色全局变量或等级成长函数。
职业区分:

想战士只加血,法师只加蓝?在代码开始加个职业判断:

#IF
Equal <$JOB> Warrior ; 如果职业是战士
#ACT
只执行加血逻辑 (保留MOV/Mul S1 和 设置HP部分)

break
#IF
Equal <$JOB> Wizard ; 如果职业是法师
#ACT
只执行加蓝逻辑 (保留MOV/Mul S2 和 设置MP部分)

break
...其他职业...

上限保护:

传奇引擎对血量(HP)和蓝量(MP)通常有上限(如65535, 4294967295等,不同引擎不同)。别让你的加成公式乘出天文数字导致引擎崩溃!合理控制系数。
查!:遇到问题,第一时间查引擎的帮助文档(CHM)。变量名、命令用法都在里面。

总结:
搞转生上线加血蓝,核心就是三板斧:1)找变量(<$RELEVEL>);2)登录脚本写计算(Mul);3)加属性上限(SetNewHumValue/HumanHP MAX/PlayHP MAX)。记住替换成你的引擎真实变量名,写好公式,重启生效,上线测试。按照步骤走,效果绝对有!快去给你的转生大佬们安排上霸气加成吧!祝你服内大神辈出,人气火爆!
[顶部]