项目

一般

简介

假人完整示例 » 历史记录 » 版本 4

tejie, 2025-07-19 11:43

1 1 tejie
h4. 假人完整示例
2
3
-
4
-
5
6
*自定义假人名称处理*
7
8
..\Mir200\Envir\DummyNameList.txt
9
请重命名为
10
..\Mir200\Envir\DummyNameListTJ.txt
11
12
[[假人调试模块]] 
13 3 tejie
14
[[假人配置文件]] 
15
配置项的值支持变量,举例job=<$str(n1)>
16
配合命令 [[setDummyConfigFileName]] 使用 
17 1 tejie
18 4 tejie
*假人攻击模式规则*
19
全体模式 或 PK模式时
20
优先反击(攻击打自己的人)
21
如果没有敌人先寻找怪物,再寻找人。
22
23 1 tejie
本示例相关数据表及脚本文件,请从本页面 *文件* 附件下载。
24
25
-
26
-
27
28
29
|^. %{color:fireBrick}--..\Mir200\Envir\MapQuest_Def\QManage.txt%
30
*<notextile>[@Startup]</notextile>*
31
<notextile>#call [\qm模块\服务器启动.txt] @服务器启动</notextile>
32
<notextile></notextile>
33
%{color:fireBrick}--..\Mir200\Envir\QuestDiary\qm模块\服务器启动.txt%
34
*<notextile>[@服务器启动]</notextile>*
35
%{color:lightGrey};--服务器首次启动处理%
36
#if
37
[[equal]] g$服务器首次启动 0
38
#act
39
[[mov]] g$服务器首次启动 1
40
%{color:lightGrey};--假人数据初始化%
41
[[mov]] a$假人_登录地图 XRJD
42
[[mov]] a$假人_登录坐标X 77
43
[[mov]] a$假人_登录坐标Y 29
44
[[mov]] g$假人_登录上限 1
45
<notextile></notextile>
46
#if
47
#act
48
[[tbl_load]] 假人等级地图对应表 \假人\假人等级地图对应表.csv
49
<notextile></notextile>
50
%{color:fireBrick}--..\Mir200\Envir\Robot_def\AutoRunRobot.txt%
51
<notextile>#AutoRun NPC SEC 10 @10秒触发</notextile>
52
<notextile></notextile>
53
%{color:fireBrick}--..\Mir200\Envir\Robot_def\RobotManage.txt%
54
*<notextile>[@10秒触发]</notextile>*
55
<notextile>#call [\假人\假人登录.txt] @发起假人登录</notextile>
56
<notextile></notextile>
57
%{color:fireBrick}--..\Mir200\Envir\MapQuest_Def\QManage.txt%
58
*<notextile>[@login]</notextile>*
59
#if
60
[[isDummy]]
61
<notextile>#call [\假人\假人登录.txt] @执行假人登录</notextile>
62
<notextile></notextile>
63
|/3^. %{color:firebrick}--..\Mir200\Envir\QuestDiary\假人\假人登录.txt%
64
*<notextile>[@发起假人登录]</notextile>*
65
%{color:lightGrey};--RobotManage.txt [@10秒触发]调用%
66
#if
67
[[checkDummyCount]] < g$假人_登录上限
68
#act
69
[[dummyLogon]] <$str(a$假人_登录地图)> <$str(a$假人_登录坐标X)> <$str(a$假人_登录坐标X)> 1
70
<notextile></notextile>
71
*<notextile>[@执行假人登录]</notextile>*
72
%{color:lightGrey};--QManage.txt [@login]调用%
73
#act
74
[[setDummyConfigFileName]] ..\QuestDiary\调试模块\假人\新人配置.txt
75
[[loadDummyConfigfile]]
76
<notextile></notextile>
77
%{color:lightGrey};--创建表--%
78
#if
79
not [[tbl_exist]] 登录假人表
80
#act
81
[[tbl_create_global]] 登录假人表 关键字 假人名称
82
[[tbl_add]] 登录假人表 <$userName> <$userName>
83
[[tbl_save]] 登录假人表
84
<notextile>goto @新登假人配置</notextile>
85
<notextile></notextile>
86
%{color:lightGrey};--保存新登录假人--%
87
#if
88
not [[tbl_has_key]] 登录假人表 <$userName>
89
#act
90
[[tbl_add]] 登录假人表 <$userName> <$userName>
91
[[tbl_save]] 登录假人表
92
<notextile>goto @新登假人配置</notextile>
93
<notextile></notextile>
94
#if
95
[[tbl_has_key]] 登录假人表 <$userName>
96
#act
97
%{color:lightGrey};--todo--登录过的假人%
98
<notextile></notextile>
99
#if
100
#act
101
<notextile>goto @假人下图处理</notextile>
102
<notextile></notextile>
103
*<notextile>[@新登假人配置]</notextile>*
104
#if
105
#act
106
%{color:lightGrey};--处理新假人装备,请根据版本自行调整%
107
[[mov]] s$key 1
108
<notextile>goto @假人换装</notextile>
109
<notextile></notextile>
110
*<notextile>[@假人下图处理]</notextile>*
111
%{color:lightGrey};--根据“假人等级地图对应表”下图
112
;举例
113
;0<lv<=10 地图1
114
;10<lv<=20 地图2
115
;20<lv<=30 地图3
116
;...
117
;**假人等级遍历上表,是否不大于等级上限%
118
#if tbl 假人等级地图对应表 s$key
119
[[small]] <$level> <$tbl(假人等级地图对应表,s$key,等级上限)>
120
#act
121
[[map]] <$tbl(假人等级地图对应表,s$key,地图编号)>
122
[[gotoNow]]
123
#elseAct
124
[[map]] <$tbl(假人等级地图对应表,s$key,地图编号)>
125
[[gotoNow]]
126
<notextile></notextile>
127
<notextile></notextile>
128
*<notextile>[@获得物品触发]</notextile>*
129
%{color:lightGrey}<notextile>;--qf [@pickUpItemEX]触发调用</notextile>
130
;--todo--处理假人出图逻辑%
131
#if
132
%{color:lightGrey};背包满了%
133
not [[checkBagSize]] 2
134
#act
135
<notextile>goto @假人主动回城处理</notextile>
136
<notextile></notextile>
137
<notextile></notextile>
138
*<notextile>[@假人被真人击处理]</notextile>*
139
%{color:lightGrey};--todo--qf被击触发调用,处理假人被击逻辑
140
;被击触发器,检查被真人攻击:假人血量低于<notextile>40%:50%几率回城;50%几率逃跑</notextile>%
141
#if
142
not [[checkHpPer]] < 40
143
#act
144
break
145
<notextile></notextile>
146
#if
147
[[checkCurrTargetRace]] = 0
148
[[checkHPPer]] < 40
149
#act
150
[[movR]] n1 0 2
151
#if
152
[[equal]] n1 0
153
#act
154
[[gotoNow]]
155
[[delayGoto]] 20000 <notextile>@假人挂机</notextile>
156
<notextile></notextile>
157
#if
158
[[equal]] n1 1
159
#act
160
[[gohome]]
161
<notextile></notextile>
162
*<notextile>[@假人挂机]</notextile>*
163
#act
164
[[dummyStart]]
165
<notextile></notextile>
166
<notextile></notextile>
167
*<notextile>[@假人死亡处理]</notextile>*
168
%{color:lightGrey};qf角色死亡触发调用--todo--处理假人死亡逻辑%
169
#if
170
#act
171
[[realive]] 100 1
172
[[gohome]]
173
<notextile></notextile>
174
%{color:lightGrey};主城随便逛逛%
175
[[gotoNow]]
176
<notextile></notextile>
177
[[goto]] <notextile>@假人下图处理</notextile>
178
<notextile></notextile>
179
<notextile></notextile>
180
*<notextile>[@假人主动回城处理]</notextile>*
181
#if
182
#act
183
[[gohome]]
184
%{color:lightGrey};--todo--处理假人主动回城逻辑
185
;执行清理背包%
186
[[gmExeCute]] clearBag self
187
<notextile></notextile>
188
%{color:lightGrey};执行假人升级%
189
#if
190
#act
191
<notextile>goto @假人升级处理</notextile>
192
<notextile></notextile>
193
%{color:lightGrey};主城随便逛逛%
194
[[gotoNow]]
195
<notextile></notextile>
196
[[goto]] <notextile>@假人下图处理</notextile>
197
<notextile></notextile>
198
<notextile></notextile>
199
*<notextile>[@假人升级处理]</notextile>*
200
#if
201
[[large]] <$rankingLevel> 10
202
#act
203
%{color:lightGrey};--todo--处理假人升级逻辑%
204
[[movR]] n1 1 6
205
[[changeLevel]] + n1
206
<notextile></notextile>
207
[[delayGoto]] 500 <notextile>@假人升级处理</notextile>
208
#elseAct
209
%{color:lightGrey};--根据升级后等级,穿戴对应装备
210
;--换装前后清空一下背包%
211
[[gmExeCute]] clearBag self
212
[[goto]] <notextile>@假人升级换装</notextile>
213
[[gmExeCute]] clearBag self
214
<notextile></notextile>
215
<notextile></notextile>
216
*<notextile>[@假人升级换装]</notextile>*
217
#if tbl 假人等级地图对应表 s$key
218
[[small]] <$level> <$tbl(假人等级地图对应表,s$key,等级上限)>
219
#act
220
goto <notextile>@假人换装</notextile>
221
#elseAct
222
goto <notextile>@假人换装</notextile>
223
<notextile></notextile>
224
<notextile></notextile>
225
*<notextile>[@假人换装]</notextile>*
226
#if
227
#act
228
[[give]] <$tbl(假人等级地图对应表,s$key,衣服)> 1
229
[[give]] <$tbl(假人等级地图对应表,s$key,武器)> 1
230
[[give]] <$tbl(假人等级地图对应表,s$key,项链)> 1
231
[[give]] <$tbl(假人等级地图对应表,s$key,头盔)> 1
232
[[give]] <$tbl(假人等级地图对应表,s$key,左镯)> 1
233
[[give]] <$tbl(假人等级地图对应表,s$key,右镯)> 1
234
[[give]] <$tbl(假人等级地图对应表,s$key,左戒)> 1
235
[[give]] <$tbl(假人等级地图对应表,s$key,右戒)> 1
236
[[give]] <$tbl(假人等级地图对应表,s$key,腰带)> 1
237
[[give]] <$tbl(假人等级地图对应表,s$key,靴子)> 1
238
<notextile></notextile>
239
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,衣服)> 0
240
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,武器)> 1
241
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,项链)> 3
242
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,头盔)> 4
243
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,左镯)> 5
244
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,右镯)> 6
245
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,左戒)> 7
246
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,右戒)> 8
247
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,腰带)> 10
248
[[takeOnItem]] <$tbl(假人等级地图对应表,s$key,靴子)> 11
249
<notextile></notextile>
250
%{color:lightGrey};--假人扩展背包页%
251
#if
252
[[equal]] s$key 2
253
#act
254
[[setBagOpen]] 2 1
255
<notextile></notextile>
256
#if
257
[[equal]] s$key 3
258
#act
259
[[setBagOpen]] 3 1
260
<notextile></notextile>
261
#if
262
[[equal]] s$key 4
263
#act
264
[[setBagOpen]] 4 1
265
|
266
|^. %{color:fireBrick}--..\Mir200\Envir\Market_Def\QFunction-0.txt%
267
*<notextile>[@pickUpItemEX]</notextile>*
268
#call [\qf模块\拾取触发.txt] @拾取触发
269
<notextile></notextile>
270
%{color:fireBrick}--..\Mir200\Envir\QuestDiary\qf模块\拾取触发.txt%
271
*<notextile>[@拾取触发]</notextile>*
272
#if
273
[[isDummy]]
274
#act
275
<notextile>#call [\假人\假人登录.txt] @获得物品触发</notextile>
276
<notextile></notextile>
277
%{color:fireBrick}--..\Mir200\Envir\Market_Def\QFunction-0.txt%
278
*<notextile>[@struck]</notextile>*
279
<notextile>#call [\qf模块\被击触发.txt] @被击触发</notextile>
280
<notextile></notextile>
281
*<notextile>[@magicStruck]</notextile>*
282
<notextile>#call [\qf模块\被击触发.txt] @被击触发</notextile>
283
<notextile></notextile>
284
%{color:fireBrick}--..\Mir200\Envir\QuestDiary\qf模块\被击触发.txt%
285
*<notextile>[@被击触发]</notextile>*
286
#if
287
[[isDummy]]
288
#act
289
<notextile>#call [\假人\假人登录.txt] @假人被真人击处理</notextile>
290
<notextile></notextile>
291
<notextile></notextile>
292
%{color:fireBrick}--..\Mir200\Envir\Market_Def\QFunction-0.txt%
293
*<notextile>[@playDie]</notextile>*
294
<notextile>#call [\qf模块\角色死亡.txt] @角色死亡</notextile>
295
<notextile></notextile>
296
<notextile></notextile>
297
%{color:fireBrick}--..\Mir200\Envir\QuestDiary\qf模块\角色死亡.txt%
298
*<notextile>[@角色死亡]</notextile>*
299
#if
300
[[isDummy]]
301
#act
302
<notextile>#call [\假人\假人登录.txt] @假人死亡处理</notextile>|
303
|<notextile></notextile>
304
<notextile></notextile>
305
<notextile></notextile>
306
<notextile></notextile>
307
<notextile></notextile>
308
<notextile></notextile>
309
<notextile></notextile>
310
<notextile></notextile>
311
<notextile></notextile>
312
<notextile></notextile>
313
<notextile></notextile>
314
<notextile></notextile>
315
<notextile></notextile>
316
<notextile></notextile>
317
<notextile></notextile>
318
<notextile></notextile>
319
<notextile></notextile>
320
<notextile></notextile>
321
<notextile></notextile>
322
<notextile></notextile>
323
<notextile></notextile>
324
<notextile></notextile>
325
<notextile></notextile>
326
<notextile></notextile>
327
<notextile></notextile>
328
<notextile></notextile>
329
<notextile></notextile>
330
<notextile></notextile>
331
<notextile></notextile>
332
<notextile></notextile>
333
<notextile></notextile>
334
<notextile></notextile>
335
<notextile></notextile>
336
<notextile></notextile>
337
<notextile></notextile>
338
<notextile></notextile>
339
<notextile></notextile>
340
<notextile></notextile>
341
<notextile></notextile>
342
<notextile></notextile>
343
<notextile></notextile>
344
<notextile></notextile>
345
<notextile></notextile>
346
<notextile></notextile>
347
<notextile></notextile>
348
<notextile></notextile>
349
<notextile></notextile>
350
<notextile></notextile>
351
<notextile></notextile>
352
<notextile></notextile>
353
<notextile></notextile>
354
<notextile></notextile>
355
<notextile></notextile>
356
<notextile></notextile>
357
<notextile></notextile>
358
<notextile></notextile>
359
<notextile></notextile>
360
<notextile></notextile>
361
<notextile></notextile>
362
<notextile></notextile>
363
<notextile></notextile>
364
<notextile></notextile>
365
<notextile></notextile>
366
<notextile></notextile>
367
<notextile></notextile>
368
<notextile></notextile>
369
<notextile></notextile>
370
<notextile></notextile>
371
<notextile></notextile>
372
<notextile></notextile>
373
<notextile></notextile>
374
<notextile></notextile>
375
<notextile></notextile>
376
<notextile></notextile>
377
<notextile></notextile>
378
<notextile></notextile>
379
<notextile></notextile>
380
<notextile></notextile>
381
<notextile></notextile>
382
<notextile></notextile>
383
<notextile></notextile>
384
<notextile></notextile>
385
<notextile></notextile>
386
<notextile></notextile>
387
<notextile></notextile>
388
<notextile></notextile>
389
<notextile></notextile>
390
<notextile></notextile>
391
<notextile></notextile>
392
<notextile></notextile>
393
<notextile></notextile>
394
<notextile></notextile>
395
<notextile></notextile>
396
<notextile></notextile>
397
<notextile></notextile>
398
<notextile></notextile>
399
<notextile></notextile>
400
<notextile></notextile>
401
<notextile></notextile>
402
<notextile></notextile>
403
<notextile></notextile>
404
<notextile></notextile>
405
<notextile></notextile>
406
<notextile></notextile>
407
<notextile></notextile>
408
<notextile></notextile>
409
<notextile></notextile>
410
<notextile></notextile>
411
<notextile></notextile>
412
<notextile></notextile>
413
<notextile></notextile>
414
<notextile></notextile>
415
<notextile></notextile>
416
<notextile></notextile>
417
<notextile></notextile>
418
<notextile></notextile>
419
<notextile></notextile>
420
<notextile></notextile>
421
<notextile></notextile>
422
<notextile></notextile>
423
<notextile></notextile>
424
|