项目

一般

简介

假人完整示例 » 历史记录 » 修订 2

修订 1 (tejie, 2023-08-28 10:24) → 修订 2/3 (tejie, 2023-08-29 09:01)

h4. 假人完整示例 

 - 
 - 

 *自定义假人名称处理* 

 ..\Mir200\Envir\DummyNameList.txt 
 请重命名为 
 ..\Mir200\Envir\DummyNameListTJ.txt 

 [[假人调试模块]]  
 [[假人配置文件]] 配置项的值支持变量,举例job=<$str(n1)> 

  

 本示例相关数据表及脚本文件,请从本页面 *文件* 附件下载。 

 - 
 - 


 |^. %{color:fireBrick}--..\Mir200\Envir\MapQuest_Def\QManage.txt% 
 *<notextile>[@Startup]</notextile>* 
 <notextile>#call [\qm模块\服务器启动.txt] @服务器启动</notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\QuestDiary\qm模块\服务器启动.txt% 
 *<notextile>[@服务器启动]</notextile>* 
 %{color:lightGrey};--服务器首次启动处理% 
 #if 
 [[equal]] g$服务器首次启动 0 
 #act 
 [[mov]] g$服务器首次启动 1 
 %{color:lightGrey};--假人数据初始化% 
 [[mov]] a$假人_登录地图 XRJD 
 [[mov]] a$假人_登录坐标X 77 
 [[mov]] a$假人_登录坐标Y 29 
 [[mov]] g$假人_登录上限 1 
 <notextile></notextile> 
 #if 
 #act 
 [[tbl_load]] 假人等级地图对应表 \假人\假人等级地图对应表.csv 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\Robot_def\AutoRunRobot.txt% 
 <notextile>#AutoRun NPC SEC 10 @10秒触发</notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\Robot_def\RobotManage.txt% 
 *<notextile>[@10秒触发]</notextile>* 
 <notextile>#call [\假人\假人登录.txt] @发起假人登录</notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\MapQuest_Def\QManage.txt% 
 *<notextile>[@login]</notextile>* 
 #if 
 [[isDummy]] 
 <notextile>#call [\假人\假人登录.txt] @执行假人登录</notextile> 
 <notextile></notextile> 
 |/3^. %{color:firebrick}--..\Mir200\Envir\QuestDiary\假人\假人登录.txt% 
 *<notextile>[@发起假人登录]</notextile>* 
 %{color:lightGrey};--RobotManage.txt [@10秒触发]调用% 
 #if 
 [[checkDummyCount]] < g$假人_登录上限 
 #act 
 [[dummyLogon]] <$str(a$假人_登录地图)> <$str(a$假人_登录坐标X)> <$str(a$假人_登录坐标X)> 1 
 <notextile></notextile> 
 *<notextile>[@执行假人登录]</notextile>* 
 %{color:lightGrey};--QManage.txt [@login]调用% 
 #act 
 [[setDummyConfigFileName]] ..\QuestDiary\调试模块\假人\新人配置.txt 
 [[loadDummyConfigfile]] 
 <notextile></notextile> 
 %{color:lightGrey};--创建表--% 
 #if 
 not [[tbl_exist]] 登录假人表 
 #act 
 [[tbl_create_global]] 登录假人表 关键字 假人名称 
 [[tbl_add]] 登录假人表 <$userName> <$userName> 
 [[tbl_save]] 登录假人表 
 <notextile>goto @新登假人配置</notextile> 
 <notextile></notextile> 
 %{color:lightGrey};--保存新登录假人--% 
 #if 
 not [[tbl_has_key]] 登录假人表 <$userName> 
 #act 
 [[tbl_add]] 登录假人表 <$userName> <$userName> 
 [[tbl_save]] 登录假人表 
 <notextile>goto @新登假人配置</notextile> 
 <notextile></notextile> 
 #if 
 [[tbl_has_key]] 登录假人表 <$userName> 
 #act 
 %{color:lightGrey};--todo--登录过的假人% 
 <notextile></notextile> 
 #if 
 #act 
 <notextile>goto @假人下图处理</notextile> 
 <notextile></notextile> 
 *<notextile>[@新登假人配置]</notextile>* 
 #if 
 #act 
 %{color:lightGrey};--处理新假人装备,请根据版本自行调整% 
 [[mov]] s$key 1 
 <notextile>goto @假人换装</notextile> 
 <notextile></notextile> 
 *<notextile>[@假人下图处理]</notextile>* 
 %{color:lightGrey};--根据“假人等级地图对应表”下图 
 ;举例 
 ;0<lv<=10 地图1 
 ;10<lv<=20 地图2 
 ;20<lv<=30 地图3 
 ;... 
 ;**假人等级遍历上表,是否不大于等级上限% 
 #if tbl 假人等级地图对应表 s$key 
 [[small]] <$level> <$tbl(假人等级地图对应表,s$key,等级上限)> 
 #act 
 [[map]] <$tbl(假人等级地图对应表,s$key,地图编号)> 
 [[gotoNow]] 
 #elseAct 
 [[map]] <$tbl(假人等级地图对应表,s$key,地图编号)> 
 [[gotoNow]] 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@获得物品触发]</notextile>* 
 %{color:lightGrey}<notextile>;--qf [@pickUpItemEX]触发调用</notextile> 
 ;--todo--处理假人出图逻辑% 
 #if 
 %{color:lightGrey};背包满了% 
 not [[checkBagSize]] 2 
 #act 
 <notextile>goto @假人主动回城处理</notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@假人被真人击处理]</notextile>* 
 %{color:lightGrey};--todo--qf被击触发调用,处理假人被击逻辑 
 ;被击触发器,检查被真人攻击:假人血量低于<notextile>40%:50%几率回城;50%几率逃跑</notextile>% 
 #if 
 not [[checkHpPer]] < 40 
 #act 
 break 
 <notextile></notextile> 
 #if 
 [[checkCurrTargetRace]] = 0 
 [[checkHPPer]] < 40 
 #act 
 [[movR]] n1 0 2 
 #if 
 [[equal]] n1 0 
 #act 
 [[gotoNow]] 
 [[delayGoto]] 20000 <notextile>@假人挂机</notextile> 
 <notextile></notextile> 
 #if 
 [[equal]] n1 1 
 #act 
 [[gohome]] 
 <notextile></notextile> 
 *<notextile>[@假人挂机]</notextile>* 
 #act 
 [[dummyStart]] 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@假人死亡处理]</notextile>* 
 %{color:lightGrey};qf角色死亡触发调用--todo--处理假人死亡逻辑% 
 #if 
 #act 
 [[realive]] 100 1 
 [[gohome]] 
 <notextile></notextile> 
 %{color:lightGrey};主城随便逛逛% 
 [[gotoNow]] 
 <notextile></notextile> 
 [[goto]] <notextile>@假人下图处理</notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@假人主动回城处理]</notextile>* 
 #if 
 #act 
 [[gohome]] 
 %{color:lightGrey};--todo--处理假人主动回城逻辑 
 ;执行清理背包% 
 [[gmExeCute]] clearBag self 
 <notextile></notextile> 
 %{color:lightGrey};执行假人升级% 
 #if 
 #act 
 <notextile>goto @假人升级处理</notextile> 
 <notextile></notextile> 
 %{color:lightGrey};主城随便逛逛% 
 [[gotoNow]] 
 <notextile></notextile> 
 [[goto]] <notextile>@假人下图处理</notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@假人升级处理]</notextile>* 
 #if 
 [[large]] <$rankingLevel> 10 
 #act 
 %{color:lightGrey};--todo--处理假人升级逻辑% 
 [[movR]] n1 1 6 
 [[changeLevel]] + n1 
 <notextile></notextile> 
 [[delayGoto]] 500 <notextile>@假人升级处理</notextile> 
 #elseAct 
 %{color:lightGrey};--根据升级后等级,穿戴对应装备 
 ;--换装前后清空一下背包% 
 [[gmExeCute]] clearBag self 
 [[goto]] <notextile>@假人升级换装</notextile> 
 [[gmExeCute]] clearBag self 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@假人升级换装]</notextile>* 
 #if tbl 假人等级地图对应表 s$key 
 [[small]] <$level> <$tbl(假人等级地图对应表,s$key,等级上限)> 
 #act 
 goto <notextile>@假人换装</notextile> 
 #elseAct 
 goto <notextile>@假人换装</notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 *<notextile>[@假人换装]</notextile>* 
 #if 
 #act 
 [[give]] <$tbl(假人等级地图对应表,s$key,衣服)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,武器)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,项链)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,头盔)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,左镯)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,右镯)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,左戒)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,右戒)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,腰带)> 1 
 [[give]] <$tbl(假人等级地图对应表,s$key,靴子)> 1 
 <notextile></notextile> 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,衣服)> 0 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,武器)> 1 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,项链)> 3 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,头盔)> 4 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,左镯)> 5 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,右镯)> 6 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,左戒)> 7 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,右戒)> 8 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,腰带)> 10 
 [[takeOnItem]] <$tbl(假人等级地图对应表,s$key,靴子)> 11 
 <notextile></notextile> 
 %{color:lightGrey};--假人扩展背包页% 
 #if 
 [[equal]] s$key 2 
 #act 
 [[setBagOpen]] 2 1 
 <notextile></notextile> 
 #if 
 [[equal]] s$key 3 
 #act 
 [[setBagOpen]] 3 1 
 <notextile></notextile> 
 #if 
 [[equal]] s$key 4 
 #act 
 [[setBagOpen]] 4 1 
 | 
 |^. %{color:fireBrick}--..\Mir200\Envir\Market_Def\QFunction-0.txt% 
 *<notextile>[@pickUpItemEX]</notextile>* 
 #call [\qf模块\拾取触发.txt] @拾取触发 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\QuestDiary\qf模块\拾取触发.txt% 
 *<notextile>[@拾取触发]</notextile>* 
 #if 
 [[isDummy]] 
 #act 
 <notextile>#call [\假人\假人登录.txt] @获得物品触发</notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\Market_Def\QFunction-0.txt% 
 *<notextile>[@struck]</notextile>* 
 <notextile>#call [\qf模块\被击触发.txt] @被击触发</notextile> 
 <notextile></notextile> 
 *<notextile>[@magicStruck]</notextile>* 
 <notextile>#call [\qf模块\被击触发.txt] @被击触发</notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\QuestDiary\qf模块\被击触发.txt% 
 *<notextile>[@被击触发]</notextile>* 
 #if 
 [[isDummy]] 
 #act 
 <notextile>#call [\假人\假人登录.txt] @假人被真人击处理</notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\Market_Def\QFunction-0.txt% 
 *<notextile>[@playDie]</notextile>* 
 <notextile>#call [\qf模块\角色死亡.txt] @角色死亡</notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 %{color:fireBrick}--..\Mir200\Envir\QuestDiary\qf模块\角色死亡.txt% 
 *<notextile>[@角色死亡]</notextile>* 
 #if 
 [[isDummy]] 
 #act 
 <notextile>#call [\假人\假人登录.txt] @假人死亡处理</notextile>| 
 |<notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 <notextile></notextile> 
 |