-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmod_modsettingsexample.py
141 lines (130 loc) · 4.82 KB
/
mod_modsettingsexample.py
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
import BigWorld
import game
import Keys
from gui.modsSettingsApi import g_modsSettingsApi
modLinkage = 'test_iamspotted'
template = {
'modDisplayName': 'Мод «Я обнаружен»',
'enabled': True,
'column1': [
{
'type': 'CheckBox',
'text': 'Показать на миникарте квадрат засвета',
'value': True,
'tooltip': '{HEADER}Показать на миникарте квадрат засвета{/HEADER}{BODY}При вашем обнаружении мод автоматические кликнет на миникарте в квадрат где вы находитесь{/BODY}',
'varName': 'minimapClick'
},
{
'type': 'CheckBox',
'text': 'Сообщить в командный чат «Нужна помощь!»',
'value': True,
'tooltip': '{HEADER}Сообщить в командный чат «Нужна помощь!»{/HEADER}{BODY}При вашем обнаружении мод автоматические отправит команду «Нужна помощь!» вашим союзникам{/BODY}',
'varName': 'neadHelp'
},
{
'type': 'Dropdown',
'text': 'Озвучка «Шестого чувства»',
'tooltip': '{HEADER}Озвучка «Шестого чувства»{/HEADER}{BODY}При срабатывании навыка «Шестого чувства» будет воспроизводиться один из нескольких вариантов озвучки.{/BODY}',
'options': [
{ 'label': 'Стандартная' },
{ 'label': 'Тихая' },
{ 'label': 'Громкая' }
],
'button': {
'width': 30,
'height': 23,
'offsetTop': 0,
'offsetLeft': 0,
'iconSource': '../maps/icons/buttons/sound.png',
'iconOffsetTop': 0,
'iconOffsetLeft': 1,
},
'width': 200,
'value': 0,
'varName': 'sixthSenseSound'
}
],
'column2': [
{
'type': 'Slider',
'text': 'Число живых союзников для активации мода',
'minimum': 1,
'maximum': 15,
'snapInterval': 1,
'value': 5,
'format': '{{value}}',
'varName': 'aliveCounter'
},
{
'type': 'CheckBox',
'text': 'Всегда оповещать о засвете при игре на артиллерии',
'tooltip': '{HEADER}Всегда оповещать о засвете при игре на артиллерии{/HEADER}{BODY}Если вы вишли в бой на артилерии, мод будет всегда оповещать о вашем засвете независимо от выставленного лимита на число оставшехся в живих союзниках{/BODY}',
'value': True,
'varName': 'alwaysOnArty'
},
{
'type': 'HotKey',
'text': 'Включение/отключение по кнопке',
'tooltip': '{HEADER}Включение/отключение по кнопке{/HEADER}{BODY}Активирует либо деактивирует модификацию при нажатии кнопки/комбинации кнопок{/BODY}',
'value': [Keys.KEY_J],
'varName': 'stateKeySet'
},
{
'type': 'NumericStepper',
'text': 'NumericStepper test',
'tooltip': '{HEADER}NumericStepper tooltip header{/HEADER}{BODY}NumericStepper tooltip body{/BODY}',
'minimum': 1,
'maximum': 15,
'snapInterval': 0.1,
'value': 5,
'varName': 'numStepperTest'
},
{
'type': 'ColorChoice',
'text': 'ColorChoice test',
'tooltip': '{HEADER}ColorChoice tooltip header{/HEADER}{BODY}ColorChoice tooltip body{/BODY}',
'value': "FFFFFF",
'varName': 'colorChoice'
},
{
'type': 'RangeSlider',
'text': 'RangeSlider test',
'divisionLabelPostfix': '',
'divisionLabelStep': 50,
'divisionStep': 50,
'maximum': 100,
'minimum': 0,
'minRangeDistance': 10,
'snapInterval': 1,
'value': [20, 50],
'varName': 'rangeSlider'
},
]
}
settings = {
'sixthSenseSound' : 0,
'stateKeySet' : [Keys.KEY_J],
'alwaysOnArty' : True,
'neadHelp' : True,
'enabled' : True,
'minimapClick' : True,
'aliveCounter' : 5,
'numStepperTest' : 5,
'colorChoice' : 'FFFFFF',
'rangeSlider' : [20, 50],
}
def onModSettingsChanged(linkage, newSettings):
if linkage == modLinkage:
print 'onModSettingsChanged', newSettings
def onButtonClicked(linkage, varName, value):
if linkage == modLinkage:
print 'onButtonClicked', linkage, varName, value
def onGameKeyDown(event):
if g_modsSettingsApi.checkKeySet(settings['stateKeySet']):
print 'onHandleKeyEvent', settings['stateKeySet']
savedSettings = g_modsSettingsApi.getModSettings(modLinkage, template)
if savedSettings:
settings = savedSettings
g_modsSettingsApi.registerCallback(modLinkage, onModSettingsChanged, onButtonClicked)
else:
settings = g_modsSettingsApi.setModTemplate(modLinkage, template, onModSettingsChanged, onButtonClicked)