This commit is contained in:
liwei1dao 2022-09-26 20:25:25 +08:00
commit 97fc44039d
57 changed files with 34401 additions and 31887 deletions

View File

@ -4,8 +4,8 @@
"var": [ "var": [
{ {
"a": "attr", "a": "attr",
"t": "rmbmoney", "t": "gold",
"n": 20 "n": 20000
} }
] ]
}, },
@ -14,7 +14,7 @@
"var": [ "var": [
{ {
"a": "attr", "a": "attr",
"t": "rmbmoney", "t": "gold",
"n": 20 "n": 20
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -22,7 +22,7 @@
"name": "高级经验精灵", "name": "高级经验精灵",
"star": 4, "star": 4,
"color": 3, "color": 3,
"heroexp": 18518, "heroexp": 18510,
"skilllevelup": 0, "skilllevelup": 0,
"needgold": 23324 "needgold": 23324
}, },

View File

@ -5,12 +5,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 40 "n": 3600
} }
], ],
"hp": 1857, "hp": 1857,
"atk": 137, "atk": 154,
"def": 137 "def": 168
}, },
{ {
"level": 2, "level": 2,
@ -18,12 +18,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 80 "n": 7200
} }
], ],
"hp": 1953, "hp": 1953,
"atk": 142.7, "atk": 162,
"def": 143.7 "def": 177
}, },
{ {
"level": 3, "level": 3,
@ -31,12 +31,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 120 "n": 10800
} }
], ],
"hp": 2049, "hp": 2049,
"atk": 148.4, "atk": 170,
"def": 150.4 "def": 186
}, },
{ {
"level": 4, "level": 4,
@ -44,12 +44,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 160 "n": 15600
} }
], ],
"hp": 2145, "hp": 2145,
"atk": 154.1, "atk": 178,
"def": 157.1 "def": 195
}, },
{ {
"level": 5, "level": 5,
@ -57,12 +57,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 200 "n": 19200
} }
], ],
"hp": 2241, "hp": 2241,
"atk": 159.8, "atk": 186,
"def": 163.8 "def": 203
}, },
{ {
"level": 6, "level": 6,
@ -70,12 +70,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 240 "n": 21600
} }
], ],
"hp": 2337, "hp": 2337,
"atk": 165.5, "atk": 194,
"def": 170.5 "def": 212
}, },
{ {
"level": 7, "level": 7,
@ -83,12 +83,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 280 "n": 25200
} }
], ],
"hp": 2433, "hp": 2433,
"atk": 171.2, "atk": 202,
"def": 177.2 "def": 221
}, },
{ {
"level": 8, "level": 8,
@ -96,12 +96,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 320 "n": 28800
} }
], ],
"hp": 2529, "hp": 2529,
"atk": 176.9, "atk": 210,
"def": 183.9 "def": 229
}, },
{ {
"level": 9, "level": 9,
@ -109,12 +109,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 360 "n": 32400
} }
], ],
"hp": 2625, "hp": 2625,
"atk": 182.6, "atk": 218,
"def": 190.6 "def": 238
}, },
{ {
"level": 10, "level": 10,
@ -122,12 +122,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 400 "n": 36000
} }
], ],
"hp": 2721, "hp": 2759.4,
"atk": 188.3, "atk": 229,
"def": 197.3 "def": 250
}, },
{ {
"level": 11, "level": 11,
@ -135,12 +135,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 440 "n": 38400
} }
], ],
"hp": 2817, "hp": 2893.8,
"atk": 194, "atk": 241,
"def": 204 "def": 263
}, },
{ {
"level": 12, "level": 12,
@ -148,12 +148,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 900 "n": 40800
} }
], ],
"hp": 2913, "hp": 3028.2,
"atk": 199.7, "atk": 252,
"def": 210.7 "def": 275
}, },
{ {
"level": 13, "level": 13,
@ -161,12 +161,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 975 "n": 43200
} }
], ],
"hp": 3009, "hp": 3162.6,
"atk": 205.4, "atk": 263,
"def": 217.4 "def": 287
}, },
{ {
"level": 14, "level": 14,
@ -174,12 +174,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1050 "n": 45600
} }
], ],
"hp": 3105, "hp": 3297,
"atk": 211.1, "atk": 274,
"def": 224.1 "def": 299
}, },
{ {
"level": 15, "level": 15,
@ -187,12 +187,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1125 "n": 48000
} }
], ],
"hp": 3201, "hp": 3431.4,
"atk": 216.8, "atk": 285,
"def": 230.8 "def": 311
}, },
{ {
"level": 16, "level": 16,
@ -200,12 +200,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1200 "n": 50400
} }
], ],
"hp": 3297, "hp": 3565.8,
"atk": 222.5, "atk": 297,
"def": 237.5 "def": 324
}, },
{ {
"level": 17, "level": 17,
@ -213,12 +213,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1275 "n": 52800
} }
], ],
"hp": 3393, "hp": 3700.2,
"atk": 228.2, "atk": 308,
"def": 244.2 "def": 336
}, },
{ {
"level": 18, "level": 18,
@ -226,12 +226,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1350 "n": 54000
} }
], ],
"hp": 3489, "hp": 3834.6,
"atk": 233.9, "atk": 319,
"def": 250.9 "def": 348
}, },
{ {
"level": 19, "level": 19,
@ -239,12 +239,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1425 "n": 55200
} }
], ],
"hp": 3585, "hp": 3969,
"atk": 239.6, "atk": 330,
"def": 257.6 "def": 360
}, },
{ {
"level": 20, "level": 20,
@ -252,12 +252,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 1500 "n": 56400
} }
], ],
"hp": 3681, "hp": 4141.8,
"atk": 245.3, "atk": 345,
"def": 264.3 "def": 376
}, },
{ {
"level": 21, "level": 21,
@ -265,12 +265,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2120 "n": 58800
} }
], ],
"hp": 3777, "hp": 4314.6,
"atk": 251, "atk": 359,
"def": 271 "def": 392
}, },
{ {
"level": 22, "level": 22,
@ -278,12 +278,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2240 "n": 61200
} }
], ],
"hp": 3873, "hp": 4487.4,
"atk": 256.7, "atk": 373,
"def": 277.7 "def": 407
}, },
{ {
"level": 23, "level": 23,
@ -291,12 +291,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2380 "n": 63600
} }
], ],
"hp": 3969, "hp": 4660.2,
"atk": 262.4, "atk": 388,
"def": 284.4 "def": 423
}, },
{ {
"level": 24, "level": 24,
@ -304,12 +304,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2520 "n": 66000
} }
], ],
"hp": 4065, "hp": 4833,
"atk": 268.1, "atk": 402,
"def": 291.1 "def": 439
}, },
{ {
"level": 25, "level": 25,
@ -317,12 +317,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2680 "n": 68400
} }
], ],
"hp": 4161, "hp": 5005.8,
"atk": 273.8, "atk": 417,
"def": 297.8 "def": 455
}, },
{ {
"level": 26, "level": 26,
@ -330,12 +330,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 2840 "n": 70800
} }
], ],
"hp": 4257, "hp": 5178.6,
"atk": 279.5, "atk": 431,
"def": 304.5 "def": 470
}, },
{ {
"level": 27, "level": 27,
@ -343,12 +343,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 3020 "n": 72000
} }
], ],
"hp": 4353, "hp": 5351.4,
"atk": 285.2, "atk": 445,
"def": 311.2 "def": 486
}, },
{ {
"level": 28, "level": 28,
@ -356,12 +356,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 3200 "n": 74400
} }
], ],
"hp": 4449, "hp": 5524.2,
"atk": 290.9, "atk": 460,
"def": 317.9 "def": 502
}, },
{ {
"level": 29, "level": 29,
@ -369,12 +369,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 3400 "n": 76800
} }
], ],
"hp": 4545, "hp": 5697,
"atk": 296.6, "atk": 474,
"def": 324.6 "def": 517
}, },
{ {
"level": 30, "level": 30,
@ -382,12 +382,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 3600 "n": 79200
} }
], ],
"hp": 4641, "hp": 5908.2,
"atk": 302.3, "atk": 492,
"def": 331.3 "def": 537
}, },
{ {
"level": 31, "level": 31,
@ -395,12 +395,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 5700 "n": 73200
} }
], ],
"hp": 4737, "hp": 6119.4,
"atk": 308, "atk": 509,
"def": 338 "def": 556
}, },
{ {
"level": 32, "level": 32,
@ -408,12 +408,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 6000 "n": 75600
} }
], ],
"hp": 4833, "hp": 6330.6,
"atk": 313.7, "atk": 527,
"def": 344.7 "def": 575
}, },
{ {
"level": 33, "level": 33,
@ -421,12 +421,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 6330 "n": 78000
} }
], ],
"hp": 4929, "hp": 6541.8,
"atk": 319.4, "atk": 545,
"def": 351.4 "def": 594
}, },
{ {
"level": 34, "level": 34,
@ -434,12 +434,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 6660 "n": 80400
} }
], ],
"hp": 5025, "hp": 6753,
"atk": 325.1, "atk": 562,
"def": 358.1 "def": 613
}, },
{ {
"level": 35, "level": 35,
@ -447,12 +447,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 7020 "n": 74400
} }
], ],
"hp": 5121, "hp": 6964.2,
"atk": 330.8, "atk": 580,
"def": 364.8 "def": 633
}, },
{ {
"level": 36, "level": 36,
@ -460,12 +460,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 7380 "n": 76800
} }
], ],
"hp": 5217, "hp": 7175.4,
"atk": 336.5, "atk": 597,
"def": 371.5 "def": 652
}, },
{ {
"level": 37, "level": 37,
@ -473,12 +473,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 7770 "n": 79200
} }
], ],
"hp": 5313, "hp": 7386.6,
"atk": 342.2, "atk": 615,
"def": 378.2 "def": 671
}, },
{ {
"level": 38, "level": 38,
@ -486,12 +486,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 8160 "n": 81600
} }
], ],
"hp": 5409, "hp": 7597.8,
"atk": 347.9, "atk": 633,
"def": 384.9 "def": 690
}, },
{ {
"level": 39, "level": 39,
@ -499,12 +499,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 8580 "n": 75600
} }
], ],
"hp": 5505, "hp": 7809,
"atk": 353.6, "atk": 650,
"def": 391.6 "def": 709
}, },
{ {
"level": 40, "level": 40,
@ -512,12 +512,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 9000 "n": 78000
} }
], ],
"hp": 5601, "hp": 8058.6,
"atk": 359.3, "atk": 671,
"def": 398.3 "def": 732
}, },
{ {
"level": 41, "level": 41,
@ -525,12 +525,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 9600 "n": 80400
} }
], ],
"hp": 5697, "hp": 8308.2,
"atk": 365, "atk": 692,
"def": 405 "def": 755
}, },
{ {
"level": 42, "level": 42,
@ -538,12 +538,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 10200 "n": 82800
} }
], ],
"hp": 5793, "hp": 8557.8,
"atk": 370.7, "atk": 713,
"def": 411.7 "def": 777
}, },
{ {
"level": 43, "level": 43,
@ -551,12 +551,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 10800 "n": 76800
} }
], ],
"hp": 5889, "hp": 8807.4,
"atk": 376.4, "atk": 733,
"def": 418.4 "def": 800
}, },
{ {
"level": 44, "level": 44,
@ -564,12 +564,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 11400 "n": 79200
} }
], ],
"hp": 5985, "hp": 9057,
"atk": 382.1, "atk": 754,
"def": 425.1 "def": 823
}, },
{ {
"level": 45, "level": 45,
@ -577,12 +577,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 12000 "n": 81600
} }
], ],
"hp": 6081, "hp": 9306.6,
"atk": 387.8, "atk": 775,
"def": 431.8 "def": 846
}, },
{ {
"level": 46, "level": 46,
@ -590,12 +590,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 12900 "n": 84000
} }
], ],
"hp": 6177, "hp": 9556.2,
"atk": 393.5, "atk": 796,
"def": 438.5 "def": 868
}, },
{ {
"level": 47, "level": 47,
@ -603,12 +603,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 13800 "n": 78000
} }
], ],
"hp": 6273, "hp": 9805.8,
"atk": 399.2, "atk": 817,
"def": 445.2 "def": 891
}, },
{ {
"level": 48, "level": 48,
@ -616,12 +616,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 14700 "n": 80400
} }
], ],
"hp": 6369, "hp": 10055.4,
"atk": 404.9, "atk": 837,
"def": 451.9 "def": 914
}, },
{ {
"level": 49, "level": 49,
@ -629,12 +629,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 15600 "n": 82800
} }
], ],
"hp": 6465, "hp": 10305,
"atk": 410.6, "atk": 858,
"def": 458.6 "def": 936
}, },
{ {
"level": 50, "level": 50,
@ -642,12 +642,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 16500 "n": 85200
} }
], ],
"hp": 6561, "hp": 10593,
"atk": 416.3, "atk": 882,
"def": 465.3 "def": 963
}, },
{ {
"level": 51, "level": 51,
@ -655,12 +655,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 23600 "n": 79200
} }
], ],
"hp": 6657, "hp": 10881,
"atk": 422, "atk": 906,
"def": 472 "def": 989
}, },
{ {
"level": 52, "level": 52,
@ -668,12 +668,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 25200 "n": 81600
} }
], ],
"hp": 6753, "hp": 11169,
"atk": 427.7, "atk": 930,
"def": 478.7 "def": 1015
}, },
{ {
"level": 53, "level": 53,
@ -681,12 +681,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 26800 "n": 84000
} }
], ],
"hp": 6849, "hp": 11457,
"atk": 433.4, "atk": 954,
"def": 485.4 "def": 1041
}, },
{ {
"level": 54, "level": 54,
@ -694,12 +694,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 28400 "n": 86400
} }
], ],
"hp": 6945, "hp": 11745,
"atk": 439.1, "atk": 978,
"def": 492.1 "def": 1067
}, },
{ {
"level": 55, "level": 55,
@ -707,12 +707,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 30000 "n": 80400
} }
], ],
"hp": 7041, "hp": 12033,
"atk": 444.8, "atk": 1002,
"def": 498.8 "def": 1093
}, },
{ {
"level": 56, "level": 56,
@ -720,12 +720,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 32000 "n": 82800
} }
], ],
"hp": 7137, "hp": 12321,
"atk": 450.5, "atk": 1026,
"def": 505.5 "def": 1120
}, },
{ {
"level": 57, "level": 57,
@ -733,12 +733,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 34000 "n": 85200
} }
], ],
"hp": 7233, "hp": 12609,
"atk": 456.2, "atk": 1050,
"def": 512.2 "def": 1146
}, },
{ {
"level": 58, "level": 58,
@ -746,12 +746,12 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 36000 "n": 87600
} }
], ],
"hp": 7329, "hp": 12897,
"atk": 461.9, "atk": 1074,
"def": 518.9 "def": 1172
}, },
{ {
"level": 59, "level": 59,
@ -759,18 +759,18 @@
{ {
"a": "attr", "a": "attr",
"t": "heroexp", "t": "heroexp",
"n": 38000 "n": 81600
} }
], ],
"hp": 7425, "hp": 13185,
"atk": 467.6, "atk": 1098,
"def": 525.6 "def": 1198
}, },
{ {
"level": 60, "level": 60,
"heroexp": [], "heroexp": [],
"hp": 7521, "hp": 13511.4,
"atk": 473.3, "atk": 1125,
"def": 532.3 "def": 1228
} }
] ]

View File

@ -232,7 +232,7 @@
}, },
{ {
"hid": "14003", "hid": "14003",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -364,7 +364,7 @@
}, },
{ {
"hid": "14007", "hid": "14007",
"star": 4, "star": 5,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -496,7 +496,7 @@
}, },
{ {
"hid": "15004", "hid": "15004",
"star": 5, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -694,7 +694,7 @@
}, },
{ {
"hid": "24002", "hid": "24002",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -727,7 +727,7 @@
}, },
{ {
"hid": "24003", "hid": "24003",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -760,7 +760,7 @@
}, },
{ {
"hid": "24004", "hid": "24004",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -958,7 +958,7 @@
}, },
{ {
"hid": "25001", "hid": "25001",
"star": 5, "star": 4,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -1057,7 +1057,7 @@
}, },
{ {
"hid": "25004", "hid": "25004",
"star": 5, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -1552,7 +1552,7 @@
}, },
{ {
"hid": "35001", "hid": "35001",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -1618,7 +1618,7 @@
}, },
{ {
"hid": "35003", "hid": "35003",
"star": 5, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -2113,7 +2113,7 @@
}, },
{ {
"hid": "44006", "hid": "44006",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -2212,7 +2212,7 @@
}, },
{ {
"hid": "45003", "hid": "45003",
"star": 5, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -2278,7 +2278,7 @@
}, },
{ {
"hid": "44005", "hid": "44005",
"star": 4, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {
@ -2311,7 +2311,7 @@
}, },
{ {
"hid": "15005", "hid": "15005",
"star": 5, "star": 3,
"energy": 6, "energy": 6,
"prize": [ "prize": [
{ {

View File

@ -12,45 +12,45 @@
"star": 2, "star": 2,
"level": 10, "level": 10,
"maxlevel": 20, "maxlevel": 20,
"starup_hp": 9.5, "starup_hp": 15,
"starup_atk": 9.5, "starup_atk": 15,
"starup_def": 9.5, "starup_def": 15,
"starup_speed": 9.5 "starup_speed": 15
}, },
{ {
"star": 3, "star": 3,
"level": 20, "level": 20,
"maxlevel": 30, "maxlevel": 30,
"starup_hp": 19, "starup_hp": 25,
"starup_atk": 19, "starup_atk": 25,
"starup_def": 19, "starup_def": 25,
"starup_speed": 19 "starup_speed": 25
}, },
{ {
"star": 4, "star": 4,
"level": 30, "level": 30,
"maxlevel": 40, "maxlevel": 40,
"starup_hp": 28.5, "starup_hp": 55,
"starup_atk": 28.5, "starup_atk": 55,
"starup_def": 28.5, "starup_def": 55,
"starup_speed": 28.5 "starup_speed": 55
}, },
{ {
"star": 5, "star": 5,
"level": 40, "level": 40,
"maxlevel": 50, "maxlevel": 50,
"starup_hp": 38, "starup_hp": 95,
"starup_atk": 38, "starup_atk": 95,
"starup_def": 38, "starup_def": 95,
"starup_speed": 38 "starup_speed": 95
}, },
{ {
"star": 6, "star": 6,
"level": 50, "level": 50,
"maxlevel": 60, "maxlevel": 60,
"starup_hp": 47.5, "starup_hp": 145,
"starup_atk": 47.5, "starup_atk": 145,
"starup_def": 47.5, "starup_def": 145,
"starup_speed": 47.5 "starup_speed": 145
} }
] ]

View File

@ -1,14 +1,4 @@
[ [
{
"index": "1",
"var": [
{
"a": "hero",
"t": "25001",
"n": 5
}
]
},
{ {
"index": "2", "index": "2",
"var": [ "var": [
@ -19,106 +9,6 @@
} }
] ]
}, },
{
"index": "3",
"var": [
{
"a": "hero",
"t": "25004",
"n": 5
}
]
},
{
"index": "13",
"var": [
{
"a": "equi",
"t": "10051",
"n": 100
}
]
},
{
"index": "14",
"var": [
{
"a": "equi",
"t": "10052",
"n": 100
}
]
},
{
"index": "15",
"var": [
{
"a": "equi",
"t": "10053",
"n": 100
}
]
},
{
"index": "16",
"var": [
{
"a": "equi",
"t": "10054",
"n": 100
}
]
},
{
"index": "17",
"var": [
{
"a": "equi",
"t": "10055",
"n": 100
}
]
},
{
"index": "18",
"var": [
{
"a": "equi",
"t": "10056",
"n": 100
}
]
},
{
"index": "19",
"var": [
{
"a": "hero",
"t": "42911",
"n": 100
}
]
},
{
"index": "20",
"var": [
{
"a": "hero",
"t": "43911",
"n": 100
}
]
},
{
"index": "21",
"var": [
{
"a": "hero",
"t": "44911",
"n": 100
}
]
},
{ {
"index": "23", "index": "23",
"var": [ "var": [
@ -129,356 +19,6 @@
} }
] ]
}, },
{
"index": "24",
"var": [
{
"a": "item",
"t": "10006",
"n": 5
}
]
},
{
"index": "25",
"var": [
{
"a": "item",
"t": "10009",
"n": 1
}
]
},
{
"index": "26",
"var": [
{
"a": "item",
"t": "10010",
"n": 45
}
]
},
{
"index": "27",
"var": [
{
"a": "item",
"t": "10011",
"n": 1
}
]
},
{
"index": "28",
"var": [
{
"a": "item",
"t": "10012",
"n": 1250
}
]
},
{
"index": "29",
"var": [
{
"a": "item",
"t": "10013",
"n": 1000
}
]
},
{
"index": "30",
"var": [
{
"a": "item",
"t": "10014",
"n": 1
}
]
},
{
"index": "31",
"var": [
{
"a": "item",
"t": "10015",
"n": 1
}
]
},
{
"index": "32",
"var": [
{
"a": "item",
"t": "10016",
"n": 1
}
]
},
{
"index": "33",
"var": [
{
"a": "item",
"t": "50001",
"n": 200
}
]
},
{
"index": "34",
"var": [
{
"a": "item",
"t": "50002",
"n": 200
}
]
},
{
"index": "35",
"var": [
{
"a": "item",
"t": "50003",
"n": 200
}
]
},
{
"index": "36",
"var": [
{
"a": "item",
"t": "50004",
"n": 200
}
]
},
{
"index": "37",
"var": [
{
"a": "item",
"t": "50005",
"n": 200
}
]
},
{
"index": "38",
"var": [
{
"a": "item",
"t": "50006",
"n": 200
}
]
},
{
"index": "39",
"var": [
{
"a": "item",
"t": "50007",
"n": 200
}
]
},
{
"index": "40",
"var": [
{
"a": "item",
"t": "50008",
"n": 200
}
]
},
{
"index": "41",
"var": [
{
"a": "item",
"t": "50009",
"n": 200
}
]
},
{
"index": "42",
"var": [
{
"a": "item",
"t": "50010",
"n": 200
}
]
},
{
"index": "43",
"var": [
{
"a": "item",
"t": "50011",
"n": 200
}
]
},
{
"index": "44",
"var": [
{
"a": "item",
"t": "50012",
"n": 200
}
]
},
{
"index": "45",
"var": [
{
"a": "item",
"t": "30001",
"n": 999
}
]
},
{
"index": "46",
"var": [
{
"a": "item",
"t": "30002",
"n": 999
}
]
},
{
"index": "47",
"var": [
{
"a": "item",
"t": "30003",
"n": 999
}
]
},
{
"index": "48",
"var": [
{
"a": "item",
"t": "30004",
"n": 999
}
]
},
{
"index": "49",
"var": [
{
"a": "item",
"t": "30005",
"n": 999
}
]
},
{
"index": "50",
"var": [
{
"a": "item",
"t": "10002",
"n": 1000
}
]
},
{
"index": "51",
"var": [
{
"a": "hero",
"t": "43921",
"n": 50
}
]
},
{
"index": "52",
"var": [
{
"a": "hero",
"t": "44921",
"n": 50
}
]
},
{
"index": "53",
"var": [
{
"a": "hero",
"t": "45921",
"n": 50
}
]
},
{
"index": "54",
"var": [
{
"a": "hero",
"t": "44006",
"n": 5
}
]
},
{
"index": "55",
"var": [
{
"a": "hero",
"t": "35001",
"n": 5
}
]
},
{
"index": "56",
"var": [
{
"a": "hero",
"t": "44005",
"n": 5
}
]
},
{
"index": "57",
"var": [
{
"a": "hero",
"t": "15004",
"n": 5
}
]
},
{
"index": "59",
"var": [
{
"a": "hero",
"t": "14007",
"n": 5
}
]
},
{ {
"index": "60", "index": "60",
"var": [ "var": [
@ -488,115 +28,5 @@
"n": 5 "n": 5
} }
] ]
},
{
"index": "61",
"var": [
{
"a": "hero",
"t": "24004",
"n": 5
}
]
},
{
"index": "65",
"var": [
{
"a": "hero",
"t": "34006",
"n": 5
}
]
},
{
"index": "66",
"var": [
{
"a": "hero",
"t": "24003",
"n": 5
}
]
},
{
"index": "67",
"var": [
{
"a": "item",
"t": "10004",
"n": 5
}
]
},
{
"index": "68",
"var": [
{
"a": "hero",
"t": "43901",
"n": 5
}
]
},
{
"index": "69",
"var": [
{
"a": "hero",
"t": "43902",
"n": 5
}
]
},
{
"index": "70",
"var": [
{
"a": "hero",
"t": "43903",
"n": 5
}
]
},
{
"index": "71",
"var": [
{
"a": "hero",
"t": "14003",
"n": 5
}
]
},
{
"index": "72",
"var": [
{
"a": "hero",
"t": "24002",
"n": 5
}
]
},
{
"index": "73",
"var": [
{
"a": "hero",
"t": "15005",
"n": 5
}
]
},
{
"index": "74",
"var": [
{
"a": "hero",
"t": "35003",
"n": 5
}
]
} }
] ]

View File

@ -132,7 +132,7 @@
"id": "10004", "id": "10004",
"name": { "name": {
"key": "itemname_10004", "key": "itemname_10004",
"text": "声波自选箱" "text": "金币自选箱"
}, },
"usetype": 4, "usetype": 4,
"color": 4, "color": 4,
@ -168,7 +168,7 @@
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_10004", "key": "itemtipstxt_10004",
"text": "声波自选箱不足" "text": "金币自选箱不足"
} }
}, },
{ {
@ -777,7 +777,7 @@
"id": "30001", "id": "30001",
"name": { "name": {
"key": "itemname_30001", "key": "itemname_30001",
"text": "普通招募券" "text": "时空石"
}, },
"usetype": 3, "usetype": 3,
"color": 5, "color": 5,
@ -798,23 +798,23 @@
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10009", "img": "wp_icon_10009",
"ico": "wp_icon_10009", "ico": "wp_icon_10019",
"intr": { "intr": {
"key": "itemdesc_30001", "key": "itemdesc_30001",
"text": "可以用于普通招募招募英雄" "text": "可以用于招募英雄"
}, },
"sale": [], "sale": [],
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_30001", "key": "itemtipstxt_30001",
"text": "普通招募券不足" "text": "时空石不足"
} }
}, },
{ {
"id": "30002", "id": "30002",
"name": { "name": {
"key": "itemname_30002", "key": "itemname_30002",
"text": "阵营1招募券" "text": "奥术石"
}, },
"usetype": 3, "usetype": 3,
"color": 5, "color": 5,
@ -835,23 +835,23 @@
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10010", "img": "wp_icon_10010",
"ico": "wp_icon_10010", "ico": "wp_icon_10020",
"intr": { "intr": {
"key": "itemdesc_30002", "key": "itemdesc_30002",
"text": "可以用于阵营1招募英雄" "text": "可以用于奥术阵营招募英雄"
}, },
"sale": [], "sale": [],
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_30002", "key": "itemtipstxt_30002",
"text": "阵营1招募券不足" "text": "奥术石不足"
} }
}, },
{ {
"id": "30003", "id": "30003",
"name": { "name": {
"key": "itemname_30003", "key": "itemname_30003",
"text": "阵营2招募券" "text": "科技石"
}, },
"usetype": 3, "usetype": 3,
"color": 5, "color": 5,
@ -872,23 +872,23 @@
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10011", "img": "wp_icon_10011",
"ico": "wp_icon_10011", "ico": "wp_icon_10021",
"intr": { "intr": {
"key": "itemdesc_30003", "key": "itemdesc_30003",
"text": "可以用于阵营2招募英雄" "text": "可以用于科技阵营招募英雄"
}, },
"sale": [], "sale": [],
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_30003", "key": "itemtipstxt_30003",
"text": "阵营2招募券不足" "text": "科技石不足"
} }
}, },
{ {
"id": "30004", "id": "30004",
"name": { "name": {
"key": "itemname_30004", "key": "itemname_30004",
"text": "阵营3招募券" "text": "自然石"
}, },
"usetype": 3, "usetype": 3,
"color": 5, "color": 5,
@ -909,23 +909,23 @@
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10012", "img": "wp_icon_10012",
"ico": "wp_icon_10012", "ico": "wp_icon_10022",
"intr": { "intr": {
"key": "itemdesc_30004", "key": "itemdesc_30004",
"text": "可以用于阵营3招募英雄" "text": "可以用于自然阵营招募英雄"
}, },
"sale": [], "sale": [],
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_30004", "key": "itemtipstxt_30004",
"text": "阵营3招募券不足" "text": "自然石不足"
} }
}, },
{ {
"id": "30005", "id": "30005",
"name": { "name": {
"key": "itemname_30005", "key": "itemname_30005",
"text": "阵营4招募券" "text": "光耀石"
}, },
"usetype": 3, "usetype": 3,
"color": 5, "color": 5,
@ -946,23 +946,23 @@
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10013", "img": "wp_icon_10013",
"ico": "wp_icon_10013", "ico": "wp_icon_10023",
"intr": { "intr": {
"key": "itemdesc_30005", "key": "itemdesc_30005",
"text": "可以用于阵营4招募英雄" "text": "可以用于光耀阵营招募英雄"
}, },
"sale": [], "sale": [],
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_30005", "key": "itemtipstxt_30005",
"text": "阵营4招募券不足" "text": "光耀石不足"
} }
}, },
{ {
"id": "50001", "id": "50001",
"name": { "name": {
"key": "itemname_50001", "key": "itemname_50001",
"text": "闪耀声波-低级" "text": "奥术美食-低级"
}, },
"usetype": 8, "usetype": 8,
"color": 3, "color": 3,
@ -971,7 +971,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50005, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -982,11 +982,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10013", "img": "wp_icon_10031",
"ico": "wp_icon_10013", "ico": "wp_icon_10031",
"intr": { "intr": {
"key": "itemdesc_50001", "key": "itemdesc_50001",
"text": "把它放在背包里会带来好运" "text": "食用后可以提升奥术系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1004,14 +1004,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50001", "key": "itemtipstxt_50001",
"text": "闪耀声波-低级不足" "text": "奥术美食-低级不足"
} }
}, },
{ {
"id": "50002", "id": "50002",
"name": { "name": {
"key": "itemname_50002", "key": "itemname_50002",
"text": "灼热声波-低级" "text": "科技美食-低级"
}, },
"usetype": 8, "usetype": 8,
"color": 3, "color": 3,
@ -1020,7 +1020,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50006, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1031,11 +1031,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10014", "img": "wp_icon_10032",
"ico": "wp_icon_10014", "ico": "wp_icon_10032",
"intr": { "intr": {
"key": "itemdesc_50002", "key": "itemdesc_50002",
"text": "你登录了游戏就是冒险家,就会获得这个勋章" "text": "食用后可以提升科技系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1053,14 +1053,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50002", "key": "itemtipstxt_50002",
"text": "灼热声波-低级不足" "text": "科技美食-低级不足"
} }
}, },
{ {
"id": "50003", "id": "50003",
"name": { "name": {
"key": "itemname_50003", "key": "itemname_50003",
"text": "呼啸声波-低级" "text": "自然美食-低级"
}, },
"usetype": 8, "usetype": 8,
"color": 3, "color": 3,
@ -1069,7 +1069,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50007, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1080,11 +1080,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10015", "img": "wp_icon_10033",
"ico": "wp_icon_10015", "ico": "wp_icon_10033",
"intr": { "intr": {
"key": "itemdesc_50003", "key": "itemdesc_50003",
"text": "比幸运草更幸运" "text": "食用后可以提升自然系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1102,14 +1102,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50003", "key": "itemtipstxt_50003",
"text": "呼啸声波-低级不足" "text": "自然美食-低级不足"
} }
}, },
{ {
"id": "50004", "id": "50004",
"name": { "name": {
"key": "itemname_50004", "key": "itemname_50004",
"text": "涌动声波-低级" "text": "光耀美食-低级"
}, },
"usetype": 8, "usetype": 8,
"color": 3, "color": 3,
@ -1118,7 +1118,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50008, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1129,11 +1129,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10016", "img": "wp_icon_10034",
"ico": "wp_icon_10016", "ico": "wp_icon_10034",
"intr": { "intr": {
"key": "itemdesc_50004", "key": "itemdesc_50004",
"text": "钻石是人造的,所以不能用来买商城的商品" "text": "食用后可以提升光耀系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1151,14 +1151,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50004", "key": "itemtipstxt_50004",
"text": "涌动声波-低级不足" "text": "光耀美食-低级不足"
} }
}, },
{ {
"id": "50005", "id": "50005",
"name": { "name": {
"key": "itemname_50005", "key": "itemname_50005",
"text": "闪耀声波-中级" "text": "奥术美食-中级"
}, },
"usetype": 8, "usetype": 8,
"color": 4, "color": 4,
@ -1167,7 +1167,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50009, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1178,11 +1178,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10013", "img": "wp_icon_10031",
"ico": "wp_icon_10013", "ico": "wp_icon_10031",
"intr": { "intr": {
"key": "itemdesc_50005", "key": "itemdesc_50005",
"text": "把它放在背包里会带来好运" "text": "食用后可以提升奥术系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1200,14 +1200,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50005", "key": "itemtipstxt_50005",
"text": "闪耀声波-中级不足" "text": "奥术美食-中级不足"
} }
}, },
{ {
"id": "50006", "id": "50006",
"name": { "name": {
"key": "itemname_50006", "key": "itemname_50006",
"text": "灼热声波-中级" "text": "科技美食-中级"
}, },
"usetype": 8, "usetype": 8,
"color": 4, "color": 4,
@ -1216,7 +1216,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50010, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1227,11 +1227,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10014", "img": "wp_icon_10032",
"ico": "wp_icon_10014", "ico": "wp_icon_10032",
"intr": { "intr": {
"key": "itemdesc_50006", "key": "itemdesc_50006",
"text": "你登录了游戏就是冒险家,就会获得这个勋章" "text": "食用后可以提升科技系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1249,14 +1249,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50006", "key": "itemtipstxt_50006",
"text": "灼热声波-中级不足" "text": "科技美食-中级不足"
} }
}, },
{ {
"id": "50007", "id": "50007",
"name": { "name": {
"key": "itemname_50007", "key": "itemname_50007",
"text": "呼啸声波-中级" "text": "自然美食-中级"
}, },
"usetype": 8, "usetype": 8,
"color": 4, "color": 4,
@ -1265,7 +1265,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50011, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1276,11 +1276,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10015", "img": "wp_icon_10033",
"ico": "wp_icon_10015", "ico": "wp_icon_10033",
"intr": { "intr": {
"key": "itemdesc_50007", "key": "itemdesc_50007",
"text": "比幸运草更幸运" "text": "食用后可以提升自然系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1298,14 +1298,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50007", "key": "itemtipstxt_50007",
"text": "呼啸声波-中级不足" "text": "自然美食-中级不足"
} }
}, },
{ {
"id": "50008", "id": "50008",
"name": { "name": {
"key": "itemname_50008", "key": "itemname_50008",
"text": "涌动声波-中级" "text": "光耀美食-中级"
}, },
"usetype": 8, "usetype": 8,
"color": 4, "color": 4,
@ -1314,7 +1314,7 @@
"special_type": 0, "special_type": 0,
"time": 0, "time": 0,
"effects": "", "effects": "",
"box_id": 50012, "box_id": 0,
"synthetize_num": 5, "synthetize_num": 5,
"access": [ "access": [
109 109
@ -1325,11 +1325,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10016", "img": "wp_icon_10034",
"ico": "wp_icon_10016", "ico": "wp_icon_10034",
"intr": { "intr": {
"key": "itemdesc_50008", "key": "itemdesc_50008",
"text": "钻石是人造的,所以不能用来买商城的商品" "text": "食用后可以提升光耀系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1347,14 +1347,14 @@
], ],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50008", "key": "itemtipstxt_50008",
"text": "涌动声波-中级不足" "text": "光耀美食-中级不足"
} }
}, },
{ {
"id": "50009", "id": "50009",
"name": { "name": {
"key": "itemname_50009", "key": "itemname_50009",
"text": "闪耀声波-高级" "text": "奥术美食-高级"
}, },
"usetype": 8, "usetype": 8,
"color": 5, "color": 5,
@ -1374,11 +1374,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10013", "img": "wp_icon_10031",
"ico": "wp_icon_10013", "ico": "wp_icon_10031",
"intr": { "intr": {
"key": "itemdesc_50009", "key": "itemdesc_50009",
"text": "把它放在背包里会带来好运" "text": "食用后可以提升奥术系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1390,14 +1390,14 @@
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50009", "key": "itemtipstxt_50009",
"text": "闪耀声波-高级不足" "text": "奥术美食-高级不足"
} }
}, },
{ {
"id": "50010", "id": "50010",
"name": { "name": {
"key": "itemname_50010", "key": "itemname_50010",
"text": "灼热声波-高级" "text": "科技美食-高级"
}, },
"usetype": 8, "usetype": 8,
"color": 5, "color": 5,
@ -1417,11 +1417,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10014", "img": "wp_icon_10032",
"ico": "wp_icon_10014", "ico": "wp_icon_10032",
"intr": { "intr": {
"key": "itemdesc_50010", "key": "itemdesc_50010",
"text": "你登录了游戏就是冒险家,就会获得这个勋章" "text": "食用后可以提升科技系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1433,14 +1433,14 @@
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50010", "key": "itemtipstxt_50010",
"text": "灼热声波-高级不足" "text": "科技美食-高级不足"
} }
}, },
{ {
"id": "50011", "id": "50011",
"name": { "name": {
"key": "itemname_50011", "key": "itemname_50011",
"text": "呼啸声波-高级" "text": "自然美食-高级"
}, },
"usetype": 8, "usetype": 8,
"color": 5, "color": 5,
@ -1460,11 +1460,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10015", "img": "wp_icon_10033",
"ico": "wp_icon_10015", "ico": "wp_icon_10033",
"intr": { "intr": {
"key": "itemdesc_50011", "key": "itemdesc_50011",
"text": "比幸运草更幸运" "text": "食用后可以提升自然系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1476,14 +1476,14 @@
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50011", "key": "itemtipstxt_50011",
"text": "呼啸声波-高级不足" "text": "自然美食-高级不足"
} }
}, },
{ {
"id": "50012", "id": "50012",
"name": { "name": {
"key": "itemname_50012", "key": "itemname_50012",
"text": "涌动声波-高级" "text": "光耀美食-高级"
}, },
"usetype": 8, "usetype": 8,
"color": 5, "color": 5,
@ -1503,11 +1503,11 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10016", "img": "wp_icon_10034",
"ico": "wp_icon_10016", "ico": "wp_icon_10034",
"intr": { "intr": {
"key": "itemdesc_50012", "key": "itemdesc_50012",
"text": "钻石是人造的,所以不能用来买商城的商品" "text": "食用后可以提升光耀系英雄的觉醒等级"
}, },
"sale": [ "sale": [
{ {
@ -1519,7 +1519,7 @@
"synthetize_deplete": [], "synthetize_deplete": [],
"tipstxt": { "tipstxt": {
"key": "itemtipstxt_50012", "key": "itemtipstxt_50012",
"text": "涌动声波-高级不足" "text": "光耀美食-高级不足"
} }
}, },
{ {
@ -1546,8 +1546,8 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10009", "img": "wp_icon_10029",
"ico": "wp_icon_10009", "ico": "wp_icon_10029",
"intr": { "intr": {
"key": "itemdesc_60001", "key": "itemdesc_60001",
"text": "可以任选一件5星装备" "text": "可以任选一件5星装备"
@ -1583,8 +1583,8 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10009", "img": "wp_icon_10029",
"ico": "wp_icon_10009", "ico": "wp_icon_10029",
"intr": { "intr": {
"key": "itemdesc_60002", "key": "itemdesc_60002",
"text": "可以随机获得一件5星装备" "text": "可以随机获得一件5星装备"
@ -1620,8 +1620,8 @@
"isani": 0, "isani": 0,
"star": 0, "star": 0,
"race": 0, "race": 0,
"img": "wp_icon_10009", "img": "wp_icon_10030",
"ico": "wp_icon_10009", "ico": "wp_icon_10030",
"intr": { "intr": {
"key": "itemdesc_60003", "key": "itemdesc_60003",
"text": "可以获得一套5星装备" "text": "可以获得一套5星装备"

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -37,7 +37,7 @@
"id": "shop", "id": "shop",
"name": { "name": {
"key": "opencond_name_10003", "key": "opencond_name_10003",
"text": "商店" "text": "购物"
}, },
"main": 1, "main": 1,
"optional": "", "optional": "",
@ -67,6 +67,57 @@
}, },
"uiid": 0 "uiid": 0
}, },
{
"id": "mall",
"name": {
"key": "opencond_name_10003",
"text": "商城"
},
"main": 999,
"optional": "",
"wkqbx": 2,
"kqbx": 0,
"img": "zc_icon_01",
"prompt": {
"key": "opencond_prompt_mall",
"text": "功能暂未开启"
},
"uiid": 0
},
{
"id": "rdtask",
"name": {
"key": "opencond_name_10003",
"text": "随机任务总览"
},
"main": 1,
"optional": "",
"wkqbx": 0,
"kqbx": 0,
"img": "zc_icon_01",
"prompt": {
"key": "opencond_prompt_rdtask",
"text": "功能暂未开启"
},
"uiid": 0
},
{
"id": "currency",
"name": {
"key": "opencond_name_10003",
"text": "货币栏"
},
"main": 999,
"optional": "",
"wkqbx": 2,
"kqbx": 0,
"img": "zc_icon_01",
"prompt": {
"key": "opencond_prompt_currency",
"text": "功能暂未开启"
},
"uiid": 0
},
{ {
"id": "alliance", "id": "alliance",
"name": { "name": {

View File

@ -4,7 +4,7 @@
"group": 1, "group": 1,
"subgroup": 0, "subgroup": 0,
"type": 2, "type": 2,
"preTid": 0, "preTid": 100104,
"condition": [ "condition": [
104 104
], ],
@ -79,6 +79,19 @@
1008 1008
] ]
}, },
{
"id": 100200,
"group": 3,
"subgroup": 0,
"type": 2,
"preTid": 100104,
"condition": [
0
],
"sidequest": [
2035
]
},
{ {
"id": 100201, "id": 100201,
"group": 2, "group": 2,
@ -212,9 +225,9 @@
0 0
], ],
"sidequest": [ "sidequest": [
2016, 2036,
2017, 2037,
2018 2038
] ]
}, },
{ {
@ -227,7 +240,9 @@
0 0
], ],
"sidequest": [ "sidequest": [
2019 2016,
2017,
2018
] ]
}, },
{ {
@ -240,7 +255,7 @@
0 0
], ],
"sidequest": [ "sidequest": [
2020 2019
] ]
}, },
{ {
@ -253,9 +268,7 @@
0 0
], ],
"sidequest": [ "sidequest": [
2021, 2020
2022,
2023
] ]
}, },
{ {
@ -268,9 +281,9 @@
0 0
], ],
"sidequest": [ "sidequest": [
2024, 2021,
2025, 2022,
2026 2023
] ]
}, },
{ {
@ -283,9 +296,9 @@
0 0
], ],
"sidequest": [ "sidequest": [
2027, 2024,
2028, 2025,
2029 2026
] ]
}, },
{ {
@ -297,6 +310,21 @@
"condition": [ "condition": [
0 0
], ],
"sidequest": [
2027,
2028,
2029
]
},
{
"id": 100217,
"group": 2,
"subgroup": 0,
"type": 2,
"preTid": 100216,
"condition": [
0
],
"sidequest": [ "sidequest": [
2030, 2030,
2031, 2031,

View File

@ -217,7 +217,7 @@
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100211 "nextTid": 100212
}, },
{ {
"id": 200011, "id": 200011,
@ -227,7 +227,7 @@
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100213 "nextTid": 100214
}, },
{ {
"id": 200012, "id": 200012,
@ -287,7 +287,7 @@
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100212 "nextTid": 100213
}, },
{ {
"id": 200018, "id": 200018,
@ -297,7 +297,7 @@
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100213 "nextTid": 100214
}, },
{ {
"id": 200019, "id": 200019,
@ -307,7 +307,7 @@
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100215 "nextTid": 100216
}, },
{ {
"id": 200020, "id": 200020,
@ -327,6 +327,26 @@
"needItem": [ "needItem": [
0 0
], ],
"nextTid": 100216 "nextTid": 100217
},
{
"id": 200022,
"num": 1,
"preTid": 0,
"gotoLevel": 0,
"needItem": [
0
],
"nextTid": -1
},
{
"id": 200023,
"num": 1,
"preTid": 0,
"gotoLevel": 0,
"needItem": [
0
],
"nextTid": 100211
} }
] ]

View File

@ -37,8 +37,8 @@
"datatype": 2, "datatype": 2,
"type": 4, "type": 4,
"inited": [], "inited": [],
"data1": 25001, "data1": 25004,
"data2": 20, "data2": 10,
"data3": 0, "data3": 0,
"data4": 0, "data4": 0,
"data5": 0 "data5": 0
@ -554,8 +554,8 @@
"type": 46, "type": 46,
"inited": [], "inited": [],
"data1": 1, "data1": 1,
"data2": 1, "data2": 6,
"data3": 1, "data3": 0,
"data4": 0, "data4": 0,
"data5": 0 "data5": 0
}, },
@ -718,7 +718,7 @@
"datatype": 2, "datatype": 2,
"type": 61, "type": 61,
"inited": [], "inited": [],
"data1": 101, "data1": 109,
"data2": 0, "data2": 0,
"data3": 0, "data3": 0,
"data4": 0, "data4": 0,
@ -828,7 +828,799 @@
"datatype": 2, "datatype": 2,
"type": 70, "type": 70,
"inited": [], "inited": [],
"data1": 101, "data1": 109,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10001,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10002,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 5,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10003,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 10,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10004,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 20,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10005,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 50,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10006,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 100,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10007,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 200,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10008,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 300,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10009,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 500,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10010,
"datatype": 2,
"type": 24,
"inited": [],
"data1": 1000,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10101,
"datatype": 2,
"type": 7,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10201,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10202,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 5,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10203,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 10,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10204,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 20,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10205,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 50,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10206,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 100,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10207,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 200,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10208,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 300,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10209,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 500,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10210,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 1000,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10301,
"datatype": 2,
"type": 18,
"inited": [],
"data1": 1,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10302,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 5,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10303,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 10,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10304,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 20,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10305,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 50,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10306,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 100,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10307,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 200,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10308,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 300,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10309,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 500,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10310,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 1000,
"data2": 5,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10401,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 1,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10402,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 5,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10403,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 10,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10404,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 20,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10405,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 50,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10406,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 100,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10407,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 200,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10408,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 300,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10409,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 500,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10410,
"datatype": 2,
"type": 50,
"inited": [],
"data1": 1000,
"data2": 6,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10501,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10502,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 5,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10503,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 10,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10504,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 20,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10505,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 30,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10506,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 50,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10507,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 70,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10508,
"datatype": 2,
"type": 58,
"inited": [],
"data1": 100,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10601,
"datatype": 2,
"type": 62,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10602,
"datatype": 2,
"type": 62,
"inited": [],
"data1": 5,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10603,
"datatype": 2,
"type": 62,
"inited": [],
"data1": 99,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10701,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10702,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 5,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10703,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 10,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10704,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 20,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10705,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 50,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10706,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 100,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10707,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 200,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10708,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 300,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10709,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 500,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10710,
"datatype": 2,
"type": 64,
"inited": [],
"data1": 1000,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10801,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 1,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10802,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 5,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10803,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 10,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10804,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 20,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10805,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 50,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10806,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 100,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10807,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 200,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10808,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 300,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10809,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 500,
"data2": 0,
"data3": 0,
"data4": 0,
"data5": 0
},
{
"id": 10810,
"datatype": 2,
"type": 8,
"inited": [],
"data1": 1000,
"data2": 0, "data2": 0,
"data3": 0, "data3": 0,
"data4": 0, "data4": 0,

View File

@ -471,7 +471,7 @@
20004 20004
], ],
"endTid": [ "endTid": [
171 -1
], ],
"storyEnd": 0, "storyEnd": 0,
"reward": [ "reward": [
@ -569,7 +569,7 @@
"EntityInteractive": [ "EntityInteractive": [
false false
], ],
"modelaction": "", "modelaction": "Enter",
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -90, "y": -90,
@ -588,7 +588,7 @@
"endTid": [ "endTid": [
-1 -1
], ],
"storyEnd": 311, "storyEnd": 0,
"reward": [ "reward": [
{ {
"ChooseId": 20008, "ChooseId": 20008,
@ -693,7 +693,7 @@
200015 200015
], ],
"endTid": [ "endTid": [
-1 118
], ],
"storyEnd": 0, "storyEnd": 0,
"reward": [], "reward": [],
@ -758,12 +758,11 @@
200015 200015
], ],
"endTid": [ "endTid": [
152, 104
146
], ],
"storyEnd": 317, "storyEnd": 317,
"reward": [], "reward": [],
"nextTid": 100210, "nextTid": 100211,
"CD": 0 "CD": 0
}, },
{ {
@ -863,13 +862,13 @@
"Reward": [ "Reward": [
{ {
"a": "hero", "a": "hero",
"t": "45921", "t": "43901",
"n": 1 "n": 5
} }
] ]
} }
], ],
"nextTid": 100211, "nextTid": 100212,
"CD": 0 "CD": 0
}, },
{ {
@ -962,9 +961,9 @@
"endTid": [ "endTid": [
158 158
], ],
"storyEnd": 322, "storyEnd": 0,
"reward": [], "reward": [],
"nextTid": 100212, "nextTid": 100213,
"CD": 0 "CD": 0
}, },
{ {
@ -997,7 +996,7 @@
], ],
"storyEnd": 322, "storyEnd": 322,
"reward": [], "reward": [],
"nextTid": 100213, "nextTid": 100214,
"CD": 0 "CD": 0
}, },
{ {
@ -1045,7 +1044,7 @@
] ]
} }
], ],
"nextTid": 100214, "nextTid": 100215,
"CD": 0 "CD": 0
}, },
{ {
@ -1141,7 +1140,7 @@
], ],
"storyEnd": 0, "storyEnd": 0,
"reward": [], "reward": [],
"nextTid": 100215, "nextTid": 100216,
"CD": 0 "CD": 0
}, },
{ {
@ -1228,12 +1227,9 @@
"enableAi": false, "enableAi": false,
"boxreplace": "", "boxreplace": "",
"timeline": "", "timeline": "",
"chooseId": [ "chooseId": [],
200021,
200020
],
"endTid": [ "endTid": [
106 -1
], ],
"storyEnd": 0, "storyEnd": 0,
"reward": [], "reward": [],
@ -1293,13 +1289,16 @@
"enableAi": false, "enableAi": false,
"boxreplace": "", "boxreplace": "",
"timeline": "", "timeline": "",
"chooseId": [], "chooseId": [
200021,
200020
],
"endTid": [ "endTid": [
-1 106
], ],
"storyEnd": 329, "storyEnd": 329,
"reward": [], "reward": [],
"nextTid": 100216, "nextTid": 100217,
"CD": 0 "CD": 0
}, },
{ {
@ -1438,7 +1437,7 @@
"EntityChange": [], "EntityChange": [],
"EntityStateChange": [], "EntityStateChange": [],
"EntityInteractive": [], "EntityInteractive": [],
"modelaction": "Enter", "modelaction": "",
"rotation": { "rotation": {
"x": 0, "x": 0,
"y": -90, "y": -90,
@ -1458,5 +1457,134 @@
"reward": [], "reward": [],
"nextTid": 100207, "nextTid": 100207,
"CD": 0 "CD": 0
},
{
"id": 2035,
"objType": 1,
"location": "middle",
"point": "model_07",
"storyBegin": 999,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "Enter",
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"modelstate": 0,
"popup": "",
"special": "",
"enableAi": false,
"boxreplace": "",
"timeline": "",
"chooseId": [
200022
],
"endTid": [
-1
],
"storyEnd": 0,
"reward": [],
"nextTid": 0,
"CD": 0
},
{
"id": 2036,
"objType": 1,
"location": "middle",
"point": "model_07",
"storyBegin": 338,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"rotation": {
"x": 0,
"y": -180,
"z": 0
},
"modelstate": 0,
"popup": "",
"special": "",
"enableAi": false,
"boxreplace": "",
"timeline": "",
"chooseId": [
200023,
200015
],
"endTid": [
146
],
"storyEnd": 0,
"reward": [],
"nextTid": 0,
"CD": 0
},
{
"id": 2037,
"objType": 1,
"location": "middle",
"point": "model_02",
"storyBegin": 339,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"rotation": {
"x": 0,
"y": -90,
"z": 0
},
"modelstate": 0,
"popup": "",
"special": "",
"enableAi": false,
"boxreplace": "",
"timeline": "",
"chooseId": [],
"endTid": [
-1
],
"storyEnd": 0,
"reward": [],
"nextTid": -1,
"CD": 0
},
{
"id": 2038,
"objType": 1,
"location": "middle",
"point": "model_03",
"storyBegin": 340,
"Entity": [],
"EntityChange": [],
"EntityStateChange": [],
"EntityInteractive": [],
"modelaction": "",
"rotation": {
"x": 0,
"y": 90,
"z": 0
},
"modelstate": 0,
"popup": "",
"special": "",
"enableAi": false,
"boxreplace": "",
"timeline": "",
"chooseId": [],
"endTid": [
-1
],
"storyEnd": 0,
"reward": [],
"nextTid": -1,
"CD": 0
} }
] ]

View File

@ -29,13 +29,18 @@
{ {
"a": "attr", "a": "attr",
"t": "diamond", "t": "diamond",
"n": 20 "n": 50
} }
], ],
"shopitem": [ "shopitem": [
10001, 10001,
10002, 10001,
10003 10001,
10001,
10001,
10001,
10001,
10001
] ]
}, },
{ {
@ -43,7 +48,7 @@
"tab": 2, "tab": 2,
"shopname": { "shopname": {
"key": "shop_2", "key": "shop_2",
"text": "钻石商店" "text": "友情商店"
}, },
"upper_shop": { "upper_shop": {
"key": "", "key": "",
@ -52,7 +57,7 @@
"needshow": [ "needshow": [
{ {
"a": "attr", "a": "attr",
"t": "gold", "t": "friend",
"n": 1 "n": 1
}, },
{ {
@ -63,27 +68,10 @@
], ],
"rtype": 2, "rtype": 2,
"rtime": 1, "rtime": 1,
"rnum": 5, "rnum": -1,
"rneed": [ "rneed": [],
{
"a": "attr",
"t": "diamond",
"n": 20
}
],
"shopitem": [ "shopitem": [
20001, 20001
20002,
20003,
20004,
20005,
20006,
20007,
20008,
20009,
20010,
20011,
20012
] ]
}, },
{ {
@ -114,7 +102,9 @@
"rnum": -1, "rnum": -1,
"rneed": [], "rneed": [],
"shopitem": [ "shopitem": [
10005 30001,
30002,
30003
] ]
}, },
{ {
@ -145,39 +135,8 @@
"rnum": -1, "rnum": -1,
"rneed": [], "rneed": [],
"shopitem": [ "shopitem": [
10006 40001,
] 40002
},
{
"shopid": 5,
"tab": 5,
"shopname": {
"key": "shop_5",
"text": "联盟商店"
},
"upper_shop": {
"key": "shop_title1",
"text": "玩法商店"
},
"needshow": [
{
"a": "attr",
"t": "gold",
"n": 1
},
{
"a": "attr",
"t": "diamond",
"n": 1
}
],
"rtype": 2,
"rtime": 14,
"rnum": -1,
"rneed": [],
"shopitem": [
10007,
10008
] ]
} }
] ]

File diff suppressed because it is too large Load Diff

View File

@ -2692,10 +2692,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
300, 150,
1, 1,
5, 5,
500 250
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -2736,10 +2736,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
300, 150,
1, 1,
5, 5,
600 300
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -2780,10 +2780,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
300, 150,
1, 1,
5, 5,
600 300
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -2824,10 +2824,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
300, 150,
1, 1,
5, 5,
700 350
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -2868,10 +2868,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
300, 150,
1, 1,
5, 5,
700 350
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [ "SucFollowSK": [
@ -3492,10 +3492,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
800, 400,
1, 1,
5, 5,
1000 500
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -3554,10 +3554,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
800, 400,
1, 1,
5, 5,
1100 550
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -3576,10 +3576,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
800, 400,
1, 1,
5, 5,
1200 600
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -3598,10 +3598,10 @@
"Argu": [ "Argu": [
1, 1,
4, 4,
800, 400,
1, 1,
5, 5,
1400 700
], ],
"FollowSK": [], "FollowSK": [],
"SucFollowSK": [], "SucFollowSK": [],
@ -9176,10 +9176,10 @@
"Where": "", "Where": "",
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 3,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
3, 1,
4, 4,
500 500
], ],
@ -9214,10 +9214,10 @@
"Where": "", "Where": "",
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 3,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
3, 1,
4, 4,
550 550
], ],
@ -9252,10 +9252,10 @@
"Where": "", "Where": "",
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 3,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
3, 1,
4, 4,
550 550
], ],
@ -9290,10 +9290,10 @@
"Where": "", "Where": "",
"Order": "", "Order": "",
"Limit": 1, "Limit": 1,
"ExecuteCnt": 1, "ExecuteCnt": 3,
"Type": 1, "Type": 1,
"Argu": [ "Argu": [
3, 1,
4, 4,
600 600
], ],
@ -9891,5 +9891,281 @@
"SucFollowSK": [], "SucFollowSK": [],
"FailFollowSK": [], "FailFollowSK": [],
"MustHit": false "MustHit": false
},
{
"Id": 251002111,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 1,
"Argu": [
1,
4,
1000
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251002211,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 1,
"Argu": [
1,
4,
1200
],
"FollowSK": [],
"SucFollowSK": [
251002212
],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251002212,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 3,
"Argu": [
390001007,
500,
2,
1
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251003111,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 1,
"Argu": [
1,
4,
1000
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251003211,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 1,
"Argu": [
1,
4,
1200
],
"FollowSK": [],
"SucFollowSK": [
251003212
],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251003212,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 3,
"Argu": [
390001105,
250,
1,
1
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251004111,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 2,
"Type": 1,
"Argu": [
1,
4,
500
],
"FollowSK": [],
"SucFollowSK": [
251005112
],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251004112,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 3,
"Argu": [
390001007,
200,
1
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251004211,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 1,
"Argu": [
1,
4,
1800
],
"FollowSK": [],
"SucFollowSK": [
251005212
],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251004212,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 3,
"Argu": [
390001006,
200,
2
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251005111,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 2,
"Type": 1,
"Argu": [
1,
4,
500
],
"FollowSK": [],
"SucFollowSK": [
251005112
],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251005112,
"EmitPR": 200,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 11,
"Argu": [
-200
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251005211,
"EmitPR": 1000,
"From": 2,
"Where": "",
"Order": "",
"Limit": 10,
"ExecuteCnt": 2,
"Type": 1,
"Argu": [
1,
4,
500
],
"FollowSK": [],
"SucFollowSK": [
251005212
],
"FailFollowSK": [],
"MustHit": false
},
{
"Id": 251005212,
"EmitPR": 1000,
"From": 4,
"Where": "",
"Order": "",
"Limit": 1,
"ExecuteCnt": 1,
"Type": 11,
"Argu": [
-100
],
"FollowSK": [],
"SucFollowSK": [],
"FailFollowSK": [],
"MustHit": false
} }
] ]

View File

@ -6963,5 +6963,205 @@
}, },
"buffid": [], "buffid": [],
"map": "" "map": ""
},
{
"id": 151002111,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151002111",
"text": "盾击"
},
"ico": "jn_icon_046",
"act": "Skill_1",
"Type": 1,
"CD": 1,
"Target": 2,
"ChildSkill": {
"Id": [
251002111
]
},
"Desc": {
"key": "skill_1510021111",
"text": "对敌方一个目标发起攻击造成攻击力100%的伤害"
},
"buffid": [],
"map": ""
},
{
"id": 151002211,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151002211",
"text": "力倾"
},
"ico": "jn_icon_047",
"act": "Skill_2",
"Type": 1,
"CD": 2,
"Target": 2,
"ChildSkill": {
"Id": [
251002211
]
},
"Desc": {
"key": "skill_1510022111",
"text": "对敌方一个目标发起攻击造成攻击力120%的伤害。并有50%概率附加2回合【防御下降】状态。"
},
"buffid": [],
"map": ""
},
{
"id": 151003111,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151003111",
"text": "攻守之势"
},
"ico": "jn_icon_048",
"act": "Skill_1",
"Type": 1,
"CD": 1,
"Target": 2,
"ChildSkill": {
"Id": [
251003111
]
},
"Desc": {
"key": "skill_1510031111",
"text": "对敌方一个目标发起攻击造成攻击力100%的伤害"
},
"buffid": [],
"map": ""
},
{
"id": 151003211,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151003211",
"text": "重枪冲击"
},
"ico": "jn_icon_049",
"act": "Skill_2",
"Type": 1,
"CD": 2,
"Target": 2,
"ChildSkill": {
"Id": [
251003211
]
},
"Desc": {
"key": "skill_1510032111",
"text": "对敌方一个目标发起攻击造成攻击力120%的伤害。并有25%概率附加1回合【眩晕】状态。"
},
"buffid": [],
"map": ""
},
{
"id": 151004111,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151004111",
"text": "野性之力"
},
"ico": "jn_icon_050",
"act": "Skill_1",
"Type": 1,
"CD": 1,
"Target": 2,
"ChildSkill": {
"Id": [
251004111
]
},
"Desc": {
"key": "skill_1510041111",
"text": "对敌方1个目标发起2段攻击每段可造成攻击力50%的伤害并有20%概率减少目标20%行动值。"
},
"buffid": [],
"map": ""
},
{
"id": 151004211,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151004211",
"text": "绝命上挑"
},
"ico": "jn_icon_051",
"act": "Skill_2",
"Type": 1,
"CD": 3,
"Target": 2,
"ChildSkill": {
"Id": [
251004211
]
},
"Desc": {
"key": "skill_1510042111",
"text": "对敌方全体发起2段攻击每段可造成攻击50%的伤害若发生暴击可使目标减少10%行动值。"
},
"buffid": [],
"map": ""
},
{
"id": 151005111,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151005111",
"text": "双重攻势"
},
"ico": "jn_icon_052",
"act": "Skill_1",
"Type": 1,
"CD": 1,
"Target": 2,
"ChildSkill": {
"Id": [
251005111
]
},
"Desc": {
"key": "skill_1510051111",
"text": "对敌方一个目标发起两段攻击每段造成攻击力75%的伤害"
},
"buffid": [],
"map": ""
},
{
"id": 151005211,
"level": 1,
"MaxLV": 1,
"Name": {
"key": "skillname_151005211",
"text": "力之回旋"
},
"ico": "jn_icon_053",
"act": "Skill_2",
"Type": 1,
"CD": 3,
"Target": 2,
"ChildSkill": {
"Id": [
251005211
]
},
"Desc": {
"key": "skill_1510052111",
"text": "对敌方1个目标发起攻击造成攻击力180%的伤害并附加2回合【攻击下降】状态。"
},
"buffid": [],
"map": ""
} }
] ]

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -87,7 +87,7 @@ const (
APP_TESTCASE_INTRO = "选择左侧的测试接口" APP_TESTCASE_INTRO = "选择左侧的测试接口"
// toolbar // toolbar
TOOLBAR_MONITOR = "监控" TOOLBAR_MONITOR = "推送"
TOOLBAR_TESTER = "接口测试" TOOLBAR_TESTER = "接口测试"
TOOLBAR_GEN = "Luban" TOOLBAR_GEN = "Luban"
TOOLBAR_SEC = "密码器" TOOLBAR_SEC = "密码器"

View File

@ -18,6 +18,8 @@ import (
"github.com/BabySid/gobase" "github.com/BabySid/gobase"
"github.com/Pallinder/go-randomdata" "github.com/Pallinder/go-randomdata"
"github.com/sirupsen/logrus" "github.com/sirupsen/logrus"
"github.com/go-vgo/robotgo"
) )
var ( var (
@ -98,6 +100,10 @@ func (ui *MainWindowImpl) createWindowContainer() {
ui.at = newAppContainer(appRegister, ui.obs) ui.at = newAppContainer(appRegister, ui.obs)
content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, ui.toys.widget, ui.at) content := container.NewBorder(ui.tb.toolbar, ui.sb.widget, nil, ui.toys.widget, ui.at)
ui.w.SetContent(content) ui.w.SetContent(content)
// 屏幕最大
width, height := robotgo.GetScaleSize()
ui.w.Resize(fyne.NewSize(float32(width), float32(height)))
ui.w.CenterOnScreen()
ui.w.SetCloseIntercept(ui.quiteHandle) ui.w.SetCloseIntercept(ui.quiteHandle)
} }
@ -106,7 +112,13 @@ func (ui *MainWindowImpl) SetStatusMsg(msg string) {
} }
func (ui *MainWindowImpl) quiteHandle() { func (ui *MainWindowImpl) quiteHandle() {
ui.app.Quit() dialog.ShowConfirm("推出系统", "确定退出吗", func(b bool) {
if !b {
return
}
ui.app.Quit()
}, ui.w)
} }
// CreateWindow .... // CreateWindow ....

View File

@ -363,7 +363,7 @@ func (this *appGen) LazyInit(obs observer.Observer) error {
quesWin := fyne.CurrentApp().NewWindow("使用说明") quesWin := fyne.CurrentApp().NewWindow("使用说明")
quesWin.SetContent(widget.NewRichTextFromMarkdown( quesWin.SetContent(widget.NewRichTextFromMarkdown(
` `
1. 更新excel文件 1. SVN更新excel文件
2. 配置Luban(已做可忽略) 2. 配置Luban(已做可忽略)
3. 选择**生成类型**,单击生成 3. 选择**生成类型**,单击生成
4. 选择要覆盖的文件 4. 选择要覆盖的文件
@ -475,6 +475,12 @@ func (f *fileList) changeItem(tmpDir, projectDir string) {
return return
} }
defer func() {
if len(tmpFiles) == 0 || len(f.cachedList.Items) == 0 {
showTip("没有任何变更的文件,请确定SVN拉取最新文件")
}
}()
projectFiles, err := ioutil.ReadDir(projectDir) projectFiles, err := ioutil.ReadDir(projectDir)
if err != nil { if err != nil {
logrus.Error(err) logrus.Error(err)

View File

@ -21,7 +21,11 @@ func (this *RtaskDoitView) CreateView(t *model.TestCase) fyne.CanvasObject {
taskId := widget.NewEntry() taskId := widget.NewEntry()
taskId.PlaceHolder = "任务ID" taskId.PlaceHolder = "任务ID"
subTaskId := widget.NewEntry()
subTaskId.PlaceHolder = "支线任务ID"
this.form.AppendItem(widget.NewFormItem("任务ID", taskId)) this.form.AppendItem(widget.NewFormItem("任务ID", taskId))
this.form.AppendItem(widget.NewFormItem("支线任务ID", subTaskId))
this.form.OnSubmit = func() { this.form.OnSubmit = func() {
if taskId.Text == "" { if taskId.Text == "" {
@ -29,7 +33,8 @@ func (this *RtaskDoitView) CreateView(t *model.TestCase) fyne.CanvasObject {
return return
} }
if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskApplyReq{ if err := service.GetPttService().SendToClient(t.MainType, t.SubType, &pb.RtaskApplyReq{
RtaskId: cast.ToInt32(taskId.Text), RtaskId: cast.ToInt32(taskId.Text),
RtaskSubId: cast.ToInt32(subTaskId.Text),
}); err != nil { }); err != nil {
logrus.Error(err) logrus.Error(err)
} }

12
go.mod
View File

@ -44,11 +44,23 @@ require (
require ( require (
github.com/BurntSushi/toml v1.2.0 // indirect github.com/BurntSushi/toml v1.2.0 // indirect
github.com/StackExchange/wmi v1.2.1 // indirect
github.com/go-vgo/robotgo v0.100.10 // indirect
github.com/jtolds/gls v4.20.0+incompatible // indirect github.com/jtolds/gls v4.20.0+incompatible // indirect
github.com/kr/fs v0.1.0 // indirect github.com/kr/fs v0.1.0 // indirect
github.com/lxn/win v0.0.0-20210218163916-a377121e959e // indirect
github.com/onsi/gomega v1.20.0 // indirect github.com/onsi/gomega v1.20.0 // indirect
github.com/otiai10/gosseract v2.2.1+incompatible // indirect
github.com/robotn/gohook v0.31.3 // indirect
github.com/robotn/xgb v0.0.0-20190912153532-2cb92d044934 // indirect
github.com/robotn/xgbutil v0.0.0-20190912154524-c861d6f87770 // indirect
github.com/rogpeppe/go-internal v1.8.1 // indirect github.com/rogpeppe/go-internal v1.8.1 // indirect
github.com/shirou/gopsutil v3.21.10+incompatible // indirect
github.com/smartystreets/assertions v1.2.0 // indirect github.com/smartystreets/assertions v1.2.0 // indirect
github.com/vcaesar/gops v0.21.3 // indirect
github.com/vcaesar/imgo v0.30.0 // indirect
github.com/vcaesar/keycode v0.10.0 // indirect
github.com/vcaesar/tt v0.20.0 // indirect
) )
require ( require (

29
go.sum
View File

@ -53,6 +53,8 @@ fyne.io/systray v1.10.1-0.20220621085403-9a2652634e93/go.mod h1:oM2AQqGJ1AMo4nNq
git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg= git.apache.org/thrift.git v0.0.0-20180902110319-2566ecd5d999/go.mod h1:fPE2ZNJGynbRyZ4dJvy6G277gSllfV2HJqblrnkyeyg=
github.com/BabySid/gobase v0.0.0-20220614103908-39ac0a583c02 h1:4VkwDX+9araWz3MeAx/3EAWuQTu+dYnJqBlYrk86i4k= github.com/BabySid/gobase v0.0.0-20220614103908-39ac0a583c02 h1:4VkwDX+9araWz3MeAx/3EAWuQTu+dYnJqBlYrk86i4k=
github.com/BabySid/gobase v0.0.0-20220614103908-39ac0a583c02/go.mod h1:psRlcjEywZdxNf9jp6IdYY7VcAsYPtcnLHYQ+dWG5uw= github.com/BabySid/gobase v0.0.0-20220614103908-39ac0a583c02/go.mod h1:psRlcjEywZdxNf9jp6IdYY7VcAsYPtcnLHYQ+dWG5uw=
github.com/BurntSushi/freetype-go v0.0.0-20160129220410-b763ddbfe298/go.mod h1:D+QujdIlUNfa0igpNMk6UIvlb6C252URs4yupRUV4lQ=
github.com/BurntSushi/graphics-go v0.0.0-20160129215708-b43f31a4a966/go.mod h1:Mid70uvE93zn9wgF92A/r5ixgnvX8Lh68fxp9KQBaI0=
github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=
github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ= github.com/BurntSushi/toml v1.1.0/go.mod h1:CxXYINrC8qIiEnFrOxCa7Jy5BFHlXnUU2pbicEuybxQ=
github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0= github.com/BurntSushi/toml v1.2.0 h1:Rt8g24XnyGTyglgET/PRUNlrUeu9F5L+7FilkXfZgs0=
@ -64,6 +66,8 @@ github.com/Pallinder/go-randomdata v1.2.0 h1:DZ41wBchNRb/0GfsePLiSwb0PHZmT67XY00
github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y= github.com/Pallinder/go-randomdata v1.2.0/go.mod h1:yHmJgulpD2Nfrm0cR9tI/+oAgRqCQQixsA8HyRZfV9Y=
github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U= github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI= github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
github.com/StackExchange/wmi v1.2.1 h1:VIkavFPXSjcnS+O8yTq7NI32k0R5Aj+v39y29VYDOSA=
github.com/StackExchange/wmi v1.2.1/go.mod h1:rcmrprowKIVzvc+NUiLncP2uuArMWLCbu9SBzvHz7e8=
github.com/agiledragon/gomonkey/v2 v2.8.0 h1:u2K2nNGyk0ippzklz1CWalllEB9ptD+DtSXeCX5O000= github.com/agiledragon/gomonkey/v2 v2.8.0 h1:u2K2nNGyk0ippzklz1CWalllEB9ptD+DtSXeCX5O000=
github.com/agiledragon/gomonkey/v2 v2.8.0/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY= github.com/agiledragon/gomonkey/v2 v2.8.0/go.mod h1:ap1AmDzcVOAz1YpeJ3TCzIgstoaWLA6jbbgxfB4w2iY=
github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c= github.com/akavel/rsrc v0.10.2/go.mod h1:uLoCtb9J+EyAqh+26kdrTgmzRBFPGOolLWKpdxkKq+c=
@ -197,6 +201,7 @@ github.com/go-logr/logr v1.2.3 h1:2DntVwHkVopvECVRSlL5PSo9eG+cAkDCuckLubN+rq0=
github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A= github.com/go-logr/logr v1.2.3/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag=
github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE=
github.com/go-ole/go-ole v1.2.5/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
github.com/go-ping/ping v0.0.0-20211130115550-779d1e919534 h1:dhy9OQKGBh4zVXbjwbxxHjRxMJtLXj3zfgpBYQaR4Q4= github.com/go-ping/ping v0.0.0-20211130115550-779d1e919534 h1:dhy9OQKGBh4zVXbjwbxxHjRxMJtLXj3zfgpBYQaR4Q4=
@ -221,6 +226,8 @@ github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/me
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0 h1:p104kn46Q8WdvHunIJ9dAyjPVtrBPhSr3KT2yUst43I=
github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE= github.com/go-task/slim-sprig v0.0.0-20210107165309-348f09dbbbc0/go.mod h1:fyg7847qk6SyHyPtNmDHnmrv/HOrqktSC+C9fM+CJOE=
github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M= github.com/go-test/deep v1.0.7 h1:/VSMRlnY/JSyqxQUzQLKVMAskpY/NZKFA5j2P+0pP2M=
github.com/go-vgo/robotgo v0.100.10 h1:bZe7AslG6oq5ops1SWUxsPfM9Z3QQvlqfA3ezxLFNO4=
github.com/go-vgo/robotgo v0.100.10/go.mod h1:7QeIpSHX7bjeXWRPxvQeKSx9mHI+3l80Ahq+CQF0C68=
github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0= github.com/gobuffalo/attrs v0.0.0-20190224210810-a9411de4debd/go.mod h1:4duuawTqi2wkkpB4ePgWMaai6/Kc6WEz83bhFwpHzj0=
github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY= github.com/gobuffalo/depgen v0.0.0-20190329151759-d478694a28d3/go.mod h1:3STtPUQYuzV0gBVOY3vy6CfMm/ljR4pABfrTeHNLHUY=
github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg= github.com/gobuffalo/depgen v0.1.0/go.mod h1:+ifsuy7fhi15RWncXQQKjWS9JPkdah5sZvtHc2RXGlg=
@ -486,6 +493,8 @@ github.com/lucor/goinfo v0.0.0-20210802170112-c078a2b0f08b/go.mod h1:PRq09yoB+Q2
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4=
github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I=
github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
github.com/lxn/win v0.0.0-20210218163916-a377121e959e h1:H+t6A/QJMbhCSEH5rAuRxh+CtW96g0Or0Fxa9IKr4uc=
github.com/lxn/win v0.0.0-20210218163916-a377121e959e/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk=
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo= github.com/magiconair/properties v1.8.6 h1:5ibWZ6iY0NctNGWo87LalDlEZ6R41TqbbDamhfG/Qzo=
github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/magiconair/properties v1.8.6/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
@ -582,6 +591,8 @@ github.com/onsi/gomega v1.18.1/go.mod h1:0q+aL8jAiMXy9hbwj2mr5GziHiwhAIQpFmmtT5h
github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q= github.com/onsi/gomega v1.20.0 h1:8W0cWlwFkflGPLltQvLRB7ZVD5HuP6ng320w2IS245Q=
github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo= github.com/onsi/gomega v1.20.0/go.mod h1:DtrZpjmvpn2mPm4YWQa0/ALMDj9v4YxLgojwPeREyVo=
github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8= github.com/openzipkin/zipkin-go v0.1.1/go.mod h1:NtoC/o8u3JlF1lSlyPNswIbeQH9bJTmOf0Erfk+hxe8=
github.com/otiai10/gosseract v2.2.1+incompatible h1:Ry5ltVdpdp4LAa2bMjsSJH34XHVOV7XMi41HtzL8X2I=
github.com/otiai10/gosseract v2.2.1+incompatible/go.mod h1:XrzWItCzCpFRZ35n3YtVTgq5bLAhFIkascoRo8G32QE=
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY= github.com/pascaldekloe/goe v0.1.0 h1:cBOtyMzM9HTpWjXfbbunk26uA6nG3a8n06Wieeh0MwY=
github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= github.com/pascaldekloe/goe v0.1.0/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
@ -629,6 +640,12 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 h1:N/ElC8H3+5X
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs= github.com/robfig/cron/v3 v3.0.1 h1:WdRxkvbJztn8LMz/QEvLN5sBU+xKpSqwwUO1Pjr4qDs=
github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro= github.com/robfig/cron/v3 v3.0.1/go.mod h1:eQICP3HwyT7UooqI/z+Ov+PtYAWygg1TEWWzGIFLtro=
github.com/robotn/gohook v0.31.3 h1:kGX8iukJ9ensVRwRKnTtdojAMQOpa6KFnXDi4OA4RaI=
github.com/robotn/gohook v0.31.3/go.mod h1:wyGik0yb4iwCfJjDprtNkTyxkgQWuKoVPQ3hkz6+6js=
github.com/robotn/xgb v0.0.0-20190912153532-2cb92d044934 h1:2lhSR8N3T6I30q096DT7/5AKEIcf1vvnnWAmS0wfnNY=
github.com/robotn/xgb v0.0.0-20190912153532-2cb92d044934/go.mod h1:SxQhJskUJ4rleVU44YvnrdvxQr0tKy5SRSigBrCgyyQ=
github.com/robotn/xgbutil v0.0.0-20190912154524-c861d6f87770 h1:2uX8QRLkkxn2EpAQ6I3KhA79BkdRZfvugJUzJadiJwk=
github.com/robotn/xgbutil v0.0.0-20190912154524-c861d6f87770/go.mod h1:svkDXUDQjUiWzLrA0OZgHc4lbOts3C+uRfP6/yjwYnU=
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.2.2/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
@ -659,6 +676,8 @@ github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAm
github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc= github.com/serialx/hashring v0.0.0-20200727003509-22c0c7ab6b1b/go.mod h1:/yeG0My1xr/u+HZrFQ1tOQQQQrOawfyMUH13ai5brBc=
github.com/sethvargo/go-password v0.2.0 h1:BTDl4CC/gjf/axHMaDQtw507ogrXLci6XRiLc7i/UHI= github.com/sethvargo/go-password v0.2.0 h1:BTDl4CC/gjf/axHMaDQtw507ogrXLci6XRiLc7i/UHI=
github.com/sethvargo/go-password v0.2.0/go.mod h1:Ym4Mr9JXLBycr02MFuVQ/0JHidNetSgbzutTr3zsYXE= github.com/sethvargo/go-password v0.2.0/go.mod h1:Ym4Mr9JXLBycr02MFuVQ/0JHidNetSgbzutTr3zsYXE=
github.com/shirou/gopsutil v3.21.10+incompatible h1:AL2kpVykjkqeN+MFe1WcwSBVUjGjvdU8/ubvCuXAjrU=
github.com/shirou/gopsutil v3.21.10+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
github.com/shirou/gopsutil/v3 v3.22.7 h1:flKnuCMfUUrO+oAvwAd6GKZgnPzr098VA/UJ14nhJd4= github.com/shirou/gopsutil/v3 v3.22.7 h1:flKnuCMfUUrO+oAvwAd6GKZgnPzr098VA/UJ14nhJd4=
github.com/shirou/gopsutil/v3 v3.22.7/go.mod h1:s648gW4IywYzUfE/KjXxUsqrqx/T2xO5VqOXxONeRfI= github.com/shirou/gopsutil/v3 v3.22.7/go.mod h1:s648gW4IywYzUfE/KjXxUsqrqx/T2xO5VqOXxONeRfI=
github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY= github.com/shurcooL/component v0.0.0-20170202220835-f88ec8f54cc4/go.mod h1:XhFIlyj5a1fBNx5aJTbKoIq0mNaPvOagO+HjB3EtxrY=
@ -780,6 +799,14 @@ github.com/valyala/bytebufferpool v1.0.0 h1:GqA5TC/0021Y/b9FG4Oi9Mr3q7XYx6Kllzaw
github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc= github.com/valyala/bytebufferpool v1.0.0/go.mod h1:6bBcMArwyJ5K/AmCkWv1jt77kVWyCJ6HpOuEn7z0Csc=
github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8= github.com/valyala/fastrand v1.1.0 h1:f+5HkLW4rsgzdNoleUOB69hyT9IlD2ZQh9GyDMfb5G8=
github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ= github.com/valyala/fastrand v1.1.0/go.mod h1:HWqCzkrkg6QXT8V2EXWvXCoow7vLwOFN002oeRzjapQ=
github.com/vcaesar/gops v0.21.3 h1:VR7amkxVv9CQfsotkXrmMyT19dVuNTa1PM/oopJeIc0=
github.com/vcaesar/gops v0.21.3/go.mod h1:3e2EnlZTI9/44bqzRwkeZ3s0ZQwK2Cn4QPLx8Ii8Agk=
github.com/vcaesar/imgo v0.30.0 h1:ODQVX0EFJEh+WkKahCBtE0SqcDCIjl/kjiOplR0Ouh8=
github.com/vcaesar/imgo v0.30.0/go.mod h1:8TGnt5hjaMgwDByvMFIzUDSh5uSea4n1tAbSvnhvA6U=
github.com/vcaesar/keycode v0.10.0 h1:Qx5QE8ZXHyRyjoA2QOxBp25OKMKB+zxMVqm0FWGV0d4=
github.com/vcaesar/keycode v0.10.0/go.mod h1:JNlY7xbKsh+LAGfY2j4M3znVrGEm5W1R8s/Uv6BJcfQ=
github.com/vcaesar/tt v0.20.0 h1:9t2Ycb9RNHcP0WgQgIaRKJBB+FrRdejuaL6uWIHuoBA=
github.com/vcaesar/tt v0.20.0/go.mod h1:GHPxQYhn+7OgKakRusH7KJ0M5MhywoeLb8Fcffs/Gtg=
github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU= github.com/viant/assertly v0.4.8/go.mod h1:aGifi++jvCrUaklKEKT0BU95igDNaqkvz+49uaYMPRU=
github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM= github.com/viant/toolbox v0.24.0/go.mod h1:OxMCG57V0PXuIP2HNQrtJf2CjqdmbrOx5EkMILuUhzM=
github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU= github.com/vmihailenco/msgpack/v5 v5.3.5 h1:5gO0H1iULLWGhs2H5tbAHIZTV8/cYafcFOr9znI5mJU=
@ -878,6 +905,7 @@ golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EH
golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU=
golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js=
golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
golang.org/x/image v0.0.0-20210628002857-a66eb6448b8d/go.mod h1:023OzeP/+EPmXeapQh35lcL3II3LrY8Ic+EFFKVhULM=
golang.org/x/image v0.0.0-20220601225756-64ec528b34cd h1:9NbNcTg//wfC5JskFW4Z3sqwVnjmJKHxLAol1bW2qgw= golang.org/x/image v0.0.0-20220601225756-64ec528b34cd h1:9NbNcTg//wfC5JskFW4Z3sqwVnjmJKHxLAol1bW2qgw=
golang.org/x/image v0.0.0-20220601225756-64ec528b34cd/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY= golang.org/x/image v0.0.0-20220601225756-64ec528b34cd/go.mod h1:doUCurBvlfPMKfmIpRIywoHmhN3VyhnoFDbvIEWF4hY=
golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= golang.org/x/lint v0.0.0-20180702182130-06c8688daad7/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
@ -1047,6 +1075,7 @@ golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7w
golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201204225414-ed752295db88/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=

View File

@ -62,7 +62,10 @@ func (this *apiComp) Awaken(session comm.IUserSession, req *pb.HeroAwakenReq) (c
if _hero.SameCount > 1 { //有堆叠的情况 if _hero.SameCount > 1 { //有堆叠的情况
// 克隆一个新的 // 克隆一个新的
_hero.SameCount -= 1 _hero.SameCount -= 1
_hero.JuexProperty = map[string]int32{}
newHero := this.module.modelHero.CloneNewHero(_hero) newHero := this.module.modelHero.CloneNewHero(_hero)
_hero.JuexProperty = map[string]int32{}
chanegCard = append(chanegCard, newHero) chanegCard = append(chanegCard, newHero)
_heroMap["isOverlying"] = false _heroMap["isOverlying"] = false
_heroMap["sameCount"] = 1 _heroMap["sameCount"] = 1

View File

@ -45,7 +45,7 @@ func (this *apiComp) ResonanceReset(session comm.IUserSession, req *pb.HeroReson
return return
} }
if _hero.ResonateNum*resonConfig.Energy >= _hero.DistributionResonate { if _hero.ResonateNum*resonConfig.Energy == _hero.DistributionResonate {
code = pb.ErrorCode_HeroNotNeedResonate // 已经是重置状态 code = pb.ErrorCode_HeroNotNeedResonate // 已经是重置状态
return return
} }

View File

@ -132,9 +132,20 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
// 堆叠情况 // 堆叠情况
if _hero.SameCount > 1 { if _hero.SameCount > 1 {
_hero.SameCount -= 1 _hero.SameCount -= 1
sz := make([]*pb.SkillData, 0)
for _, v := range _hero.NormalSkill {
sz = append(sz, &pb.SkillData{
SkillID: v.SkillID,
SkillLv: v.SkillLv,
})
v.SkillLv = 1
}
newHero := this.module.modelHero.CloneNewHero(_hero) newHero := this.module.modelHero.CloneNewHero(_hero)
ChangeList = append(ChangeList, newHero) ChangeList = append(ChangeList, newHero)
_hero.NormalSkill = sz
} }
_heroMap := map[string]interface{}{ _heroMap := map[string]interface{}{
"normalSkill": _hero.NormalSkill, "normalSkill": _hero.NormalSkill,
"isOverlying": false, "isOverlying": false,
@ -147,6 +158,7 @@ func (this *apiComp) StrengthenUpSkill(session comm.IUserSession, req *pb.HeroSt
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
return return
} }
/////
this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化 this.module.modelHero.ChangeHeroProperty(session, _hero) // 推送属性变化
ChangeList = append(ChangeList, _hero) ChangeList = append(ChangeList, _hero)
session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList}) session.SendMsg(string(this.module.GetType()), "change", &pb.HeroChangePush{List: ChangeList})

View File

@ -131,6 +131,7 @@ func (this *apiComp) StrengthenUpStar(session comm.IUserSession, req *pb.HeroStr
if _hero.SameCount > 1 { //有堆叠的情况 if _hero.SameCount > 1 { //有堆叠的情况
// 克隆一个新的 // 克隆一个新的
_hero.SameCount -= 1 _hero.SameCount -= 1
newHero := this.module.modelHero.CloneNewHero(_hero) newHero := this.module.modelHero.CloneNewHero(_hero)
chanegCard = append(chanegCard, newHero) chanegCard = append(chanegCard, newHero)
} }

View File

@ -52,6 +52,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
//this.module.Debug("StrengthenUplv", log.Field{Key: "hero", Value: _hero})
// 只有英雄卡才能升级 // 只有英雄卡才能升级
if _hero.CardType != comm.CardTypeHero { if _hero.CardType != comm.CardTypeHero {
code = pb.ErrorCode_HeroTypeErr code = pb.ErrorCode_HeroTypeErr
@ -192,7 +193,7 @@ func (this *apiComp) StrengthenUplv(session comm.IUserSession, req *pb.HeroStren
this.module.ModuleTask.SendToTask(session, comm.TaskTypeUpHeroLevel, &pb.TaskParam{Second: iLvUp}) this.module.ModuleTask.SendToTask(session, comm.TaskTypeUpHeroLevel, &pb.TaskParam{Second: iLvUp})
this.module.ModuleRtask.SendToRtask(session, comm.Rtype4, utils.ToInt32(_hero.HeroID), _hero.Lv) this.module.ModuleRtask.SendToRtask(session, comm.Rtype4, utils.ToInt32(_hero.HeroID), _hero.Lv)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype23, 1, _hero.Star, _hero.Lv) this.module.ModuleRtask.SendToRtask(session, comm.Rtype23, 1, _hero.Star, _hero.Lv)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype24, iLvUp) this.module.ModuleRtask.SendToRtask(session, comm.Rtype24, 1)
this.module.ModuleRtask.SendToRtask(session, comm.Rtype29, 1, _hero.Lv, utils.ToInt32(_hero.HeroID)) this.module.ModuleRtask.SendToRtask(session, comm.Rtype29, 1, _hero.Lv, utils.ToInt32(_hero.HeroID))
cfg := this.module.configure.GetHero(_hero.HeroID) cfg := this.module.configure.GetHero(_hero.HeroID)
if cfg != nil { if cfg != nil {

View File

@ -452,10 +452,14 @@ func (this *ModelHero) PropertyCompute(hero *pb.DBHero) {
lvGrow.Speed, 0, 0, 0, stargrowCfg.StarupSpeed) lvGrow.Speed, 0, 0, 0, stargrowCfg.StarupSpeed)
speed, _ := mengine.ParseAndExec(exprSpeed) speed, _ := mengine.ParseAndExec(exprSpeed)
hero.Property = map[string]int32{ hero.Property = map[string]int32{
comm.Hp: int32(math.Floor(hp)), comm.Hp: int32(math.Floor(hp)),
comm.Atk: int32(math.Floor(atk)), comm.Atk: int32(math.Floor(atk)),
comm.Def: int32(math.Floor(def)), comm.Def: int32(math.Floor(def)),
comm.Speed: int32(math.Floor(speed)), comm.Speed: int32(math.Floor(speed)),
comm.Cri: int32(lvGrow.Cri), //暴击
comm.Effhit: int32(lvGrow.Effhit), //效果命中
comm.Cridam: int32(lvGrow.Cridam), //暴击伤害
comm.Effre: int32(lvGrow.Effre), //效果抵抗
} }
} }
@ -541,10 +545,12 @@ func (this *ModelHero) AddCardExp(uid string, hero *pb.DBHero, exp int32) (newhe
hero.Exp = curExp hero.Exp = curExp
hero.IsOverlying = false hero.IsOverlying = false
hero.SameCount = 1 hero.SameCount = 1
this.moduleHero.Debugf("add hero exp :%v", hero)
if err := this.ChangeList(uid, hero.Id, update); err != nil { if err := this.ChangeList(uid, hero.Id, update); err != nil {
this.moduleHero.Errorf("add hero exp failed ChangeList %v", err)
code = pb.ErrorCode_DBError code = pb.ErrorCode_DBError
} }
} }
return return
} }

View File

@ -283,10 +283,14 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in
newhero *pb.DBHero newhero *pb.DBHero
_changeHero []*pb.DBHero // 变化的英雄 _changeHero []*pb.DBHero // 变化的英雄
) )
if heroObjID == "" {
return
}
_hero, code = this.GetHeroByObjID(session.GetUserId(), heroObjID) _hero, code = this.GetHeroByObjID(session.GetUserId(), heroObjID)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
} }
//this.Debug("AddHeroExp", log.Field{Key: "hero", Value: _hero})
newhero, code = this.modelHero.AddCardExp(session.GetUserId(), _hero, exp) newhero, code = this.modelHero.AddCardExp(session.GetUserId(), _hero, exp)
if code != pb.ErrorCode_Success { if code != pb.ErrorCode_Success {
return return
@ -295,7 +299,6 @@ func (this *Hero) AddHeroExp(session comm.IUserSession, heroObjID string, exp in
if newhero != nil { if newhero != nil {
_changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了 _changeHero = append(_changeHero, newhero) // 原来的英雄 只是数量变化了
} }
_changeHero = append(_changeHero, _hero)
session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero}) session.SendMsg(string(this.GetType()), "change", &pb.HeroChangePush{List: _changeHero})
return return
} }

View File

@ -64,7 +64,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.HuntingCha
hunting.Boss[req.BossType] += 1 hunting.Boss[req.BossType] += 1
mapData["boss"] = hunting.Boss mapData["boss"] = hunting.Boss
mapData["challengeTime"] = hunting.BossTime mapData["challengeTime"] = hunting.BossTime
if req.Report != nil && len(req.Report.Info.Redflist) > 0 { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
sz := make([]*pb.LineUp, 5) sz := make([]*pb.LineUp, 5)
for i, v := range req.Report.Info.Redflist[0].Team { for i, v := range req.Report.Info.Redflist[0].Team {
if v != nil { if v != nil {

View File

@ -60,7 +60,7 @@ func (this *Library) CreateLibrary(uid string, fids []int32, heroConfId string)
Uid: uid, Uid: uid,
Fid: fid, Fid: fid,
Hero: map[string]int32{}, Hero: map[string]int32{},
Prize: false, Prize: map[int32]int32{},
Fetterlv: 0, Fetterlv: 0,
} }

View File

@ -102,10 +102,12 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.MainlineCh
this.module.Debugf("DispenseRes err:+%v", res) this.module.Debugf("DispenseRes err:+%v", res)
} }
// 加经验 // 加经验
if req.Report != nil && len(req.Report.Info.Redflist) > 0 { if node.Episodetype != 5 && node.Episodetype != 7 {
for _, v := range req.Report.Info.Redflist[0].Team { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
if node.Exp > 0 { for _, v := range req.Report.Info.Redflist[0].Team {
this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp) if node.Exp > 0 {
this.module.ModuleHero.AddHeroExp(session, v.Oid, node.Exp)
}
} }
} }
} }

View File

@ -109,7 +109,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
} }
} else { } else {
// 记录爬塔明细数据 // 记录爬塔明细数据
if req.Report != nil && len(req.Report.Info.Redflist) > 0 { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
sz := make([]*pb.LineUp, 5) sz := make([]*pb.LineUp, 5)
for i, v := range req.Report.Info.Redflist[0].Team { for i, v := range req.Report.Info.Redflist[0].Team {
if v != nil { if v != nil {
@ -129,7 +129,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.PagodaChal
session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda}) session.SendMsg(string(this.module.GetType()), PagodaChallengeOverResp, &pb.PagodaChallengeOverResp{Data: pagoda})
} }
// 加经验 // 加经验
if req.Report != nil && len(req.Report.Info.Redflist) > 0 { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
for _, v := range req.Report.Info.Redflist[0].Team { for _, v := range req.Report.Info.Redflist[0].Team {
if conf.Exp > 0 { if conf.Exp > 0 {
this.module.ModuleHero.AddHeroExp(session, v.Oid, conf.Exp) this.module.ModuleHero.AddHeroExp(session, v.Oid, conf.Exp)

View File

@ -11,7 +11,9 @@ import (
// 做任务 // 做任务
func (this *apiComp) ApplyCheck(session comm.IUserSession, req *pb.RtaskApplyReq) (code pb.ErrorCode) { func (this *apiComp) ApplyCheck(session comm.IUserSession, req *pb.RtaskApplyReq) (code pb.ErrorCode) {
if req.RtaskId == 0 || req.RtaskSubId == 0 {
code = pb.ErrorCode_ReqParameterError
}
return return
} }
@ -38,9 +40,9 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
var ( var (
frtaskArr *pb.FrtaskIds frtaskArr *pb.FrtaskIds
ok bool ok bool
err error
) )
// 获取当前组下已完成的任务
if frtaskArr, ok = rtask.FrtaskIds[conf.Group]; !ok { if frtaskArr, ok = rtask.FrtaskIds[conf.Group]; !ok {
frtaskArr = &pb.FrtaskIds{} frtaskArr = &pb.FrtaskIds{}
} }
@ -51,54 +53,42 @@ func (this *apiComp) Apply(session comm.IUserSession, req *pb.RtaskApplyReq) (co
return return
} }
if req.RtaskSubId == 0 { sideConf := this.moduleRtask.configure.getRtaskSidById(req.RtaskSubId)
//校验前置任务和限定条件 if sideConf == nil {
if err, ok = this.moduleRtask.modelRtask.checkHandle(session.GetUserId(), frtaskArr.RtaskIds, conf); !ok { code = pb.ErrorCode_ConfigNoFound
this.moduleRtask.Error(err.Error()) log.Errorf("rdtask_side %v no found", req.RtaskSubId)
code = pb.ErrorCode_RtaskCondiNoReach return
return
}
} else {
sideConf := this.moduleRtask.configure.getRtaskSidById(req.RtaskSubId)
if sideConf == nil {
code = pb.ErrorCode_ConfigNoFound
log.Errorf("rdtask_side %v no found", req.RtaskSubId)
return
}
// 没有设置选项,表示任务完成
if len(sideConf.EndTid) == 0 {
code = pb.ErrorCode_ConfigurationException
return
}
if sideConf.EndTid[0] == -1 {
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
if rtask.FrtaskIds == nil {
rtask.FrtaskIds = make(map[int32]*pb.FrtaskIds)
}
rtask.FrtaskIds[conf.Group] = frtaskArr
update := map[string]interface{}{
"frtaskIds": rtask.FrtaskIds,
}
if err := this.moduleRtask.modelRtask.Change(session.GetUserId(), update); err != nil {
code = pb.ErrorCode_SystemError
}
} else {
// 校验完成条件
for _, v := range sideConf.EndTid {
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), v); !ok {
this.moduleRtask.Error(err.Error())
code = pb.ErrorCode_RtaskCondiNoReach
return
}
}
}
} }
if len(sideConf.EndTid) == 0 {
code = pb.ErrorCode_ConfigurationException
return
}
// 没有设置选项,表示任务完成
if sideConf.EndTid[0] == -1 && len(sideConf.ChooseId) == 0 {
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
if rtask.FrtaskIds == nil {
rtask.FrtaskIds = make(map[int32]*pb.FrtaskIds)
}
rtask.FrtaskIds[conf.Group] = frtaskArr
update := map[string]interface{}{
"frtaskIds": rtask.FrtaskIds,
}
if err := this.moduleRtask.modelRtask.Change(session.GetUserId(), update); err != nil {
code = pb.ErrorCode_SystemError
return
}
if err := this.moduleRtask.modelRtask.updateUserRtaskId(session.GetUserId(), req.RtaskId); err != nil {
this.moduleRtask.Errorf("update rtaskId err: %v", err)
}
}
if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeApply, &pb.RtaskApplyResp{ if err := session.SendMsg(string(this.moduleRtask.GetType()), RtaskSubTypeApply, &pb.RtaskApplyResp{
RtaskId: req.RtaskId, RtaskId: req.RtaskId,
}); err != nil { }); err != nil {

View File

@ -74,6 +74,14 @@ func (this *apiComp) Choose(session comm.IUserSession, req *pb.RtaskChooseReq) (
} }
if chooseCnf.NextTid != 0 { if chooseCnf.NextTid != 0 {
// 校验完成条件
for _, v := range sideConf.EndTid {
if err, ok := this.moduleRtask.modelRtask.checkCondi(session.GetUserId(), v); !ok {
this.moduleRtask.Error(err.Error())
code = pb.ErrorCode_RtaskCondiNoReach
return
}
}
// 更新完成的任务 // 更新完成的任务
frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId) frtaskArr.RtaskIds = append(frtaskArr.RtaskIds, req.RtaskId)
if rtask.FrtaskIds == nil { if rtask.FrtaskIds == nil {
@ -87,6 +95,12 @@ func (this *apiComp) Choose(session comm.IUserSession, req *pb.RtaskChooseReq) (
code = pb.ErrorCode_SystemError code = pb.ErrorCode_SystemError
return return
} }
// userexpand update
if err := this.moduleRtask.modelRtask.updateUserRtaskId(session.GetUserId(), req.RtaskId); err != nil {
this.moduleRtask.Errorf("update user rtaskId err %v", err)
}
// 发奖励 // 发奖励
for _, v := range sideConf.Reward { for _, v := range sideConf.Reward {
if v.ChooseId == req.ChooseId { if v.ChooseId == req.ChooseId {

View File

@ -1,27 +1,34 @@
// 匹配类型和参数返回任务条件ID // 匹配类型和参数返回任务条件ID
package rtask package rtask
import cfg "go_dreamfactory/sys/configure/structs" import (
cfg "go_dreamfactory/sys/configure/structs"
func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { "github.com/pkg/errors"
)
func (this *ModelRtaskRecord) equalFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
//只查询参数于配置相等的情况下设置condiId否则返回0 //只查询参数于配置相等的情况下设置condiId否则返回0
if !soEqual(vals[0], cfg.Data1) { if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
condiId = cfg.Id condiId = cfg.Id
return return
} }
func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { func (this *ModelRtaskRecord) greatEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
if !soGreatEqual(vals[0], cfg.Data1) { if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
condiId = cfg.Id condiId = cfg.Id
return return
} }
func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
if !soLessEqual(vals[0], cfg.Data1) { if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
condiId = cfg.Id condiId = cfg.Id
@ -29,10 +36,8 @@ func (this *ModelRtaskRecord) lessEqualFirstParam(cfg *cfg.GameRdtaskCondiData,
} }
// 与每个参数比较 // 与每个参数比较
// Deprecated func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) {
var ( var (
err error
paramLen int paramLen int
) )
if paramLen, err = lenParam(cfg, vals...); err != nil { if paramLen, err = lenParam(cfg, vals...); err != nil {
@ -41,25 +46,68 @@ func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...
switch paramLen { switch paramLen {
case 1: case 1:
if !soEqual(vals[0], cfg.Data1) { if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 2: case 2:
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2)) { if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 3: case 3:
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3)) { if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 4: case 4:
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4)) { err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 5: case 5:
if !(soEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && if ok, err1 := soEqual(vals[0], cfg.Data1); !ok {
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4) && soGreatEqual(vals[4], cfg.Data5)) { err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
default: default:
@ -71,9 +119,8 @@ func (this *ModelRtaskRecord) equalParams(cfg *cfg.GameRdtaskCondiData, vals ...
return return
} }
func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
var ( var (
err error
paramLen int paramLen int
) )
if paramLen, err = lenParam(cfg, vals...); err != nil { if paramLen, err = lenParam(cfg, vals...); err != nil {
@ -82,25 +129,68 @@ func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals
switch paramLen { switch paramLen {
case 1: case 1:
if !soGreatEqual(vals[0], cfg.Data1) { if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 2: case 2:
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2)) { if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 3: case 3:
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && soEqual(vals[2], cfg.Data3)) { if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 4: case 4:
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4)) { err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 5: case 5:
if !(soGreatEqual(vals[0], cfg.Data1) && soEqual(vals[1], cfg.Data2) && if ok, err1 := soGreatEqual(vals[0], cfg.Data1); !ok {
soEqual(vals[2], cfg.Data3) && soEqual(vals[3], cfg.Data4) && soEqual(vals[4], cfg.Data5)) { err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
default: default:
@ -112,9 +202,8 @@ func (this *ModelRtaskRecord) greatThanParams(cfg *cfg.GameRdtaskCondiData, vals
} }
// 需要累加更新的查询 // 需要累加更新的查询
func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32) { func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals ...int32) (condiId int32, err error) {
var ( var (
err error
paramLen int paramLen int
) )
if paramLen, err = lenParam(cfg, vals...); err != nil { if paramLen, err = lenParam(cfg, vals...); err != nil {
@ -123,25 +212,68 @@ func (this *ModelRtaskRecord) lessThanParams(cfg *cfg.GameRdtaskCondiData, vals
switch paramLen { switch paramLen {
case 1: case 1:
if !soLessEqual(vals[0], cfg.Data1) { if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 2: case 2:
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2)) { if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 3: case 3:
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && soGreatEqual(vals[2], cfg.Data3)) { if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 4: case 4:
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4)) { err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
case 5: case 5:
if !(soLessEqual(vals[0], cfg.Data1) && soGreatEqual(vals[1], cfg.Data2) && if ok, err1 := soLessEqual(vals[0], cfg.Data1); !ok {
soGreatEqual(vals[2], cfg.Data3) && soGreatEqual(vals[3], cfg.Data4) && soGreatEqual(vals[4], cfg.Data5)) { err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[1], cfg.Data2); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[2], cfg.Data3); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[3], cfg.Data4); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return
}
if ok, err1 := soGreatEqual(vals[4], cfg.Data5); !ok {
err = errors.WithMessagef(err1, "id: %v type:%v", cfg.Id, cfg.Type)
return return
} }
default: default:

View File

@ -154,27 +154,27 @@ func lessEqual(actual, expected int32) bool {
return actual <= expected return actual <= expected
} }
func soEqual[T Num](actual T, expected T) (ok bool) { func soEqual[T Num](actual T, expected T) (ok bool, err error) {
if !equal(actual, expected) { if !equal(actual, expected) {
log.Debugf("实际:%v 期望:%v", actual, expected) err = errors.New(fmt.Sprintf("soEqual actual:%v expect:%v", actual, expected))
return return
} }
ok = true ok = true
return return
} }
func soGreatEqual(actual, expected int32) (ok bool) { func soGreatEqual(actual, expected int32) (ok bool, err error) {
if !greatEual(actual, expected) { if !greatEual(actual, expected) {
log.Debugf("实际:%v 期望:%v", actual, expected) err = errors.New(fmt.Sprintf("soGreatEqual actual:%v expect:%v", actual, expected))
return return
} }
ok = true ok = true
return return
} }
func soLessEqual(actual, expected int32) (ok bool) { func soLessEqual(actual, expected int32) (ok bool, err error) {
if !lessEqual(actual, expected) { if !lessEqual(actual, expected) {
log.Debugf("实际:%v 期望:%v", actual, expected) err = errors.New(fmt.Sprintf("soLessEqual actual:%v expect:%v", actual, expected))
return return
} }
ok = true ok = true

View File

@ -28,6 +28,14 @@ func (this *ModelRtask) Init(service core.IService, module core.IModule, comp co
return return
} }
// 更新玩家的随机任务ID
func (this *ModelRtask) updateUserRtaskId(uid string, rtaskId int32) (err error) {
ex_update := map[string]interface{}{
"rtaskId": rtaskId,
}
return this.moduleRtask.ModuleUser.ChangeUserExpand(uid, ex_update)
}
//查询用户随机任务 //查询用户随机任务
func (this *ModelRtask) GetRtask(uid string) *pb.DBRtask { func (this *ModelRtask) GetRtask(uid string) *pb.DBRtask {
rtask := &pb.DBRtask{Uid: uid} rtask := &pb.DBRtask{Uid: uid}
@ -73,7 +81,7 @@ func (this *ModelRtask) checkCondi(uid string, condiId int32) (err error, ok boo
var condi *rtaskCondi var condi *rtaskCondi
if condi, ok = this.moduleRtask.handleMap[condiId]; ok { if condi, ok = this.moduleRtask.handleMap[condiId]; ok {
if condi.verify != nil { if condi.verify != nil {
if err, ok = condi.verify(uid, condi.cfg); !ok { if ok, err = condi.verify(uid, condi.cfg); !ok {
err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId) err = errors.WithMessagef(err, "uid: %v do rtask %v condition not reach", uid, condiId)
return return
} }

View File

@ -20,8 +20,8 @@ type rtaskCondi struct {
update updateDataHandle //更新任务数据 update updateDataHandle //更新任务数据
} }
type verifyHandle func(uid string, cfg *cfg.GameRdtaskCondiData) (error, bool) type verifyHandle func(uid string, cfg *cfg.GameRdtaskCondiData) (bool, error)
type condiFindHandle func(cfg *cfg.GameRdtaskCondiData, vals ...int32) int32 type condiFindHandle func(cfg *cfg.GameRdtaskCondiData, vals ...int32) (int32, error)
type updateDataHandle func(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) error type updateDataHandle func(uid string, cfg *cfg.GameRdtaskCondiData, vals ...int32) error
type ModuleRtask struct { type ModuleRtask struct {
@ -193,10 +193,12 @@ func (this *ModuleRtask) initRtaskVerifyHandle() {
} }
func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) { func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.TaskType, params ...int32) (code pb.ErrorCode) {
log.Debugf("Rtask params: %v", params) this.Debugf("receive Rtask %v params: %v", rtaskType, params)
var ( var (
err error
condiId int32 condiId int32
condi *rtaskCondi // condi *rtaskCondi
condis []*rtaskCondi
) )
user := this.ModuleUser.GetUser(session.GetUserId()) user := this.ModuleUser.GetUser(session.GetUserId())
@ -211,29 +213,34 @@ func (this *ModuleRtask) SendToRtask(session comm.IUserSession, rtaskType comm.T
if v.find == nil { if v.find == nil {
break break
} }
if condiId = v.find(v.cfg, params...); condiId == 0 { if condiId, err = v.find(v.cfg, params...); condiId == 0 {
if err != nil {
this.Error(err.Error())
}
continue continue
} else { } else {
//数据记录方式是1 //数据记录方式是1
// if v.cfg.Datatype == 1 || // if v.cfg.Datatype == 1 ||
// v.cfg.Datatype == 2 && this.ModuleSys.IsAccess("task", user.Lv) { // v.cfg.Datatype == 2 && this.ModuleSys.IsAccess("task", user.Lv) {
condi = v condis = append(condis, v)
// } // }
break
} }
} }
} }
if condiId == 0 { if len(condis) == 0 {
log.Debugf("condi not found, typeId: %v params: %v", rtaskType, params) this.Warnf("没有找到符合的条件任务, typeId: %v params: %v", rtaskType, params)
code = pb.ErrorCode_RtaskCondiNoFound code = pb.ErrorCode_RtaskCondiNoFound
return return
} }
// update // update
if condi.update != nil { for _, v := range condis {
if err := condi.update(session.GetUserId(), condi.cfg, params...); err != nil { if v.update != nil {
code = pb.ErrorCode_DBError if err := v.update(session.GetUserId(), v.cfg, params...); err != nil {
code = pb.ErrorCode_DBError
}
} }
} }

View File

@ -11,7 +11,7 @@ import (
"github.com/spf13/cast" "github.com/spf13/cast"
) )
func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
var rd *pb.RtaskData var rd *pb.RtaskData
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil { if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
if len(rd.Data) == 0 { if len(rd.Data) == 0 {
@ -23,23 +23,60 @@ func (this *ModelRtaskRecord) verifyFromDb(uid string, cfg *cfg.GameRdtaskCondiD
//参数比较,默认第一个参数soGreateEqual,其它soEqual //参数比较,默认第一个参数soGreateEqual,其它soEqual
switch paramLen { switch paramLen {
case 1: case 1:
return nil, soGreatEqual(rd.Data[0], cfg.Data1) return soGreatEqual(rd.Data[0], cfg.Data1)
case 2: case 2:
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
return
}
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
return
}
case 3: case 3:
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
return
}
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
return
}
if ok, err = soEqual(rd.Data[2], cfg.Data3); !ok {
return
}
case 4: case 4:
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) && soEqual(rd.Data[3], cfg.Data4) if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
return
}
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
return
}
if ok, err = soEqual(rd.Data[2], cfg.Data3); !ok {
return
}
if ok, err = soEqual(rd.Data[3], cfg.Data4); !ok {
return
}
case 5: case 5:
return nil, soGreatEqual(rd.Data[0], cfg.Data1) && soEqual(rd.Data[1], cfg.Data2) && soEqual(rd.Data[2], cfg.Data3) && if ok, err = soGreatEqual(rd.Data[0], cfg.Data1); !ok {
soEqual(rd.Data[3], cfg.Data4) && soEqual(rd.Data[4], cfg.Data5) return
}
if ok, err = soEqual(rd.Data[1], cfg.Data2); !ok {
return
}
if ok, err = soEqual(rd.Data[2], cfg.Data3); !ok {
return
}
if ok, err = soEqual(rd.Data[3], cfg.Data4); !ok {
return
}
if ok, err = soEqual(rd.Data[4], cfg.Data5); !ok {
return
}
} }
} }
} }
return return
} }
func (this *ModelRtaskRecord) verifyFirstEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtaskRecord) verifyFirstEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
var rd *pb.RtaskData var rd *pb.RtaskData
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil { if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
if len(rd.Data) == 0 { if len(rd.Data) == 0 {
@ -47,12 +84,12 @@ func (this *ModelRtaskRecord) verifyFirstEqualParam(uid string, cfg *cfg.GameRdt
return return
} }
return nil, soEqual(rd.Data[0], cfg.Data1) return soEqual(rd.Data[0], cfg.Data1)
} }
return return
} }
func (this *ModelRtaskRecord) verifyFirstGreatEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtaskRecord) verifyFirstGreatEqualParam(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
var rd *pb.RtaskData var rd *pb.RtaskData
if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil { if rd, err = this.GetVerifyData(uid, cfg.Id); rd != nil {
if len(rd.Data) == 0 { if len(rd.Data) == 0 {
@ -60,22 +97,22 @@ func (this *ModelRtaskRecord) verifyFirstGreatEqualParam(uid string, cfg *cfg.Ga
return return
} }
return nil, soGreatEqual(rd.Data[0], cfg.Data1) return soGreatEqual(rd.Data[0], cfg.Data1)
} }
return return
} }
// 英雄指定 // 英雄指定
func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
heroModule, err := this.service.GetModule(comm.ModuleHero) heroModule, err := this.service.GetModule(comm.ModuleHero)
if err != nil { if err != nil {
return err, false return false, err
} }
if h, y := heroModule.(comm.IHero); y { if h, y := heroModule.(comm.IHero); y {
for _, v := range h.GetHeroList(uid) { for _, v := range h.GetHeroList(uid) {
if soEqual(cast.ToString(cfg.Data1), v.HeroID) { ok, err = soEqual(cast.ToString(cfg.Data1), v.HeroID)
ok = true if ok {
return return
} }
} }
@ -84,7 +121,7 @@ func (this *ModelRtask) verfiyRtype1(uid string, cfg *cfg.GameRdtaskCondiData) (
} }
// 剧情 // 剧情
func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
m, err := this.service.GetModule(comm.ModuleMainline) m, err := this.service.GetModule(comm.ModuleMainline)
if err != nil { if err != nil {
return return
@ -92,13 +129,13 @@ func (this *ModelRtask) verifyRtype2(uid string, cfg *cfg.GameRdtaskCondiData) (
if ml, y := m.(comm.IMainline); y { if ml, y := m.(comm.IMainline); y {
qjId := ml.GetUsermainLineData(uid) qjId := ml.GetUsermainLineData(uid)
return nil, soEqual(qjId, cfg.Data1) return soEqual(qjId, cfg.Data1)
} }
return return
} }
// 每日任务 // 每日任务
func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
m, err := this.service.GetModule(comm.ModuleTask) m, err := this.service.GetModule(comm.ModuleTask)
if err != nil { if err != nil {
return return
@ -116,7 +153,7 @@ func (this *ModelRtask) verifyRtype3(uid string, cfg *cfg.GameRdtaskCondiData) (
} }
// 指定英雄等级 // 指定英雄等级
func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
m, err := this.service.GetModule(comm.ModuleHero) m, err := this.service.GetModule(comm.ModuleHero)
if err != nil { if err != nil {
@ -132,15 +169,19 @@ func (this *ModelRtask) verifyRtype4(uid string, cfg *cfg.GameRdtaskCondiData) (
} }
} }
if hero != nil { if hero != nil {
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) && if ok, err = soEqual(hero.HeroID, cast.ToString(cfg.Data1)); !ok {
soGreatEqual(hero.Lv, cfg.Data2) return
}
if ok, err = soGreatEqual(hero.Lv, cfg.Data2); !ok {
return
}
} }
} }
return return
} }
// 指定英雄的指定装备数量 // 指定英雄的指定装备数量
func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
m, err := this.service.GetModule(comm.ModuleHero) m, err := this.service.GetModule(comm.ModuleHero)
if err != nil { if err != nil {
@ -164,14 +205,16 @@ func (this *ModelRtask) verifyRtype5(uid string, cfg *cfg.GameRdtaskCondiData) (
} }
} }
} }
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) && if ok, err = soEqual(hero.HeroID, cast.ToString(cfg.Data1)); !ok {
soGreatEqual(count, cfg.Data2) return
}
return soGreatEqual(count, cfg.Data2)
} }
return return
} }
// 指定英雄星级 // 指定英雄星级
func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
m, err := this.service.GetModule(comm.ModuleHero) m, err := this.service.GetModule(comm.ModuleHero)
if err != nil { if err != nil {
@ -188,15 +231,17 @@ func (this *ModelRtask) verifyRtype6(uid string, cfg *cfg.GameRdtaskCondiData) (
} }
if hero != nil { if hero != nil {
return nil, soEqual(hero.HeroID, cast.ToString(cfg.Data1)) && if ok, err = soEqual(hero.HeroID, cast.ToString(cfg.Data1)); !ok {
soGreatEqual(hero.Star, cfg.Data2) return
}
return soGreatEqual(hero.Star, cfg.Data2)
} }
} }
return return
} }
// 日常登录一次 // 日常登录一次
func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
userModule, err := this.service.GetModule(comm.ModuleUser) userModule, err := this.service.GetModule(comm.ModuleUser)
if err != nil { if err != nil {
@ -205,14 +250,14 @@ func (this *ModelRtask) verfiyRtype7(uid string, cfg *cfg.GameRdtaskCondiData) (
if um, y := userModule.(comm.IUser); y { if um, y := userModule.(comm.IUser); y {
if user := um.GetUser(uid); user != nil { if user := um.GetUser(uid); user != nil {
return nil, soEqual(utils.IsToday(user.Logintime), true) return soEqual(utils.IsToday(user.Logintime), true)
} }
} }
return return
} }
// 累计登陆xx天 // 累计登陆xx天
func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
userModule, err := this.service.GetModule(comm.ModuleUser) userModule, err := this.service.GetModule(comm.ModuleUser)
if err != nil { if err != nil {
@ -222,15 +267,15 @@ func (this *ModelRtask) verfiyRtype8(uid string, cfg *cfg.GameRdtaskCondiData) (
if um, y := userModule.(comm.IUser); y { if um, y := userModule.(comm.IUser); y {
ud, err := um.GetUserExpand(uid) ud, err := um.GetUserExpand(uid)
if err != nil { if err != nil {
return err, false return false, err
} }
return nil, soGreatEqual(ud.LoginAddCount, cfg.Data1) return soGreatEqual(ud.LoginAddCount, cfg.Data1)
} }
return return
} }
// 连续登陆xx天 // 连续登陆xx天
func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
userModule, err := this.service.GetModule(comm.ModuleUser) userModule, err := this.service.GetModule(comm.ModuleUser)
if err != nil { if err != nil {
@ -240,15 +285,15 @@ func (this *ModelRtask) verfiyRtype9(uid string, cfg *cfg.GameRdtaskCondiData) (
if um, y := userModule.(comm.IUser); y { if um, y := userModule.(comm.IUser); y {
ud, err := um.GetUserExpand(uid) ud, err := um.GetUserExpand(uid)
if err != nil { if err != nil {
return err, false return false, err
} }
return nil, soGreatEqual(ud.LoginContinueCount, cfg.Data1) return soGreatEqual(ud.LoginContinueCount, cfg.Data1)
} }
return return
} }
// 拥有xx个好友 // 拥有xx个好友
func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
m, err := this.service.GetModule(comm.ModuleFriend) m, err := this.service.GetModule(comm.ModuleFriend)
if err != nil { if err != nil {
@ -257,13 +302,13 @@ func (this *ModelRtask) verfiyRtype10(uid string, cfg *cfg.GameRdtaskCondiData)
if mi, y := m.(comm.IFriend); y { if mi, y := m.(comm.IFriend); y {
count := mi.GetFriendCount(uid) count := mi.GetFriendCount(uid)
return nil, soGreatEqual(count, cfg.Data1) return soGreatEqual(count, cfg.Data1)
} }
return return
} }
// 用户等级达到xx级 // 用户等级达到xx级
func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
defer printCondiLog(uid, cfg) defer printCondiLog(uid, cfg)
userModule, err := this.service.GetModule(comm.ModuleUser) userModule, err := this.service.GetModule(comm.ModuleUser)
if err != nil { if err != nil {
@ -272,14 +317,14 @@ func (this *ModelRtask) verifyRtype20(uid string, cfg *cfg.GameRdtaskCondiData)
if um, y := userModule.(comm.IUser); y { if um, y := userModule.(comm.IUser); y {
if user := um.GetUser(uid); user != nil { if user := um.GetUser(uid); user != nil {
return nil, soGreatEqual(user.Lv, cfg.Data1) return soGreatEqual(user.Lv, cfg.Data1)
} }
} }
return return
} }
// 日常任务活跃度达到xx // 日常任务活跃度达到xx
func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData) (err error, ok bool) { func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData) (ok bool, err error) {
userModule, err := this.service.GetModule(comm.ModuleUser) userModule, err := this.service.GetModule(comm.ModuleUser)
if err != nil { if err != nil {
return return
@ -288,11 +333,11 @@ func (this *ModelRtask) verifyRtype63(uid string, cfg *cfg.GameRdtaskCondiData)
if um, y := userModule.(comm.IUser); y { if um, y := userModule.(comm.IUser); y {
de, err := um.GetUserExpand(uid) de, err := um.GetUserExpand(uid)
if err != nil { if err != nil {
return err, false return false, err
} }
if de != nil { if de != nil {
ok = soGreatEqual(de.Activeday, cfg.Data1) return soGreatEqual(de.Activeday, cfg.Data1)
} }
} }

View File

@ -62,7 +62,7 @@ func TestVerify2(t *testing.T) {
patches3 := gomonkey.ApplyGlobalVar(&vals, []int32{25001}) patches3 := gomonkey.ApplyGlobalVar(&vals, []int32{25001})
defer patches3.Reset() defer patches3.Reset()
condiId := rtask.equalParams(conf, vals...) condiId, _ := rtask.equalParams(conf, vals...)
So(condiId, ShouldEqual, 101) So(condiId, ShouldEqual, 101)
}) })

View File

@ -1,6 +1,7 @@
package task package task
import ( import (
"fmt"
"go_dreamfactory/comm" "go_dreamfactory/comm"
"go_dreamfactory/lego/core" "go_dreamfactory/lego/core"
event_v2 "go_dreamfactory/lego/sys/event/v2" event_v2 "go_dreamfactory/lego/sys/event/v2"
@ -8,6 +9,7 @@ import (
"go_dreamfactory/pb" "go_dreamfactory/pb"
"sort" "sort"
"github.com/pkg/errors"
"go.mongodb.org/mongo-driver/bson/primitive" "go.mongodb.org/mongo-driver/bson/primitive"
) )
@ -257,18 +259,22 @@ func (this *ModelTask) inStrategy(uid string, heroCfgId int32) (taskIds []int32,
func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface{})) { func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface{})) {
tl := event.(*TaskListen) tl := event.(*TaskListen)
// 获取玩家的指定事件列表
data, err := this.moduleTask.configure.getTasks(int32(tl.TaskType)) data, err := this.moduleTask.configure.getTasks(int32(tl.TaskType))
if err != nil { if err != nil {
this.moduleTask.Errorf("taskHandle err %v", err) this.moduleTask.Errorf("taskHandle err %v", err)
return return
} }
// 获取玩家的任务条件数据
dr := this.moduleTask.ModuleRtask.GetCondiData(tl.Uid) dr := this.moduleTask.ModuleRtask.GetCondiData(tl.Uid)
if dr == nil { if dr == nil {
return return
} }
// 遍历事件列表
for _, conf := range data { for _, conf := range data {
// 从任务条件中查找
ret, ok := dr.Vals[conf.TypeId] ret, ok := dr.Vals[conf.TypeId]
if !ok { if !ok {
continue continue
@ -286,6 +292,7 @@ func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface
"progress": progress, "progress": progress,
"status": 1, "status": 1,
} }
err = this.updateActive(tl.Uid, conf.Key)
} else { } else {
if ret != nil && len(ret.Data) > 0 { if ret != nil && len(ret.Data) > 0 {
progress = ret.Data[0] progress = ret.Data[0]
@ -298,11 +305,38 @@ func (this *ModelTask) doTaskHandle(event interface{}, next func(event interface
return return
} }
} }
} }
return return
} }
// 更新活跃度
func (this *ModelTask) updateActive(uid string, cfgId int32) error {
// 更新活跃度
de, err := this.moduleTask.ModuleUser.GetUserExpand(uid)
if err != nil {
return err
}
conf := this.moduleTask.configure.getTaskById(cfgId)
if conf == nil {
return errors.New(fmt.Sprintf("%v config nil", cfgId))
}
switch conf.IdTag {
case int32(comm.TASK_DAILY):
de.Activeday += conf.Active
case int32(comm.TASK_WEEKLY):
de.Activeweek += conf.Active
}
update := map[string]interface{}{
"activeday": de.Activeday,
"activeweek": de.Activeweek,
}
return this.moduleTask.ModuleUser.ChangeUserExpand(uid, update)
}
type TaskListen struct { type TaskListen struct {
event_v2.Event event_v2.Event
Uid string Uid string

View File

@ -134,11 +134,12 @@ func (this *apiComp) Login(session comm.IUserSession, req *pb.UserLoginReq) (cod
} else { } else {
rsp.Ex = expand rsp.Ex = expand
} }
// if this.module.ModuleSys.IsAccess("", user.Lv) {
this.module.ModuleRtask.InitCondiData(user.Uid)
// }
} }
// if this.module.ModuleSys.IsAccess("", user.Lv) {
this.module.ModuleRtask.InitCondiData(user.Uid)
// }
mail := &pb.DBMailData{ mail := &pb.DBMailData{
ObjId: primitive.NewObjectID().Hex(), ObjId: primitive.NewObjectID().Hex(),
Uid: user.Uid, Uid: user.Uid,

View File

@ -65,7 +65,7 @@ func (this *apiComp) ChallengeOver(session comm.IUserSession, req *pb.VikingChal
viking.Boss[req.BossType] += 1 viking.Boss[req.BossType] += 1
mapData["boss"] = viking.Boss mapData["boss"] = viking.Boss
if req.Report != nil && len(req.Report.Info.Redflist) > 0 { if req.Report != nil && req.Report.Info != nil && len(req.Report.Info.Redflist) > 0 {
sz := make([]*pb.LineUp, 5) sz := make([]*pb.LineUp, 5)
for i, v := range req.Report.Info.Redflist[0].Team { for i, v := range req.Report.Info.Redflist[0].Team {
if v != nil { if v != nil {

View File

@ -80,12 +80,13 @@ type DBLibrary struct {
sizeCache protoimpl.SizeCache sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields unknownFields protoimpl.UnknownFields
Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id" bson:"_id"` //ID
Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid" bson:"uid"` //用户ID
Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id Fid int32 `protobuf:"varint,3,opt,name=fid,proto3" json:"fid"` // 配置表id 羁绊id
Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: favorlv Hero map[string]int32 `protobuf:"bytes,4,rep,name=hero,proto3" json:"hero" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` // key: hid value: favorlv
Prize bool `protobuf:"varint,5,opt,name=prize,proto3" json:"prize"` //是否领奖 Prize map[int32]int32 `protobuf:"bytes,5,rep,name=prize,proto3" json:"prize" protobuf_key:"varint,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` //是否领奖
Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级 Fetterlv int32 `protobuf:"varint,6,opt,name=fetterlv,proto3" json:"fetterlv"` // 当前羁绊等级
Storyid int32 `protobuf:"varint,7,opt,name=storyid,proto3" json:"storyid"` // 故事id 用来判断是否领奖
} }
func (x *DBLibrary) Reset() { func (x *DBLibrary) Reset() {
@ -148,11 +149,11 @@ func (x *DBLibrary) GetHero() map[string]int32 {
return nil return nil
} }
func (x *DBLibrary) GetPrize() bool { func (x *DBLibrary) GetPrize() map[int32]int32 {
if x != nil { if x != nil {
return x.Prize return x.Prize
} }
return false return nil
} }
func (x *DBLibrary) GetFetterlv() int32 { func (x *DBLibrary) GetFetterlv() int32 {
@ -162,6 +163,13 @@ func (x *DBLibrary) GetFetterlv() int32 {
return 0 return 0
} }
func (x *DBLibrary) GetStoryid() int32 {
if x != nil {
return x.Storyid
}
return 0
}
var File_library_library_db_proto protoreflect.FileDescriptor var File_library_library_db_proto protoreflect.FileDescriptor
var file_library_library_db_proto_rawDesc = []byte{ var file_library_library_db_proto_rawDesc = []byte{
@ -169,21 +177,28 @@ var file_library_library_db_proto_rawDesc = []byte{
0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, 0x0a, 0x06, 0x46, 0x65, 0x79, 0x5f, 0x64, 0x62, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2a, 0x0a, 0x06, 0x46, 0x65,
0x74, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x74, 0x74, 0x65, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x63, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01, 0x09, 0x52, 0x03, 0x63, 0x69, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x6c, 0x76, 0x18, 0x02, 0x20, 0x01,
0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0xd4, 0x01, 0x0a, 0x09, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x28, 0x05, 0x52, 0x02, 0x6c, 0x76, 0x22, 0xbf, 0x02, 0x0a, 0x09, 0x44, 0x42, 0x4c, 0x69, 0x62,
0x72, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x72, 0x61, 0x72, 0x79, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x52, 0x02, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x03, 0x20, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x69, 0x64, 0x18, 0x03, 0x20,
0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f, 0x01, 0x28, 0x05, 0x52, 0x03, 0x66, 0x69, 0x64, 0x12, 0x28, 0x0a, 0x04, 0x68, 0x65, 0x72, 0x6f,
0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61,
0x72, 0x79, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x68, 0x65, 0x72, 0x79, 0x2e, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x04, 0x68, 0x65,
0x72, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x72, 0x6f, 0x12, 0x2b, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x18, 0x05, 0x20, 0x03, 0x28,
0x08, 0x52, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74, 0x0b, 0x32, 0x15, 0x2e, 0x44, 0x42, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x50, 0x72,
0x65, 0x72, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x70, 0x72, 0x69, 0x7a, 0x65, 0x12,
0x65, 0x72, 0x6c, 0x76, 0x1a, 0x37, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74, 0x72, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x76, 0x18, 0x06, 0x20, 0x01, 0x28,
0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x05, 0x52, 0x08, 0x66, 0x65, 0x74, 0x74, 0x65, 0x72, 0x6c, 0x76, 0x12, 0x18, 0x0a, 0x07, 0x73,
0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x74, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x74,
0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x6f, 0x72, 0x79, 0x69, 0x64, 0x1a, 0x37, 0x0a, 0x09, 0x48, 0x65, 0x72, 0x6f, 0x45, 0x6e, 0x74,
0x04, 0x2e, 0x3b, 0x70, 0x62, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20,
0x01, 0x28, 0x05, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x1a, 0x38,
0x0a, 0x0a, 0x50, 0x72, 0x69, 0x7a, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x76,
0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x06, 0x5a, 0x04, 0x2e, 0x3b, 0x70, 0x62,
0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
} }
var ( var (
@ -198,19 +213,21 @@ func file_library_library_db_proto_rawDescGZIP() []byte {
return file_library_library_db_proto_rawDescData return file_library_library_db_proto_rawDescData
} }
var file_library_library_db_proto_msgTypes = make([]protoimpl.MessageInfo, 3) var file_library_library_db_proto_msgTypes = make([]protoimpl.MessageInfo, 4)
var file_library_library_db_proto_goTypes = []interface{}{ var file_library_library_db_proto_goTypes = []interface{}{
(*Fetter)(nil), // 0: Fetter (*Fetter)(nil), // 0: Fetter
(*DBLibrary)(nil), // 1: DBLibrary (*DBLibrary)(nil), // 1: DBLibrary
nil, // 2: DBLibrary.HeroEntry nil, // 2: DBLibrary.HeroEntry
nil, // 3: DBLibrary.PrizeEntry
} }
var file_library_library_db_proto_depIdxs = []int32{ var file_library_library_db_proto_depIdxs = []int32{
2, // 0: DBLibrary.hero:type_name -> DBLibrary.HeroEntry 2, // 0: DBLibrary.hero:type_name -> DBLibrary.HeroEntry
1, // [1:1] is the sub-list for method output_type 3, // 1: DBLibrary.prize:type_name -> DBLibrary.PrizeEntry
1, // [1:1] is the sub-list for method input_type 2, // [2:2] is the sub-list for method output_type
1, // [1:1] is the sub-list for extension type_name 2, // [2:2] is the sub-list for method input_type
1, // [1:1] is the sub-list for extension extendee 2, // [2:2] is the sub-list for extension type_name
0, // [0:1] is the sub-list for field type_name 2, // [2:2] is the sub-list for extension extendee
0, // [0:2] is the sub-list for field type_name
} }
func init() { file_library_library_db_proto_init() } func init() { file_library_library_db_proto_init() }
@ -250,7 +267,7 @@ func file_library_library_db_proto_init() {
GoPackagePath: reflect.TypeOf(x{}).PkgPath(), GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_library_library_db_proto_rawDesc, RawDescriptor: file_library_library_db_proto_rawDesc,
NumEnums: 0, NumEnums: 0,
NumMessages: 3, NumMessages: 4,
NumExtensions: 0, NumExtensions: 0,
NumServices: 0, NumServices: 0,
}, },

View File

@ -0,0 +1,42 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
type GameNameLibrary struct {
_dataMap map[int32]*GameNameLibraryData
_dataList []*GameNameLibraryData
}
func NewGameNameLibrary(_buf []map[string]interface{}) (*GameNameLibrary, error) {
_dataList := make([]*GameNameLibraryData, 0, len(_buf))
dataMap := make(map[int32]*GameNameLibraryData)
for _, _ele_ := range _buf {
if _v, err2 := DeserializeGameNameLibraryData(_ele_); err2 != nil {
return nil, err2
} else {
_dataList = append(_dataList, _v)
dataMap[_v.Id] = _v
}
}
return &GameNameLibrary{_dataList:_dataList, _dataMap:dataMap}, nil
}
func (table *GameNameLibrary) GetDataMap() map[int32]*GameNameLibraryData {
return table._dataMap
}
func (table *GameNameLibrary) GetDataList() []*GameNameLibraryData {
return table._dataList
}
func (table *GameNameLibrary) Get(key int32) *GameNameLibraryData {
return table._dataMap[key]
}

View File

@ -0,0 +1,39 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
package cfg
import "errors"
type GameNameLibraryData struct {
Id int32
Surname string
Name string
}
const TypeId_GameNameLibraryData = 77094270
func (*GameNameLibraryData) GetTypeId() int32 {
return 77094270
}
func (_v *GameNameLibraryData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["surname"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Surname error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Surname, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
{var _ok_ bool; var __json_text__ map[string]interface{}; if __json_text__, _ok_ = _buf["name"].(map[string]interface{}) ; !_ok_ { err = errors.New("_v.Name error"); return }; { var _ok_ bool; if _, _ok_ = __json_text__["key"].(string); !_ok_ { err = errors.New("key error"); return } }; { var _ok_ bool; if _v.Name, _ok_ = __json_text__["text"].(string); !_ok_ { err = errors.New("text error"); return } } }
return
}
func DeserializeGameNameLibraryData(_buf map[string]interface{}) (*GameNameLibraryData, error) {
v := &GameNameLibraryData{}
if err := v.Deserialize(_buf); err == nil {
return v, nil
} else {
return nil, err
}
}

View File

@ -13,6 +13,7 @@ import "errors"
type GameRdtaskData struct { type GameRdtaskData struct {
Id int32 Id int32
Group int32 Group int32
Subgroup int32
Type int32 Type int32
PreTid int32 PreTid int32
Condition []int32 Condition []int32
@ -28,6 +29,7 @@ func (*GameRdtaskData) GetTypeId() int32 {
func (_v *GameRdtaskData)Deserialize(_buf map[string]interface{}) (err error) { func (_v *GameRdtaskData)Deserialize(_buf map[string]interface{}) (err error) {
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["id"].(float64); !_ok_ { err = errors.New("id error"); return }; _v.Id = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["group"].(float64); !_ok_ { err = errors.New("group error"); return }; _v.Group = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["subgroup"].(float64); !_ok_ { err = errors.New("subgroup error"); return }; _v.Subgroup = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["type"].(float64); !_ok_ { err = errors.New("type error"); return }; _v.Type = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTid"].(float64); !_ok_ { err = errors.New("preTid error"); return }; _v.PreTid = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["preTid"].(float64); !_ok_ { err = errors.New("preTid error"); return }; _v.PreTid = int32(_tempNum_) }
{ {

View File

@ -99,6 +99,7 @@ type Tables struct {
Robot *GameRobot Robot *GameRobot
Ip *GameIp Ip *GameIp
GameColor *GameGameColor GameColor *GameGameColor
NameLibrary *GameNameLibrary
} }
func NewTables(loader JsonLoader) (*Tables, error) { func NewTables(loader JsonLoader) (*Tables, error) {
@ -634,5 +635,11 @@ func NewTables(loader JsonLoader) (*Tables, error) {
if tables.GameColor, err = NewGameGameColor(buf) ; err != nil { if tables.GameColor, err = NewGameGameColor(buf) ; err != nil {
return nil, err return nil, err
} }
if buf, err = loader("game_namelibrary") ; err != nil {
return nil, err
}
if tables.NameLibrary, err = NewGameNameLibrary(buf) ; err != nil {
return nil, err
}
return tables, nil return tables, nil
} }

View File

@ -41,6 +41,7 @@ type GameHeroData struct {
Camerainterval float32 Camerainterval float32
Equiprcom []string Equiprcom []string
Angle int32 Angle int32
Deviation int32
} }
const TypeId_GameHeroData = 1513828672 const TypeId_GameHeroData = 1513828672
@ -125,6 +126,7 @@ func (_v *GameHeroData)Deserialize(_buf map[string]interface{}) (err error) {
} }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["angle"].(float64); !_ok_ { err = errors.New("angle error"); return }; _v.Angle = int32(_tempNum_) } { var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["angle"].(float64); !_ok_ { err = errors.New("angle error"); return }; _v.Angle = int32(_tempNum_) }
{ var _ok_ bool; var _tempNum_ float64; if _tempNum_, _ok_ = _buf["deviation"].(float64); !_ok_ { err = errors.New("deviation error"); return }; _v.Deviation = int32(_tempNum_) }
return return
} }

View File

@ -151,6 +151,7 @@ func (this *DBModel) UpdateModelLogs(table string, uID string, where bson.M, tar
//添加新的数据 //添加新的数据
func (this *DBModel) Add(uid string, data interface{}, opt ...DBOption) (err error) { func (this *DBModel) Add(uid string, data interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel Add", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
if err = this.Redis.HMSet(this.ukey(uid), data); err != nil { if err = this.Redis.HMSet(this.ukey(uid), data); err != nil {
return return
} }
@ -167,6 +168,7 @@ func (this *DBModel) Add(uid string, data interface{}, opt ...DBOption) (err err
//添加新的数据到列表 //添加新的数据到列表
func (this *DBModel) AddList(uid string, id string, data interface{}, opt ...DBOption) (err error) { func (this *DBModel) AddList(uid string, id string, data interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel AddList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "_id", Value: id}, log.Field{Key: "data", Value: data})
key := this.ukeylist(uid, id) key := this.ukeylist(uid, id)
if err = this.Redis.HMSet(key, data); err != nil { if err = this.Redis.HMSet(key, data); err != nil {
return return
@ -187,6 +189,7 @@ func (this *DBModel) AddList(uid string, id string, data interface{}, opt ...DBO
//添加新的多个数据到列表 data map[string]type //添加新的多个数据到列表 data map[string]type
func (this *DBModel) AddLists(uid string, data interface{}, opt ...DBOption) (err error) { func (this *DBModel) AddLists(uid string, data interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel AddLists", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
vof := reflect.ValueOf(data) vof := reflect.ValueOf(data)
if !vof.IsValid() { if !vof.IsValid() {
return fmt.Errorf("Model_Comp: AddLists(nil)") return fmt.Errorf("Model_Comp: AddLists(nil)")
@ -229,6 +232,7 @@ func (this *DBModel) AddLists(uid string, data interface{}, opt ...DBOption) (er
//添加队列 //添加队列
func (this *DBModel) AddQueues(key string, uplimit int64, data interface{}) (outkey []string, err error) { func (this *DBModel) AddQueues(key string, uplimit int64, data interface{}) (outkey []string, err error) {
//defer log.Debug("DBModel AddQueues", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "key", Value: key}, log.Field{Key: "data", Value: data})
vof := reflect.ValueOf(data) vof := reflect.ValueOf(data)
if !vof.IsValid() { if !vof.IsValid() {
err = fmt.Errorf("Model_Comp: AddLists(nil)") err = fmt.Errorf("Model_Comp: AddLists(nil)")
@ -268,6 +272,7 @@ func (this *DBModel) AddQueues(key string, uplimit int64, data interface{}) (out
//修改数据多个字段 uid 作为主键 //修改数据多个字段 uid 作为主键
func (this *DBModel) Change(uid string, data map[string]interface{}, opt ...DBOption) (err error) { func (this *DBModel) Change(uid string, data map[string]interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel Change", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
if err = this.Redis.HMSet(this.ukey(uid), data); err != nil { if err = this.Redis.HMSet(this.ukey(uid), data); err != nil {
return return
} }
@ -284,7 +289,9 @@ func (this *DBModel) Change(uid string, data map[string]interface{}, opt ...DBOp
//修改数据多个字段 uid 作为主键 //修改数据多个字段 uid 作为主键
func (this *DBModel) ChangeList(uid string, _id string, data map[string]interface{}, opt ...DBOption) (err error) { func (this *DBModel) ChangeList(uid string, _id string, data map[string]interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel ChangeList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "_id", Value: _id}, log.Field{Key: "data", Value: data})
if err = this.Redis.HMSet(this.ukeylist(uid, _id), data); err != nil { if err = this.Redis.HMSet(this.ukeylist(uid, _id), data); err != nil {
log.Error("DBModel ChangeList", log.Field{Key: "err", Value: err})
return return
} }
@ -301,6 +308,7 @@ func (this *DBModel) ChangeList(uid string, _id string, data map[string]interfac
//读取全部数据 //读取全部数据
func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err error) { func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err error) {
//defer log.Debug("DBModel Get", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
if err = this.Redis.HGetAll(this.ukey(uid), data); err != nil && err != lgredis.RedisNil { if err = this.Redis.HGetAll(this.ukey(uid), data); err != nil && err != lgredis.RedisNil {
return return
} }
@ -320,6 +328,7 @@ func (this *DBModel) Get(uid string, data interface{}, opt ...DBOption) (err err
//获取列表数据 注意 data 必须是 切片的指针 *[]type //获取列表数据 注意 data 必须是 切片的指针 *[]type
func (this *DBModel) GetList(uid string, data interface{}) (err error) { func (this *DBModel) GetList(uid string, data interface{}) (err error) {
//defer log.Debug("DBModel GetList", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "data", Value: data})
var ( var (
dtype reflect2.Type dtype reflect2.Type
dkind reflect.Kind dkind reflect.Kind
@ -435,6 +444,7 @@ func (this *DBModel) GetList(uid string, data interface{}) (err error) {
//获取队列数据 //获取队列数据
func (this *DBModel) GetQueues(key string, count int, data interface{}) (err error) { func (this *DBModel) GetQueues(key string, count int, data interface{}) (err error) {
//defer log.Debug("DBModel GetQueues", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "key", Value: key}, log.Field{Key: "data", Value: data})
var ( var (
dtype reflect2.Type dtype reflect2.Type
dkind reflect.Kind dkind reflect.Kind
@ -505,6 +515,7 @@ func (this *DBModel) GetQueues(key string, count int, data interface{}) (err err
//读取单个数据中 多个字段数据 //读取单个数据中 多个字段数据
func (this *DBModel) GetFields(uid string, data interface{}, fields ...string) (err error) { func (this *DBModel) GetFields(uid string, data interface{}, fields ...string) (err error) {
//defer log.Debug("DBModel GetFields", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "data", Value: data})
if err = this.Redis.HMGet(this.ukey(uid), data, fields...); err != nil && err != lgredis.RedisNil { if err = this.Redis.HMGet(this.ukey(uid), data, fields...); err != nil && err != lgredis.RedisNil {
return return
} }
@ -524,6 +535,7 @@ func (this *DBModel) GetFields(uid string, data interface{}, fields ...string) (
//读取List列表中单个数据中 多个字段数据 //读取List列表中单个数据中 多个字段数据
func (this *DBModel) GetListFields(uid string, id string, data interface{}, fields ...string) (err error) { func (this *DBModel) GetListFields(uid string, id string, data interface{}, fields ...string) (err error) {
//defer log.Debug("DBModel GetListFields", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "id", Value: id}, log.Field{Key: "data", Value: data})
var ( var (
c *mongo.Cursor c *mongo.Cursor
keys map[string]string keys map[string]string
@ -578,6 +590,7 @@ func (this *DBModel) GetListFields(uid string, id string, data interface{}, fiel
//读取列表数据中单个数据 //读取列表数据中单个数据
func (this *DBModel) GetListObj(uid string, id string, data interface{}) (err error) { func (this *DBModel) GetListObj(uid string, id string, data interface{}) (err error) {
//defer log.Debug("DBModel GetListObj", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "id", Value: id}, log.Field{Key: "data", Value: data})
var ( var (
c *mongo.Cursor c *mongo.Cursor
keys map[string]string keys map[string]string
@ -642,6 +655,7 @@ func (this *DBModel) GetListObj(uid string, id string, data interface{}) (err er
//读取列表数据中单个数据 //读取列表数据中单个数据
func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (err error) { func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (err error) {
//defer log.Debug("DBModel GetListObjs", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "ids", Value: ids}, log.Field{Key: "data", Value: data})
var ( var (
dtype reflect2.Type dtype reflect2.Type
dkind reflect.Kind dkind reflect.Kind
@ -754,6 +768,7 @@ func (this *DBModel) GetListObjs(uid string, ids []string, data interface{}) (er
//删除用户数据 //删除用户数据
func (this *DBModel) Del(uid string, opt ...DBOption) (err error) { func (this *DBModel) Del(uid string, opt ...DBOption) (err error) {
//defer log.Debug("DBModel Del", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid})
err = this.Redis.Delete(this.ukey(uid)) err = this.Redis.Delete(this.ukey(uid))
if err != nil { if err != nil {
return err return err
@ -767,6 +782,7 @@ func (this *DBModel) Del(uid string, opt ...DBOption) (err error) {
//删除多条数据 //删除多条数据
func (this *DBModel) DelListlds(uid string, ids ...string) (err error) { func (this *DBModel) DelListlds(uid string, ids ...string) (err error) {
//defer log.Debug("DBModel DelListlds", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid}, log.Field{Key: "ids", Value: ids})
listkey := this.ukey(uid) listkey := this.ukey(uid)
pipe := this.Redis.RedisPipe(context.TODO()) pipe := this.Redis.RedisPipe(context.TODO())
for _, v := range ids { for _, v := range ids {
@ -782,6 +798,7 @@ func (this *DBModel) DelListlds(uid string, ids ...string) (err error) {
//批量删除数据 //批量删除数据
func (this *DBModel) BatchDelLists(uid string) (err error) { func (this *DBModel) BatchDelLists(uid string) (err error) {
//defer log.Debug("DBModel BatchDelLists", log.Field{Key: "TableName", Value: this.TableName}, log.Field{Key: "uid", Value: uid})
var keys map[string]string var keys map[string]string
pipe := this.Redis.RedisPipe(context.TODO()) pipe := this.Redis.RedisPipe(context.TODO())
if keys, err = this.Redis.HGetAllToMapString(this.ukey(uid)); err == nil { if keys, err = this.Redis.HGetAllToMapString(this.ukey(uid)); err == nil {