-
Notifications
You must be signed in to change notification settings - Fork 24
/
Battle.lua
290 lines (242 loc) · 11.3 KB
/
Battle.lua
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
---@meta _
---获取战斗队列中对象实例的对象index
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@param Slot number 战斗队列中玩家位置,范围0-19,其中0-9为下方实例队列,10-19为上方实例队列。
---@return number @返回-1失败,成功返回对象实例的对象index,参数数据类型不对返回-2,战斗index无效返回-3,战斗队列中玩家位置范围错误返回-4。
function Battle.GetPlayer(BattleIndex, Slot) end
---获取战斗队列中对象实例的对象index
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@param Slot number 战斗队列中玩家位置,范围0-19,其中0-9为下方实例队列,10-19为上方实例队列。
---@return number @返回-1失败,成功返回对象实例的对象index,参数数据类型不对返回-2,战斗index无效返回-3,战斗队列中玩家位置范围错误返回-4。
function Battle.GetPlayIndex(BattleIndex, Slot) end
---调用魔力脚本语句encount创建战斗
---@param UpIndex number 战斗一方的 对象index
---@param DownIndex number 战斗一方的 对象index
---@param Data? string 触发战斗的信息,包括战斗敌人队列等信息,等同于GMSV自身脚本的encount参数,可不填写
---@return number @前两个参数都是同一个玩家索引,第三个参数不填的时候,进行原地遇敌,如果该处无法遇敌,则返回负数。
function Battle.Encount(UpIndex, DownIndex, Data) end
---使用Lua脚本创建一个战斗,战斗创建后可自动调用Lua的DoFunc函数。
---[@group Battle.PVE]
---@param CharIndex number 遇敌玩家的对象index。
---@param CreatePtr number 触发战斗的对象index。
---@param DoFunc string|nil 战斗初始化接受后调用的Lua函数的名称,申明格式请参考[BattleInitCallBack],如果不调用则填nil
---@param EnemyIdAr number[] 战斗所出现的怪物队列的怪物ID数组(怪物ID为enemy.txt中的ID)。
---@param BaseLevelAr number[] 战斗所出现的怪物队列的怪物等级数组(数组结构与EnemyIdAr结构应一一对应)
---@param RandLv? number[] 战斗所出现的怪物队列的怪物等级波动数组(数组结构与EnemyIdAr结构应一一对应)
---@return number @返回负数表示失败,成功返回战斗index。
function Battle.PVE(CharIndex, CreatePtr, DoFunc, EnemyIdAr, BaseLevelAr, RandLv) end
---战斗初始化回调
---[@group Battle.PVE]
---@param BattleIndex number
function BattleInitCallBack(BattleIndex) end
---创建PK战斗
---@param UpIndex number 战斗一方的 对象index
---@param DownIndex number 战斗一方的 对象index
---@return number @返回负数表示失败,成功返回战斗index。
function Battle.PVP(UpIndex, DownIndex) end
---设置战斗类型,如普通战、PVP战等。
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@param Type number 战斗类型,具体参照战斗类型常量。
---@return number @1为成功,其他失败。
function Battle.SetType(BattleIndex, Type) end
---设置战斗奖励模式,如奖励经验、奖励DP。
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@param Mod number 战斗奖励类型,具体参照战斗类型常量。
---@return number @1为成功,其他失败。
function Battle.SetGainMode(BattleIndex, Mod) end
---获取战斗类型,如普通战、PVP战等。
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@return number @战斗类型,具体参照战斗类型常量。
function Battle.GetType(BattleIndex) end
---获取战斗奖励模式,如奖励经验、奖励DP。
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@return number @战斗奖励类型,具体参照战斗类型常量。
function Battle.GetGainMode(BattleIndex) end
---获取战斗胜利方。
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@return number @0或者1,0表示战斗下方,即0-9位置的玩家;1表示上方,即10-19位置的玩家。
function Battle.GetWinSide(BattleIndex) end
---让指定玩家对象加入另一个玩家对象的战斗中,也就是让CharIndex2加入CharIndex1的战斗(类似石器时代求助帮助)。使用前先组队
---@param CharIndex1 number 目标的对象index,在战斗中的玩家。
---@param CharIndex2 number 目标的 对象index,不在战斗中的玩家。
---@return number @0为成功,其他失败。
function Battle.JoinBattle(CharIndex1, CharIndex2) end
---让指定玩家退出当前战斗。
---@param CharIndex number 目标的对象index,在战斗中的玩家。
---@return number @0为成功,其他失败。
function Battle.ExitBattle(CharIndex) end
---为非PVP的战斗设置战斗胜利事件的回调函数,由Lua引擎将Callback的参数传递给指定的Callback并执行。
---[@group Battle.SetWinEvent]
---@param DoFile? string 要加载的脚本文件名,如果为当前文件,则定义nil即可
---@param FuncName string 触发的Lua函数的名称,该函数的申明格式请参考[PVEWinCallBack]
---@param BattleIndex number 战斗index。
---@return number @返回1成功,返回0失败。
function Battle.SetWinEvent(DoFile, FuncName, BattleIndex) end
---WinEvent回调函数
---[@group Battle.SetWinEvent]
---@param BattleIndex number 战斗index,该值由Lua引擎传递给本函数。
---@param CharIndex number 响应事件的对象index,该值由Lua引擎传递给本函数。
function PVEWinCallBack(BattleIndex, CharIndex) end
---为PVP的战斗设置战斗胜利事件的回调函数,由Lua引擎将Callback的参数传递给指定的Callback并执行。
---[@group Battle.SetPVPWinEvent]
---@param DoFile? string 要加载的脚本文件名,如果为当前文件,则定义nil即可
---@param FuncName string 触发的Lua函数的名称,该函数的申明格式请参考[PVPWinCallBack]
---@param BattleIndex number 战斗index。
---@return number @返回1成功,返回0失败。
function Battle.SetPVPWinEvent(DoFile, FuncName, BattleIndex) end
---PVPWinEvent回调函数
---[@group Battle.SetPVPWinEvent]
---@param BattleIndex number 战斗index,该值由Lua引擎传递给本函数。
function PVPWinCallBack(BattleIndex) end
---获取战斗当前回合数。
---@param BattleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@return number @战斗回合数。
function Battle.GetTurn(BattleIndex) end
---判断当前对象是否在战斗中且处于等待输入战斗指令的状态。
---@param CharIndex number 对象index,可以为玩家、宠物、敌人。
---@return number @0为否,1为是
function Battle.IsWaitingCommand(CharIndex) end
---让对象执行指定的战斗操作,必须在对象Battle.IsWaitingCommand(index)返回值为1时才可以有效使用。
---@param CharIndex number 玩家对象index
---@param com1 number CONST.BATTLE_COM
---@param com2 number CONST.BATTLE_COM_TARGET
---@param com3 number techId
---@return number @0失败,1成功
function Battle.ActionSelect(CharIndex, com1, com2, com3) end
---获取当前战斗的战场魔法效果,如属性翻转、魔法封印
---@param BattleIndex number 战斗对象index
---@return number @失败返回0,否则返回3个值,分别是战场魔法状态(参考状态类型说明)、状态持续回合、状态属性。
function Battle.GetBattleFieldAttribute(BattleIndex) end
---设置当前战斗的战场魔法效果,如属性翻转、魔法封印
---@param BattleIndex number 战斗对象index
---@param Attribute number 战场状态 CONST.BATTLE_FIELD_ATTR
---@param TurnCount number 状态持续回合数
---@param AttributePower number 状态属性
---@return number @失败返回0,否则返回3个值,分别是新的战场魔法状态(参考状态类型说明)、状态持续回合、状态属性。
function Battle.SetBattleFieldAttribute(BattleIndex, Attribute, TurnCount, AttributePower) end
---设置连战。
---@param battleIndex number 战斗index,为Encount、PVE或PVP函数的返回值。
---@param encountIndex number -1=取消连战, -2=lua生成连战
---@param flg number lua连战参数
---@return number @0为成功,其他失败。
function Battle.SetNextBattle(battleIndex,encountIndex, flg) end
---获得角色战斗中真实位置
---@param battleIndex number 战斗index
---@param charIndex number 角色index
---@return number @角色战斗中真实位置,范围0-19
function Battle.GetPos(battleIndex,charIndex) end
---获得角色战斗中真实位置
---@param battleIndex number 战斗index
---@param charIndex number 角色index
---@return number @角色战斗中真实位置,范围0-19
function Battle.GetEntryPosition(battleIndex,charIndex) end
---获取战斗Index
---@param charIndex number 角色index
---@return number @战斗index
function Battle.GetCurrentBattle(charIndex) end
---获取连战id
---@param battleIndex number
---@return number @encountIndex
---@return number @flg,lua遇敌
function Battle.GetNextBattle(battleIndex) end
---计算属性伤害比率(10属性=100)
---@param ap number[] 进攻方4属性,地、水、火、风
---@param dp number[] 防守方4属性,地、水、火、风
---@return any @属性伤害比率
function Battle.CalcPropScore(ap, dp) end
---获取当前动作技能参数
---@param charIndex number
---@param type string 取值 DD: AR: 等
---@return number @当前动作技能参数
function Battle.GetTechOption(charIndex, type) end
---获取种族克制关系
---@param attackerIndex number
---@param defenceIndex number
---@return number @克制比率
function Battle.CalcAttributeDmgRate(attackerIndex, defenceIndex) end
---计算种族伤害
---@param a number 攻击方种族
---@param b number 防御方种族
---@return number @种族伤害
function Battle.CalcTribeRate(a, b) end
---计算当前战斗种族伤害
---@param aIndex number 攻击方index
---@param bIndex number 防御方index
---@return number @当前战斗种族伤害
function Battle.CalcTribeDmgRate(aIndex, bIndex) end
---解除WinEvent
---@param battleIndex number 战斗对象index
function Battle.UnsetWinEvent(battleIndex) end
---解除PVPWinEvent
---@param battleIndex number 战斗对象index
function Battle.UnsetPVPWinEvent(battleIndex) end
---设置当前回合数
---@param battleIndex number
---@param turn number 回合数
---@return number @返回1成功
function Battle.SetTurn(battleIndex, turn) end
---为当前处理的战斗添加信息(如释放技能喊话)
---@param msg string
function Battle.AppendBattleMsg(msg) end
---获取战斗信息
---@param battleIndex number 战斗对象index
---@param charIndex number
---@param dataline number 对应栏CONST.BATTLE_ENTRY_*
---@return number @战斗信息
function Battle.GetEntryData(battleIndex,charIndex,dataline) end
---设置战斗信息
---@param battleIndex number 战斗对象index
---@param charIndex number
---@param dataline number 对应栏CONST.BATTLE_ENTRY_*
---@param value number 对应栏信息
function Battle.SetEntryData(battleIndex,charIndex,dataline,value) end
---判定战斗是否是BOSS战
---@param BattleIndex number 战斗index
---@return number @0=否,1=是,其他失败
function Battle.IsBossBattle(BattleIndex) end
---获取战斗乱敏率
---@param BattleIndex number 战斗index
---@return number @返回是否启用
---@return number @概率
function Battle.GetDexRearrangeRate(BattleIndex) end
---设置战斗乱敏率
---@param BattleIndex number 战斗index
---@param rate number 0~100 乱敏概率
---@return number @成功返回1
function Battle.SetDexRearrangeRate(BattleIndex,rate) end
---获取战斗最大反击数
---@param BattleIndex number 战斗index
---@return number @返回是否启用
---@return number @数量
function Battle.GetMaxCounter(BattleIndex) end
---设置战斗最大反击数
---@param BattleIndex number 战斗index
---@param rate number 最大反击数
---@return number @成功返回1
function Battle.SetMaxCounter (BattleIndex,rate) end
---检查能否攻击对应位置
---@param charIndex number CharIndex
---@param pos number 位置,0-19
---@return number @可以攻击返回1,其他返回0
function Battle.PositionCheck (charIndex, pos) end
---获取自定义数据
---@param battleIndex number 目标的 对象index。
---@param dataIndex string 信息储存的位置,自定义
---@return string|number|nil @获得指定位置的字符串
function Battle.GetExtData(battleIndex, dataIndex) end
---设置自定义数据
---@param battleIndex number 目标的 对象index。
---@param dataIndex string 信息储存的位置,自定义
---@param val string|number|nil @获得指定位置的字符串
function Battle.SetExtData(battleIndex, dataIndex, val) end
---设置当前对象的战斗状态
---@param CharIndex number 目标的 对象index。
---@param Status number 状态类型 详见战属常量
---@param Val number 设定指定位置的属性
---@return number @失败返回-1,否则返回对应的值
function Battle.SetBattleCharacterStatus(CharIndex, Status, Val) end
---获取当前对象的战斗状态
---@param CharIndex number 目标的 对象index。
---@param Status number 状态类型 详见战属常量
---@return number @失败返回-1,否则返回对应的值
function Battle.GetBattleCharacterStatus(CharIndex, Status) end