把Nodejs服务器后端上传
This commit is contained in:
330
Servers/Players/123456.json
Normal file
330
Servers/Players/123456.json
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
{
|
||||||
|
"experience": 0,
|
||||||
|
"farm_lots": [
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"farm_name": "唐译",
|
||||||
|
"level": 0,
|
||||||
|
"money": 1000,
|
||||||
|
"user_name": "123456",
|
||||||
|
"user_password": "123456"
|
||||||
|
}
|
||||||
330
Servers/Players/1234567.json
Normal file
330
Servers/Players/1234567.json
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
{
|
||||||
|
"experience": 0,
|
||||||
|
"farm_lots": [
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"farm_name": "1234567",
|
||||||
|
"level": 0,
|
||||||
|
"money": 1000,
|
||||||
|
"user_name": "1234567",
|
||||||
|
"user_password": "1234567"
|
||||||
|
}
|
||||||
330
Servers/Players/3205788256.json
Normal file
330
Servers/Players/3205788256.json
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
{
|
||||||
|
"experience": 1626,
|
||||||
|
"farm_lots": [
|
||||||
|
{
|
||||||
|
"crop_type": "人参",
|
||||||
|
"grow_time": 6600,
|
||||||
|
"is_dead": true,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 6600
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 4800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "松露",
|
||||||
|
"grow_time": 7200,
|
||||||
|
"is_dead": true,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 7200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 1200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "西瓜",
|
||||||
|
"grow_time": 2400,
|
||||||
|
"is_dead": true,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 2400
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "葡萄",
|
||||||
|
"grow_time": 1200,
|
||||||
|
"is_dead": true,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 1200
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "西瓜",
|
||||||
|
"grow_time": 2400,
|
||||||
|
"is_dead": true,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 2400
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "西瓜",
|
||||||
|
"grow_time": 1906,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 2400
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "甜菜",
|
||||||
|
"grow_time": 1903,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 2160
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "金橘",
|
||||||
|
"grow_time": 1900,
|
||||||
|
"is_dead": true,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": true,
|
||||||
|
"max_grow_time": 4800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 4800
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 4800
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"farm_name": "",
|
||||||
|
"level": 24,
|
||||||
|
"money": 35261,
|
||||||
|
"user_name": "3205788256",
|
||||||
|
"user_password": "tyh@19900420"
|
||||||
|
}
|
||||||
83
Servers/player.js
Normal file
83
Servers/player.js
Normal file
@@ -0,0 +1,83 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const express = require('express');
|
||||||
|
const app = express();
|
||||||
|
const port = 3000;
|
||||||
|
|
||||||
|
// 使用 express.json() 中间件来解析 JSON 请求体
|
||||||
|
app.use(express.json());
|
||||||
|
|
||||||
|
// 处理用户登录请求
|
||||||
|
app.post('/login', (req, res) => {
|
||||||
|
const { user_name, user_password } = req.body;
|
||||||
|
const filePath = path.join(__dirname, `Players/${user_name}.json`);
|
||||||
|
|
||||||
|
fs.readFile(filePath, 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('读取文件时出错:', err);
|
||||||
|
console.error("用户:", user_name, '读取文件:', userData.user_name, ".json", "失败!", "原因:用户不存在");
|
||||||
|
return res.status(404).json({ message: '用户不存在' });
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const userData = JSON.parse(data);
|
||||||
|
|
||||||
|
if (userData.user_password === user_password) {
|
||||||
|
console.error("用户:", user_name, '读取文件:', userData.user_name, ".json", "成功!");
|
||||||
|
return res.json({ message: '登录成功', data: userData });
|
||||||
|
|
||||||
|
} else {
|
||||||
|
console.error("用户:", user_name, '读取文件:', userData.user_name, ".json", "失败!","原因:密码错误");
|
||||||
|
return res.status(401).json({ message: '密码错误' });
|
||||||
|
}
|
||||||
|
} catch (parseError) {
|
||||||
|
console.error('解析 JSON 时出错:', parseError);
|
||||||
|
return res.status(500).json({ message: '服务器错误', error: parseError });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 处理保存数据请求
|
||||||
|
app.post('/save', (req, res) => {
|
||||||
|
const receivedData = req.body;
|
||||||
|
const filePath = path.join(__dirname, `Players/${receivedData.user_name}.json`);
|
||||||
|
|
||||||
|
|
||||||
|
// 将数据写入文件
|
||||||
|
fs.writeFile(filePath, JSON.stringify(receivedData, null, 2), (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('保存数据时出错:', err);
|
||||||
|
return res.status(500).json({ message: '数据保存失败', error: err });
|
||||||
|
}
|
||||||
|
console.log(`数据已保存到 ${receivedData.user_name}.json`);
|
||||||
|
console.log("用户:", receivedData.user_name, '保存数据到:', receivedData.user_name, ".json", "成功!");
|
||||||
|
return res.json({ message: '数据保存成功', data: receivedData });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
// 处理新用户注册请求
|
||||||
|
app.post('/register', (req, res) => {
|
||||||
|
const newUserData = req.body;
|
||||||
|
const filePath = path.join(__dirname, `Players/${newUserData.user_name}.json`);
|
||||||
|
|
||||||
|
// 检查用户名是否已经存在
|
||||||
|
if (fs.existsSync(filePath)) {
|
||||||
|
console.error("新用户:", newUserData.user_name, '注册数据到:', newUserData.user_name, ".json", "失败!", "原因:用户名已存在");
|
||||||
|
return res.status(400).json({ message: '用户名已存在' });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 将新用户数据写入文件
|
||||||
|
fs.writeFile(filePath, JSON.stringify(newUserData, null, 2), (err) => {
|
||||||
|
if (err) {
|
||||||
|
console.error("新用户:", newUserData.user_name, '注册数据到:', newUserData.user_name, ".json", "失败!", "原因:",err);
|
||||||
|
return res.status(500).json({ message: '数据保存失败', error: err });
|
||||||
|
}
|
||||||
|
console.log("新用户:", newUserData.user_name, '注册数据到:', newUserData.user_name, ".json", "成功!");
|
||||||
|
return res.json({ message: '注册成功', data: newUserData });
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
app.listen(port, () => {
|
||||||
|
console.log(`萌芽后端服务器正在运行在: http://localhost:${port}`);
|
||||||
|
});
|
||||||
330
Servers/saves/received_data.json
Normal file
330
Servers/saves/received_data.json
Normal file
@@ -0,0 +1,330 @@
|
|||||||
|
{
|
||||||
|
"experience": 4193,
|
||||||
|
"farm_lots": [
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 3
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": false,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"crop_type": "",
|
||||||
|
"grow_time": 0,
|
||||||
|
"is_dead": false,
|
||||||
|
"is_diged": true,
|
||||||
|
"is_planted": false,
|
||||||
|
"max_grow_time": 5
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"farm_name": "3205788256的农场",
|
||||||
|
"level": 8,
|
||||||
|
"money": 1493,
|
||||||
|
"user_name": "3205788256",
|
||||||
|
"user_password": "tyh@19900420"
|
||||||
|
}
|
||||||
137
Servers/server.js
Normal file
137
Servers/server.js
Normal file
@@ -0,0 +1,137 @@
|
|||||||
|
const express = require('express');
|
||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const bodyParser = require('body-parser');
|
||||||
|
const cors = require('cors');
|
||||||
|
|
||||||
|
// 创建 Express 应用
|
||||||
|
const app = express();
|
||||||
|
const PORT = 3000;
|
||||||
|
|
||||||
|
// 配置中间件
|
||||||
|
app.use(cors()); // 允许跨域资源共享
|
||||||
|
app.use(bodyParser.json()); // 解析 JSON 请求体
|
||||||
|
|
||||||
|
// 服务器存储目录,模拟远程存储位置
|
||||||
|
const SERVER_STORAGE_PATH = path.join(__dirname, 'game_saves');
|
||||||
|
|
||||||
|
// 确保存储目录存在
|
||||||
|
if (!fs.existsSync(SERVER_STORAGE_PATH)) {
|
||||||
|
fs.mkdirSync(SERVER_STORAGE_PATH);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 保存游戏数据到服务器
|
||||||
|
* @route POST /save_game
|
||||||
|
* @param {Object} req.body - 游戏保存数据
|
||||||
|
* @returns {Object} 保存结果
|
||||||
|
*/
|
||||||
|
app.post('/save_game', (req, res) => {
|
||||||
|
try {
|
||||||
|
// 从请求体中获取用户名和完整的游戏数据
|
||||||
|
const { user_name, ...gameData } = req.body;
|
||||||
|
|
||||||
|
// 检查用户名是否存在
|
||||||
|
if (!user_name) {
|
||||||
|
return res.status(400).json({
|
||||||
|
success: false,
|
||||||
|
message: '用户名不能为空'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建保存文件路径
|
||||||
|
const filePath = path.join(SERVER_STORAGE_PATH, `${user_name}.json`);
|
||||||
|
|
||||||
|
// 将游戏数据转换为 JSON 字符串
|
||||||
|
const saveData = JSON.stringify(req.body, null, 2);
|
||||||
|
|
||||||
|
// 写入文件
|
||||||
|
fs.writeFileSync(filePath, saveData, 'utf8');
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
message: '游戏数据保存成功'
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error('保存游戏数据时发生错误:', error);
|
||||||
|
res.status(500).json({
|
||||||
|
success: false,
|
||||||
|
message: '服务器保存数据失败',
|
||||||
|
error: error.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 从服务器加载游戏数据
|
||||||
|
* @route POST /load_game
|
||||||
|
* @param {string} req.body.user_name - 用户名
|
||||||
|
* @param {string} req.body.user_password - 用户密码
|
||||||
|
* @returns {Object} 游戏数据或错误信息
|
||||||
|
*/
|
||||||
|
app.post('/load_game', (req, res) => {
|
||||||
|
try {
|
||||||
|
const { user_name, user_password } = req.body;
|
||||||
|
|
||||||
|
// 检查用户名和密码是否存在
|
||||||
|
if (!user_name || !user_password) {
|
||||||
|
return res.status(400).json({
|
||||||
|
success: false,
|
||||||
|
message: '用户名和密码不能为空'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 构建文件路径
|
||||||
|
const filePath = path.join(SERVER_STORAGE_PATH, `${user_name}.json`);
|
||||||
|
|
||||||
|
// 检查文件是否存在
|
||||||
|
if (!fs.existsSync(filePath)) {
|
||||||
|
return res.status(404).json({
|
||||||
|
success: false,
|
||||||
|
message: '未找到用户数据'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// 读取文件内容
|
||||||
|
const fileContent = fs.readFileSync(filePath, 'utf8');
|
||||||
|
const userData = JSON.parse(fileContent);
|
||||||
|
|
||||||
|
// 验证密码
|
||||||
|
if (userData.user_password !== user_password) {
|
||||||
|
return res.status(401).json({
|
||||||
|
success: false,
|
||||||
|
message: '密码错误'
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
success: true,
|
||||||
|
message: '游戏数据加载成功',
|
||||||
|
data: userData
|
||||||
|
});
|
||||||
|
} catch (error) {
|
||||||
|
console.error('加载游戏数据时发生错误:', error);
|
||||||
|
res.status(500).json({
|
||||||
|
success: false,
|
||||||
|
message: '服务器加载数据失败',
|
||||||
|
error: error.message
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 服务器健康检查路由
|
||||||
|
* @route GET /health
|
||||||
|
* @returns {Object} 服务器状态
|
||||||
|
*/
|
||||||
|
app.get('/health', (req, res) => {
|
||||||
|
res.json({
|
||||||
|
status: 'healthy',
|
||||||
|
message: 'Godot农场游戏服务器正在运行'
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
// 启动服务器
|
||||||
|
app.listen(PORT, () => {
|
||||||
|
console.log(`农场游戏后端服务已启动,监听端口:${PORT}`);
|
||||||
|
});
|
||||||
21
Servers/测试/json.js
Normal file
21
Servers/测试/json.js
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
// 构建 JSON 文件的路径
|
||||||
|
const filePath = path.join(__dirname, 'Players', 'player.json');
|
||||||
|
|
||||||
|
// 读取 JSON 文件
|
||||||
|
fs.readFile(filePath, 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('读取文件时出错:', err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析 JSON 数据
|
||||||
|
const playerData = JSON.parse(data);
|
||||||
|
console.log('玩家数据:', playerData);
|
||||||
|
} catch (parseErr) {
|
||||||
|
console.error('解析 JSON 数据时出错:', parseErr);
|
||||||
|
}
|
||||||
|
});
|
||||||
52
Servers/测试/json2.js
Normal file
52
Servers/测试/json2.js
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
|
||||||
|
// 构建 JSON 文件的路径
|
||||||
|
const filePath = path.join(__dirname, 'Players', '3205788256.json');
|
||||||
|
|
||||||
|
// 读取 JSON 文件
|
||||||
|
fs.readFile(filePath, 'utf8', (err, data) => {
|
||||||
|
if (err) {
|
||||||
|
console.error('读取文件时出错:', err);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 解析 JSON 数据
|
||||||
|
const playerData = JSON.parse(data);
|
||||||
|
//console.log('玩家数据:', playerData);
|
||||||
|
|
||||||
|
// 对解析后的数据进行分析
|
||||||
|
analyzePlayerData(playerData);
|
||||||
|
|
||||||
|
} catch (parseErr) {
|
||||||
|
console.error('解析 JSON 数据时出错:', parseErr);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
// 分析玩家数据的函数
|
||||||
|
function analyzePlayerData(playerData) {
|
||||||
|
// 打印玩家的基本信息
|
||||||
|
console.log(`用户名: ${playerData.user_name}`);
|
||||||
|
console.log(`用户密码: ${playerData.user_password}`);
|
||||||
|
console.log(`农场名称: ${playerData.farm_name}`);
|
||||||
|
console.log(`金钱: ${playerData.money}`);
|
||||||
|
console.log(`经验值: ${playerData.experience}`);
|
||||||
|
console.log(`等级: ${playerData.level}`);
|
||||||
|
|
||||||
|
// 统计农场地块的状态
|
||||||
|
const totalLots = playerData.farm_lots.length;
|
||||||
|
const diggedLots = playerData.farm_lots.filter(lot => lot.is_diged).length;
|
||||||
|
const plantedLots = playerData.farm_lots.filter(lot => lot.is_planted).length;
|
||||||
|
const deadLots = playerData.farm_lots.filter(lot => lot.is_dead).length;
|
||||||
|
|
||||||
|
console.log(`总地块数: ${totalLots}`);
|
||||||
|
console.log(`已挖掘地块数: ${diggedLots}`);
|
||||||
|
console.log(`已种植地块数: ${plantedLots}`);
|
||||||
|
console.log(`已枯死地块数: ${deadLots}`);
|
||||||
|
|
||||||
|
// 检查每个地块的生长状态
|
||||||
|
playerData.farm_lots.forEach((lot, index) => {
|
||||||
|
console.log(`地块 ${index + 1}: 已挖掘 - ${lot.is_diged}, 已种植 - ${lot.is_planted}, 已枯死 - ${lot.is_dead}, 作物类型 - ${lot.crop_type}, 生长时间 - ${lot.grow_time}/${lot.max_grow_time}`);
|
||||||
|
});
|
||||||
|
}
|
||||||
19
Servers/测试/login.js
Normal file
19
Servers/测试/login.js
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
const fs = require('fs');
|
||||||
|
const path = require('path');
|
||||||
|
const express = require('express');
|
||||||
|
const app = express();
|
||||||
|
const port = 3000;
|
||||||
|
|
||||||
|
app.get('/', (req, res) => {
|
||||||
|
res.json({ message: 'GET 请求已收到!' });
|
||||||
|
console.log('GET 请求已收到!');
|
||||||
|
});
|
||||||
|
|
||||||
|
app.post('/', (req, res) => {
|
||||||
|
res.json({ message: 'POST 请求已收到!', data: req.body });
|
||||||
|
console.log('POST 请求已收到!');
|
||||||
|
});
|
||||||
|
|
||||||
|
app.listen(port, () => {
|
||||||
|
console.log(`萌芽后端服务器正在运行在: http://localhost:${port}`);
|
||||||
|
});
|
||||||
Reference in New Issue
Block a user