Commit 676b4fa8 by chenjinjing

no message

parent 3f46088c
{}
\ No newline at end of file
{}
\ No newline at end of file
{}
++ /dev/null
{}
\ No newline at end of file
{}
++ /dev/null
{}
\ No newline at end of file
{}
++ /dev/null
{}
\ No newline at end of file
""
\ No newline at end of file
{
"isSubmit": false,
"S": [
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": false
}
],
"W": [],
"O": [],
"T": []
}
\ No newline at end of file
{
{
"普通线索": [
{
"xsid": "C001",
"xsnr": "马可波罗要定制1000只瓷器",
"isChoice": false,
"sfbx": "否"
}
],
"SWOT": [
{
"xsid": "C002",
"xsnr": "熟悉整套生产运输流程",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": true,
"sfbx": "否"
},
{
"xsid": "C004",
"xsnr": "在多地有熟识的好友可以提供咨询协助",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C005",
"xsnr": "有景德镇瓷胚的进货渠道",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C006",
"xsnr": "资金匮乏",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C007",
"xsnr": "没有外贸经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C008",
"xsnr": "没有成熟团队",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C015",
"xsnr": "广州气候适宜",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C013",
"xsnr": "西洋有大量的瓷器进口需求",
"isChoice": false,
"sfbx": "否"
}
],
"竞合": [
{
"xsid": "C023",
"xsnr": "从马可波罗口中得知,西洋订单大增",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C024",
"xsnr": "西洋订单货品质量和交货时限有严格要求",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C025",
"xsnr": "茶叶铺子,经营普通茶叶。深受老百姓喜爱。",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C020",
"xsnr": "独立手工作坊,承接金/银/琉璃等的塑形镶嵌特殊手艺\r\n手艺可以跨行业迁移",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C017",
"xsnr": "瓷器胚降价",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C018",
"xsnr": "颜料商活动折扣",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C019",
"xsnr": "广州瓷器大行,统货",
"isChoice": false,
"sfbx": "否"
}
],
"ROI": [
{
"xsid": "C046",
"xsnr": "定制精美瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C047",
"xsnr": "定制普通瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C048",
"xsnr": "通用精美瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C049",
"xsnr": "通用普通瓷器售价",
"isChoice": false,
"sfbx": "制成瓷器"
},
{
"xsid": "C041",
"xsnr": "水路",
"isChoice": false,
"sfbx": "运输"
},
{
"xsid": "C027",
"xsnr": "工人甲",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C028",
"xsnr": "工人乙",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C029",
"xsnr": "工人丙",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C030",
"xsnr": "工人丁",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C031",
"xsnr": "工人戊",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C032",
"xsnr": "工人己",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C033",
"xsnr": "工人庚",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C034",
"xsnr": "工人辛",
"isChoice": false,
"sfbx": "工人"
},
{
"xsid": "C035",
"xsnr": "画师1",
"isChoice": false,
"sfbx": "画师"
},
{
"xsid": "C036",
"xsnr": "画师2",
"isChoice": false,
"sfbx": "画师"
},
{
"xsid": "C037",
"xsnr": "画师3",
"isChoice": false,
"sfbx": "画师"
},
{
"xsid": "C038",
"xsnr": "掌柜A",
"isChoice": false,
"sfbx": "掌柜"
},
{
"xsid": "C039",
"xsnr": "掌柜B",
"isChoice": false,
"sfbx": "掌柜"
}
]
}
\ No newline at end of file
{
{
"初始资金": 500,
"天数": 8,
"结算": -2700,
"广州府介绍": false,
"酒馆剧情": 2,
"当前线索确认": 1,
"商行选择": false,
"SWOT": true,
"ROI": false,
"竞合": false,
"码头": {
"S011": {
"当前对话id": "9",
"已获得的线索": [
"C023",
"C013",
"C046",
"C047",
"C048",
"C049",
"C001",
"C024"
]
},
"S012": {
"当前对话id": "1",
"已获得的线索": [
"C025"
]
},
"S013": {
"当前对话id": 5,
"已获得的线索": [
"C020"
]
},
"S014": {
"当前对话id": "1"
}
},
"酒馆": {
"S021": {
"当前对话id": "15",
"已获得的线索": []
}
}
}
\ No newline at end of file
{
{
"SWOT": 3.8461538461538463,
"ROI": 0,
"竞合": 0
}
\ No newline at end of file
""
""
\ No newline at end of file
{
{
"SWOT": {
"S": [
"C002",
"C003",
"C004",
"C005"
],
"W": [
"C006",
"C007",
"C008"
],
"O": [
"C012",
"C013",
"C014"
],
"T": [
"C009",
"C010",
"C011"
]
},
"ROI": {
"R": [
"C046",
"C047",
"C048",
"C049"
],
"I": [
"C027",
"C028",
"C029",
"C030",
"C031",
"C032",
"C033",
"C034",
"C035",
"C036",
"C037",
"C038",
"C039",
"C040",
"C041",
"C042",
"C043",
"C044",
"C045"
]
},
"竞合": {
"供方": [
"C017",
"C018"
],
"现有竞争": [
"C019"
],
"潜在竞争": [
"C020"
],
"替代竞争": [
"C021",
"C022"
],
"买方": [
"C023",
"C024"
]
}
}
\ No newline at end of file
{
{
"运输": "C041",
"人工": {
"工人": "C028",
"画师": "C036",
"掌柜": "C039"
}
}
\ No newline at end of file
""
\ No newline at end of file
""
\ No newline at end of file
{
{
{
"初始资金": 500,
"天数": 73,
"天数": 1,
"结算": 500,
"广州府介绍": false,
"酒馆剧情": 0,
......
""
""
\ No newline at end of file
""
""
\ No newline at end of file
""
""
\ No newline at end of file
""
\ No newline at end of file
""
\ No newline at end of file
{
{
"普通线索": [],
"SWOT": [
{
"xsid": "C002",
"xsnr": "熟悉整套生产运输流程",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C004",
"xsnr": "在多地有熟识的好友可以提供咨询协助",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C005",
"xsnr": "有景德镇瓷胚的进货渠道",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C006",
"xsnr": "资金匮乏",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C007",
"xsnr": "没有外贸经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C008",
"xsnr": "没有成熟团队",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C015",
"xsnr": "广州气候适宜",
"isChoice": false,
"sfbx": "否"
}
],
"竞合": [],
"ROI": []
}
\ No newline at end of file
{
{
"初始资金": 500,
"天数": 1,
"结算": 500,
"广州府介绍": false,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
}
\ No newline at end of file
{
{
"SWOT": 0,
"ROI": 0,
"竞合": 0
}
\ No newline at end of file
""
""
\ No newline at end of file
""
""
\ No newline at end of file
""
""
\ No newline at end of file
""
""
\ No newline at end of file
""
""
\ No newline at end of file
{
{
"普通线索": [],
"SWOT": [
{
"xsid": "C002",
"xsnr": "熟悉整套生产运输流程",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C003",
"xsnr": "有瓷器的实际设计成功经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C004",
"xsnr": "在多地有熟识的好友可以提供咨询协助",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C005",
"xsnr": "有景德镇瓷胚的进货渠道",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C006",
"xsnr": "资金匮乏",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C007",
"xsnr": "没有外贸经验",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C008",
"xsnr": "没有成熟团队",
"isChoice": false,
"sfbx": "否"
},
{
"xsid": "C015",
"xsnr": "广州气候适宜",
"isChoice": false,
"sfbx": "否"
}
],
"竞合": [],
"ROI": []
}
\ No newline at end of file
{
{
"初始资金": 500,
"天数": 1,
"结算": 500,
"广州府介绍": false,
"酒馆剧情": 0,
"当前线索确认": 0,
"商行选择": false,
"SWOT": false,
"ROI": false,
"竞合": false
}
\ No newline at end of file
{
{
"SWOT": 0,
"ROI": 0,
"竞合": 0
}
\ No newline at end of file
""
""
\ No newline at end of file
{
{
"js":[
[
"你来自景德镇,曾官至从五品景德镇御窑驻厂协造,负责协助督陶官管理景德镇御窑厂务,负责具体的生产组织和协调工作。曾经参与设计过几款深得西宫赏喜爱的瓷器。",
"然而一次因为官瓷烧造质量问题,当任督陶官受到康熙帝问责,连你一并革职贬为庶民。",
"没了差事,做些什么好呢?你听闻南方广州府最近对外贸易很是活跃,想着是否可以去那儿看看有什么有意思的事情,顺便走访一下好友散散心。",
"于是,你带着自己这些年勤勤恳恳赚的俸禄,告别景德镇的一众好友,只身一人一路南下来到了广州府。"
],
[
"广州府是广东省的治所所在地,商贸繁荣,目前是整个清朝唯一的通商口岸,大量外国商人前来从事贸易活动,这也使得广州府成为了清朝与世界交流的重要窗口。此外,广州府的农业、手工业也十分发达,尤其是丝绸、制茶等行业,为当地经济注入了源源不断的活力。",
"广州十三行商,简称十三行,是广州府特许经营对外贸易的专业商行。十三行具有半官半商的性质,是清政府特许的外贸垄断组织。大量的外国商船在这里进行贸易,使得十三行成为了清朝与世界交易的中心。十三行也因此积累了大量的财富,有“金山珠海,天子南库”之称。",
"你望着十三行熙熙攘攘的人群, 想起前段时间的无妄之灾,释然的笑了笑,下定决心卷土重来。这正是:",
"革职南来意未休,",
"广州商海望风流。",
"东山再起非虚梦,",
"西洋贸易展宏猷。"
]
]
}
\ No newline at end of file
{
{
"瓷器": {
"定制精美瓷器": {
"瓷器": "C044",
"颜料": "C042",
"单价": 300,
"固定成本": 200
},
"定制普通瓷器": {
"瓷器": "C044",
"颜料": "C043",
"单价": 270,
"固定成本": 190
},
"通用精美瓷器": {
"瓷器": "C045",
"颜料": "C042",
"单价": 170,
"固定成本": 120
},
"通用普通瓷器": {
"瓷器": "C045",
"颜料": "C043",
"单价": 150,
"固定成本": 110
}
},
"人员成本": {
"C027": {
"ycl": 360,
"gz": 150,
"fjcb": 0.42
},
"C028": {
"ycl": 450,
"gz": 150,
"fjcb": 0.33
},
"C029": {
"ycl": 510,
"gz": 150,
"fjcb": 0.29
},
"C030": {
"ycl": 840,
"gz": 300,
"fjcb": 0.36
},
"C031": {
"ycl": 960,
"gz": 300,
"fjcb": 0.31
},
"C032": {
"ycl": 1050,
"gz": 300,
"fjcb": 0.29
},
"C033": {
"ycl": 1350,
"gz": 450,
"fjcb": 0.33
},
"C034": {
"ycl": 1650,
"gz": 450,
"fjcb": 0.27
},
"C035": {
"ycl": 500,
"gz": 1000,
"fjcb": 2
},
"C036": {
"ycl": 1320,
"gz": 2000,
"fjcb": 1.52
},
"C037": {
"ycl": 1900,
"gz": 3000,
"fjcb": 1.58
},
"C038": {
"ycl": 1000,
"gz": 1000,
"fjcb": 1
},
"C039": {
"ycl": 1100,
"gz": 1050,
"fjcb": 0.95
}
},
"运输成本": {
"C040": {
"sjmc": "车路",
"xjb": 1.33
},
"C041": {
"sjmc": "水路",
"xjb": 1
}
}
}
\ No newline at end of file
[
[
{
"userId": "1727399696222",
"loginId": "玩家1",
"pwd": "123456",
"name": "赵今麦"
},
{
"userId": "1729153582461",
"loginId": "玩家2",
"pwd": "123456",
"name": "陈知行"
},
{
"userId": "1730359559228",
"loginId": "admin",
"pwd": "123456"
},
{
"userId": "1730970187744",
"loginId": "111",
"pwd": "123456",
"name": "小陈"
},
{
"userId": "1730359573927",
"loginId": "222",
"pwd": "123456",
"name": "小陈"
},
{
"userId": "1730970810891",
"loginId": "333",
"pwd": "123456"
},
{
"userId": "1732604118825",
"loginId": "jason",
"pwd": "123456"
}
]
\ No newline at end of file
[
[
{
"userId": "1727399696222",
"loginId": "玩家1",
"pwd": "123456",
"name": "赵今麦"
},
{
"userId": "1729153582461",
"loginId": "玩家2",
"pwd": "123456",
"name": "陈知行"
},
{
"userId": "1730359559228",
"loginId": "admin",
"pwd": "123456"
},
{
"userId": "1730970187744",
"loginId": "111",
"pwd": "123456",
"name": "小陈"
},
{
"userId": "1730359573927",
"loginId": "222",
"pwd": "123456",
"name": "小陈"
},
{
"userId": "1730970810891",
"loginId": "333",
"pwd": "123456"
},
{
"userId": "1732604118825",
"loginId": "jason",
"pwd": "123456"
},
{
"userId": "1733721277715",
"loginId": "1组01号",
"pwd": "123456",
"name": "czxx"
},
{
"userId": "1733721282741",
"loginId": "1组02号",
"pwd": "123456",
"name": "czx2"
},
{
"userId": "1733721289502",
"loginId": "1组03号",
"pwd": "123456",
"name": "czx3"
},
{
"userId": "1733721294324",
"loginId": "1组04号",
"pwd": "123456",
"name": "czx4"
},
{
"userId": "1733721294972",
"loginId": "1组05号",
"pwd": "123456",
"name": "czx5"
},
{
"userId": "1733721295560",
"loginId": "admin01",
"pwd": "123456"
},
{
"userId": "1733721296156",
"loginId": "2组01号",
"pwd": "123456"
},
{
"userId": "1733721296732",
"loginId": "2组02号",
"pwd": "123456"
},
{
"userId": "1733721297271",
"loginId": "2组03号",
"pwd": "123456"
},
{
"userId": "1733721297989",
"loginId": "2组04号",
"pwd": "123456"
},
{
"userId": "1733721298636",
"loginId": "2组05号",
"pwd": "123456"
},
{
"userId": "1733721299526",
"loginId": "admin02",
"pwd": "123456"
},
{
"userId": "1733721300203",
"loginId": "3组01号",
"pwd": "123456"
},
{
"userId": "1733721300851",
"loginId": "3组02号",
"pwd": "123456"
},
{
"userId": "1733721301452",
"loginId": "3组03号",
"pwd": "123456"
},
{
"userId": "1733721302006",
"loginId": "3组04号",
"pwd": "123456"
},
{
"userId": "1733721302645",
"loginId": "3组05号",
"pwd": "123456"
},
{
"userId": "1733721303196",
"loginId": "admin03",
"pwd": "123456"
},
{
"userId": "1733721303748",
"loginId": "4组01号",
"pwd": "123456"
},
{
"userId": "1733721304316",
"loginId": "4组02号",
"pwd": "123456"
},
{
"userId": "1733721304844",
"loginId": "4组03号",
"pwd": "123456"
},
{
"userId": "1733721305357",
"loginId": "4组04号",
"pwd": "123456"
},
{
"userId": "1733721305877",
"loginId": "4组05号",
"pwd": "123456"
},
{
"userId": "1733721306436",
"loginId": "admin04",
"pwd": "123456"
},
{
"userId": "1733721306999",
"loginId": "5组01号",
"pwd": "123456"
},
{
"userId": "1733721307566",
"loginId": "5组02号",
"pwd": "123456"
},
{
"userId": "1733721308205",
"loginId": "5组03号",
"pwd": "123456"
},
{
"userId": "1733721308740",
"loginId": "5组04号",
"pwd": "123456"
},
{
"userId": "1733721309684",
"loginId": "5组05号",
"pwd": "123456"
},
{
"userId": "1733721310333",
"loginId": "admin05",
"pwd": "123456"
},
{
"userId": "1733721351752",
"loginId": "1组1号",
"pwd": "123456"
},
{
"userId": "1733721356559",
"loginId": "1组2号",
"pwd": "123456"
},
{
"userId": "1733721356581",
"loginId": "1组3号",
"pwd": "123456"
},
{
"userId": "1733721356600",
"loginId": "1组4号",
"pwd": "123456"
},
{
"userId": "1733721356615",
"loginId": "1组5号",
"pwd": "123456"
},
{
"userId": "1733721356627",
"loginId": "2组1号",
"pwd": "123456"
},
{
"userId": "1733721356654",
"loginId": "2组2号",
"pwd": "123456"
},
{
"userId": "1733721356683",
"loginId": "2组3号",
"pwd": "123456"
},
{
"userId": "1733721356696",
"loginId": "2组4号",
"pwd": "123456"
},
{
"userId": "1733721356709",
"loginId": "2组5号",
"pwd": "123456"
},
{
"userId": "1733721356719",
"loginId": "3组1号",
"pwd": "123456"
},
{
"userId": "1733721356740",
"loginId": "3组2号",
"pwd": "123456"
},
{
"userId": "1733721356750",
"loginId": "3组3号",
"pwd": "123456"
},
{
"userId": "1733721356765",
"loginId": "3组4号",
"pwd": "123456"
},
{
"userId": "1733721356776",
"loginId": "3组5号",
"pwd": "123456"
},
{
"userId": "1733721356789",
"loginId": "4组1号",
"pwd": "123456"
},
{
"userId": "1733721356799",
"loginId": "4组2号",
"pwd": "123456"
},
{
"userId": "1733721356810",
"loginId": "4组3号",
"pwd": "123456"
},
{
"userId": "1733721356877",
"loginId": "4组4号",
"pwd": "123456"
},
{
"userId": "1733721356899",
"loginId": "4组5号",
"pwd": "123456"
},
{
"userId": "1733721356917",
"loginId": "5组1号",
"pwd": "123456"
},
{
"userId": "1733721356942",
"loginId": "5组2号",
"pwd": "123456"
},
{
"userId": "1733721356956",
"loginId": "5组3号",
"pwd": "123456"
},
{
"userId": "1733721356967",
"loginId": "5组4号",
"pwd": "123456"
},
{
"userId": "1733721356979",
"loginId": "5组5号",
"pwd": "123456"
}
]
\ No newline at end of file
[
[
[
{
"userId": "1727399696222",
"loginId": "玩家1",
"userId": "1733822577798",
"loginId": "1组1号",
"pwd": "123456"
},
{
"userId": "1733822577825",
"loginId": "1组01号",
"pwd": "123456"
},
{
"userId": "1733822577834",
"loginId": "1组2号",
"pwd": "123456"
},
{
"userId": "1733822577857",
"loginId": "1组02号",
"pwd": "123456"
},
{
"userId": "1733822577867",
"loginId": "1组3号",
"pwd": "123456"
},
{
"userId": "1733822577877",
"loginId": "1组03号",
"pwd": "123456"
},
{
"userId": "1733822577890",
"loginId": "1组4号",
"pwd": "123456"
},
{
"userId": "1733822577903",
"loginId": "1组04号",
"pwd": "123456",
"name": "czx4"
},
{
"userId": "1733822577919",
"loginId": "1组5号",
"pwd": "123456"
},
{
"userId": "1733822577934",
"loginId": "1组05号",
"pwd": "123456",
"name": "赵今麦"
"name": "czx5"
},
{
"userId": "1729153582461",
"loginId": "玩家2",
"userId": "1733822577944",
"loginId": "admin01",
"pwd": "123456"
},
{
"userId": "1733822577956",
"loginId": "2组1号",
"pwd": "123456"
},
{
"userId": "1733822577969",
"loginId": "2组01号",
"pwd": "123456",
"name": "陈知行"
"name": "jiaj"
},
{
"userId": "1733822577988",
"loginId": "2组2号",
"pwd": "123456"
},
{
"userId": "1733822578007",
"loginId": "2组02号",
"pwd": "123456"
},
{
"userId": "1733822578024",
"loginId": "2组3号",
"pwd": "123456"
},
{
"userId": "1733822578037",
"loginId": "2组03号",
"pwd": "123456"
},
{
"userId": "1733822578059",
"loginId": "2组4号",
"pwd": "123456"
},
{
"userId": "1733822578071",
"loginId": "2组04号",
"pwd": "123456"
},
{
"userId": "1733822578081",
"loginId": "2组5号",
"pwd": "123456"
},
{
"userId": "1733822578092",
"loginId": "2组05号",
"pwd": "123456"
},
{
"userId": "1733822578110",
"loginId": "admin02",
"pwd": "123456"
},
{
"userId": "1733822578134",
"loginId": "3组1号",
"pwd": "123456"
},
{
"userId": "1733822578153",
"loginId": "3组01号",
"pwd": "123456"
},
{
"userId": "1733822578172",
"loginId": "3组2号",
"pwd": "123456"
},
{
"userId": "1733822578189",
"loginId": "3组02号",
"pwd": "123456"
},
{
"userId": "1733822578217",
"loginId": "3组3号",
"pwd": "123456"
},
{
"userId": "1733822578231",
"loginId": "3组03号",
"pwd": "123456"
},
{
"userId": "1733822578247",
"loginId": "3组4号",
"pwd": "123456"
},
{
"userId": "1733822578282",
"loginId": "3组04号",
"pwd": "123456"
},
{
"userId": "1733822578301",
"loginId": "3组5号",
"pwd": "123456"
},
{
"userId": "1733822578317",
"loginId": "3组05号",
"pwd": "123456"
},
{
"userId": "1733822578334",
"loginId": "admin03",
"pwd": "123456"
},
{
"userId": "1733822578356",
"loginId": "4组1号",
"pwd": "123456"
},
{
"userId": "1733822578375",
"loginId": "4组01号",
"pwd": "123456"
},
{
"userId": "1733822578418",
"loginId": "4组2号",
"pwd": "123456"
},
{
"userId": "1733822578434",
"loginId": "4组02号",
"pwd": "123456"
},
{
"userId": "1733822578488",
"loginId": "4组3号",
"pwd": "123456"
},
{
"userId": "1733822578507",
"loginId": "4组03号",
"pwd": "123456"
},
{
"userId": "1733822578525",
"loginId": "4组4号",
"pwd": "123456"
},
{
"userId": "1733822578545",
"loginId": "4组04号",
"pwd": "123456"
},
{
"userId": "1733822578571",
"loginId": "4组5号",
"pwd": "123456"
},
{
"userId": "1733822578596",
"loginId": "4组05号",
"pwd": "123456"
},
{
"userId": "1733822578617",
"loginId": "admin04",
"pwd": "123456"
},
{
"userId": "1733822578632",
"loginId": "5组1号",
"pwd": "123456"
},
{
"userId": "1733822578660",
"loginId": "5组01号",
"pwd": "123456"
},
{
"userId": "1733822578676",
"loginId": "5组2号",
"pwd": "123456"
},
{
"userId": "1733822578688",
"loginId": "5组02号",
"pwd": "123456"
},
{
"userId": "1733822578702",
"loginId": "5组3号",
"pwd": "123456"
},
{
"userId": "1733822578719",
"loginId": "5组03号",
"pwd": "123456"
},
{
"userId": "1730359559228",
"loginId": "admin",
"userId": "1733822578737",
"loginId": "5组4号",
"pwd": "123456"
},
{
"userId": "1730970187744",
"loginId": "111",
"userId": "1733822578754",
"loginId": "5组04号",
"pwd": "123456"
},
{
"userId": "1730359573927",
"loginId": "222",
"userId": "1733822578766",
"loginId": "5组5号",
"pwd": "123456"
},
{
"userId": "1730970810891",
"loginId": "333",
"userId": "1733822578778",
"loginId": "5组05号",
"pwd": "123456"
},
{
"userId": "1732604118825",
"loginId": "jason",
"userId": "1733822578791",
"loginId": "admin05",
"pwd": "123456"
}
]
\ No newline at end of file
......@@ -26,6 +26,7 @@
"nodemailer": "^6.1.1",
"pyfl": "^1.1.4",
"qs": "^6.11.0",
"random-js": "^2.1.0",
"request": "^2.88.0",
"svg-captcha": "^1.3.12",
"tencentcloud-sdk-nodejs": "^4.0.562",
......@@ -2217,6 +2218,11 @@
"node": ">=0.6"
}
},
"node_modules/random-js": {
"version": "2.1.0",
"resolved": "https://registry.npmmirror.com/random-js/-/random-js-2.1.0.tgz",
"integrity": "sha512-CRUyWmnzmZBA7RZSVGq0xMqmgCyPPxbiKNLFA5ud7KenojVX2s7Gv+V7eB52beKTPGxWRnVZ7D/tCIgYJJ8vNQ=="
},
"node_modules/range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmmirror.com/range-parser/-/range-parser-1.2.1.tgz",
......
......@@ -21,6 +21,7 @@
"nodemailer": "^6.1.1",
"pyfl": "^1.1.4",
"qs": "^6.11.0",
"random-js": "^2.1.0",
"request": "^2.88.0",
"svg-captcha": "^1.3.12",
"tencentcloud-sdk-nodejs": "^4.0.562",
......
No preview for this file type
<config>
<port>40021</port>
<ipUrl>http://192.168.0.71:40021/</ipUrl>
<encryption>
<key>4fa9998e3be1bd3fa7b8def3969115858c6f19f9ef36e2e71f61645e9767764c</key>
<iv>db2be0c856f44e68b818ff6ef7f018c1</iv>
</encryption>
</config>
......@@ -9,22 +9,25 @@ import { successErrorResult, successResult } from "../tools/systemTools";
import { changeUserJsonData, getJsonData, getUserJsonData } from "../util/tools";
import { xfxxClue } from "./clue";
/**
* 剧情
* @param type 游戏板块
* @param type 游戏板块【对应excel剧情表的sheet名称】
* @param playId 剧情id
* @param dhId 对话id(后置剧情id)
* @param jqqz 绑定剧情权重
* @returns
*/
export async function getPlayData(userId:string, type:string, playId:string, dhId:string) {
export async function getPlayData(userId:string, type:string, playId:string, dhId:string, jqqz:string) {
let allClueJson = await getUserJsonData("基础数据.json", userId);
let hireData = await getUserJsonData("雇佣选择.json", userId);
let hireWorker = hireData;
let duihua = playId;
if (playId == "S021" || playId == "S025") {
duihua = `${playId}_1`;
let bdjqqz = JSON.parse(jqqz);
let weight = weightedRandomChoice(bdjqqz);
let duihua = `${playId}_${weight}`;
// let duihua = playId;
if (playId == "S021") {
// duihua = `${playId}_1`;
if (allClueJson["酒馆剧情"] > HARITYPE.未开始) {
duihua = `${playId}_${allClueJson["酒馆剧情"]}`;
}
......@@ -44,6 +47,7 @@ export async function getPlayData(userId:string, type:string, playId:string, dhI
if (!excelData || Object.keys(excelData).length === 0) return successErrorResult("该NPC暂未开通剧情");//剧情走完添加对应用户的对应线索数据
let playData = excelData[duihua].dataList;
//存储下一个剧情的信息
let nextStory:any = {};
playData.forEach( async info => {
let {dhid, dh, jqlx, hzjqid, glnpc, glxsid} = info;
......@@ -118,9 +122,10 @@ export async function getNPCData(type) {
let npcByType = [];
npcData.forEach( info => {
let {mc, lx, npc, dyjqid} = info;
let {mc, lx, npc, dyjqid, jqqz} = info;
if(lx == type) {
npcByType.push({name:mc, type:lx, img:`${systemConfig.ipUrl}NPC/${mc}.png`, npc, jqid:dyjqid})
npcByType.push({name:mc, type:lx, img:`${systemConfig.ipUrl}NPC/${mc}.png`, npc, jqid:dyjqid, jqqz})
}
})
......@@ -155,12 +160,13 @@ export async function plotClues(userId:string, type:string, playId:string, dhId:
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
if(glxsid.includes(',') || glxsid.includes(',')) fruitsEmpty = glxsid.split(/\s*[,,]\s*/);
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
fruitsEmpty[i] = fruitsEmpty[i].replace(/^\s+/, '');
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(userData[type][playId]["已获得的线索"])];
userData[type][playId]["已获得的线索"] = uniqueArray;
......@@ -178,12 +184,13 @@ export async function plotClues(userId:string, type:string, playId:string, dhId:
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
if(glxsid.includes(',') || glxsid.includes(',')) fruitsEmpty = glxsid.split(/\s*[,,]\s*/);
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
fruitsEmpty[i] = fruitsEmpty[i].replace(/^\s+/, '');
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(userData[type][playId]["已获得的线索"])];
userData[type][playId]["已获得的线索"] = uniqueArray;
......@@ -198,12 +205,13 @@ export async function plotClues(userId:string, type:string, playId:string, dhId:
// userData[type][playId]["当前对话id"] = dhId;
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
if(glxsid.includes(',') || glxsid.includes(',')) fruitsEmpty = glxsid.split(/\s*[,,]\s*/);
else fruitsEmpty = [glxsid];
if(!userData[type][playId]["已获得的线索"]) userData[type][playId]["已获得的线索"] = fruitsEmpty
else {
for(let i = 0; i < fruitsEmpty.length; i++) {
fruitsEmpty[i] = fruitsEmpty[i].replace(/^\s+/, '');
/**剧情相关线索 */
userData[type][playId]["已获得的线索"].push(fruitsEmpty[i]);
let uniqueArray = [...new Set(userData[type][playId]["已获得的线索"])];
......@@ -469,7 +477,7 @@ export async function addAllClueByPlan(userId, glxsid) {
/**关联的线索 */
if (glxsid) {
let fruitsEmpty;
if(glxsid.includes(',')) fruitsEmpty = glxsid.split(",");
if(glxsid.includes(',') || glxsid.includes(',')) fruitsEmpty = glxsid.split(/\s*[,,]\s*/);
else fruitsEmpty = [glxsid];
for(let i = 0; i < fruitsEmpty.length; i++) {
......@@ -506,7 +514,38 @@ export async function addAllClueByPlan(userId, glxsid) {
}
/**
* 权重选择剧情
* @param arr 传入NPC对应的所有剧情选项
* @returns
*/
export function weightedRandomChoice(arr) {
// 计算权重(使用平方)
const weights = arr.map(num => num * num);
// 计算总权重
const totalWeight = weights.reduce((sum, weight) => sum + weight, 0);
// 创建累计权重数组
const cumulativeWeights = [0];
let cumulativeSum = 0;
for (let weight of weights) {
cumulativeSum += weight;
cumulativeWeights.push(cumulativeSum);
}
//生成一个0到总权重之间的随机数
const randomValue = Math.random() * totalWeight;
//使用累积权重数组来确定选择的索引
for (let i = 0; i < cumulativeWeights.length; i++) {
if(randomValue < cumulativeWeights[i]) {
return arr[i - 1]; //数组索引从0开始,所以返回i-1对应的元素(被选中的选项)
}
}
//理论上这里不应该到达,因为累积权重应该覆盖所有情况
return arr[arr.length - 1]; //返回最后一个选项作为默认值
}
......
......@@ -49,6 +49,8 @@ export async function login(loginId, pwd) {
*/
export async function register(loginId, pwd) {
let userData = await getJsonData("用户.json");
let hasUser = userData.some(item => item.loginId === loginId);
if (hasUser) throw new BizError(ERRORENUM.账号已存在, loginId);
const NowMs = new Date().valueOf();
......@@ -60,7 +62,7 @@ export async function register(loginId, pwd) {
}
);
await changeUserJsonData("用户.json", userData, NowMs);
await changeJsonData("用户.json", userData);
addJson(NowMs);
......
......@@ -63,7 +63,8 @@ export enum ERRORENUM {
该订单未被退回,
文件不存在,
账号不存在,
需先确认SWOT线索选择
需先确认SWOT线索选择,
账号已存在
}
export enum ERRORCODEENUM {
......
......@@ -15,13 +15,9 @@ export async function initConfig() {
let configInfo:any = await analysisXml(configStr);
if (!configInfo || !configInfo.config) throw new BizError('xml中无配置');
else {
let { port, ipUrl, encryption } = configInfo.config;
let { port, ipUrl } = configInfo.config;
systemConfig.port = parseInt(port[0]);
systemConfig.ipUrl = ipUrl[0];
systemConfig.cryptoKey = encryption[0].key[0];
systemConfig.cryptoIv = encryption[0].iv[0];
}
console.log("config init success");
......
......@@ -7,6 +7,4 @@ export class ServerConfig {
/**系统配置 */
port:number;
ipUrl:string;
cryptoKey:string;
cryptoIv:string;
}
\ No newline at end of file
import { systemConfig } from "../../config/serverConfig";
import * as tableData from "./tableData";
const crypto = require('crypto');
const fs = require('fs');
let daier = {};
/**
* 初始化表格数据,加密保存到daier.yydata
*/
export async function initConfiguration() {
// daier = {
// // "剧情表": tableData.juqingTableData(),
// "线索表": tableData.xiansuoTableData(),
// "工资表": tableData.gongziTableData(),
// };
// //创建一个AES-256-CBC的加密算法
// const algorithm = 'aes-256-cbc';
// let key = systemConfig.cryptoKey;
// let iv = systemConfig.cryptoIv;
// //创建一个cipher实例
// const cipher = crypto.createCipheriv(algorithm, key, iv);
// /**加密数据 */
// let encrypted = cipher.update(daier, 'utf8', 'hex');
// encrypted += cipher.final('hex');
// //将IV和加密后的数据一起写入文件
// let dataToWrite = `${iv}:${encrypted}`;
// //写入自定义后缀的文件
// fs.writeFile('daier.yydata', dataToWrite, (err) => {
// if (!err) console.log("数据已成功写入daier.yydata");
// })
}
// export async
import { httpServer } from "./net/http_server";
import { initConfig, systemConfig } from "./config/serverConfig";
import { initConfiguration } from "./data/table/initConfiguration";
import { cxyxTableData } from "./data/table/tableData";
import { initCiqi } from "./biz/task";
import { register } from "./biz/user";
async function lanuch() {
......@@ -10,10 +9,6 @@ async function lanuch() {
httpServer.createServer( systemConfig.port );
console.log('This indicates that the server is started successfully.');
await initCiqi();
// let key = crypto.randomBytes(32).toString('hex'); //"4fa9998e3be1bd3fa7b8def3969115858c6f19f9ef36e2e71f61645e9767764c"
// let iv = crypto.randomBytes(16).toString('hex'); //"db2be0c856f44e68b818ff6ef7f018c1"
// await initConfiguration();
// cxyxTableData();
}
lanuch();
......@@ -23,4 +18,3 @@ lanuch();
......@@ -43,9 +43,30 @@ export function setRouter(httpServer){
httpServer.post('/checkjinhe', asyncHandler(checkJinhe));
httpServer.post('/isenabled', asyncHandler(isEnabled));
httpServer.get('/createusers', asyncHandler(createUsers));
}
async function createUsers(req, res) {
for(let i = 1; i <6; i++) {
let loginId = "";
let pwd = "123456";
for(let j = 1; j < 6; j++) {
loginId = `${i}${j}号`;
await userBiz.register(loginId, pwd);
loginId = `${i}组0${j}号`;
await userBiz.register(loginId, pwd);
}
await userBiz.register(`admin0${i}`, pwd);
}
res.success("创建成功");
}
/**
* 登录
* @param req
......@@ -110,8 +131,8 @@ async function getCount(req, res) {
async function getPlay(req, res) {
let userId = req.headers.userid;
// 商行、SO11、对话Id(后置剧情id)
let {type, playId, dhId} = req.body;
let result = await playBiz.getPlayData(userId, type, playId, dhId);
let {type, playId, dhId, jqqz} = req.body;
let result = await playBiz.getPlayData(userId, type, playId, dhId, jqqz);
res.success(result);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment