设为首页收藏本站同能贴吧 切换语言 繁体中文
开启辅助访问 切换到窄版
扫描二维码关注官方公众号
返回列表
+ 发新帖
查看: 74|回复: 0

[转载发布] DoubleX RMMZ Targeting AI

[复制链接]
累计送礼:
0 个
累计收礼:
1 个
  • TA的每日心情
    开心
    4 天前
  • 签到天数: 209 天

    连续签到: 2 天

    [LV.7]常住居民III

    4593

    主题

    864

    回帖

    2万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    VIP
    7
    卡币
    23193
    OK点
    16
    推广点
    0
    同能卷
    50
    积分
    28680

    灌水之王

    发表于 3 天前 | 显示全部楼层 |阅读模式
    Purpose
    Lets you control some skills/items target selection AI behaviors by notetags

    Introduction
                    Code:       
    1. *    1. The default RMMZ only lets you control the targeting AI by tgr, which
    2. *       is probabilistic rather than deterministic
    3. *    2. This plugin lets you use some notetags on actors, classes, learnt
    4. *       skills/skills in action list, usable skills, posessed items, usable
    5. *       items, weapons, armors, enemies and states, to control the targeting
    6. *       AI by specifying some deterministic target filters
    7. *    3. Targets passing the filters will still be affected by the
    8. *       probabilitic tgr when there are more than 1 such targets
    9. *    4. This plugin only works for skills/items having 1 target, and it
    10. *       doesn't work well 1 random target either
    11. *    5. If a filter causes no target to pass, that filter will be discarded
    12. *       upon such use cases
    复制代码


    Video

    https://www.youtube.com/embed/qqcwK4NwnLM

    Games using this plugin
    None so far

    Spoiler: Parameters
                    Code:       
    1. * @param notetagDataTypePriorities
    2. * @type select[]
    3. * @option Data of the actor
    4. * @value actor
    5. * @option Data of the current class
    6. * @value class
    7. * @option Data of learnt skills/action list(Shouldn't be used with Data of usable skills)
    8. * @value skills
    9. * @option Data of usable skills(Shouldn't be used with Data of learnt skills)
    10. * @value usableSkills
    11. * @option Data of possessed items(Shouldn't be used with Data of usable items)
    12. * @value items
    13. * @option Data of usable items(Shouldn't be used with Data of possessed items)
    14. * @value usableItems
    15. * @option Data of the latest skill/item being used(Can double-count with skills/items/usableSkills/usableItems)
    16. * @value latestSkillItem
    17. * @option Data of equipped weapons
    18. * @value weapons
    19. * @option Data of equipped armors
    20. * @value armors
    21. * @option Data of the enemy
    22. * @value enemy
    23. * @option Data of effective states
    24. * @value states
    25. * @desc Sets data type priorities of all notetags in this plugin
    26. * You can use script calls/plugin commands to change this
    27. * @default ["latestSkillItem","states","enemy","armors","weapons","class","actor"]
    复制代码


    Spoiler: Notetags
                    Code:       
    1. *    ## Notetag Info
    2. *       1. Among all the same notetag types in the same data, all can be
    3. *          effective
    4. *       2. Each line can only have at most 1 notetag
    5. *       3. The following is the structure of all notetags in this plugin:
    6. *          - <doublex rmmz targeting ai contents>
    7. *          - <targeting ai contents>
    8. *          Where contents are in the form of type suffixes: entries
    9. *          Either of the above can be used, but the 1st one reduce the chance
    10. *          of causing other plugins to treat the notetags of this plugin as
    11. *          theirs, while the 2nd one is more user-friendly
    12. *          - type is one of the following:
    13. *            1. memWithAnyState
    14. *            2. memWithAllStates
    15. *            3. memWithoutAnyState
    16. *            4. memWithoutAllStates
    17. *            5. memWithAnyBuff
    18. *            6. memWithAllBuffs
    19. *            7. memWithoutAnyBuff
    20. *            8. memWithoutAllBuffs
    21. *            9. memWithAnyDebuff
    22. *            10. memWithAllDebuffs
    23. *            11. memWithoutAnyDebuff
    24. *            12. memWithoutAllDebuffs
    25. *            13. memWithAnySkill
    26. *            14. memWithAllSkills
    27. *            15. memWithoutAnySkill
    28. *            16. memWithoutAllSkills
    29. *            17. anyHighestStatMem
    30. *            18. allHighestStatsMem
    31. *            19. notAnyHighestStatMem
    32. *            20. notAllHighestStatsMem
    33. *            21. anyLowestStatMem
    34. *            22. allLowestStatsMem
    35. *            23. notAnyLowestStatMem
    36. *            24. notAllLowestStatsMem
    37. *            25. anyAboveStatMem
    38. *            26. allAboveStatMem
    39. *            27. anyBelowStatMem
    40. *            28. allBelowStatMem
    41. *            (Advanced)29. or
    42. *            (Search tag: NOTE_TYPE)
    43. *          - suffixes is the list of suffixes in the form of:
    44. *            suffix1 suffix2 suffix3 ... suffixn
    45. *            Where each suffix is either of the following:
    46. *            val(The notetag value will be used as-is)
    47. *            switch(The value of the game switch with id as the notetag value
    48. *                   will be used)
    49. *            var(The value of the game variable with id as the notetag value
    50. *                will be used)
    51. *            (Advanced)script(The value of the game variable with id as the
    52. *                            notetag value will be used as the contents of
    53. *                            the functions to be called upon using the
    54. *                            notetag)
    55. *          - entries is the list of entries in the form of:
    56. *            entry1, entry2, entry3, ..., entryn
    57. *            Where entryi must conform with the suffixi specifications
    58. *----------------------------------------------------------------------------
    59. *    # Actor/Class/Learnt Skills/Usable Skills/Posessed Items/Usable Items/
    60. *      Inputted Skill Or Item/Weapon/Armor/Enemy/States Notetags
    61. *      Notetags only apply to skills/items with Number as One in Scope
    62. *      Notetags causing the target list to be empty will be discard upon such
    63. *      use cases
    64. *      (Search tag: ALWAYS_HAS_TARGETS)
    65. *      1. memWithAnyState condSuffix stateIdsSuffix: condEntry, stateIdsEntry
    66. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    67. *           memWithAnyState(stateIds, mems)
    68. *           Where stateIds is the stateIdsEntry results and mems is the list
    69. *           of possible targets of the skill/item having this notetag
    70. *         - condSuffix can be val, switch or script
    71. *         - stateIdsSuffix can be val, var or script
    72. *         - The result of condEntry can be anything as only whether it's
    73. *           truthy matters
    74. *         - If the result of condEntry is falsy, this notetag will be
    75. *           discarded upon such use cases
    76. *         - The result of stateIdsEntry can be an Array of any natural number
    77. *         - If stateIdsSuffix is val, then stateIdsEntry should be written as
    78. *           stateId1|stateId2|stateId3|stateIdI|stateIdN
    79. *         - E.g.:
    80. *           <targeting ai memWithAnyState switch val: 1, 2|3> will restrict
    81. *           the list of targets to be those with state with id 2 or 3 if the
    82. *           game switch with id 1 is on
    83. *      2. memWithAllStates condSuffix stateIdsSuffix: condEntry, stateIdsEntry
    84. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    85. *           memWithAllStates(stateIds, mems)
    86. *           Where stateIds is the stateIdsEntry results and mems is the list
    87. *           of possible targets of the skill/item having this notetag
    88. *         - condSuffix can be val, switch or script
    89. *         - stateIdsSuffix can be val, var or script
    90. *         - The result of condEntry can be anything as only whether it's
    91. *           truthy matters
    92. *         - If the result of condEntry is falsy, this notetag will be
    93. *           discarded upon such use cases
    94. *         - The result of stateIdsEntry can be an Array of any natural number
    95. *         - If stateIdsSuffix is val, then stateIdsEntry should be written as
    96. *           stateId1|stateId2|stateId3|stateIdI|stateIdN
    97. *         - E.g.:
    98. *           <targeting ai memWithAllStates switch val: 1, 2|3> will restrict
    99. *           the list of targets to be those with state with id 2 and 3 if the
    100. *           game switch with id 1 is on
    101. *      3. memWithoutAnyState condSuffix stateIdsSuffix: condEntry, stateIdsEntry
    102. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    103. *           memWithoutAnyState(stateIds, mems)
    104. *           Where stateIds is the stateIdsEntry results and mems is the list
    105. *           of possible targets of the skill/item having this notetag
    106. *         - condSuffix can be val, switch or script
    107. *         - stateIdsSuffix can be val, var or script
    108. *         - The result of condEntry can be anything as only whether it's
    109. *           truthy matters
    110. *         - If the result of condEntry is falsy, this notetag will be
    111. *           discarded upon such use cases
    112. *         - The result of stateIdsEntry can be an Array of any natural number
    113. *         - If stateIdsSuffix is val, then stateIdsEntry should be written as
    114. *           stateId1|stateId2|stateId3|stateIdI|stateIdN
    115. *         - E.g.:
    116. *           <targeting ai memWithoutAnyState switch val: 1, 2|3> will
    117. *           restrict the list of targets to be those with state without id 2
    118. *           or 3 if the game switch with id 1 is on
    119. *      4. memWithoutAllStates condSuffix stateIdsSuffix: condEntry, stateIdsEntry
    120. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    121. *           memWithoutAllStates(stateIds, mems)
    122. *           Where stateIds is the stateIdsEntry results and mems is the list
    123. *           of possible targets of the skill/item having this notetag
    124. *         - condSuffix can be val, switch or script
    125. *         - stateIdsSuffix can be val, var or script
    126. *         - The result of condEntry can be anything as only whether it's
    127. *           truthy matters
    128. *         - If the result of condEntry is falsy, this notetag will be
    129. *           discarded upon such use cases
    130. *         - The result of stateIdsEntry can be an Array of any natural number
    131. *         - If stateIdsSuffix is val, then stateIdsEntry should be written as
    132. *           stateId1|stateId2|stateId3|stateIdI|stateIdN
    133. *         - E.g.:
    134. *           <targeting ai memWithoutAllStates switch val: 1, 2|3> will
    135. *           restrict the list of targets to be those with state without id 2
    136. *           and 3 if the game switch with id 1 is on
    137. *      5. memWithAnyBuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    138. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    139. *           memWithAnyBuff(paramIds, mems)
    140. *           Where paramIds is the paramIdsEntry results and mems is the list
    141. *           of possible targets of the skill/item having this notetag
    142. *         - condSuffix can be val, switch or script
    143. *         - paramIdsSuffix can be val, var or script
    144. *         - The result of condEntry can be anything as only whether it's
    145. *           truthy matters
    146. *         - If the result of condEntry is falsy, this notetag will be
    147. *           discarded upon such use cases
    148. *         - The result of paramIdsEntry can be an Array of any natural number
    149. *         - If paramIdsSuffix is val, then paramIdsEntry should be written as
    150. *           paramId1|paramId2|paramId3|paramIdI|paramIdN
    151. *         - E.g.:
    152. *           <targeting ai memWithAnyBuff switch val: 1, 2|3> will restrict
    153. *           the list of targets to be those with atk or def buff if the game
    154. *           switch with id 1 is on
    155. *      6. memWithAllBuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    156. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    157. *           memWithAllBuffs(paramIds, mems)
    158. *           Where paramIds is the paramIdsEntry results and mems is the list
    159. *           of possible targets of the skill/item having this notetag
    160. *         - condSuffix can be val, switch or script
    161. *         - paramIdsSuffix can be val, var or script
    162. *         - The result of condEntry can be anything as only whether it's
    163. *           truthy matters
    164. *         - If the result of condEntry is falsy, this notetag will be
    165. *           discarded upon such use cases
    166. *         - The result of paramIdsEntry can be an Array of any natural number
    167. *         - If paramIdsSuffix is val, then paramIdsEntry should be written as
    168. *           paramId1|paramId2|paramId3|paramIdI|paramIdN
    169. *         - E.g.:
    170. *           <targeting ai memWithAllBuffs switch val: 1, 2|3> will restrict
    171. *           the list of targets to be those with atk and def buff if the game
    172. *           switch with id 1 is on
    173. *      7. memWithoutAnyBuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    174. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    175. *           memWithoutAnyBuff(paramIds, mems)
    176. *           Where paramIds is the paramIdsEntry results and mems is the list
    177. *           of possible targets of the skill/item having this notetag
    178. *         - condSuffix can be val, switch or script
    179. *         - paramIdsSuffix can be val, var or script
    180. *         - The result of condEntry can be anything as only whether it's
    181. *           truthy matters
    182. *         - If the result of condEntry is falsy, this notetag will be
    183. *           discarded upon such use cases
    184. *         - The result of paramIdsEntry can be an Array of any natural number
    185. *         - If paramIdsSuffix is val, then paramIdsEntry should be written as
    186. *           paramId1|paramId2|paramId3|paramIdI|paramIdN
    187. *         - E.g.:
    188. *           <targeting ai memWithoutAnyBuff switch val: 1, 2|3> will
    189. *           the list of targets to be those without atk or def buff if the
    190. *           game switch with id 1 is on
    191. *      8. memWithoutAllBuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    192. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    193. *           memWithoutAllBuffs(paramIds, mems)
    194. *           Where paramIds is the paramIdsEntry results and mems is the list
    195. *           of possible targets of the skill/item having this notetag
    196. *         - condSuffix can be val, switch or script
    197. *         - paramIdsSuffix can be val, var or script
    198. *         - The result of condEntry can be anything as only whether it's
    199. *           truthy matters
    200. *         - If the result of condEntry is falsy, this notetag will be
    201. *           discarded upon such use cases
    202. *         - The result of paramIdsEntry can be an Array of any natural number
    203. *         - If paramIdsSuffix is val, then paramIdsEntry should be written as
    204. *           paramId1|paramId2|paramId3|paramIdI|paramIdN
    205. *         - E.g.:
    206. *           <targeting ai memWithoutAllBuffs switch val: 1, 2|3> will
    207. *           the list of targets to be those without atk and def buff if the
    208. *           game switch with id 1 is on
    209. *      9. memWithAnyDebuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    210. *         - Applies the following DoubleX RMMZ Unit Filters script call:
    211. *           memWithAnyDebuff(paramIds, mems)
    212. *           Where paramIds is the paramIdsEntry results and mems is the list
    213. *           of possible targets of the skill/item having this notetag
    214. *         - condSuffix can be val, switch or script
    215. *         - paramIdsSuffix can be val, var or script
    216. *         - The result of condEntry can be anything as only whether it's
    217. *           truthy matters
    218. *         - If the result of condEntry is falsy, this notetag will be
    219. *           discarded upon such use cases
    220. *         - The result of paramIdsEntry can be an Array of any natural number
    221. *         - If paramIdsSuffix is val, then paramIdsEntry should be written as
    222. *           paramId1|paramId2|paramId3|paramIdI|paramIdN
    223. *         - E.g.:
    224. *           <targeting ai memWithAnyDebuff switch val: 1, 2|3> will restrict
    225. *           the list of targets to be those with atk or def debuff if the
    226. *           game switch with id 1 is on
    227. *      10. memWithAllDebuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    228. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    229. *            memWithAllDebuffs(paramIds, mems)
    230. *            Where paramIds is the paramIdsEntry results and mems is the list
    231. *            of possible targets of the skill/item having this notetag
    232. *          - condSuffix can be val, switch or script
    233. *          - paramIdsSuffix can be val, var or script
    234. *          - The result of condEntry can be anything as only whether it's
    235. *            truthy matters
    236. *          - If the result of condEntry is falsy, this notetag will be
    237. *            discarded upon such use cases
    238. *          - The result of paramIdsEntry can be an Array of any natural
    239. *            number
    240. *          - If paramIdsSuffix is val, then paramIdsEntry should be written
    241. *            as paramId1|paramId2|paramId3|paramIdI|paramIdN
    242. *          - E.g.:
    243. *            <targeting ai memWithAllDebuffs switch val: 1, 2|3> will
    244. *            restrict the list of targets to be those with atk and def debuff
    245. *            if the game switch with id 1 is on
    246. *      11. memWithoutAnyDebuff condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    247. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    248. *            memWithoutAnyDebuff(paramIds, mems)
    249. *            Where paramIds is the paramIdsEntry results and mems is the list
    250. *            of possible targets of the skill/item having this notetag
    251. *          - condSuffix can be val, switch or script
    252. *          - paramIdsSuffix can be val, var or script
    253. *          - The result of condEntry can be anything as only whether it's
    254. *            truthy matters
    255. *          - If the result of condEntry is falsy, this notetag will be
    256. *            discarded upon such use cases
    257. *          - The result of paramIdsEntry can be an Array of any natural
    258. *            number
    259. *          - If paramIdsSuffix is val, then paramIdsEntry should be written
    260. *            as paramId1|paramId2|paramId3|paramIdI|paramIdN
    261. *          - E.g.:
    262. *            <targeting ai memWithoutAnyDebuff switch val: 1, 2|3> will
    263. *            restrict the list of targets to be those without atk or def
    264. *            debuff if the game switch with id 1 is on
    265. *      12. memWithoutAllDebuffs condSuffix paramIdsSuffix: condEntry, paramIdsEntry
    266. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    267. *            memWithoutAllDebuffs(paramIds, mems)
    268. *            Where paramIds is the paramIdsEntry results and mems is the list
    269. *            of possible targets of the skill/item having this notetag
    270. *          - condSuffix can be val, switch or script
    271. *          - paramIdsSuffix can be val, var or script
    272. *          - The result of condEntry can be anything as only whether it's
    273. *            truthy matters
    274. *          - If the result of condEntry is falsy, this notetag will be
    275. *            discarded upon such use cases
    276. *          - The result of paramIdsEntry can be an Array of any natural
    277. *            number
    278. *          - If paramIdsSuffix is val, then paramIdsEntry should be written
    279. *            as paramId1|paramId2|paramId3|paramIdI|paramIdN
    280. *          - E.g.:
    281. *            <targeting ai memWithoutAllDebuffs switch val: 1, 2|3> will
    282. *            restrict the list of targets to be those without atk and def
    283. *            debuff if the game switch with id 1 is on
    284. *      13. memWithAnySkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    285. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    286. *            memWithAnySkill(skillIds, mems)
    287. *            Where skillIds is the skillIdsEntry results and mems is the list
    288. *            of possible targets of the skill/item having this notetag
    289. *          - condSuffix can be val, switch or script
    290. *          - skillIdsSuffix can be val, var or script
    291. *          - The result of condEntry can be anything as only whether it's
    292. *            truthy matters
    293. *          - If the result of condEntry is falsy, this notetag will be
    294. *            discarded upon such use cases
    295. *          - The result of skillIdsEntry can be an Array of any natural
    296. *            number
    297. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    298. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    299. *          - E.g.:
    300. *            <targeting ai memWithAnySkill switch val: 1, 2|3> will restrict
    301. *            the list of targets to be those with skill with id 2 or 3 if the
    302. *            game switch with id 1 is on
    303. *      14. memWithAllSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    304. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    305. *            memWithAllSkills(skillIds, mems)
    306. *            Where skillIds is the skillIdsEntry results and mems is the list
    307. *            of possible targets of the skill/item having this notetag
    308. *          - condSuffix can be val, switch or script
    309. *          - skillIdsSuffix can be val, var or script
    310. *          - The result of condEntry can be anything as only whether it's
    311. *            truthy matters
    312. *          - If the result of condEntry is falsy, this notetag will be
    313. *            discarded upon such use cases
    314. *          - The result of skillIdsEntry can be an Array of any natural
    315. *            number
    316. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    317. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    318. *          - E.g.:
    319. *            <targeting ai memWithAllSkills switch val: 1, 2|3> will
    320. *            restrict the list of targets to be those with skill with id 2
    321. *            and 3 if the game switch with id 1 is on
    322. *      15. memWithoutAnySkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    323. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    324. *            memWithoutAnySkill(skillIds, mems)
    325. *            Where skillIds is the skillIdsEntry results and mems is the list
    326. *            of possible targets of the skill/item having this notetag
    327. *          - condSuffix can be val, switch or script
    328. *          - skillIdsSuffix can be val, var or script
    329. *          - The result of condEntry can be anything as only whether it's
    330. *            truthy matters
    331. *          - If the result of condEntry is falsy, this notetag will be
    332. *            discarded upon such use cases
    333. *          - The result of skillIdsEntry can be an Array of any natural
    334. *            number
    335. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    336. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    337. *          - E.g.:
    338. *            <targeting ai memWithoutAnySkill switch val: 1, 2|3> will
    339. *            restrict the list of targets to be those with skill without id 2
    340. *            or 3 if the game switch with id 1 is on
    341. *      16. memWithoutAllSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    342. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    343. *            memWithoutAllSkills(skillIds, mems)
    344. *            Where skillIds is the skillIdsEntry results and mems is the list
    345. *            of possible targets of the skill/item having this notetag
    346. *          - condSuffix can be val, switch or script
    347. *          - skillIdsSuffix can be val, var or script
    348. *          - The result of condEntry can be anything as only whether it's
    349. *            truthy matters
    350. *          - If the result of condEntry is falsy, this notetag will be
    351. *            discarded upon such use cases
    352. *          - The result of skillIdsEntry can be an Array of any natural
    353. *            number
    354. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    355. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    356. *          - E.g.:
    357. *            <targeting ai memWithoutAllSkills switch val: 1, 2|3> will
    358. *            restrict the list of targets to be those with skill without id 2
    359. *            and 3 if the game switch with id 1 is on
    360. *      17. anyHighestStatMem condSuffix statsSuffix: condEntry, statsEntry
    361. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    362. *            anyHighestStatMem(stats, mems)
    363. *            Where stats is the statsEntry results and mems is the list of
    364. *            possible targets of the skill/item having this notetag
    365. *          - condSuffix can be val, switch or script
    366. *          - statsSuffix can be val, var or script
    367. *          - The result of condEntry can be anything as only whether it's
    368. *            truthy matters
    369. *          - If the result of condEntry is falsy, this notetag will be
    370. *            discarded upon such use cases
    371. *          - The result of statsEntry can be an Array of any natural number
    372. *          - If statsSuffix is val, then statsEntry should be written as
    373. *            stat1|stat2|stat3|statI|statN
    374. *          - E.g.:
    375. *            <targeting ai anyHighestStatMem switch val: 1, hp|mp> will
    376. *            restrict the list of targets to be those with highest hp or mp
    377. *            if the game switch with id 1 is on
    378. *      18. allHighestStatsMem condSuffix statsSuffix: condEntry, statsEntry
    379. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    380. *            allHighestStatsMem(stats, mems)
    381. *            Where stats is the statsEntry results and mems is the list of
    382. *            possible targets of the skill/item having this notetag
    383. *          - condSuffix can be val, switch or script
    384. *          - statsSuffix can be val, var or script
    385. *          - The result of condEntry can be anything as only whether it's
    386. *            truthy matters
    387. *          - If the result of condEntry is falsy, this notetag will be
    388. *            discarded upon such use cases
    389. *          - The result of statsEntry can be an Array of any natural number
    390. *          - If statsSuffix is val, then statsEntry should be written as
    391. *            stat1|stat2|stat3|statI|statN
    392. *          - E.g.:
    393. *            <targeting ai allHighestStatsMem switch val: 1, hp|mp> will
    394. *            restrict the list of targets to be those with highest hp and mp
    395. *            if the game switch with id 1 is on
    396. *      19. notAnyHighestStatMem condSuffix statsSuffix: condEntry, statsEntry
    397. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    398. *            notAnyHighestStatMem(stats, mems)
    399. *            Where stats is the statsEntry results and mems is the list of
    400. *            possible targets of the skill/item having this notetag
    401. *          - condSuffix can be val, switch or script
    402. *          - statsSuffix can be val, var or script
    403. *          - The result of condEntry can be anything as only whether it's
    404. *            truthy matters
    405. *          - If the result of condEntry is falsy, this notetag will be
    406. *            discarded upon such use cases
    407. *          - The result of statsEntry can be an Array of any natural number
    408. *          - If statsSuffix is val, then statsEntry should be written as
    409. *            stat1|stat2|stat3|statI|statN
    410. *          - E.g.:
    411. *            <targeting ai notAnyHighestStatMem switch val: 1, hp|mp> will
    412. *            restrict the list of targets to be those without highest hp or
    413. *            mp if the game switch with id 1 is on
    414. *      20. notAllHighestStatsMem condSuffix statsSuffix: condEntry, statsEntry
    415. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    416. *            notAllHighestStatsMem(stats, mems)
    417. *            Where stats is the statsEntry results and mems is the list of
    418. *            possible targets of the skill/item having this notetag
    419. *          - condSuffix can be val, switch or script
    420. *          - statsSuffix can be val, var or script
    421. *          - The result of condEntry can be anything as only whether it's
    422. *            truthy matters
    423. *          - If the result of condEntry is falsy, this notetag will be
    424. *            discarded upon such use cases
    425. *          - The result of statsEntry can be an Array of any natural
    426. *            number
    427. *          - If statsSuffix is val, then statsEntry should be written as
    428. *            stat1|stat2|stat3|statI|statN
    429. *          - E.g.:
    430. *            <targeting ai notAllHighestStatsMem switch val: 1, hp|mp> will
    431. *            restrict the list of targets to be those without highest hp and
    432. *            mp if the game switch with id 1 is on
    433. *      21. anyLowestStatMem condSuffix statsSuffix: condEntry, statsEntry
    434. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    435. *            anyLowestStatMem(stats, mems)
    436. *            Where stats is the statsEntry results and mems is the list of
    437. *            possible targets of the skill/item having this notetag
    438. *          - condSuffix can be val, switch or script
    439. *          - statsSuffix can be val, var or script
    440. *          - The result of condEntry can be anything as only whether it's
    441. *            truthy matters
    442. *          - If the result of condEntry is falsy, this notetag will be
    443. *            discarded upon such use cases
    444. *          - The result of statsEntry can be an Array of any natural number
    445. *          - If statsSuffix is val, then statsEntry should be written as
    446. *            stat1|stat2|stat3|statI|statN
    447. *          - E.g.:
    448. *            <targeting ai anyLowestStatMem switch val: 1, hp|mp> will
    449. *            restrict the list of targets to be those with highest hp or mp
    450. *            if the game switch with id 1 is on
    451. *      22. allLowestStatsMem condSuffix statsSuffix: condEntry, statsEntry
    452. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    453. *            allLowestStatsMem(stats, mems)
    454. *            Where stats is the statsEntry results and mems is the list of
    455. *            possible targets of the skill/item having this notetag
    456. *          - condSuffix can be val, switch or script
    457. *          - statsSuffix can be val, var or script
    458. *          - The result of condEntry can be anything as only whether it's
    459. *            truthy matters
    460. *          - If the result of condEntry is falsy, this notetag will be
    461. *            discarded upon such use cases
    462. *          - The result of statsEntry can be an Array of any natural number
    463. *          - If statsSuffix is val, then statsEntry should be written as
    464. *            stat1|stat2|stat3|statI|statN
    465. *          - E.g.:
    466. *            <targeting ai allLowestStatsMem switch val: 1, hp|mp> will
    467. *            restrict the list of targets to be those with highest hp and mp
    468. *            if the game switch with id 1 is on
    469. *      23. notAnyLowestStatMem condSuffix statsSuffix: condEntry, statsEntry
    470. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    471. *            notAnyLowestStatMem(stats, mems)
    472. *            Where stats is the statsEntry results and mems is the list of
    473. *            possible targets of the skill/item having this notetag
    474. *          - condSuffix can be val, switch or script
    475. *          - statsSuffix can be val, var or script
    476. *          - The result of condEntry can be anything as only whether it's
    477. *            truthy matters
    478. *          - If the result of condEntry is falsy, this notetag will be
    479. *            discarded upon such use cases
    480. *          - The result of statsEntry can be an Array of any natural number
    481. *          - If statsSuffix is val, then statsEntry should be written as
    482. *            stat1|stat2|stat3|statI|statN
    483. *          - E.g.:
    484. *            <targeting ai notAnyLowestStatMem switch val: 1, hp|mp> will
    485. *            restrict the list of targets to be those without highest hp or
    486. *            mp if the game switch with id 1 is on
    487. *      24. notAllLowestStatsMem condSuffix statsSuffix: condEntry, statsEntry
    488. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    489. *            notAllLowestStatsMem(stats, mems)
    490. *            Where stats is the statsEntry results and mems is the list of
    491. *            possible targets of the skill/item having this notetag
    492. *          - condSuffix can be val, switch or script
    493. *          - statsSuffix can be val, var or script
    494. *          - The result of condEntry can be anything as only whether it's
    495. *            truthy matters
    496. *          - If the result of condEntry is falsy, this notetag will be
    497. *            discarded upon such use cases
    498. *          - The result of statsEntry can be an Array of any natural
    499. *            number
    500. *          - If statsSuffix is val, then statsEntry should be written as
    501. *            stat1|stat2|stat3|statI|statN
    502. *          - E.g.:
    503. *            <targeting ai notAllLowestStatsMem switch val: 1, hp|mp> will
    504. *            restrict the list of targets to be those without highest hp and
    505. *            mp if the game switch with id 1 is on
    506. *      25. anyAboveStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
    507. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    508. *            anyLowestStatMem(stats, val, mems)
    509. *            Where stats is the statsEntry results, val is the valEntry
    510. *            results, and mems is the list of possible targets of the
    511. *            skill/item having this notetag
    512. *          - condSuffix can be val, switch or script
    513. *          - statsSuffix can be val, var or script
    514. *          - valSuffix can be val, var or script
    515. *          - The result of condEntry can be anything as only whether it's
    516. *            truthy matters
    517. *          - If the result of condEntry is falsy, this notetag will be
    518. *            discarded upon such use cases
    519. *          - The result of statsEntry can be an Array of any natural number
    520. *          - If statsSuffix is val, then statsEntry should be written as
    521. *            stat1|stat2|stat3|statI|statN
    522. *          - The result of valEntry can be any number
    523. *          - E.g.:
    524. *            <targeting ai anyAboveStatMem switch val var: 1, hp|mp, 2> will
    525. *            restrict the list of targets to be those with hp or mp above the
    526. *            value of the game variable with id 2 if the game switch with id
    527. *            1 is on
    528. *      26. allAboveStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
    529. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    530. *            allAboveStatMem(stats, val, mems)
    531. *            Where stats is the statsEntry results, val is the valEntry
    532. *            results, and mems is the list of possible targets of the
    533. *            skill/item having this notetag
    534. *          - condSuffix can be val, switch or script
    535. *          - statsSuffix can be val, var or script
    536. *          - valSuffix can be val, var or script
    537. *          - The result of condEntry can be anything as only whether it's
    538. *            truthy matters
    539. *          - If the result of condEntry is falsy, this notetag will be
    540. *            discarded upon such use cases
    541. *          - The result of statsEntry can be an Array of any natural number
    542. *          - If statsSuffix is val, then statsEntry should be written as
    543. *            stat1|stat2|stat3|statI|statN
    544. *          - The result of valEntry can be any number
    545. *          - E.g.:
    546. *            <targeting ai allAboveStatMem switch val var: 1, hp|mp, 2> will
    547. *            restrict the list of targets to be those with hp and mp above
    548. *            the value of the game variable with id 2 if the game switch with
    549. *            id 1 is on
    550. *      27. anyBelowStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
    551. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    552. *            anyLowestStatMem(stats, val, mems)
    553. *            Where stats is the statsEntry results, val is the valEntry
    554. *            results, and mems is the list of possible targets of the
    555. *            skill/item having this notetag
    556. *          - condSuffix can be val, switch or script
    557. *          - statsSuffix can be val, var or script
    558. *          - valSuffix can be val, var or script
    559. *          - The result of condEntry can be anything as only whether it's
    560. *            truthy matters
    561. *          - If the result of condEntry is falsy, this notetag will be
    562. *            discarded upon such use cases
    563. *          - The result of statsEntry can be an Array of any natural number
    564. *          - If statsSuffix is val, then statsEntry should be written as
    565. *            stat1|stat2|stat3|statI|statN
    566. *          - The result of valEntry can be any number
    567. *          - E.g.:
    568. *            <targeting ai anyBelowStatMem switch val var: 1, hp|mp, 2> will
    569. *            restrict the list of targets to be those with hp or mp below the
    570. *            value of the game variable with id 2 if the game switch with id
    571. *            1 is on
    572. *      28. allBelowStatMem condSuffix statsSuffix valSuffix: condEntry, statsEntry, valEntry
    573. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    574. *            allBelowStatMem(stats, val, mems)
    575. *            Where stats is the statsEntry results, val is the valEntry
    576. *            results, and mems is the list of possible targets of the
    577. *            skill/item having this notetag
    578. *          - condSuffix can be val, switch or script
    579. *          - statsSuffix can be val, var or script
    580. *          - valSuffix can be val, var or script
    581. *          - The result of condEntry can be anything as only whether it's
    582. *            truthy matters
    583. *          - If the result of condEntry is falsy, this notetag will be
    584. *            discarded upon such use cases
    585. *          - The result of statsEntry can be an Array of any natural number
    586. *          - If statsSuffix is val, then statsEntry should be written as
    587. *            stat1|stat2|stat3|statI|statN
    588. *          - The result of valEntry can be any number
    589. *          - E.g.:
    590. *            <targeting ai allBelowStatMem switch val var: 1, hp|mp, 2> will
    591. *            restrict the list of targets to be those with hp and mp below
    592. *            the value of the game variable with id 2 if the game switch with
    593. *            id 1 is on
    594. *      (Advanced)29. or condSuffix: condEntry
    595. *          - Acts as the or operator among the list of effective notetags in
    596. *            this plugin upon making action targets
    597. *          - condSuffix can be val, switch or script
    598. *          - The result of condEntry can be anything as only whether it's
    599. *            truthy matters
    600. *          - If the result of condEntry is falsy, this notetag will be
    601. *            discarded upon such use cases
    602. *          - All filtered target groups separated by the or notetags will be
    603. *            joined by the set union operations
    604. *          - E.g.:
    605. *            If the battler has an effective state with the following
    606. *            effective notetags in this plugin:
    607. *            <targeting ai anyBelowStatMem switch val var: 1, hp|mp, 2>
    608. *            <targeting ai allBelowStatMem switch val var: 3, mhp|mmp, 4>
    609. *            <targeting ai or val: true>
    610. *            <targeting ai anyAboveStatMem switch val var: 5, atk|def, 6>
    611. *            <targeting ai allAboveStatMem switch val var: 7, mat|mdf, 8>
    612. *            <targeting ai or val: false>
    613. *            <targeting ai notAnyLowestStatsMem switch val: 9, agi|luk>
    614. *            <targeting ai notAllLowestStatsMem switch val: 10, hit|eva>
    615. *            And if that battler has the following effective notetags in this
    616. *            plugin:
    617. *            <targeting ai notAnyHighestStatsMem switch val: 11, cri|cev>
    618. *            <targeting ai notAllHighestStatsMem switch val: 12, mev|mrf>
    619. *            And if the inputted skill/item has the following effective
    620. *            notetags in this plugin:
    621. *            <targeting ai or val: true>
    622. *            <targeting ai anyHighestStatMem switch val: 13, cnt|hrg>
    623. *            <targeting ai allHighestStatMem switch val: 14, mrg|trg>
    624. *            Then if the notetag data type priorities are states, battler,
    625. *            latest skill/item, the inputted actions will select targets
    626. *            among those filtered by:
    627. *            <targeting ai anyBelowStatMem switch val var: 1, hp|mp, 2>
    628. *            <targeting ai allBelowStatMem switch val var: 3, mhp|mmp, 4>
    629. *            Or:
    630. *            <targeting ai anyAboveStatMem switch val var: 5, atk|def, 6>
    631. *            <targeting ai allAboveStatMem switch val var: 7, mat|mdf, 8>
    632. *            <targeting ai notAnyLowestStatsMem switch val: 9, agi|luk>
    633. *            <targeting ai notAllLowestStatsMem switch val: 10, hit|eva>
    634. *            <targeting ai notAnyHighestStatsMem switch val: 11, cri|cev>
    635. *            <targeting ai notAllHighestStatsMem switch val: 12, mev|mrf>
    636. *            Or:
    637. *            <targeting ai anyHighestStatMem switch val: 13, cnt|hrg>
    638. *            <targeting ai allHighestStatMem switch val: 14, mrg|trg>
    639. *      (v1.01a+)30. memWithAnyUsableSkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    640. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    641. *            memWithAnyUsableSkill(skillIds, mems)
    642. *            Where skillIds is the skillIdsEntry results and mems is the list
    643. *            of possible targets of the skill/item having this notetag
    644. *          - condSuffix can be val, switch or script
    645. *          - skillIdsSuffix can be val, var or script
    646. *          - The result of condEntry can be anything as only whether it's
    647. *            truthy matters
    648. *          - If the result of condEntry is falsy, this notetag will be
    649. *            discarded upon such use cases
    650. *          - The result of skillIdsEntry can be an Array of any natural
    651. *            number
    652. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    653. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    654. *          - E.g.:
    655. *            <targeting ai memWithAnyUsableSkill switch val: 1, 2|3> will
    656. *            restrict the list of targets to be those with usable skill with
    657. *            id 2 or 3 if the game switch with id 1 is on
    658. *      (v1.01a+)31. memWithAllUsableSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    659. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    660. *            memWithAllUsableSkills(skillIds, mems)
    661. *            Where skillIds is the skillIdsEntry results and mems is the list
    662. *            of possible targets of the skill/item having this notetag
    663. *          - condSuffix can be val, switch or script
    664. *          - skillIdsSuffix can be val, var or script
    665. *          - The result of condEntry can be anything as only whether it's
    666. *            truthy matters
    667. *          - If the result of condEntry is falsy, this notetag will be
    668. *            discarded upon such use cases
    669. *          - The result of skillIdsEntry can be an Array of any natural
    670. *            number
    671. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    672. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    673. *          - E.g.:
    674. *            <targeting ai memWithAllUsableSkills switch val: 1, 2|3> will
    675. *            restrict the list of targets to be those with usable skill with
    676. *            id 2 and 3 if the game switch with id 1 is on
    677. *      (v1.01a+)32. memWithoutAnyUsableSkill condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    678. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    679. *            memWithoutAnyUsableSkill(skillIds, mems)
    680. *            Where skillIds is the skillIdsEntry results and mems is the list
    681. *            of possible targets of the skill/item having this notetag
    682. *          - condSuffix can be val, switch or script
    683. *          - skillIdsSuffix can be val, var or script
    684. *          - The result of condEntry can be anything as only whether it's
    685. *            truthy matters
    686. *          - If the result of condEntry is falsy, this notetag will be
    687. *            discarded upon such use cases
    688. *          - The result of skillIdsEntry can be an Array of any natural
    689. *            number
    690. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    691. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    692. *          - E.g.:
    693. *            <targeting ai memWithoutAnyUsableSkill switch val: 1, 2|3> will
    694. *            restrict the list of targets to be those with usable skill
    695. *            without id 2 or 3 if the game switch with id 1 is on
    696. *      (v1.01a+)33. memWithoutAllUsableSkills condSuffix skillIdsSuffix: condEntry, skillIdsEntry
    697. *          - Applies the following DoubleX RMMZ Unit Filters script call:
    698. *            memWithoutAllUsableSkills(skillIds, mems)
    699. *            Where skillIds is the skillIdsEntry results and mems is the list
    700. *            of possible targets of the skill/item having this notetag
    701. *          - condSuffix can be val, switch or script
    702. *          - skillIdsSuffix can be val, var or script
    703. *          - The result of condEntry can be anything as only whether it's
    704. *            truthy matters
    705. *          - If the result of condEntry is falsy, this notetag will be
    706. *            discarded upon such use cases
    707. *          - The result of skillIdsEntry can be an Array of any natural
    708. *            number
    709. *          - If skillIdsSuffix is val, then skillIdsEntry should be written
    710. *            as skillId1|skillId2|skillId3|skillIdI|skillIdN
    711. *          - E.g.:
    712. *            <targeting ai memWithoutAllUsableSkills switch val: 1, 2|3> will
    713. *            restrict the list of targets to be those with usable skill
    714. *            without id 2 and 3 if the game switch with id 1 is on
    复制代码


    Spoiler: Script Calls
                    Code:       
    1. *    # Parameter manipulations
    2. *      1. $gameSystem.setTargetingAIParam(param, val)
    3. *         - Sets the fully parsed value of the parameter param as val
    4. *         - param must be the name of a valid parameter of this plugin
    5. *         - val must be a valid new fully parsed value of the parameter param
    6. *         - Such parameter value changes will be saved
    7. *         - E.g.:
    8. *           $gameSystem.setTargetingAIParam("notetagDataTypePriorities", [
    9. *               "states",
    10. *               "armors",
    11. *               "weapons",
    12. *               "class",
    13. *               "actor",
    14. *               "enemy"
    15. *           ]) sets the fully parsed value of the parameter
    16. *           notetagDataTypePriorities as
    17. *           ["states", "armors", "weapons", "class", "actor", "enemy"]
    18. *      2. $gameSystem.targetingAIParam(param)
    19. *         - Returns the fully parsed value of the parameter param
    20. *         - param must be the name of a valid parameter of this plugin
    21. *         - E.g.:
    22. *           $gameSystem.targetingAIParam("notetagDataTypePriorities") returns
    23. *           the fully parsed value of the parameter
    24. *           notetagDataTypePriorities, which should be
    25. *           ["states", "armors", "weapons", "class", "actor", "enemy"] if it
    26. *           uses its default parameter value
    复制代码


    Spoiler: Plugin Commands
                    Code:       
    1. *      1. setTargetingAIParam param val
    2. *         - Applies the script call
    3. *           $gameSystem.setTargetingAIParam(param, val)
    复制代码


    Spoiler: Author Notes
                    Code:       
    1. *      1. All notetags of this plugins are just applying script calls in
    2. *         DoubleX RMMZ Unit Filters unit manipulation script calls, so you're
    3. *         highly encouraged and recommended to have a basic knowledge on what
    4. *         they do in general, even though it's not strictly needed to use
    5. *         this plugin
    复制代码


    Spoiler: Prerequisites
    Plugins:
    1. DoubleX RMMZ Enhanced Codebase
    2. DoubleX RMMZ Unit Filters
    Abilities:
    1. Nothing special for most ordinary cases
    2. Little RMMZ plugin development proficiency to fully utilize this(Elementary Javascript exposures being able to write beginner codes up to 300LoC scale)
    Spoiler: Terms Of Use
                    Code:       
    1. *      1. Commercial use's always allowed and crediting me's always optional.
    2. *      2. You shall keep this plugin's Plugin Info part's contents intact.
    3. *      3. You shalln't claim that this plugin's written by anyone other than
    4. *         DoubleX or my aliases. I always reserve the right to deny you from
    5. *         using any of my plugins anymore if you've violated this.
    6. *      4. If you repost this plugin directly(rather than just linking back),
    7. *         you shall inform me of these direct repostings. I always reserve
    8. *         the right to request you to edit those direct repostings.
    9. *      5. CC BY 4.0, except those conflicting with any of the above, applies
    10. *         to this plugin, unless you've my permissions not needing follow so.
    11. *      6. I always reserve the right to deny you from using this plugin
    12. *         anymore if you've violated any of the above.
    复制代码


    Spoiler: Contributors
                    Code:       
    1. *      Authors:
    2. *      1. DoubleX
    3. *      Plugin Development Collaborators:
    4. *      - None So Far
    5. *      Bug Reporters:
    6. *      - None So Far
    7. *      Compatibility Issue Raisers:
    8. *      - None So Far
    9. *      Feature Requesters:
    10. *      - None So Far
    复制代码


    Spoiler: Changelog
                    Code:       
    1. *      { codebase: "1.1.0", plugin: "v1.01b" }(2020 Dec 2 GMT 0400):
    2. *      1. You no longer have to edit the value of
    3. *         DoubleX_RMMZ.Targeting_AI.PLUGIN_NAME when changing this plugin
    4. *         file name
    5. *      { codebase: "1.0.0", plugin: "v1.01a" }(2020 Aug 28 GMT 0100):
    6. *      1. Added the following notetags -
    7. *         - memWithAnyUsableSkill
    8. *         - memWithAllUsableSkills
    9. *         - memWithoutAnyUsableSkill
    10. *         - memWithoutAllUsableSkills
    11. *      { codebase: "1.0.0", plugin: "v1.00a" }(2020 Aug 25 GMT 0400):
    12. *      1. 1st version of this plugin finished
    复制代码


    Download Link
    Demo Link


    本贴来自国际rpgmaker官方论坛作者:DoubleX处,因国际论坛即将永久关站,为了存档多年珍贵资料,署名转载到本论坛存档,由于官方帖子为英文原帖,需要中文翻译请点击论坛顶部切换语言为中文就可以将帖子翻译成中文浏览,方便大家随时查看,原文地址:https://forums.rpgmakerweb.com/threads/doublex-rmmz-targeting-ai.126019/
    天天去同能,天天有童年!
    回复 送礼论坛版权

    使用道具 举报

    文明发言,和谐互动
    文明发言,和谐互动
    高级模式
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    简体中文
    繁體中文
    English(英语)
    日本語(日语)
    Deutsch(德语)
    Русский язык(俄语)
    بالعربية(阿拉伯语)
    Türkçe(土耳其语)
    Português(葡萄牙语)
    ภาษาไทย(泰国语)
    한어(朝鲜语/韩语)
    Français(法语)
    关闭

    幸运抽奖

    社区每日抽奖来袭,快来试试你是欧皇还是非酋~

    立即查看

    聊天机器人
    Loading...

    QQ|Archiver|手机版|小黑屋|同能RPG制作大师 ( 沪ICP备12027754号-3 )

    GMT+8, 2026-7-16 14:17 , Processed in 0.082764 second(s), 54 queries .

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

    快速回复 返回顶部 返回列表