feat: add config instance.
This commit is contained in:
@@ -0,0 +1,967 @@
|
||||
[
|
||||
{
|
||||
"m_strName": "Đại lục Hoàn Mỹ",
|
||||
"m_id": 1,
|
||||
"m_strPath": "world",
|
||||
"m_iRowNum": 11,
|
||||
"m_iColNum": 8,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
"r1_5-c4_5-l0",
|
||||
"r3_3-c6_6-l0",
|
||||
"r4_7-c2_3-l0",
|
||||
"r8_8-c1_3-l0",
|
||||
"r8_9-c6_6-l0",
|
||||
"r1_2-c7_7-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Minh Thú Thành",
|
||||
"m_id": 101,
|
||||
"m_strPath": "a01",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Anh Hùng Trủng",
|
||||
"m_id": 102,
|
||||
"m_strPath": "a02",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Bàn Ti Động",
|
||||
"m_id": 103,
|
||||
"m_strPath": "a03",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thổ Nâu Động Huyệt",
|
||||
"m_id": 104,
|
||||
"m_strPath": "a04",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Hỏa Nham Động Huyệt",
|
||||
"m_id": 105,
|
||||
"m_strPath": "a05",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Cuồng Lang Sào Huyệt",
|
||||
"m_id": 106,
|
||||
"m_strPath": "a06",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Xà Hạt Động",
|
||||
"m_id": 107,
|
||||
"m_strPath": "a07",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thanh Y Trủng",
|
||||
"m_id": 108,
|
||||
"m_strPath": "a08",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "U Minh Cư",
|
||||
"m_id": 109,
|
||||
"m_strPath": "a09",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lí Sương Bí Cảnh",
|
||||
"m_id": 110,
|
||||
"m_strPath": "a10",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thiên Kiếp Cốc",
|
||||
"m_id": 111,
|
||||
"m_strPath": "a11",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tùng Lâm Di Tích",
|
||||
"m_id": 112,
|
||||
"m_strPath": "a12",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Quỷ Vực Huyễn Cảnh",
|
||||
"m_id": 113,
|
||||
"m_strPath": "a13",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Oán Linh Chi Môn",
|
||||
"m_id": 114,
|
||||
"m_strPath": "a14",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Bí Bảo Quật",
|
||||
"m_id": 115,
|
||||
"m_strPath": "a15",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tiên Huyễn Thiên",
|
||||
"m_id": 116,
|
||||
"m_strPath": "a16",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Ma Huyễn Thiên",
|
||||
"m_id": 117,
|
||||
"m_strPath": "a17",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Long Cung",
|
||||
"m_id": 118,
|
||||
"m_strPath": "a18",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Dạ Khốc Đảo",
|
||||
"m_id": 119,
|
||||
"m_strPath": "a19",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Vạn Xà Đảo",
|
||||
"m_id": 120,
|
||||
"m_strPath": "a20",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tiên Giới",
|
||||
"m_id": 121,
|
||||
"m_strPath": "a21",
|
||||
"m_iRowNum": 4,
|
||||
"m_iColNum": 4,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Ma Giới",
|
||||
"m_id": 122,
|
||||
"m_strPath": "a22",
|
||||
"m_iRowNum": 4,
|
||||
"m_iColNum": 4,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thiên Giới Luyện Ngục",
|
||||
"m_id": 123,
|
||||
"m_strPath": "a23",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Ma Vực Đào Nguyên",
|
||||
"m_id": 124,
|
||||
"m_strPath": "a24",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Chiến Ca Chi Thành",
|
||||
"m_id": 125,
|
||||
"m_strPath": "a25",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Luân Hồi Điện",
|
||||
"m_id": 126,
|
||||
"m_strPath": "a26",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thần Nguyệt Cốc",
|
||||
"m_id": 127,
|
||||
"m_strPath": "a27",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thần Vô Cốc",
|
||||
"m_id": 128,
|
||||
"m_strPath": "a28",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Phúc Sương Thành",
|
||||
"m_id": 129,
|
||||
"m_strPath": "a29",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Hoàng Hôn Thánh Điện",
|
||||
"m_id": 131,
|
||||
"m_strPath": "a31",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Vận Mệnh Ma Phương",
|
||||
"m_id": 132,
|
||||
"m_strPath": "a32",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thiên Lệ Chi Thành",
|
||||
"m_id": 133,
|
||||
"m_strPath": "a33",
|
||||
"m_iRowNum": 2,
|
||||
"m_iColNum": 2,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Khung cảnh Hôn Lễ",
|
||||
"m_id": 134,
|
||||
"m_strPath": "a34",
|
||||
"m_iRowNum": 2,
|
||||
"m_iColNum": 2,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Phụ bản Bang Phái",
|
||||
"m_id": 135,
|
||||
"m_strPath": "a35",
|
||||
"m_iRowNum": 4,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Bồng Lai Huyễn Cảnh",
|
||||
"m_id": 137,
|
||||
"m_strPath": "a37",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 6,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Phượng Minh Cốc",
|
||||
"m_id": 138,
|
||||
"m_strPath": "a38",
|
||||
"m_iRowNum": 2,
|
||||
"m_iColNum": 2,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Vô ĐỊnh Trụ-mô thức cấp thấp",
|
||||
"m_id": 139,
|
||||
"m_strPath": "a39",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Phục Nhĩ Địa Huyệt Thần Độc Chi Gian",
|
||||
"m_id": 140,
|
||||
"m_strPath": "a40",
|
||||
"m_iRowNum": 2,
|
||||
"m_iColNum": 2,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{ 0, -200, 160, 200, a40_tile_0101.dds }"
|
||||
},
|
||||
{
|
||||
"m_strName": "Vô ĐỊnh Trụ-mô thức cấp cao",
|
||||
"m_id": 141,
|
||||
"m_strPath": "a41",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Chiến Thần Cốc",
|
||||
"m_id": 142,
|
||||
"m_strPath": "a42",
|
||||
"m_iRowNum": 2,
|
||||
"m_iColNum": 2,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Ngũ Đế Chi Đô",
|
||||
"m_id": 143,
|
||||
"m_strPath": "a43",
|
||||
"m_iRowNum": 6,
|
||||
"m_iColNum": 2,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Quốc Chiến-Cô Đảo Đoạt Kì",
|
||||
"m_id": 144,
|
||||
"m_strPath": "a44",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Quốc Chiến-Thủy Tinh Tranh Đoạt",
|
||||
"m_id": 145,
|
||||
"m_strPath": "a45",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Quốc Chiến-Đoạn Kiều Đối Trì",
|
||||
"m_id": 146,
|
||||
"m_strPath": "a46",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lạc Nhật Cốc",
|
||||
"m_id": 147,
|
||||
"m_strPath": "a47",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Bất Xá Đường",
|
||||
"m_id": 148,
|
||||
"m_strPath": "a48",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Linh Đàn Huyễn Cảnh",
|
||||
"m_id": 150,
|
||||
"m_strPath": "a50",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Long Ẩn Quật",
|
||||
"m_id": 149,
|
||||
"m_strPath": "a49",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Linh Độ Đinh Châu",
|
||||
"m_id": 161,
|
||||
"m_strPath": "a61",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 4,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
"r1_1-c1_2-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Khung Thế Giới",
|
||||
"m_id": 162,
|
||||
"m_strPath": "a62",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 4,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
"r1_1-c1_2-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Nhân Giới",
|
||||
"m_id": 163,
|
||||
"m_strPath": "a63",
|
||||
"m_iRowNum": 4,
|
||||
"m_iColNum": 4,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lưu Ngân Cung",
|
||||
"m_id": 166,
|
||||
"m_strPath": "a66",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Phục Ba Đường",
|
||||
"m_id": 167,
|
||||
"m_strPath": "a67",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Mô thức Câu chuyện Nhân Giới",
|
||||
"m_id": 168,
|
||||
"m_strPath": "a68",
|
||||
"m_iRowNum": 4,
|
||||
"m_iColNum": 4,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Bồng Minh Động",
|
||||
"m_id": 169,
|
||||
"m_strPath": "a69",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
"r0_0-c0_0-l0"
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Vận Mệnh Ma Phương",
|
||||
"m_id": 170,
|
||||
"m_strPath": "a70",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thiện Long Cốc",
|
||||
"m_id": 171,
|
||||
"m_strPath": "a71",
|
||||
"m_iRowNum": 4,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tru Thiên Phù Đồ Tháp",
|
||||
"m_id": 172,
|
||||
"m_strPath": "a72",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tru Thiên Phù Đồ Tháp",
|
||||
"m_id": 173,
|
||||
"m_strPath": "a72",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tru Thiên Phù Đồ Tháp",
|
||||
"m_id": 174,
|
||||
"m_strPath": "a72",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Tru Thiên Phù Đồ Tháp",
|
||||
"m_id": 175,
|
||||
"m_strPath": "a72",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thiên Hạ Đệ Nhất Tỉ Võ Đại Hội",
|
||||
"m_id": 177,
|
||||
"m_strPath": "a77",
|
||||
"m_iRowNum": 2,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Huyễn Hải Kì Đàm",
|
||||
"m_id": 176,
|
||||
"m_strPath": "a76",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lăng Vân Giới",
|
||||
"m_id": 180,
|
||||
"m_strPath": "a80",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lăng Vân Giới",
|
||||
"m_id": 181,
|
||||
"m_strPath": "a80",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lăng Vân Giới",
|
||||
"m_id": 182,
|
||||
"m_strPath": "a80",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Lăng Vân Giới",
|
||||
"m_id": 183,
|
||||
"m_strPath": "a80",
|
||||
"m_iRowNum": 3,
|
||||
"m_iColNum": 3,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Đấu trường Kiếm Tiên Thành",
|
||||
"m_id": 201,
|
||||
"m_strPath": "b01",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Đấu trường Vạn Hóa Thành",
|
||||
"m_id": 202,
|
||||
"m_strPath": "b02",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Đấu trường Tích Vũ Thành",
|
||||
"m_id": 203,
|
||||
"m_strPath": "b03",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Đấu trường Tổ Long Thành",
|
||||
"m_id": 204,
|
||||
"m_strPath": "b04",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Huyễn Sa Thận Cảnh",
|
||||
"m_id": 213,
|
||||
"m_strPath": "random03",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Mê Sa Huyễn Cảnh",
|
||||
"m_id": 214,
|
||||
"m_strPath": "random03",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 1,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thành Chiến 1",
|
||||
"m_id": 230,
|
||||
"m_strPath": "b30",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thành Chiến 2",
|
||||
"m_id": 231,
|
||||
"m_strPath": "b30",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thành Chiến 3",
|
||||
"m_id": 232,
|
||||
"m_strPath": "b30",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thành Chiến 4",
|
||||
"m_id": 233,
|
||||
"m_strPath": "b30",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thành Chiến 5",
|
||||
"m_id": 234,
|
||||
"m_strPath": "b30",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
},
|
||||
{
|
||||
"m_strName": "Thành Chiến 6",
|
||||
"m_id": 235,
|
||||
"m_strPath": "b30",
|
||||
"m_iRowNum": 1,
|
||||
"m_iColNum": 1,
|
||||
"m_bLimitJump": 0,
|
||||
"m_routeFiles": [
|
||||
|
||||
],
|
||||
"m_content": "{}"
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,7 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 4dde960e818ed37448ebde2cbe895031
|
||||
TextScriptImporter:
|
||||
externalObjects: {}
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: ac7d3a4570c17794eba58d06044d53b0
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 11400000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
@@ -256,5 +256,66 @@ namespace BrewMonster.Common
|
||||
public bool IsEnd() { return m_Script.pCurIndex >= m_Script.pFileBuf.Length; }
|
||||
// Get current line
|
||||
public int GetCurLine() { return m_Script.iLine; }
|
||||
|
||||
/* Search specified token. This function get next token and check whether it match
|
||||
specified string, if match, then stop and return true, otherwise get next token
|
||||
again until all file is checked or token is found.
|
||||
|
||||
Note: This will be crossing-line search.
|
||||
|
||||
Return true for success, otherwise return false.
|
||||
|
||||
wszToken: specified token will be searched
|
||||
bCaseSensitive: true, case sensitive
|
||||
*/
|
||||
public bool MatchToken(ushort[] wszToken, bool bCaseSensitive)
|
||||
{
|
||||
while (GetNextToken(true))
|
||||
{
|
||||
if (bCaseSensitive)
|
||||
{
|
||||
if (string.Compare(ByteToStringUtils.UshortArrayToUnicodeString(m_szToken),
|
||||
ByteToStringUtils.UshortArrayToUnicodeString(wszToken),
|
||||
StringComparison.Ordinal) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.Compare(ByteToStringUtils.UshortArrayToUnicodeString(m_szToken),
|
||||
ByteToStringUtils.UshortArrayToUnicodeString(wszToken),
|
||||
StringComparison.OrdinalIgnoreCase) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
public bool MatchToken(string wszToken, bool bCaseSensitive)
|
||||
{
|
||||
while (GetNextToken(true))
|
||||
{
|
||||
if (bCaseSensitive)
|
||||
{
|
||||
if (string.Compare(ByteToStringUtils.UshortArrayToUnicodeString(m_szToken),
|
||||
wszToken, StringComparison.Ordinal) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (string.Compare(ByteToStringUtils.UshortArrayToUnicodeString(m_szToken),
|
||||
wszToken, StringComparison.OrdinalIgnoreCase) == 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -303,10 +303,10 @@ namespace BrewMonster
|
||||
fSpeedH = -fSpeedH;
|
||||
}
|
||||
|
||||
//int idInst = g_pGame.GetGameRun().GetWorld().GetInstanceID();
|
||||
//CECInstance pInstance = g_pGame.GetGameRun().GetInstance(idInst);
|
||||
//if (pInstance.GetLimitJump())
|
||||
//fGravity *= 4.0f;
|
||||
int idInst = EC_Game.GetGameRun().GetWorld().GetInstanceID();
|
||||
CECInstance pInstance = EC_Game.GetGameRun().GetInstance(idInst);
|
||||
if (pInstance.GetLimitJump())
|
||||
fGravity *= 4.0f;
|
||||
Vector3 posStart = EC_Utility.ToVector3(m_pHost.m_aabbServer.Center);
|
||||
CDR_INFO cdr = m_pHost.m_CDRInfo;
|
||||
cdr.vCenter = m_pHost.m_aabbServer.Center;
|
||||
|
||||
@@ -0,0 +1,370 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Reflection;
|
||||
using System.Text;
|
||||
using UnityEditor;
|
||||
using UnityEngine;
|
||||
|
||||
namespace BrewMonster.Utils
|
||||
{
|
||||
public class JsonScriptableObjectImporterWindow : EditorWindow
|
||||
{
|
||||
private const string DefaultFieldTemplate =
|
||||
@"public string m_strName;
|
||||
public int m_id;
|
||||
public string m_strPath;
|
||||
public int m_iRowNum;
|
||||
public int m_iColNum;
|
||||
public int m_bLimitJump;
|
||||
public string[] m_routeFiles;
|
||||
public string m_content;";
|
||||
|
||||
private TextAsset jsonFile;
|
||||
private DefaultAsset outputFolder;
|
||||
private string dataTypeName = "JsonData";
|
||||
private string assetTypeName = "JsonDataAsset";
|
||||
private string assetFileName = "JsonDataAsset";
|
||||
private string fieldDefinitions = DefaultFieldTemplate;
|
||||
private bool generateStruct;
|
||||
private Vector2 scrollPosition;
|
||||
|
||||
[MenuItem("Tools/JSON ScriptableObject Importer")]
|
||||
public static void OpenWindow()
|
||||
{
|
||||
GetWindow<JsonScriptableObjectImporterWindow>("JSON -> ScriptableObject");
|
||||
}
|
||||
|
||||
private void OnGUI()
|
||||
{
|
||||
scrollPosition = EditorGUILayout.BeginScrollView(scrollPosition);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.HelpBox(
|
||||
"1. Keo file JSON vao o ben duoi.\n" +
|
||||
"2. Dien ten type va field cho struct/class.\n" +
|
||||
"3. Bam Generate Runtime Types de tao file C# trong project Unity.\n" +
|
||||
"4. Cho Unity compile xong, bam Create Asset From JSON.",
|
||||
MessageType.Info);
|
||||
|
||||
DrawJsonDropZone();
|
||||
|
||||
EditorGUILayout.Space();
|
||||
jsonFile = (TextAsset)EditorGUILayout.ObjectField("JSON Input", jsonFile, typeof(TextAsset), false);
|
||||
outputFolder = (DefaultAsset)EditorGUILayout.ObjectField("Output Folder", outputFolder, typeof(DefaultAsset), false);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Type Settings", EditorStyles.boldLabel);
|
||||
dataTypeName = EditorGUILayout.TextField("Data Type Name", dataTypeName);
|
||||
assetTypeName = EditorGUILayout.TextField("Asset Type Name", assetTypeName);
|
||||
assetFileName = EditorGUILayout.TextField("Asset File Name", assetFileName);
|
||||
generateStruct = EditorGUILayout.Toggle("Generate As Struct", generateStruct);
|
||||
|
||||
EditorGUILayout.Space();
|
||||
EditorGUILayout.LabelField("Struct/Class Fields", EditorStyles.boldLabel);
|
||||
EditorGUILayout.HelpBox(
|
||||
"Dien cac field theo cu phap C#. Vi du: public string name; public int id; public string[] tags;",
|
||||
MessageType.None);
|
||||
fieldDefinitions = EditorGUILayout.TextArea(fieldDefinitions, GUILayout.MinHeight(220));
|
||||
|
||||
EditorGUILayout.Space();
|
||||
using (new EditorGUILayout.HorizontalScope())
|
||||
{
|
||||
if (GUILayout.Button("Generate Runtime Types", GUILayout.Height(32)))
|
||||
{
|
||||
GenerateRuntimeTypes();
|
||||
}
|
||||
|
||||
if (GUILayout.Button("Create Asset From JSON", GUILayout.Height(32)))
|
||||
{
|
||||
CreateAssetFromJson();
|
||||
}
|
||||
}
|
||||
|
||||
EditorGUILayout.EndScrollView();
|
||||
}
|
||||
|
||||
private void DrawJsonDropZone()
|
||||
{
|
||||
Rect dropArea = GUILayoutUtility.GetRect(0f, 70f, GUILayout.ExpandWidth(true));
|
||||
GUI.Box(dropArea, "Drop file JSON vao day", EditorStyles.helpBox);
|
||||
|
||||
Event currentEvent = Event.current;
|
||||
if (!dropArea.Contains(currentEvent.mousePosition))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
if (currentEvent.type == EventType.DragUpdated || currentEvent.type == EventType.DragPerform)
|
||||
{
|
||||
DragAndDrop.visualMode = DragAndDropVisualMode.Copy;
|
||||
|
||||
if (currentEvent.type == EventType.DragPerform)
|
||||
{
|
||||
DragAndDrop.AcceptDrag();
|
||||
foreach (UnityEngine.Object draggedObject in DragAndDrop.objectReferences)
|
||||
{
|
||||
if (draggedObject is TextAsset textAsset)
|
||||
{
|
||||
jsonFile = textAsset;
|
||||
GUI.FocusControl(null);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
currentEvent.Use();
|
||||
}
|
||||
}
|
||||
|
||||
private void GenerateRuntimeTypes()
|
||||
{
|
||||
if (!ValidateGenerateInputs())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string folderPath = AssetDatabase.GetAssetPath(outputFolder);
|
||||
string sanitizedDataTypeName = SanitizeIdentifier(dataTypeName, "JsonData");
|
||||
string sanitizedAssetTypeName = SanitizeIdentifier(assetTypeName, sanitizedDataTypeName + "Asset");
|
||||
string outputPath = Path.Combine(folderPath, sanitizedAssetTypeName + ".cs").Replace("\\", "/");
|
||||
|
||||
string source = BuildRuntimeSource(
|
||||
sanitizedDataTypeName,
|
||||
sanitizedAssetTypeName,
|
||||
generateStruct,
|
||||
fieldDefinitions);
|
||||
|
||||
File.WriteAllText(outputPath, source, new UTF8Encoding(false));
|
||||
AssetDatabase.Refresh();
|
||||
|
||||
Debug.Log("Generated runtime types at: " + outputPath);
|
||||
EditorUtility.DisplayDialog(
|
||||
"Generate Complete",
|
||||
"Da tao file C# runtime. Hay doi Unity compile xong roi bam 'Create Asset From JSON'.",
|
||||
"OK");
|
||||
}
|
||||
|
||||
private void CreateAssetFromJson()
|
||||
{
|
||||
if (!ValidateImportInputs())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
string sanitizedDataTypeName = SanitizeIdentifier(dataTypeName, "JsonData");
|
||||
string sanitizedAssetTypeName = SanitizeIdentifier(assetTypeName, sanitizedDataTypeName + "Asset");
|
||||
string jsonText = jsonFile.text;
|
||||
|
||||
Type dataType = FindType(sanitizedDataTypeName);
|
||||
Type assetType = FindType(sanitizedAssetTypeName);
|
||||
Type wrapperType = FindType(sanitizedDataTypeName + "ArrayWrapper");
|
||||
|
||||
if (dataType == null || assetType == null || wrapperType == null)
|
||||
{
|
||||
EditorUtility.DisplayDialog(
|
||||
"Types Not Ready",
|
||||
"Khong tim thay cac type vua generate. Hay chac chan Unity da compile xong sau khi bam Generate.",
|
||||
"OK");
|
||||
return;
|
||||
}
|
||||
|
||||
ScriptableObject asset = ScriptableObject.CreateInstance(assetType);
|
||||
SetFieldIfExists(assetType, asset, "rawJson", jsonText);
|
||||
|
||||
string trimmedJson = jsonText.TrimStart();
|
||||
if (trimmedJson.StartsWith("[", StringComparison.Ordinal))
|
||||
{
|
||||
object wrapper = JsonUtility.FromJson("{\"items\":" + jsonText + "}", wrapperType);
|
||||
object items = wrapperType.GetField("items", BindingFlags.Public | BindingFlags.Instance)?.GetValue(wrapper);
|
||||
SetFieldIfExists(assetType, asset, "items", items);
|
||||
}
|
||||
else
|
||||
{
|
||||
object data = JsonUtility.FromJson(jsonText, dataType);
|
||||
SetFieldIfExists(assetType, asset, "data", data);
|
||||
}
|
||||
|
||||
string folderPath = AssetDatabase.GetAssetPath(outputFolder);
|
||||
string requestedName = string.IsNullOrWhiteSpace(assetFileName) ? sanitizedAssetTypeName : assetFileName.Trim();
|
||||
string assetPath = AssetDatabase.GenerateUniqueAssetPath(
|
||||
Path.Combine(folderPath, requestedName + ".asset").Replace("\\", "/"));
|
||||
|
||||
AssetDatabase.CreateAsset(asset, assetPath);
|
||||
EditorUtility.SetDirty(asset);
|
||||
AssetDatabase.SaveAssets();
|
||||
AssetDatabase.Refresh();
|
||||
Selection.activeObject = asset;
|
||||
|
||||
Debug.Log("Created ScriptableObject asset at: " + assetPath);
|
||||
EditorUtility.DisplayDialog("Import Complete", "Da tao asset tu JSON thanh cong.", "OK");
|
||||
}
|
||||
|
||||
private bool ValidateGenerateInputs()
|
||||
{
|
||||
if (outputFolder == null)
|
||||
{
|
||||
EditorUtility.DisplayDialog("Missing Output Folder", "Hay chon folder de tao file C# runtime.", "OK");
|
||||
return false;
|
||||
}
|
||||
|
||||
string folderPath = AssetDatabase.GetAssetPath(outputFolder);
|
||||
if (!AssetDatabase.IsValidFolder(folderPath))
|
||||
{
|
||||
EditorUtility.DisplayDialog("Invalid Folder", "Output Folder phai la mot folder trong Assets.", "OK");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(dataTypeName) || string.IsNullOrWhiteSpace(assetTypeName))
|
||||
{
|
||||
EditorUtility.DisplayDialog("Missing Type Names", "Hay nhap Data Type Name va Asset Type Name.", "OK");
|
||||
return false;
|
||||
}
|
||||
|
||||
if (string.IsNullOrWhiteSpace(fieldDefinitions))
|
||||
{
|
||||
EditorUtility.DisplayDialog("Missing Fields", "Hay nhap field cho struct/class.", "OK");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private bool ValidateImportInputs()
|
||||
{
|
||||
if (!ValidateGenerateInputs())
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
if (jsonFile == null)
|
||||
{
|
||||
EditorUtility.DisplayDialog("Missing JSON", "Hay keo hoac chon file JSON dau vao.", "OK");
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static string BuildRuntimeSource(
|
||||
string dataType,
|
||||
string assetType,
|
||||
bool asStruct,
|
||||
string fields)
|
||||
{
|
||||
string keyword = asStruct ? "struct" : "class";
|
||||
string createMenuName = "Tools/Generated/" + assetType;
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.AppendLine("using System;");
|
||||
builder.AppendLine("using UnityEngine;");
|
||||
builder.AppendLine();
|
||||
builder.AppendLine("[Serializable]");
|
||||
builder.AppendLine("public " + keyword + " " + dataType);
|
||||
builder.AppendLine("{");
|
||||
foreach (string line in NormalizeFieldLines(fields))
|
||||
{
|
||||
builder.AppendLine(" " + line);
|
||||
}
|
||||
|
||||
builder.AppendLine("}");
|
||||
builder.AppendLine();
|
||||
builder.AppendLine("[CreateAssetMenu(fileName = \"" + assetType + "\", menuName = \"" + createMenuName + "\")]");
|
||||
builder.AppendLine("public class " + assetType + " : ScriptableObject");
|
||||
builder.AppendLine("{");
|
||||
builder.AppendLine(" public " + dataType + " data;");
|
||||
builder.AppendLine(" public " + dataType + "[] items;");
|
||||
builder.AppendLine(" [TextArea(5, 20)]");
|
||||
builder.AppendLine(" public string rawJson;");
|
||||
builder.AppendLine("}");
|
||||
builder.AppendLine();
|
||||
builder.AppendLine("[Serializable]");
|
||||
builder.AppendLine("public class " + dataType + "ArrayWrapper");
|
||||
builder.AppendLine("{");
|
||||
builder.AppendLine(" public " + dataType + "[] items;");
|
||||
builder.AppendLine("}");
|
||||
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
private static IEnumerable<string> NormalizeFieldLines(string fields)
|
||||
{
|
||||
return fields
|
||||
.Replace("\r\n", "\n")
|
||||
.Split('\n')
|
||||
.Select(line => line.Trim())
|
||||
.Where(line => !string.IsNullOrWhiteSpace(line));
|
||||
}
|
||||
|
||||
private static void SetFieldIfExists(Type targetType, object target, string fieldName, object value)
|
||||
{
|
||||
FieldInfo field = targetType.GetField(fieldName, BindingFlags.Public | BindingFlags.Instance);
|
||||
if (field != null)
|
||||
{
|
||||
field.SetValue(target, value);
|
||||
}
|
||||
}
|
||||
|
||||
private static string SanitizeIdentifier(string value, string fallback)
|
||||
{
|
||||
if (string.IsNullOrWhiteSpace(value))
|
||||
{
|
||||
return fallback;
|
||||
}
|
||||
|
||||
List<char> chars = new List<char>();
|
||||
foreach (char character in value.Trim())
|
||||
{
|
||||
if (char.IsLetterOrDigit(character) || character == '_')
|
||||
{
|
||||
chars.Add(character);
|
||||
}
|
||||
}
|
||||
|
||||
if (chars.Count == 0)
|
||||
{
|
||||
return fallback;
|
||||
}
|
||||
|
||||
if (!char.IsLetter(chars[0]) && chars[0] != '_')
|
||||
{
|
||||
chars.Insert(0, '_');
|
||||
}
|
||||
|
||||
return new string(chars.ToArray());
|
||||
}
|
||||
|
||||
private static Type FindType(string typeName)
|
||||
{
|
||||
foreach (Assembly assembly in AppDomain.CurrentDomain.GetAssemblies())
|
||||
{
|
||||
Type directMatch = assembly.GetType(typeName);
|
||||
if (directMatch != null)
|
||||
{
|
||||
return directMatch;
|
||||
}
|
||||
|
||||
Type fallbackMatch = GetTypesSafely(assembly).FirstOrDefault(type => type.Name == typeName);
|
||||
if (fallbackMatch != null)
|
||||
{
|
||||
return fallbackMatch;
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private static IEnumerable<Type> GetTypesSafely(Assembly assembly)
|
||||
{
|
||||
try
|
||||
{
|
||||
return assembly.GetTypes();
|
||||
}
|
||||
catch (ReflectionTypeLoadException exception)
|
||||
{
|
||||
return exception.Types.Where(type => type != null);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4e64c3f6188cad4788ef2f489c614db
|
||||
@@ -0,0 +1,30 @@
|
||||
using System;
|
||||
using UnityEngine;
|
||||
|
||||
[Serializable]
|
||||
public struct instanceStruct
|
||||
{
|
||||
public string m_strName;
|
||||
public int m_id;
|
||||
public string m_strPath;
|
||||
public int m_iRowNum;
|
||||
public int m_iColNum;
|
||||
public int m_bLimitJump;
|
||||
public string[] m_routeFiles;
|
||||
public string m_content;
|
||||
}
|
||||
|
||||
[CreateAssetMenu(fileName = "instanceDataAsset", menuName = "Tools/Generated/instanceDataAsset")]
|
||||
public class instanceDataAsset : ScriptableObject
|
||||
{
|
||||
public instanceStruct data;
|
||||
public instanceStruct[] items;
|
||||
[TextArea(5, 20)]
|
||||
public string rawJson;
|
||||
}
|
||||
|
||||
[Serializable]
|
||||
public class instanceStructArrayWrapper
|
||||
{
|
||||
public instanceStruct[] items;
|
||||
}
|
||||
@@ -0,0 +1,2 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c6cd16271da5b06429a4ead9732e46b5
|
||||
@@ -1,4 +1,5 @@
|
||||
using BrewMonster.Common;
|
||||
using ModelRenderer.Scripts.Common;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using UnityEngine;
|
||||
@@ -8,7 +9,7 @@ namespace BrewMonster.Scripts
|
||||
public class CECInstance
|
||||
{
|
||||
int m_id = 161; // Instance ID
|
||||
ushort[] m_strName; // Instance name
|
||||
string m_strName; // Instance name
|
||||
string m_strPath; // Path
|
||||
int m_iRowNum = 3; // Number of map row
|
||||
int m_iColNum = 4; // Number of map column
|
||||
@@ -36,7 +37,7 @@ namespace BrewMonster.Scripts
|
||||
// Get instance ID
|
||||
public int GetID() { return m_id; }
|
||||
// Get instance name
|
||||
public ushort[] GetName() { return m_strName; }
|
||||
public string GetName() { return m_strName; }
|
||||
// Get instance data path
|
||||
public string GetPath() { return m_strPath; }
|
||||
// Get row and column number of map
|
||||
@@ -50,8 +51,16 @@ namespace BrewMonster.Scripts
|
||||
}
|
||||
|
||||
// Load instance information from file
|
||||
public bool Load(AWScriptFile psf)
|
||||
public bool Load(instanceStruct data)
|
||||
{
|
||||
m_id = data.m_id;
|
||||
m_strName = data.m_strName;
|
||||
m_strPath = data.m_strPath;
|
||||
m_iRowNum = data.m_iRowNum;
|
||||
m_iColNum = data.m_iColNum;
|
||||
m_bLimitJump = (data.m_bLimitJump != 0);
|
||||
m_routeFiles.Clear();
|
||||
m_routeFiles.AddRange(data.m_routeFiles);
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -17,6 +17,7 @@ using PerfectWorld.Scripts.Shop;
|
||||
using Unity.Cinemachine;
|
||||
using Unity.VisualScripting;
|
||||
using UnityEngine;
|
||||
using BrewMonster.Common;
|
||||
|
||||
public partial class CECGameRun : ITickable
|
||||
{
|
||||
@@ -109,11 +110,19 @@ public partial class CECGameRun : ITickable
|
||||
// Load instance information
|
||||
//if (!LoadInstanceInfo("Configs\\instance.txt"))
|
||||
//{
|
||||
// glb_ErrorOutput(ECERR_FAILEDTOCALL, "CECGameRun::Init", __LINE__);
|
||||
// return false;
|
||||
// //glb_ErrorOutput(ECERR_FAILEDTOCALL, "CECGameRun::Init", __LINE__);
|
||||
// //return false;
|
||||
//}
|
||||
if (!m_InstTab.ContainsKey(161))
|
||||
m_InstTab.Add(161, new CECInstance());
|
||||
var instanceOB = Resources.Load<instanceDataAsset>("instance");
|
||||
for(int i = 0; i < instanceOB.items.Length; i++)
|
||||
{
|
||||
if (!m_InstTab.ContainsKey(instanceOB.items[i].m_id))
|
||||
{
|
||||
var cecInstance = new CECInstance();
|
||||
cecInstance.Load(instanceOB.items[i]);
|
||||
m_InstTab.Add(instanceOB.items[i].m_id, cecInstance);
|
||||
}
|
||||
}
|
||||
AddressableManager.Instance.OnDispose += Dispose;
|
||||
if (m_pWorld == null)
|
||||
m_pWorld = new CECWorld();
|
||||
@@ -1171,8 +1180,37 @@ public partial class CECGameRun : ITickable
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// Load instance information from file
|
||||
bool LoadInstanceInfo(string szFile)
|
||||
{
|
||||
// AWScriptFile sf = new AWScriptFile();
|
||||
//if (!sf.Open(szFile))
|
||||
//{
|
||||
// //a_LogOutput(1, "CECGameRun::LoadInstanceInfo, Failed to load %s", szFile);
|
||||
// return false;
|
||||
//}
|
||||
// CECInstance pInst;
|
||||
// while (sf.PeekNextToken(true))
|
||||
// {
|
||||
// pInst = new CECInstance();
|
||||
// if (pInst == null || !pInst.Load(sf))
|
||||
// {
|
||||
// //a_LogOutput(1, "CECGameRun::LoadInstanceInfo, Failed to read %s near line:%d", szFile, sf.GetCurLine());
|
||||
// return false;
|
||||
// }
|
||||
|
||||
// if (!m_InstTab.ContainsKey(pInst.GetID()))
|
||||
// {
|
||||
// // ID collsion ?
|
||||
// m_InstTab.Add(pInst.GetID(), pInst);
|
||||
// }
|
||||
// }
|
||||
|
||||
// sf.Close();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
public enum GameState
|
||||
|
||||
Reference in New Issue
Block a user