-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathdata.xml
More file actions
553 lines (444 loc) · 18.2 KB
/
data.xml
File metadata and controls
553 lines (444 loc) · 18.2 KB
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
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
<?xml version="1.1" encoding="UTF-8"?>
<chat>karmikkoala</chat>
<vip_rnd>
<login_msg>Бот вошёл в чат MrDestructoid</login_msg>
<title>VIP или БАН</title>
<viptime_get_info>@%s Время випки %s: [%s - %s]</viptime_get_info>
<vipinfo_get_info>@%s Количество випов: %s из них временных: %s</vipinfo_get_info>
<msg_cmd>
/vip %s
/me Лев %s получает випку! karmik3
</msg_cmd>
<msg_cmd2>
/timeout %s 86400
Лев %s идёт отдыхать в баню на 24ч! karmikSl
</msg_cmd2>
<title_vor>ВОР</title_vor>
<perc_vor>1</perc_vor>
<already_vip>
%s зачем брать випку, если уже вип? минус поинты кста. karmikRemnya
</already_vip>
<vip_is_empty>
Випов нет в банке Ярнама, так что %s уходит ни с чем
</vip_is_empty>
<is_max_vip>
Випок больше нет но %s держитесь, минус поинты кста. karmikFeels
</is_max_vip>
<vor_sucs>
/me Вор %s в тишине ночи забрал випку у %s и не был пойман. karmikThief
/unvip %1:s
/vip %s
</vor_sucs>
<vor_jail>
Вор %s был пойман с поличным и отправляется в камеру на час пятнадцать! karmikT
/timeout %s 4500
</vor_jail>
<unvip_cmd>/unvip %s</unvip_cmd>
<vip_list_cmd>/vips</vip_list_cmd>
<perc>70</perc>
<days>90</days>
<max_vips>100</max_vips>
</vip_rnd>
<vor_rpg>
<xchg>
<max_count>10</max_count>
<max_time>5</max_time>
<exist1_msg>@%s ваш запрос на обмен уже существует, для отмены обмена введите [!vip моя]</exist1_msg>
<exist2_msg>@%s запрос на обмен для %s уже существует </exist2_msg>
<max_msg> @%s слишком много запросов на обмен випок </max_msg>
<ready_msg> @%s введите [!vip забрать] в течение %sмин </ready_msg>
<cancel_msg>@%s запрос на обмен випки отменён </cancel_msg>
<sucs_msg> @%s новый вип заполнил акт приёма-передачи TwitchVotes</sucs_msg>
</xchg>
<duel>
<max_count>10</max_count>
<max_time>2</max_time>
<kd_time>9000</kd_time>
<PERC_MINUS_VIP>10</PERC_MINUS_VIP>
<any_msg>Любой</any_msg>
<cancel_msg>@%s дуэль отменена NotLikeThis </cancel_msg>
<exist1_msg>@%s imGlitch вы уже вызванны на дуэль:%s </exist1_msg>
<exist2_msg>@%s imGlitch этот пользователь уже ожидает дуэль</exist2_msg>
<max_msg> @%s imGlitch слишком много запросов на дуэль </max_msg>
<ready_msg> @%s введите [!duel] в течение %sмин чтобы начать дуэль с %s karmikRaid</ready_msg>
<time_msg> @%s ожидайте следующей дуэли karmikFeels (%s)</time_msg>
<zero_msg> @%s, на вашем счету нет опыта.</zero_msg>
<stand_msg>
Результат дуэли %s и %s: ничья! karmikS
Дуэлянты %s и %s разошлись миром! karmikS
</stand_msg>
<vip_msg>
/me Силач %s отобрал випку у %s! karmik3
/me Дуэлянт %s нашёл в кармане у %s випку! karmik3
/me Злодей %s вырвал випку из рук %s! karmik3
</vip_msg>
<win_msg>
Победа в дуэли достаётся: %s, а неудачника %s выкинули за амбаром! karmikRip
Победил в дуэли %s, а %s отправили делать скип туалета! karmikFeels
Дуэль закончилась победой: %s и провалом %s karmikClown
</win_msg>
</duel>
<timeout_cmd>/timeout %s %s</timeout_cmd>
<vor_sucs>
/unvip %1:s
/vip %s
</vor_sucs>
<jail_vip>
Поместье недружелюбно встретило %s засадой полиции в темноте karmikT
Темнота амбара недружелюбно встретила %s ударом дубинки по голове karmikRip
Задев скатерть ногой, %s снес половину бабушкиного сервиза, был вырублен %s и доставлен в полицию karmikT
Неудачник %s попробовав вскрыть замок, был замечен %s, и в неравной борьбе был доставлен в участок karmikT
Ловкий %s вскрыл сейф %s, но нашел только бан karmikT
Вор %s в наказание был отправлен в блайттаун без возможности закончить путешествие karmikFeels
Вор %s вынужден проходить дез стрендинг без возможности ходить пешком karmikFeels
Вор %s не прошёл стелс комиссию Kappa
Попытка использовать rtsr setup против %1:s не увенчалась успехом, и %0:s отправился к костру, потеряв все души
Вор %s получает вместо випки премию Дарвина при попытке скрыться через окно
Спидранер %s не смог рассказать как там было во втором варкрафте и был отправлен на исправительные работы karmikRip
%s не смог рассказать свой маршрут Kappa
%s прыгнул в винты у всех на глазах и единогласным решением был выброшен в открытый космос
</jail_vip>
<esc_vip>
Ловкий вор %s хоть и не смог добиться цели, но смог cбежать от полиции.
Неуклюжий вор %s прыгнул в реку Турчанку и смог смыться
Спрятавшись в лесу %s смог избежать погони
</esc_vip>
<str_vip>
/me Скрипнула половица, вор %s был замечен, но успел ударить по голове %s и cбежать с випкой
/me Неуклюжий вор %s разбудил хозяина %s, но в неравной борьбе он смог забрать чужую випку
/me Задев скатерть ногой, %s снес половину бабушкиного сервиза, но всё же смог забрать силой випку у %s
</str_vip>
<norm_vor>
/me Вор %s в тишине ночи, забрал випку у %s и не был пойман. karmikThief
/me Ловкими пальчиками вор %s ловко стащил випку прямо вместе со штанами у %s
/me Удачливый предприниматель %s отжал казино вместе с випкой у %s
</norm_vor>
<minus_vip>
Невнимательный %s по дороге домой выронил из кармана випку
Обаятельный %s в общественной бане выронил из рук випку karmikFeels
%s просыпается без випки и одежды за амбаром в компании 2 ансабов karmikPride
</minus_vip>
<time4_vip>
/me Неудачник %s успешно ушёл от полиции вместе с випкой от %s, но повредил себе колено +отдых
/me Честный гражданин %s экспроприировал випку у %s, но загремел в обезьянник "низашто"
</time4_vip>
<neudc_vip>
Неудачник %s споткнулся и улетел в открытый люк канализации +отдых karmikRip
Обаятельный %s в общественной бане выронил из рук мыло +отдых karmikPride
Диванный эксперт %s во всей красе ощутил на себе эффект фигурки karmikCat +отдых
</neudc_vip>
<chist_vip>
Чистюля %s хотел пойти на дело, но вспомнил, что забыл помыть руки
Пацанчег %s вспомнил что сегодня некстгены и остался дома
Спидранер %s не смог рассказать как там было во втором варкрафте
</chist_vip>
<stat_msg>
<lvl_msg> @%s LVL:%s [%s/%s] </lvl_msg>
<pts_msg> @%s LUK:%s |DEF:%s |CHR:%s |AGL:%s |STR:%s |PTS:%s </pts_msg>
<stat_msg> @%s LUK%%:%s |DEF%%:%s |ESC%%:%s |-TIME:%s </stat_msg>
<add_msg> @%s навык вкачен в %s </add_msg>
<not_msg> @%s нет свободных очков навыка </not_msg>
<max_msg> @%s максимум очков навыка в %s </max_msg>
<help_msg1> @%s команды вора: !vor [hlp,top,dbf,lvl,pts,stat,add [парам.]]</help_msg1>
<help_msg2> @%s для прокачки: !vor add [luk,def,chr,agl,str] </help_msg2>
<on_debuf> @%s наложен дебаф: (%s) </on_debuf>
<debuf_pr> @%s < %s > </debuf_pr>
<help_msg3> @%s https://docs.google.com/spreadsheets/d/1FCLJ4cR-HaOpttgT43RbnT_bC12mbbRX9ozBwtS8zfY/edit </help_msg3>
<top_msg1> %s)%s|LVL:%s|EXP:%s </top_msg1>
<top_msg2> @%s %s </top_msg2>
</stat_msg>
<calc>
<BASE_TIME>4500</BASE_TIME>
<MUL_TIME>300</MUL_TIME>
<DEC_TIME>300</DEC_TIME>
<MAX_LVL>100</MAX_LVL>
<MAX_LUK>25</MAX_LUK>
<MAX_DEF>29</MAX_DEF>
<MAX_CHR>100</MAX_CHR>
<MAX_STR>29</MAX_STR>
<MAX_AGL>100</MAX_AGL>
<MUL_EXP>2</MUL_EXP>
<MUL_LUK>4</MUL_LUK>
<MUL_DEF>4</MUL_DEF>
<MUL_STR>4</MUL_STR>
<MUL_AGL>5</MUL_AGL>
<DEC_LUK>-7</DEC_LUK>
<DEC_DEF>-6</DEC_DEF>
<DEC_STR>-6</DEC_STR>
<DEC_AGL>5</DEC_AGL>
<PERC_MINUS_VIP>10</PERC_MINUS_VIP>
</calc>
<DEBUF_PERCENT>20</DEBUF_PERCENT>
<DEBUF_MIN_TIME>86400</DEBUF_MIN_TIME>
<DEBUF_MAX_TIME>259200</DEBUF_MAX_TIME>
<debuf>
<text>Сломано колено -AGL</text>
<chr>
<AGL>-1</AGL>
</chr>
</debuf>
<debuf>
<text>Вывихнул лодыжку -AGL</text>
<chr>
<AGL>-1</AGL>
</chr>
</debuf>
<debuf>
<text>Сломана рука -STR</text>
<chr>
<STR>-1</STR>
</chr>
</debuf>
<debuf>
<text>Порвана одежда -DEF</text>
<chr>
<DEF>-1</DEF>
</chr>
</debuf>
<debuf>
<text>Эффект фигурки -LUK</text>
<chr>
<LUK>-1</LUK>
</chr>
</debuf>
<debuf>
<text>Уронил мыло -CHR</text>
<chr>
<CHR>-1</CHR>
</chr>
</debuf>
<debuf>
<text>У тебя круги под глазами -CHR</text>
<chr>
<CHR>-1</CHR>
</chr>
</debuf>
<debuf>
<text>Анигиляторная пушка +LUK -STR,DEF,AGL,CHR</text>
<chr>
<LUK>1</LUK>
<STR>-1</STR>
<DEF>-1</DEF>
<AGL>-1</AGL>
<CHR>-1</CHR>
</chr>
</debuf>
<debuf>
<text>3 часа закрепа туалета -STR +CHR</text>
<chr>
<STR>-1</STR>
<CHR>1</CHR>
</chr>
</debuf>
<debuf>
<text>Сгорел пукан -CHR +STR</text>
<chr>
<CHR>-1</CHR>
<STR>1</STR>
</chr>
</debuf>
<kick>
<PERC>30</PERC>
<in_time>9000</in_time>
<out_time>9000</out_time>
<in_msg>Нога %s отдохнёт через (%s)</in_msg>
<out_msg>Жопа %s охладится через (%s)</out_msg>
<not_vor>
%s был задержан за нарушение правопорядка
%s вышел голым на площадь и давай всех пинать
%s пнул рандомного ансаба
</not_vor>
<go_kick>
Гопник %s избил невинного %s
Цыган %s погадал на ручку для %s
Редиска %s ударил по яйкам %s
</go_kick>
<go_def>
Гопник %s не смог пробить дыхалку %s
Амбал %1:s не заметил удара от %0:s
Странный чел %s похлопал по плечу %s
</go_def>
<go_esc>
Гопник %s не попал ногой по %s
Бегун %1:s успешно смылся от %0:s
Неудачник %s споткнулся о собственную ногу
</go_esc>
</kick>
</vor_rpg>
<sub_mod>
<inc_title>Sub Mode</inc_title>
<dec_title>Anti Sub Mode</dec_title>
<label>
<name>Сабмод</name>
<on>Сабмод включён</on>
<off>Сабмод выключен</off>
</label>
<subtime_get_cmd>!subtime</subtime_get_cmd>
<subtime_kd>60</subtime_kd>
<subtime_get_info>
Время сабмода: %s, в пределах [%s <--> %s]
</subtime_get_info>
<room_tag>subs-only</room_tag>
<cmd_on>
/subscribers
Лев %s включает сабмод, время: %2:s
</cmd_on>
<cmd_off>
/subscribersoff
Лев %s выключает сабмод, время: %2:s
</cmd_off>
<cmd_inc>
Лев %s продлевает сабмод на %s мин, время: %s
</cmd_inc>
<cmd_dec>
Лев %s укорачивает сабмод на %s мин, время: %s
</cmd_dec>
<inc_min>20</inc_min>
<max_inc>3</max_inc>
<max_dec>3</max_dec>
</sub_mod>
<vol_cmd>
<prefix>!vol</prefix>
<device>all</device>
</vol_cmd>
<sql>
<create>
CREATE TABLE IF NOT EXISTS story (datetime DATETIME,user TEXT,mes TEXT);
CREATE INDEX IF NOT EXISTS story_datetime ON story (datetime ASC);
CREATE INDEX IF NOT EXISTS story_user ON story (user ASC);
CREATE TABLE IF NOT EXISTS params (name TEXT,value TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS params_name ON params (name ASC);
CREATE TABLE IF NOT EXISTS vips (datetime DATETIME,user TEXT NOT NULL ON CONFLICT ROLLBACK DEFAULT '');
CREATE INDEX IF NOT EXISTS vips_datetime ON vips (datetime ASC);
CREATE UNIQUE INDEX IF NOT EXISTS vips_user ON vips (user ASC);
CREATE TABLE IF NOT EXISTS rpg (user TEXT,data TEXT);
CREATE UNIQUE INDEX IF NOT EXISTS rpg_user ON rpg (user ASC);
DROP TABLE IF EXISTS temp_table;
if (SELECT value FROM params WHERE (name='rev')) IS NULL
begin
if (SELECT COUNT(*) AS CNTREC FROM pragma_table_info('story') WHERE name='cmd')=0
begin
BEGIN TRANSACTION;
PRAGMA foreign_keys = 0;
CREATE TABLE temp_table AS SELECT * FROM story;
DROP TABLE story;
CREATE TABLE story (datetime DATETIME,user TEXT,mes TEXT,cmd TEXT);
INSERT INTO story (datetime,user,mes) SELECT datetime,user,mes FROM temp_table;
DROP TABLE temp_table;
CREATE INDEX story_datetime ON story (datetime ASC);
CREATE INDEX story_user ON story (user ASC);
PRAGMA foreign_keys = 1;
CREATE TABLE temp_table AS
SELECT ROWID AS ID,
('/vip ' || user) AS FS,
datetime,user
FROM story
WHERE INSTR(mes,'"msg_cmd":"/vip ')=0
AND INSTR(mes,'"VIP на хз сколько"')<>0;
INSERT INTO temp_table (ID,FS,datetime,user)
SELECT ID,
SUBSTR(FS,1,INSTR(FS,'"')-1) AS FS,
datetime,user
FROM (
SELECT ROWID AS ID,
(CASE WHEN INSTR(mes,'"msg_cmd":"')=0
THEN NULL
ELSE SUBSTR(mes,INSTR(mes,'"msg_cmd":"')+11)
END) AS FS,
datetime,user
FROM story WHERE FS IS NOT NULL
);
UPDATE story
SET cmd = (SELECT FS FROM temp_table WHERE temp_table.ID = story.ROWID )
WHERE
EXISTS (
SELECT ID
FROM temp_table
WHERE temp_table.ID = story.ROWID
);
INSERT OR REPLACE INTO vips ( datetime,user )
SELECT datetime,user
FROM temp_table
WHERE SUBSTR(FS,1,4)='/vip';
DROP TABLE temp_table;
INSERT OR REPLACE INTO params ( name,value ) VALUES('rev','2');
COMMIT TRANSACTION;
end
end
else
begin
INSERT OR IGNORE INTO params ( name,value ) VALUES('rev','2');
end
if (SELECT value FROM params WHERE (name='rev'))='2'
begin
BEGIN TRANSACTION;
CREATE TABLE temp_table AS
SELECT uniq,(
SELECT count(mes) FROM story where (user=uniq) and INSTR(mes,'"title":"ВОР"')<>0
) as count FROM (
SELECT DISTINCT TRIM(user) as uniq FROM story where uniq<>""
) WHERE count<>0;
INSERT OR IGNORE INTO rpg ( user,data )
SELECT uniq as user,('{"points":{"EXP":' || count || '}}') as data FROM temp_table;
DROP TABLE temp_table;
INSERT OR REPLACE INTO params ( name,value ) VALUES('rev','3');
COMMIT TRANSACTION;
end;
VACUUM
</create>
<insert_story>
INSERT INTO story ( datetime,user,mes,cmd ) VALUES(@datetime,@user,@mes,@cmd);
</insert_story>
<list_story>
//последние 300 записей
SELECT * FROM story LIMIT 300 OFFSET (SELECT COUNT(*) FROM story)-300;
</list_story>
<export_story>
//все записи
DECLARE @count int;
SET @count=(SELECT count(*) FROM story)+0;
SELECT * FROM story;
</export_story>
<get_param>
SELECT value FROM params WHERE (name=@name);
</get_param>
<set_param>
INSERT OR REPLACE INTO params ( name,value ) VALUES(@name,@value);
</set_param>
<list_vips>
SELECT * FROM vips;
</list_vips>
<add_vips>
INSERT INTO vips ( datetime,user ) VALUES(@datetime,@user);
</add_vips>
<insert_vips>
INSERT INTO vips ( @+field ) VALUES(@value);
</insert_vips>
<update_vips>
UPDATE vips SET @+field=@value WHERE user=@user;
</update_vips>
<delete_vips>
DELETE FROM vips WHERE user=@user;
</delete_vips>
<get_rpg_all>
SELECT * FROM rpg;
</get_rpg_all>
<get_rpg_user1>
SELECT * FROM rpg WHERE user=@user1;
</get_rpg_user1>
<get_rpg_user2>
SELECT * FROM rpg WHERE user in (@user1,@user2);
</get_rpg_user2>
<get_rnd_user1>
SELECT user FROM rpg ORDER BY RANDOM() LIMIT 1;
</get_rnd_user1>
<set_rpg_user1>
INSERT OR REPLACE INTO rpg ( user,data ) VALUES(@user1,@data1);
</set_rpg_user1>
<set_rpg_user2>
BEGIN TRANSACTION;
INSERT OR REPLACE INTO rpg ( user,data ) VALUES(@user1,@data1);
INSERT OR REPLACE INTO rpg ( user,data ) VALUES(@user2,@data2);
COMMIT TRANSACTION;
</set_rpg_user2>
</sql>