芝麻论坛

标题: HERO引擎制作假人脚本的详解+配置好的假人脚本文件 [打印本页]

作者: 传奇私服    时间: 2016-7-27 09:27
标题: HERO引擎制作假人脚本的详解+配置好的假人脚本文件
HERO引擎制作假人脚本的详细教程

好了 这节课有些人催了很久了 那么首先说一下 很多人在传奇里经常发现很多死人 也就是离线之后在游戏里面站着不动的人

为了让游戏更具有人气 很多技术都会添加一个死人跑动 或者随机飞动的 脚本 也就是死人变活人脚本 简称 假人脚本


首先呢  说一下 涉及到的四个文件  

QFunction-0.txt  功能脚本  QManage.txt 登陆脚本   RobotManage.txt  机器人脚本   test.txt  机器人时间的脚本

这四个大家都应该不陌生了

-------------------------------------------------------------------------------------------------------------------

首先呢 要做假人脚本 首先是要确定条件 玩家大退 自动离线挂机

在HERO引擎的说明书里

[@PlayOffline]
#IF                     如果
InSafeZone              你在安全区
#ACT                    则,那么
Offline 1 5000          每5秒获得3000经验

这段的意思就是 玩家在大退的时候 自动触发QF文件【功能脚本文件】里面的相应的【[@PlayOffline]】内容

我们打开 D:\MirServer\Mir200\Envir\Market_Def\QFunction-0.txt 功能脚本 查找这一段 @PlayOffline

OK 找到了 我们把原来的那一段删掉 把这段复制过去 OK 保存 那么现在就可以实现玩家大退后 离线挂机 了

可能很多人在保存之后发现还是不行 那么我们打开M2 --- 选项 --- 功能设置 --- 其他设置 --- 基本控制三

把其中的 允许安全区离线挂机 勾上 才能实现 离线挂机

-------------------------------------------------------------------------------------------------------------------

其实实现假人脚本的原理有两种 一种是在#act 后面加上 一个定时器 因为这个教程还没做 大家又催假人脚本

我们就说第二种  首先我们打开 我事先准备好的 QF 查看一下 功能脚本执行内容

[@PlayOffLine]
#IF                                  如果
INSAFEZONE                           你在安全区
CHECKONLINEPLAYCOUNT < 1150          安全区人数的数量小于1150
#ACT                                 那么
OFFLINEPLAY 72000 10                 给予挂机
addnamelist ..\QuestDiary\挂机.txt   然后 将其写入 QuestDiary 文件夹下的 挂机.txt文档 【玩家名】这个需要手动创建

-------------------------------------------------------------------------------------------------------------------

既然看到挂机的文档 那么我们接下来 打开准备好的 test.txt

#AutoRun NPC SEC 10 @挂机真人

这句话的意思就是 每10秒执行一次 @挂机真人 的脚本  这个脚本 对应的就是 RobotManage.txt 也就是我们事先准备好的

-------------------------------------------------------------------------------------------------------------------

那么接下来我们再看 准备好的 RobotManage.txt 机器人脚本

[@挂机真人]
#if
#act
GetRandomText .\QuestDiary\挂机.txt S15
GetRandomText .\QuestDiary\挂机.txt S16
GetRandomText .\QuestDiary\挂机.txt S17
GetRandomText .\QuestDiary\挂机.txt S18
GetRandomText .\QuestDiary\挂机.txt S19
GetRandomText .\QuestDiary\挂机.txt S20
GetRandomText .\QuestDiary\挂机.txt S21
GetRandomText .\QuestDiary\挂机.txt S22
HCALL <$STR(S15)> @挂机人
HCALL <$STR(S16)> @挂机人
HCALL <$STR(S17)> @挂机人
HCALL <$STR(S18)> @挂机人
HCALL <$STR(S19)> @挂机人
HCALL <$STR(S20)> @挂机人
HCALL <$STR(S21)> @挂机人
HCALL <$STR(S22)> @挂机人

那么上面

GetRandomText .\QuestDiary\挂机.txt S15

是什么意思呢   意思是 随机读取 挂机.txt 文档 也就是已经离线挂机的玩家 其中一个 执行 HCALL <$STR(S15)> @挂机人 变量

-------------------------------------------------------------------------------------------------------------------

@挂机人 的脚本在哪里呢  就在我们准备好的 QManage.txt 登陆脚本


[@login]
#if
checknamelist ..\QuestDiary\挂机.txt  如果你在挂机的txt文档里
#act
delnamelist ..\QuestDiary\挂机.txt     那么清楚在挂机txt里的信息


[@挂机人]
#IF
IsOnMap 3                如果你在地图3的话
#act
MOVR  P1 324 337    那么随机飞去这个坐标
MOVR P2 323 337        
MAPMOVE 3 <$str(p1)> <$str(p2)>
break
#IF
IsOnMap 0                 如果你在地图0的话
#act
MOVR  P1 320 340
MOVR P2 260 275
MAPMOVE 0 <$str(p1)> <$str(p2)>
break
#IF
IsOnMap 5              如果你在地图5的话
#act
MOVR  P1 140 150
MOVR P2 327 340
MAPMOVE 5 <$str(p1)> <$str(p2)>
break







欢迎光临 芝麻论坛 (https://www.jjj198.com/) Powered by Discuz! X3.4