def guide(inject): define = Inputer().requireText({ 'tips' : '请输入该战斗配置选项的宏定义开关名称 (Pandas_BattleConfig_的末尾部分)', 'prefix' : 'Pandas_BattleConfig_' }) # -------- option_name = Inputer().requireText({ 'tips' : '请输入该战斗配置选项的选项名称' }) # -------- var_name = Inputer().requireText({ 'tips' : '请输入该战斗配置选项的变量名称 (不填默认与选项名称一致)', 'default' : option_name.replace('.', '_') }) # -------- def_val = Inputer().requireInt({ 'tips' : '请输入默认值 (不填则默认为 0)', 'allow_empty' : True }) # -------- min_val = Inputer().requireInt({ 'tips' : '请输入允许设置的最小值 (不填则默认为 0)', 'allow_empty' : True }) # -------- max_val = Inputer().requireInt({ 'tips' : '请输入允许设置的最大值 (不填则默认为 INT_MAX)', 'allow_empty' : True }) if max_val == 0: max_val = 2147483647 if max_val <= min_val: Message.ShowError('最大值比最小值还要小, 这不合理...') Common.exit_with_pause(-1) def_val = str(def_val) min_val = str(min_val) max_val = 'INT_MAX' if max_val == 2147483647 else str(max_val) # -------- print('-' * 70) Message.ShowInfo('请确认建立的信息, 确认后将开始修改代码.') print('-' * 70) Message.ShowInfo('开关名称 : %s' % define) Message.ShowInfo('选项名称 : %s' % option_name) Message.ShowInfo('变量名称 : %s' % var_name) print('') Message.ShowInfo('选项默认值 : %s' % def_val) Message.ShowInfo('选项最小值 : %s' % min_val) Message.ShowInfo('选项最大值 : %s' % max_val) print('-' * 70) print('\n') nextstep = Inputer().requireBool({ 'tips' : '请仔细阅读上述信息, 确认要开始写入操作么?', 'default' : False }) if not nextstep: Message.ShowStatus('终止写入操作, 程序终止') Common.exit_with_pause(-1) # -------- Message.ShowStatus('开始将战斗配置选项写入到源代码...') options = { 'define' : define, 'option_name' : option_name, 'var_name' : var_name, 'def_val' : def_val, 'min_val' : min_val, 'max_val' : max_val } insert_battle_config(inject, options) Message.ShowStatus('已经成功写入到源代码, 请检查并完善必要的注释.') print('') print('=' * 70) print('') print('感谢您的使用, 战斗配置选项添加助手已经执行完毕'.center(50)) print('') print('=' * 70)
def guide(inject): eventlist = [{ 'name': 'Event 类型的标准事件', 'desc': '0 - Event 类型的标准事件, 不能被 processhalt 指令打断' }, { 'name': 'Filter 类型的过滤事件', 'desc': '1 - Filter 类型的过滤事件, 事件将会被立刻执行, 可以被 processhalt 指令打断' }, { 'name': 'Express 类型的特殊事件', 'desc': '2 - Express 类型的实时事件, 事件将会被立刻执行, 不能被 processhalt 指令打断' }] # 0 为 Event 类型的事件 | 1 为 Filter 类型的事件 | 2 为 Express 类型的事件 eventtype = Inputer().requireSelect({ 'prompt': '想创建的 NPC 事件类型', 'option_name': '事件类型', 'data': eventlist }) # -------- constant_prefix = 'NPCE_' if eventtype == 1: constant_prefix = 'NPCF_' elif eventtype == 2: constant_prefix = 'NPCX_' constant = Inputer().requireText({ 'tips': '请输入该 NPC 事件的 {prefix} 常量名称 (自动大写, {prefix}的末尾部分)'.format( prefix=constant_prefix), 'prefix': constant_prefix, 'upper': True }) if eventtype == 0: define = 'Pandas_NpcEvent_' + constant.replace(constant_prefix, '') eventvar = constant.replace(constant_prefix, '').lower() + '_event_name' elif eventtype == 1: define = 'Pandas_NpcFilter_' + constant.replace(constant_prefix, '') eventvar = constant.replace(constant_prefix, '').lower() + '_filter_name' elif eventtype == 2: define = 'Pandas_NpcExpress_' + constant.replace(constant_prefix, '') eventvar = constant.replace(constant_prefix, '').lower() + '_express_name' else: Message.ShowError('发现无效的事件类型, 请确认..') Common.exit_with_pause(-1) # -------- eventname = Inputer().requireText( {'tips': '请输入该 NPC 事件的名称 (以 On 开头, 末尾应为 Event | Filter | Express)'}) if not eventname.startswith('On'): Message.ShowError('无论是什么类型的事件, 事件名称必须以 On 开头 (严格区分大小写)') Common.exit_with_pause(-1) if eventtype == 0: if not eventname.endswith('Event'): Message.ShowError('Event 类型的事件, 事件名称必须以 Event 结尾 (严格区分大小写)') Common.exit_with_pause(-1) if eventtype == 1: if not eventname.endswith('Filter'): Message.ShowError('Filter 类型的事件, 事件名称必须以 Filter 结尾 (严格区分大小写)') Common.exit_with_pause(-1) if eventtype == 2: if not eventname.endswith('Express'): Message.ShowError('Express 类型的事件, 事件名称必须以 Express 结尾 (严格区分大小写)') Common.exit_with_pause(-1) # -------- eventdesc = Inputer().requireText( {'tips': '请输入该 NPC 事件的简短说明 (如: 当玩家杀死 MVP 魔物时触发事件)'}) # -------- print('-' * 70) Message.ShowInfo('请确认建立的信息, 确认后将开始修改代码.') print('-' * 70) Message.ShowInfo('事件类型 : %s' % eventlist[eventtype]['name']) Message.ShowInfo('常量名称 : %s' % constant) Message.ShowInfo('事件名称 : %s' % eventname) Message.ShowInfo('事件说明 : %s' % eventdesc) print('') Message.ShowInfo('开关名称 : %s' % define) Message.ShowInfo('变量名称 : %s' % eventvar) print('-' * 70) print('\n') nextstep = Inputer().requireBool({ 'tips': '请仔细阅读上述信息, 确认要开始写入操作么?', 'default': False }) if not nextstep: Message.ShowStatus('终止写入操作, 程序终止') Common.exit_with_pause(-1) # -------- Message.ShowStatus('开始将 NPC 事件写入到源代码...') options = { 'define': define, 'constant': constant, 'eventname': eventname, 'eventvar': eventvar, 'eventdesc': eventdesc } if eventtype == 0: insert_for_normal_npcevent(inject, options) elif eventtype == 1: insert_for_filter_npcevent(inject, options) elif eventtype == 2: insert_for_express_npcevent(inject, options) Message.ShowStatus('已经成功写入到源代码, 请检查并完善必要的注释.') print('') print('=' * 70) print('') print('感谢您的使用, NPC 事件添加助手已经执行完毕'.center(48)) print('') print('=' * 70)