mirror of
https://github.com/Mezeporta/Erupe.git
synced 2025-12-13 15:34:38 +01:00
Compare commits
214 Commits
v9.0.1
...
v9.1.0-rc1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75bd425fbf | ||
|
|
55f1de11fe | ||
|
|
fda2e74442 | ||
|
|
50c8d39d7f | ||
|
|
cad882e899 | ||
|
|
77ed0564ce | ||
|
|
318cf6626c | ||
|
|
9560cdc7df | ||
|
|
25a6527c93 | ||
|
|
2013f51233 | ||
|
|
4dfc6c11dc | ||
|
|
ae8741dbd2 | ||
|
|
a71ad2aa3e | ||
|
|
cfb2dff9c3 | ||
|
|
1ff7561d5c | ||
|
|
470eb32763 | ||
|
|
3cd756c35d | ||
|
|
f960678918 | ||
|
|
1e3095781c | ||
|
|
33685fe36a | ||
|
|
a9a7573687 | ||
|
|
b69305a8a9 | ||
|
|
7691b84259 | ||
|
|
e5e3750045 | ||
|
|
6413be5320 | ||
|
|
9fc26405bb | ||
|
|
5e42402a3d | ||
|
|
c6c247b56b | ||
|
|
ef5afa3899 | ||
|
|
25491834df | ||
|
|
07c00cc2e3 | ||
|
|
45b736db2d | ||
|
|
f346c181d3 | ||
|
|
7d3aa8c5b9 | ||
|
|
38cd00e41e | ||
|
|
f9e9aaa303 | ||
|
|
6d169688d8 | ||
|
|
1f95033e28 | ||
|
|
0bbb90a927 | ||
|
|
f2e697f3e7 | ||
|
|
ced173be5e | ||
|
|
6cffb84606 | ||
|
|
1152ec8970 | ||
|
|
748d2542e2 | ||
|
|
bc7b30afed | ||
|
|
6ee9234745 | ||
|
|
4f2a94cc50 | ||
|
|
d9541a6d1a | ||
|
|
4fe56cd6e3 | ||
|
|
c4505ce30d | ||
|
|
88fd6fbb7c | ||
|
|
a5b47310d1 | ||
|
|
8f9648d9d8 | ||
|
|
665c2dd32f | ||
|
|
34f0eb8315 | ||
|
|
40a86364d9 | ||
|
|
ca9f2de457 | ||
|
|
e0c658363c | ||
|
|
e90e3da142 | ||
|
|
6c323275a9 | ||
|
|
2b2fe9628f | ||
|
|
9b1f3f8012 | ||
|
|
2f123d96df | ||
|
|
44a42a3365 | ||
|
|
a35dfa21b5 | ||
|
|
128f375cd2 | ||
|
|
d81e55cab4 | ||
|
|
580bfb12fe | ||
|
|
88815c0a05 | ||
|
|
c60385e61f | ||
|
|
616d58e70e | ||
|
|
b172168418 | ||
|
|
e38c892614 | ||
|
|
65d35a5188 | ||
|
|
bb12a89074 | ||
|
|
2ca7218076 | ||
|
|
670f8f7882 | ||
|
|
377bb39be6 | ||
|
|
e0176ca774 | ||
|
|
3c096fa8d7 | ||
|
|
9259476316 | ||
|
|
6c9e39a5cd | ||
|
|
3ba56abfa8 | ||
|
|
dc874877d7 | ||
|
|
2e6aa1f1e4 | ||
|
|
90314fa411 | ||
|
|
cd6561dd61 | ||
|
|
df1a4834ba | ||
|
|
1aa7bfdd51 | ||
|
|
b0543c998e | ||
|
|
1df961d2aa | ||
|
|
5fa6348714 | ||
|
|
fd873be34f | ||
|
|
8c42dcafe8 | ||
|
|
991b79a64d | ||
|
|
c39e263308 | ||
|
|
63a829c913 | ||
|
|
b33248c370 | ||
|
|
dd1460b74b | ||
|
|
20c6ad2c8c | ||
|
|
9e0511d7f1 | ||
|
|
7495731f87 | ||
|
|
dc838adbcf | ||
|
|
9d589b3338 | ||
|
|
4537ba9492 | ||
|
|
09b5de79d3 | ||
|
|
f80a807fb1 | ||
|
|
951c8e9c21 | ||
|
|
2c51ddc518 | ||
|
|
d9b85cdf5b | ||
|
|
8099c5fd66 | ||
|
|
f6148271ea | ||
|
|
745b7ee6e1 | ||
|
|
af667d8b00 | ||
|
|
5ecf8d945f | ||
|
|
602aa8440b | ||
|
|
1364de9a5e | ||
|
|
62dacd3a78 | ||
|
|
40bcbfbbd6 | ||
|
|
6e7259a068 | ||
|
|
f87c1e480f | ||
|
|
2a1ce2b79d | ||
|
|
a56309014b | ||
|
|
8a3daa1cfa | ||
|
|
c4d128ec18 | ||
|
|
33150215e6 | ||
|
|
1ba3d55566 | ||
|
|
56ae30745d | ||
|
|
6864bc12cb | ||
|
|
a79c09d205 | ||
|
|
e0c50bb5d7 | ||
|
|
14d3b37435 | ||
|
|
97c57762f0 | ||
|
|
3c099acec4 | ||
|
|
89683e6063 | ||
|
|
602cf31ed5 | ||
|
|
ed3687548c | ||
|
|
5aa386a92c | ||
|
|
7ef5b6ec2e | ||
|
|
bc75902da1 | ||
|
|
81e40b988d | ||
|
|
b7d41c1c7f | ||
|
|
86cb254d1a | ||
|
|
7a303d6e31 | ||
|
|
d7cc7ab5e3 | ||
|
|
d48a64e208 | ||
|
|
6b70771884 | ||
|
|
cecfb1348d | ||
|
|
6ab961fa90 | ||
|
|
12ac12ff3f | ||
|
|
04fb399bc7 | ||
|
|
0edfd255fd | ||
|
|
440b73f696 | ||
|
|
d8072ee06e | ||
|
|
0ba9adcc88 | ||
|
|
ac90c2dd09 | ||
|
|
3bb0ab6295 | ||
|
|
18989e9435 | ||
|
|
b093d98d01 | ||
|
|
0bf19c8ac8 | ||
|
|
d58f765898 | ||
|
|
ce31b248eb | ||
|
|
5ae2a606e0 | ||
|
|
712b3a732a | ||
|
|
263ce50569 | ||
|
|
a0dbe9d8c6 | ||
|
|
43ea158fe7 | ||
|
|
315cc391ff | ||
|
|
2304581f90 | ||
|
|
1b129ac630 | ||
|
|
7dab9e3ae1 | ||
|
|
29d8617779 | ||
|
|
10b0f87182 | ||
|
|
33c3865da6 | ||
|
|
e89c6f50ae | ||
|
|
2a65977a44 | ||
|
|
9fe1b1d04a | ||
|
|
37e4b42b23 | ||
|
|
077e03ff0d | ||
|
|
af48d75522 | ||
|
|
032ee1eac7 | ||
|
|
483490bbd5 | ||
|
|
265dc25800 | ||
|
|
4968252491 | ||
|
|
4598220b2f | ||
|
|
c0bc7c2439 | ||
|
|
781827c6bf | ||
|
|
503e944c2d | ||
|
|
06d4c56a65 | ||
|
|
fd3405b392 | ||
|
|
d10dcbc630 | ||
|
|
f8ed2ef40d | ||
|
|
0b90dfd458 | ||
|
|
ea63e3247c | ||
|
|
7a5b65f5b8 | ||
|
|
43beb46221 | ||
|
|
09812fa81b | ||
|
|
56841a5ab3 | ||
|
|
820563dc4c | ||
|
|
08a7b91e11 | ||
|
|
e9cc5cc3e2 | ||
|
|
a7ec76f865 | ||
|
|
cdbc11c4b2 | ||
|
|
2f35823e1e | ||
|
|
96247a0101 | ||
|
|
816ff0eac5 | ||
|
|
dd883a2216 | ||
|
|
556198af72 | ||
|
|
8350273ab1 | ||
|
|
1e62e8bf96 | ||
|
|
732199358a | ||
|
|
69eb7e1cba | ||
|
|
3638d8aabf | ||
|
|
9c772a09fc |
21
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
21
.github/ISSUE_TEMPLATE/bug.md
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
---
|
||||
name: Bug
|
||||
about: Bug
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Description**:
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
**Reproduction Steps**:
|
||||
1.
|
||||
2.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Additional context**
|
||||
Add any other context about the problem here.
|
||||
17
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
17
.github/ISSUE_TEMPLATE/feature.md
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
---
|
||||
name: Feature
|
||||
about: Feature
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to an existing issue?**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
27
.github/workflows/go.yml
vendored
27
.github/workflows/go.yml
vendored
@@ -4,7 +4,7 @@ on: [push]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: windows-latest
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
@@ -14,17 +14,32 @@ jobs:
|
||||
with:
|
||||
go-version: 1.18
|
||||
|
||||
- name: Build
|
||||
run: go build -v
|
||||
- name: Build Linux-amd64
|
||||
run: env GOOS=linux GOARCH=amd64 go build -v
|
||||
|
||||
- name: Upload artifacts
|
||||
- name: Upload Linux-amd64 artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Erupe
|
||||
name: Linux-amd64
|
||||
path: |
|
||||
./erupe-ce
|
||||
./config.json
|
||||
./www/
|
||||
./savedata/
|
||||
./bin/
|
||||
./bundled-schema/
|
||||
|
||||
- name: Build Windows-amd64
|
||||
run: env GOOS=windows GOARCH=amd64 go build -v
|
||||
|
||||
- name: Upload Windows-amd64 artifacts
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: Windows-amd64
|
||||
path: |
|
||||
./erupe-ce.exe
|
||||
./config.json
|
||||
./www/
|
||||
./savedata/
|
||||
./bin/
|
||||
./RoadShopItems.csv
|
||||
./bundled-schema/
|
||||
|
||||
22
README.md
22
README.md
@@ -1,8 +1,18 @@
|
||||
# Erupe Community Edition
|
||||
## Setup
|
||||
- If you are only looking to install Erupe, please use [a pre-compiled binary](https://github.com/ZeruLight/Erupe/releases/latest).
|
||||
- If you want to modify or compile Erupe yourself please read on.
|
||||
### Requirements
|
||||
- [Go](https://go.dev/dl/)
|
||||
- [PostgreSQL](https://www.postgresql.org/download/)
|
||||
### Installation
|
||||
1. Bring up a fresh database by using the [backup file attached with the latest release](https://github.com/ZeruLight/Erupe/releases/latest/download/Erupe.sql).
|
||||
2. Run each script under [patch-schema](./patch-schema) as they introduce newer schema.
|
||||
3. Edit [config.json](./config.json) such that the database password matches your PostgreSQL setup.
|
||||
4. Run `go build` or `go run .` to compile Erupe.
|
||||
### Note
|
||||
- You will need to acquire and install the client files and quest binaries separately.
|
||||
# Resources
|
||||
[Community FAQ Pastebin](https://pastebin.com/QqAwZSTC)
|
||||
|
||||
This is a community upload of a community project. The amount of people who worked on it is innumerous, and hard to keep track of. Credits to Andoryuuta, Fist's Team, the French Team, Mai's Team and many others. No matter the relations, these files will remain public and open source, free for all to use and modify.
|
||||
|
||||
[A pastebin with various links, tips, and FAQ](https://pastebin.com/QqAwZSTC)
|
||||
|
||||
[An upload for the quest and scenario files exists here](https://github.com/xl3lackout/MHFZ-Quest-Files)
|
||||
(Over 300k+ files)
|
||||
[Quests and Scenario Binary Files](https://github.com/xl3lackout/MHFZ-Quest-Files)
|
||||
|
||||
@@ -1,911 +0,0 @@
|
||||
10,6,1,2146,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,2,2147,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,3,2148,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,4,2149,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,5,2150,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,6,2151,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,7,2152,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,8,2153,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,9,2154,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,10,2155,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,11,4398,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,12,12460,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,13,12461,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,14,12462,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,15,12463,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,16,12464,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,17,12465,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,18,12466,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,19,12467,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,20,12468,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,21,12469,25,1,0,0,1,1,0,1,0,0
|
||||
10,6,22,15109,1000,1,0,0,1,1,0,1,0,0
|
||||
10,6,23,15110,1000,1,0,0,1,1,0,1,0,0
|
||||
10,6,24,2158,200,100,0,0,1,1,0,1,0,0
|
||||
10,6,25,12306,2,1,0,0,1,1,0,1,80,0
|
||||
10,6,26,12306,20000,10000,0,0,1,1,0,1,80,0
|
||||
10,4,27,11664,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,28,11665,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,29,11666,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,30,11667,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,31,11668,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,32,11669,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,33,11670,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,34,11671,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,35,11672,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,36,11673,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,37,11674,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,38,11675,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,39,11676,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,40,11677,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,41,11678,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,42,11679,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,43,11680,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,44,11681,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,45,11682,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,46,11683,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,47,11684,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,48,11685,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,49,11686,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,50,11687,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,51,11688,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,52,11689,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,53,11690,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,54,11691,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,55,11692,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,56,11693,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,57,11694,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,58,11695,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,59,11696,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,60,11697,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,61,12893,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,62,12894,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,63,12895,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,64,12896,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,65,12897,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,66,12898,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,67,12899,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,68,14337,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,69,14338,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,70,14339,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,71,14340,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,72,14341,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,73,14342,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,74,14343,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,75,14344,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,76,14345,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,77,9254,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,78,9255,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,79,9256,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,80,9257,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,81,9258,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,82,9259,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,83,9260,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,84,9261,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,85,9262,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,86,9263,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,87,9264,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,88,9265,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,89,9266,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,90,9267,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,91,9268,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,92,9269,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,93,9270,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,94,9271,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,95,9272,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,96,9273,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,97,9274,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,98,9275,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,99,9276,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,100,9277,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,101,9278,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,102,9279,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,103,9280,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,104,9281,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,105,9282,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,106,9283,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,107,9284,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,108,9285,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,109,9286,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,110,9287,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,111,9288,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,112,9289,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,113,9290,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,114,9291,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,115,9292,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,116,9293,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,117,9294,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,118,9295,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,119,9296,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,120,9297,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,121,9298,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,122,9299,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,123,9300,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,124,9301,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,125,13196,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,126,13197,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,127,13198,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,128,13199,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,129,15542,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,130,15543,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,131,15544,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,132,15545,10000,1,0,0,1,1,0,1,0,0
|
||||
10,4,133,13640,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,134,13641,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,135,13642,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,136,13643,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,137,13644,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,138,13645,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,139,13646,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,140,13647,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,141,13648,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,142,13649,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,143,13650,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,144,13651,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,145,13652,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,146,13653,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,147,13654,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,148,13655,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,149,13656,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,150,13657,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,151,13658,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,152,13659,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,153,13660,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,154,13661,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,155,13662,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,156,13663,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,157,13664,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,158,13665,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,159,13666,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,160,13667,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,161,13668,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,162,13669,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,163,13670,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,164,13671,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,165,13672,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,166,13673,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,167,13674,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,168,13675,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,169,13676,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,170,13677,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,171,13678,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,172,13679,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,173,13680,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,174,13681,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,175,13682,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,176,13683,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,177,13684,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,178,13685,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,179,13686,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,180,13687,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,181,13688,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,182,13689,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,183,13690,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,184,13691,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,185,15546,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,186,15547,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,187,15548,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,188,15549,20000,1,0,0,1,1,0,1,0,0
|
||||
10,4,189,16162,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,190,16163,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,191,16164,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,192,16165,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,193,16166,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,194,16167,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,195,16168,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,196,16169,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,197,16172,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,198,16173,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,199,16174,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,200,16175,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,201,16176,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,202,16177,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,203,16178,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,204,16179,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,205,16182,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,206,16183,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,207,16184,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,208,16185,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,209,16186,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,210,16187,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,211,16188,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,212,16189,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,213,16192,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,214,16193,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,215,16194,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,216,16195,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,217,16196,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,218,16197,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,219,16198,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,220,16199,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,221,16202,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,222,16203,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,223,16204,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,224,16205,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,225,16206,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,226,16207,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,227,16208,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,228,16209,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,229,16212,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,230,16213,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,231,16214,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,232,16215,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,233,16216,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,234,16217,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,235,16218,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,236,16219,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,237,16222,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,238,16223,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,239,16224,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,240,16225,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,241,16226,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,242,16227,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,243,16228,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,244,16229,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,245,16232,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,246,16233,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,247,16234,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,248,16235,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,249,16236,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,250,16237,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,251,16238,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,252,16239,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,253,16242,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,254,16243,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,255,16244,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,256,16245,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,257,16246,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,258,16247,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,259,16248,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,260,16249,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,261,16252,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,262,16253,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,263,16254,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,264,16255,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,265,16256,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,266,16257,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,267,16258,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,268,16259,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,269,16262,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,270,16263,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,271,16264,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,272,16265,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,273,16266,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,274,16267,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,275,16268,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,276,16269,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,277,16272,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,278,16273,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,279,16274,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,280,16275,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,281,16276,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,282,16277,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,283,16278,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,284,16279,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,285,16282,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,286,16283,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,287,16284,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,288,16285,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,289,16286,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,290,16287,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,291,16288,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,292,16289,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,293,16292,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,294,16293,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,295,16294,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,296,16295,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,297,16296,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,298,16297,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,299,16298,35000,1,0,0,1,1,0,1,0,0
|
||||
10,4,300,16299,35000,1,0,0,1,1,0,1,0,0
|
||||
10,8,301,14136,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,302,14137,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,303,14138,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,304,14139,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,305,14140,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,306,14141,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,307,14142,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,308,14143,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,309,14144,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,310,14145,15000,1,0,0,1,1,0,1,0,0
|
||||
10,8,311,14454,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,312,14455,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,313,14456,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,314,14457,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,315,14458,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,316,14459,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,317,14460,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,318,14461,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,319,14462,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,320,14463,30000,1,0,0,1,1,0,1,0,0
|
||||
10,8,321,12724,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,322,12725,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,323,12726,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,324,12727,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,325,12728,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,326,12729,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,327,12730,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,328,12731,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,329,12732,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,330,12733,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,331,12734,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,332,12735,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,333,12736,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,334,12737,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,335,12738,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,336,12739,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,337,12740,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,338,12741,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,339,12742,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,340,12743,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,341,12744,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,342,12745,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,343,12746,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,344,12747,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,345,12748,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,346,12749,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,347,12750,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,348,12751,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,349,12752,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,350,12753,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,351,15070,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,352,15071,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,353,15072,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,354,15073,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,355,15074,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,356,15075,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,357,15076,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,358,15077,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,359,15078,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,360,15079,50000,1,0,0,1,1,0,1,0,0
|
||||
10,8,361,15567,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,362,15568,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,363,15569,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,364,15570,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,365,15571,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,366,15572,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,367,15573,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,368,15574,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,369,15575,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,370,15576,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,371,15577,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,372,15578,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,373,15579,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,374,15580,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,375,15581,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,376,15582,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,377,15583,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,378,15584,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,379,15585,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,380,15586,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,381,15587,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,382,15588,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,383,15589,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,384,15590,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,385,15591,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,386,15592,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,387,15593,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,388,15594,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,389,15595,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,390,15596,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,391,15597,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,392,15598,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,393,15599,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,394,15600,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,395,15601,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,396,15602,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,397,15603,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,398,15604,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,399,15605,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,400,15606,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,401,15607,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,402,15608,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,403,15609,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,404,15610,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,405,15611,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,406,15612,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,407,15613,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,408,15614,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,409,15615,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,410,15616,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,411,15617,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,412,15618,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,413,15619,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,414,15620,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,415,15621,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,416,15622,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,417,15623,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,418,15624,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,419,15625,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,420,15626,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,421,15627,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,422,15628,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,423,15629,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,424,15630,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,425,15631,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,426,15632,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,427,15633,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,428,15634,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,429,15635,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,430,15636,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,431,15637,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,432,15638,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,433,15639,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,434,15640,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,435,15641,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,436,15642,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,437,15643,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,438,15644,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,439,15645,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,440,15646,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,441,15647,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,442,15648,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,443,15649,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,444,15650,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,445,15651,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,446,15652,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,447,15653,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,448,15654,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,449,15655,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,450,15656,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,451,15657,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,452,15658,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,453,15659,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,454,15660,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,455,15661,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,456,15662,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,457,15663,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,458,15664,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,459,15665,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,460,15666,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,461,15667,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,462,15668,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,463,15669,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,464,15670,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,465,15671,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,466,15672,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,467,15673,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,468,15674,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,469,15675,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,470,15676,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,471,15677,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,472,15678,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,473,15679,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,474,15680,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,475,15681,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,476,15682,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,477,15683,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,478,15684,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,479,15685,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,480,15686,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,481,15687,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,482,15688,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,483,15689,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,484,15690,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,485,15691,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,486,15692,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,487,15693,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,488,15694,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,489,15695,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,490,15696,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,491,15697,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,492,15698,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,493,15699,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,494,15700,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,495,15701,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,496,15702,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,497,15703,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,498,15704,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,499,15705,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,500,15706,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,501,15707,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,502,15708,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,503,15709,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,504,15710,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,505,15711,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,506,15712,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,507,15713,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,508,15714,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,509,15715,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,510,15716,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,511,15717,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,512,15718,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,513,15719,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,514,15720,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,515,15721,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,516,15722,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,517,15723,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,518,15724,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,519,15725,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,520,15726,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,521,15727,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,522,15728,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,523,15729,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,524,15730,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,525,15731,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,526,15732,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,527,15733,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,528,15734,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,529,15735,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,530,15736,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,531,15737,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,532,15738,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,533,15739,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,534,15740,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,535,15741,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,536,15742,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,537,15743,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,538,15744,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,539,15745,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,540,15746,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,541,15747,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,542,15748,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,543,15749,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,544,15750,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,545,15751,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,546,15752,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,547,15753,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,548,15754,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,549,15755,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,550,15756,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,551,15757,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,552,15758,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,553,15759,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,554,15760,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,555,15761,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,556,15762,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,557,15763,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,558,15764,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,559,15765,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,560,15766,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,561,15919,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,562,15920,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,563,15921,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,564,15922,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,565,15923,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,566,15924,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,567,15925,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,568,15926,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,569,15927,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,570,15928,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,571,15929,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,572,15930,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,573,15931,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,574,15932,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,575,15933,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,576,15934,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,577,15935,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,578,15936,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,579,15937,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,580,15938,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,581,15939,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,582,15940,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,583,15941,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,584,15942,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,585,15943,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,586,15944,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,587,15945,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,588,15946,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,589,15947,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,590,15948,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,591,15949,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,592,15950,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,593,15951,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,594,15952,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,595,15953,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,596,15954,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,597,15955,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,598,15956,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,599,15957,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,600,15958,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,601,15959,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,602,15960,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,603,15961,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,604,15962,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,605,15963,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,606,15964,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,607,15965,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,608,15966,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,609,15967,20000,1,0,0,1,1,0,1,0,0
|
||||
10,8,610,15968,20000,1,0,0,1,1,0,1,0,0
|
||||
10,7,611,13506,250,1,0,0,1,1,0,1,50,0
|
||||
10,7,612,15011,250,1,0,0,1,1,0,1,50,0
|
||||
10,7,613,13636,250,1,0,0,1,1,0,1,50,0
|
||||
10,7,614,1227,250,1,0,0,1,1,0,1,50,0
|
||||
10,7,615,15022,250,1,0,0,1,1,0,1,50,0
|
||||
10,8,616,4407,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,617,4408,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,618,4409,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,619,4410,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,620,4411,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,621,4412,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,622,4413,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,623,4414,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,624,4823,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,625,4824,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,626,4825,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,627,4826,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,628,4827,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,629,4828,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,630,4829,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,631,4830,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,632,5194,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,633,5195,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,634,5196,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,635,5197,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,636,5198,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,637,5199,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,638,5200,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,639,5201,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,640,13630,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,641,13631,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,642,13632,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,643,13633,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,644,13634,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,645,13635,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,646,15103,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,647,15104,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,648,15105,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,649,15106,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,650,15107,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,651,15108,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,652,16459,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,653,16460,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,654,16461,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,655,16462,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,656,16463,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,657,16464,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,658,16465,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,659,16466,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,660,16467,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,661,16468,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,662,16469,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,663,16470,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,664,16471,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,665,16472,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,666,13416,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,667,13417,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,668,13418,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,669,13419,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,670,13420,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,671,14283,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,672,14284,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,673,14285,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,674,14286,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,675,13182,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,676,13507,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,677,13981,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,678,14744,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,679,14893,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,680,15785,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,681,16419,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,682,11470,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,683,12512,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,684,12884,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,685,12513,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,686,12514,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,687,12515,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,688,12516,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,689,12517,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,690,12518,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,691,12519,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,692,12520,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,693,12521,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,694,8179,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,695,9704,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,696,15448,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,697,11162,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,698,11163,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,699,11164,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,700,11165,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,701,11661,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,702,11662,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,703,14639,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,704,13607,10,1,0,0,1,1,0,1,0,0
|
||||
10,7,705,15774,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,706,15775,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,707,11420,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,708,14704,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,709,13177,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,710,14191,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,711,13449,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,712,14192,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,713,15772,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,714,13791,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,715,14006,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,716,15768,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,717,14069,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,718,14124,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,719,15507,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,720,15508,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,721,14855,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,722,14894,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,723,16444,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,724,16445,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,725,12509,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,726,14126,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,727,15062,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,728,15063,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,729,14891,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,730,14895,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,731,14091,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,732,14092,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,733,14501,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,734,14506,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,735,15285,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,736,15286,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,737,16442,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,738,16443,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,739,15027,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,740,15028,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,741,13453,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,742,14193,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,743,13178,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,744,14194,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,745,16454,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,746,16455,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,747,15030,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,748,15031,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,749,13790,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,750,14005,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,751,14406,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,752,14413,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,753,16448,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,754,16449,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,755,12872,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,756,14187,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,757,14125,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,758,14500,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,759,14505,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,760,15118,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,761,15119,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,762,14662,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,763,14663,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,764,15771,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,765,9700,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,766,14498,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,767,14913,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,768,14914,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,769,13508,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,770,15115,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,771,15116,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,772,15113,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,773,15114,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,774,15222,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,775,15223,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,776,10750,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,777,14705,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,778,15027,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,779,15028,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,780,10380,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,781,15060,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,782,13963,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,783,14026,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,784,13964,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,785,14027,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,786,15064,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,787,15065,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,788,15524,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,789,15525,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,790,16450,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,791,16451,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,792,16344,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,793,16345,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,794,16342,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,795,16343,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,796,15220,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,797,15221,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,798,15066,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,799,15067,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,800,14089,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,801,14090,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,802,14195,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,803,14196,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,804,13965,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,805,14028,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,806,13508,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,807,13962,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,808,14314,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,809,13404,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,810,14188,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,811,14032,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,812,13960,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,813,15819,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,814,15820,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,815,10750,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,816,14705,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,817,14407,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,818,14414,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,819,16352,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,820,16353,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,821,14502,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,822,14507,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,823,10811,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,824,15061,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,825,15823,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,826,15824,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,827,15224,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,828,15225,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,829,14503,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,830,14510,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,831,15776,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,832,15777,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,833,15821,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,834,15822,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,835,14198,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,836,14197,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,837,16446,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,838,16447,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,839,14905,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,840,14907,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,841,14904,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,842,14906,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,843,14659,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,844,14660,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,845,13326,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,846,14416,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,847,13450,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,848,14031,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,849,16492,3000,1,0,0,1,1,0,1,100,0
|
||||
10,7,850,16493,3000,1,0,0,1,1,0,1,100,0
|
||||
10,8,851,1520,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,852,7011,1,1,0,0,1,1,0,1,0,0
|
||||
10,7,853,14299,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,854,14389,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,855,15177,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,856,14537,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,857,14758,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,858,14854,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,859,13974,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,860,15021,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,861,15111,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,862,15226,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,863,15773,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,864,15825,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,865,15827,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,866,16340,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,867,16341,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,868,16457,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,869,16458,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,870,11698,250,1,0,0,1,1,0,1,50,0
|
||||
10,7,871,11700,250,1,0,0,1,1,0,1,50,0
|
||||
10,8,872,4358,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,873,7981,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,874,7267,20,1,0,0,1,1,0,1,0,0
|
||||
10,8,875,9958,20,1,0,0,1,1,0,1,0,999
|
||||
10,8,876,1548,20,1,0,0,1,1,0,1,0,0
|
||||
10,8,877,1613,20,1,0,0,1,1,0,1,0,0
|
||||
10,8,878,1026,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,879,5380,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,880,11284,15,1,0,0,1,1,0,1,0,0
|
||||
10,8,881,11285,15,1,0,0,1,1,0,1,0,0
|
||||
10,8,882,11286,15,1,0,0,1,1,0,1,0,0
|
||||
10,8,883,10356,500,1,0,0,1,1,0,1,0,0
|
||||
10,8,884,12511,500,1,0,0,1,1,0,1,0,0
|
||||
10,8,885,13238,500,1,0,0,1,1,0,1,0,0
|
||||
10,8,886,1691,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,887,9708,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,888,11383,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,889,11382,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,890,11381,10,1,0,0,1,1,0,1,0,0
|
||||
10,7,891,16348,3000,1,0,0,1,1,0,1,100,0
|
||||
10,8,892,11386,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,893,5767,1,10000,0,0,1,1,0,1,0,0
|
||||
10,8,894,5765,1,10000,0,0,1,1,0,1,0,0
|
||||
10,8,895,5768,1,10000,0,0,1,1,0,1,0,0
|
||||
10,8,896,14444,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,897,14443,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,898,14445,10,1,0,0,1,1,0,1,0,0
|
||||
10,8,899,15068,500,1,0,0,1,1,0,1,20,0
|
||||
10,7,900,16532,1000,1,0,0,1,1,0,1,0,0
|
||||
10,8,901,100,1,10000,0,0,1,1,0,1,0,0
|
||||
10,8,902,11243,1,1,0,0,1,1,0,1,0,0
|
||||
10,8,903,101,1,10000,0,0,1,1,0,1,0,0
|
||||
10,7,904,14368,3000,1,0,0,1,1,0,1,50,0
|
||||
10,8,905,8943,1,20,0,0,1,1,0,1,0,0
|
||||
10,7,906,1622,3000,1,0,0,1,1,0,1,0,0
|
||||
10,8,907,8953,1,20,0,0,1,1,0,1,0,0
|
||||
10,8,908,13693,1,20,0,0,1,1,0,1,0,0
|
||||
10,8,909,8949,1,20,0,0,1,1,0,1,0,0
|
||||
10,8,910,8955,1,20,0,0,1,1,0,1,0,0
|
||||
10,7,911,16456,500,1,0,0,1,1,0,1,0,0
|
||||
|
0
bin/questlists/.gitkeep
Normal file
0
bin/questlists/.gitkeep
Normal file
@@ -1,16 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE questlists (
|
||||
ind int NOT NULL PRIMARY KEY,
|
||||
questlist bytea
|
||||
);
|
||||
|
||||
END;
|
||||
|
||||
INSERT INTO questlists (ind, questlist) VALUES ('0', pg_read_binary_file('c:\save\quest_0_0.bin'));
|
||||
INSERT INTO questlists (ind, questlist) VALUES ('42', pg_read_binary_file('c:\save\quest_42_2A.bin'));
|
||||
INSERT INTO questlists (ind, questlist) VALUES ('84', pg_read_binary_file('c:\save\quest_84_54.bin'));
|
||||
INSERT INTO questlists (ind, questlist) VALUES ('126', pg_read_binary_file('c:\save\quest_126_7E.bin'));
|
||||
INSERT INTO questlists (ind, questlist) VALUES ('168', pg_read_binary_file('c:\save\quest_168_A8.bin'));
|
||||
|
||||
|
||||
260
bundled-schema/FestaDefaults.sql
Normal file
260
bundled-schema/FestaDefaults.sql
Normal file
@@ -0,0 +1,260 @@
|
||||
BEGIN;
|
||||
|
||||
-- Ripped prizes
|
||||
INSERT INTO public.festa_prizes
|
||||
(type, tier, souls_req, item_id, num_item)
|
||||
VALUES
|
||||
('personal', 1, 1, 9647, 7),
|
||||
('personal', 2, 1, 9647, 7),
|
||||
('personal', 3, 1, 9647, 7),
|
||||
('personal', 1, 200, 11284, 4),
|
||||
('personal', 2, 200, 11284, 4),
|
||||
('personal', 3, 200, 11284, 4),
|
||||
('personal', 1, 400, 11381, 3),
|
||||
('personal', 2, 400, 11381, 3),
|
||||
('personal', 3, 400, 11381, 3),
|
||||
('personal', 1, 600, 11284, 8),
|
||||
('personal', 2, 600, 11284, 8),
|
||||
('personal', 3, 600, 11284, 8),
|
||||
('personal', 1, 800, 11384, 3),
|
||||
('personal', 2, 800, 11384, 3),
|
||||
('personal', 3, 800, 11384, 3),
|
||||
('personal', 1, 1000, 11284, 12),
|
||||
('personal', 2, 1000, 11284, 12),
|
||||
('personal', 3, 1000, 11284, 12),
|
||||
('personal', 1, 1200, 11381, 5),
|
||||
('personal', 2, 1200, 11381, 5),
|
||||
('personal', 3, 1200, 11381, 5),
|
||||
('personal', 1, 1400, 11284, 16),
|
||||
('personal', 2, 1400, 11284, 16),
|
||||
('personal', 3, 1400, 11284, 16),
|
||||
('personal', 1, 1700, 11384, 5),
|
||||
('personal', 2, 1700, 11384, 5),
|
||||
('personal', 3, 1700, 11384, 5),
|
||||
('personal', 1, 2000, 11284, 16),
|
||||
('personal', 2, 2000, 11284, 16),
|
||||
('personal', 3, 2000, 11284, 16),
|
||||
('personal', 1, 2500, 11382, 4),
|
||||
('personal', 2, 2500, 11382, 4),
|
||||
('personal', 3, 2500, 11382, 4),
|
||||
('personal', 1, 3000, 11284, 24),
|
||||
('personal', 2, 3000, 11284, 24),
|
||||
('personal', 3, 3000, 11284, 24),
|
||||
('personal', 1, 4000, 11385, 4),
|
||||
('personal', 2, 4000, 11385, 4),
|
||||
('personal', 3, 4000, 11385, 4),
|
||||
('personal', 1, 5000, 11381, 11),
|
||||
('personal', 2, 5000, 11381, 11),
|
||||
('personal', 3, 5000, 11381, 11),
|
||||
('personal', 1, 6000, 5177, 5),
|
||||
('personal', 2, 6000, 5177, 5),
|
||||
('personal', 3, 6000, 5177, 5),
|
||||
('personal', 1, 7000, 11384, 11),
|
||||
('personal', 2, 7000, 11384, 11),
|
||||
('personal', 3, 7000, 11384, 11),
|
||||
('personal', 1, 10000, 11382, 8),
|
||||
('personal', 2, 10000, 11382, 8),
|
||||
('personal', 3, 10000, 11382, 8),
|
||||
('personal', 1, 15000, 11385, 4),
|
||||
('personal', 2, 15000, 11385, 4),
|
||||
('personal', 3, 15000, 11385, 4),
|
||||
('personal', 1, 20000, 11381, 13),
|
||||
('personal', 2, 20000, 11381, 13),
|
||||
('personal', 3, 20000, 11381, 13),
|
||||
('personal', 1, 25000, 11385, 4),
|
||||
('personal', 2, 25000, 11385, 4),
|
||||
('personal', 3, 25000, 11385, 4),
|
||||
('personal', 1, 30000, 11383, 1),
|
||||
('personal', 2, 30000, 11383, 1),
|
||||
('personal', 3, 30000, 11383, 1);
|
||||
|
||||
INSERT INTO public.festa_prizes
|
||||
(type, tier, souls_req, item_id, num_item)
|
||||
VALUES
|
||||
('guild', 1, 100, 7468, 5),
|
||||
('guild', 2, 100, 7468, 5),
|
||||
('guild', 3, 100, 7465, 5),
|
||||
('guild', 1, 300, 7469, 5),
|
||||
('guild', 2, 300, 7469, 5),
|
||||
('guild', 3, 300, 7466, 5),
|
||||
('guild', 1, 700, 7470, 5),
|
||||
('guild', 2, 700, 7470, 5),
|
||||
('guild', 3, 700, 7467, 5),
|
||||
('guild', 1, 1500, 13405, 14),
|
||||
('guild', 1, 1500, 1520, 3),
|
||||
('guild', 2, 1500, 13405, 14),
|
||||
('guild', 2, 1500, 1520, 3),
|
||||
('guild', 3, 1500, 7011, 3),
|
||||
('guild', 3, 1500, 13405, 14),
|
||||
('guild', 1, 3000, 10201, 10),
|
||||
('guild', 2, 3000, 10201, 10),
|
||||
('guild', 3, 3000, 10201, 10),
|
||||
('guild', 1, 6000, 13895, 14),
|
||||
('guild', 1, 6000, 1520, 6),
|
||||
('guild', 2, 6000, 13895, 14),
|
||||
('guild', 2, 6000, 1520, 6),
|
||||
('guild', 3, 6000, 13895, 14),
|
||||
('guild', 3, 6000, 7011, 4),
|
||||
('guild', 1, 12000, 13406, 14),
|
||||
('guild', 1, 12000, 1520, 9),
|
||||
('guild', 2, 12000, 13406, 14),
|
||||
('guild', 2, 12000, 1520, 9),
|
||||
('guild', 3, 12000, 13406, 14),
|
||||
('guild', 3, 12000, 7011, 5),
|
||||
('guild', 1, 25000, 10207, 10),
|
||||
('guild', 2, 25000, 10207, 10),
|
||||
('guild', 3, 25000, 10207, 10),
|
||||
('guild', 1, 50000, 1520, 12),
|
||||
('guild', 1, 50000, 13896, 14),
|
||||
('guild', 2, 50000, 1520, 12),
|
||||
('guild', 2, 50000, 13896, 14),
|
||||
('guild', 3, 50000, 7011, 6),
|
||||
('guild', 3, 50000, 13896, 14),
|
||||
('guild', 1, 100000, 10201, 10),
|
||||
('guild', 2, 100000, 10201, 10),
|
||||
('guild', 3, 100000, 10201, 10),
|
||||
('guild', 1, 200000, 13406, 16),
|
||||
('guild', 2, 200000, 13406, 16),
|
||||
('guild', 3, 200000, 13406, 16),
|
||||
('guild', 1, 300000, 13896, 16),
|
||||
('guild', 2, 300000, 13896, 16),
|
||||
('guild', 3, 300000, 13896, 16),
|
||||
('guild', 1, 400000, 10207, 10),
|
||||
('guild', 2, 400000, 10207, 10),
|
||||
('guild', 3, 400000, 10207, 10),
|
||||
('guild', 1, 500000, 13407, 6),
|
||||
('guild', 1, 500000, 13897, 6),
|
||||
('guild', 2, 500000, 13407, 6),
|
||||
('guild', 2, 500000, 13897, 6),
|
||||
('guild', 3, 500000, 13407, 6),
|
||||
('guild', 3, 500000, 13897, 6);
|
||||
|
||||
-- Ripped trials
|
||||
INSERT INTO public.festa_trials
|
||||
(objective, goal_id, times_req, locale_req, reward)
|
||||
VALUES
|
||||
(1,27,1,0,1),
|
||||
(5,53034,0,0,400),
|
||||
(5,22042,0,0,89),
|
||||
(5,23397,0,0,89),
|
||||
(1,28,1,0,1),
|
||||
(1,68,1,0,1),
|
||||
(1,6,1,0,2),
|
||||
(1,38,1,0,2),
|
||||
(1,20,1,0,3),
|
||||
(1,39,1,0,4),
|
||||
(1,48,1,0,4),
|
||||
(1,67,1,0,4),
|
||||
(1,93,1,0,4),
|
||||
(1,22,1,0,5),
|
||||
(1,52,1,0,5),
|
||||
(1,101,1,0,5),
|
||||
(1,1,1,0,5),
|
||||
(1,37,1,0,5),
|
||||
(1,15,1,0,5),
|
||||
(1,45,1,0,5),
|
||||
(1,74,1,0,5),
|
||||
(1,78,1,0,5),
|
||||
(1,103,1,0,5),
|
||||
(1,51,1,0,6),
|
||||
(1,17,1,0,6),
|
||||
(1,21,1,0,6),
|
||||
(1,92,1,0,6),
|
||||
(1,47,1,0,7),
|
||||
(1,46,1,0,7),
|
||||
(1,26,1,0,7),
|
||||
(1,14,1,0,7),
|
||||
(1,11,1,0,7),
|
||||
(1,44,1,0,8),
|
||||
(1,43,1,0,8),
|
||||
(1,49,1,0,8),
|
||||
(1,40,1,0,8),
|
||||
(1,76,1,0,8),
|
||||
(1,89,1,0,8),
|
||||
(1,94,1,0,8),
|
||||
(1,96,1,0,8),
|
||||
(1,75,1,0,8),
|
||||
(1,91,1,0,8),
|
||||
(1,53,1,0,9),
|
||||
(1,80,1,0,9),
|
||||
(1,42,1,0,9),
|
||||
(1,79,1,0,9),
|
||||
(1,81,1,0,10),
|
||||
(1,41,1,0,10),
|
||||
(1,82,1,0,10),
|
||||
(1,90,1,0,10),
|
||||
(1,149,1,0,10),
|
||||
(1,85,1,0,11),
|
||||
(1,95,1,0,11),
|
||||
(1,121,1,0,11),
|
||||
(1,142,1,0,11),
|
||||
(1,141,1,0,11),
|
||||
(1,146,1,0,12),
|
||||
(1,147,1,0,12),
|
||||
(1,148,1,0,12),
|
||||
(1,151,1,0,12),
|
||||
(1,152,1,0,12),
|
||||
(1,159,1,0,12),
|
||||
(1,153,1,0,12),
|
||||
(1,162,1,0,12),
|
||||
(1,111,1,0,13),
|
||||
(1,110,1,0,13),
|
||||
(1,112,1,0,13),
|
||||
(1,109,1,0,14),
|
||||
(1,169,1,0,15),
|
||||
(2,33,1,0,6),
|
||||
(2,104,1,0,8),
|
||||
(2,119,1,0,8),
|
||||
(2,120,1,0,8),
|
||||
(2,54,1,0,8),
|
||||
(2,59,1,0,8),
|
||||
(2,64,1,0,8),
|
||||
(2,65,1,0,8),
|
||||
(2,99,1,0,9),
|
||||
(2,83,1,0,9),
|
||||
(2,84,1,0,10),
|
||||
(2,77,1,0,10),
|
||||
(2,106,1,0,10),
|
||||
(2,55,1,0,10),
|
||||
(2,58,1,0,10),
|
||||
(2,7,1,0,10),
|
||||
(2,50,1,0,11),
|
||||
(2,131,1,0,11),
|
||||
(2,129,1,0,11),
|
||||
(2,140,1,0,11),
|
||||
(2,122,1,0,11),
|
||||
(2,126,1,0,11),
|
||||
(2,127,1,0,11),
|
||||
(2,128,1,0,11),
|
||||
(2,130,1,0,11),
|
||||
(2,139,1,0,11),
|
||||
(2,144,1,0,11),
|
||||
(2,150,1,0,11),
|
||||
(2,158,1,0,11),
|
||||
(2,164,1,0,15),
|
||||
(2,165,1,0,15),
|
||||
(2,2,1,7,15),
|
||||
(2,36,1,0,15),
|
||||
(2,71,1,0,15),
|
||||
(2,108,1,0,15),
|
||||
(2,116,1,0,15),
|
||||
(2,107,1,0,15),
|
||||
(2,154,1,0,17),
|
||||
(2,166,1,0,17),
|
||||
(2,170,1,0,18),
|
||||
(3,31,1,0,1),
|
||||
(3,8,1,0,3),
|
||||
(3,123,1,0,8),
|
||||
(3,105,1,0,9),
|
||||
(3,125,1,0,11),
|
||||
(3,115,1,0,12),
|
||||
(3,114,1,0,12),
|
||||
(3,161,1,0,12),
|
||||
(4,670,1,0,1),
|
||||
(4,671,1,0,1),
|
||||
(4,672,1,0,1),
|
||||
(4,675,1,0,1),
|
||||
(4,673,1,0,1),
|
||||
(4,674,1,0,1);
|
||||
|
||||
END;
|
||||
13
bundled-schema/NetcafeDefaults.sql
Normal file
13
bundled-schema/NetcafeDefaults.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
BEGIN;
|
||||
|
||||
INSERT INTO public.cafebonus (time_req, item_type, item_id, quantity)
|
||||
VALUES
|
||||
(1800, 17, 0, 250),
|
||||
(3600, 17, 0, 500),
|
||||
(7200, 17, 0, 1000),
|
||||
(10800, 17, 0, 1500),
|
||||
(18000, 17, 0, 1750),
|
||||
(28800, 17, 0, 3000),
|
||||
(43200, 17, 0, 4000);
|
||||
|
||||
END;
|
||||
918
bundled-schema/RoadShopItems.sql
Normal file
918
bundled-schema/RoadShopItems.sql
Normal file
@@ -0,0 +1,918 @@
|
||||
BEGIN;
|
||||
|
||||
INSERT INTO public.normal_shop_items
|
||||
(shoptype, shopid, itemhash, itemid, points, tradequantity, rankreqlow, rankreqhigh, rankreqg, storelevelreq, maximumquantity, boughtquantity, roadfloorsrequired, weeklyfataliskills)
|
||||
VALUES
|
||||
(10,6,1,2146,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,2,2147,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,3,2148,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,4,2149,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,5,2150,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,6,2151,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,7,2152,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,8,2153,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,9,2154,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,10,2155,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,11,4398,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,12,12460,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,13,12461,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,14,12462,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,15,12463,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,16,12464,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,17,12465,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,18,12466,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,19,12467,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,20,12468,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,21,12469,25,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,22,15109,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,23,15110,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,6,24,2158,200,100,0,0,1,1,0,1,0,0),
|
||||
(10,6,25,12306,2,1,0,0,1,1,0,1,80,0),
|
||||
(10,6,26,12306,20000,10000,0,0,1,1,0,1,80,0),
|
||||
(10,4,27,11664,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,28,11665,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,29,11666,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,30,11667,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,31,11668,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,32,11669,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,33,11670,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,34,11671,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,35,11672,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,36,11673,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,37,11674,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,38,11675,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,39,11676,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,40,11677,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,41,11678,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,42,11679,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,43,11680,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,44,11681,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,45,11682,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,46,11683,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,47,11684,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,48,11685,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,49,11686,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,50,11687,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,51,11688,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,52,11689,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,53,11690,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,54,11691,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,55,11692,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,56,11693,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,57,11694,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,58,11695,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,59,11696,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,60,11697,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,61,12893,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,62,12894,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,63,12895,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,64,12896,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,65,12897,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,66,12898,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,67,12899,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,68,14337,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,69,14338,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,70,14339,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,71,14340,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,72,14341,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,73,14342,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,74,14343,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,75,14344,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,76,14345,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,77,9254,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,78,9255,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,79,9256,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,80,9257,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,81,9258,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,82,9259,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,83,9260,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,84,9261,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,85,9262,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,86,9263,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,87,9264,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,88,9265,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,89,9266,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,90,9267,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,91,9268,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,92,9269,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,93,9270,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,94,9271,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,95,9272,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,96,9273,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,97,9274,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,98,9275,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,99,9276,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,100,9277,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,101,9278,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,102,9279,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,103,9280,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,104,9281,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,105,9282,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,106,9283,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,107,9284,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,108,9285,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,109,9286,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,110,9287,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,111,9288,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,112,9289,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,113,9290,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,114,9291,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,115,9292,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,116,9293,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,117,9294,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,118,9295,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,119,9296,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,120,9297,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,121,9298,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,122,9299,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,123,9300,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,124,9301,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,125,13196,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,126,13197,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,127,13198,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,128,13199,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,129,15542,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,130,15543,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,131,15544,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,132,15545,10000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,133,13640,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,134,13641,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,135,13642,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,136,13643,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,137,13644,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,138,13645,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,139,13646,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,140,13647,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,141,13648,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,142,13649,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,143,13650,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,144,13651,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,145,13652,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,146,13653,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,147,13654,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,148,13655,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,149,13656,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,150,13657,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,151,13658,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,152,13659,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,153,13660,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,154,13661,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,155,13662,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,156,13663,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,157,13664,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,158,13665,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,159,13666,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,160,13667,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,161,13668,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,162,13669,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,163,13670,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,164,13671,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,165,13672,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,166,13673,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,167,13674,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,168,13675,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,169,13676,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,170,13677,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,171,13678,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,172,13679,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,173,13680,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,174,13681,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,175,13682,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,176,13683,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,177,13684,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,178,13685,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,179,13686,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,180,13687,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,181,13688,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,182,13689,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,183,13690,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,184,13691,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,185,15546,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,186,15547,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,187,15548,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,188,15549,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,189,16162,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,190,16163,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,191,16164,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,192,16165,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,193,16166,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,194,16167,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,195,16168,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,196,16169,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,197,16172,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,198,16173,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,199,16174,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,200,16175,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,201,16176,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,202,16177,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,203,16178,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,204,16179,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,205,16182,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,206,16183,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,207,16184,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,208,16185,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,209,16186,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,210,16187,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,211,16188,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,212,16189,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,213,16192,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,214,16193,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,215,16194,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,216,16195,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,217,16196,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,218,16197,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,219,16198,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,220,16199,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,221,16202,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,222,16203,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,223,16204,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,224,16205,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,225,16206,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,226,16207,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,227,16208,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,228,16209,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,229,16212,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,230,16213,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,231,16214,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,232,16215,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,233,16216,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,234,16217,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,235,16218,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,236,16219,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,237,16222,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,238,16223,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,239,16224,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,240,16225,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,241,16226,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,242,16227,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,243,16228,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,244,16229,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,245,16232,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,246,16233,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,247,16234,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,248,16235,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,249,16236,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,250,16237,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,251,16238,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,252,16239,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,253,16242,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,254,16243,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,255,16244,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,256,16245,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,257,16246,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,258,16247,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,259,16248,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,260,16249,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,261,16252,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,262,16253,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,263,16254,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,264,16255,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,265,16256,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,266,16257,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,267,16258,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,268,16259,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,269,16262,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,270,16263,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,271,16264,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,272,16265,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,273,16266,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,274,16267,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,275,16268,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,276,16269,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,277,16272,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,278,16273,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,279,16274,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,280,16275,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,281,16276,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,282,16277,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,283,16278,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,284,16279,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,285,16282,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,286,16283,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,287,16284,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,288,16285,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,289,16286,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,290,16287,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,291,16288,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,292,16289,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,293,16292,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,294,16293,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,295,16294,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,296,16295,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,297,16296,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,298,16297,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,299,16298,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,4,300,16299,35000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,301,14136,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,302,14137,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,303,14138,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,304,14139,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,305,14140,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,306,14141,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,307,14142,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,308,14143,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,309,14144,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,310,14145,15000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,311,14454,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,312,14455,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,313,14456,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,314,14457,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,315,14458,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,316,14459,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,317,14460,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,318,14461,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,319,14462,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,320,14463,30000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,321,12724,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,322,12725,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,323,12726,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,324,12727,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,325,12728,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,326,12729,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,327,12730,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,328,12731,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,329,12732,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,330,12733,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,331,12734,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,332,12735,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,333,12736,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,334,12737,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,335,12738,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,336,12739,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,337,12740,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,338,12741,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,339,12742,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,340,12743,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,341,12744,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,342,12745,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,343,12746,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,344,12747,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,345,12748,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,346,12749,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,347,12750,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,348,12751,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,349,12752,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,350,12753,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,351,15070,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,352,15071,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,353,15072,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,354,15073,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,355,15074,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,356,15075,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,357,15076,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,358,15077,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,359,15078,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,360,15079,50000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,361,15567,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,362,15568,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,363,15569,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,364,15570,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,365,15571,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,366,15572,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,367,15573,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,368,15574,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,369,15575,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,370,15576,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,371,15577,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,372,15578,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,373,15579,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,374,15580,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,375,15581,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,376,15582,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,377,15583,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,378,15584,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,379,15585,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,380,15586,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,381,15587,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,382,15588,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,383,15589,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,384,15590,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,385,15591,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,386,15592,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,387,15593,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,388,15594,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,389,15595,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,390,15596,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,391,15597,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,392,15598,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,393,15599,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,394,15600,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,395,15601,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,396,15602,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,397,15603,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,398,15604,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,399,15605,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,400,15606,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,401,15607,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,402,15608,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,403,15609,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,404,15610,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,405,15611,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,406,15612,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,407,15613,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,408,15614,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,409,15615,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,410,15616,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,411,15617,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,412,15618,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,413,15619,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,414,15620,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,415,15621,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,416,15622,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,417,15623,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,418,15624,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,419,15625,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,420,15626,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,421,15627,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,422,15628,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,423,15629,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,424,15630,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,425,15631,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,426,15632,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,427,15633,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,428,15634,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,429,15635,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,430,15636,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,431,15637,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,432,15638,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,433,15639,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,434,15640,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,435,15641,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,436,15642,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,437,15643,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,438,15644,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,439,15645,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,440,15646,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,441,15647,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,442,15648,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,443,15649,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,444,15650,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,445,15651,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,446,15652,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,447,15653,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,448,15654,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,449,15655,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,450,15656,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,451,15657,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,452,15658,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,453,15659,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,454,15660,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,455,15661,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,456,15662,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,457,15663,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,458,15664,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,459,15665,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,460,15666,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,461,15667,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,462,15668,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,463,15669,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,464,15670,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,465,15671,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,466,15672,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,467,15673,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,468,15674,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,469,15675,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,470,15676,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,471,15677,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,472,15678,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,473,15679,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,474,15680,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,475,15681,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,476,15682,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,477,15683,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,478,15684,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,479,15685,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,480,15686,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,481,15687,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,482,15688,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,483,15689,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,484,15690,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,485,15691,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,486,15692,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,487,15693,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,488,15694,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,489,15695,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,490,15696,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,491,15697,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,492,15698,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,493,15699,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,494,15700,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,495,15701,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,496,15702,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,497,15703,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,498,15704,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,499,15705,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,500,15706,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,501,15707,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,502,15708,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,503,15709,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,504,15710,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,505,15711,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,506,15712,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,507,15713,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,508,15714,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,509,15715,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,510,15716,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,511,15717,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,512,15718,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,513,15719,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,514,15720,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,515,15721,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,516,15722,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,517,15723,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,518,15724,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,519,15725,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,520,15726,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,521,15727,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,522,15728,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,523,15729,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,524,15730,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,525,15731,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,526,15732,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,527,15733,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,528,15734,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,529,15735,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,530,15736,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,531,15737,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,532,15738,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,533,15739,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,534,15740,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,535,15741,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,536,15742,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,537,15743,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,538,15744,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,539,15745,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,540,15746,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,541,15747,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,542,15748,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,543,15749,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,544,15750,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,545,15751,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,546,15752,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,547,15753,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,548,15754,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,549,15755,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,550,15756,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,551,15757,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,552,15758,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,553,15759,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,554,15760,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,555,15761,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,556,15762,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,557,15763,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,558,15764,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,559,15765,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,560,15766,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,561,15919,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,562,15920,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,563,15921,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,564,15922,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,565,15923,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,566,15924,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,567,15925,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,568,15926,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,569,15927,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,570,15928,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,571,15929,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,572,15930,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,573,15931,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,574,15932,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,575,15933,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,576,15934,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,577,15935,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,578,15936,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,579,15937,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,580,15938,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,581,15939,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,582,15940,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,583,15941,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,584,15942,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,585,15943,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,586,15944,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,587,15945,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,588,15946,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,589,15947,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,590,15948,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,591,15949,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,592,15950,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,593,15951,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,594,15952,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,595,15953,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,596,15954,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,597,15955,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,598,15956,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,599,15957,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,600,15958,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,601,15959,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,602,15960,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,603,15961,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,604,15962,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,605,15963,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,606,15964,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,607,15965,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,608,15966,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,609,15967,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,610,15968,20000,1,0,0,1,1,0,1,0,0),
|
||||
(10,7,611,13506,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,7,612,15011,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,7,613,13636,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,7,614,1227,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,7,615,15022,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,8,616,4407,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,617,4408,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,618,4409,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,619,4410,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,620,4411,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,621,4412,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,622,4413,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,623,4414,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,624,4823,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,625,4824,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,626,4825,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,627,4826,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,628,4827,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,629,4828,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,630,4829,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,631,4830,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,632,5194,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,633,5195,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,634,5196,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,635,5197,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,636,5198,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,637,5199,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,638,5200,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,639,5201,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,640,13630,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,641,13631,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,642,13632,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,643,13633,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,644,13634,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,645,13635,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,646,15103,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,647,15104,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,648,15105,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,649,15106,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,650,15107,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,651,15108,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,652,16459,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,653,16460,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,654,16461,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,655,16462,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,656,16463,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,657,16464,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,658,16465,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,659,16466,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,660,16467,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,661,16468,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,662,16469,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,663,16470,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,664,16471,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,665,16472,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,666,13416,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,667,13417,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,668,13418,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,669,13419,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,670,13420,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,671,14283,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,672,14284,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,673,14285,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,674,14286,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,675,13182,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,676,13507,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,677,13981,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,678,14744,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,679,14893,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,680,15785,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,681,16419,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,682,11470,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,683,12512,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,684,12884,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,685,12513,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,686,12514,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,687,12515,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,688,12516,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,689,12517,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,690,12518,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,691,12519,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,692,12520,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,693,12521,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,694,8179,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,695,9704,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,696,15448,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,697,11162,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,698,11163,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,699,11164,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,700,11165,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,701,11661,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,702,11662,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,703,14639,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,704,13607,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,7,705,15774,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,706,15775,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,707,11420,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,708,14704,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,709,13177,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,710,14191,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,711,13449,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,712,14192,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,713,15772,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,714,13791,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,715,14006,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,716,15768,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,717,14069,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,718,14124,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,719,15507,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,720,15508,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,721,14855,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,722,14894,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,723,16444,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,724,16445,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,725,12509,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,726,14126,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,727,15062,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,728,15063,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,729,14891,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,730,14895,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,731,14091,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,732,14092,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,733,14501,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,734,14506,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,735,15285,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,736,15286,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,737,16442,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,738,16443,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,739,15027,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,740,15028,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,741,13453,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,742,14193,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,743,13178,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,744,14194,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,745,16454,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,746,16455,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,747,15030,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,748,15031,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,749,13790,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,750,14005,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,751,14406,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,752,14413,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,753,16448,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,754,16449,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,755,12872,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,756,14187,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,757,14125,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,758,14500,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,759,14505,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,760,15118,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,761,15119,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,762,14662,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,763,14663,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,764,15771,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,765,9700,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,766,14498,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,767,14913,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,768,14914,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,769,13508,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,770,15115,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,771,15116,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,772,15113,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,773,15114,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,774,15222,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,775,15223,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,776,10750,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,777,14705,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,778,15027,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,779,15028,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,780,10380,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,781,15060,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,782,13963,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,783,14026,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,784,13964,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,785,14027,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,786,15064,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,787,15065,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,788,15524,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,789,15525,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,790,16450,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,791,16451,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,792,16344,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,793,16345,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,794,16342,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,795,16343,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,796,15220,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,797,15221,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,798,15066,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,799,15067,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,800,14089,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,801,14090,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,802,14195,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,803,14196,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,804,13965,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,805,14028,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,806,13508,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,807,13962,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,808,14314,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,809,13404,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,810,14188,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,811,14032,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,812,13960,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,813,15819,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,814,15820,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,815,10750,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,816,14705,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,817,14407,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,818,14414,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,819,16352,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,820,16353,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,821,14502,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,822,14507,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,823,10811,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,824,15061,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,825,15823,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,826,15824,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,827,15224,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,828,15225,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,829,14503,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,830,14510,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,831,15776,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,832,15777,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,833,15821,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,834,15822,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,835,14198,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,836,14197,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,837,16446,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,838,16447,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,839,14905,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,840,14907,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,841,14904,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,842,14906,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,843,14659,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,844,14660,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,845,13326,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,846,14416,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,847,13450,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,848,14031,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,849,16492,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,7,850,16493,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,8,851,1520,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,852,7011,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,7,853,14299,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,854,14389,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,855,15177,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,856,14537,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,857,14758,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,858,14854,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,859,13974,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,860,15021,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,861,15111,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,862,15226,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,863,15773,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,864,15825,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,865,15827,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,866,16340,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,867,16341,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,868,16457,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,869,16458,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,870,11698,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,7,871,11700,250,1,0,0,1,1,0,1,50,0),
|
||||
(10,8,872,4358,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,873,7981,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,874,7267,20,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,875,9958,20,1,0,0,1,1,0,1,0,999),
|
||||
(10,8,876,1548,20,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,877,1613,20,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,878,1026,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,879,5380,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,880,11284,15,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,881,11285,15,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,882,11286,15,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,883,10356,500,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,884,12511,500,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,885,13238,500,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,886,1691,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,887,9708,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,888,11383,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,889,11382,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,890,11381,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,7,891,16348,3000,1,0,0,1,1,0,1,100,0),
|
||||
(10,8,892,11386,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,893,5767,1,10000,0,0,1,1,0,1,0,0),
|
||||
(10,8,894,5765,1,10000,0,0,1,1,0,1,0,0),
|
||||
(10,8,895,5768,1,10000,0,0,1,1,0,1,0,0),
|
||||
(10,8,896,14444,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,897,14443,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,898,14445,10,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,899,15068,500,1,0,0,1,1,0,1,20,0),
|
||||
(10,7,900,16532,1000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,901,100,1,10000,0,0,1,1,0,1,0,0),
|
||||
(10,8,902,11243,1,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,903,101,1,10000,0,0,1,1,0,1,0,0),
|
||||
(10,7,904,14368,3000,1,0,0,1,1,0,1,50,0),
|
||||
(10,8,905,8943,1,20,0,0,1,1,0,1,0,0),
|
||||
(10,7,906,1622,3000,1,0,0,1,1,0,1,0,0),
|
||||
(10,8,907,8953,1,20,0,0,1,1,0,1,0,0),
|
||||
(10,8,908,13693,1,20,0,0,1,1,0,1,0,0),
|
||||
(10,8,909,8949,1,20,0,0,1,1,0,1,0,0),
|
||||
(10,8,910,8955,1,20,0,0,1,1,0,1,0,0),
|
||||
(10,7,911,16456,500,1,0,0,1,1,0,1,0,0);
|
||||
|
||||
END;
|
||||
@@ -11,7 +11,8 @@ func Uint8(bf *byteframe.ByteFrame, x string, t bool) {
|
||||
e := japanese.ShiftJIS.NewEncoder()
|
||||
xt, _, err := transform.String(e, x)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
bf.WriteUint8(0)
|
||||
return
|
||||
}
|
||||
x = xt
|
||||
}
|
||||
@@ -24,7 +25,8 @@ func Uint16(bf *byteframe.ByteFrame, x string, t bool) {
|
||||
e := japanese.ShiftJIS.NewEncoder()
|
||||
xt, _, err := transform.String(e, x)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
bf.WriteUint16(0)
|
||||
return
|
||||
}
|
||||
x = xt
|
||||
}
|
||||
@@ -37,7 +39,8 @@ func Uint32(bf *byteframe.ByteFrame, x string, t bool) {
|
||||
e := japanese.ShiftJIS.NewEncoder()
|
||||
xt, _, err := transform.String(e, x)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
bf.WriteUint32(0)
|
||||
return
|
||||
}
|
||||
x = xt
|
||||
}
|
||||
|
||||
@@ -106,7 +106,7 @@ func PaddedString(x string, size uint, t bool) []byte {
|
||||
e := japanese.ShiftJIS.NewEncoder()
|
||||
xt, _, err := transform.String(e, x)
|
||||
if err != nil {
|
||||
panic(err)
|
||||
return make([]byte, size)
|
||||
}
|
||||
x = xt
|
||||
}
|
||||
@@ -120,7 +120,11 @@ func CSVAdd(csv string, v int) string {
|
||||
if len(csv) == 0 {
|
||||
return strconv.Itoa(v)
|
||||
}
|
||||
return csv + "," + strconv.Itoa(v)
|
||||
if CSVContains(csv, v) {
|
||||
return csv
|
||||
} else {
|
||||
return csv + "," + strconv.Itoa(v)
|
||||
}
|
||||
}
|
||||
|
||||
func CSVRemove(csv string, v int) string {
|
||||
|
||||
132
config.json
132
config.json
@@ -1,84 +1,114 @@
|
||||
{
|
||||
"host_ip": "127.0.0.1",
|
||||
"bin_path": "bin",
|
||||
"devmode": true,
|
||||
"devmodeoptions": {
|
||||
"serverName" : "",
|
||||
"hideLoginNotice": false,
|
||||
"loginNotice": "<BODY><CENTER><SIZE_3><C_4>Welcome to Erupe SU9 (Patch 1)!<BR><BODY><LEFT><SIZE_2><C_5>Erupe is experimental software<C_7>, we are not liable for any<BR><BODY>issues caused by installing the software!<BR><BODY><BR><BODY><C_4>■Report bugs on Discord!<C_7><BR><BODY><BR><BODY><C_4>■Test everything!<C_7><BR><BODY><BR><BODY><C_4>■Don't talk to softlocking NPCs!<C_7><BR><BODY><BR><BODY><C_4>■Fork the code on GitHub!<C_7><BR><BODY><BR><BODY>Thank you to all of the contributors,<BR><BODY><BR><BODY>this wouldn't exist without you.",
|
||||
"cleandb": false,
|
||||
"maxlauncherhr": false,
|
||||
"Host": "127.0.0.1",
|
||||
"BinPath": "bin",
|
||||
"DisableSoftCrash": false,
|
||||
"FeaturedWeapons": 2,
|
||||
"DevMode": true,
|
||||
"DevModeOptions": {
|
||||
"AutoCreateAccount": true,
|
||||
"EnableLauncherServer": false,
|
||||
"HideLoginNotice": false,
|
||||
"LoginNotice": "<BODY><CENTER><SIZE_3><C_4>Welcome to Erupe SU9.1 Beta!<BR><BODY><LEFT><SIZE_2><C_5>Erupe is experimental software<C_7>, we are not liable for any<BR><BODY>issues caused by installing the software!<BR><BODY><BR><BODY><C_4>■Report bugs on Discord!<C_7><BR><BODY><BR><BODY><C_4>■Test everything!<C_7><BR><BODY><BR><BODY><C_4>■Don't talk to softlocking NPCs!<C_7><BR><BODY><BR><BODY><C_4>■Fork the code on GitHub!<C_7><BR><BODY><BR><BODY>Thank you to all of the contributors,<BR><BODY><BR><BODY>this wouldn't exist without you.",
|
||||
"CleanDB": false,
|
||||
"MaxLauncherHR": false,
|
||||
"LogInboundMessages": false,
|
||||
"LogOutboundMessages": false,
|
||||
"MaxHexdumpLength": 256,
|
||||
"Event": 0,
|
||||
"DivaEvent": 0,
|
||||
"FestaEvent": 0,
|
||||
"FestaEvent": -1,
|
||||
"TournamentEvent": 0,
|
||||
"MezFesEvent": true,
|
||||
"MezFesAlt": false,
|
||||
"DisableMailItems": true,
|
||||
"DisableTokenCheck": false,
|
||||
"QuestDebugTools": false,
|
||||
"SaveDumps": {
|
||||
"Enabled": true,
|
||||
"OutputDir": "savedata"
|
||||
}
|
||||
},
|
||||
"discord": {
|
||||
"enabled": false,
|
||||
"bottoken": "",
|
||||
"realtimeChannelID": "",
|
||||
"serverId": "",
|
||||
"devRoles": [],
|
||||
"devMode": false
|
||||
"Discord": {
|
||||
"Enabled": false,
|
||||
"BotToken": "",
|
||||
"RealtimeChannelID": ""
|
||||
},
|
||||
"database": {
|
||||
"host": "localhost",
|
||||
"port": 5432,
|
||||
"user": "postgres",
|
||||
"password": "",
|
||||
"database": "erupe"
|
||||
"Commands": [
|
||||
{
|
||||
"Name": "Rights",
|
||||
"Enabled": true,
|
||||
"Prefix": "!rights"
|
||||
}, {
|
||||
"Name": "Raviente",
|
||||
"Enabled": true,
|
||||
"Prefix": "!ravi"
|
||||
}, {
|
||||
"Name": "Teleport",
|
||||
"Enabled": false,
|
||||
"Prefix": "!tele"
|
||||
}, {
|
||||
"Name": "Reload",
|
||||
"Enabled": true,
|
||||
"Prefix": "!reload"
|
||||
}, {
|
||||
"Name": "KeyQuest",
|
||||
"Enabled": false,
|
||||
"Prefix": "!kqf"
|
||||
}
|
||||
],
|
||||
"Database": {
|
||||
"Host": "localhost",
|
||||
"Port": 5432,
|
||||
"User": "postgres",
|
||||
"Password": "",
|
||||
"Database": "erupe"
|
||||
},
|
||||
"launcher": {
|
||||
"port": 80,
|
||||
"Launcher": {
|
||||
"Enabled": false,
|
||||
"Port": 80,
|
||||
"UseOriginalLauncherFiles": false
|
||||
},
|
||||
"sign": {
|
||||
"port": 53312
|
||||
"Sign": {
|
||||
"Enabled": true,
|
||||
"Port": 53312
|
||||
},
|
||||
"entrance": {
|
||||
"port": 53310,
|
||||
"entries": [
|
||||
"Channel": {
|
||||
"Enabled": true
|
||||
},
|
||||
"Entrance": {
|
||||
"Enabled": true,
|
||||
"Port": 53310,
|
||||
"Entries": [
|
||||
{
|
||||
"name": "Newbie", "description": "", "ip": "", "type": 3, "recommended": 2, "allowedclientflags": 0,
|
||||
"channels": [
|
||||
{ "port": 54001, "MaxPlayers": 100 },
|
||||
{ "port": 54002, "MaxPlayers": 100 }
|
||||
"Name": "Newbie", "Description": "", "IP": "", "Type": 3, "Recommended": 2, "AllowedClientFlags": 0,
|
||||
"Channels": [
|
||||
{ "Port": 54001, "MaxPlayers": 100 },
|
||||
{ "Port": 54002, "MaxPlayers": 100 }
|
||||
]
|
||||
}, {
|
||||
"name": "Normal", "description": "", "ip": "", "type": 1, "recommended": 0, "allowedclientflags": 0,
|
||||
"channels": [
|
||||
{ "port": 54003, "MaxPlayers": 100 },
|
||||
{ "port": 54004, "MaxPlayers": 100 }
|
||||
"Name": "Normal", "Description": "", "IP": "", "Type": 1, "Recommended": 0, "AllowedClientFlags": 0,
|
||||
"Channels": [
|
||||
{ "Port": 54003, "MaxPlayers": 100 },
|
||||
{ "Port": 54004, "MaxPlayers": 100 }
|
||||
]
|
||||
}, {
|
||||
"name": "Cities", "description": "", "ip": "", "type": 2, "recommended": 0, "allowedclientflags": 0,
|
||||
"channels": [
|
||||
{ "port": 54005, "MaxPlayers": 100 }
|
||||
"Name": "Cities", "Description": "", "IP": "", "Type": 2, "Recommended": 0, "AllowedClientFlags": 0,
|
||||
"Channels": [
|
||||
{ "Port": 54005, "MaxPlayers": 100 }
|
||||
]
|
||||
}, {
|
||||
"name": "Tavern", "description": "", "ip": "", "type": 4, "recommended": 0, "allowedclientflags": 0,
|
||||
"channels": [
|
||||
{ "port": 54006, "MaxPlayers": 100 }
|
||||
"Name": "Tavern", "Description": "", "IP": "", "Type": 4, "Recommended": 0, "AllowedClientFlags": 0,
|
||||
"Channels": [
|
||||
{ "Port": 54006, "MaxPlayers": 100 }
|
||||
]
|
||||
}, {
|
||||
"name": "Return", "description": "", "ip": "", "type": 5, "recommended": 0, "allowedclientflags": 0,
|
||||
"channels": [
|
||||
{ "port": 54007, "MaxPlayers": 100 }
|
||||
"Name": "Return", "Description": "", "IP": "", "Type": 5, "Recommended": 0, "AllowedClientFlags": 0,
|
||||
"Channels": [
|
||||
{ "Port": 54007, "MaxPlayers": 100 }
|
||||
]
|
||||
}, {
|
||||
"name": "MezFes", "description": "", "ip": "", "type": 6, "recommended": 6, "allowedclientflags": 0,
|
||||
"channels": [
|
||||
{ "port": 54008, "MaxPlayers": 100 }
|
||||
"Name": "MezFes", "Description": "", "IP": "", "Type": 6, "Recommended": 6, "AllowedClientFlags": 0,
|
||||
"Channels": [
|
||||
{ "Port": 54008, "MaxPlayers": 100 }
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
@@ -1,34 +1,40 @@
|
||||
package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/spf13/viper"
|
||||
)
|
||||
|
||||
// Config holds the global server-wide config.
|
||||
type Config struct {
|
||||
HostIP string `mapstructure:"host_ip"`
|
||||
BinPath string `mapstructure:"bin_path"`
|
||||
DevMode bool
|
||||
Host string `mapstructure:"Host"`
|
||||
BinPath string `mapstructure:"BinPath"`
|
||||
DisableSoftCrash bool // Disables the 'Press Return to exit' dialog allowing scripts to reboot the server automatically
|
||||
FeaturedWeapons int // Number of Active Feature weapons to generate daily
|
||||
DevMode bool
|
||||
|
||||
DevModeOptions DevModeOptions
|
||||
Discord Discord
|
||||
Commands []Command
|
||||
Database Database
|
||||
Launcher Launcher
|
||||
Sign Sign
|
||||
Channel Channel
|
||||
Entrance Entrance
|
||||
}
|
||||
|
||||
// DevModeOptions holds various debug/temporary options for use while developing Erupe.
|
||||
type DevModeOptions struct {
|
||||
ServerName string // To get specific instance server about (Current Players/Event Week)
|
||||
AutoCreateAccount bool // Automatically create accounts if they don't exist
|
||||
HideLoginNotice bool // Hide the Erupe notice on login
|
||||
LoginNotice string // MHFML string of the login notice displayed
|
||||
CleanDB bool // Automatically wipes the DB on server reset.
|
||||
MaxLauncherHR bool // Sets the HR returned in the launcher to HR9 so that you can join non-beginner worlds.
|
||||
FixedStageID bool // Causes all move_stage to use the ID sl1Ns200p0a0u0 to get you into all stages
|
||||
MaxLauncherHR bool // Sets the HR returned in the launcher to HR7 so that you can join non-beginner worlds.
|
||||
LogInboundMessages bool // Log all messages sent to the server
|
||||
LogOutboundMessages bool // Log all messages sent to the clients
|
||||
MaxHexdumpLength int // Maximum number of bytes printed when logs are enabled
|
||||
@@ -36,8 +42,10 @@ type DevModeOptions struct {
|
||||
FestaEvent int // Hunter's Festa event status
|
||||
TournamentEvent int // VS Tournament event status
|
||||
MezFesEvent bool // MezFes status
|
||||
MezFesAlt bool // Swaps out Volpakkun for Tokotoko
|
||||
DisableTokenCheck bool // Disables checking login token exists in the DB (security risk!)
|
||||
DisableMailItems bool // Hack to prevent english versions of MHF from crashing
|
||||
QuestDebugTools bool // Enable various quest debug logs
|
||||
SaveDumps SaveDumpOptions
|
||||
}
|
||||
|
||||
@@ -50,10 +58,14 @@ type SaveDumpOptions struct {
|
||||
type Discord struct {
|
||||
Enabled bool
|
||||
BotToken string
|
||||
ServerID string
|
||||
RealtimeChannelID string
|
||||
DevRoles []string
|
||||
DevMode bool
|
||||
}
|
||||
|
||||
// Command is a channelserver chat command
|
||||
type Command struct {
|
||||
Name string
|
||||
Enabled bool
|
||||
Prefix string
|
||||
}
|
||||
|
||||
// Database holds the postgres database config.
|
||||
@@ -67,17 +79,24 @@ type Database struct {
|
||||
|
||||
// Launcher holds the launcher server config.
|
||||
type Launcher struct {
|
||||
Enabled bool
|
||||
Port int
|
||||
UseOriginalLauncherFiles bool
|
||||
}
|
||||
|
||||
// Sign holds the sign server config.
|
||||
type Sign struct {
|
||||
Port int
|
||||
Enabled bool
|
||||
Port int
|
||||
}
|
||||
|
||||
type Channel struct {
|
||||
Enabled bool
|
||||
}
|
||||
|
||||
// Entrance holds the entrance server config.
|
||||
type Entrance struct {
|
||||
Enabled bool
|
||||
Port uint16
|
||||
Entries []EntranceServerInfo
|
||||
}
|
||||
@@ -104,6 +123,17 @@ type EntranceChannelInfo struct {
|
||||
CurrentPlayers uint16
|
||||
}
|
||||
|
||||
var ErupeConfig *Config
|
||||
|
||||
func init() {
|
||||
var err error
|
||||
ErupeConfig, err = LoadConfig()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to load config: %s", err.Error()))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// getOutboundIP4 gets the preferred outbound ip4 of this machine
|
||||
// From https://stackoverflow.com/a/37382208
|
||||
func getOutboundIP4() net.IP {
|
||||
@@ -139,9 +169,26 @@ func LoadConfig() (*Config, error) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
if c.HostIP == "" {
|
||||
c.HostIP = getOutboundIP4().To4().String()
|
||||
if c.Host == "" {
|
||||
c.Host = getOutboundIP4().To4().String()
|
||||
}
|
||||
|
||||
return c, nil
|
||||
}
|
||||
|
||||
func preventClose(text string) {
|
||||
if ErupeConfig.DisableSoftCrash {
|
||||
os.Exit(0)
|
||||
}
|
||||
fmt.Println("\nFailed to start Erupe:\n" + text)
|
||||
go wait()
|
||||
fmt.Println("\nPress Enter/Return to exit...")
|
||||
fmt.Scanln()
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
func wait() {
|
||||
for {
|
||||
time.Sleep(time.Millisecond * 100)
|
||||
}
|
||||
}
|
||||
|
||||
6
go.mod
6
go.mod
@@ -4,16 +4,13 @@ go 1.16
|
||||
|
||||
require (
|
||||
github.com/bwmarrin/discordgo v0.23.2
|
||||
github.com/go-sql-driver/mysql v1.6.0 // indirect
|
||||
github.com/golang/mock v1.6.0 // indirect
|
||||
github.com/gorilla/handlers v1.5.1
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/gorilla/websocket v1.4.2 // indirect
|
||||
github.com/jmoiron/sqlx v1.3.4
|
||||
github.com/lib/pq v1.10.4
|
||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible // indirect
|
||||
github.com/mitchellh/mapstructure v1.4.3 // indirect
|
||||
github.com/pkg/errors v0.9.1 // indirect
|
||||
github.com/sachaos/lottery v0.0.0-20180520074626-61949d99bd96
|
||||
github.com/spf13/viper v1.8.1
|
||||
go.uber.org/atomic v1.9.0 // indirect
|
||||
@@ -22,6 +19,5 @@ require (
|
||||
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e
|
||||
golang.org/x/sys v0.0.0-20211205182925-97ca703d548d // indirect
|
||||
golang.org/x/text v0.3.7
|
||||
golang.org/x/tools v0.1.8 // indirect
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c // indirect
|
||||
golang.org/x/tools v0.1.11-0.20220513221640-090b14e8501f // indirect
|
||||
)
|
||||
|
||||
22
go.sum
22
go.sum
@@ -78,9 +78,8 @@ github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeME
|
||||
github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8=
|
||||
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE=
|
||||
github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA=
|
||||
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
|
||||
github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=
|
||||
@@ -189,9 +188,8 @@ github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfV
|
||||
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
|
||||
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||
github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg=
|
||||
github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=
|
||||
github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=
|
||||
github.com/kr/pretty v0.2.1 h1:Fmg33tUaq4/8ym9TJN1x7sLJnHVwhP33CNkpYV/7rwI=
|
||||
github.com/kr/pretty v0.2.1/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI=
|
||||
github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=
|
||||
github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=
|
||||
github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=
|
||||
@@ -202,9 +200,8 @@ github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaW
|
||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||
github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRUbg=
|
||||
github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
|
||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible h1:gXHsfypPkaMZrKbD5209QV9jbUTJKjyR5WD3HYQSd+U=
|
||||
github.com/mattn/go-sqlite3 v2.0.3+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=
|
||||
github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg=
|
||||
github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc=
|
||||
github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=
|
||||
@@ -222,9 +219,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb
|
||||
github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc=
|
||||
github.com/pelletier/go-toml v1.9.3 h1:zeC5b1GviRUyKYd6OJPvBU/mcVDVoL1OhT17FCt5dSQ=
|
||||
github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c=
|
||||
github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI=
|
||||
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
|
||||
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||
@@ -295,6 +291,7 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
|
||||
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
|
||||
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
|
||||
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
|
||||
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e h1:MUP6MR3rJ7Gk9LEia0LP2ytiH6MuCfs7qYz+47jGdD8=
|
||||
golang.org/x/crypto v0.0.0-20211202192323-5770296d904e/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
|
||||
golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA=
|
||||
@@ -333,7 +330,7 @@ golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
|
||||
golang.org/x/mod v0.5.1/go.mod h1:5OXOZSfqPIIbmVBIIKWRFfZjPR0E5r58TLhUjH0a2Ro=
|
||||
golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4=
|
||||
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
|
||||
@@ -508,8 +505,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f
|
||||
golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0=
|
||||
golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk=
|
||||
golang.org/x/tools v0.1.8 h1:P1HhGGuLW4aAclzjtmJdf0mJOjVUZUzOTqkAkWL+l6w=
|
||||
golang.org/x/tools v0.1.8/go.mod h1:nABZi5QlRsZVlzPpHl034qft6wpY4eDcsTt5AaioBiU=
|
||||
golang.org/x/tools v0.1.11-0.20220513221640-090b14e8501f h1:OKYpQQVE3DKSc3r3zHVzq46vq5YH7x8xpR3/k9ixmUg=
|
||||
golang.org/x/tools v0.1.11-0.20220513221640-090b14e8501f/go.mod h1:SgwaegtQh8clINPpECJMqnxLv9I09HLqnW3RMqW0CA4=
|
||||
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
|
||||
@@ -617,9 +614,8 @@ google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlba
|
||||
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
|
||||
google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc=
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=
|
||||
gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI=
|
||||
gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU=
|
||||
gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
|
||||
|
||||
215
main.go
215
main.go
@@ -2,7 +2,7 @@ package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"math/rand"
|
||||
"net"
|
||||
"os"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
@@ -14,6 +14,7 @@ import (
|
||||
"erupe-ce/server/entranceserver"
|
||||
"erupe-ce/server/launcherserver"
|
||||
"erupe-ce/server/signserver"
|
||||
|
||||
"github.com/jmoiron/sqlx"
|
||||
_ "github.com/lib/pq"
|
||||
"go.uber.org/zap"
|
||||
@@ -29,29 +30,37 @@ func cleanDB(db *sqlx.DB) {
|
||||
}
|
||||
|
||||
func main() {
|
||||
var err error
|
||||
zapLogger, _ := zap.NewDevelopment()
|
||||
defer zapLogger.Sync()
|
||||
logger := zapLogger.Named("main")
|
||||
|
||||
logger.Info("Starting Erupe")
|
||||
logger.Info("Starting Erupe (9.1b)")
|
||||
|
||||
// Load the configuration.
|
||||
erupeConfig, err := config.LoadConfig()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to load config: %s", err.Error()))
|
||||
if config.ErupeConfig.Database.Password == "" {
|
||||
preventClose("Database password is blank")
|
||||
}
|
||||
|
||||
if erupeConfig.Database.Password == "" {
|
||||
preventClose("Database password is blank")
|
||||
if net.ParseIP(config.ErupeConfig.Host) == nil {
|
||||
ips, _ := net.LookupIP(config.ErupeConfig.Host)
|
||||
for _, ip := range ips {
|
||||
if ip != nil {
|
||||
config.ErupeConfig.Host = ip.String()
|
||||
break
|
||||
}
|
||||
}
|
||||
if net.ParseIP(config.ErupeConfig.Host) == nil {
|
||||
preventClose("Invalid host address")
|
||||
}
|
||||
}
|
||||
|
||||
// Discord bot
|
||||
var discordBot *discordbot.DiscordBot = nil
|
||||
|
||||
if erupeConfig.Discord.Enabled {
|
||||
bot, err := discordbot.NewDiscordBot(discordbot.DiscordBotOptions{
|
||||
if config.ErupeConfig.Discord.Enabled {
|
||||
bot, err := discordbot.NewDiscordBot(discordbot.Options{
|
||||
Logger: logger,
|
||||
Config: erupeConfig,
|
||||
Config: config.ErupeConfig,
|
||||
})
|
||||
|
||||
if err != nil {
|
||||
@@ -66,6 +75,7 @@ func main() {
|
||||
}
|
||||
|
||||
discordBot = bot
|
||||
logger.Info("Discord bot is enabled")
|
||||
} else {
|
||||
logger.Info("Discord bot is disabled")
|
||||
}
|
||||
@@ -73,11 +83,11 @@ func main() {
|
||||
// Create the postgres DB pool.
|
||||
connectString := fmt.Sprintf(
|
||||
"host=%s port=%d user=%s password=%s dbname= %s sslmode=disable",
|
||||
erupeConfig.Database.Host,
|
||||
erupeConfig.Database.Port,
|
||||
erupeConfig.Database.User,
|
||||
erupeConfig.Database.Password,
|
||||
erupeConfig.Database.Database,
|
||||
config.ErupeConfig.Database.Host,
|
||||
config.ErupeConfig.Database.Port,
|
||||
config.ErupeConfig.Database.User,
|
||||
config.ErupeConfig.Database.Password,
|
||||
config.ErupeConfig.Database.Database,
|
||||
)
|
||||
|
||||
db, err := sqlx.Open("postgres", connectString)
|
||||
@@ -92,12 +102,12 @@ func main() {
|
||||
}
|
||||
logger.Info("Connected to database")
|
||||
|
||||
// Clear existing tokens
|
||||
// Clear stale data
|
||||
_ = db.MustExec("DELETE FROM sign_sessions")
|
||||
_ = db.MustExec("DELETE FROM servers")
|
||||
|
||||
// Clean the DB if the option is on.
|
||||
if erupeConfig.DevMode && erupeConfig.DevModeOptions.CleanDB {
|
||||
if config.ErupeConfig.DevMode && config.ErupeConfig.DevModeOptions.CleanDB {
|
||||
logger.Info("Cleaning DB")
|
||||
cleanDB(db)
|
||||
logger.Info("Done cleaning DB")
|
||||
@@ -106,83 +116,100 @@ func main() {
|
||||
// Now start our server(s).
|
||||
|
||||
// Launcher HTTP server.
|
||||
launcherServer := launcherserver.NewServer(
|
||||
&launcherserver.Config{
|
||||
Logger: logger.Named("launcher"),
|
||||
ErupeConfig: erupeConfig,
|
||||
DB: db,
|
||||
UseOriginalLauncherFiles: erupeConfig.Launcher.UseOriginalLauncherFiles,
|
||||
})
|
||||
err = launcherServer.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start launcher server: %s", err.Error()))
|
||||
var launcherServer *launcherserver.Server
|
||||
if config.ErupeConfig.Launcher.Enabled {
|
||||
launcherServer = launcherserver.NewServer(
|
||||
&launcherserver.Config{
|
||||
Logger: logger.Named("launcher"),
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
UseOriginalLauncherFiles: config.ErupeConfig.Launcher.UseOriginalLauncherFiles,
|
||||
})
|
||||
err = launcherServer.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start launcher server: %s", err.Error()))
|
||||
}
|
||||
logger.Info("Started launcher server")
|
||||
}
|
||||
logger.Info("Started launcher server")
|
||||
|
||||
// Entrance server.
|
||||
entranceServer := entranceserver.NewServer(
|
||||
&entranceserver.Config{
|
||||
Logger: logger.Named("entrance"),
|
||||
ErupeConfig: erupeConfig,
|
||||
DB: db,
|
||||
})
|
||||
err = entranceServer.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start entrance server: %s", err.Error()))
|
||||
|
||||
var entranceServer *entranceserver.Server
|
||||
if config.ErupeConfig.Entrance.Enabled {
|
||||
entranceServer = entranceserver.NewServer(
|
||||
&entranceserver.Config{
|
||||
Logger: logger.Named("entrance"),
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
})
|
||||
err = entranceServer.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start entrance server: %s", err.Error()))
|
||||
}
|
||||
logger.Info("Started entrance server")
|
||||
}
|
||||
logger.Info("Started entrance server")
|
||||
|
||||
// Sign server.
|
||||
signServer := signserver.NewServer(
|
||||
&signserver.Config{
|
||||
Logger: logger.Named("sign"),
|
||||
ErupeConfig: erupeConfig,
|
||||
DB: db,
|
||||
})
|
||||
err = signServer.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start sign server: %s", err.Error()))
|
||||
|
||||
var signServer *signserver.Server
|
||||
if config.ErupeConfig.Sign.Enabled {
|
||||
signServer = signserver.NewServer(
|
||||
&signserver.Config{
|
||||
Logger: logger.Named("sign"),
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
})
|
||||
err = signServer.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start sign server: %s", err.Error()))
|
||||
}
|
||||
logger.Info("Started sign server")
|
||||
}
|
||||
logger.Info("Started sign server")
|
||||
|
||||
var channels []*channelserver.Server
|
||||
channelQuery := ""
|
||||
si := 0
|
||||
ci := 0
|
||||
count := 1
|
||||
for _, ee := range erupeConfig.Entrance.Entries {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
// Randomly generate a season for the World
|
||||
season := rand.Intn(3) + 1
|
||||
for _, ce := range ee.Channels {
|
||||
sid := (4096 + si*256) + (16 + ci)
|
||||
c := *channelserver.NewServer(&channelserver.Config{
|
||||
ID: uint16(sid),
|
||||
Logger: logger.Named("channel-" + fmt.Sprint(count)),
|
||||
ErupeConfig: erupeConfig,
|
||||
DB: db,
|
||||
DiscordBot: discordBot,
|
||||
})
|
||||
err = c.Start(int(ce.Port))
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start channel server: %s", err.Error()))
|
||||
} else {
|
||||
channelQuery += fmt.Sprintf("INSERT INTO servers (server_id, season, current_players) VALUES (%d, %d, 0);", sid, season)
|
||||
channels = append(channels, &c)
|
||||
logger.Info(fmt.Sprintf("Started channel server %d on port %d", count, ce.Port))
|
||||
ci++
|
||||
count++
|
||||
|
||||
if config.ErupeConfig.Channel.Enabled {
|
||||
channelQuery := ""
|
||||
si := 0
|
||||
ci := 0
|
||||
count := 1
|
||||
for _, ee := range config.ErupeConfig.Entrance.Entries {
|
||||
for i, ce := range ee.Channels {
|
||||
sid := (4096 + si*256) + (16 + ci)
|
||||
c := *channelserver.NewServer(&channelserver.Config{
|
||||
ID: uint16(sid),
|
||||
Logger: logger.Named("channel-" + fmt.Sprint(count)),
|
||||
ErupeConfig: config.ErupeConfig,
|
||||
DB: db,
|
||||
DiscordBot: discordBot,
|
||||
})
|
||||
if ee.IP == "" {
|
||||
c.IP = config.ErupeConfig.Host
|
||||
} else {
|
||||
c.IP = ee.IP
|
||||
}
|
||||
c.Port = ce.Port
|
||||
err = c.Start()
|
||||
if err != nil {
|
||||
preventClose(fmt.Sprintf("Failed to start channel server: %s", err.Error()))
|
||||
} else {
|
||||
channelQuery += fmt.Sprintf(`INSERT INTO servers (server_id, season, current_players, world_name, world_description, land) VALUES (%d, %d, 0, '%s', '%s', %d);`, sid, si%3, ee.Name, ee.Description, i+1)
|
||||
channels = append(channels, &c)
|
||||
logger.Info(fmt.Sprintf("Started channel server %d on port %d", count, ce.Port))
|
||||
ci++
|
||||
count++
|
||||
}
|
||||
}
|
||||
ci = 0
|
||||
si++
|
||||
}
|
||||
ci = 0
|
||||
si++
|
||||
}
|
||||
|
||||
// Register all servers in DB
|
||||
_ = db.MustExec(channelQuery)
|
||||
// Register all servers in DB
|
||||
_ = db.MustExec(channelQuery)
|
||||
|
||||
for _, c := range channels {
|
||||
c.Channels = channels
|
||||
for _, c := range channels {
|
||||
c.Channels = channels
|
||||
}
|
||||
}
|
||||
|
||||
// Wait for exit or interrupt with ctrl+C.
|
||||
@@ -192,12 +219,23 @@ func main() {
|
||||
|
||||
logger.Info("Trying to shutdown gracefully")
|
||||
|
||||
for _, c := range channels {
|
||||
c.Shutdown()
|
||||
if config.ErupeConfig.Channel.Enabled {
|
||||
for _, c := range channels {
|
||||
c.Shutdown()
|
||||
}
|
||||
}
|
||||
|
||||
if config.ErupeConfig.Sign.Enabled {
|
||||
signServer.Shutdown()
|
||||
}
|
||||
|
||||
if config.ErupeConfig.Entrance.Enabled {
|
||||
entranceServer.Shutdown()
|
||||
}
|
||||
|
||||
if config.ErupeConfig.Launcher.Enabled {
|
||||
launcherServer.Shutdown()
|
||||
}
|
||||
signServer.Shutdown()
|
||||
entranceServer.Shutdown()
|
||||
launcherServer.Shutdown()
|
||||
|
||||
time.Sleep(1 * time.Second)
|
||||
}
|
||||
@@ -209,6 +247,9 @@ func wait() {
|
||||
}
|
||||
|
||||
func preventClose(text string) {
|
||||
if config.ErupeConfig.DisableSoftCrash {
|
||||
os.Exit(0)
|
||||
}
|
||||
fmt.Println("\nFailed to start Erupe:\n" + text)
|
||||
go wait()
|
||||
fmt.Println("\nPress Enter/Return to exit...")
|
||||
|
||||
@@ -1,10 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
DROP TABLE IF EXISTS sign_sessions;
|
||||
DROP TABLE IF EXISTS characters;
|
||||
DROP TABLE IF EXISTS users;
|
||||
|
||||
DROP DOMAIN IF EXISTS uint8;
|
||||
DROP DOMAIN IF EXISTS uint16;
|
||||
|
||||
END;
|
||||
@@ -1,37 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE DOMAIN uint8 AS smallint
|
||||
CHECK(VALUE >= 0 AND VALUE <= 255);
|
||||
|
||||
CREATE DOMAIN uint16 AS integer
|
||||
CHECK(VALUE >= 0 AND VALUE <= 65536);
|
||||
|
||||
CREATE TABLE users (
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
username text UNIQUE NOT NULL,
|
||||
password text NOT NULL,
|
||||
item_box bytea
|
||||
);
|
||||
|
||||
CREATE TABLE characters (
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
user_id bigint REFERENCES users(id),
|
||||
is_female boolean,
|
||||
is_new_character boolean,
|
||||
small_gr_level uint8,
|
||||
gr_override_mode boolean,
|
||||
name varchar(15),
|
||||
unk_desc_string varchar(31),
|
||||
gr_override_level uint16,
|
||||
gr_override_unk0 uint8,
|
||||
gr_override_unk1 uint8
|
||||
);
|
||||
|
||||
CREATE TABLE sign_sessions (
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
user_id bigint REFERENCES users(id),
|
||||
auth_token_num bigint,
|
||||
auth_token_str text
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,8 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
DROP COLUMN exp,
|
||||
DROP COLUMN weapon,
|
||||
DROP COLUMN last_login;
|
||||
|
||||
END;
|
||||
@@ -1,8 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
ADD COLUMN exp uint16,
|
||||
ADD COLUMN weapon uint16,
|
||||
ADD COLUMN last_login integer;
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
DROP COLUMN savedata;
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
ADD COLUMN savedata bytea;
|
||||
|
||||
END;
|
||||
@@ -1,13 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
DROP COLUMN decomyset,
|
||||
DROP COLUMN hunternavi,
|
||||
DROP COLUMN otomoairou,
|
||||
DROP COLUMN partner,
|
||||
DROP COLUMN platebox,
|
||||
DROP COLUMN platedata,
|
||||
DROP COLUMN platemyset,
|
||||
DROP COLUMN rengokudata;
|
||||
|
||||
END;
|
||||
@@ -1,14 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
ADD COLUMN decomyset bytea,
|
||||
ADD COLUMN hunternavi bytea,
|
||||
ADD COLUMN otomoairou bytea,
|
||||
ADD COLUMN partner bytea,
|
||||
ADD COLUMN platebox bytea,
|
||||
ADD COLUMN platedata bytea,
|
||||
ADD COLUMN platemyset bytea,
|
||||
ADD COLUMN trophy bytea,
|
||||
ADD COLUMN rengokudata bytea;
|
||||
|
||||
END;
|
||||
@@ -1,5 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
DROP TABLE IF EXISTS questlists;
|
||||
|
||||
END;
|
||||
@@ -1,8 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE questlists (
|
||||
ind int NOT NULL PRIMARY KEY,
|
||||
questlist bytea
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
DROP COLUMN savemercenary;
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
ADD COLUMN savemercenary bytea;
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
DROP TABLE guild_characters;
|
||||
DROP TABLE guilds;
|
||||
|
||||
END;
|
||||
@@ -1,22 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE guilds
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
name varchar(24),
|
||||
created_at timestamp DEFAULT NOW(),
|
||||
leader_id int NOT NULL,
|
||||
main_motto varchar(255) DEFAULT ''
|
||||
);
|
||||
|
||||
CREATE TABLE guild_characters
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
guild_id bigint REFERENCES guilds (id),
|
||||
character_id bigint REFERENCES characters (id),
|
||||
joined_at timestamp DEFAULT NOW()
|
||||
);
|
||||
|
||||
CREATE UNIQUE INDEX guild_character_unique_index ON guild_characters (character_id);
|
||||
|
||||
END;
|
||||
@@ -1,11 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE guilds
|
||||
DROP COLUMN rp;
|
||||
|
||||
ALTER TABLE guild_characters
|
||||
DROP COLUMN is_applicant,
|
||||
DROP COLUMN is_sub_leader,
|
||||
DROP COLUMN order_index;
|
||||
|
||||
END;
|
||||
@@ -1,11 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE guild_characters
|
||||
ADD COLUMN is_applicant bool NOT NULL DEFAULT false,
|
||||
ADD COLUMN is_sub_leader bool NOT NULL DEFAULT false,
|
||||
ADD COLUMN order_index int NOT NULL DEFAULT 1;
|
||||
|
||||
ALTER TABLE guilds
|
||||
ADD COLUMN rp uint16 NOT NULL DEFAULT 0;
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
DROP COLUMN restrict_guild_scout;
|
||||
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
ADD COLUMN restrict_guild_scout bool NOT NULL DEFAULT false;
|
||||
|
||||
END;
|
||||
@@ -1,10 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE guilds
|
||||
DROP COLUMN comment,
|
||||
DROP COLUMN festival_colour,
|
||||
DROP COLUMN guild_hall;
|
||||
|
||||
DROP TYPE festival_colour;
|
||||
|
||||
END;
|
||||
@@ -1,11 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TYPE festival_colour AS ENUM ('none', 'red', 'blue');
|
||||
|
||||
ALTER TABLE guilds
|
||||
ADD COLUMN comment varchar(255) NOT NULL DEFAULT '',
|
||||
ADD COLUMN festival_colour festival_colour DEFAULT 'none',
|
||||
ADD COLUMN guild_hall int DEFAULT 0;
|
||||
|
||||
|
||||
END;
|
||||
@@ -1,24 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE characters
|
||||
DROP COLUMN minidata,
|
||||
DROP COLUMN gacha_trial,
|
||||
DROP COLUMN gacha_prem,
|
||||
DROP COLUMN gacha_items,
|
||||
DROP COLUMN daily_time,
|
||||
DROP COLUMN frontier_points,
|
||||
DROP COLUMN netcafe_points,
|
||||
DROP COLUMN house_info,
|
||||
DROP COLUMN login_boost,
|
||||
DROP COLUMN skin_hist,
|
||||
DROP COLUMN gcp;
|
||||
|
||||
DROP TABLE fpoint_items;
|
||||
DROP TABLE gacha_shop;
|
||||
DROP TABLE gacha_shop_items;
|
||||
DROP TABLE lucky_box_state;
|
||||
DROP TABLE stepup_state;
|
||||
DROP TABLE normal_shop_items;
|
||||
DROP TABLE shop_item_state;
|
||||
|
||||
END;
|
||||
@@ -1,100 +0,0 @@
|
||||
BEGIN;
|
||||
ALTER TABLE characters
|
||||
ADD COLUMN minidata bytea,
|
||||
ADD COLUMN gacha_trial int,
|
||||
ADD COLUMN gacha_prem int,
|
||||
ADD COLUMN gacha_items bytea,
|
||||
ADD COLUMN daily_time timestamp,
|
||||
ADD COLUMN frontier_points int,
|
||||
ADD COLUMN netcafe_points int,
|
||||
ADD COLUMN house_info bytea,
|
||||
ADD COLUMN login_boost bytea,
|
||||
ADD COLUMN skin_hist bytea,
|
||||
ADD COLUMN kouryou_point int,
|
||||
ADD COLUMN gcp int;
|
||||
|
||||
CREATE TABLE fpoint_items
|
||||
(
|
||||
hash int,
|
||||
itemType uint8,
|
||||
itemID uint16,
|
||||
quant uint16,
|
||||
itemValue uint16,
|
||||
tradeType uint8
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE gacha_shop
|
||||
(
|
||||
hash bigint,
|
||||
reqGR int,
|
||||
reqHR int,
|
||||
gachaName varchar(255),
|
||||
gachaLink0 varchar(255),
|
||||
gachaLink1 varchar(255),
|
||||
gachaLink2 varchar(255),
|
||||
extraIcon int,
|
||||
gachaType int,
|
||||
hideFlag bool
|
||||
);
|
||||
|
||||
CREATE TABLE gacha_shop_items
|
||||
(
|
||||
shophash int,
|
||||
entryType uint8,
|
||||
itemhash int UNIQUE NOT NULL,
|
||||
currType uint8,
|
||||
currNumber uint16,
|
||||
currQuant uint16,
|
||||
percentage uint16,
|
||||
rarityIcon uint8,
|
||||
rollsCount uint8,
|
||||
itemCount uint8,
|
||||
dailyLimit uint8,
|
||||
itemType int[],
|
||||
itemId int[],
|
||||
quantity int[]
|
||||
);
|
||||
|
||||
CREATE TABLE lucky_box_state
|
||||
(
|
||||
char_id bigint REFERENCES characters (id),
|
||||
shophash int UNIQUE NOT NULL,
|
||||
used_itemhash int[]
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE stepup_state
|
||||
(
|
||||
char_id bigint REFERENCES characters (id),
|
||||
shophash int UNIQUE NOT NULL,
|
||||
step_progression int,
|
||||
step_time timestamp
|
||||
);
|
||||
|
||||
CREATE TABLE normal_shop_items
|
||||
(
|
||||
shoptype int,
|
||||
shopid int,
|
||||
itemhash int UNIQUE NOT NULL,
|
||||
itemID uint16,
|
||||
Points uint16,
|
||||
TradeQuantity uint16,
|
||||
rankReqLow uint16,
|
||||
rankReqHigh uint16,
|
||||
rankReqG uint16,
|
||||
storeLevelReq uint16,
|
||||
maximumQuantity uint16,
|
||||
boughtQuantity uint16,
|
||||
roadFloorsRequired uint16,
|
||||
weeklyFatalisKills uint16
|
||||
);
|
||||
|
||||
CREATE TABLE shop_item_state
|
||||
(
|
||||
char_id bigint REFERENCES characters (id),
|
||||
itemhash int UNIQUE NOT NULL,
|
||||
usedquantity int
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,5 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
DROP TABLE login_boost_state;
|
||||
|
||||
END;
|
||||
@@ -1,13 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE login_boost_state
|
||||
(
|
||||
char_id bigint REFERENCES characters (id),
|
||||
week_req uint8,
|
||||
week_count uint8,
|
||||
available bool,
|
||||
end_time int,
|
||||
CONSTRAINT id_week UNIQUE(char_id, week_req)
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,12 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE shop_item_state DROP CONSTRAINT shop_item_state_id_itemhash;
|
||||
ALTER TABLE shop_item_state ADD CONSTRAINT shop_item_state_itemhash_key UNIQUE (itemhash);
|
||||
|
||||
ALTER TABLE stepup_state DROP CONSTRAINT stepup_state_id_shophash;
|
||||
ALTER TABLE stepup_state ADD CONSTRAINT stepup_state_shophash_key UNIQUE (shophash);
|
||||
|
||||
ALTER TABLE lucky_box_state DROP CONSTRAINT lucky_box_state_id_shophash;
|
||||
ALTER TABLE lucky_box_state ADD CONSTRAINT lucky_box_state_shophash_key UNIQUE (shophash);
|
||||
|
||||
END;
|
||||
@@ -1,12 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE shop_item_state DROP CONSTRAINT shop_item_state_itemhash_key;
|
||||
ALTER TABLE shop_item_state ADD CONSTRAINT shop_item_state_id_itemhash UNIQUE(char_id, itemhash);
|
||||
|
||||
ALTER TABLE stepup_state DROP CONSTRAINT stepup_state_shophash_key;
|
||||
ALTER TABLE stepup_state ADD CONSTRAINT stepup_state_id_shophash UNIQUE(char_id, shophash);
|
||||
|
||||
ALTER TABLE lucky_box_state DROP CONSTRAINT lucky_box_state_shophash_key;
|
||||
ALTER TABLE lucky_box_state ADD CONSTRAINT lucky_box_state_id_shophash UNIQUE(char_id, shophash);
|
||||
|
||||
END;
|
||||
@@ -1,18 +0,0 @@
|
||||
BEGIN;
|
||||
ALTER TABLE guild_characters
|
||||
RENAME COLUMN avoid_leadership TO is_sub_leader;
|
||||
|
||||
ALTER TABLE guild_characters
|
||||
ADD COLUMN is_applicant bool NOT NULL DEFAULT false;
|
||||
|
||||
ALTER TABLE guilds
|
||||
DROP COLUMN icon,
|
||||
ALTER COLUMN main_motto TYPE varchar USING '',
|
||||
DROP COLUMN sub_motto;
|
||||
|
||||
ALTER TABLE guilds
|
||||
ALTER COLUMN main_motto SET DEFAULT '';
|
||||
|
||||
DROP TABLE guild_applications;
|
||||
DROP TYPE guild_application_type;
|
||||
END;
|
||||
@@ -1,30 +0,0 @@
|
||||
BEGIN;
|
||||
CREATE TYPE guild_application_type AS ENUM ('applied', 'invited');
|
||||
|
||||
CREATE TABLE guild_applications
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
guild_id int NOT NULL REFERENCES guilds (id),
|
||||
character_id int NOT NULL REFERENCES characters (id),
|
||||
actor_id int NOT NULL REFERENCES characters (id),
|
||||
application_type guild_application_type NOT NULL,
|
||||
created_at timestamp NOT NULL DEFAULT now(),
|
||||
CONSTRAINT guild_application_character_id UNIQUE (guild_id, character_id)
|
||||
);
|
||||
|
||||
CREATE INDEX guild_application_type_index ON guild_applications (application_type);
|
||||
|
||||
ALTER TABLE guild_characters
|
||||
DROP COLUMN is_applicant;
|
||||
|
||||
ALTER TABLE guild_characters
|
||||
RENAME COLUMN is_sub_leader TO avoid_leadership;
|
||||
|
||||
ALTER TABLE guilds
|
||||
ALTER COLUMN main_motto SET DEFAULT 0;
|
||||
|
||||
ALTER TABLE guilds
|
||||
ADD COLUMN icon bytea,
|
||||
ADD COLUMN sub_motto int DEFAULT 0,
|
||||
ALTER COLUMN main_motto TYPE int USING 0;
|
||||
END;
|
||||
@@ -1,3 +0,0 @@
|
||||
BEGIN;
|
||||
DROP TABLE mail;
|
||||
END;
|
||||
@@ -1,19 +0,0 @@
|
||||
BEGIN;
|
||||
CREATE TABLE mail
|
||||
(
|
||||
id SERIAL NOT NULL PRIMARY KEY,
|
||||
sender_id INT NOT NULL REFERENCES characters (id),
|
||||
recipient_id INT NOT NULL REFERENCES characters (id),
|
||||
subject VARCHAR NOT NULL DEFAULT '',
|
||||
body VARCHAR NOT NULL DEFAULT '',
|
||||
read BOOL NOT NULL DEFAULT FALSE,
|
||||
attached_item_received BOOL NOT NULL DEFAULT FALSE,
|
||||
attached_item INT DEFAULT NULL,
|
||||
attached_item_amount INT NOT NULL DEFAULT 1,
|
||||
is_guild_invite BOOL NOT NULL DEFAULT FALSE,
|
||||
created_at TIMESTAMP NOT NULL DEFAULT NOW(),
|
||||
deleted BOOL NOT NULL DEFAULT FALSE
|
||||
);
|
||||
|
||||
CREATE INDEX mail_recipient_deleted_created_id_index ON mail (recipient_id, deleted, created_at DESC, id DESC);
|
||||
END;
|
||||
@@ -1,3 +0,0 @@
|
||||
BEGIN;
|
||||
DROP TABLE public.servers;
|
||||
END;
|
||||
@@ -1,21 +0,0 @@
|
||||
BEGIN;
|
||||
-- Table: public.servers
|
||||
|
||||
-- DROP TABLE IF EXISTS public.servers;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.servers
|
||||
(
|
||||
server_id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||||
server_name text COLLATE pg_catalog."default",
|
||||
season integer,
|
||||
current_players integer,
|
||||
event_id integer,
|
||||
event_expiration integer,
|
||||
CONSTRAINT servers_pkey PRIMARY KEY (server_id)
|
||||
)
|
||||
|
||||
TABLESPACE pg_default;
|
||||
|
||||
ALTER TABLE IF EXISTS public.servers
|
||||
OWNER to postgres;
|
||||
END;
|
||||
@@ -1,6 +0,0 @@
|
||||
BEGIN;
|
||||
DROP TABLE public.account_ban;
|
||||
DROP TABLE public.account_history;
|
||||
DROP TABLE public.account_moderation;
|
||||
DROP TABLE public.account_sub;
|
||||
END;
|
||||
@@ -1,45 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.account_ban
|
||||
(
|
||||
user_id integer NOT NULL,
|
||||
title text COLLATE pg_catalog."default",
|
||||
reason text COLLATE pg_catalog."default",
|
||||
date text COLLATE pg_catalog."default",
|
||||
pass_origin text COLLATE pg_catalog."default",
|
||||
pass_block text COLLATE pg_catalog."default",
|
||||
CONSTRAINT ban_pkey PRIMARY KEY (user_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.account_history
|
||||
(
|
||||
report_id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||||
user_id integer,
|
||||
title text COLLATE pg_catalog."default",
|
||||
reason text COLLATE pg_catalog."default",
|
||||
date date,
|
||||
CONSTRAINT account_history_pkey PRIMARY KEY (report_id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.account_moderation
|
||||
(
|
||||
id integer NOT NULL GENERATED ALWAYS AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||||
username text COLLATE pg_catalog."default",
|
||||
password text COLLATE pg_catalog."default",
|
||||
type text COLLATE pg_catalog."default",
|
||||
CONSTRAINT account_moderation_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.account_sub
|
||||
(
|
||||
id integer NOT NULL GENERATED BY DEFAULT AS IDENTITY ( INCREMENT 1 START 1 MINVALUE 1 MAXVALUE 2147483647 CACHE 1 ),
|
||||
discord_id text COLLATE pg_catalog."default",
|
||||
erupe_account text COLLATE pg_catalog."default",
|
||||
erupe_password text COLLATE pg_catalog."default",
|
||||
date_inscription date,
|
||||
country text COLLATE pg_catalog."default",
|
||||
presentation text COLLATE pg_catalog."default",
|
||||
CONSTRAINT account_auth_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,3 +0,0 @@
|
||||
BEGIN;
|
||||
DROP TABLE public.event_week;
|
||||
END;
|
||||
@@ -1,11 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.event_week
|
||||
(
|
||||
id integer NOT NULL,
|
||||
event_id integer NOT NULL,
|
||||
date_expiration integer NOT NULL,
|
||||
CONSTRAINT event_week_pkey PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,3 +0,0 @@
|
||||
BEGIN;
|
||||
DROP TABLE public.gook;
|
||||
END;
|
||||
@@ -1,20 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.gook
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
gook0 bytea,
|
||||
gook1 bytea,
|
||||
gook2 bytea,
|
||||
gook3 bytea,
|
||||
gook4 bytea,
|
||||
gook5 bytea,
|
||||
gook0status boolean,
|
||||
gook1status boolean,
|
||||
gook2status boolean,
|
||||
gook3status boolean,
|
||||
gook4status boolean,
|
||||
gook5status boolean
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -1,3 +0,0 @@
|
||||
BEGIN;
|
||||
DROP TABLE public.history;
|
||||
END;
|
||||
@@ -1,13 +0,0 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.history
|
||||
(
|
||||
user_id integer,
|
||||
admin_id integer,
|
||||
report_id integer NOT NULL,
|
||||
title text COLLATE pg_catalog."default",
|
||||
reason text COLLATE pg_catalog."default",
|
||||
CONSTRAINT history_pkey PRIMARY KEY (report_id)
|
||||
);
|
||||
|
||||
END;
|
||||
@@ -16,11 +16,7 @@ func (m MsgBinMailNotify) Parse(bf *byteframe.ByteFrame) error {
|
||||
|
||||
func (m MsgBinMailNotify) Build(bf *byteframe.ByteFrame) error {
|
||||
bf.WriteUint8(0x01) // Unk
|
||||
byteName, _ := stringsupport.ConvertUTF8ToShiftJIS(m.SenderName)
|
||||
|
||||
bf.WriteBytes(byteName)
|
||||
bf.WriteBytes(make([]byte, 21-len(byteName)))
|
||||
|
||||
bf.WriteBytes(stringsupport.PaddedString(m.SenderName, 21, true))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,21 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfAcquireMonthlyItem represents the MSG_MHF_ACQUIRE_MONTHLY_ITEM
|
||||
type MsgMhfAcquireMonthlyItem struct{}
|
||||
type MsgMhfAcquireMonthlyItem struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint16
|
||||
Unk1 uint16
|
||||
Unk2 uint32
|
||||
Unk3 uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfAcquireMonthlyItem) Opcode() network.PacketID {
|
||||
@@ -18,7 +24,12 @@ func (m *MsgMhfAcquireMonthlyItem) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfAcquireMonthlyItem) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint16()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint32()
|
||||
m.Unk3 = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfAcquireTitle represents the MSG_MHF_ACQUIRE_TITLE
|
||||
type MsgMhfAcquireTitle struct{}
|
||||
type MsgMhfAcquireTitle struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint16
|
||||
Unk1 uint16
|
||||
TitleID uint16
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfAcquireTitle) Opcode() network.PacketID {
|
||||
@@ -18,7 +23,11 @@ func (m *MsgMhfAcquireTitle) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfAcquireTitle) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint16()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.TitleID = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfCheckMonthlyItem represents the MSG_MHF_CHECK_MONTHLY_ITEM
|
||||
type MsgMhfCheckMonthlyItem struct{}
|
||||
type MsgMhfCheckMonthlyItem struct {
|
||||
AckHandle uint32
|
||||
Unk uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfCheckMonthlyItem) Opcode() network.PacketID {
|
||||
@@ -18,7 +21,9 @@ func (m *MsgMhfCheckMonthlyItem) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfCheckMonthlyItem) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,16 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/common/byteframe"
|
||||
)
|
||||
|
||||
// MsgMhfCheckWeeklyStamp represents the MSG_MHF_CHECK_WEEKLY_STAMP
|
||||
type MsgMhfCheckWeeklyStamp struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
StampType string
|
||||
Unk1 bool
|
||||
Unk2 uint16 // Hardcoded 0 in the binary
|
||||
}
|
||||
@@ -22,7 +23,13 @@ func (m *MsgMhfCheckWeeklyStamp) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfCheckWeeklyStamp) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
stampType := bf.ReadUint8()
|
||||
switch stampType {
|
||||
case 1:
|
||||
m.StampType = "hl"
|
||||
case 2:
|
||||
m.StampType = "ex"
|
||||
}
|
||||
m.Unk1 = bf.ReadBool()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
@@ -30,9 +37,5 @@ func (m *MsgMhfCheckWeeklyStamp) Parse(bf *byteframe.ByteFrame, ctx *clientctx.C
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
func (m *MsgMhfCheckWeeklyStamp) Build(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
bf.WriteUint32(m.AckHandle)
|
||||
bf.WriteUint8(m.Unk0)
|
||||
bf.WriteBool(m.Unk1)
|
||||
bf.WriteUint16(m.Unk2)
|
||||
return nil
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfEntryRookieGuild represents the MSG_MHF_ENTRY_ROOKIE_GUILD
|
||||
type MsgMhfEntryRookieGuild struct{}
|
||||
type MsgMhfEntryRookieGuild struct {
|
||||
AckHandle uint32
|
||||
Unk uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfEntryRookieGuild) Opcode() network.PacketID {
|
||||
@@ -18,7 +21,9 @@ func (m *MsgMhfEntryRookieGuild) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfEntryRookieGuild) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -32,6 +32,7 @@ type MsgMhfEnumerateGuild struct {
|
||||
AckHandle uint32
|
||||
Type EnumerateGuildType
|
||||
Page uint8
|
||||
Sorting bool
|
||||
RawDataPayload []byte
|
||||
}
|
||||
|
||||
@@ -45,6 +46,8 @@ func (m *MsgMhfEnumerateGuild) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Cli
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Type = EnumerateGuildType(bf.ReadUint8())
|
||||
m.Page = bf.ReadUint8()
|
||||
m.Sorting = bf.ReadBool()
|
||||
_ = bf.ReadUint8()
|
||||
m.RawDataPayload = bf.DataFromCurrent()
|
||||
bf.Seek(-2, io.SeekEnd)
|
||||
return nil
|
||||
|
||||
@@ -29,8 +29,10 @@ func (m *MsgMhfEnumerateHouse) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Cli
|
||||
m.CharID = bf.ReadUint32()
|
||||
m.Method = bf.ReadUint8()
|
||||
m.Unk = bf.ReadUint16()
|
||||
_ = bf.ReadUint8() // len
|
||||
m.Name = stringsupport.SJISToUTF8(bf.ReadNullTerminatedBytes())
|
||||
lenName := bf.ReadUint8()
|
||||
if lenName > 0 {
|
||||
m.Name = stringsupport.SJISToUTF8(bf.ReadNullTerminatedBytes())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfEnumerateRengokuRanking represents the MSG_MHF_ENUMERATE_RENGOKU_RANKING
|
||||
type MsgMhfEnumerateRengokuRanking struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
Unk1 uint16 // Hardcoded 0 in the binary
|
||||
Unk2 uint16 // Hardcoded 00 01 in the binary
|
||||
AckHandle uint32
|
||||
Leaderboard uint32
|
||||
Unk1 uint16 // Hardcoded 0 in the binary
|
||||
Unk2 uint16 // Hardcoded 00 01 in the binary
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -24,7 +24,7 @@ func (m *MsgMhfEnumerateRengokuRanking) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfEnumerateRengokuRanking) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.Leaderboard = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint16()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfEnumerateWarehouse represents the MSG_MHF_ENUMERATE_WAREHOUSE
|
||||
type MsgMhfEnumerateWarehouse struct{}
|
||||
type MsgMhfEnumerateWarehouse struct {
|
||||
AckHandle uint32
|
||||
BoxType string
|
||||
BoxIndex uint8
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfEnumerateWarehouse) Opcode() network.PacketID {
|
||||
@@ -18,7 +22,17 @@ func (m *MsgMhfEnumerateWarehouse) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfEnumerateWarehouse) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
boxType := bf.ReadUint8()
|
||||
switch boxType {
|
||||
case 0:
|
||||
m.BoxType = "item"
|
||||
case 1:
|
||||
m.BoxType = "equip"
|
||||
}
|
||||
m.BoxIndex = bf.ReadUint8()
|
||||
_ = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,20 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfExchangeWeeklyStamp represents the MSG_MHF_EXCHANGE_WEEKLY_STAMP
|
||||
type MsgMhfExchangeWeeklyStamp struct{}
|
||||
type MsgMhfExchangeWeeklyStamp struct {
|
||||
AckHandle uint32
|
||||
StampType string
|
||||
Unk1 uint8
|
||||
Unk2 uint16
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfExchangeWeeklyStamp) Opcode() network.PacketID {
|
||||
@@ -18,7 +23,17 @@ func (m *MsgMhfExchangeWeeklyStamp) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfExchangeWeeklyStamp) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
stampType := bf.ReadUint8()
|
||||
switch stampType {
|
||||
case 1:
|
||||
m.StampType = "hl"
|
||||
case 2:
|
||||
m.StampType = "ex"
|
||||
}
|
||||
m.Unk1 = bf.ReadUint8()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfGetAchievement represents the MSG_MHF_GET_ACHIEVEMENT
|
||||
type MsgMhfGetAchievement struct{
|
||||
AckHandle uint32
|
||||
Unk0 uint32 // id?
|
||||
Unk1 uint32 // char?
|
||||
type MsgMhfGetAchievement struct {
|
||||
AckHandle uint32
|
||||
CharID uint32
|
||||
Unk1 uint32 // char?
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -22,8 +22,8 @@ func (m *MsgMhfGetAchievement) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfGetAchievement) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.CharID = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfGetGemInfo represents the MSG_MHF_GET_GEM_INFO
|
||||
type MsgMhfGetGemInfo struct{}
|
||||
type MsgMhfGetGemInfo struct {
|
||||
AckHandle uint32
|
||||
Unk uint32
|
||||
Unk1 []byte
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfGetGemInfo) Opcode() network.PacketID {
|
||||
@@ -18,7 +22,10 @@ func (m *MsgMhfGetGemInfo) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfGetGemInfo) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk = bf.ReadUint32()
|
||||
m.Unk1 = bf.ReadBytes(24)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// The server sends different responses based on these values.
|
||||
@@ -13,7 +13,7 @@ const (
|
||||
TowerInfoTypeUnk0 = iota
|
||||
TowerInfoTypeTowerRankPoint
|
||||
TowerInfoTypeGetOwnTowerSkill
|
||||
TowerInfoTypeUnk3
|
||||
TowerInfoTypeGetOwnTowerLevelV3
|
||||
TowerInfoTypeTowerTouhaHistory
|
||||
TowerInfoTypeUnk5
|
||||
)
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfGuildHuntdata represents the MSG_MHF_GUILD_HUNTDATA
|
||||
type MsgMhfGuildHuntdata struct{
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
type MsgMhfGuildHuntdata struct {
|
||||
AckHandle uint32
|
||||
Operation uint8
|
||||
GuildID uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -22,7 +23,10 @@ func (m *MsgMhfGuildHuntdata) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfGuildHuntdata) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Operation = bf.ReadUint8()
|
||||
if m.Operation == 1 {
|
||||
m.GuildID = bf.ReadUint32()
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfInfoJoint represents the MSG_MHF_INFO_JOINT
|
||||
type MsgMhfInfoJoint struct{}
|
||||
type MsgMhfInfoJoint struct {
|
||||
AckHandle uint32
|
||||
AllianceID uint32
|
||||
Unk uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfInfoJoint) Opcode() network.PacketID {
|
||||
@@ -18,7 +22,10 @@ func (m *MsgMhfInfoJoint) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfInfoJoint) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.AllianceID = bf.ReadUint32()
|
||||
m.Unk = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,39 +1,43 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
type OperateGuildAction uint8
|
||||
|
||||
const (
|
||||
OPERATE_GUILD_DISBAND = 0x01
|
||||
OPERATE_GUILD_APPLY = 0x02
|
||||
OPERATE_GUILD_LEAVE = 0x03
|
||||
OPERATE_GUILD_RESIGN = 0x04
|
||||
OPERATE_GUILD_SET_APPLICATION_DENY = 0x05
|
||||
OPERATE_GUILD_SET_APPLICATION_ALLOW = 0x06
|
||||
OPERATE_GUILD_SET_AVOID_LEADERSHIP_TRUE = 0x07
|
||||
OPERATE_GUILD_SET_AVOID_LEADERSHIP_FALSE = 0x08
|
||||
OPERATE_GUILD_UPDATE_COMMENT = 0x09
|
||||
OPERATE_GUILD_DONATE_RANK = 0x0a
|
||||
OPERATE_GUILD_UPDATE_MOTTO = 0x0b
|
||||
OPERATE_GUILD_RENAME_PUGI_1 = 0x0c
|
||||
OPERATE_GUILD_RENAME_PUGI_2 = 0x0d
|
||||
OPERATE_GUILD_RENAME_PUGI_3 = 0x0e
|
||||
OPERATE_GUILD_CHANGE_PUGI_1 = 0x0f
|
||||
OPERATE_GUILD_CHANGE_PUGI_2 = 0x10
|
||||
OPERATE_GUILD_CHANGE_PUGI_3 = 0x11
|
||||
// pugi something
|
||||
OPERATE_GUILD_DONATE_EVENT = 0x15
|
||||
// pugi something
|
||||
OPERATE_GUILD_CHANGE_DIVA_PUGI_1 = 0x19
|
||||
OPERATE_GUILD_CHANGE_DIVA_PUGI_2 = 0x1a
|
||||
OPERATE_GUILD_CHANGE_DIVA_PUGI_3 = 0x1b
|
||||
OPERATE_GUILD_DISBAND = 0x01
|
||||
OPERATE_GUILD_APPLY = 0x02
|
||||
OPERATE_GUILD_LEAVE = 0x03
|
||||
OPERATE_GUILD_RESIGN = 0x04
|
||||
OPERATE_GUILD_SET_APPLICATION_DENY = 0x05
|
||||
OPERATE_GUILD_SET_APPLICATION_ALLOW = 0x06
|
||||
OPERATE_GUILD_SET_AVOID_LEADERSHIP_TRUE = 0x07
|
||||
OPERATE_GUILD_SET_AVOID_LEADERSHIP_FALSE = 0x08
|
||||
OPERATE_GUILD_UPDATE_COMMENT = 0x09
|
||||
OPERATE_GUILD_DONATE_RANK = 0x0a
|
||||
OPERATE_GUILD_UPDATE_MOTTO = 0x0b
|
||||
OPERATE_GUILD_RENAME_PUGI_1 = 0x0c
|
||||
OPERATE_GUILD_RENAME_PUGI_2 = 0x0d
|
||||
OPERATE_GUILD_RENAME_PUGI_3 = 0x0e
|
||||
OPERATE_GUILD_CHANGE_PUGI_1 = 0x0f
|
||||
OPERATE_GUILD_CHANGE_PUGI_2 = 0x10
|
||||
OPERATE_GUILD_CHANGE_PUGI_3 = 0x11
|
||||
OPERATE_GUILD_UNLOCK_OUTFIT = 0x12
|
||||
// 0x13 Unk
|
||||
// 0x14 Unk
|
||||
OPERATE_GUILD_DONATE_EVENT = 0x15
|
||||
OPERATE_GUILD_EVENT_EXCHANGE = 0x16
|
||||
// 0x17 Unk
|
||||
// 0x18 Unk
|
||||
OPERATE_GUILD_CHANGE_DIVA_PUGI_1 = 0x19
|
||||
OPERATE_GUILD_CHANGE_DIVA_PUGI_2 = 0x1a
|
||||
OPERATE_GUILD_CHANGE_DIVA_PUGI_3 = 0x1b
|
||||
)
|
||||
|
||||
// MsgMhfOperateGuild represents the MSG_MHF_OPERATE_GUILD
|
||||
@@ -41,7 +45,8 @@ type MsgMhfOperateGuild struct {
|
||||
AckHandle uint32
|
||||
GuildID uint32
|
||||
Action OperateGuildAction
|
||||
UnkData []byte
|
||||
Data1 *byteframe.ByteFrame
|
||||
Data2 *byteframe.ByteFrame
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -54,8 +59,9 @@ func (m *MsgMhfOperateGuild) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Clien
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.GuildID = bf.ReadUint32()
|
||||
m.Action = OperateGuildAction(bf.ReadUint8())
|
||||
m.UnkData = bf.DataFromCurrent()
|
||||
bf.Seek(int64(len(bf.Data()) - 2), 0)
|
||||
dataLen := uint(bf.ReadUint8())
|
||||
m.Data1 = byteframe.NewByteFrameFromBytes(bf.ReadBytes(4))
|
||||
m.Data2 = byteframe.NewByteFrameFromBytes(bf.ReadBytes(dataLen))
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,28 +1,28 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
type OperateJointAction uint8
|
||||
|
||||
const (
|
||||
OPERATE_JOINT_DISBAND = 0x01
|
||||
OPERATE_JOINT_LEAVE = 0x03
|
||||
OPERATE_JOINT_KICK = 0x09
|
||||
OPERATE_JOINT_DISBAND = 0x01
|
||||
OPERATE_JOINT_LEAVE = 0x03
|
||||
OPERATE_JOINT_KICK = 0x09
|
||||
)
|
||||
|
||||
// MsgMhfOperateJoint represents the MSG_MHF_OPERATE_JOINT
|
||||
type MsgMhfOperateJoint struct {
|
||||
AckHandle uint32
|
||||
AllianceID uint32
|
||||
GuildID uint32
|
||||
Action OperateJointAction
|
||||
UnkData []byte
|
||||
AckHandle uint32
|
||||
AllianceID uint32
|
||||
GuildID uint32
|
||||
Action OperateJointAction
|
||||
UnkData *byteframe.ByteFrame
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -32,13 +32,13 @@ func (m *MsgMhfOperateJoint) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfOperateJoint) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.AllianceID = bf.ReadUint32()
|
||||
m.GuildID = bf.ReadUint32()
|
||||
m.Action = OperateJointAction(bf.ReadUint8())
|
||||
m.UnkData = bf.DataFromCurrent()
|
||||
bf.Seek(int64(len(bf.Data()) - 2), 0)
|
||||
return nil
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.AllianceID = bf.ReadUint32()
|
||||
m.GuildID = bf.ReadUint32()
|
||||
m.Action = OperateJointAction(bf.ReadUint8())
|
||||
m.UnkData = byteframe.NewByteFrameFromBytes(bf.DataFromCurrent())
|
||||
bf.Seek(int64(len(bf.Data())-2), 0)
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,22 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
"erupe-ce/common/stringsupport"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfOperateWarehouse represents the MSG_MHF_OPERATE_WAREHOUSE
|
||||
type MsgMhfOperateWarehouse struct{}
|
||||
type MsgMhfOperateWarehouse struct {
|
||||
AckHandle uint32
|
||||
Operation uint8
|
||||
BoxType string
|
||||
BoxIndex uint8
|
||||
Name string
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfOperateWarehouse) Opcode() network.PacketID {
|
||||
@@ -18,7 +25,20 @@ func (m *MsgMhfOperateWarehouse) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfOperateWarehouse) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Operation = bf.ReadUint8()
|
||||
boxType := bf.ReadUint8()
|
||||
switch boxType {
|
||||
case 0:
|
||||
m.BoxType = "item"
|
||||
case 1:
|
||||
m.BoxType = "equip"
|
||||
}
|
||||
m.BoxIndex = bf.ReadUint8()
|
||||
_ = bf.ReadUint8() // lenName
|
||||
_ = bf.ReadUint16() // Unk
|
||||
m.Name = stringsupport.SJISToUTF8(bf.ReadNullTerminatedBytes())
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,22 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfOperationInvGuild represents the MSG_MHF_OPERATION_INV_GUILD
|
||||
type MsgMhfOperationInvGuild struct{}
|
||||
type MsgMhfOperationInvGuild struct {
|
||||
AckHandle uint32
|
||||
Operation uint8
|
||||
ActiveHours uint8
|
||||
DaysActive uint8
|
||||
PlayStyle uint8
|
||||
GuildRequest uint8
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfOperationInvGuild) Opcode() network.PacketID {
|
||||
@@ -18,7 +25,13 @@ func (m *MsgMhfOperationInvGuild) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfOperationInvGuild) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Operation = bf.ReadUint8()
|
||||
m.ActiveHours = bf.ReadUint8()
|
||||
m.DaysActive = bf.ReadUint8()
|
||||
m.PlayStyle = bf.ReadUint8()
|
||||
m.GuildRequest = bf.ReadUint8()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfPostCafeDurationBonusReceived represents the MSG_MHF_POST_CAFE_DURATION_BONUS_RECEIVED
|
||||
type MsgMhfPostCafeDurationBonusReceived struct{}
|
||||
type MsgMhfPostCafeDurationBonusReceived struct {
|
||||
AckHandle uint32
|
||||
CafeBonusID []uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfPostCafeDurationBonusReceived) Opcode() network.PacketID {
|
||||
@@ -18,7 +21,12 @@ func (m *MsgMhfPostCafeDurationBonusReceived) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfPostCafeDurationBonusReceived) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
ids := int(bf.ReadUint32())
|
||||
for i := 0; i < ids; i++ {
|
||||
m.CafeBonusID = append(m.CafeBonusID, bf.ReadUint32())
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfReadMercenaryW represents the MSG_MHF_READ_MERCENARY_W
|
||||
type MsgMhfReadMercenaryW struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk0 bool
|
||||
Unk1 uint8
|
||||
Unk2 uint16 // Hardcoded 0 in the binary
|
||||
}
|
||||
@@ -24,7 +24,7 @@ func (m *MsgMhfReadMercenaryW) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfReadMercenaryW) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk0 = bf.ReadBool()
|
||||
m.Unk1 = bf.ReadUint8()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
return nil
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfSaveMercenary represents the MSG_MHF_SAVE_MERCENARY
|
||||
type MsgMhfSaveMercenary struct{
|
||||
AckHandle uint32
|
||||
DataSize uint32
|
||||
RawDataPayload []byte
|
||||
type MsgMhfSaveMercenary struct {
|
||||
AckHandle uint32
|
||||
GCP uint32
|
||||
Unk0 uint32
|
||||
MercData []byte
|
||||
Unk1 uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -23,8 +25,11 @@ func (m *MsgMhfSaveMercenary) Opcode() network.PacketID {
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfSaveMercenary) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.DataSize = bf.ReadUint32()
|
||||
m.RawDataPayload = bf.ReadBytes(uint(m.DataSize))
|
||||
bf.ReadUint32() // lenData
|
||||
m.GCP = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
m.MercData = bf.ReadBytes(uint(bf.ReadUint32()))
|
||||
m.Unk1 = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfStartBoostTime represents the MSG_MHF_START_BOOST_TIME
|
||||
type MsgMhfStartBoostTime struct{}
|
||||
type MsgMhfStartBoostTime struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint32
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfStartBoostTime) Opcode() network.PacketID {
|
||||
@@ -18,7 +21,9 @@ func (m *MsgMhfStartBoostTime) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfStartBoostTime) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint32()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgMhfTransitMessage represents the MSG_MHF_TRANSIT_MESSAGE
|
||||
type MsgMhfTransitMessage struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk1 uint8
|
||||
Unk2 uint16
|
||||
MessageData []byte
|
||||
AckHandle uint32
|
||||
Unk0 uint8
|
||||
Unk1 uint8
|
||||
SearchType uint16
|
||||
MessageData []byte
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -24,12 +24,12 @@ func (m *MsgMhfTransitMessage) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfTransitMessage) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk1 = bf.ReadUint8()
|
||||
m.Unk2 = bf.ReadUint16()
|
||||
m.MessageData = bf.ReadBytes(uint(bf.ReadUint16()))
|
||||
return nil
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk1 = bf.ReadUint8()
|
||||
m.SearchType = bf.ReadUint16()
|
||||
m.MessageData = bf.ReadBytes(uint(bf.ReadUint16()))
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,28 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
import (
|
||||
"errors"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
type WarehouseStack struct {
|
||||
ID uint32
|
||||
Index uint16
|
||||
EquipType uint16
|
||||
ItemID uint16
|
||||
Quantity uint16
|
||||
Data []byte
|
||||
}
|
||||
|
||||
// MsgMhfUpdateWarehouse represents the MSG_MHF_UPDATE_WAREHOUSE
|
||||
type MsgMhfUpdateWarehouse struct{}
|
||||
type MsgMhfUpdateWarehouse struct {
|
||||
AckHandle uint32
|
||||
BoxType string
|
||||
BoxIndex uint8
|
||||
Updates []WarehouseStack
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgMhfUpdateWarehouse) Opcode() network.PacketID {
|
||||
@@ -18,7 +31,37 @@ func (m *MsgMhfUpdateWarehouse) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgMhfUpdateWarehouse) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
boxType := bf.ReadUint8()
|
||||
switch boxType {
|
||||
case 0:
|
||||
m.BoxType = "item"
|
||||
case 1:
|
||||
m.BoxType = "equip"
|
||||
}
|
||||
m.BoxIndex = bf.ReadUint8()
|
||||
changes := int(bf.ReadUint16())
|
||||
var stackUpdate WarehouseStack
|
||||
for i := 0; i < changes; i++ {
|
||||
switch boxType {
|
||||
case 0:
|
||||
stackUpdate.ID = bf.ReadUint32()
|
||||
stackUpdate.Index = bf.ReadUint16()
|
||||
stackUpdate.ItemID = bf.ReadUint16()
|
||||
stackUpdate.Quantity = bf.ReadUint16()
|
||||
_ = bf.ReadUint16() // Unk
|
||||
m.Updates = append(m.Updates, stackUpdate)
|
||||
case 1:
|
||||
stackUpdate.ID = bf.ReadUint32()
|
||||
stackUpdate.Index = bf.ReadUint16()
|
||||
stackUpdate.EquipType = bf.ReadUint16()
|
||||
stackUpdate.ItemID = bf.ReadUint16()
|
||||
stackUpdate.Data = bf.ReadBytes(56)
|
||||
m.Updates = append(m.Updates, stackUpdate)
|
||||
}
|
||||
}
|
||||
_ = bf.ReadUint16()
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -1,15 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
"erupe-ce/common/bfutil"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgSysAcquireSemaphore represents the MSG_SYS_ACQUIRE_SEMAPHORE
|
||||
type MsgSysAcquireSemaphore struct{}
|
||||
type MsgSysAcquireSemaphore struct {
|
||||
AckHandle uint32
|
||||
SemaphoreID string
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
func (m *MsgSysAcquireSemaphore) Opcode() network.PacketID {
|
||||
@@ -18,7 +22,10 @@ func (m *MsgSysAcquireSemaphore) Opcode() network.PacketID {
|
||||
|
||||
// Parse parses the packet from binary
|
||||
func (m *MsgSysAcquireSemaphore) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
return errors.New("NOT IMPLEMENTED")
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
SemaphoreIDLength := bf.ReadUint8()
|
||||
m.SemaphoreID = string(bfutil.UpToNull(bf.ReadBytes(uint(SemaphoreIDLength))))
|
||||
return nil
|
||||
}
|
||||
|
||||
// Build builds a binary packet from the current data.
|
||||
|
||||
@@ -3,8 +3,8 @@ package mhfpacket
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/common/bfutil"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
@@ -13,7 +13,7 @@ import (
|
||||
type MsgSysEnumerateClient struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8 // Hardcoded 1 in the client
|
||||
Unk1 uint8
|
||||
Get uint8
|
||||
StageID string
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ func (m *MsgSysEnumerateClient) Opcode() network.PacketID {
|
||||
func (m *MsgSysEnumerateClient) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.Unk1 = bf.ReadUint8()
|
||||
m.Get = bf.ReadUint8()
|
||||
stageIDLength := bf.ReadUint8()
|
||||
m.StageID = string(bfutil.UpToNull(bf.ReadBytes(uint(stageIDLength))))
|
||||
return nil
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
"erupe-ce/common/stringsupport"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// MsgSysEnumerateStage represents the MSG_SYS_ENUMERATE_STAGE
|
||||
type MsgSysEnumerateStage struct {
|
||||
AckHandle uint32
|
||||
Unk0 uint8 // Hardcoded 1 in the binary
|
||||
StageIDLength uint8
|
||||
StageID string // NULL terminated string.
|
||||
AckHandle uint32
|
||||
Unk0 uint8 // Hardcoded 1 in the binary
|
||||
StagePrefix string // NULL terminated string.
|
||||
}
|
||||
|
||||
// Opcode returns the ID associated with this packet type.
|
||||
@@ -25,8 +25,8 @@ func (m *MsgSysEnumerateStage) Opcode() network.PacketID {
|
||||
func (m *MsgSysEnumerateStage) Parse(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
m.AckHandle = bf.ReadUint32()
|
||||
m.Unk0 = bf.ReadUint8()
|
||||
m.StageIDLength = bf.ReadUint8()
|
||||
m.StageID = string(bf.ReadBytes(uint(m.StageIDLength)))
|
||||
bf.ReadUint8()
|
||||
m.StagePrefix = stringsupport.SJISToUTF8(bf.ReadNullTerminatedBytes())
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
package mhfpacket
|
||||
|
||||
import (
|
||||
"errors"
|
||||
import (
|
||||
"errors"
|
||||
|
||||
"erupe-ce/network/clientctx"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/common/byteframe"
|
||||
"erupe-ce/network"
|
||||
"erupe-ce/network/clientctx"
|
||||
)
|
||||
|
||||
// TerminalLogEntry represents an entry in the MSG_SYS_TERMINAL_LOG packet.
|
||||
type TerminalLogEntry struct {
|
||||
// Unknown fields
|
||||
U0, U1, U2, U3, U4, U5, U6, U7, U8 uint32
|
||||
Index uint32
|
||||
Type1 uint8
|
||||
Type2 uint8
|
||||
Data []int16
|
||||
}
|
||||
|
||||
// MsgSysTerminalLog represents the MSG_SYS_TERMINAL_LOG
|
||||
@@ -37,15 +39,12 @@ func (m *MsgSysTerminalLog) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Client
|
||||
|
||||
for i := 0; i < int(m.EntryCount); i++ {
|
||||
e := &TerminalLogEntry{}
|
||||
e.U0 = bf.ReadUint32()
|
||||
e.U1 = bf.ReadUint32()
|
||||
e.U2 = bf.ReadUint32()
|
||||
e.U3 = bf.ReadUint32()
|
||||
e.U4 = bf.ReadUint32()
|
||||
e.U5 = bf.ReadUint32()
|
||||
e.U6 = bf.ReadUint32()
|
||||
e.U7 = bf.ReadUint32()
|
||||
e.U8 = bf.ReadUint32()
|
||||
e.Index = bf.ReadUint32()
|
||||
e.Type1 = bf.ReadUint8()
|
||||
e.Type2 = bf.ReadUint8()
|
||||
for j := 0; j < 15; j++ {
|
||||
e.Data = append(e.Data, bf.ReadInt16())
|
||||
}
|
||||
m.Entries = append(m.Entries, e)
|
||||
}
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ type ClientRight struct {
|
||||
// MsgSysUpdateRight represents the MSG_SYS_UPDATE_RIGHT
|
||||
type MsgSysUpdateRight struct {
|
||||
ClientRespAckHandle uint32 // If non-0, requests the client to send back a MSG_SYS_ACK packet with this value.
|
||||
Unk1 uint32
|
||||
Bitfield uint32
|
||||
Rights []ClientRight
|
||||
UnkSize uint16 // Count of some buf up to 0x800 bytes following it.
|
||||
}
|
||||
@@ -55,7 +55,7 @@ func (m *MsgSysUpdateRight) Parse(bf *byteframe.ByteFrame, ctx *clientctx.Client
|
||||
// Build builds a binary packet from the current data.
|
||||
func (m *MsgSysUpdateRight) Build(bf *byteframe.ByteFrame, ctx *clientctx.ClientContext) error {
|
||||
bf.WriteUint32(m.ClientRespAckHandle)
|
||||
bf.WriteUint32(m.Unk1)
|
||||
bf.WriteUint32(m.Bitfield)
|
||||
bf.WriteUint16(uint16(len(m.Rights)))
|
||||
bf.WriteUint16(0)
|
||||
for _, v := range m.Rights {
|
||||
|
||||
41
patch-schema/achievements.sql
Normal file
41
patch-schema/achievements.sql
Normal file
@@ -0,0 +1,41 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.achievements
|
||||
(
|
||||
id int NOT NULL PRIMARY KEY ,
|
||||
ach0 int DEFAULT 0,
|
||||
ach1 int DEFAULT 0,
|
||||
ach2 int DEFAULT 0,
|
||||
ach3 int DEFAULT 0,
|
||||
ach4 int DEFAULT 0,
|
||||
ach5 int DEFAULT 0,
|
||||
ach6 int DEFAULT 0,
|
||||
ach7 int DEFAULT 0,
|
||||
ach8 int DEFAULT 0,
|
||||
ach9 int DEFAULT 0,
|
||||
ach10 int DEFAULT 0,
|
||||
ach11 int DEFAULT 0,
|
||||
ach12 int DEFAULT 0,
|
||||
ach13 int DEFAULT 0,
|
||||
ach14 int DEFAULT 0,
|
||||
ach15 int DEFAULT 0,
|
||||
ach16 int DEFAULT 0,
|
||||
ach17 int DEFAULT 0,
|
||||
ach18 int DEFAULT 0,
|
||||
ach19 int DEFAULT 0,
|
||||
ach20 int DEFAULT 0,
|
||||
ach21 int DEFAULT 0,
|
||||
ach22 int DEFAULT 0,
|
||||
ach23 int DEFAULT 0,
|
||||
ach24 int DEFAULT 0,
|
||||
ach25 int DEFAULT 0,
|
||||
ach26 int DEFAULT 0,
|
||||
ach27 int DEFAULT 0,
|
||||
ach28 int DEFAULT 0,
|
||||
ach29 int DEFAULT 0,
|
||||
ach30 int DEFAULT 0,
|
||||
ach31 int DEFAULT 0,
|
||||
ach32 int DEFAULT 0
|
||||
);
|
||||
|
||||
END;
|
||||
9
patch-schema/active-feature.sql
Normal file
9
patch-schema/active-feature.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.feature_weapon
|
||||
(
|
||||
start_time timestamp without time zone NOT NULL,
|
||||
featured integer NOT NULL
|
||||
);
|
||||
|
||||
END;
|
||||
311
patch-schema/festa.sql
Normal file
311
patch-schema/festa.sql
Normal file
@@ -0,0 +1,311 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TYPE event_type AS ENUM ('festa', 'diva', 'vs', 'mezfes');
|
||||
|
||||
DROP TABLE IF EXISTS public.event_week;
|
||||
|
||||
ALTER TABLE IF EXISTS public.guild_characters
|
||||
ADD COLUMN IF NOT EXISTS souls int DEFAULT 0;
|
||||
|
||||
ALTER TABLE IF EXISTS public.guilds
|
||||
DROP COLUMN IF EXISTS festival_colour;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.events
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
event_type event_type NOT NULL,
|
||||
start_time timestamp without time zone NOT NULL DEFAULT now()
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.festa_registrations
|
||||
(
|
||||
guild_id int NOT NULL,
|
||||
team festival_colour NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.festa_trials
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
objective int NOT NULL,
|
||||
goal_id int NOT NULL,
|
||||
times_req int NOT NULL,
|
||||
locale_req int NOT NULL DEFAULT 0,
|
||||
reward int NOT NULL
|
||||
);
|
||||
|
||||
CREATE TYPE prize_type AS ENUM ('personal', 'guild');
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.festa_prizes
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
type prize_type NOT NULL,
|
||||
tier int NOT NULL,
|
||||
souls_req int NOT NULL,
|
||||
item_id int NOT NULL,
|
||||
num_item int NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.festa_prizes_accepted
|
||||
(
|
||||
prize_id int NOT NULL,
|
||||
character_id int NOT NULL
|
||||
);
|
||||
|
||||
-- Ripped prizes
|
||||
INSERT INTO public.festa_prizes
|
||||
(type, tier, souls_req, item_id, num_item)
|
||||
VALUES
|
||||
('personal', 1, 1, 9647, 7),
|
||||
('personal', 2, 1, 9647, 7),
|
||||
('personal', 3, 1, 9647, 7),
|
||||
('personal', 1, 200, 11284, 4),
|
||||
('personal', 2, 200, 11284, 4),
|
||||
('personal', 3, 200, 11284, 4),
|
||||
('personal', 1, 400, 11381, 3),
|
||||
('personal', 2, 400, 11381, 3),
|
||||
('personal', 3, 400, 11381, 3),
|
||||
('personal', 1, 600, 11284, 8),
|
||||
('personal', 2, 600, 11284, 8),
|
||||
('personal', 3, 600, 11284, 8),
|
||||
('personal', 1, 800, 11384, 3),
|
||||
('personal', 2, 800, 11384, 3),
|
||||
('personal', 3, 800, 11384, 3),
|
||||
('personal', 1, 1000, 11284, 12),
|
||||
('personal', 2, 1000, 11284, 12),
|
||||
('personal', 3, 1000, 11284, 12),
|
||||
('personal', 1, 1200, 11381, 5),
|
||||
('personal', 2, 1200, 11381, 5),
|
||||
('personal', 3, 1200, 11381, 5),
|
||||
('personal', 1, 1400, 11284, 16),
|
||||
('personal', 2, 1400, 11284, 16),
|
||||
('personal', 3, 1400, 11284, 16),
|
||||
('personal', 1, 1700, 11384, 5),
|
||||
('personal', 2, 1700, 11384, 5),
|
||||
('personal', 3, 1700, 11384, 5),
|
||||
('personal', 1, 2000, 11284, 16),
|
||||
('personal', 2, 2000, 11284, 16),
|
||||
('personal', 3, 2000, 11284, 16),
|
||||
('personal', 1, 2500, 11382, 4),
|
||||
('personal', 2, 2500, 11382, 4),
|
||||
('personal', 3, 2500, 11382, 4),
|
||||
('personal', 1, 3000, 11284, 24),
|
||||
('personal', 2, 3000, 11284, 24),
|
||||
('personal', 3, 3000, 11284, 24),
|
||||
('personal', 1, 4000, 11385, 4),
|
||||
('personal', 2, 4000, 11385, 4),
|
||||
('personal', 3, 4000, 11385, 4),
|
||||
('personal', 1, 5000, 11381, 11),
|
||||
('personal', 2, 5000, 11381, 11),
|
||||
('personal', 3, 5000, 11381, 11),
|
||||
('personal', 1, 6000, 5177, 5),
|
||||
('personal', 2, 6000, 5177, 5),
|
||||
('personal', 3, 6000, 5177, 5),
|
||||
('personal', 1, 7000, 11384, 11),
|
||||
('personal', 2, 7000, 11384, 11),
|
||||
('personal', 3, 7000, 11384, 11),
|
||||
('personal', 1, 10000, 11382, 8),
|
||||
('personal', 2, 10000, 11382, 8),
|
||||
('personal', 3, 10000, 11382, 8),
|
||||
('personal', 1, 15000, 11385, 4),
|
||||
('personal', 2, 15000, 11385, 4),
|
||||
('personal', 3, 15000, 11385, 4),
|
||||
('personal', 1, 20000, 11381, 13),
|
||||
('personal', 2, 20000, 11381, 13),
|
||||
('personal', 3, 20000, 11381, 13),
|
||||
('personal', 1, 25000, 11385, 4),
|
||||
('personal', 2, 25000, 11385, 4),
|
||||
('personal', 3, 25000, 11385, 4),
|
||||
('personal', 1, 30000, 11383, 1),
|
||||
('personal', 2, 30000, 11383, 1),
|
||||
('personal', 3, 30000, 11383, 1);
|
||||
|
||||
INSERT INTO public.festa_prizes
|
||||
(type, tier, souls_req, item_id, num_item)
|
||||
VALUES
|
||||
('guild', 1, 100, 7468, 5),
|
||||
('guild', 2, 100, 7468, 5),
|
||||
('guild', 3, 100, 7465, 5),
|
||||
('guild', 1, 300, 7469, 5),
|
||||
('guild', 2, 300, 7469, 5),
|
||||
('guild', 3, 300, 7466, 5),
|
||||
('guild', 1, 700, 7470, 5),
|
||||
('guild', 2, 700, 7470, 5),
|
||||
('guild', 3, 700, 7467, 5),
|
||||
('guild', 1, 1500, 13405, 14),
|
||||
('guild', 1, 1500, 1520, 3),
|
||||
('guild', 2, 1500, 13405, 14),
|
||||
('guild', 2, 1500, 1520, 3),
|
||||
('guild', 3, 1500, 7011, 3),
|
||||
('guild', 3, 1500, 13405, 14),
|
||||
('guild', 1, 3000, 10201, 10),
|
||||
('guild', 2, 3000, 10201, 10),
|
||||
('guild', 3, 3000, 10201, 10),
|
||||
('guild', 1, 6000, 13895, 14),
|
||||
('guild', 1, 6000, 1520, 6),
|
||||
('guild', 2, 6000, 13895, 14),
|
||||
('guild', 2, 6000, 1520, 6),
|
||||
('guild', 3, 6000, 13895, 14),
|
||||
('guild', 3, 6000, 7011, 4),
|
||||
('guild', 1, 12000, 13406, 14),
|
||||
('guild', 1, 12000, 1520, 9),
|
||||
('guild', 2, 12000, 13406, 14),
|
||||
('guild', 2, 12000, 1520, 9),
|
||||
('guild', 3, 12000, 13406, 14),
|
||||
('guild', 3, 12000, 7011, 5),
|
||||
('guild', 1, 25000, 10207, 10),
|
||||
('guild', 2, 25000, 10207, 10),
|
||||
('guild', 3, 25000, 10207, 10),
|
||||
('guild', 1, 50000, 1520, 12),
|
||||
('guild', 1, 50000, 13896, 14),
|
||||
('guild', 2, 50000, 1520, 12),
|
||||
('guild', 2, 50000, 13896, 14),
|
||||
('guild', 3, 50000, 7011, 6),
|
||||
('guild', 3, 50000, 13896, 14),
|
||||
('guild', 1, 100000, 10201, 10),
|
||||
('guild', 2, 100000, 10201, 10),
|
||||
('guild', 3, 100000, 10201, 10),
|
||||
('guild', 1, 200000, 13406, 16),
|
||||
('guild', 2, 200000, 13406, 16),
|
||||
('guild', 3, 200000, 13406, 16),
|
||||
('guild', 1, 300000, 13896, 16),
|
||||
('guild', 2, 300000, 13896, 16),
|
||||
('guild', 3, 300000, 13896, 16),
|
||||
('guild', 1, 400000, 10207, 10),
|
||||
('guild', 2, 400000, 10207, 10),
|
||||
('guild', 3, 400000, 10207, 10),
|
||||
('guild', 1, 500000, 13407, 6),
|
||||
('guild', 1, 500000, 13897, 6),
|
||||
('guild', 2, 500000, 13407, 6),
|
||||
('guild', 2, 500000, 13897, 6),
|
||||
('guild', 3, 500000, 13407, 6),
|
||||
('guild', 3, 500000, 13897, 6);
|
||||
|
||||
-- Ripped trials
|
||||
INSERT INTO public.festa_trials
|
||||
(objective, goal_id, times_req, locale_req, reward)
|
||||
VALUES
|
||||
(1,27,1,0,1),
|
||||
(5,53034,0,0,400),
|
||||
(5,22042,0,0,89),
|
||||
(5,23397,0,0,89),
|
||||
(1,28,1,0,1),
|
||||
(1,68,1,0,1),
|
||||
(1,6,1,0,2),
|
||||
(1,38,1,0,2),
|
||||
(1,20,1,0,3),
|
||||
(1,39,1,0,4),
|
||||
(1,48,1,0,4),
|
||||
(1,67,1,0,4),
|
||||
(1,93,1,0,4),
|
||||
(1,22,1,0,5),
|
||||
(1,52,1,0,5),
|
||||
(1,101,1,0,5),
|
||||
(1,1,1,0,5),
|
||||
(1,37,1,0,5),
|
||||
(1,15,1,0,5),
|
||||
(1,45,1,0,5),
|
||||
(1,74,1,0,5),
|
||||
(1,78,1,0,5),
|
||||
(1,103,1,0,5),
|
||||
(1,51,1,0,6),
|
||||
(1,17,1,0,6),
|
||||
(1,21,1,0,6),
|
||||
(1,92,1,0,6),
|
||||
(1,47,1,0,7),
|
||||
(1,46,1,0,7),
|
||||
(1,26,1,0,7),
|
||||
(1,14,1,0,7),
|
||||
(1,11,1,0,7),
|
||||
(1,44,1,0,8),
|
||||
(1,43,1,0,8),
|
||||
(1,49,1,0,8),
|
||||
(1,40,1,0,8),
|
||||
(1,76,1,0,8),
|
||||
(1,89,1,0,8),
|
||||
(1,94,1,0,8),
|
||||
(1,96,1,0,8),
|
||||
(1,75,1,0,8),
|
||||
(1,91,1,0,8),
|
||||
(1,53,1,0,9),
|
||||
(1,80,1,0,9),
|
||||
(1,42,1,0,9),
|
||||
(1,79,1,0,9),
|
||||
(1,81,1,0,10),
|
||||
(1,41,1,0,10),
|
||||
(1,82,1,0,10),
|
||||
(1,90,1,0,10),
|
||||
(1,149,1,0,10),
|
||||
(1,85,1,0,11),
|
||||
(1,95,1,0,11),
|
||||
(1,121,1,0,11),
|
||||
(1,142,1,0,11),
|
||||
(1,141,1,0,11),
|
||||
(1,146,1,0,12),
|
||||
(1,147,1,0,12),
|
||||
(1,148,1,0,12),
|
||||
(1,151,1,0,12),
|
||||
(1,152,1,0,12),
|
||||
(1,159,1,0,12),
|
||||
(1,153,1,0,12),
|
||||
(1,162,1,0,12),
|
||||
(1,111,1,0,13),
|
||||
(1,110,1,0,13),
|
||||
(1,112,1,0,13),
|
||||
(1,109,1,0,14),
|
||||
(1,169,1,0,15),
|
||||
(2,33,1,0,6),
|
||||
(2,104,1,0,8),
|
||||
(2,119,1,0,8),
|
||||
(2,120,1,0,8),
|
||||
(2,54,1,0,8),
|
||||
(2,59,1,0,8),
|
||||
(2,64,1,0,8),
|
||||
(2,65,1,0,8),
|
||||
(2,99,1,0,9),
|
||||
(2,83,1,0,9),
|
||||
(2,84,1,0,10),
|
||||
(2,77,1,0,10),
|
||||
(2,106,1,0,10),
|
||||
(2,55,1,0,10),
|
||||
(2,58,1,0,10),
|
||||
(2,7,1,0,10),
|
||||
(2,50,1,0,11),
|
||||
(2,131,1,0,11),
|
||||
(2,129,1,0,11),
|
||||
(2,140,1,0,11),
|
||||
(2,122,1,0,11),
|
||||
(2,126,1,0,11),
|
||||
(2,127,1,0,11),
|
||||
(2,128,1,0,11),
|
||||
(2,130,1,0,11),
|
||||
(2,139,1,0,11),
|
||||
(2,144,1,0,11),
|
||||
(2,150,1,0,11),
|
||||
(2,158,1,0,11),
|
||||
(2,164,1,0,15),
|
||||
(2,165,1,0,15),
|
||||
(2,2,1,7,15),
|
||||
(2,36,1,0,15),
|
||||
(2,71,1,0,15),
|
||||
(2,108,1,0,15),
|
||||
(2,116,1,0,15),
|
||||
(2,107,1,0,15),
|
||||
(2,154,1,0,17),
|
||||
(2,166,1,0,17),
|
||||
(2,170,1,0,18),
|
||||
(3,31,1,0,1),
|
||||
(3,8,1,0,3),
|
||||
(3,123,1,0,8),
|
||||
(3,105,1,0,9),
|
||||
(3,125,1,0,11),
|
||||
(3,115,1,0,12),
|
||||
(3,114,1,0,12),
|
||||
(3,161,1,0,12),
|
||||
(4,670,1,0,1),
|
||||
(4,671,1,0,1),
|
||||
(4,672,1,0,1),
|
||||
(4,675,1,0,1),
|
||||
(4,673,1,0,1),
|
||||
(4,674,1,0,1);
|
||||
|
||||
END;
|
||||
15
patch-schema/guild-poogie-outfits.sql
Normal file
15
patch-schema/guild-poogie-outfits.sql
Normal file
@@ -0,0 +1,15 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE IF EXISTS public.guilds
|
||||
ADD COLUMN IF NOT EXISTS pugi_outfit_1 int NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE IF EXISTS public.guilds
|
||||
ADD COLUMN IF NOT EXISTS pugi_outfit_2 int NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE IF EXISTS public.guilds
|
||||
ADD COLUMN IF NOT EXISTS pugi_outfit_3 int NOT NULL DEFAULT 0;
|
||||
|
||||
ALTER TABLE IF EXISTS public.guilds
|
||||
ADD COLUMN IF NOT EXISTS pugi_outfits int NOT NULL DEFAULT 0;
|
||||
|
||||
END;
|
||||
13
patch-schema/mail-system-messages.sql
Normal file
13
patch-schema/mail-system-messages.sql
Normal file
@@ -0,0 +1,13 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE IF EXISTS public.mail
|
||||
ADD COLUMN IF NOT EXISTS is_sys_message bool DEFAULT false;
|
||||
|
||||
UPDATE mail SET is_sys_message=false;
|
||||
|
||||
ALTER TABLE IF EXISTS public.mail
|
||||
DROP CONSTRAINT IF EXISTS mail_sender_id_fkey;
|
||||
|
||||
INSERT INTO public.characters (id, name) VALUES (0, '');
|
||||
|
||||
END;
|
||||
7
patch-schema/mercenary.sql
Normal file
7
patch-schema/mercenary.sql
Normal file
@@ -0,0 +1,7 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE SEQUENCE IF NOT EXISTS public.rasta_id_seq;
|
||||
|
||||
UPDATE characters SET savemercenary=NULL;
|
||||
|
||||
END;
|
||||
6
patch-schema/netcafe-2.sql
Normal file
6
patch-schema/netcafe-2.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE IF EXISTS public.characters
|
||||
ADD COLUMN cafe_reset timestamp without time zone;
|
||||
|
||||
END;
|
||||
30
patch-schema/netcafe.sql
Normal file
30
patch-schema/netcafe.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE IF EXISTS public.characters
|
||||
ADD COLUMN IF NOT EXISTS cafe_time integer DEFAULT 0;
|
||||
|
||||
ALTER TABLE IF EXISTS public.characters
|
||||
DROP COLUMN IF EXISTS netcafe_points;
|
||||
|
||||
ALTER TABLE IF EXISTS public.characters
|
||||
ADD COLUMN IF NOT EXISTS netcafe_points int DEFAULT 0;
|
||||
|
||||
ALTER TABLE IF EXISTS public.characters
|
||||
ADD COLUMN IF NOT EXISTS boost_time timestamp without time zone;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.cafebonus
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
time_req integer NOT NULL,
|
||||
item_type integer NOT NULL,
|
||||
item_id integer NOT NULL,
|
||||
quantity integer NOT NULL
|
||||
);
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.cafe_accepted
|
||||
(
|
||||
cafe_id integer NOT NULL,
|
||||
character_id integer NOT NULL
|
||||
);
|
||||
|
||||
END;
|
||||
37
patch-schema/persistent-house.sql
Normal file
37
patch-schema/persistent-house.sql
Normal file
@@ -0,0 +1,37 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.user_binary
|
||||
(
|
||||
id serial NOT NULL PRIMARY KEY,
|
||||
type2 bytea,
|
||||
type3 bytea,
|
||||
house_tier bytea,
|
||||
house_state int,
|
||||
house_password text,
|
||||
house_data bytea,
|
||||
house_furniture bytea,
|
||||
bookshelf bytea,
|
||||
gallery bytea,
|
||||
tore bytea,
|
||||
garden bytea,
|
||||
mission bytea
|
||||
);
|
||||
|
||||
-- Create entries for existing users
|
||||
INSERT INTO public.user_binary (id) SELECT c.id FROM characters c;
|
||||
|
||||
-- Copy existing data
|
||||
UPDATE public.user_binary
|
||||
SET house_furniture = (SELECT house FROM characters WHERE user_binary.id = characters.id);
|
||||
|
||||
UPDATE public.user_binary
|
||||
SET mission = (SELECT trophy FROM characters WHERE user_binary.id = characters.id);
|
||||
|
||||
-- Drop old data location
|
||||
ALTER TABLE public.characters
|
||||
DROP COLUMN house;
|
||||
|
||||
ALTER TABLE public.characters
|
||||
DROP COLUMN trophy;
|
||||
|
||||
END;
|
||||
9
patch-schema/return.sql
Normal file
9
patch-schema/return.sql
Normal file
@@ -0,0 +1,9 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE IF EXISTS public.users
|
||||
ADD COLUMN IF NOT EXISTS last_login timestamp without time zone;
|
||||
|
||||
ALTER TABLE IF EXISTS public.users
|
||||
ADD COLUMN IF NOT EXISTS return_expires timestamp without time zone;
|
||||
|
||||
END;
|
||||
11
patch-schema/road-leaderboard.sql
Normal file
11
patch-schema/road-leaderboard.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS rengoku_score (
|
||||
character_id integer PRIMARY KEY,
|
||||
max_stages_mp integer,
|
||||
max_points_mp integer,
|
||||
max_stages_sp integer,
|
||||
max_points_sp integer
|
||||
);
|
||||
|
||||
END;
|
||||
23
patch-schema/servers_info.sql
Normal file
23
patch-schema/servers_info.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
--adds world_name and land columns
|
||||
BEGIN;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.servers
|
||||
(
|
||||
server_id integer NOT NULL,
|
||||
season integer NOT NULL,
|
||||
current_players integer NOT NULL,
|
||||
world_name text COLLATE pg_catalog."default",
|
||||
world_description text,
|
||||
land integer
|
||||
);
|
||||
|
||||
ALTER TABLE public.servers
|
||||
ADD COLUMN IF NOT EXISTS land integer;
|
||||
|
||||
ALTER TABLE public.servers
|
||||
ADD COLUMN IF NOT EXISTS world_name text COLLATE pg_catalog."default";
|
||||
|
||||
ALTER TABLE public.servers
|
||||
ADD COLUMN IF NOT EXISTS world_description text;
|
||||
|
||||
END;
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user