forked from Dniel97/artemis
Merge pull request 'idac' (#1) from Dniel97/artemis:idac into idac
Reviewed-on: #1
This commit is contained in:
commit
0fe019805b
3
.gitattributes
vendored
Normal file
3
.gitattributes
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
*.csv binary
|
||||||
|
*.txt binary
|
||||||
|
*.json binary
|
@ -52,6 +52,7 @@ class ADBFelicaLookup2Response(ADBBaseResponse):
|
|||||||
self.access_code = access_code if access_code is not None else "00000000000000000000"
|
self.access_code = access_code if access_code is not None else "00000000000000000000"
|
||||||
self.company = CompanyCodes.SEGA
|
self.company = CompanyCodes.SEGA
|
||||||
self.portal_status = PortalRegStatus.NO_REG
|
self.portal_status = PortalRegStatus.NO_REG
|
||||||
|
self.auth_key = [0] * 256
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_req(cls, req: ADBHeader, user_id: Union[int, None] = None, access_code: Union[str, None] = None) -> "ADBFelicaLookup2Response":
|
def from_req(cls, req: ADBHeader, user_id: Union[int, None] = None, access_code: Union[str, None] = None) -> "ADBFelicaLookup2Response":
|
||||||
@ -76,7 +77,7 @@ class ADBFelicaLookup2Response(ADBBaseResponse):
|
|||||||
access_code = bytes.fromhex(self.access_code),
|
access_code = bytes.fromhex(self.access_code),
|
||||||
portal_status = self.portal_status.value,
|
portal_status = self.portal_status.value,
|
||||||
company_code = self.company.value,
|
company_code = self.company.value,
|
||||||
auth_key = [0] * 256 # Unsupported
|
auth_key = self.auth_key
|
||||||
))
|
))
|
||||||
|
|
||||||
self.head.length = HEADER_SIZE + len(resp_struct)
|
self.head.length = HEADER_SIZE + len(resp_struct)
|
||||||
|
@ -52,6 +52,7 @@ class ADBLookupExResponse(ADBBaseResponse):
|
|||||||
super().__init__(code, length, status, game_id, store_id, keychip_id)
|
super().__init__(code, length, status, game_id, store_id, keychip_id)
|
||||||
self.user_id = user_id if user_id is not None else -1
|
self.user_id = user_id if user_id is not None else -1
|
||||||
self.portal_reg = PortalRegStatus.NO_REG
|
self.portal_reg = PortalRegStatus.NO_REG
|
||||||
|
self.auth_key = [0] * 256
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def from_req(cls, req: ADBHeader, user_id: Union[int, None]) -> "ADBLookupExResponse":
|
def from_req(cls, req: ADBHeader, user_id: Union[int, None]) -> "ADBLookupExResponse":
|
||||||
@ -72,7 +73,7 @@ class ADBLookupExResponse(ADBBaseResponse):
|
|||||||
body = resp_struct.build(dict(
|
body = resp_struct.build(dict(
|
||||||
user_id = self.user_id,
|
user_id = self.user_id,
|
||||||
portal_reg = self.portal_reg.value,
|
portal_reg = self.portal_reg.value,
|
||||||
auth_key = [0] * 256,
|
auth_key = self.auth_key,
|
||||||
relation1 = -1,
|
relation1 = -1,
|
||||||
relation2 = -1
|
relation2 = -1
|
||||||
))
|
))
|
||||||
|
@ -7,6 +7,7 @@ from typing_extensions import Final
|
|||||||
from logging.handlers import TimedRotatingFileHandler
|
from logging.handlers import TimedRotatingFileHandler
|
||||||
|
|
||||||
from core.config import CoreConfig
|
from core.config import CoreConfig
|
||||||
|
from core.utils import create_sega_auth_key
|
||||||
from core.data import Data
|
from core.data import Data
|
||||||
from .adb_handlers import *
|
from .adb_handlers import *
|
||||||
|
|
||||||
@ -179,6 +180,15 @@ class AimedbProtocol(Protocol):
|
|||||||
self.logger.info(
|
self.logger.info(
|
||||||
f"access_code {req.access_code} -> user_id {ret.user_id}"
|
f"access_code {req.access_code} -> user_id {ret.user_id}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if user_id and user_id > 0 and self.config.aimedb.id_secret:
|
||||||
|
auth_key = create_sega_auth_key(user_id, req.head.game_id, req.head.store_id, req.head.keychip_id, self.config.aimedb.id_secret, self.config.aimedb.id_lifetime_seconds)
|
||||||
|
if auth_key is not None:
|
||||||
|
auth_key_extra_len = 256 - len(auth_key)
|
||||||
|
auth_key_full = auth_key.encode() + (b"\0" * auth_key_extra_len)
|
||||||
|
self.logger.debug(f"Generated auth token {auth_key}")
|
||||||
|
ret.auth_key = auth_key_full
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def handle_felica_lookup(self, data: bytes, resp_code: int) -> bytes:
|
def handle_felica_lookup(self, data: bytes, resp_code: int) -> bytes:
|
||||||
@ -241,7 +251,17 @@ class AimedbProtocol(Protocol):
|
|||||||
f"idm {req.idm} ipm {req.pmm} -> access_code {access_code} user_id {user_id}"
|
f"idm {req.idm} ipm {req.pmm} -> access_code {access_code} user_id {user_id}"
|
||||||
)
|
)
|
||||||
|
|
||||||
return ADBFelicaLookup2Response.from_req(req.head, user_id, access_code)
|
resp = ADBFelicaLookup2Response.from_req(req.head, user_id, access_code)
|
||||||
|
|
||||||
|
if user_id and user_id > 0 and self.config.aimedb.id_secret:
|
||||||
|
auth_key = create_sega_auth_key(user_id, req.head.game_id, req.head.store_id, req.head.keychip_id, self.config.aimedb.id_secret, self.config.aimedb.id_lifetime_seconds)
|
||||||
|
if auth_key is not None:
|
||||||
|
auth_key_extra_len = 256 - len(auth_key)
|
||||||
|
auth_key_full = auth_key.encode() + (b"\0" * auth_key_extra_len)
|
||||||
|
self.logger.debug(f"Generated auth token {auth_key}")
|
||||||
|
resp.auth_key = auth_key_full
|
||||||
|
|
||||||
|
return resp
|
||||||
|
|
||||||
def handle_campaign_clear(self, data: bytes, resp_code: int) -> ADBBaseResponse:
|
def handle_campaign_clear(self, data: bytes, resp_code: int) -> ADBBaseResponse:
|
||||||
req = ADBCampaignClearRequest(data)
|
req = ADBCampaignClearRequest(data)
|
||||||
|
@ -432,16 +432,17 @@ class AllnetServlet:
|
|||||||
signer = PKCS1_v1_5.new(rsa)
|
signer = PKCS1_v1_5.new(rsa)
|
||||||
digest = SHA.new()
|
digest = SHA.new()
|
||||||
traces: List[TraceData] = []
|
traces: List[TraceData] = []
|
||||||
|
|
||||||
try:
|
try:
|
||||||
for x in range(len(req_dict)):
|
req = BillingInfo(req_dict[0])
|
||||||
if not req_dict[x]:
|
except KeyError as e:
|
||||||
continue
|
self.logger.error(f"Billing request failed to parse: {e}")
|
||||||
|
return f"result=5&linelimit=&message=field is missing or formatting is incorrect\r\n".encode()
|
||||||
if x == 0:
|
|
||||||
req = BillingInfo(req_dict[x])
|
|
||||||
continue
|
|
||||||
|
|
||||||
|
for x in range(1, len(req_dict)):
|
||||||
|
if not req_dict[x]:
|
||||||
|
continue
|
||||||
|
|
||||||
|
try:
|
||||||
tmp = TraceData(req_dict[x])
|
tmp = TraceData(req_dict[x])
|
||||||
if tmp.trace_type == TraceDataType.CHARGE:
|
if tmp.trace_type == TraceDataType.CHARGE:
|
||||||
tmp = TraceDataCharge(req_dict[x])
|
tmp = TraceDataCharge(req_dict[x])
|
||||||
@ -451,12 +452,12 @@ class AllnetServlet:
|
|||||||
tmp = TraceDataCredit(req_dict[x])
|
tmp = TraceDataCredit(req_dict[x])
|
||||||
|
|
||||||
traces.append(tmp)
|
traces.append(tmp)
|
||||||
|
|
||||||
|
except KeyError as e:
|
||||||
|
self.logger.warn(f"Tracelog failed to parse: {e}")
|
||||||
|
|
||||||
kc_serial_bytes = req.keychipid.encode()
|
kc_serial_bytes = req.keychipid.encode()
|
||||||
|
|
||||||
except KeyError as e:
|
|
||||||
self.logger.error(f"Billing request failed to parse: {e}")
|
|
||||||
return f"result=5&linelimit=&message=field is missing or formatting is incorrect\r\n".encode()
|
|
||||||
|
|
||||||
machine = self.data.arcade.get_machine(req.keychipid)
|
machine = self.data.arcade.get_machine(req.keychipid)
|
||||||
if machine is None and not self.config.server.allow_unregistered_serials:
|
if machine is None and not self.config.server.allow_unregistered_serials:
|
||||||
@ -693,9 +694,17 @@ class TraceData:
|
|||||||
self.seq_number = int(data.get("sn", None))
|
self.seq_number = int(data.get("sn", None))
|
||||||
self.trace_type = TraceDataType(int(data.get("tt", None)))
|
self.trace_type = TraceDataType(int(data.get("tt", None)))
|
||||||
self.date_sync_flg = bool(data.get("ds", None))
|
self.date_sync_flg = bool(data.get("ds", None))
|
||||||
self.date = datetime.strptime(data.get("dt", None), BILLING_DT_FORMAT)
|
|
||||||
|
dt = data.get("dt", None)
|
||||||
|
if dt is None:
|
||||||
|
raise KeyError("dt not present")
|
||||||
|
if dt == "20000000000000": # Not sure what causes it to send like this...
|
||||||
|
self.date = datetime(2000, 1, 1, 0, 0, 0, 0)
|
||||||
|
else:
|
||||||
|
self.date = datetime.strptime(data.get("dt", None), BILLING_DT_FORMAT)
|
||||||
|
|
||||||
self.keychip = str(data.get("kn", None))
|
self.keychip = str(data.get("kn", None))
|
||||||
self.lib_ver = float(data.get("alib", None))
|
self.lib_ver = float(data.get("alib", 0))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise KeyError(e)
|
raise KeyError(e)
|
||||||
|
|
||||||
@ -703,8 +712,8 @@ class TraceDataCharge(TraceData):
|
|||||||
def __init__(self, data: Dict) -> None:
|
def __init__(self, data: Dict) -> None:
|
||||||
super().__init__(data)
|
super().__init__(data)
|
||||||
try:
|
try:
|
||||||
self.game_id = str(data.get("gi", None))
|
self.game_id = str(data.get("gi", None)) # these seem optional...?
|
||||||
self.game_version = float(data.get("gv", None))
|
self.game_version = float(data.get("gv", 0))
|
||||||
self.board_serial = str(data.get("bn", None))
|
self.board_serial = str(data.get("bn", None))
|
||||||
self.shop_ip = str(data.get("ti", None))
|
self.shop_ip = str(data.get("ti", None))
|
||||||
self.play_count = int(data.get("pc", None))
|
self.play_count = int(data.get("pc", None))
|
||||||
|
@ -314,6 +314,18 @@ class AimedbConfig:
|
|||||||
self.__config, "core", "aimedb", "key", default=""
|
self.__config, "core", "aimedb", "key", default=""
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id_secret(self) -> str:
|
||||||
|
return CoreConfig.get_config_field(
|
||||||
|
self.__config, "core", "aimedb", "id_secret", default=""
|
||||||
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def id_lifetime_seconds(self) -> int:
|
||||||
|
return CoreConfig.get_config_field(
|
||||||
|
self.__config, "core", "aimedb", "id_lifetime_seconds", default=86400
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class MuchaConfig:
|
class MuchaConfig:
|
||||||
def __init__(self, parent_config: "CoreConfig") -> None:
|
def __init__(self, parent_config: "CoreConfig") -> None:
|
||||||
|
@ -157,6 +157,8 @@ class BaseData:
|
|||||||
|
|
||||||
def fix_bools(self, data: Dict) -> Dict:
|
def fix_bools(self, data: Dict) -> Dict:
|
||||||
for k, v in data.items():
|
for k, v in data.items():
|
||||||
|
if k == "userName" or k == "teamName":
|
||||||
|
continue
|
||||||
if type(v) == str and v.lower() == "true":
|
if type(v) == str and v.lower() == "true":
|
||||||
data[k] = True
|
data[k] = True
|
||||||
elif type(v) == str and v.lower() == "false":
|
elif type(v) == str and v.lower() == "false":
|
||||||
|
12
core/data/schema/versions/SDBT_4_rollback.sql
Normal file
12
core/data/schema/versions/SDBT_4_rollback.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
ALTER TABLE chuni_score_playlog
|
||||||
|
CHANGE COLUMN isClear isClear TINYINT(1) NULL DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE chuni_score_best
|
||||||
|
CHANGE COLUMN isSuccess isSuccess TINYINT(1) NULL DEFAULT NULL ;
|
||||||
|
|
||||||
|
ALTER TABLE chuni_score_playlog
|
||||||
|
DROP COLUMN ticketId;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
12
core/data/schema/versions/SDBT_5_upgrade.sql
Normal file
12
core/data/schema/versions/SDBT_5_upgrade.sql
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
SET FOREIGN_KEY_CHECKS = 0;
|
||||||
|
|
||||||
|
ALTER TABLE chuni_score_playlog
|
||||||
|
CHANGE COLUMN isClear isClear TINYINT(6) NULL DEFAULT NULL;
|
||||||
|
|
||||||
|
ALTER TABLE chuni_score_best
|
||||||
|
CHANGE COLUMN isSuccess isSuccess INT(11) NULL DEFAULT NULL ;
|
||||||
|
|
||||||
|
ALTER TABLE chuni_score_playlog
|
||||||
|
ADD COLUMN ticketId INT(11) NULL AFTER machineType;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS = 1;
|
54
core/data/schema/versions/SDGT_1_rollback.sql
Normal file
54
core/data/schema/versions/SDGT_1_rollback.sql
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
SET FOREIGN_KEY_CHECKS=0;
|
||||||
|
|
||||||
|
-- WARNING: This script is NOT idempotent! MAKE A BACKUP BEFORE RUNNING THIS SCRIPT!
|
||||||
|
|
||||||
|
-- Drop UK idac_user_vs_info_uk
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
DROP FOREIGN KEY idac_user_vs_info_ibfk_1,
|
||||||
|
DROP INDEX idac_user_vs_info_uk;
|
||||||
|
|
||||||
|
-- Drop the new columns added to the original table
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
DROP COLUMN battle_mode,
|
||||||
|
DROP COLUMN invalid,
|
||||||
|
DROP COLUMN str,
|
||||||
|
DROP COLUMN str_now,
|
||||||
|
DROP COLUMN lose_now;
|
||||||
|
|
||||||
|
-- Add back the old columns to the original table
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
ADD COLUMN group_key VARCHAR(25),
|
||||||
|
ADD COLUMN win_flg INT,
|
||||||
|
ADD COLUMN style_car_id INT,
|
||||||
|
ADD COLUMN course_id INT,
|
||||||
|
ADD COLUMN course_day INT,
|
||||||
|
ADD COLUMN players_num INT,
|
||||||
|
ADD COLUMN winning INT,
|
||||||
|
ADD COLUMN advantage_1 INT,
|
||||||
|
ADD COLUMN advantage_2 INT,
|
||||||
|
ADD COLUMN advantage_3 INT,
|
||||||
|
ADD COLUMN advantage_4 INT,
|
||||||
|
ADD COLUMN select_course_id INT,
|
||||||
|
ADD COLUMN select_course_day INT,
|
||||||
|
ADD COLUMN select_course_random INT,
|
||||||
|
ADD COLUMN matching_success_sec INT,
|
||||||
|
ADD COLUMN boost_flag INT;
|
||||||
|
|
||||||
|
-- Delete the data from the original table where group_key is NULL
|
||||||
|
DELETE FROM idac_user_vs_info
|
||||||
|
WHERE group_key IS NULL;
|
||||||
|
|
||||||
|
-- Insert data back to the original table from idac_user_vs_course_info
|
||||||
|
INSERT INTO idac_user_vs_info (user, group_key, win_flg, style_car_id, course_id, course_day, players_num, winning, advantage_1, advantage_2, advantage_3, advantage_4, select_course_id, select_course_day, select_course_random, matching_success_sec, boost_flag, vs_history, break_count, break_penalty_flag)
|
||||||
|
SELECT user, CONCAT(FLOOR(RAND()*(99999999999999-10000000000000+1)+10000000000000), 'A69E01A8888'), 0, 0, course_id, 0, 0, vs_cnt, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
|
||||||
|
FROM idac_user_vs_course_info;
|
||||||
|
|
||||||
|
-- Add back the constraints and indexes to the original table
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
ADD CONSTRAINT idac_user_vs_info_ibfk_1 FOREIGN KEY (user) REFERENCES aime_user(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
ADD UNIQUE KEY idac_user_vs_info_uk (user, group_key);
|
||||||
|
|
||||||
|
-- Drop the new table idac_user_vs_course_info
|
||||||
|
DROP TABLE IF EXISTS idac_user_vs_course_info;
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS=1;
|
71
core/data/schema/versions/SDGT_2_upgrade.sql
Normal file
71
core/data/schema/versions/SDGT_2_upgrade.sql
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
SET FOREIGN_KEY_CHECKS=0;
|
||||||
|
|
||||||
|
-- WARNING: This script is NOT idempotent! MAKE A BACKUP BEFORE RUNNING THIS SCRIPT!
|
||||||
|
|
||||||
|
-- Create the new table idac_user_vs_course_info
|
||||||
|
CREATE TABLE idac_user_vs_course_info (
|
||||||
|
id INT PRIMARY KEY AUTO_INCREMENT,
|
||||||
|
user INT,
|
||||||
|
battle_mode INT,
|
||||||
|
course_id INT,
|
||||||
|
vs_cnt INT,
|
||||||
|
vs_win INT,
|
||||||
|
CONSTRAINT idac_user_vs_course_info_fk FOREIGN KEY (user) REFERENCES aime_user(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
UNIQUE KEY idac_user_vs_course_info_uk (user, battle_mode, course_id)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||||
|
|
||||||
|
-- Insert data from the original table to the new tables
|
||||||
|
INSERT INTO idac_user_vs_course_info (user, battle_mode, course_id, vs_cnt, vs_win)
|
||||||
|
SELECT user, 1 as battle_mode, course_id, COUNT(winning) as vs_cnt, SUM(win_flg) as vs_win
|
||||||
|
FROM idac_user_vs_info
|
||||||
|
GROUP BY user, course_id;
|
||||||
|
|
||||||
|
-- Drop UK idac_user_vs_info_uk
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
DROP FOREIGN KEY idac_user_vs_info_ibfk_1,
|
||||||
|
DROP INDEX idac_user_vs_info_uk;
|
||||||
|
|
||||||
|
-- Drop/Add the old columns from the original table
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
DROP COLUMN group_key,
|
||||||
|
DROP COLUMN win_flg,
|
||||||
|
DROP COLUMN style_car_id,
|
||||||
|
DROP COLUMN course_id,
|
||||||
|
DROP COLUMN course_day,
|
||||||
|
DROP COLUMN players_num,
|
||||||
|
DROP COLUMN winning,
|
||||||
|
DROP COLUMN advantage_1,
|
||||||
|
DROP COLUMN advantage_2,
|
||||||
|
DROP COLUMN advantage_3,
|
||||||
|
DROP COLUMN advantage_4,
|
||||||
|
DROP COLUMN select_course_id,
|
||||||
|
DROP COLUMN select_course_day,
|
||||||
|
DROP COLUMN select_course_random,
|
||||||
|
DROP COLUMN matching_success_sec,
|
||||||
|
DROP COLUMN boost_flag,
|
||||||
|
|
||||||
|
ADD COLUMN battle_mode TINYINT UNSIGNED DEFAULT 1 NOT NULL AFTER user,
|
||||||
|
ADD COLUMN invalid INT DEFAULT 0,
|
||||||
|
ADD COLUMN str INT DEFAULT 0,
|
||||||
|
ADD COLUMN str_now INT DEFAULT 0,
|
||||||
|
ADD COLUMN lose_now INT DEFAULT 0;
|
||||||
|
|
||||||
|
-- Create a temporary table to store the records you want to keep
|
||||||
|
CREATE TEMPORARY TABLE temp_table AS
|
||||||
|
SELECT MIN(id) AS min_id
|
||||||
|
FROM idac_user_vs_info
|
||||||
|
GROUP BY battle_mode, user;
|
||||||
|
|
||||||
|
-- Delete records from the original table based on the temporary table
|
||||||
|
DELETE FROM idac_user_vs_info
|
||||||
|
WHERE id NOT IN (SELECT min_id FROM temp_table);
|
||||||
|
|
||||||
|
-- Drop the temporary table
|
||||||
|
DROP TEMPORARY TABLE IF EXISTS temp_table;
|
||||||
|
|
||||||
|
-- Add UK idac_user_vs_info_uk
|
||||||
|
ALTER TABLE idac_user_vs_info
|
||||||
|
ADD CONSTRAINT idac_user_vs_info_ibfk_1 FOREIGN KEY (user) REFERENCES aime_user(id) ON DELETE CASCADE ON UPDATE CASCADE,
|
||||||
|
ADD UNIQUE KEY idac_user_vs_info_uk (user, battle_mode);
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS=1;
|
@ -1,9 +1,12 @@
|
|||||||
from typing import Dict, Any
|
from typing import Dict, Any, Optional
|
||||||
from types import ModuleType
|
from types import ModuleType
|
||||||
from twisted.web.http import Request
|
from twisted.web.http import Request
|
||||||
import logging
|
import logging
|
||||||
import importlib
|
import importlib
|
||||||
from os import walk
|
from os import walk
|
||||||
|
import jwt
|
||||||
|
from base64 import b64decode
|
||||||
|
from datetime import datetime, timezone
|
||||||
|
|
||||||
from .config import CoreConfig
|
from .config import CoreConfig
|
||||||
|
|
||||||
@ -60,3 +63,35 @@ class Utils:
|
|||||||
cls.real_title_port_ssl = cfg.title.port_ssl
|
cls.real_title_port_ssl = cfg.title.port_ssl
|
||||||
|
|
||||||
return cls.real_title_port_ssl
|
return cls.real_title_port_ssl
|
||||||
|
|
||||||
|
def create_sega_auth_key(aime_id: int, game: str, place_id: int, keychip_id: str, b64_secret: str, exp_seconds: int = 86400, err_logger: str = 'aimedb') -> Optional[str]:
|
||||||
|
logger = logging.getLogger(err_logger)
|
||||||
|
try:
|
||||||
|
return jwt.encode({ "aime_id": aime_id, "game": game, "place_id": place_id, "keychip_id": keychip_id, "exp": int(datetime.now(tz=timezone.utc).timestamp()) + exp_seconds }, b64decode(b64_secret), algorithm="HS256")
|
||||||
|
except jwt.InvalidKeyError:
|
||||||
|
logger.error("Failed to encode Sega Auth Key because the secret is invalid!")
|
||||||
|
return None
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Unknown exception occoured when encoding Sega Auth Key! {e}")
|
||||||
|
return None
|
||||||
|
|
||||||
|
def decode_sega_auth_key(token: str, b64_secret: str, err_logger: str = 'aimedb') -> Optional[Dict]:
|
||||||
|
logger = logging.getLogger(err_logger)
|
||||||
|
try:
|
||||||
|
return jwt.decode(token, "secret", b64decode(b64_secret), algorithms=["HS256"], options={"verify_signature": True})
|
||||||
|
except jwt.ExpiredSignatureError:
|
||||||
|
logger.error("Sega Auth Key failed to validate due to an expired signature!")
|
||||||
|
return None
|
||||||
|
except jwt.InvalidSignatureError:
|
||||||
|
logger.error("Sega Auth Key failed to validate due to an invalid signature!")
|
||||||
|
return None
|
||||||
|
except jwt.DecodeError as e:
|
||||||
|
logger.error(f"Sega Auth Key failed to decode! {e}")
|
||||||
|
return None
|
||||||
|
except jwt.InvalidTokenError as e:
|
||||||
|
logger.error(f"Sega Auth Key is invalid! {e}")
|
||||||
|
return None
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"Unknown exception occoured when decoding Sega Auth Key! {e}")
|
||||||
|
return None
|
||||||
|
|
@ -54,6 +54,7 @@ Games listed below have been tested and confirmed working.
|
|||||||
| 11 | CHUNITHM NEW!! |
|
| 11 | CHUNITHM NEW!! |
|
||||||
| 12 | CHUNITHM NEW PLUS!! |
|
| 12 | CHUNITHM NEW PLUS!! |
|
||||||
| 13 | CHUNITHM SUN |
|
| 13 | CHUNITHM SUN |
|
||||||
|
| 14 | CHUNITHM SUN PLUS |
|
||||||
|
|
||||||
|
|
||||||
### Importer
|
### Importer
|
||||||
@ -61,9 +62,11 @@ Games listed below have been tested and confirmed working.
|
|||||||
In order to use the importer locate your game installation folder and execute:
|
In order to use the importer locate your game installation folder and execute:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDBT --version <version ID> --binfolder /path/to/game/folder --optfolder /path/to/game/option/folder
|
python read.py --game SDBT --version <Version ID> --binfolder </path/to/game/data> --optfolder </path/to/game/option/folder>
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Note: Use the /data not the /bin folder for the Importer!**
|
||||||
|
|
||||||
The importer for Chunithm will import: Events, Music, Charge Items and Avatar Accesories.
|
The importer for Chunithm will import: Events, Music, Charge Items and Avatar Accesories.
|
||||||
|
|
||||||
### Config
|
### Config
|
||||||
@ -74,7 +77,6 @@ Config file is located in `config/chuni.yaml`.
|
|||||||
|------------------|----------------------------------------------------------------------------------------------------------------|
|
|------------------|----------------------------------------------------------------------------------------------------------------|
|
||||||
| `news_msg` | If this is set, the news at the top of the main screen will be displayed (up to Chunithm Paradise Lost) |
|
| `news_msg` | If this is set, the news at the top of the main screen will be displayed (up to Chunithm Paradise Lost) |
|
||||||
| `name` | If this is set, all players that are not on a team will use this one by default. |
|
| `name` | If this is set, all players that are not on a team will use this one by default. |
|
||||||
| `rank_scale` | Scales the in-game ranking based on the number of teams within the database |
|
|
||||||
| `use_login_bonus`| This is used to enable the login bonuses |
|
| `use_login_bonus`| This is used to enable the login bonuses |
|
||||||
| `crypto` | This option is used to enable the TLS Encryption |
|
| `crypto` | This option is used to enable the TLS Encryption |
|
||||||
|
|
||||||
@ -132,12 +134,6 @@ INSERT INTO aime.chuni_profile_team (teamName) VALUES (<teamName>);
|
|||||||
```
|
```
|
||||||
Team names can be regular ASCII, and they will be displayed ingame.
|
Team names can be regular ASCII, and they will be displayed ingame.
|
||||||
|
|
||||||
On smaller installations, you may also wish to enable scaled team rankings. By default, Chunithm determines team ranking within the first 100 teams. This can be configured in the YAML:
|
|
||||||
```yaml
|
|
||||||
team:
|
|
||||||
rank_scale: True # Scales the in-game ranking based on the number of teams within the database, rather than the default scale of ~100 that the game normally uses.
|
|
||||||
```
|
|
||||||
|
|
||||||
### Favorite songs
|
### Favorite songs
|
||||||
You can set the songs that will be in a user's Favorite Songs category using the following SQL entries:
|
You can set the songs that will be in a user's Favorite Songs category using the following SQL entries:
|
||||||
```sql
|
```sql
|
||||||
@ -162,7 +158,7 @@ The songId is based on the actual ID within your version of Chunithm.
|
|||||||
In order to use the importer you need to use the provided `Export.csv` file:
|
In order to use the importer you need to use the provided `Export.csv` file:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDCA --version <version ID> --binfolder titles/cxb/data
|
python read.py --game SDCA --version <Version ID> --binfolder titles/cxb/data
|
||||||
```
|
```
|
||||||
|
|
||||||
The importer for crossbeats REV. will import Music.
|
The importer for crossbeats REV. will import Music.
|
||||||
@ -171,24 +167,10 @@ The importer for crossbeats REV. will import Music.
|
|||||||
|
|
||||||
Config file is located in `config/cxb.yaml`.
|
Config file is located in `config/cxb.yaml`.
|
||||||
|
|
||||||
| Option | Info |
|
|
||||||
| --------------------- | ---------------------------------------------------------- |
|
|
||||||
| `hostname` | Requires a proper `hostname` (not localhost!) to run |
|
|
||||||
| `ssl_enable` | Enables/Disables the use of the `ssl_cert` and `ssl_key` |
|
|
||||||
| `port` | Set your unsecure port number |
|
|
||||||
| `port_secure` | Set your secure/SSL port number |
|
|
||||||
| `ssl_cert`, `ssl_key` | Enter your SSL certificate (requires not self signed cert) |
|
|
||||||
|
|
||||||
|
|
||||||
## maimai DX
|
## maimai DX
|
||||||
|
|
||||||
### SDEZ
|
### Versions
|
||||||
|
|
||||||
| Game Code | Version ID | Version Name |
|
|
||||||
| --------- | ---------- | ------------ |
|
|
||||||
|
|
||||||
|
|
||||||
For versions pre-dx
|
|
||||||
| Game Code | Version ID | Version Name |
|
| Game Code | Version ID | Version Name |
|
||||||
| --------- | ---------- | ----------------------- |
|
| --------- | ---------- | ----------------------- |
|
||||||
| SBXL | 0 | maimai |
|
| SBXL | 0 | maimai |
|
||||||
@ -218,11 +200,11 @@ For versions pre-dx
|
|||||||
In order to use the importer locate your game installation folder and execute:
|
In order to use the importer locate your game installation folder and execute:
|
||||||
DX:
|
DX:
|
||||||
```shell
|
```shell
|
||||||
python read.py --game <Game Code> --version <Version ID> --binfolder /path/to/StreamingAssets --optfolder /path/to/game/option/folder
|
python read.py --game <Game Code> --version <Version ID> --binfolder </path/to/Sinmai_Data> --optfolder </path/to/game/option/folder>
|
||||||
```
|
```
|
||||||
Pre-DX:
|
Pre-DX:
|
||||||
```shell
|
```shell
|
||||||
python read.py --game <Game Code> --version <Version ID> --binfolder /path/to/data --optfolder /path/to/patch/data
|
python read.py --game <Game Code> --version <Version ID> --binfolder </path/to/data> --optfolder </path/to/patch/data>
|
||||||
```
|
```
|
||||||
The importer for maimai DX will import Events, Music and Tickets.
|
The importer for maimai DX will import Events, Music and Tickets.
|
||||||
|
|
||||||
@ -255,7 +237,7 @@ Pre-Dx uses the same database as DX, so only upgrade using the SDEZ game code!
|
|||||||
In order to use the importer locate your game installation folder and execute:
|
In order to use the importer locate your game installation folder and execute:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SBZV --version <version ID> --binfolder /path/to/game/data/diva --optfolder /path/to/game/data/diva/mdata
|
python read.py --game SBZV --version <Version ID> --binfolder </path/to/game/data/diva> --optfolder </path/to/game/data/diva/mdata>
|
||||||
```
|
```
|
||||||
|
|
||||||
The importer for Project Diva Arcade will all required data in order to use
|
The importer for Project Diva Arcade will all required data in order to use
|
||||||
@ -303,7 +285,7 @@ python dbutils.py --game SBZV upgrade
|
|||||||
In order to use the importer locate your game installation folder and execute:
|
In order to use the importer locate your game installation folder and execute:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDDT --version <version ID> --binfolder /path/to/game/folder --optfolder /path/to/game/option/folder
|
python read.py --game SDDT --version <Version ID> --binfolder </path/to/game/mu3_Data> --optfolder </path/to/game/option/folder>
|
||||||
```
|
```
|
||||||
|
|
||||||
The importer for O.N.G.E.K.I. will all all Cards, Music and Events.
|
The importer for O.N.G.E.K.I. will all all Cards, Music and Events.
|
||||||
@ -435,19 +417,19 @@ In order to use the importer you need to use the provided `.csv` files (which ar
|
|||||||
option folders:
|
option folders:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDED --version <version ID> --binfolder titles/cm/cm_data --optfolder /path/to/cardmaker/option/folder
|
python read.py --game SDED --version <Version ID> --binfolder titles/cm/cm_data --optfolder </path/to/cardmaker/option/folder>
|
||||||
```
|
```
|
||||||
|
|
||||||
**If you haven't already executed the O.N.G.E.K.I. importer, make sure you import all cards!**
|
**If you haven't already executed the O.N.G.E.K.I. importer, make sure you import all cards!**
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDDT --version <version ID> --binfolder /path/to/game/folder --optfolder /path/to/game/option/folder
|
python read.py --game SDDT --version <Version ID> --binfolder </path/to/ongeki/mu3_Data> --optfolder </path/to/ongeki/option/folder>
|
||||||
```
|
```
|
||||||
|
|
||||||
Also make sure to import all maimai DX and CHUNITHM data as well:
|
Also make sure to import all maimai DX and CHUNITHM data as well:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDED --version <version ID> --binfolder /path/to/cardmaker/CardMaker_Data
|
python read.py --game SDED --version <Version ID> --binfolder </path/to/cardmaker/CardMaker_Data> --optfolder </path/to/cardmaker/option/folder>
|
||||||
```
|
```
|
||||||
|
|
||||||
The importer for Card Maker will import all required Gachas (Banners) and cards (for maimai DX/CHUNITHM) and the hardcoded
|
The importer for Card Maker will import all required Gachas (Banners) and cards (for maimai DX/CHUNITHM) and the hardcoded
|
||||||
@ -540,7 +522,7 @@ Gacha IDs up to 1140 will be loaded for CM 1.34 and all gachas will be loaded fo
|
|||||||
In order to use the importer locate your game installation folder and execute:
|
In order to use the importer locate your game installation folder and execute:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDFE --version <version ID> --binfolder /path/to/game/WindowsNoEditor/Mercury/Content
|
python read.py --game SDFE --version <Version ID> --binfolder </path/to/game/WindowsNoEditor/Mercury/Content>
|
||||||
```
|
```
|
||||||
|
|
||||||
The importer for WACCA will import all Music data.
|
The importer for WACCA will import all Music data.
|
||||||
@ -614,7 +596,7 @@ Below is a list of VIP rewards. Currently, VIP is not implemented, and thus thes
|
|||||||
In order to use the importer locate your game installation folder and execute:
|
In order to use the importer locate your game installation folder and execute:
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
python read.py --game SDEW --version <version ID> --binfolder /path/to/game/extractedassets
|
python read.py --game SDEW --version <Version ID> --binfolder </path/to/game/extractedassets>
|
||||||
```
|
```
|
||||||
|
|
||||||
The importer for SAO will import all items, heroes, support skills and titles data.
|
The importer for SAO will import all items, heroes, support skills and titles data.
|
||||||
@ -687,9 +669,9 @@ Config file is located in `config/idac.yaml`.
|
|||||||
| `port_matching` | Port number for the Online Battle Matching |
|
| `port_matching` | Port number for the Online Battle Matching |
|
||||||
| `port_echo1/2` | Port numbers for Echos |
|
| `port_echo1/2` | Port numbers for Echos |
|
||||||
| `port_matching_p2p` | Port number for Online Battle (currently unsupported) |
|
| `port_matching_p2p` | Port number for Online Battle (currently unsupported) |
|
||||||
| `stamp.enable` | Enables/Disabled the play stamp events |
|
| `stamp.enable` | Enables/Disabled the play stamp events |
|
||||||
| `stamp.enabled_stamps` | Define up to 3 play stamp events (without `.json` extension, which are placed in `titles/idac/data/stamps`) |
|
| `stamp.enabled_stamps` | Define up to 3 play stamp events (without `.json` extension, which are placed in `titles/idac/data/stamps`) |
|
||||||
| `timetrial.enable` | Enables/Disables the time trial event |
|
| `timetrial.enable` | Enables/Disables the time trial event |
|
||||||
| `timetrial.enabled_timetrial` | Define one! trial event (without `.json` extension, which are placed in `titles/idac/data/timetrial`) |
|
| `timetrial.enabled_timetrial` | Define one! trial event (without `.json` extension, which are placed in `titles/idac/data/timetrial`) |
|
||||||
|
|
||||||
|
|
||||||
@ -702,6 +684,7 @@ python dbutils.py --game SDGT upgrade
|
|||||||
```
|
```
|
||||||
|
|
||||||
### Notes
|
### Notes
|
||||||
|
|
||||||
- Online Battle is not supported
|
- Online Battle is not supported
|
||||||
- Online Battle Matching is not supported
|
- Online Battle Matching is not supported
|
||||||
|
|
||||||
@ -745,11 +728,10 @@ python dbutils.py --game SDGT upgrade
|
|||||||
|
|
||||||
### TimeRelease Courses:
|
### TimeRelease Courses:
|
||||||
|
|
||||||
|
|
||||||
| Course ID | Course Name | Direction |
|
| Course ID | Course Name | Direction |
|
||||||
| --------- | ------------------------- | ------------------------ |
|
| --------- | ------------------------- | ------------------------ |
|
||||||
| 0 | Akina Lake(秋名湖) | CounterClockwise(左周り) |
|
| 0 | Lake Akina(秋名湖) | CounterClockwise(左周り) |
|
||||||
| 2 | Akina Lake(秋名湖) | Clockwise(右周り) |
|
| 2 | Lake Akina(秋名湖) | Clockwise(右周り) |
|
||||||
| 52 | Hakone(箱根) | Downhill(下り) |
|
| 52 | Hakone(箱根) | Downhill(下り) |
|
||||||
| 54 | Hakone(箱根) | Hillclimb(上り) |
|
| 54 | Hakone(箱根) | Hillclimb(上り) |
|
||||||
| 36 | Usui(碓氷) | CounterClockwise(左周り) |
|
| 36 | Usui(碓氷) | CounterClockwise(左周り) |
|
||||||
@ -762,10 +744,10 @@ python dbutils.py --game SDGT upgrade
|
|||||||
| 14 | Akina(秋名) | Hillclimb(上り) |
|
| 14 | Akina(秋名) | Hillclimb(上り) |
|
||||||
| 16 | Irohazaka(いろは坂) | Downhill(下り) |
|
| 16 | Irohazaka(いろは坂) | Downhill(下り) |
|
||||||
| 18 | Irohazaka(いろは坂) | Reverse(逆走) |
|
| 18 | Irohazaka(いろは坂) | Reverse(逆走) |
|
||||||
| 56 | Momiji Line(もみじライン) | Downhill(下り) |
|
|
||||||
| 58 | Momiji Line(もみじライン) | Hillclimb(上り) |
|
|
||||||
| 20 | Tsukuba(筑波) | Outbound(往路) |
|
| 20 | Tsukuba(筑波) | Outbound(往路) |
|
||||||
| 22 | Tsukuba(筑波) | Inbound(復路) |
|
| 22 | Tsukuba(筑波) | Inbound(復路) |
|
||||||
|
| 56 | Momiji Line(もみじライン) | Downhill(下り) |
|
||||||
|
| 58 | Momiji Line(もみじライン) | Hillclimb(上り) |
|
||||||
| 24 | Happogahara(八方ヶ原) | Outbound(往路) |
|
| 24 | Happogahara(八方ヶ原) | Outbound(往路) |
|
||||||
| 26 | Happogahara(八方ヶ原) | Inbound(復路) |
|
| 26 | Happogahara(八方ヶ原) | Inbound(復路) |
|
||||||
| 40 | Sadamine(定峰) | Downhill(下り) |
|
| 40 | Sadamine(定峰) | Downhill(下り) |
|
||||||
@ -777,7 +759,54 @@ python dbutils.py --game SDGT upgrade
|
|||||||
| 68 | Odawara(小田原) | Forward(順走) |
|
| 68 | Odawara(小田原) | Forward(順走) |
|
||||||
| 70 | Odawara(小田原) | Reverse(逆走) |
|
| 70 | Odawara(小田原) | Reverse(逆走) |
|
||||||
|
|
||||||
### Credits
|
|
||||||
|
### TimeRelease `announce_image`:
|
||||||
|
|
||||||
|
- `save_filename`: Filename without file extension saved in the folder `ImageDelivery`
|
||||||
|
- `url`: URL to the file on the server with the corresponding file extension (.djg/.gpg)
|
||||||
|
(except for `display_id=9` where the url is empty)
|
||||||
|
- `open_dt`: UNIX timestamp when it should be displayed
|
||||||
|
- `close_dt`: UNIX timestamp when it should be hidden
|
||||||
|
- `display_id`: One of the following IDS:
|
||||||
|
|
||||||
|
| Display ID | Description |
|
||||||
|
| ---------------------------------------- | ------------------------------------------------------------------------------------------------- |
|
||||||
|
| 1 | ADV image in the size 1280x720, shown during attract |
|
||||||
|
| 2 | Start image in the size 1280x720, shown in the Main Menu after selection the corresponding banner |
|
||||||
|
| 3 | Banner image in the size 640×120, shown in the Main Menu |
|
||||||
|
| 5 | Stamp Background image in the size 1780x608 |
|
||||||
|
| 6 | Online Battle round image in the size 1920x1080 |
|
||||||
|
| 8 | Stamp Pickup image in the size 624x300, also requires `target_id` set |
|
||||||
|
| 9 | Attract video from the `C:/Mount/Option` folder on real hardware, also requires a `target_id` set |
|
||||||
|
|
||||||
|
- `target_id`:
|
||||||
|
- Always 0 unless:
|
||||||
|
- `display_id=8`: Matches an existing stamp pickup abolsute `reward_setting_masu`
|
||||||
|
and will replace the stock image with the provided one from `url`
|
||||||
|
- `display_id=9`: Matches the id from `C:/Mount/Option/MV01/targetXXX.bin`,
|
||||||
|
where XXX is the `target_id`
|
||||||
|
- `page`:
|
||||||
|
- Defines the order in which the images being shown, where 1 is the first image
|
||||||
|
- `display_id` 1, 2, 3: The `page` has to match, so the corresponding images
|
||||||
|
of an event are shown correctly
|
||||||
|
- `display_id` 7, 8: The `page` defines the `sheet_design` in the play stamps
|
||||||
|
- `time`: The time in sec for an image to be shown, always 10
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"save_filename": "adv_01_example",
|
||||||
|
"url": "http://example.com/images/04721D5D3595FD29778011EC73A8AE77.dpg",
|
||||||
|
"open_dt": 1514761200,
|
||||||
|
"close_dt": 1861916400,
|
||||||
|
"display_id": 1,
|
||||||
|
"target_id": 0,
|
||||||
|
"page": 1,
|
||||||
|
"time": 10
|
||||||
|
},
|
||||||
|
```
|
||||||
|
|
||||||
|
### Credits:
|
||||||
|
|
||||||
- Bottersnike: For the HUGE Reverse Engineering help
|
- Bottersnike: For the HUGE Reverse Engineering help
|
||||||
- Kinako: For helping with the timeRelease unlocking of courses and special mode
|
- Kinako: For helping with the timeRelease unlocking of courses and special mode
|
||||||
|
|
||||||
|
@ -19,6 +19,9 @@ version:
|
|||||||
13:
|
13:
|
||||||
rom: 2.10.00
|
rom: 2.10.00
|
||||||
data: 2.10.00
|
data: 2.10.00
|
||||||
|
14:
|
||||||
|
rom: 2.15.00
|
||||||
|
data: 2.15.00
|
||||||
|
|
||||||
crypto:
|
crypto:
|
||||||
encrypted_only: False
|
encrypted_only: False
|
@ -56,6 +56,8 @@ aimedb:
|
|||||||
loglevel: "info"
|
loglevel: "info"
|
||||||
port: 22345
|
port: 22345
|
||||||
key: ""
|
key: ""
|
||||||
|
id_secret: ""
|
||||||
|
id_lifetime_seconds: 86400
|
||||||
|
|
||||||
mucha:
|
mucha:
|
||||||
enable: False
|
enable: False
|
||||||
|
@ -5,7 +5,7 @@ A network service emulator for games running SEGA'S ALL.NET service, and similar
|
|||||||
Games listed below have been tested and confirmed working. Only game versions older then the version currently active in arcades, or games versions that have not recieved a major update in over one year, are supported.
|
Games listed below have been tested and confirmed working. Only game versions older then the version currently active in arcades, or games versions that have not recieved a major update in over one year, are supported.
|
||||||
|
|
||||||
+ CHUNITHM
|
+ CHUNITHM
|
||||||
+ All versions up to SUN
|
+ All versions up to SUN PLUS
|
||||||
|
|
||||||
+ crossbeats REV.
|
+ crossbeats REV.
|
||||||
+ All versions + omnimix
|
+ All versions + omnimix
|
||||||
|
@ -1,20 +1,21 @@
|
|||||||
mypy
|
mypy
|
||||||
wheel
|
wheel
|
||||||
twisted
|
twisted
|
||||||
pytz
|
pytz
|
||||||
pyyaml
|
pyyaml
|
||||||
sqlalchemy==1.4.46
|
sqlalchemy==1.4.46
|
||||||
mysqlclient
|
mysqlclient
|
||||||
pyopenssl
|
pyopenssl
|
||||||
service_identity
|
service_identity
|
||||||
PyCryptodome
|
PyCryptodome
|
||||||
inflection
|
inflection
|
||||||
coloredlogs
|
coloredlogs
|
||||||
pylibmc; platform_system != "Windows"
|
pylibmc; platform_system != "Windows"
|
||||||
wacky
|
wacky
|
||||||
Routes
|
Routes
|
||||||
bcrypt
|
bcrypt
|
||||||
jinja2
|
jinja2
|
||||||
protobuf
|
protobuf
|
||||||
autobahn
|
autobahn
|
||||||
pillow
|
pillow
|
||||||
|
pyjwt
|
||||||
|
@ -6,5 +6,5 @@ from titles.chuni.read import ChuniReader
|
|||||||
index = ChuniServlet
|
index = ChuniServlet
|
||||||
database = ChuniData
|
database = ChuniData
|
||||||
reader = ChuniReader
|
reader = ChuniReader
|
||||||
game_codes = [ChuniConstants.GAME_CODE, ChuniConstants.GAME_CODE_NEW]
|
game_codes = [ChuniConstants.GAME_CODE, ChuniConstants.GAME_CODE_NEW, ChuniConstants.GAME_CODE_INT]
|
||||||
current_schema_version = 4
|
current_schema_version = 5
|
@ -240,7 +240,6 @@ class ChuniBase:
|
|||||||
"isDumpUpload": "false",
|
"isDumpUpload": "false",
|
||||||
"isAou": "false",
|
"isAou": "false",
|
||||||
}
|
}
|
||||||
|
|
||||||
def handle_get_user_activity_api_request(self, data: Dict) -> Dict:
|
def handle_get_user_activity_api_request(self, data: Dict) -> Dict:
|
||||||
user_activity_list = self.data.profile.get_profile_activity(
|
user_activity_list = self.data.profile.get_profile_activity(
|
||||||
data["userId"], data["kind"]
|
data["userId"], data["kind"]
|
||||||
@ -313,6 +312,13 @@ class ChuniBase:
|
|||||||
"userChargeList": charge_list,
|
"userChargeList": charge_list,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def handle_get_user_recent_player_api_request(self, data: Dict) -> Dict:
|
||||||
|
return {
|
||||||
|
"userId": data["userId"],
|
||||||
|
"length": 0,
|
||||||
|
"userRecentPlayerList": [], # playUserId, playUserName, playDate, friendPoint
|
||||||
|
}
|
||||||
|
|
||||||
def handle_get_user_course_api_request(self, data: Dict) -> Dict:
|
def handle_get_user_course_api_request(self, data: Dict) -> Dict:
|
||||||
user_course_list = self.data.score.get_courses(data["userId"])
|
user_course_list = self.data.score.get_courses(data["userId"])
|
||||||
if user_course_list is None:
|
if user_course_list is None:
|
||||||
@ -324,8 +330,8 @@ class ChuniBase:
|
|||||||
}
|
}
|
||||||
|
|
||||||
course_list = []
|
course_list = []
|
||||||
next_idx = int(data["nextIndex"])
|
next_idx = int(data.get("nextIndex", 0))
|
||||||
max_ct = int(data["maxCount"])
|
max_ct = int(data.get("maxCount", 300))
|
||||||
|
|
||||||
for x in range(next_idx, len(user_course_list)):
|
for x in range(next_idx, len(user_course_list)):
|
||||||
tmp = user_course_list[x]._asdict()
|
tmp = user_course_list[x]._asdict()
|
||||||
@ -402,6 +408,7 @@ class ChuniBase:
|
|||||||
"userId": data["userId"],
|
"userId": data["userId"],
|
||||||
"userRivalData": userRivalData
|
"userRivalData": userRivalData
|
||||||
}
|
}
|
||||||
|
|
||||||
def handle_get_user_rival_music_api_request(self, data: Dict) -> Dict:
|
def handle_get_user_rival_music_api_request(self, data: Dict) -> Dict:
|
||||||
rival_id = data["rivalId"]
|
rival_id = data["rivalId"]
|
||||||
next_index = int(data["nextIndex"])
|
next_index = int(data["nextIndex"])
|
||||||
@ -412,13 +419,13 @@ class ChuniBase:
|
|||||||
all_entries = self.data.score.get_rival_music(rival_id)
|
all_entries = self.data.score.get_rival_music(rival_id)
|
||||||
|
|
||||||
# Process the entries based on max_count and nextIndex
|
# Process the entries based on max_count and nextIndex
|
||||||
for music in all_entries[next_index:]:
|
for music in all_entries:
|
||||||
music_id = music["musicId"]
|
music_id = music["musicId"]
|
||||||
level = music["level"]
|
level = music["level"]
|
||||||
score = music["scoreMax"]
|
score = music["scoreMax"]
|
||||||
rank = music["scoreRank"]
|
rank = music["scoreRank"]
|
||||||
|
|
||||||
# Create a music entry for the current music_id
|
# Create a music entry for the current music_id if it's unique
|
||||||
music_entry = next((entry for entry in user_rival_music_list if entry["musicId"] == music_id), None)
|
music_entry = next((entry for entry in user_rival_music_list if entry["musicId"] == music_id), None)
|
||||||
if music_entry is None:
|
if music_entry is None:
|
||||||
music_entry = {
|
music_entry = {
|
||||||
@ -428,15 +435,20 @@ class ChuniBase:
|
|||||||
}
|
}
|
||||||
user_rival_music_list.append(music_entry)
|
user_rival_music_list.append(music_entry)
|
||||||
|
|
||||||
# Create a level entry for the current level
|
# Create a level entry for the current level if it's unique or has a higher score
|
||||||
level_entry = {
|
level_entry = next((entry for entry in music_entry["userRivalMusicDetailList"] if entry["level"] == level), None)
|
||||||
"level": level,
|
if level_entry is None:
|
||||||
"scoreMax": score,
|
level_entry = {
|
||||||
"scoreRank": rank
|
"level": level,
|
||||||
}
|
"scoreMax": score,
|
||||||
music_entry["userRivalMusicDetailList"].append(level_entry)
|
"scoreRank": rank
|
||||||
|
}
|
||||||
|
music_entry["userRivalMusicDetailList"].append(level_entry)
|
||||||
|
elif score > level_entry["scoreMax"]:
|
||||||
|
level_entry["scoreMax"] = score
|
||||||
|
level_entry["scoreRank"] = rank
|
||||||
|
|
||||||
# Calculate the length for each "musicId" by counting the levels
|
# Calculate the length for each "musicId" by counting the unique levels
|
||||||
for music_entry in user_rival_music_list:
|
for music_entry in user_rival_music_list:
|
||||||
music_entry["length"] = len(music_entry["userRivalMusicDetailList"])
|
music_entry["length"] = len(music_entry["userRivalMusicDetailList"])
|
||||||
|
|
||||||
@ -444,11 +456,12 @@ class ChuniBase:
|
|||||||
result = {
|
result = {
|
||||||
"userId": data["userId"],
|
"userId": data["userId"],
|
||||||
"rivalId": data["rivalId"],
|
"rivalId": data["rivalId"],
|
||||||
"nextIndex": str(next_index + len(all_entries) if len(all_entries) <= len(user_rival_music_list) else -1),
|
"nextIndex": str(next_index + len(user_rival_music_list[next_index: next_index + max_count]) if max_count <= len(user_rival_music_list[next_index: next_index + max_count]) else -1),
|
||||||
"userRivalMusicList": user_rival_music_list[:max_count]
|
"userRivalMusicList": user_rival_music_list[next_index: next_index + max_count]
|
||||||
}
|
}
|
||||||
|
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def handle_get_user_favorite_item_api_request(self, data: Dict) -> Dict:
|
def handle_get_user_favorite_item_api_request(self, data: Dict) -> Dict:
|
||||||
user_fav_item_list = []
|
user_fav_item_list = []
|
||||||
|
|
||||||
@ -738,6 +751,7 @@ class ChuniBase:
|
|||||||
"aggrDate": data["playDate"],
|
"aggrDate": data["playDate"],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
def handle_get_team_course_setting_api_request(self, data: Dict) -> Dict:
|
def handle_get_team_course_setting_api_request(self, data: Dict) -> Dict:
|
||||||
return {
|
return {
|
||||||
"userId": data["userId"],
|
"userId": data["userId"],
|
||||||
@ -863,9 +877,12 @@ class ChuniBase:
|
|||||||
if "userPlaylogList" in upsert:
|
if "userPlaylogList" in upsert:
|
||||||
for playlog in upsert["userPlaylogList"]:
|
for playlog in upsert["userPlaylogList"]:
|
||||||
# convert the player names to utf-8
|
# convert the player names to utf-8
|
||||||
playlog["playedUserName1"] = self.read_wtf8(playlog["playedUserName1"])
|
if playlog["playedUserName1"] is not None:
|
||||||
playlog["playedUserName2"] = self.read_wtf8(playlog["playedUserName2"])
|
playlog["playedUserName1"] = self.read_wtf8(playlog["playedUserName1"])
|
||||||
playlog["playedUserName3"] = self.read_wtf8(playlog["playedUserName3"])
|
if playlog["playedUserName2"] is not None:
|
||||||
|
playlog["playedUserName2"] = self.read_wtf8(playlog["playedUserName2"])
|
||||||
|
if playlog["playedUserName3"] is not None:
|
||||||
|
playlog["playedUserName3"] = self.read_wtf8(playlog["playedUserName3"])
|
||||||
self.data.score.put_playlog(user_id, playlog, self.version)
|
self.data.score.put_playlog(user_id, playlog, self.version)
|
||||||
|
|
||||||
if "userTeamPoint" in upsert:
|
if "userTeamPoint" in upsert:
|
||||||
@ -905,6 +922,10 @@ class ChuniBase:
|
|||||||
self.data.item.put_login_bonus(
|
self.data.item.put_login_bonus(
|
||||||
user_id, self.version, login["presetId"], isWatched=True
|
user_id, self.version, login["presetId"], isWatched=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if "userRecentPlayerList" in upsert: # TODO: Seen in Air, maybe implement sometime
|
||||||
|
for rp in upsert["userRecentPlayerList"]:
|
||||||
|
pass
|
||||||
|
|
||||||
return {"returnCode": "1"}
|
return {"returnCode": "1"}
|
||||||
|
|
||||||
@ -933,4 +954,4 @@ class ChuniBase:
|
|||||||
return {
|
return {
|
||||||
"userId": data["userId"],
|
"userId": data["userId"],
|
||||||
"userNetBattleData": {"recentNBSelectMusicList": []},
|
"userNetBattleData": {"recentNBSelectMusicList": []},
|
||||||
}
|
}
|
@ -1,6 +1,7 @@
|
|||||||
class ChuniConstants:
|
class ChuniConstants:
|
||||||
GAME_CODE = "SDBT"
|
GAME_CODE = "SDBT"
|
||||||
GAME_CODE_NEW = "SDHD"
|
GAME_CODE_NEW = "SDHD"
|
||||||
|
GAME_CODE_INT = "SDGS"
|
||||||
|
|
||||||
CONFIG_NAME = "chuni.yaml"
|
CONFIG_NAME = "chuni.yaml"
|
||||||
|
|
||||||
@ -18,7 +19,7 @@ class ChuniConstants:
|
|||||||
VER_CHUNITHM_NEW = 11
|
VER_CHUNITHM_NEW = 11
|
||||||
VER_CHUNITHM_NEW_PLUS = 12
|
VER_CHUNITHM_NEW_PLUS = 12
|
||||||
VER_CHUNITHM_SUN = 13
|
VER_CHUNITHM_SUN = 13
|
||||||
|
VER_CHUNITHM_SUN_PLUS = 14
|
||||||
VERSION_NAMES = [
|
VERSION_NAMES = [
|
||||||
"CHUNITHM",
|
"CHUNITHM",
|
||||||
"CHUNITHM PLUS",
|
"CHUNITHM PLUS",
|
||||||
@ -33,9 +34,10 @@ class ChuniConstants:
|
|||||||
"CHUNITHM PARADISE",
|
"CHUNITHM PARADISE",
|
||||||
"CHUNITHM NEW!!",
|
"CHUNITHM NEW!!",
|
||||||
"CHUNITHM NEW PLUS!!",
|
"CHUNITHM NEW PLUS!!",
|
||||||
"CHUNITHM SUN"
|
"CHUNITHM SUN",
|
||||||
|
"CHUNITHM SUN PLUS"
|
||||||
]
|
]
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def game_ver_to_string(cls, ver: int):
|
def game_ver_to_string(cls, ver: int):
|
||||||
return cls.VERSION_NAMES[ver]
|
return cls.VERSION_NAMES[ver]
|
@ -31,6 +31,7 @@ from .paradise import ChuniParadise
|
|||||||
from .new import ChuniNew
|
from .new import ChuniNew
|
||||||
from .newplus import ChuniNewPlus
|
from .newplus import ChuniNewPlus
|
||||||
from .sun import ChuniSun
|
from .sun import ChuniSun
|
||||||
|
from .sunplus import ChuniSunPlus
|
||||||
|
|
||||||
|
|
||||||
class ChuniServlet(BaseServlet):
|
class ChuniServlet(BaseServlet):
|
||||||
@ -58,6 +59,7 @@ class ChuniServlet(BaseServlet):
|
|||||||
ChuniNew,
|
ChuniNew,
|
||||||
ChuniNewPlus,
|
ChuniNewPlus,
|
||||||
ChuniSun,
|
ChuniSun,
|
||||||
|
ChuniSunPlus,
|
||||||
]
|
]
|
||||||
|
|
||||||
self.logger = logging.getLogger("chuni")
|
self.logger = logging.getLogger("chuni")
|
||||||
@ -99,8 +101,14 @@ class ChuniServlet(BaseServlet):
|
|||||||
]
|
]
|
||||||
for method in method_list:
|
for method in method_list:
|
||||||
method_fixed = inflection.camelize(method)[6:-7]
|
method_fixed = inflection.camelize(method)[6:-7]
|
||||||
# number of iterations was changed to 70 in SUN
|
# number of iterations was changed to 70 in SUN and then to 36
|
||||||
iter_count = 70 if version >= ChuniConstants.VER_CHUNITHM_SUN else 44
|
if version == ChuniConstants.VER_CHUNITHM_SUN_PLUS:
|
||||||
|
iter_count = 36
|
||||||
|
elif version == ChuniConstants.VER_CHUNITHM_SUN:
|
||||||
|
iter_count = 70
|
||||||
|
else:
|
||||||
|
iter_count = 44
|
||||||
|
|
||||||
hash = PBKDF2(
|
hash = PBKDF2(
|
||||||
method_fixed,
|
method_fixed,
|
||||||
bytes.fromhex(keys[2]),
|
bytes.fromhex(keys[2]),
|
||||||
@ -120,8 +128,8 @@ class ChuniServlet(BaseServlet):
|
|||||||
return (
|
return (
|
||||||
[],
|
[],
|
||||||
[
|
[
|
||||||
("render_POST", "/{version}/ChuniServlet/{endpoint}", {}),
|
("render_POST", "/{game}/{version}/ChuniServlet/{endpoint}", {}),
|
||||||
("render_POST", "/{version}/ChuniServlet/MatchingServer/{endpoint}", {})
|
("render_POST", "/{game}/{version}/ChuniServlet/MatchingServer/{endpoint}", {})
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -139,53 +147,69 @@ class ChuniServlet(BaseServlet):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
||||||
return (f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/{game_ver}/", "")
|
return (f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/{game_code}/{game_ver}/", self.core_cfg.title.hostname)
|
||||||
|
|
||||||
return (f"http://{self.core_cfg.title.hostname}/{game_ver}/", "")
|
return (f"http://{self.core_cfg.title.hostname}/{game_code}/{game_ver}/", self.core_cfg.title.hostname)
|
||||||
|
|
||||||
def render_POST(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
def render_POST(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
||||||
endpoint = matchers['endpoint']
|
endpoint = matchers['endpoint']
|
||||||
version = int(matchers['version'])
|
version = int(matchers['version'])
|
||||||
|
game_code = matchers['game']
|
||||||
|
|
||||||
if endpoint.lower() == "ping":
|
if endpoint.lower() == "ping":
|
||||||
return zlib.compress(b'{"returnCode": "1"}')
|
return zlib.compress(b'{"returnCode": "1"}')
|
||||||
|
|
||||||
req_raw = request.content.getvalue()
|
req_raw = request.content.getvalue()
|
||||||
|
|
||||||
encrtped = False
|
encrtped = False
|
||||||
internal_ver = 0
|
internal_ver = 0
|
||||||
client_ip = Utils.get_ip_addr(request)
|
client_ip = Utils.get_ip_addr(request)
|
||||||
|
|
||||||
if version < 105: # 1.0
|
if game_code == "SDHD" or game_code == "SDBT": # JP
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM
|
if version < 105: # 1.0
|
||||||
elif version >= 105 and version < 110: # PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_PLUS
|
elif version >= 105 and version < 110: # PLUS
|
||||||
elif version >= 110 and version < 115: # AIR
|
internal_ver = ChuniConstants.VER_CHUNITHM_PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_AIR
|
elif version >= 110 and version < 115: # AIR
|
||||||
elif version >= 115 and version < 120: # AIR PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_AIR
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_AIR_PLUS
|
elif version >= 115 and version < 120: # AIR PLUS
|
||||||
elif version >= 120 and version < 125: # STAR
|
internal_ver = ChuniConstants.VER_CHUNITHM_AIR_PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_STAR
|
elif version >= 120 and version < 125: # STAR
|
||||||
elif version >= 125 and version < 130: # STAR PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_STAR
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_STAR_PLUS
|
elif version >= 125 and version < 130: # STAR PLUS
|
||||||
elif version >= 130 and version < 135: # AMAZON
|
internal_ver = ChuniConstants.VER_CHUNITHM_STAR_PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_AMAZON
|
elif version >= 130 and version < 135: # AMAZON
|
||||||
elif version >= 135 and version < 140: # AMAZON PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_AMAZON
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_AMAZON_PLUS
|
elif version >= 135 and version < 140: # AMAZON PLUS
|
||||||
elif version >= 140 and version < 145: # CRYSTAL
|
internal_ver = ChuniConstants.VER_CHUNITHM_AMAZON_PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_CRYSTAL
|
elif version >= 140 and version < 145: # CRYSTAL
|
||||||
elif version >= 145 and version < 150: # CRYSTAL PLUS
|
internal_ver = ChuniConstants.VER_CHUNITHM_CRYSTAL
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS
|
elif version >= 145 and version < 150: # CRYSTAL PLUS
|
||||||
elif version >= 150 and version < 200: # PARADISE
|
internal_ver = ChuniConstants.VER_CHUNITHM_CRYSTAL_PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_PARADISE
|
elif version >= 150 and version < 200: # PARADISE
|
||||||
elif version >= 200 and version < 205: # NEW!!
|
internal_ver = ChuniConstants.VER_CHUNITHM_PARADISE
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
elif version >= 200 and version < 205: # NEW!!
|
||||||
elif version >= 205 and version < 210: # NEW PLUS!!
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
elif version >= 205 and version < 210: # NEW PLUS!!
|
||||||
elif version >= 210: # SUN
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
||||||
internal_ver = ChuniConstants.VER_CHUNITHM_SUN
|
elif version >= 210 and version < 215: # SUN
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_SUN
|
||||||
|
elif version >= 215: # SUN
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_SUN_PLUS
|
||||||
|
elif game_code == "SDGS": # Int
|
||||||
|
if version < 110: # SUPERSTAR
|
||||||
|
internal_ver = ChuniConstants.PARADISE
|
||||||
|
elif version >= 110 and version < 115: # NEW
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW
|
||||||
|
elif version >= 115 and version < 120: # NEW PLUS!!
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_NEW_PLUS
|
||||||
|
elif version >= 120 and version < 125: # SUN
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_SUN
|
||||||
|
elif version >= 125: # SUN PLUS
|
||||||
|
internal_ver = ChuniConstants.VER_CHUNITHM_SUN_PLUS
|
||||||
|
|
||||||
if all(c in string.hexdigits for c in endpoint) and len(endpoint) == 32:
|
if all(c in string.hexdigits for c in endpoint) and len(endpoint) == 32:
|
||||||
# If we get a 32 character long hex string, it's a hash and we're
|
# If we get a 32 character long hex string, it's a hash and we're
|
||||||
@ -250,6 +274,7 @@ class ChuniServlet(BaseServlet):
|
|||||||
self.logger.info(f"v{version} {endpoint} request from {client_ip}")
|
self.logger.info(f"v{version} {endpoint} request from {client_ip}")
|
||||||
self.logger.debug(req_data)
|
self.logger.debug(req_data)
|
||||||
|
|
||||||
|
endpoint = endpoint.replace("C3Exp", "") if game_code == "SDGS" else endpoint
|
||||||
func_to_find = "handle_" + inflection.underscore(endpoint) + "_request"
|
func_to_find = "handle_" + inflection.underscore(endpoint) + "_request"
|
||||||
handler_cls = self.versions[internal_ver](self.core_cfg, self.game_cfg)
|
handler_cls = self.versions[internal_ver](self.core_cfg, self.game_cfg)
|
||||||
|
|
||||||
@ -284,4 +309,4 @@ class ChuniServlet(BaseServlet):
|
|||||||
bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][1]),
|
bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][1]),
|
||||||
)
|
)
|
||||||
|
|
||||||
return crypt.encrypt(padded)
|
return crypt.encrypt(padded)
|
@ -71,11 +71,11 @@ class ChuniNew(ChuniBase):
|
|||||||
"matchErrorLimit": 9999,
|
"matchErrorLimit": 9999,
|
||||||
"romVersion": self.game_cfg.version.version(self.version)["rom"],
|
"romVersion": self.game_cfg.version.version(self.version)["rom"],
|
||||||
"dataVersion": self.game_cfg.version.version(self.version)["data"],
|
"dataVersion": self.game_cfg.version.version(self.version)["data"],
|
||||||
"matchingUri": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/200/ChuniServlet/",
|
"matchingUri": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/200/ChuniServlet/",
|
||||||
"matchingUriX": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/200/ChuniServlet/",
|
"matchingUriX": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/200/ChuniServlet/",
|
||||||
# might be really important for online battle to connect the cabs via UDP port 50201
|
# might be really important for online battle to connect the cabs via UDP port 50201
|
||||||
"udpHolePunchUri": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/200/ChuniServlet/",
|
"udpHolePunchUri": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/200/ChuniServlet/",
|
||||||
"reflectorUri": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/200/ChuniServlet/",
|
"reflectorUri": f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/200/ChuniServlet/",
|
||||||
},
|
},
|
||||||
"isDumpUpload": False,
|
"isDumpUpload": False,
|
||||||
"isAou": False,
|
"isAou": False,
|
||||||
|
@ -21,16 +21,16 @@ class ChuniNewPlus(ChuniNew):
|
|||||||
]
|
]
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"matchingUri"
|
"matchingUri"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/205/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"matchingUriX"
|
"matchingUriX"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/205/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"udpHolePunchUri"
|
"udpHolePunchUri"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/205/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"reflectorUri"
|
"reflectorUri"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/205/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/205/ChuniServlet/"
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
||||||
@ -38,4 +38,4 @@ class ChuniNewPlus(ChuniNew):
|
|||||||
|
|
||||||
# hardcode lastDataVersion for CardMaker 1.35 A028
|
# hardcode lastDataVersion for CardMaker 1.35 A028
|
||||||
user_data["lastDataVersion"] = "2.05.00"
|
user_data["lastDataVersion"] = "2.05.00"
|
||||||
return user_data
|
return user_data
|
@ -24,7 +24,7 @@ course = Table(
|
|||||||
Column("scoreMax", Integer),
|
Column("scoreMax", Integer),
|
||||||
Column("isFullCombo", Boolean),
|
Column("isFullCombo", Boolean),
|
||||||
Column("isAllJustice", Boolean),
|
Column("isAllJustice", Boolean),
|
||||||
Column("isSuccess", Boolean),
|
Column("isSuccess", Integer),
|
||||||
Column("scoreRank", Integer),
|
Column("scoreRank", Integer),
|
||||||
Column("eventId", Integer),
|
Column("eventId", Integer),
|
||||||
Column("lastPlayDate", String(25)),
|
Column("lastPlayDate", String(25)),
|
||||||
@ -32,7 +32,7 @@ course = Table(
|
|||||||
Column("param2", Integer),
|
Column("param2", Integer),
|
||||||
Column("param3", Integer),
|
Column("param3", Integer),
|
||||||
Column("param4", Integer),
|
Column("param4", Integer),
|
||||||
Column("isClear", Boolean),
|
Column("isClear", Integer),
|
||||||
Column("theoryCount", Integer),
|
Column("theoryCount", Integer),
|
||||||
Column("orderId", Integer),
|
Column("orderId", Integer),
|
||||||
Column("playerRating", Integer),
|
Column("playerRating", Integer),
|
||||||
@ -60,7 +60,7 @@ best_score = Table(
|
|||||||
Column("maxComboCount", Integer),
|
Column("maxComboCount", Integer),
|
||||||
Column("isFullCombo", Boolean),
|
Column("isFullCombo", Boolean),
|
||||||
Column("isAllJustice", Boolean),
|
Column("isAllJustice", Boolean),
|
||||||
Column("isSuccess", Boolean),
|
Column("isSuccess", Integer),
|
||||||
Column("fullChain", Integer),
|
Column("fullChain", Integer),
|
||||||
Column("maxChain", Integer),
|
Column("maxChain", Integer),
|
||||||
Column("scoreRank", Integer),
|
Column("scoreRank", Integer),
|
||||||
@ -125,7 +125,7 @@ playlog = Table(
|
|||||||
Column("characterId", Integer),
|
Column("characterId", Integer),
|
||||||
Column("skillId", Integer),
|
Column("skillId", Integer),
|
||||||
Column("playKind", Integer),
|
Column("playKind", Integer),
|
||||||
Column("isClear", Boolean),
|
Column("isClear", Integer),
|
||||||
Column("skillLevel", Integer),
|
Column("skillLevel", Integer),
|
||||||
Column("skillEffect", Integer),
|
Column("skillEffect", Integer),
|
||||||
Column("placeName", String(255)),
|
Column("placeName", String(255)),
|
||||||
@ -136,6 +136,7 @@ playlog = Table(
|
|||||||
Column("judgeHeaven", Integer),
|
Column("judgeHeaven", Integer),
|
||||||
Column("regionId", Integer),
|
Column("regionId", Integer),
|
||||||
Column("machineType", Integer),
|
Column("machineType", Integer),
|
||||||
|
Column("ticketId", Integer),
|
||||||
mysql_charset="utf8mb4"
|
mysql_charset="utf8mb4"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -255,4 +256,3 @@ class ChuniScoreData(BaseData):
|
|||||||
if result is None:
|
if result is None:
|
||||||
return None
|
return None
|
||||||
return result.fetchall()
|
return result.fetchall()
|
||||||
|
|
||||||
|
@ -17,16 +17,16 @@ class ChuniSun(ChuniNewPlus):
|
|||||||
ret["gameSetting"]["dataVersion"] = self.game_cfg.version.version(self.version)["data"]
|
ret["gameSetting"]["dataVersion"] = self.game_cfg.version.version(self.version)["data"]
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"matchingUri"
|
"matchingUri"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/210/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"matchingUriX"
|
"matchingUriX"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/210/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"udpHolePunchUri"
|
"udpHolePunchUri"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/210/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
||||||
ret["gameSetting"][
|
ret["gameSetting"][
|
||||||
"reflectorUri"
|
"reflectorUri"
|
||||||
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/210/ChuniServlet/"
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/210/ChuniServlet/"
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
||||||
@ -34,4 +34,4 @@ class ChuniSun(ChuniNewPlus):
|
|||||||
|
|
||||||
# hardcode lastDataVersion for CardMaker 1.35 A032
|
# hardcode lastDataVersion for CardMaker 1.35 A032
|
||||||
user_data["lastDataVersion"] = "2.10.00"
|
user_data["lastDataVersion"] = "2.10.00"
|
||||||
return user_data
|
return user_data
|
37
titles/chuni/sunplus.py
Normal file
37
titles/chuni/sunplus.py
Normal file
@ -0,0 +1,37 @@
|
|||||||
|
from typing import Dict, Any
|
||||||
|
|
||||||
|
from core.config import CoreConfig
|
||||||
|
from titles.chuni.sun import ChuniSun
|
||||||
|
from titles.chuni.const import ChuniConstants
|
||||||
|
from titles.chuni.config import ChuniConfig
|
||||||
|
|
||||||
|
|
||||||
|
class ChuniSunPlus(ChuniSun):
|
||||||
|
def __init__(self, core_cfg: CoreConfig, game_cfg: ChuniConfig) -> None:
|
||||||
|
super().__init__(core_cfg, game_cfg)
|
||||||
|
self.version = ChuniConstants.VER_CHUNITHM_SUN_PLUS
|
||||||
|
|
||||||
|
def handle_get_game_setting_api_request(self, data: Dict) -> Dict:
|
||||||
|
ret = super().handle_get_game_setting_api_request(data)
|
||||||
|
ret["gameSetting"]["romVersion"] = self.game_cfg.version.version(self.version)["rom"]
|
||||||
|
ret["gameSetting"]["dataVersion"] = self.game_cfg.version.version(self.version)["data"]
|
||||||
|
ret["gameSetting"][
|
||||||
|
"matchingUri"
|
||||||
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
||||||
|
ret["gameSetting"][
|
||||||
|
"matchingUriX"
|
||||||
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
||||||
|
ret["gameSetting"][
|
||||||
|
"udpHolePunchUri"
|
||||||
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
||||||
|
ret["gameSetting"][
|
||||||
|
"reflectorUri"
|
||||||
|
] = f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/SDHD/215/ChuniServlet/"
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def handle_cm_get_user_preview_api_request(self, data: Dict) -> Dict:
|
||||||
|
user_data = super().handle_cm_get_user_preview_api_request(data)
|
||||||
|
|
||||||
|
# I don't know if lastDataVersion is going to matter, I don't think CardMaker 1.35 works this far up
|
||||||
|
user_data["lastDataVersion"] = "2.15.00"
|
||||||
|
return user_data
|
@ -45,7 +45,7 @@ class CardMakerBase:
|
|||||||
{
|
{
|
||||||
"modelKind": 0,
|
"modelKind": 0,
|
||||||
"type": 1,
|
"type": 1,
|
||||||
"titleUri": f"{uri}/{self._parse_int_ver(games_ver['chuni'])}/ChuniServlet/",
|
"titleUri": f"{uri}/SDHD/{self._parse_int_ver(games_ver['chuni'])}/ChuniServlet/",
|
||||||
},
|
},
|
||||||
# maimai DX
|
# maimai DX
|
||||||
{
|
{
|
||||||
|
9
titles/cxb/data/rss2/FreeCoupon.csv
Normal file
9
titles/cxb/data/rss2/FreeCoupon.csv
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
1,1412103600,4070908801,1,
|
||||||
|
2,1412103600,4070908801,1,
|
||||||
|
3,1412103600,4070908801,1,
|
||||||
|
4,1412103600,4070908801,1,
|
||||||
|
5,1412103600,4070908801,1,
|
||||||
|
6,1412103600,4070908801,1,
|
||||||
|
7,1412103600,4070908801,1,
|
||||||
|
8,1412103600,4070908801,1,
|
||||||
|
9,1412103600,4070908801,1,
|
|
272
titles/cxb/data/rss2/MusicArchiveList-NonOmni.csv
Normal file
272
titles/cxb/data/rss2/MusicArchiveList-NonOmni.csv
Normal file
@ -0,0 +1,272 @@
|
|||||||
|
tutori2,10000,100000,10,10,10,10,10,0,0,0,0,0,0,100000,
|
||||||
|
tutori3,10000,100000,10,10,10,10,10,0,0,0,0,0,0,100000,
|
||||||
|
tutori4,10000,10100000,10,10,10,10,10,0,0,0,0,0,0,100000,
|
||||||
|
tutori5,10000,100000,10,10,10,10,10,0,0,0,0,0,0,100000,
|
||||||
|
tutori6,10050,10100000,10,10,10,10,10,0,0,0,0,0,0,100000,
|
||||||
|
wannab,10073,800000,90,230,400,650,50,1,1,1,1,1,3,100001,
|
||||||
|
toucho,10000,802000,90,280,440,650,50,1,1,1,1,1,1,100002,
|
||||||
|
ameoto,10000,802000,120,260,470,630,60,1,1,1,1,1,1,100003,
|
||||||
|
kimito,10000,800000,100,260,490,660,70,1,1,1,1,1,1,100004,
|
||||||
|
landin,10000,802000,260,330,490,670,130,1,1,1,1,1,1,100005,
|
||||||
|
aquali,10104,800000,160,340,580,0,110,1,1,1,0,1,4,100006,
|
||||||
|
yiyoyi,10080,800000,140,330,560,700,70,1,1,1,1,1,3,100007,
|
||||||
|
hontno,10022,801000,120,260,530,660,90,1,1,1,1,1,1,100010,
|
||||||
|
binary,10080,800000,170,350,640,890,140,1,1,1,1,1,1,100014,
|
||||||
|
breakd,10000,803000,230,340,570,740,110,1,1,1,1,1,2,100015,
|
||||||
|
higame,10076,800000,200,300,580,710,130,1,1,1,1,1,3,100016,
|
||||||
|
freakw,10104,800000,220,420,650,660,130,1,1,1,1,1,0,100018,
|
||||||
|
giantk,10000,808000,250,530,710,780,110,1,1,1,1,1,3,100021,
|
||||||
|
theepi,10076,800000,190,400,610,750,140,1,1,1,1,1,3,100022,
|
||||||
|
anomie,10076,800000,220,380,610,770,150,1,1,1,1,1,0,100023,
|
||||||
|
azitat,10022,800000,240,550,700,830,140,1,1,1,1,1,0,100024,
|
||||||
|
dazzlj,10000,802000,350,600,800,900,160,1,1,1,1,1,1,100028,
|
||||||
|
aerial,10100,800000,110,280,560,710,50,1,1,1,1,1,1,100039,
|
||||||
|
gingat,10005,800000,130,290,460,610,50,1,1,1,1,1,0,100041,
|
||||||
|
sundro,10000,807000,240,470,750,830,140,1,1,1,1,1,3,100042,
|
||||||
|
childr,10069,800000,240,390,560,620,140,1,1,1,1,1,0,100043,
|
||||||
|
tsukai,10069,802000,190,440,720,760,130,1,1,1,1,1,1,100044,
|
||||||
|
dennou,10000,801000,290,600,760,870,150,1,1,1,1,1,1,100045,
|
||||||
|
romanc,10104,800000,280,550,780,0,100,1,1,1,0,1,0,100047,
|
||||||
|
makaim,10078,2400000,300,500,770,0,230,1,1,1,0,1,3,100054,
|
||||||
|
gyakut,10078,2400000,150,210,460,640,60,1,1,1,1,1,1,100055,
|
||||||
|
basara,10078,2400000,190,370,640,730,140,1,1,1,1,1,0,100056,
|
||||||
|
howtru,10074,800000,120,250,530,740,80,1,1,1,1,1,0,100057,
|
||||||
|
auflcb,10000,800000,130,430,810,0,80,1,1,1,0,1,0,100063,
|
||||||
|
daisak,10005,800000,280,360,600,750,120,1,1,1,1,1,0,100066,
|
||||||
|
rideon,10069,802000,290,410,600,800,160,1,1,1,1,1,1,100067,
|
||||||
|
hokoro,10000,801000,290,570,710,810,140,1,1,1,1,1,1,100068,
|
||||||
|
ididid,10000,802000,290,460,720,810,160,1,1,1,1,1,1,100093,
|
||||||
|
yukiya,10103,800000,190,400,610,0,110,1,1,1,0,1,3,100096,
|
||||||
|
samalv,10102,800000,190,390,580,770,130,1,1,1,1,1,6,100098,
|
||||||
|
crissc,10076,800000,370,630,860,910,170,1,1,1,1,1,4,100100,
|
||||||
|
drivin,10100,800000,230,400,660,760,80,1,1,1,1,1,7,100111,
|
||||||
|
genzit,10100,800000,180,460,730,820,120,1,1,1,1,1,0,100118,
|
||||||
|
overlp,10103,800000,170,300,510,0,90,1,1,1,0,1,7,100119,
|
||||||
|
zankyo,10103,800000,180,380,570,740,100,1,1,1,1,1,5,100124,
|
||||||
|
megaro,10000,800000,550,800,930,980,0,1,1,1,1,1,0,100129,
|
||||||
|
sateli,10000,800000,280,490,770,820,170,1,1,1,1,1,0,100300,
|
||||||
|
nature,10000,40802000,140,240,530,750,50,1,1,1,1,1,3,100301,
|
||||||
|
reseed3,10000,800000,200,550,760,800,100,1,1,1,1,1,0,100306,
|
||||||
|
purple,10000,800000,220,540,640,730,140,1,1,1,1,1,0,100307,
|
||||||
|
hearts,10000,800000,180,380,680,770,80,1,1,1,1,1,0,100308,
|
||||||
|
syoujo,10003,802000,190,350,530,780,80,1,1,1,1,1,1,100309,
|
||||||
|
phasea,10000,800000,160,380,650,750,90,1,1,1,1,1,0,100310,
|
||||||
|
planet,10000,802000,170,360,490,710,100,1,1,1,1,1,1,100311,
|
||||||
|
touchn,10050,804000,270,460,680,860,150,1,1,1,1,1,8,100312,
|
||||||
|
upside,10050,802000,180,270,480,670,80,1,1,1,1,1,1,100313,
|
||||||
|
firefo,10000,800000,130,360,570,830,70,1,1,1,1,1,0,100314,
|
||||||
|
kounen,10000,808000,210,400,660,780,100,1,1,1,1,1,3,100315,
|
||||||
|
essenc,10000,800000,250,500,700,760,110,1,1,1,1,1,0,100316,
|
||||||
|
summer,10000,800000,230,570,790,890,130,1,1,1,1,1,0,100317,
|
||||||
|
tanosi,10000,802000,250,450,700,800,160,1,1,1,1,1,7,100319,
|
||||||
|
picora,10000,802000,150,380,660,750,80,1,1,1,1,1,1,100320,
|
||||||
|
istanb,10050,806000,410,490,900,980,230,1,1,1,1,1,3,100322,
|
||||||
|
devils,10000,800000,270,400,800,0,150,1,1,1,0,1,0,100323,
|
||||||
|
speedy,10076,800000,220,550,770,0,110,1,1,1,0,1,8,100324,
|
||||||
|
irohaa,10008,800000,190,410,550,760,120,1,1,1,1,1,0,100325,
|
||||||
|
ibelie,10008,800000,270,470,780,820,140,1,1,1,1,1,0,100326,
|
||||||
|
letmeg,10021,802000,180,320,500,720,120,1,1,1,1,1,1,100327,
|
||||||
|
techno,10000,802000,160,380,510,740,90,1,1,1,1,1,1,100328,
|
||||||
|
angeli,10000,800000,330,560,820,900,220,1,1,1,1,1,0,100330,
|
||||||
|
glowww,10000,40802000,170,280,420,600,80,1,1,1,1,1,7,100335,
|
||||||
|
powerr,10000,800000,190,380,690,790,120,1,1,1,1,1,0,100336,
|
||||||
|
laught,10022,801000,200,350,510,710,70,1,1,1,1,1,1,100337,
|
||||||
|
chaset,10019,803000,150,310,580,760,80,1,1,1,1,1,9999,100338,
|
||||||
|
amater,10000,800000,210,480,650,790,130,1,1,1,1,1,0,100340,
|
||||||
|
moonli,10000,803000,140,430,610,730,80,1,1,1,1,1,9999,100342,
|
||||||
|
sayona,10050,803000,200,340,530,710,100,1,1,1,1,1,9999,100343,
|
||||||
|
hosita,10000,802000,160,360,480,650,100,1,1,1,1,1,9999,100344,
|
||||||
|
ascand,10069,800000,320,540,800,900,180,1,1,1,1,1,0,100347,
|
||||||
|
pinkym,10000,800000,240,440,740,810,160,1,1,1,1,1,0,100348,
|
||||||
|
advers,10000,802000,150,480,710,830,90,1,1,1,1,1,1,100349,
|
||||||
|
straye,10050,800000,250,360,610,730,140,1,1,1,1,1,4,100350,
|
||||||
|
destru,10003,800000,190,410,620,720,100,1,1,1,1,1,0,100352,
|
||||||
|
venera,10000,800000,150,430,680,750,80,1,1,1,1,1,0,100353,
|
||||||
|
dazaii,10000,803000,210,430,730,770,120,1,1,1,1,1,3,100357,
|
||||||
|
rearhy,10050,802000,170,320,520,690,70,1,1,1,1,1,9999,100358,
|
||||||
|
onlyll,10050,802000,210,320,560,690,130,1,1,1,1,1,9999,100359,
|
||||||
|
hellom,10022,801000,180,370,580,720,70,1,1,1,1,1,1,100360,
|
||||||
|
megaro2,10100,800000,0,0,990,1000,0,0,0,1,1,0,4,100361,
|
||||||
|
tomorr,10003,803000,150,240,440,620,80,1,1,1,1,1,7,100362,
|
||||||
|
daybyd,10003,803000,130,260,380,590,60,1,1,1,1,1,7,100363,
|
||||||
|
thesig,10000,802000,210,380,560,730,100,1,1,1,1,1,3,100365,
|
||||||
|
zonzon,10066,800000,160,330,630,670,50,1,1,1,1,1,1,100367,
|
||||||
|
yumemi,10000,802000,120,350,590,690,60,1,1,1,1,1,9999,100369,
|
||||||
|
dynami2,10000,804000,180,510,780,800,80,1,1,1,1,1,0,100370,
|
||||||
|
memori,10050,803000,260,380,650,840,130,1,1,1,1,1,9999,100371,
|
||||||
|
bluede,10000,802000,220,410,580,700,120,1,1,1,1,1,5,100372,
|
||||||
|
emerao,10000,802000,300,530,850,0,190,1,1,1,0,1,1,100373,
|
||||||
|
auflcb3,10007,802000,160,360,660,860,60,1,1,1,1,1,9999,100374,
|
||||||
|
paradi,10005,801000,160,280,530,640,100,1,1,1,1,1,3,100376,
|
||||||
|
pigooo,10005,800000,190,340,590,840,130,1,1,1,1,1,6,100377,
|
||||||
|
flameu,10050,801000,180,360,570,650,100,1,1,1,1,1,1,100380,
|
||||||
|
season,10006,1607000,150,280,440,650,80,1,1,1,1,1,1,100386,
|
||||||
|
canonn,10006,1607000,170,280,500,830,70,1,1,1,1,1,1,100387,
|
||||||
|
rhapso,10006,1607000,180,340,620,740,60,1,1,1,1,1,1,100388,
|
||||||
|
turkis,10006,1607000,190,390,640,840,110,1,1,1,1,1,1,100389,
|
||||||
|
biohaz,10006,1609000,150,300,510,640,60,1,1,1,1,1,9999,100390,
|
||||||
|
monhan,10006,1609000,100,260,360,540,50,1,1,1,1,1,9999,100391,
|
||||||
|
gyakut2,10006,1609000,130,350,430,560,50,1,1,1,1,1,9999,100392,
|
||||||
|
street,10006,1609000,130,340,470,660,70,1,1,1,1,1,9999,100393,
|
||||||
|
rockma2,10006,1609000,210,340,490,760,140,1,1,1,1,1,9999,100394,
|
||||||
|
monhan2,10014,1609000,120,240,430,680,60,1,1,1,1,1,9999,100409,
|
||||||
|
monhan3,10014,1609000,180,280,450,730,80,1,1,1,1,1,9999,100410,
|
||||||
|
orbita,10050,803000,200,380,620,740,120,1,1,1,1,1,5,100411,
|
||||||
|
metall,10021,803000,160,280,570,770,80,1,1,1,1,1,1,100412,
|
||||||
|
xmasss,10017,1607000,180,380,560,770,80,1,1,1,1,1,101,100417,
|
||||||
|
yejiii,10019,800000,220,360,630,790,100,1,1,1,1,1,0,100418,
|
||||||
|
histor,10019,800000,200,360,560,820,110,1,1,1,1,1,0,100419,
|
||||||
|
silbur,10026,801000,200,350,540,750,90,1,1,1,1,1,1,100421,
|
||||||
|
spicaa,10026,801000,230,360,560,780,100,1,1,1,1,1,1,100422,
|
||||||
|
street2,10025,1609000,210,370,550,730,140,1,1,1,1,1,9999,100423,
|
||||||
|
street3,10025,1609000,240,380,570,740,130,1,1,1,1,1,9999,100424,
|
||||||
|
street4,10025,1609000,170,320,510,780,110,1,1,1,1,1,9999,100425,
|
||||||
|
bluede2,10024,801000,160,360,560,810,90,1,1,1,1,1,1,100426,
|
||||||
|
pyroma,10050,800000,220,420,700,840,80,1,1,1,1,1,4,100427,
|
||||||
|
avemar,10050,1607000,160,310,530,750,80,1,1,1,1,1,5,100428,
|
||||||
|
mateki,10050,1607000,180,350,540,790,100,1,1,1,1,1,5,100429,
|
||||||
|
densho,10050,800000,280,420,740,900,170,1,1,1,1,1,5,100430,
|
||||||
|
sunglo,10050,801000,180,390,590,720,100,1,1,1,1,1,7,100431,
|
||||||
|
hereco,10050,801000,160,340,510,680,110,1,1,1,1,1,4,100432,
|
||||||
|
dddddd,10050,800000,130,330,530,690,90,1,1,1,1,1,5,100433,
|
||||||
|
raidon,10050,801000,300,380,580,870,130,1,1,1,1,1,1,100434,
|
||||||
|
thisis,10050,800000,230,370,600,740,120,1,1,1,1,1,4,100435,
|
||||||
|
rising,10050,800000,230,380,660,850,140,1,1,1,1,1,4,100436,
|
||||||
|
riseup,10050,800000,180,410,670,770,70,1,1,1,1,1,4,100437,
|
||||||
|
tricko,10050,800000,230,340,560,750,110,1,1,1,1,1,0,100438,
|
||||||
|
kinbos,10050,800000,220,380,640,770,120,1,1,1,1,1,3,100439,
|
||||||
|
thesun,10050,800000,250,400,720,870,130,1,1,1,1,1,4,100441,
|
||||||
|
lovech,10050,801000,160,300,460,680,80,1,1,1,1,1,7,100445,
|
||||||
|
machup,10061,801000,170,320,410,710,90,1,1,1,1,1,6,100447,
|
||||||
|
cyberg,10104,801000,230,350,600,0,120,1,1,1,0,1,0,100448,
|
||||||
|
harmon,10050,801000,200,360,490,650,120,1,1,1,1,1,7,100449,
|
||||||
|
kansho,10056,801000,130,270,550,740,70,1,1,1,1,1,9999,100450,
|
||||||
|
cantst,10103,800000,230,420,650,0,110,1,1,1,0,1,0,100455,
|
||||||
|
takeit,10050,800000,200,380,650,830,120,1,1,1,1,1,4,100457,
|
||||||
|
lespri,10063,800000,250,570,800,0,130,1,1,1,0,1,5,100465,
|
||||||
|
notoss,10061,800000,120,420,650,910,80,1,1,1,1,1,4,100466,
|
||||||
|
codena,10055,801000,180,350,480,680,90,1,1,1,1,1,1,100468,
|
||||||
|
aiohoo,10050,101000,180,290,420,660,100,1,1,1,1,1,1,100471,
|
||||||
|
entert,10050,1607000,150,330,540,870,90,1,1,1,1,1,6,100472,
|
||||||
|
akaihe,10051,101000,210,320,500,690,80,1,1,1,1,1,1,100473,
|
||||||
|
juicys,10051,101000,180,260,450,830,100,1,1,1,1,1,7,100474,
|
||||||
|
groove,10055,1601000,220,400,520,730,100,1,1,1,1,1,103,100475,
|
||||||
|
groove2,10058,1601000,150,400,580,850,90,1,1,1,1,1,9999,100480,
|
||||||
|
everyt,10063,801000,220,300,740,0,130,1,1,1,0,1,5,100482,
|
||||||
|
taikoo,10058,1609000,130,390,500,750,60,1,1,1,1,1,104,100483,
|
||||||
|
overcl2,10057,809000,230,420,580,740,120,1,1,1,1,1,3,100486,
|
||||||
|
overcl,10059,809000,120,350,570,860,80,1,1,1,1,1,4,100487,
|
||||||
|
groove3,10062,2009000,180,340,640,850,100,1,1,1,1,1,105,100488,
|
||||||
|
groove4,10062,2009000,220,350,500,750,120,1,1,1,1,1,106,100489,
|
||||||
|
honeyo,10064,802000,320,630,880,930,240,1,1,1,1,1,6,100490,
|
||||||
|
groove5,10064,1609000,240,370,670,0,140,1,1,1,0,1,107,100491,
|
||||||
|
nekofu,10064,1607000,220,340,570,800,100,1,1,1,1,1,6,100493,
|
||||||
|
groove6,10065,1609000,300,640,790,0,220,1,1,1,0,1,3,100494,
|
||||||
|
sunglo2,10065,801000,210,360,670,810,110,1,1,1,1,1,6,100495,
|
||||||
|
monhan4,10066,1609000,120,400,510,620,50,1,1,1,1,1,9999,100496,
|
||||||
|
monhan5,10066,1609000,120,350,420,650,100,1,1,1,1,1,9999,100497,
|
||||||
|
fourte,10066,800000,240,500,740,800,140,1,1,1,1,1,5,100498,
|
||||||
|
cirnon,10069,409000,240,400,600,790,170,1,1,1,1,1,9999,100499,
|
||||||
|
marisa,10069,409000,250,410,620,850,180,1,1,1,1,1,9999,100500,
|
||||||
|
yakini,10069,409000,250,340,580,820,130,1,1,1,1,1,9999,100501,
|
||||||
|
justic,10069,409000,190,360,570,830,140,1,1,1,1,1,1,100502,
|
||||||
|
sintyo,10069,401000,250,460,700,830,160,1,1,1,1,1,6,100503,
|
||||||
|
darkpa,10068,800000,260,390,700,840,160,1,1,1,1,1,3,100504,
|
||||||
|
hervor,10068,800000,280,390,730,810,180,1,1,1,1,1,5,100505,
|
||||||
|
blackl,10069,800000,190,410,730,840,120,1,1,1,1,1,3,100506,
|
||||||
|
minest,10070,800000,210,390,620,760,130,1,1,1,1,1,1,100507,
|
||||||
|
ordine,10070,800000,250,430,730,820,190,1,1,1,1,1,3,100508,
|
||||||
|
dreamw,10072,800000,260,370,620,750,160,1,1,1,1,1,0,100509,
|
||||||
|
minerv,10072,800000,320,610,900,0,250,1,1,1,0,1,4,100510,
|
||||||
|
sekain,10073,800000,260,390,690,780,160,1,1,1,1,1,1,100511,
|
||||||
|
farawa,10074,800000,230,360,600,760,180,1,1,1,1,1,7,100512,
|
||||||
|
xxxrev,10076,800000,210,340,560,730,150,1,1,1,1,1,0,100513,
|
||||||
|
daybre,10080,201000,160,320,530,720,90,1,1,1,1,1,0,100514,
|
||||||
|
umiyur,10080,201000,140,280,460,640,80,1,1,1,1,1,1,100515,
|
||||||
|
chalur,10080,201000,180,400,600,720,140,1,1,1,1,1,9999,100516,
|
||||||
|
melanc,10080,201000,150,300,500,630,100,1,1,1,1,1,7,100517,
|
||||||
|
konofu,10080,201000,230,350,620,810,110,1,1,1,1,1,1,100518,
|
||||||
|
redhea,10081,401000,270,390,590,720,100,1,1,1,1,1,0,100519,
|
||||||
|
warnin,10081,401000,250,360,610,740,120,1,1,1,1,1,9999,100520,
|
||||||
|
topsec,10081,401000,240,340,510,640,130,1,1,1,1,1,9999,100521,
|
||||||
|
dddoll,10081,401000,260,380,550,630,140,1,1,1,1,1,9999,100522,
|
||||||
|
crocus,10077,800000,260,370,600,720,150,1,1,1,1,1,7,100524,
|
||||||
|
moonsh,10102,800000,230,360,620,0,100,1,1,1,0,1,3,100525,
|
||||||
|
bladem,10078,800000,280,380,630,750,170,1,1,1,1,1,4,100526,
|
||||||
|
primaa,10104,800000,180,350,540,750,120,1,1,1,1,1,0,100527,
|
||||||
|
fracta,10103,800000,310,520,830,0,190,1,1,1,0,1,3,100529,
|
||||||
|
regene,10100,800000,200,300,560,700,130,1,1,1,1,1,0,100530,
|
||||||
|
cthugh,10104,800000,250,480,730,0,140,1,1,1,0,1,0,100531,
|
||||||
|
einher,10100,800000,290,400,740,800,160,1,1,1,1,1,4,100532,
|
||||||
|
southw,10078,800000,180,270,570,680,120,1,1,1,1,1,7,100536,
|
||||||
|
ryuuse,10078,800000,210,320,590,0,130,1,1,1,0,1,1,100537,
|
||||||
|
ariell,10100,800000,190,320,640,730,150,1,1,1,1,1,7,100540,
|
||||||
|
chipnn,10077,800000,270,340,610,790,160,1,1,1,1,1,6,100541,
|
||||||
|
firstl,10100,800000,250,360,650,770,170,1,1,1,1,1,1,100542,
|
||||||
|
lighto,10100,800000,250,330,600,740,120,1,1,1,1,1,1,100543,
|
||||||
|
palpit,10102,800000,290,550,840,920,180,1,1,1,1,1,8,100544,
|
||||||
|
lavien,10077,800000,270,410,710,800,180,1,1,1,1,1,5,100546,
|
||||||
|
prizmm,10102,800000,210,300,540,0,120,1,1,1,0,1,1,100547,
|
||||||
|
tracee,10081,401000,190,310,490,650,90,1,1,1,1,1,0,100548,
|
||||||
|
allelu,10100,800000,280,350,640,750,160,1,1,1,1,1,9999,100549,
|
||||||
|
heartl,10100,800000,230,300,640,0,110,1,1,1,0,1,1,100550,
|
||||||
|
erasee,10100,800000,220,350,580,680,120,1,1,1,1,1,0,100551,
|
||||||
|
termin,10100,800000,240,340,630,790,130,1,1,1,1,1,7,100552,
|
||||||
|
kokoro,10103,800000,200,430,650,690,120,1,1,1,1,1,1,100554,
|
||||||
|
nisenn,10103,800000,0,0,760,0,0,0,0,1,0,0,8,100555,
|
||||||
|
ryuuse2,10101,800000,200,360,620,750,130,1,1,1,1,1,1,100556,
|
||||||
|
gainen,10102,801000,260,370,630,0,150,1,1,1,0,1,9999,100558,
|
||||||
|
moonki,10102,800000,250,390,640,0,130,1,1,1,0,1,1,100559,
|
||||||
|
moonri,10102,800000,210,380,580,850,140,1,1,1,1,1,0,100560,
|
||||||
|
goaway,10103,800000,230,450,590,700,100,1,1,1,1,1,0,100561,
|
||||||
|
poweri,10103,800000,260,490,750,910,130,1,1,1,1,1,4,100563,
|
||||||
|
memorm,10103,800000,260,370,730,0,150,1,1,1,0,1,0,100565,
|
||||||
|
itback,10103,800000,230,380,710,0,120,1,1,1,0,1,3,100567,
|
||||||
|
actual,10103,800000,250,380,800,0,140,1,1,1,0,1,0,100568,
|
||||||
|
redhhh,10103,800000,240,390,770,0,130,1,1,1,0,1,4,100569,
|
||||||
|
thetaa,10104,800000,210,340,620,0,110,1,1,1,0,1,1,100571,
|
||||||
|
takesc,10104,800000,270,370,690,0,100,1,1,1,0,1,1,100572,
|
||||||
|
kotobu,10104,800000,320,710,900,0,250,1,1,1,0,1,0,100573,
|
||||||
|
galaxy,10000,101000,160,320,430,670,100,1,1,1,1,1,0,100600,
|
||||||
|
levelf,10000,101000,110,280,450,630,50,1,1,1,1,1,0,100605,
|
||||||
|
unbeli,10000,101000,130,260,380,620,70,1,1,1,1,1,0,100608,
|
||||||
|
fiveee,10000,101000,180,370,610,710,100,1,1,1,1,1,0,100614,
|
||||||
|
replay,10000,101000,180,440,630,700,80,1,1,1,1,1,0,100618,
|
||||||
|
aheadd,10000,101000,130,250,350,580,70,1,1,1,1,1,0,100620,
|
||||||
|
musicr1,10000,800000,220,330,580,740,120,1,1,1,1,1,0,100621,
|
||||||
|
getthe,10000,101000,170,370,490,660,60,1,1,1,1,1,0,100622,
|
||||||
|
hopesb,10000,101000,100,250,440,610,70,1,1,1,1,1,0,100625,
|
||||||
|
shooti,10000,101000,150,370,490,690,70,1,1,1,1,1,0,100626,
|
||||||
|
lightm,10000,101000,260,330,540,710,110,1,1,1,1,1,0,100629,
|
||||||
|
miiroo,10000,101000,220,390,580,680,110,1,1,1,1,1,0,100630,
|
||||||
|
vividd,10000,101000,160,350,550,650,90,1,1,1,1,1,0,100633,
|
||||||
|
donuth,10000,201000,220,400,540,800,110,1,1,1,1,1,100,100635,
|
||||||
|
senbon,10000,301000,200,280,540,740,120,1,1,1,1,1,0,100636,
|
||||||
|
kmtyju,10000,101000,240,310,570,740,120,1,1,1,1,1,0,100637,
|
||||||
|
childe,10000,101000,90,240,340,560,40,1,1,1,1,1,0,100640,
|
||||||
|
flower,10000,101000,70,200,400,650,60,1,1,1,1,1,0,100643,
|
||||||
|
musicr4,10000,800000,190,320,580,0,120,1,1,1,0,1,0,100647,
|
||||||
|
breaka,10000,101000,150,310,450,680,70,1,1,1,1,1,0,100657,
|
||||||
|
izimed,10000,101000,190,390,690,770,90,1,1,1,1,1,0,100665,
|
||||||
|
godkno,10000,101000,100,260,450,640,60,1,1,1,1,1,0,100670,
|
||||||
|
roadof,10000,101000,150,360,500,750,70,1,1,1,1,1,0,100671,
|
||||||
|
rokuch,10000,301000,210,350,620,810,110,1,1,1,1,1,0,100672,
|
||||||
|
valent,10000,800000,270,330,590,770,100,1,1,1,1,1,102,100673,
|
||||||
|
unfini,10000,101000,160,320,500,710,80,1,1,1,1,1,0,100674,
|
||||||
|
dropou,10000,101000,170,310,460,690,140,1,1,1,1,1,0,100678,
|
||||||
|
xencou,10000,101000,200,320,520,600,80,1,1,1,1,1,0,100679,
|
||||||
|
killyk,10000,101000,130,420,630,760,60,1,1,1,1,1,0,100680,
|
||||||
|
burstt,10000,101000,120,250,460,630,70,1,1,1,1,1,0,100682,
|
||||||
|
musicr2,10000,800000,220,330,580,0,120,1,1,1,0,1,0,100683,
|
||||||
|
musicr3,10000,800000,190,320,580,720,120,1,1,1,1,1,0,100687,
|
||||||
|
sugars,10000,101000,170,300,420,660,60,1,1,1,1,1,0,100689,
|
||||||
|
wegooo,10000,101000,180,340,540,680,100,1,1,1,1,1,0,100692,
|
||||||
|
alonee,10000,101000,110,210,360,480,50,1,1,1,1,1,0,100693,
|
||||||
|
granro,10000,101000,150,280,430,600,80,1,1,1,1,1,0,100695,
|
||||||
|
sister,10000,101000,100,270,460,630,70,1,1,1,1,1,0,100696,
|
||||||
|
flawli,10000,101000,170,300,400,590,80,1,1,1,1,1,0,100699,
|
||||||
|
inneru,10000,101000,220,360,480,670,90,1,1,1,1,1,0,100703,
|
||||||
|
bokuwa,10000,101000,230,340,550,690,160,1,1,1,1,1,0,100706,
|
||||||
|
showww,10000,101000,180,350,510,790,150,1,1,1,1,1,0,100707,
|
||||||
|
nevers,10000,101000,260,320,650,750,150,1,1,1,1,1,0,100708,
|
||||||
|
bleeze,10000,101000,160,310,470,620,90,1,1,1,1,1,0,100709,
|
|
@ -1,7 +1,6 @@
|
|||||||
from twisted.web.http import Request
|
from twisted.web.http import Request
|
||||||
import traceback
|
import traceback
|
||||||
from twisted.web import resource, server
|
import sys
|
||||||
from twisted.internet import reactor, endpoints
|
|
||||||
import yaml
|
import yaml
|
||||||
import json
|
import json
|
||||||
import re
|
import re
|
||||||
@ -77,13 +76,21 @@ class CxbServlet(BaseServlet):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port_ssl(self.core_cfg) != 443:
|
title_port_int = Utils.get_title_port(self.core_cfg)
|
||||||
return (
|
title_port_ssl_int = Utils.get_title_port_ssl(self.core_cfg)
|
||||||
f"https://{self.core_cfg.title.hostname}:{self.core_cfg.title.port_ssl}",
|
|
||||||
"",
|
proto = "https" if title_port_ssl_int != 443 else "http"
|
||||||
)
|
|
||||||
|
|
||||||
return (f"https://{self.core_cfg.title.hostname}", "")
|
if proto == "https":
|
||||||
|
t_port = f":{title_port_ssl_int}" if title_port_ssl_int and not self.core_cfg.server.is_using_proxy else ""
|
||||||
|
|
||||||
|
else:
|
||||||
|
t_port = f":{title_port_int}" if title_port_int and not self.core_cfg.server.is_using_proxy else ""
|
||||||
|
|
||||||
|
return (
|
||||||
|
f"{proto}://{self.core_cfg.title.hostname}{t_port}",
|
||||||
|
"",
|
||||||
|
)
|
||||||
|
|
||||||
def get_endpoint_matchers(self) -> Tuple[List[Tuple[str, str, Dict]], List[Tuple[str, str, Dict]]]:
|
def get_endpoint_matchers(self) -> Tuple[List[Tuple[str, str, Dict]], List[Tuple[str, str, Dict]]]:
|
||||||
return (
|
return (
|
||||||
@ -176,8 +183,8 @@ class CxbServlet(BaseServlet):
|
|||||||
internal_ver = CxbConstants.VER_CROSSBEATS_REV_SUNRISE_S2
|
internal_ver = CxbConstants.VER_CROSSBEATS_REV_SUNRISE_S2
|
||||||
|
|
||||||
if not hasattr(self.versions[internal_ver], func_to_find):
|
if not hasattr(self.versions[internal_ver], func_to_find):
|
||||||
self.logger.warn(f"{version_string} has no handler for filetype {filetype}")
|
self.logger.warn(f"{version_string} has no handler for filetype {filetype} / {func_to_find}")
|
||||||
return ""
|
return({"data":""})
|
||||||
|
|
||||||
self.logger.info(f"{version_string} request for filetype {filetype}")
|
self.logger.info(f"{version_string} request for filetype {filetype}")
|
||||||
self.logger.debug(req_json)
|
self.logger.debug(req_json)
|
||||||
@ -190,9 +197,10 @@ class CxbServlet(BaseServlet):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"Error handling request for file {filetype} - {e}")
|
self.logger.error(f"Error handling request for file {filetype} - {e}")
|
||||||
if self.logger.level == logging.DEBUG:
|
if self.logger.level == logging.DEBUG:
|
||||||
traceback.print_exception(e, limit=1)
|
tp, val, tb = sys.exc_info()
|
||||||
|
traceback.print_exception(tp, val, tb, limit=1)
|
||||||
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "cxb"), "a") as f:
|
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "cxb"), "a") as f:
|
||||||
traceback.print_exception(e, limit=1, file=f)
|
traceback.print_exception(tp, val, tb, limit=1, file=f)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
self.logger.debug(f"{version_string} Response {resp}")
|
self.logger.debug(f"{version_string} Response {resp}")
|
||||||
@ -218,9 +226,10 @@ class CxbServlet(BaseServlet):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"Error handling action {subcmd} request - {e}")
|
self.logger.error(f"Error handling action {subcmd} request - {e}")
|
||||||
if self.logger.level == logging.DEBUG:
|
if self.logger.level == logging.DEBUG:
|
||||||
traceback.print_exception(e, limit=1)
|
tp, val, tb = sys.exc_info()
|
||||||
|
traceback.print_exception(tp, val, tb, limit=1)
|
||||||
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "cxb"), "a") as f:
|
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "cxb"), "a") as f:
|
||||||
traceback.print_exception(e, limit=1, file=f)
|
traceback.print_exception(tp, val, tb, limit=1, file=f)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
self.logger.debug(f"Response {resp}")
|
self.logger.debug(f"Response {resp}")
|
||||||
@ -246,9 +255,10 @@ class CxbServlet(BaseServlet):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(f"Error handling auth {subcmd} request - {e}")
|
self.logger.error(f"Error handling auth {subcmd} request - {e}")
|
||||||
if self.logger.level == logging.DEBUG:
|
if self.logger.level == logging.DEBUG:
|
||||||
traceback.print_exception(e, limit=1)
|
tp, val, tb = sys.exc_info()
|
||||||
|
traceback.print_exception(tp, val, tb, limit=1)
|
||||||
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "cxb"), "a") as f:
|
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "cxb"), "a") as f:
|
||||||
traceback.print_exception(e, limit=1, file=f)
|
traceback.print_exception(tp, val, tb, limit=1, file=f)
|
||||||
return ""
|
return ""
|
||||||
|
|
||||||
self.logger.debug(f"Response {resp}")
|
self.logger.debug(f"Response {resp}")
|
||||||
|
@ -122,7 +122,7 @@ class CxbRevSunriseS1(CxbBase):
|
|||||||
def handle_data_extra_stage_list_request(self, data: Dict) -> Dict:
|
def handle_data_extra_stage_list_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_ex0001_request(self, data: Dict) -> Dict:
|
def handle_data_exxxxx_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_one_more_extra_list_request(self, data: Dict) -> Dict:
|
def handle_data_one_more_extra_list_request(self, data: Dict) -> Dict:
|
||||||
@ -131,7 +131,7 @@ class CxbRevSunriseS1(CxbBase):
|
|||||||
def handle_data_bonus_list10100_request(self, data: Dict) -> Dict:
|
def handle_data_bonus_list10100_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_oe0001_request(self, data: Dict) -> Dict:
|
def handle_data_oexxxx_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_free_coupon_request(self, data: Dict) -> Dict:
|
def handle_data_free_coupon_request(self, data: Dict) -> Dict:
|
||||||
|
@ -22,8 +22,17 @@ class CxbRevSunriseS2(CxbBase):
|
|||||||
|
|
||||||
@cached(lifetime=86400)
|
@cached(lifetime=86400)
|
||||||
def handle_data_music_list_request(self, data: Dict) -> Dict:
|
def handle_data_music_list_request(self, data: Dict) -> Dict:
|
||||||
|
version = data["dldate"]["filetype"].split("/")[0]
|
||||||
ret_str = ""
|
ret_str = ""
|
||||||
with open(r"titles/cxb/data/rss2/MusicArchiveList.csv") as music:
|
|
||||||
|
if "10104" in version:
|
||||||
|
self.logger.warning("Game Version is Season 2 Non-Omni")
|
||||||
|
file = "titles/cxb/data/rss2/MusicArchiveList-NonOmni.csv"
|
||||||
|
else:
|
||||||
|
self.logger.warning("Game Version is Season 2 Omnimix")
|
||||||
|
file = "titles/cxb/data/rss2/MusicArchiveList.csv"
|
||||||
|
|
||||||
|
with open(rf"{file}") as music:
|
||||||
lines = music.readlines()
|
lines = music.readlines()
|
||||||
for line in lines:
|
for line in lines:
|
||||||
line_split = line.split(",")
|
line_split = line.split(",")
|
||||||
@ -120,9 +129,14 @@ class CxbRevSunriseS2(CxbBase):
|
|||||||
return {"data": ret_str}
|
return {"data": ret_str}
|
||||||
|
|
||||||
def handle_data_extra_stage_list_request(self, data: Dict) -> Dict:
|
def handle_data_extra_stage_list_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
ret_str=""
|
||||||
|
with open(r"titles/cxb/data/rss2/ExtraStageList.csv") as extra:
|
||||||
|
lines = extra.readlines()
|
||||||
|
for line in lines:
|
||||||
|
ret_str += f"{line[:-1]}\r\n"
|
||||||
|
return({"data":ret_str})
|
||||||
|
|
||||||
def handle_data_ex0001_request(self, data: Dict) -> Dict:
|
def handle_data_exxxxx_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_one_more_extra_list_request(self, data: Dict) -> Dict:
|
def handle_data_one_more_extra_list_request(self, data: Dict) -> Dict:
|
||||||
@ -131,11 +145,16 @@ class CxbRevSunriseS2(CxbBase):
|
|||||||
def handle_data_bonus_list10100_request(self, data: Dict) -> Dict:
|
def handle_data_bonus_list10100_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_oe0001_request(self, data: Dict) -> Dict:
|
def handle_data_oexxxx_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
return {"data": ""}
|
||||||
|
|
||||||
def handle_data_free_coupon_request(self, data: Dict) -> Dict:
|
def handle_data_free_coupon_request(self, data: Dict) -> Dict:
|
||||||
return {"data": ""}
|
ret_str=""
|
||||||
|
with open(r"titles/cxb/data/rss2/FreeCoupon.csv") as coupon:
|
||||||
|
lines = coupon.readlines()
|
||||||
|
for line in lines:
|
||||||
|
ret_str += f"{line[:-1]}\r\n"
|
||||||
|
return({"data":ret_str})
|
||||||
|
|
||||||
@cached(lifetime=86400)
|
@cached(lifetime=86400)
|
||||||
def handle_data_news_list_request(self, data: Dict) -> Dict:
|
def handle_data_news_list_request(self, data: Dict) -> Dict:
|
||||||
|
@ -59,9 +59,9 @@ class DivaServlet(BaseServlet):
|
|||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
||||||
return (f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/DivaServlet/", "")
|
return (f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/DivaServlet/", self.core_cfg.title.hostname)
|
||||||
|
|
||||||
return (f"http://{self.core_cfg.title.hostname}/DivaServlet/", "")
|
return (f"http://{self.core_cfg.title.hostname}/DivaServlet/", self.core_cfg.title.hostname)
|
||||||
|
|
||||||
@classmethod
|
@classmethod
|
||||||
def is_game_enabled(
|
def is_game_enabled(
|
||||||
|
@ -9,4 +9,4 @@ database = IDACData
|
|||||||
reader = IDACReader
|
reader = IDACReader
|
||||||
frontend = IDACFrontend
|
frontend = IDACFrontend
|
||||||
game_codes = [IDACConstants.GAME_CODE]
|
game_codes = [IDACConstants.GAME_CODE]
|
||||||
current_schema_version = 1
|
current_schema_version = 2
|
||||||
|
@ -6,6 +6,9 @@ class IDACConstants():
|
|||||||
VER_IDAC_SEASON_1 = 0
|
VER_IDAC_SEASON_1 = 0
|
||||||
VER_IDAC_SEASON_2 = 1
|
VER_IDAC_SEASON_2 = 1
|
||||||
|
|
||||||
|
BATTLE_MODE_ONLINE = 0
|
||||||
|
BATTLE_MODE_OFFLINE = 1
|
||||||
|
|
||||||
VERSION_STRING = (
|
VERSION_STRING = (
|
||||||
"Initial D THE ARCADE Season 1",
|
"Initial D THE ARCADE Season 1",
|
||||||
"Initial D THE ARCADE Season 2",
|
"Initial D THE ARCADE Season 2",
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"m_stamp_event_id": 25,
|
"m_stamp_event_id": 25,
|
||||||
"stamp_event_nm": "フランドール・スカーレットスタンプ",
|
"stamp_event_nm": "フランドール・スカーレットスタンプ",
|
||||||
"url": "https://info-initialdac.sega.jp/2290/",
|
|
||||||
"start_dt": "2023-10-01",
|
"start_dt": "2023-10-01",
|
||||||
"end_dt": "2029-01-01",
|
"end_dt": "2029-01-01",
|
||||||
"play_bonus": 1,
|
"play_bonus": 1,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"m_stamp_event_id": 24,
|
"m_stamp_event_id": 24,
|
||||||
"stamp_event_nm": "レミリア・スカーレットスタンプ",
|
"stamp_event_nm": "レミリア・スカーレットスタンプ",
|
||||||
"url": "https://info-initialdac.sega.jp/2096/",
|
|
||||||
"start_dt": "2023-10-01",
|
"start_dt": "2023-10-01",
|
||||||
"end_dt": "2029-01-01",
|
"end_dt": "2029-01-01",
|
||||||
"play_bonus": 1,
|
"play_bonus": 1,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"m_stamp_event_id": 26,
|
"m_stamp_event_id": 26,
|
||||||
"stamp_event_nm": "十六夜咲夜スタンプ",
|
"stamp_event_nm": "十六夜咲夜スタンプ",
|
||||||
"url": "https://info-initialdac.sega.jp/2306/",
|
|
||||||
"start_dt": "2023-10-01",
|
"start_dt": "2023-10-01",
|
||||||
"end_dt": "2029-01-01",
|
"end_dt": "2029-01-01",
|
||||||
"play_bonus": 1,
|
"play_bonus": 1,
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"timetrial_event_id": 5,
|
"timetrial_event_id": 5,
|
||||||
"name": "フランドール・スカーレット",
|
"name": "フランドール・スカーレット",
|
||||||
"url": "https://info-initialdac.sega.jp/2356/",
|
|
||||||
"start_dt": "2023-10-01",
|
"start_dt": "2023-10-01",
|
||||||
"end_dt": "2029-01-01",
|
"end_dt": "2029-01-01",
|
||||||
"course_id": 18,
|
"course_id": 18,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"timetrial_event_id": 4,
|
"timetrial_event_id": 4,
|
||||||
"name": "レミリア・スカーレット",
|
"name": "レミリア・スカーレット",
|
||||||
"url": "https://info-initialdac.sega.jp/2345/",
|
|
||||||
"start_dt": "2023-10-01",
|
"start_dt": "2023-10-01",
|
||||||
"end_dt": "2029-01-01",
|
"end_dt": "2029-01-01",
|
||||||
"course_id": 22,
|
"course_id": 22,
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
{
|
{
|
||||||
"timetrial_event_id": 6,
|
"timetrial_event_id": 6,
|
||||||
"name": "十六夜咲夜",
|
"name": "十六夜咲夜",
|
||||||
"url": "https://info-initialdac.sega.jp/2402/",
|
|
||||||
"start_dt": "2023-10-01",
|
"start_dt": "2023-10-01",
|
||||||
"end_dt": "2029-01-01",
|
"end_dt": "2029-01-01",
|
||||||
"course_id": 14,
|
"course_id": 14,
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
import logging
|
import logging
|
||||||
from random import randbytes
|
|
||||||
import socket
|
import socket
|
||||||
|
|
||||||
from twisted.internet.protocol import DatagramProtocol
|
from twisted.internet.protocol import DatagramProtocol
|
||||||
|
@ -1,7 +1,10 @@
|
|||||||
import json
|
import json
|
||||||
import yaml
|
import yaml
|
||||||
import jinja2
|
import jinja2
|
||||||
|
|
||||||
from os import path
|
from os import path
|
||||||
|
from typing import Any, Type
|
||||||
|
from twisted.web import resource
|
||||||
from twisted.web.util import redirectTo
|
from twisted.web.util import redirectTo
|
||||||
from twisted.web.http import Request
|
from twisted.web.http import Request
|
||||||
from twisted.web.server import Session
|
from twisted.web.server import Session
|
||||||
@ -15,12 +18,111 @@ from titles.idac.config import IDACConfig
|
|||||||
from titles.idac.const import IDACConstants
|
from titles.idac.const import IDACConstants
|
||||||
|
|
||||||
|
|
||||||
|
class RankingData:
|
||||||
|
def __init__(
|
||||||
|
self,
|
||||||
|
rank: int,
|
||||||
|
name: str,
|
||||||
|
record: int,
|
||||||
|
eval_id: int,
|
||||||
|
store: str,
|
||||||
|
style_car_id: int,
|
||||||
|
update_date: str,
|
||||||
|
) -> None:
|
||||||
|
self.rank: int = rank
|
||||||
|
self.name: str = name
|
||||||
|
self.record: str = record
|
||||||
|
self.store: str = store
|
||||||
|
self.eval_id: int = eval_id
|
||||||
|
self.style_car_id: int = style_car_id
|
||||||
|
self.update_date: str = update_date
|
||||||
|
|
||||||
|
def make(self):
|
||||||
|
return vars(self)
|
||||||
|
|
||||||
|
|
||||||
|
class RequestValidator:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.success: bool = True
|
||||||
|
self.error: str = ""
|
||||||
|
|
||||||
|
def validate_param(
|
||||||
|
self,
|
||||||
|
request_args: Dict[bytes, bytes],
|
||||||
|
param_name: str,
|
||||||
|
param_type: Type[None],
|
||||||
|
default=None,
|
||||||
|
required: bool = True,
|
||||||
|
) -> None:
|
||||||
|
# Check if the parameter is missing
|
||||||
|
if param_name.encode() not in request_args:
|
||||||
|
if required:
|
||||||
|
self.success = False
|
||||||
|
self.error += f"Missing parameter: '{param_name}'. "
|
||||||
|
else:
|
||||||
|
# If the parameter is not required,
|
||||||
|
# return the default value if it exists
|
||||||
|
return default
|
||||||
|
return None
|
||||||
|
|
||||||
|
param_value = request_args[param_name.encode()][0].decode()
|
||||||
|
|
||||||
|
# Check if the parameter type is not empty
|
||||||
|
if param_type:
|
||||||
|
try:
|
||||||
|
# Attempt to convert the parameter value to the specified type
|
||||||
|
param_value = param_type(param_value)
|
||||||
|
except ValueError:
|
||||||
|
# If the conversion fails, return an error
|
||||||
|
self.success = False
|
||||||
|
self.error += f"Invalid parameter type for '{param_name}'. "
|
||||||
|
return None
|
||||||
|
|
||||||
|
return param_value
|
||||||
|
|
||||||
|
|
||||||
|
class RankingRequest(RequestValidator):
|
||||||
|
def __init__(self, request_args: Dict[bytes, bytes]) -> None:
|
||||||
|
super().__init__()
|
||||||
|
|
||||||
|
self.course_id: int = self.validate_param(request_args, "courseId", int)
|
||||||
|
self.page_number: int = self.validate_param(
|
||||||
|
request_args, "pageNumber", int, default=1, required=False
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
class RankingResponse:
|
||||||
|
def __init__(self) -> None:
|
||||||
|
self.success: bool = False
|
||||||
|
self.error: str = ""
|
||||||
|
self.total_pages: int = 0
|
||||||
|
self.total_records: int = 0
|
||||||
|
self.updated_at: str = ""
|
||||||
|
self.ranking: list[RankingData] = []
|
||||||
|
|
||||||
|
def make(self):
|
||||||
|
ret = vars(self)
|
||||||
|
self.error = (
|
||||||
|
"Unknown error." if not self.success and self.error == "" else self.error
|
||||||
|
)
|
||||||
|
ret["ranking"] = [rank.make() for rank in self.ranking]
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def to_json(self):
|
||||||
|
return json.dumps(self.make(), default=str, ensure_ascii=False).encode("utf-8")
|
||||||
|
|
||||||
|
|
||||||
class IDACFrontend(FE_Base):
|
class IDACFrontend(FE_Base):
|
||||||
|
isLeaf = False
|
||||||
|
children: Dict[str, Any] = {}
|
||||||
|
|
||||||
def __init__(
|
def __init__(
|
||||||
self, cfg: CoreConfig, environment: jinja2.Environment, cfg_dir: str
|
self, cfg: CoreConfig, environment: jinja2.Environment, cfg_dir: str
|
||||||
) -> None:
|
) -> None:
|
||||||
super().__init__(cfg, environment)
|
super().__init__(cfg, environment)
|
||||||
self.data = IDACData(cfg)
|
self.data = IDACData(cfg)
|
||||||
|
self.core_cfg = cfg
|
||||||
self.game_cfg = IDACConfig()
|
self.game_cfg = IDACConfig()
|
||||||
if path.exists(f"{cfg_dir}/{IDACConstants.CONFIG_NAME}"):
|
if path.exists(f"{cfg_dir}/{IDACConstants.CONFIG_NAME}"):
|
||||||
self.game_cfg.update(
|
self.game_cfg.update(
|
||||||
@ -30,13 +132,160 @@ class IDACFrontend(FE_Base):
|
|||||||
# TODO: Add version list
|
# TODO: Add version list
|
||||||
self.version = IDACConstants.VER_IDAC_SEASON_2
|
self.version = IDACConstants.VER_IDAC_SEASON_2
|
||||||
|
|
||||||
|
self.putChild(b"profile", IDACProfileFrontend(cfg, self.environment))
|
||||||
|
self.putChild(b"ranking", IDACRankingFrontend(cfg, self.environment))
|
||||||
|
|
||||||
|
|
||||||
|
def render_GET(self, request: Request) -> bytes:
|
||||||
|
uri: str = request.uri.decode()
|
||||||
|
|
||||||
|
template = self.environment.get_template(
|
||||||
|
"titles/idac/frontend/idac_index.jinja"
|
||||||
|
)
|
||||||
|
sesh: Session = request.getSession()
|
||||||
|
usr_sesh = IUserSession(sesh)
|
||||||
|
|
||||||
|
# redirect to the ranking page
|
||||||
|
if uri.startswith("/game/idac"):
|
||||||
|
return redirectTo(b"/game/idac/ranking", request)
|
||||||
|
|
||||||
|
return template.render(
|
||||||
|
title=f"{self.core_config.server.name} | {self.nav_name}",
|
||||||
|
game_list=self.environment.globals["game_list"],
|
||||||
|
sesh=vars(usr_sesh),
|
||||||
|
active_page="idac",
|
||||||
|
).encode("utf-16")
|
||||||
|
|
||||||
|
def render_POST(self, request: Request) -> bytes:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class IDACRankingFrontend(FE_Base):
|
||||||
|
def __init__(self, cfg: CoreConfig, environment: jinja2.Environment) -> None:
|
||||||
|
super().__init__(cfg, environment)
|
||||||
|
self.data = IDACData(cfg)
|
||||||
|
self.core_cfg = cfg
|
||||||
|
|
||||||
|
self.nav_name = "頭文字D THE ARCADE"
|
||||||
|
# TODO: Add version list
|
||||||
|
self.version = IDACConstants.VER_IDAC_SEASON_2
|
||||||
|
|
||||||
|
def render_GET(self, request: Request) -> bytes:
|
||||||
|
uri: str = request.uri.decode()
|
||||||
|
|
||||||
|
template = self.environment.get_template(
|
||||||
|
"titles/idac/frontend/ranking/index.jinja"
|
||||||
|
)
|
||||||
|
sesh: Session = request.getSession()
|
||||||
|
usr_sesh = IUserSession(sesh)
|
||||||
|
user_id = usr_sesh.userId
|
||||||
|
# user_id = usr_sesh.user_id
|
||||||
|
|
||||||
|
# IDAC constants
|
||||||
|
if uri.startswith("/game/idac/ranking/const.get"):
|
||||||
|
# set the content type to json
|
||||||
|
request.responseHeaders.addRawHeader(b"content-type", b"application/json")
|
||||||
|
|
||||||
|
# get the constants
|
||||||
|
with open("titles/idac/frontend/const.json", "r", encoding="utf-8") as f:
|
||||||
|
constants = json.load(f)
|
||||||
|
|
||||||
|
return json.dumps(constants, ensure_ascii=False).encode("utf-8")
|
||||||
|
|
||||||
|
# leaderboard ranking
|
||||||
|
elif uri.startswith("/game/idac/ranking/ranking.get"):
|
||||||
|
# set the content type to json
|
||||||
|
request.responseHeaders.addRawHeader(b"content-type", b"application/json")
|
||||||
|
|
||||||
|
req = RankingRequest(request.args)
|
||||||
|
resp = RankingResponse()
|
||||||
|
|
||||||
|
if not req.success:
|
||||||
|
resp.error = req.error
|
||||||
|
return resp.to_json()
|
||||||
|
|
||||||
|
# get the total number of records
|
||||||
|
total_records = self.data.item.get_time_trial_ranking_by_course_total(
|
||||||
|
self.version, req.course_id
|
||||||
|
)
|
||||||
|
# return an error if there are no records
|
||||||
|
if total_records is None or total_records == 0:
|
||||||
|
resp.error = "No records found."
|
||||||
|
return resp.to_json()
|
||||||
|
|
||||||
|
# get the total number of records
|
||||||
|
total = total_records["count"]
|
||||||
|
|
||||||
|
limit = 50
|
||||||
|
offset = (req.page_number - 1) * limit
|
||||||
|
|
||||||
|
ranking = self.data.item.get_time_trial_ranking_by_course(
|
||||||
|
self.version,
|
||||||
|
req.course_id,
|
||||||
|
limit=limit,
|
||||||
|
offset=offset,
|
||||||
|
)
|
||||||
|
|
||||||
|
for i, rank in enumerate(ranking):
|
||||||
|
user_id = rank["user"]
|
||||||
|
|
||||||
|
# get the username, country and store from the profile
|
||||||
|
profile = self.data.profile.get_profile(user_id, self.version)
|
||||||
|
arcade = self.data.arcade.get_arcade(profile["store"])
|
||||||
|
|
||||||
|
if arcade is None:
|
||||||
|
arcade = {}
|
||||||
|
arcade["name"] = self.core_config.server.name
|
||||||
|
|
||||||
|
# should never happen
|
||||||
|
if profile is None:
|
||||||
|
continue
|
||||||
|
|
||||||
|
resp.ranking.append(
|
||||||
|
RankingData(
|
||||||
|
rank=offset + i + 1,
|
||||||
|
name=profile["username"],
|
||||||
|
record=rank["goal_time"],
|
||||||
|
store=arcade["name"],
|
||||||
|
eval_id=rank["eval_id"],
|
||||||
|
style_car_id=rank["style_car_id"],
|
||||||
|
update_date=str(rank["play_dt"]),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
# now return the json data, with the total number of pages and records
|
||||||
|
# round up the total pages
|
||||||
|
resp.success = True
|
||||||
|
resp.total_pages = (total // limit) + 1
|
||||||
|
resp.total_records = total
|
||||||
|
return resp.to_json()
|
||||||
|
|
||||||
|
return template.render(
|
||||||
|
title=f"{self.core_config.server.name} | {self.nav_name}",
|
||||||
|
game_list=self.environment.globals["game_list"],
|
||||||
|
sesh=vars(usr_sesh),
|
||||||
|
active_page="idac",
|
||||||
|
active_tab="ranking",
|
||||||
|
).encode("utf-16")
|
||||||
|
|
||||||
|
|
||||||
|
class IDACProfileFrontend(FE_Base):
|
||||||
|
def __init__(self, cfg: CoreConfig, environment: jinja2.Environment) -> None:
|
||||||
|
super().__init__(cfg, environment)
|
||||||
|
self.data = IDACData(cfg)
|
||||||
|
self.core_cfg = cfg
|
||||||
|
|
||||||
|
self.nav_name = "頭文字D THE ARCADE"
|
||||||
|
# TODO: Add version list
|
||||||
|
self.version = IDACConstants.VER_IDAC_SEASON_2
|
||||||
|
|
||||||
self.ticket_names = {
|
self.ticket_names = {
|
||||||
3: "car_dressup_points",
|
3: "car_dressup_points",
|
||||||
5: "avatar_points",
|
5: "avatar_points",
|
||||||
25: "full_tune_tickets",
|
25: "full_tune_tickets",
|
||||||
34: "full_tune_fragments",
|
34: "full_tune_fragments",
|
||||||
}
|
}
|
||||||
|
|
||||||
def generate_all_tables_json(self, user_id: int):
|
def generate_all_tables_json(self, user_id: int):
|
||||||
json_export = {}
|
json_export = {}
|
||||||
|
|
||||||
@ -60,7 +309,7 @@ class IDACFrontend(FE_Base):
|
|||||||
theory_running,
|
theory_running,
|
||||||
vs_info,
|
vs_info,
|
||||||
stamp,
|
stamp,
|
||||||
timetrial_event
|
timetrial_event,
|
||||||
}
|
}
|
||||||
|
|
||||||
for table in idac_tables:
|
for table in idac_tables:
|
||||||
@ -86,11 +335,12 @@ class IDACFrontend(FE_Base):
|
|||||||
|
|
||||||
return json.dumps(json_export, indent=4, default=str, ensure_ascii=False)
|
return json.dumps(json_export, indent=4, default=str, ensure_ascii=False)
|
||||||
|
|
||||||
|
|
||||||
def render_GET(self, request: Request) -> bytes:
|
def render_GET(self, request: Request) -> bytes:
|
||||||
uri: str = request.uri.decode()
|
uri: str = request.uri.decode()
|
||||||
|
|
||||||
template = self.environment.get_template(
|
template = self.environment.get_template(
|
||||||
"titles/idac/frontend/idac_index.jinja"
|
"titles/idac/frontend/profile/index.jinja"
|
||||||
)
|
)
|
||||||
sesh: Session = request.getSession()
|
sesh: Session = request.getSession()
|
||||||
usr_sesh = IUserSession(sesh)
|
usr_sesh = IUserSession(sesh)
|
||||||
@ -98,7 +348,7 @@ class IDACFrontend(FE_Base):
|
|||||||
# user_id = usr_sesh.user_id
|
# user_id = usr_sesh.user_id
|
||||||
|
|
||||||
# profile export
|
# profile export
|
||||||
if uri.startswith("/game/idac/export"):
|
if uri.startswith("/game/idac/profile/export.get"):
|
||||||
if user_id == 0:
|
if user_id == 0:
|
||||||
return redirectTo(b"/game/idac", request)
|
return redirectTo(b"/game/idac", request)
|
||||||
|
|
||||||
@ -136,7 +386,5 @@ class IDACFrontend(FE_Base):
|
|||||||
rank=rank,
|
rank=rank,
|
||||||
sesh=vars(usr_sesh),
|
sesh=vars(usr_sesh),
|
||||||
active_page="idac",
|
active_page="idac",
|
||||||
|
active_tab="profile",
|
||||||
).encode("utf-16")
|
).encode("utf-16")
|
||||||
|
|
||||||
def render_POST(self, request: Request) -> bytes:
|
|
||||||
pass
|
|
||||||
|
1
titles/idac/frontend/const.json
Normal file
1
titles/idac/frontend/const.json
Normal file
File diff suppressed because one or more lines are too long
@ -2,130 +2,20 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
<h1 class="mb-3">頭文字D THE ARCADE</h1>
|
<h1 class="mb-3">頭文字D THE ARCADE</h1>
|
||||||
|
|
||||||
{% if sesh is defined and sesh["userId"] > 0 %}
|
<nav class="mb-3">
|
||||||
<div class="card mb-3">
|
<ul class="nav nav-tabs">
|
||||||
<div class="card-body">
|
<li class="nav-item">
|
||||||
<div class="card-title">
|
<a class="nav-link {% if active_tab == 'ranking' %}active{% endif %}" aria-current="page" href="ranking">Ranking</a>
|
||||||
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center">
|
</li>
|
||||||
<h3>{{ sesh["username"] }}'s Profile</h3>
|
<li class="nav-item">
|
||||||
<div class="btn-toolbar mb-2 mb-md-0">
|
<a class="nav-link {% if active_tab == 'profile' %}active{% endif %}" href="profile">Profile</a>
|
||||||
<div class="btn-group me-2">
|
</li>
|
||||||
<!--<button type="button" class="btn btn-sm btn-outline-secondary">Share</button>-->
|
</ul>
|
||||||
<button type="button" data-bs-toggle="modal" data-bs-target="#export"
|
</nav>
|
||||||
class="btn btn-sm btn-outline-primary">Export</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<!--<h4 class="card-subtitle mb-2 text-body-secondary">Card subtitle</h4>-->
|
|
||||||
{% if profile is defined and profile is not none %}
|
|
||||||
<div class="row d-flex justify-content-center h-100">
|
|
||||||
<div class="col col-lg-3 col-12">
|
|
||||||
<div class="card mb-3">
|
|
||||||
<div class="card-body p-4">
|
|
||||||
<h5>Information</h5>
|
|
||||||
<hr class="mt-0 mb-4">
|
|
||||||
<h6>Username</h6>
|
|
||||||
<p class="text-muted">{{ profile.username }}</p>
|
|
||||||
<h6>Cash</h6>
|
|
||||||
<p class="text-muted">{{ profile.cash }} D</p>
|
|
||||||
<h6>Grade</h6>
|
|
||||||
<h4>
|
|
||||||
{% set grade = rank.grade %}
|
|
||||||
{% if grade >= 1 and grade <= 72 %}
|
|
||||||
{% set grade_number = (grade - 1) // 9 %}
|
|
||||||
{% set grade_letters = ['E', 'D', 'C', 'B', 'A', 'S', 'SS', 'X'] %}
|
|
||||||
{{ grade_letters[grade_number] }}{{ 9 - ((grade-1) % 9) }}
|
|
||||||
{% else %}
|
|
||||||
Unknown
|
|
||||||
{% endif %}
|
|
||||||
</h4>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col col-lg-9 col-12">
|
|
||||||
<div class="card mb-3">
|
|
||||||
|
|
||||||
<div class="card-body p-4">
|
{% block tab %}
|
||||||
<h5>Statistics</h5>
|
|
||||||
<hr class="mt-0 mb-4">
|
|
||||||
<div class="row pt-1">
|
|
||||||
<div class="col-lg-4 col-md-6 mb-3">
|
|
||||||
<h6>Total Plays</h6>
|
|
||||||
<p class="text-muted">{{ profile.total_play }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4 col-md-6 mb-3">
|
|
||||||
<h6>Last Played</h6>
|
|
||||||
<p class="text-muted">{{ profile.last_play_date }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-4 col-md-6 mb-3">
|
|
||||||
<h6>Mileage</h6>
|
|
||||||
<p class="text-muted">{{ profile.mileage / 1000}} km</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% if tickets is defined and tickets|length > 0 %}
|
|
||||||
<h5>Tokens/Tickets</h5>
|
|
||||||
<hr class="mt-0 mb-4">
|
|
||||||
<div class="row pt-1">
|
|
||||||
<div class="col-lg-3 col-md-6 mb-3">
|
|
||||||
<h6>Avatar Tokens</h6>
|
|
||||||
<p class="text-muted">{{ tickets.avatar_points }}/30</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-3 col-md-6 mb-3">
|
|
||||||
<h6>Car Dressup Tokens</h6>
|
|
||||||
<p class="text-muted">{{ tickets.car_dressup_points }}/30</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-3 col-md-6 mb-3">
|
|
||||||
<h6>FullTune Tickets</h6>
|
|
||||||
<p class="text-muted">{{ tickets.full_tune_tickets }}/99</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-lg-3 col-md-6 mb-3">
|
|
||||||
<h6>FullTune Fragments</h6>
|
|
||||||
<p class="text-muted">{{ tickets.full_tune_fragments }}/10</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<div class="alert alert-warning" role="alert">
|
|
||||||
You need to play 頭文字D THE ARCADE first to view your profile.
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
<!--<a href="#" data-bs-toggle="modal" data-bs-target="#card-add" class="card-link">Add Card</a>-->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% else %}
|
|
||||||
<div class="alert alert-info" role="alert">
|
|
||||||
You need to be logged in to view this page. <a href="/gate">Login</a></a>
|
|
||||||
</div>
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div class="modal fade" id="export" tabindex="-1" aria-labelledby="export-label" aria-hidden="true">
|
{% endblock tab %}
|
||||||
<div class="modal-dialog">
|
|
||||||
<div class="modal-content">
|
|
||||||
<div class="modal-header">
|
|
||||||
<h1 class="modal-title fs-5" id="exort-label">Export Profile</h1>
|
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
Download your profile as a <strong>.json</strong> file in order to import it into your local ARTEMiS
|
|
||||||
database.
|
|
||||||
<div class="alert alert-warning mt-3" role="alert">
|
|
||||||
{% if profile is defined and profile is not none %}
|
|
||||||
Are you sure you want to export your profile with the username {{ profile.username }}?
|
|
||||||
{% endif %}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
|
||||||
<button type="button" class="btn btn-primary" id="exportBtn">Download Profile</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
{% include "titles/idac/frontend/js/idac_scripts.js" %}
|
{% include "titles/idac/frontend/js/idac_scripts.js" %}
|
||||||
|
@ -1,10 +1,79 @@
|
|||||||
$(document).ready(function () {
|
// Declare a global variable to store the JSON data
|
||||||
$('#exportBtn').click(function () {
|
var constData;
|
||||||
window.location = "/game/idac/export";
|
|
||||||
|
|
||||||
// appendAlert('Successfully exported the profile', 'success');
|
function evaluateRank(evalId) {
|
||||||
|
if (evalId >= 1 && evalId <= 4) {
|
||||||
|
return "Rookie";
|
||||||
|
} else if (evalId >= 5 && evalId <= 8) {
|
||||||
|
return "Regular";
|
||||||
|
} else if (evalId >= 9 && evalId <= 12) {
|
||||||
|
return "Specialist";
|
||||||
|
} else if (evalId >= 13 && evalId <= 16) {
|
||||||
|
return "Expert";
|
||||||
|
} else if (evalId >= 17 && evalId <= 20) {
|
||||||
|
return "Pro";
|
||||||
|
} else if (evalId >= 21 && evalId <= 24) {
|
||||||
|
return "Master";
|
||||||
|
} else if (evalId == 25) {
|
||||||
|
return "Master+";
|
||||||
|
} else {
|
||||||
|
return "Invalid";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Close the modal on success
|
function formatGoalTime(milliseconds) {
|
||||||
$('#export').modal('hide');
|
// Convert the milliseconds to a time string
|
||||||
|
var minutes = Math.floor(milliseconds / 60000);
|
||||||
|
var seconds = Math.floor((milliseconds % 60000) / 1000);
|
||||||
|
milliseconds %= 1000;
|
||||||
|
|
||||||
|
return `${parseInt(minutes)}'${seconds.toString().padStart(2, '0')}"${milliseconds.toString().padStart(3, '0')}`;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Function to get style_name for a given style_car_id
|
||||||
|
function getCarName(style_car_id) {
|
||||||
|
// Find the car with the matching style_car_id
|
||||||
|
var foundCar = constData.car.find(function (style) {
|
||||||
|
return style.style_car_id === style_car_id;
|
||||||
});
|
});
|
||||||
});
|
|
||||||
|
// Return the style_name if found, otherwise return Unknown
|
||||||
|
return foundCar ? foundCar.style_name : "Unknown car";
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
// Make an AJAX request to load the JSON file
|
||||||
|
$.ajax({
|
||||||
|
url: "/game/idac/ranking/const.get",
|
||||||
|
type: "GET",
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
// Check if the 'course' array exists in the JSON data
|
||||||
|
if (data && data.course) {
|
||||||
|
// Assign the JSON data to the global variable
|
||||||
|
constData = data;
|
||||||
|
|
||||||
|
// Get the select element
|
||||||
|
var selectElement = $("#course-select");
|
||||||
|
|
||||||
|
// Remove the Loading text
|
||||||
|
selectElement.empty();
|
||||||
|
|
||||||
|
// Loop through the 'course' array and add options to the select
|
||||||
|
$.each(constData.course, function (index, course) {
|
||||||
|
var option = '<option value="' + course.course_id + '"' + (index === 0 ? 'selected' : '') + '>' + course.course_name + '</option>';
|
||||||
|
selectElement.append(option);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Simulate a change event on page load with the default value (0)
|
||||||
|
$("#course-select").val("0").change();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
// Print the error message as an option element
|
||||||
|
$("#course-select").html("<option value='0' selected disabled>" + textStatus + "</option>");
|
||||||
|
console.error("Error loading JSON file:", textStatus, errorThrown);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
129
titles/idac/frontend/profile/index.jinja
Normal file
129
titles/idac/frontend/profile/index.jinja
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
{% extends "titles/idac/frontend/idac_index.jinja" %}
|
||||||
|
{% block tab %}
|
||||||
|
|
||||||
|
{% if sesh is defined and sesh["userId"] > 0 %}
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="card-title">
|
||||||
|
<div class="d-flex justify-content-between flex-wrap flex-md-nowrap align-items-center">
|
||||||
|
<h3>{{ sesh["username"] }}'s Profile</h3>
|
||||||
|
<div class="btn-toolbar mb-2 mb-md-0">
|
||||||
|
<div class="btn-group me-2">
|
||||||
|
<!--<button type="button" class="btn btn-sm btn-outline-secondary">Share</button>-->
|
||||||
|
<button type="button" data-bs-toggle="modal" data-bs-target="#export"
|
||||||
|
class="btn btn-sm btn-outline-primary">Export</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!--<h4 class="card-subtitle mb-2 text-body-secondary">Card subtitle</h4>-->
|
||||||
|
{% if profile is defined and profile is not none %}
|
||||||
|
<div class="row d-flex justify-content-center h-100">
|
||||||
|
<div class="col col-lg-3 col-12">
|
||||||
|
<div class="card mb-3">
|
||||||
|
<div class="card-body p-4">
|
||||||
|
<h5>Information</h5>
|
||||||
|
<hr class="mt-0 mb-4">
|
||||||
|
<h6>Username</h6>
|
||||||
|
<p class="text-muted">{{ profile.username }}</p>
|
||||||
|
<h6>Cash</h6>
|
||||||
|
<p class="text-muted">{{ profile.cash }} D</p>
|
||||||
|
<h6>Grade</h6>
|
||||||
|
<h4>
|
||||||
|
{% set grade = rank.grade %}
|
||||||
|
{% if grade >= 1 and grade <= 72 %} {% set grade_number=(grade - 1) // 9 %} {% set
|
||||||
|
grade_letters=['E', 'D' , 'C' , 'B' , 'A' , 'S' , 'SS' , 'X' ] %} {{
|
||||||
|
grade_letters[grade_number] }}{{ 9 - ((grade-1) % 9) }} {% else %} Unknown {% endif %}
|
||||||
|
</h4>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col col-lg-9 col-12">
|
||||||
|
<div class="card mb-3">
|
||||||
|
|
||||||
|
<div class="card-body p-4">
|
||||||
|
<h5>Statistics</h5>
|
||||||
|
<hr class="mt-0 mb-4">
|
||||||
|
<div class="row pt-1">
|
||||||
|
<div class="col-lg-4 col-md-6 mb-3">
|
||||||
|
<h6>Total Plays</h6>
|
||||||
|
<p class="text-muted">{{ profile.total_play }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-md-6 mb-3">
|
||||||
|
<h6>Last Played</h6>
|
||||||
|
<p class="text-muted">{{ profile.last_play_date }}</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-4 col-md-6 mb-3">
|
||||||
|
<h6>Mileage</h6>
|
||||||
|
<p class="text-muted">{{ profile.mileage / 1000}} km</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% if tickets is defined and tickets|length > 0 %}
|
||||||
|
<h5>Tokens/Tickets</h5>
|
||||||
|
<hr class="mt-0 mb-4">
|
||||||
|
<div class="row pt-1">
|
||||||
|
<div class="col-lg-3 col-md-6 mb-3">
|
||||||
|
<h6>Avatar Tokens</h6>
|
||||||
|
<p class="text-muted">{{ tickets.avatar_points }}/30</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-3 col-md-6 mb-3">
|
||||||
|
<h6>Car Dressup Tokens</h6>
|
||||||
|
<p class="text-muted">{{ tickets.car_dressup_points }}/30</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-3 col-md-6 mb-3">
|
||||||
|
<h6>FullTune Tickets</h6>
|
||||||
|
<p class="text-muted">{{ tickets.full_tune_tickets }}/99</p>
|
||||||
|
</div>
|
||||||
|
<div class="col-lg-3 col-md-6 mb-3">
|
||||||
|
<h6>FullTune Fragments</h6>
|
||||||
|
<p class="text-muted">{{ tickets.full_tune_fragments }}/10</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-warning" role="alert">
|
||||||
|
You need to play 頭文字D THE ARCADE first to view your profile.
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<!--<a href="#" data-bs-toggle="modal" data-bs-target="#card-add" class="card-link">Add Card</a>-->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% else %}
|
||||||
|
<div class="alert alert-info" role="alert">
|
||||||
|
You need to be logged in to view this page. <a href="/gate">Login</a></a>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="modal fade" id="export" tabindex="-1" aria-labelledby="export-label" aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<h1 class="modal-title fs-5" id="exort-label">Export Profile</h1>
|
||||||
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
Download your profile as a <strong>.json</strong> file in order to import it into your local ARTEMiS
|
||||||
|
database.
|
||||||
|
<div class="alert alert-warning mt-3" role="alert">
|
||||||
|
{% if profile is defined and profile is not none %}
|
||||||
|
Are you sure you want to export your profile with the username {{ profile.username }}?
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||||
|
<button type="button" class="btn btn-primary" id="exportBtn">Download Profile</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
{% include "titles/idac/frontend/profile/js/scripts.js" %}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock tab %}
|
10
titles/idac/frontend/profile/js/scripts.js
Normal file
10
titles/idac/frontend/profile/js/scripts.js
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
$(document).ready(function () {
|
||||||
|
$('#exportBtn').click(function () {
|
||||||
|
window.location = "/game/idac/profile/export.get";
|
||||||
|
|
||||||
|
// appendAlert('Successfully exported the profile', 'success');
|
||||||
|
|
||||||
|
// Close the modal on success
|
||||||
|
$('#export').modal('hide');
|
||||||
|
});
|
||||||
|
});
|
30
titles/idac/frontend/ranking/index.jinja
Normal file
30
titles/idac/frontend/ranking/index.jinja
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
{% extends "titles/idac/frontend/idac_index.jinja" %}
|
||||||
|
{% block tab %}
|
||||||
|
|
||||||
|
<div class="tab-content" id="nav-tabContent">
|
||||||
|
<!-- Ranking -->
|
||||||
|
<div class="tab-pane fade show active" id="nav-ranking" role="tabpanel" aria-labelledby="nav-ranking-tab"
|
||||||
|
tabindex="0">
|
||||||
|
<div class="row justify-content-md-center form-signin">
|
||||||
|
<div class="col col-lg-4">
|
||||||
|
<select class="form-select mb-3" id="course-select">
|
||||||
|
<option value="0" selected disabled>Loading Courses...</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<div id="table-ranking">
|
||||||
|
<div class="text-center">Loading Ranking...</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="pagination-ranking"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
{% include "titles/idac/frontend/ranking/js/scripts.js" %}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
{% endblock tab %}
|
95
titles/idac/frontend/ranking/js/scripts.js
Normal file
95
titles/idac/frontend/ranking/js/scripts.js
Normal file
@ -0,0 +1,95 @@
|
|||||||
|
// Function to load data based on the selected value
|
||||||
|
function loadRanking(courseId, pageNumber = 1) {
|
||||||
|
// Make a GET request to the server
|
||||||
|
$.ajax({
|
||||||
|
url: "/game/idac/ranking/ranking.get",
|
||||||
|
type: "GET",
|
||||||
|
data: { courseId: courseId, pageNumber: pageNumber },
|
||||||
|
dataType: "json",
|
||||||
|
success: function (data) {
|
||||||
|
// check if an error inside the json exists
|
||||||
|
if (!data.success) {
|
||||||
|
// Inject the table into the container
|
||||||
|
$("#table-ranking").html("<div class='text-center'>" + data.error + "</div>");
|
||||||
|
console.error("Error: " + data.error);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// get the total number of pages
|
||||||
|
var total_pages = data.total_pages;
|
||||||
|
|
||||||
|
// Generate the HTML table
|
||||||
|
var tableHtml = '<div data-bs-spy="scroll" data-bs-smooth-scroll="true" class="table-responsive"><table class="table table-hover"><thead><tr><th scope="col">#</th><th scope="col">Name/Car</th><th scope="col">Time</th><th scope="col" class="d-none d-sm-table-cell">Eval</th><th scope="col" class="d-none d-lg-table-cell">Store/Date</th></tr></thead><tbody>';
|
||||||
|
$.each(data.ranking, function (i, ranking) {
|
||||||
|
// Add a 1 to the i variable to get the correct rank number
|
||||||
|
tableHtml += `<tr id="rank-${i+1}" class="align-middle">`;
|
||||||
|
tableHtml += '<td>' + ranking.rank + '</td>';
|
||||||
|
tableHtml += '<td>' + ranking.name + '<br/>' + getCarName(ranking.style_car_id) + '</td>';
|
||||||
|
tableHtml += '<td class="fs-3">' + formatGoalTime(ranking.record) + '</td>';
|
||||||
|
tableHtml += '<td class="fs-4 d-none d-sm-table-cell">' + evaluateRank(ranking.eval_id) + '</td>';
|
||||||
|
// Ignore the Store and Date columns on small screens
|
||||||
|
tableHtml += '<td class="d-none d-lg-table-cell">' + ranking.store + '<br/>' + ranking.update_date + '</td>';
|
||||||
|
tableHtml += '</tr>';
|
||||||
|
});
|
||||||
|
tableHtml += '</tbody></table></div>';
|
||||||
|
|
||||||
|
// Inject the table into the container
|
||||||
|
$("#table-ranking").html(tableHtml);
|
||||||
|
|
||||||
|
// Generate the Pagination HTML
|
||||||
|
var paginationHtml = '<nav class="mt-3"><ul class="pagination justify-content-center">';
|
||||||
|
// Deactivate the previous button if the current page is the first page
|
||||||
|
paginationHtml += '<li class="page-item ' + (pageNumber === 1 ? 'disabled' : '') + '">';
|
||||||
|
paginationHtml += '<a class="page-link" href="#rank-1" data-page="' + (pageNumber - 1) + '">Previous</a>';
|
||||||
|
paginationHtml += '</li>';
|
||||||
|
for (var i = 1; i <= total_pages; i++) {
|
||||||
|
// Set the active class to the current page
|
||||||
|
paginationHtml += '<li class="page-item ' + (pageNumber === i ? 'active disabled' : '') + '"><a class="page-link" href="#rank-1" data-page="' + i + '">' + i + '</a></li>';
|
||||||
|
}
|
||||||
|
// Deactivate the next button if the current page is the last page
|
||||||
|
paginationHtml += '<li class="page-item ' + (pageNumber === total_pages ? 'disabled' : '') + '">';
|
||||||
|
paginationHtml += '<a class="page-link" href="#rank-1" data-page="' + (pageNumber + 1) + '">Next</a>';
|
||||||
|
paginationHtml += '</li>';
|
||||||
|
paginationHtml += '</ul></nav>';
|
||||||
|
|
||||||
|
// Inject the pagination into the container
|
||||||
|
$("#pagination-ranking").html(paginationHtml);
|
||||||
|
},
|
||||||
|
error: function (jqXHR, textStatus, errorThrown) {
|
||||||
|
// Inject the table into the container
|
||||||
|
$("#table-ranking").html("<div class='text-center'>" + textStatus + "</div>");
|
||||||
|
console.error("Error: " + textStatus, errorThrown);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
// Function to handle page changes
|
||||||
|
function changePage(pageNumber) {
|
||||||
|
// Get the selected value
|
||||||
|
var courseId = $("#course-select").val();
|
||||||
|
|
||||||
|
// Call the function to load data with the new page number
|
||||||
|
loadRanking(courseId, pageNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
$(document).ready(function () {
|
||||||
|
// Attach an event handler to the select element
|
||||||
|
$("#course-select").change(function () {
|
||||||
|
// Get the selected value
|
||||||
|
var courseId = $(this).val();
|
||||||
|
|
||||||
|
// Call the function to load data
|
||||||
|
loadRanking(courseId);
|
||||||
|
});
|
||||||
|
|
||||||
|
// Event delegation for pagination links
|
||||||
|
$("#pagination-ranking").on("click", "a.page-link", function (event) {
|
||||||
|
// event.preventDefault(); // Prevent the default behavior of the link
|
||||||
|
var clickedPage = $(this).data("page");
|
||||||
|
// Check if the changePage function is not already in progress
|
||||||
|
if (!$(this).hasClass('disabled')) {
|
||||||
|
// Handle the page change here
|
||||||
|
changePage(clickedPage);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
@ -163,3 +163,5 @@ class IDACServlet:
|
|||||||
self.game_cfg.server.echo2,
|
self.game_cfg.server.echo2,
|
||||||
IDACEchoUDP(self.core_cfg, self.game_cfg, self.game_cfg.server.echo2),
|
IDACEchoUDP(self.core_cfg, self.game_cfg, self.game_cfg.server.echo2),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
self.logger.info(f"Matching listening on {self.game_cfg.server.matching} with echos on {self.game_cfg.server.echo1} and {self.game_cfg.server.echo2}")
|
||||||
|
@ -225,19 +225,30 @@ vs_info = Table(
|
|||||||
Column("id", Integer, primary_key=True, nullable=False),
|
Column("id", Integer, primary_key=True, nullable=False),
|
||||||
Column("user", ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade")),
|
Column("user", ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade")),
|
||||||
Column("battle_mode", Integer),
|
Column("battle_mode", Integer),
|
||||||
Column("vs_cnt", Integer),
|
|
||||||
Column("vs_win", Integer),
|
|
||||||
Column("invalid", Integer),
|
Column("invalid", Integer),
|
||||||
Column("str", Integer),
|
Column("str", Integer),
|
||||||
Column("str_now", Integer),
|
Column("str_now", Integer),
|
||||||
Column("lose_now", Integer),
|
Column("lose_now", Integer),
|
||||||
|
Column("vs_history", Integer),
|
||||||
Column("break_count", Integer),
|
Column("break_count", Integer),
|
||||||
Column("break_penalty_flag", Boolean),
|
Column("break_penalty_flag", Boolean),
|
||||||
Column("vsinfo_course_data", JSON),
|
|
||||||
UniqueConstraint("user", "battle_mode", name="idac_user_vs_info_uk"),
|
UniqueConstraint("user", "battle_mode", name="idac_user_vs_info_uk"),
|
||||||
mysql_charset="utf8mb4",
|
mysql_charset="utf8mb4",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
vs_course_info = Table(
|
||||||
|
"idac_user_vs_course_info",
|
||||||
|
metadata,
|
||||||
|
Column("id", Integer, primary_key=True, nullable=False),
|
||||||
|
Column("user", ForeignKey("aime_user.id", ondelete="cascade", onupdate="cascade")),
|
||||||
|
Column("battle_mode", Integer),
|
||||||
|
Column("course_id", Integer),
|
||||||
|
Column("vs_cnt", Integer),
|
||||||
|
Column("vs_win", Integer),
|
||||||
|
UniqueConstraint("user", "battle_mode", "course_id", name="idac_user_vs_course_info_uk"),
|
||||||
|
mysql_charset="utf8mb4",
|
||||||
|
)
|
||||||
|
|
||||||
round_infos = Table(
|
round_infos = Table(
|
||||||
"idac_round_info",
|
"idac_round_info",
|
||||||
metadata,
|
metadata,
|
||||||
@ -514,23 +525,20 @@ class IDACItemData(BaseData):
|
|||||||
def get_time_trial_best_cars_by_course(
|
def get_time_trial_best_cars_by_course(
|
||||||
self, version: int, course_id: int, aime_id: Optional[int] = None
|
self, version: int, course_id: int, aime_id: Optional[int] = None
|
||||||
) -> Optional[List[Row]]:
|
) -> Optional[List[Row]]:
|
||||||
subquery = (
|
subquery = select(
|
||||||
select(
|
trial.c.version,
|
||||||
trial.c.version,
|
func.min(trial.c.goal_time).label("min_goal_time"),
|
||||||
func.min(trial.c.goal_time).label("min_goal_time"),
|
trial.c.style_car_id,
|
||||||
trial.c.style_car_id,
|
).where(
|
||||||
)
|
and_(
|
||||||
.where(
|
trial.c.version == version,
|
||||||
and_(
|
trial.c.course_id == course_id,
|
||||||
trial.c.version == version,
|
|
||||||
trial.c.course_id == course_id,
|
|
||||||
)
|
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
||||||
if aime_id is not None:
|
if aime_id is not None:
|
||||||
subquery = subquery.where(trial.c.user == aime_id)
|
subquery = subquery.where(trial.c.user == aime_id)
|
||||||
|
|
||||||
subquery = subquery.group_by(trial.c.style_car_id).subquery()
|
subquery = subquery.group_by(trial.c.style_car_id).subquery()
|
||||||
|
|
||||||
sql = select(trial).where(
|
sql = select(trial).where(
|
||||||
@ -547,12 +555,45 @@ class IDACItemData(BaseData):
|
|||||||
return None
|
return None
|
||||||
return result.fetchall()
|
return result.fetchall()
|
||||||
|
|
||||||
|
def get_time_trial_ranking_by_course_total(
|
||||||
|
self,
|
||||||
|
version: int,
|
||||||
|
course_id: int,
|
||||||
|
) -> Optional[List[Row]]:
|
||||||
|
# count the number of rows returned by the query
|
||||||
|
subquery = (
|
||||||
|
select(
|
||||||
|
trial.c.version,
|
||||||
|
trial.c.user,
|
||||||
|
func.min(trial.c.goal_time).label("min_goal_time"),
|
||||||
|
)
|
||||||
|
.where(and_(trial.c.version == version, trial.c.course_id == course_id))
|
||||||
|
.group_by(trial.c.user)
|
||||||
|
).subquery()
|
||||||
|
|
||||||
|
sql = (
|
||||||
|
select(func.count().label("count"))
|
||||||
|
.where(
|
||||||
|
and_(
|
||||||
|
trial.c.version == subquery.c.version,
|
||||||
|
trial.c.user == subquery.c.user,
|
||||||
|
trial.c.goal_time == subquery.c.min_goal_time,
|
||||||
|
),
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
result = self.execute(sql)
|
||||||
|
if result is None:
|
||||||
|
return None
|
||||||
|
return result.fetchone()
|
||||||
|
|
||||||
def get_time_trial_ranking_by_course(
|
def get_time_trial_ranking_by_course(
|
||||||
self,
|
self,
|
||||||
version: int,
|
version: int,
|
||||||
course_id: int,
|
course_id: int,
|
||||||
style_car_id: Optional[int] = None,
|
style_car_id: Optional[int] = None,
|
||||||
limit: Optional[int] = 10,
|
limit: Optional[int] = 10,
|
||||||
|
offset: Optional[int] = 0,
|
||||||
) -> Optional[List[Row]]:
|
) -> Optional[List[Row]]:
|
||||||
# get the top 10 ranking by goal_time for a given course which is grouped by user
|
# get the top 10 ranking by goal_time for a given course which is grouped by user
|
||||||
subquery = select(
|
subquery = select(
|
||||||
@ -561,7 +602,7 @@ class IDACItemData(BaseData):
|
|||||||
func.min(trial.c.goal_time).label("min_goal_time"),
|
func.min(trial.c.goal_time).label("min_goal_time"),
|
||||||
).where(and_(trial.c.version == version, trial.c.course_id == course_id))
|
).where(and_(trial.c.version == version, trial.c.course_id == course_id))
|
||||||
|
|
||||||
# if wantd filter only by style_car_id
|
# if wanted filter only by style_car_id
|
||||||
if style_car_id is not None:
|
if style_car_id is not None:
|
||||||
subquery = subquery.where(trial.c.style_car_id == style_car_id)
|
subquery = subquery.where(trial.c.style_car_id == style_car_id)
|
||||||
|
|
||||||
@ -583,6 +624,10 @@ class IDACItemData(BaseData):
|
|||||||
if limit is not None:
|
if limit is not None:
|
||||||
sql = sql.limit(limit)
|
sql = sql.limit(limit)
|
||||||
|
|
||||||
|
# offset the result if needed
|
||||||
|
if offset is not None:
|
||||||
|
sql = sql.offset(offset)
|
||||||
|
|
||||||
result = self.execute(sql)
|
result = self.execute(sql)
|
||||||
if result is None:
|
if result is None:
|
||||||
return None
|
return None
|
||||||
@ -754,8 +799,8 @@ class IDACItemData(BaseData):
|
|||||||
return result.fetchall()
|
return result.fetchall()
|
||||||
|
|
||||||
def get_vs_info_by_mode(self, aime_id: int, battle_mode: int) -> Optional[List[Row]]:
|
def get_vs_info_by_mode(self, aime_id: int, battle_mode: int) -> Optional[List[Row]]:
|
||||||
sql = select(vs_info_new).where(
|
sql = select(vs_info).where(
|
||||||
and_(vs_info_new.c.user == aime_id, vs_info_new.c.battle_mode == battle_mode)
|
and_(vs_info.c.user == aime_id, vs_info.c.battle_mode == battle_mode)
|
||||||
)
|
)
|
||||||
|
|
||||||
result = self.execute(sql)
|
result = self.execute(sql)
|
||||||
@ -763,6 +808,15 @@ class IDACItemData(BaseData):
|
|||||||
return None
|
return None
|
||||||
return result.fetchone()
|
return result.fetchone()
|
||||||
|
|
||||||
|
# This method returns a list of course_info
|
||||||
|
def get_vs_course_infos_by_mode(self, aime_id: int, battle_mode: int) -> Optional[List[Row]]:
|
||||||
|
sql = select(vs_course_info).where(vs_course_info.c.user == aime_id, vs_course_info.c.battle_mode == battle_mode)
|
||||||
|
|
||||||
|
result = self.execute(sql)
|
||||||
|
if result is None:
|
||||||
|
return None
|
||||||
|
return result.fetchall()
|
||||||
|
|
||||||
def get_stamps(self, aime_id: int) -> Optional[List[Row]]:
|
def get_stamps(self, aime_id: int) -> Optional[List[Row]]:
|
||||||
sql = select(stamp).where(
|
sql = select(stamp).where(
|
||||||
and_(
|
and_(
|
||||||
@ -775,7 +829,9 @@ class IDACItemData(BaseData):
|
|||||||
return None
|
return None
|
||||||
return result.fetchall()
|
return result.fetchall()
|
||||||
|
|
||||||
def get_timetrial_event(self, aime_id: int, timetrial_event_id: int) -> Optional[Row]:
|
def get_timetrial_event(
|
||||||
|
self, aime_id: int, timetrial_event_id: int
|
||||||
|
) -> Optional[Row]:
|
||||||
sql = select(timetrial_event).where(
|
sql = select(timetrial_event).where(
|
||||||
and_(
|
and_(
|
||||||
timetrial_event.c.user == aime_id,
|
timetrial_event.c.user == aime_id,
|
||||||
@ -963,7 +1019,7 @@ class IDACItemData(BaseData):
|
|||||||
vs_info_data["user"] = aime_id
|
vs_info_data["user"] = aime_id
|
||||||
vs_info_data["battle_mode"] = battle_mode
|
vs_info_data["battle_mode"] = battle_mode
|
||||||
|
|
||||||
sql = insert(vs_info_new).values(**vs_info_data)
|
sql = insert(vs_info).values(**vs_info_data)
|
||||||
conflict = sql.on_duplicate_key_update(**vs_info_data)
|
conflict = sql.on_duplicate_key_update(**vs_info_data)
|
||||||
result = self.execute(conflict)
|
result = self.execute(conflict)
|
||||||
|
|
||||||
@ -972,6 +1028,19 @@ class IDACItemData(BaseData):
|
|||||||
return None
|
return None
|
||||||
return result.lastrowid
|
return result.lastrowid
|
||||||
|
|
||||||
|
def put_vs_course_info(self, aime_id: int, battle_mode: int, course_info_data: Dict) -> Optional[int]:
|
||||||
|
course_info_data["user"] = aime_id
|
||||||
|
course_info_data["battle_mode"] = battle_mode
|
||||||
|
|
||||||
|
sql = insert(vs_course_info).values(**course_info_data)
|
||||||
|
conflict = sql.on_duplicate_key_update(**course_info_data)
|
||||||
|
result = self.execute(conflict)
|
||||||
|
|
||||||
|
if result is None:
|
||||||
|
self.logger.warn(f"put_vs_course_info: Failed to update! aime_id: {aime_id}")
|
||||||
|
return None
|
||||||
|
return result.lastrowid
|
||||||
|
|
||||||
def put_stamp(
|
def put_stamp(
|
||||||
self, aime_id: int, stamp_data: Dict
|
self, aime_id: int, stamp_data: Dict
|
||||||
) -> Optional[int]:
|
) -> Optional[int]:
|
||||||
@ -982,9 +1051,7 @@ class IDACItemData(BaseData):
|
|||||||
result = self.execute(conflict)
|
result = self.execute(conflict)
|
||||||
|
|
||||||
if result is None:
|
if result is None:
|
||||||
self.logger.warn(
|
self.logger.warn(f"putstamp: Failed to update! aime_id: {aime_id}")
|
||||||
f"putstamp: Failed to update! aime_id: {aime_id}"
|
|
||||||
)
|
|
||||||
return None
|
return None
|
||||||
return result.lastrowid
|
return result.lastrowid
|
||||||
|
|
||||||
|
@ -588,6 +588,95 @@ class IDACSeason2(IDACBase):
|
|||||||
user_id, self.version, updated_stock_data
|
user_id, self.version, updated_stock_data
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def _update_vs_info(self, user_id: int, battle_mode: int, data: Dict) -> Dict:
|
||||||
|
vs_info = self.data.item.get_vs_info_by_mode(user_id, battle_mode)
|
||||||
|
|
||||||
|
if vs_info is not None:
|
||||||
|
vs_info = vs_info._asdict()
|
||||||
|
del vs_info["id"]
|
||||||
|
del vs_info["user"]
|
||||||
|
|
||||||
|
vs_info["invalid"] = vs_info["invalid"] + data.get("result")
|
||||||
|
vs_info["str_now"] = vs_info["str_now"] + data.get("win_flg") if data.get("win_flg") == 1 else 0
|
||||||
|
vs_info["str"] = vs_info["str"] if vs_info["str"] > vs_info["str_now"] else vs_info["str_now"]
|
||||||
|
vs_info["lose_now"] += 1 if data.get("win_flg") == 0 else 0
|
||||||
|
vs_info["vs_history"] = data.get("vs_history")
|
||||||
|
vs_info["break_count"] += data.get("break_count")
|
||||||
|
vs_info["break_penalty_flag"] = data.get("break_penalty_flag")
|
||||||
|
|
||||||
|
self.data.item.put_vs_info(user_id, battle_mode, vs_info)
|
||||||
|
|
||||||
|
vs_info["vs_cnt"] = 0
|
||||||
|
vs_info["vs_win"] = 0
|
||||||
|
vs_info["vsinfo_course_data"] = []
|
||||||
|
|
||||||
|
vs_courses_info = self.data.item.get_vs_course_info_by_mode(user_id, battle_mode)
|
||||||
|
course_not_exists = True
|
||||||
|
|
||||||
|
if vs_courses_info is not None:
|
||||||
|
for course in vs_courses_info:
|
||||||
|
course = course._asdict()
|
||||||
|
del course["id"]
|
||||||
|
del course["user"]
|
||||||
|
|
||||||
|
if course["course_id"] == data.get("course_id"):
|
||||||
|
course["vs_cnt"] += 1
|
||||||
|
course["vs_win"] += data.get("win_flg")
|
||||||
|
vs_info["vs_cnt"] += course["vs_cnt"]
|
||||||
|
vs_info["vs_win"] += course["vs_win"]
|
||||||
|
self.data.item.put_vs_course_info(user_id, battle_mode, course)
|
||||||
|
course_not_exists = False
|
||||||
|
else:
|
||||||
|
vs_info["vs_cnt"] += course["vs_cnt"]
|
||||||
|
vs_info["vs_win"] += course["vs_win"]
|
||||||
|
vs_info["vsinfo_course_data"].append(course)
|
||||||
|
|
||||||
|
if course_not_exists:
|
||||||
|
course = {}
|
||||||
|
course["course_id"] = data.get("course_id")
|
||||||
|
course["vs_cnt"] = 1
|
||||||
|
course["vs_win"] = data.get("win_flg")
|
||||||
|
vs_info["vs_cnt"] += course["vs_cnt"]
|
||||||
|
vs_info["vs_win"] += course["vs_win"]
|
||||||
|
vs_info["vsinfo_course_data"].append(course)
|
||||||
|
self.data.item.put_vs_course_info(user_id, battle_mode, course)
|
||||||
|
else:
|
||||||
|
vs_info = {
|
||||||
|
"battle_mode": battle_mode,
|
||||||
|
# "vs_cnt": 1,
|
||||||
|
# "vs_win": data.get("win_flg"),
|
||||||
|
"invalid": data.get("result"),
|
||||||
|
"str": data.get("win_flg"),
|
||||||
|
"str_now": data.get("win_flg"),
|
||||||
|
"lose_now": 1 if data.get("win_flg") == 0 else 0,
|
||||||
|
"vs_history": data.get("vs_history"),
|
||||||
|
"break_count": data.get("break_count"),
|
||||||
|
"break_penalty_flag": data.get("break_penalty_flag"),
|
||||||
|
# "vsinfo_course_data": [
|
||||||
|
# {
|
||||||
|
# "course_id": data.get("course_id"),
|
||||||
|
# "vs_cnt": 1,
|
||||||
|
# "vs_win": data.get("win_flg")
|
||||||
|
# }
|
||||||
|
# ],
|
||||||
|
}
|
||||||
|
self.data.item.put_vs_info(user_id, battle_mode, vs_info)
|
||||||
|
|
||||||
|
course_info = {
|
||||||
|
"course_id": data.get("course_id"),
|
||||||
|
"vs_cnt": 1,
|
||||||
|
"vs_win": data.get("win_flg")
|
||||||
|
}
|
||||||
|
self.data.item.put_vs_course_info(user_id, battle_mode, course_info)
|
||||||
|
|
||||||
|
vs_info["vs_cnt"] = 1
|
||||||
|
vs_info["vs_win"] = data.get("win_flg")
|
||||||
|
vs_info["vsinfo_course_data"] = []
|
||||||
|
vs_info["vsinfo_course_data"].append(course_info)
|
||||||
|
|
||||||
|
vs_info["course_select_priority"] = data.get("course_select_priority")
|
||||||
|
return vs_info
|
||||||
|
|
||||||
def handle_user_getdata_request(self, data: Dict, headers: Dict):
|
def handle_user_getdata_request(self, data: Dict, headers: Dict):
|
||||||
user_id = int(headers["session"])
|
user_id = int(headers["session"])
|
||||||
|
|
||||||
@ -713,27 +802,43 @@ class IDACSeason2(IDACBase):
|
|||||||
# get the users vs info data
|
# get the users vs info data
|
||||||
vs_info_data = []
|
vs_info_data = []
|
||||||
vs_info = self.data.item.get_vs_infos(user_id)
|
vs_info = self.data.item.get_vs_infos(user_id)
|
||||||
for vs in vs_info:
|
if vs_info is not None:
|
||||||
vs_info_data.append(
|
for vs in vs_info:
|
||||||
{
|
vs = vs._asdict()
|
||||||
"battle_mode": 1,
|
vs_courses_infos = self.data.item.get_vs_course_infos_by_mode(user_id, vs["battle_mode"])
|
||||||
"vs_cnt": 1,
|
total_vs_win = 0
|
||||||
"vs_win": vs["win_flg"],
|
total_vs_cnt = 0
|
||||||
"invalid": 0,
|
courses_info = []
|
||||||
"str": 0,
|
if vs_courses_infos is not None:
|
||||||
"str_now": 0,
|
for course in vs_courses_infos:
|
||||||
"lose_now": 0,
|
tmp = course._asdict()
|
||||||
"vs_history": vs["vs_history"],
|
del tmp["id"]
|
||||||
"course_select_priority": 0,
|
del tmp["user"]
|
||||||
"vsinfo_course_data": [
|
del tmp["battle_mode"]
|
||||||
{
|
|
||||||
"course_id": vs["course_id"],
|
total_vs_win += tmp["vs_win"]
|
||||||
"vs_cnt": 1,
|
total_vs_cnt += tmp["vs_cnt"]
|
||||||
"vs_win": vs["win_flg"],
|
|
||||||
}
|
courses_info.append(tmp)
|
||||||
],
|
|
||||||
}
|
|
||||||
)
|
vs_info_data.append(
|
||||||
|
{
|
||||||
|
"battle_mode": vs["battle_mode"],
|
||||||
|
"vs_cnt": total_vs_cnt,
|
||||||
|
"vs_win": total_vs_win,
|
||||||
|
"invalid": vs["invalid"],
|
||||||
|
"str": vs["str"],
|
||||||
|
"str_now": vs["str_now"],
|
||||||
|
"lose_now": vs["lose_now"],
|
||||||
|
"vs_history": vs["vs_history"],
|
||||||
|
"course_select_priority": 0,
|
||||||
|
"break_count": vs["break_count"],
|
||||||
|
"break_penalty_flag": vs["break_penalty_flag"],
|
||||||
|
"vsinfo_course_data": courses_info,
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
# get the user's car
|
# get the user's car
|
||||||
cars = self.data.item.get_cars(self.version, user_id, only_pickup=True)
|
cars = self.data.item.get_cars(self.version, user_id, only_pickup=True)
|
||||||
@ -1808,6 +1913,19 @@ class IDACSeason2(IDACBase):
|
|||||||
"past_season_timetrial_data": past_timetrial_data,
|
"past_season_timetrial_data": past_timetrial_data,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
def handle_user_getpastseasonrounddata_request(self, data: Dict, headers: Dict):
|
||||||
|
user_id = headers["session"]
|
||||||
|
season_id = data.get("season_id")
|
||||||
|
|
||||||
|
# so to get the season 1 data just subtract 1 from the season id
|
||||||
|
past_timetrial_data = self._generate_time_trial_data(season_id - 1, user_id)
|
||||||
|
|
||||||
|
return {
|
||||||
|
"status_code": "0",
|
||||||
|
"season_id": season_id,
|
||||||
|
"past_season_round_event_data": [{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "DAC稼働記念 1stラウンド","round_id": 0},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 2ndラウンド","round_id": 1},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 3rdラウンド","round_id": 2},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 4thラウンド","round_id": 3},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 5thラウンド","round_id": 4},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 6thラウンド","round_id": 5},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 7thラウンド","round_id": 6},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 8thラウンド","round_id": 7},{"count": 0,"win": 0,"rank": 0,"area_rank": 0,"point": 0,"total_round_point": 0,"round_name": "シーズン1 9thラウンド","round_id": 8}]
|
||||||
|
}
|
||||||
|
|
||||||
def handle_user_gettadata_request(self, data: Dict, headers: Dict):
|
def handle_user_gettadata_request(self, data: Dict, headers: Dict):
|
||||||
user_id = headers["session"]
|
user_id = headers["session"]
|
||||||
|
|
||||||
@ -2378,49 +2496,7 @@ class IDACSeason2(IDACBase):
|
|||||||
},
|
},
|
||||||
)
|
)
|
||||||
|
|
||||||
vs_info = self.data.item.get_vs_infos_by_mode(user_id, 0)
|
vs_info = self._update_vs_info(user_id, IDACConstants.BATTLE_MODE_ONLINE, data)
|
||||||
if vs_info is not None:
|
|
||||||
vs_info["vs_cnt"] = vs_info["vs_cnt"] + 1
|
|
||||||
vs_info["vs_win"] = vs_info["vs_win"] + data.get("win_flg")
|
|
||||||
vs_info["invalid"] = vs_info["invalid"] + data.get("result")
|
|
||||||
vs_info["str"] = vs_info["str"] if vs_info["str"] > vs_info["str_now"] else vs_info["str_now"]
|
|
||||||
vs_info["str_now"] = vs_info["str_now"] + data.get("win_flg") if data.get("win_flg") == 1 else 0
|
|
||||||
vs_info["lose_now"] += 1 if data.get("win_flg") == 0 else 0
|
|
||||||
vs_info["break_count"] += data.get("break_count")
|
|
||||||
vs_info["break_penalty_flag"] = data.get("break_penalty_flag")
|
|
||||||
for course in vs_info["vsinfo_course_data"]:
|
|
||||||
if course["course_id"] == data.get("course_id"):
|
|
||||||
course["vs_cnt"] += 1
|
|
||||||
course["vs_win"] += data.get("win_flg")
|
|
||||||
else:
|
|
||||||
course = {}
|
|
||||||
course["course_id"] = data.get("course_id")
|
|
||||||
course["vs_cnt"] = 1
|
|
||||||
course["vs_win"] = data.get("win_flg")
|
|
||||||
vs_info["vsinfo_course_data"].append(course)
|
|
||||||
self.data.item.put_vs_info(user_id, 0, vs_info)
|
|
||||||
else:
|
|
||||||
vs_info = {
|
|
||||||
"battle_mode": 0,
|
|
||||||
"vs_cnt": 1,
|
|
||||||
"vs_win": data.get("win_flg"),
|
|
||||||
"invalid": data.get("result"),
|
|
||||||
"str": data.get("win_flg"),
|
|
||||||
"str_now": data.get("win_flg"),
|
|
||||||
"lose_now": 1 if data.get("win_flg") == 0 else 0,
|
|
||||||
"break_count": data.get("break_count"),
|
|
||||||
"break_penalty_flag": data.get("break_penalty_flag")
|
|
||||||
#"vs_history": data.get("vs_history"),
|
|
||||||
#"course_select_priority": data.get("course_select_priority"),
|
|
||||||
"vsinfo_course_data": [
|
|
||||||
{
|
|
||||||
"course_id": data.get("course_id"),
|
|
||||||
"vs_cnt": 1,
|
|
||||||
"vs_win": data.get("win_flg"),
|
|
||||||
}
|
|
||||||
],
|
|
||||||
}
|
|
||||||
self.data.item.put_vs_info(user_id, 0, vs_info)
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"status_code": "0",
|
"status_code": "0",
|
||||||
@ -2499,49 +2575,7 @@ class IDACSeason2(IDACBase):
|
|||||||
)
|
)
|
||||||
|
|
||||||
# save vs_info in database
|
# save vs_info in database
|
||||||
vs_info = self.data.item.get_vs_infos_by_mode(user_id, 1)
|
vs_info = self._update_vs_info(user_id, IDACConstants.BATTLE_MODE_OFFLINE, data)
|
||||||
if vs_info is not None:
|
|
||||||
vs_info["vs_cnt"] = vs_info["vs_cnt"] + 1
|
|
||||||
vs_info["vs_win"] = vs_info["vs_win"] + data.get("win_flg")
|
|
||||||
vs_info["invalid"] = vs_info["invalid"] + data.get("result")
|
|
||||||
vs_info["str"] = vs_info["str"] if vs_info["str"] > vs_info["str_now"] else vs_info["str_now"]
|
|
||||||
vs_info["str_now"] = vs_info["str_now"] + data.get("win_flg") if data.get("win_flg") == 1 else 0
|
|
||||||
vs_info["lose_now"] += 1 if data.get("win_flg") == 0 else 0
|
|
||||||
vs_info["break_count"] += data.get("break_count")
|
|
||||||
vs_info["break_penalty_flag"] = data.get("break_penalty_flag")
|
|
||||||
for course in vs_info["vsinfo_course_data"]:
|
|
||||||
if course["course_id"] == data.get("course_id"):
|
|
||||||
course["vs_cnt"] += 1
|
|
||||||
course["vs_win"] += data.get("win_flg")
|
|
||||||
else:
|
|
||||||
course = {}
|
|
||||||
course["course_id"] = data.get("course_id")
|
|
||||||
course["vs_cnt"] = 1
|
|
||||||
course["vs_win"] = data.get("win_flg")
|
|
||||||
vs_info["vsinfo_course_data"].append(course)
|
|
||||||
self.data.item.put_vs_info(user_id, 1, vs_info)
|
|
||||||
else:
|
|
||||||
vs_info = {
|
|
||||||
"battle_mode": 0,
|
|
||||||
"vs_cnt": 1,
|
|
||||||
"vs_win": data.get("win_flg"),
|
|
||||||
"invalid": data.get("result"),
|
|
||||||
"str": data.get("win_flg"),
|
|
||||||
"str_now": data.get("win_flg"),
|
|
||||||
"lose_now": 1 if data.get("win_flg") == 0 else 0,
|
|
||||||
"break_count": data.get("break_count"),
|
|
||||||
"break_penalty_flag": data.get("break_penalty_flag")
|
|
||||||
#"vs_history": data.get("vs_history"),
|
|
||||||
#"course_select_priority": data.get("course_select_priority"),
|
|
||||||
"vsinfo_course_data": [
|
|
||||||
{
|
|
||||||
"course_id": data.get("course_id"),
|
|
||||||
"vs_cnt": 1,
|
|
||||||
"vs_win": data.get("win_flg"),
|
|
||||||
}
|
|
||||||
],
|
|
||||||
}
|
|
||||||
self.data.item.put_vs_info(user_id, 1, vs_info)
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
"status_code": "0",
|
"status_code": "0",
|
||||||
|
@ -228,8 +228,8 @@ class Mai2Base:
|
|||||||
user_id,
|
user_id,
|
||||||
charge["chargeId"],
|
charge["chargeId"],
|
||||||
charge["stock"],
|
charge["stock"],
|
||||||
datetime.strptime(charge["purchaseDate"], Mai2Constants.DATE_TIME_FORMAT),
|
charge["purchaseDate"], # Ideally these should be datetimes, but db was
|
||||||
datetime.strptime(charge["validDate"], Mai2Constants.DATE_TIME_FORMAT),
|
charge["validDate"] # set up with them being str, so str it is for now
|
||||||
)
|
)
|
||||||
|
|
||||||
return {"returnCode": 1, "apiName": "UpsertUserChargelogApi"}
|
return {"returnCode": 1, "apiName": "UpsertUserChargelogApi"}
|
||||||
@ -237,6 +237,10 @@ class Mai2Base:
|
|||||||
def handle_upsert_user_all_api_request(self, data: Dict) -> Dict:
|
def handle_upsert_user_all_api_request(self, data: Dict) -> Dict:
|
||||||
user_id = data["userId"]
|
user_id = data["userId"]
|
||||||
upsert = data["upsertUserAll"]
|
upsert = data["upsertUserAll"]
|
||||||
|
|
||||||
|
if int(user_id) & 1000000000001 == 1000000000001:
|
||||||
|
self.logger.info("Guest play, ignoring.")
|
||||||
|
return {"returnCode": 1, "apiName": "UpsertUserAllApi"}
|
||||||
|
|
||||||
if "userData" in upsert and len(upsert["userData"]) > 0:
|
if "userData" in upsert and len(upsert["userData"]) > 0:
|
||||||
upsert["userData"][0].pop("accessCode")
|
upsert["userData"][0].pop("accessCode")
|
||||||
@ -303,12 +307,8 @@ class Mai2Base:
|
|||||||
user_id,
|
user_id,
|
||||||
charge["chargeId"],
|
charge["chargeId"],
|
||||||
charge["stock"],
|
charge["stock"],
|
||||||
datetime.strptime(
|
charge["purchaseDate"],
|
||||||
charge["purchaseDate"], Mai2Constants.DATE_TIME_FORMAT
|
charge["validDate"]
|
||||||
),
|
|
||||||
datetime.strptime(
|
|
||||||
charge["validDate"], Mai2Constants.DATE_TIME_FORMAT
|
|
||||||
),
|
|
||||||
)
|
)
|
||||||
|
|
||||||
if "userCharacterList" in upsert and len(upsert["userCharacterList"]) > 0:
|
if "userCharacterList" in upsert and len(upsert["userCharacterList"]) > 0:
|
||||||
@ -458,12 +458,6 @@ class Mai2Base:
|
|||||||
tmp = charge._asdict()
|
tmp = charge._asdict()
|
||||||
tmp.pop("id")
|
tmp.pop("id")
|
||||||
tmp.pop("user")
|
tmp.pop("user")
|
||||||
tmp["purchaseDate"] = datetime.strftime(
|
|
||||||
tmp["purchaseDate"], Mai2Constants.DATE_TIME_FORMAT
|
|
||||||
)
|
|
||||||
tmp["validDate"] = datetime.strftime(
|
|
||||||
tmp["validDate"], Mai2Constants.DATE_TIME_FORMAT
|
|
||||||
)
|
|
||||||
|
|
||||||
user_charge_list.append(tmp)
|
user_charge_list.append(tmp)
|
||||||
|
|
||||||
|
@ -14,13 +14,7 @@ class Mai2DX(Mai2Base):
|
|||||||
def __init__(self, cfg: CoreConfig, game_cfg: Mai2Config) -> None:
|
def __init__(self, cfg: CoreConfig, game_cfg: Mai2Config) -> None:
|
||||||
super().__init__(cfg, game_cfg)
|
super().__init__(cfg, game_cfg)
|
||||||
self.version = Mai2Constants.VER_MAIMAI_DX
|
self.version = Mai2Constants.VER_MAIMAI_DX
|
||||||
|
|
||||||
if self.core_config.server.is_develop and self.core_config.title.port > 0:
|
|
||||||
self.old_server = f"http://{self.core_config.title.hostname}:{self.core_config.title.port}/SDEZ/100/"
|
|
||||||
|
|
||||||
else:
|
|
||||||
self.old_server = f"http://{self.core_config.title.hostname}/SDEZ/100/"
|
|
||||||
|
|
||||||
def handle_get_game_setting_api_request(self, data: Dict):
|
def handle_get_game_setting_api_request(self, data: Dict):
|
||||||
return {
|
return {
|
||||||
"gameSetting": {
|
"gameSetting": {
|
||||||
@ -102,6 +96,10 @@ class Mai2DX(Mai2Base):
|
|||||||
def handle_upsert_user_all_api_request(self, data: Dict) -> Dict:
|
def handle_upsert_user_all_api_request(self, data: Dict) -> Dict:
|
||||||
user_id = data["userId"]
|
user_id = data["userId"]
|
||||||
upsert = data["upsertUserAll"]
|
upsert = data["upsertUserAll"]
|
||||||
|
|
||||||
|
if int(user_id) & 1000000000001 == 1000000000001:
|
||||||
|
self.logger.info("Guest play, ignoring.")
|
||||||
|
return {"returnCode": 1, "apiName": "UpsertUserAllApi"}
|
||||||
|
|
||||||
if "userData" in upsert and len(upsert["userData"]) > 0:
|
if "userData" in upsert and len(upsert["userData"]) > 0:
|
||||||
upsert["userData"][0]["isNetMember"] = 1
|
upsert["userData"][0]["isNetMember"] = 1
|
||||||
|
@ -15,9 +15,3 @@ class Mai2Finale(Mai2Base):
|
|||||||
self.version = Mai2Constants.VER_MAIMAI_FINALE
|
self.version = Mai2Constants.VER_MAIMAI_FINALE
|
||||||
self.can_deliver = True
|
self.can_deliver = True
|
||||||
self.can_usbdl = True
|
self.can_usbdl = True
|
||||||
|
|
||||||
if self.core_config.server.is_develop and self.core_config.title.port > 0:
|
|
||||||
self.old_server = f"http://{self.core_config.title.hostname}:{self.core_config.title.port}/SDEY/197/"
|
|
||||||
|
|
||||||
else:
|
|
||||||
self.old_server = f"http://{self.core_config.title.hostname}/SDEY/197/"
|
|
||||||
|
@ -104,29 +104,29 @@ class Mai2Servlet(BaseServlet):
|
|||||||
def get_endpoint_matchers(self) -> Tuple[List[Tuple[str, str, Dict]], List[Tuple[str, str, Dict]]]:
|
def get_endpoint_matchers(self) -> Tuple[List[Tuple[str, str, Dict]], List[Tuple[str, str, Dict]]]:
|
||||||
return (
|
return (
|
||||||
[
|
[
|
||||||
("handle_movie", "/{version}/MaimaiServlet/api/movie/{endpoint:..?}", {}),
|
("handle_movie", "/{version}/MaimaiServlet/api/movie/{endpoint}", {}),
|
||||||
("handle_old_srv", "/{version}/MaimaiServlet/old/{endpoint:..?}", {}),
|
("handle_old_srv", "/{version}/MaimaiServlet/old/{endpoint}", {}),
|
||||||
("handle_usbdl", "/{version}/MaimaiServlet/usbdl/{endpoint:..?}", {}),
|
("handle_old_srv_userdata", "/{version}/MaimaiServlet/old/{endpoint}/{placeid}/{keychip}/{userid}", {}),
|
||||||
("handle_deliver", "/{version}/MaimaiServlet/deliver/{endpoint:..?}", {}),
|
("handle_old_srv_userdata", "/{version}/MaimaiServlet/old/{endpoint}/{userid}", {}),
|
||||||
|
("handle_usbdl", "/{version}/MaimaiServlet/usbdl/{endpoint}", {}),
|
||||||
|
("handle_deliver", "/{version}/MaimaiServlet/deliver/{endpoint}", {}),
|
||||||
],
|
],
|
||||||
[
|
[
|
||||||
("handle_movie", "/{version}/MaimaiServlet/api/movie/{endpoint:..?}", {}),
|
("handle_movie", "/{version}/MaimaiServlet/api/movie/{endpoint}", {}),
|
||||||
("handle_mai", "/{version}/MaimaiServlet/{endpoint}", {}),
|
("handle_mai", "/{version}/MaimaiServlet/{endpoint}", {}),
|
||||||
("handle_mai2", "/{version}/Maimai2Servlet/{endpoint}", {}),
|
("handle_mai2", "/{version}/Maimai2Servlet/{endpoint}", {}),
|
||||||
]
|
]
|
||||||
)
|
)
|
||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
servlet_name = "" if game_code == Mai2Constants.GAME_CODE_DX else "MaimaiServlet/"
|
|
||||||
|
|
||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
||||||
return (
|
return (
|
||||||
f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/{game_ver}/{servlet_name}",
|
f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/{game_ver}/",
|
||||||
f"{self.core_cfg.title.hostname}",
|
f"{self.core_cfg.title.hostname}",
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
f"http://{self.core_cfg.title.hostname}/{game_code}/{game_ver}/{servlet_name}",
|
f"http://{self.core_cfg.title.hostname}/{game_ver}/",
|
||||||
f"{self.core_cfg.title.hostname}",
|
f"{self.core_cfg.title.hostname}",
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -155,6 +155,80 @@ class Mai2Servlet(BaseServlet):
|
|||||||
f"Failed to make movie upload directory at {self.game_cfg.uploads.movies_dir}"
|
f"Failed to make movie upload directory at {self.game_cfg.uploads.movies_dir}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def handle_mai(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
||||||
|
endpoint = matchers['endpoint']
|
||||||
|
version = int(matchers['version'])
|
||||||
|
if endpoint.lower() == "ping":
|
||||||
|
return zlib.compress(b'{"returnCode": "1"}')
|
||||||
|
|
||||||
|
req_raw = request.content.getvalue()
|
||||||
|
internal_ver = 0
|
||||||
|
client_ip = Utils.get_ip_addr(request)
|
||||||
|
|
||||||
|
if version < 110: # 1.0
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI
|
||||||
|
elif version >= 110 and version < 120: # Plus
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_PLUS
|
||||||
|
elif version >= 120 and version < 130: # Green
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_GREEN
|
||||||
|
elif version >= 130 and version < 140: # Green Plus
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_GREEN_PLUS
|
||||||
|
elif version >= 140 and version < 150: # Orange
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_ORANGE
|
||||||
|
elif version >= 150 and version < 160: # Orange Plus
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_ORANGE_PLUS
|
||||||
|
elif version >= 160 and version < 170: # Pink
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_PINK
|
||||||
|
elif version >= 170 and version < 180: # Pink Plus
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_PINK_PLUS
|
||||||
|
elif version >= 180 and version < 185: # Murasaki
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_MURASAKI
|
||||||
|
elif version >= 185 and version < 190: # Murasaki Plus
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_MURASAKI_PLUS
|
||||||
|
elif version >= 190 and version < 195: # Milk
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_MILK
|
||||||
|
elif version >= 195 and version < 197: # Milk Plus
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_MILK_PLUS
|
||||||
|
elif version >= 197: # Finale
|
||||||
|
internal_ver = Mai2Constants.VER_MAIMAI_FINALE
|
||||||
|
|
||||||
|
try:
|
||||||
|
unzip = zlib.decompress(req_raw)
|
||||||
|
|
||||||
|
except zlib.error as e:
|
||||||
|
self.logger.error(
|
||||||
|
f"Failed to decompress v{version} {endpoint} request -> {e}"
|
||||||
|
)
|
||||||
|
return zlib.compress(b'{"stat": "0"}')
|
||||||
|
|
||||||
|
req_data = json.loads(unzip)
|
||||||
|
|
||||||
|
self.logger.info(f"v{version} {endpoint} request from {client_ip}")
|
||||||
|
self.logger.debug(req_data)
|
||||||
|
|
||||||
|
func_to_find = "handle_" + inflection.underscore(endpoint) + "_request"
|
||||||
|
handler_cls = self.versions[internal_ver](self.core_cfg, self.game_cfg)
|
||||||
|
|
||||||
|
if not hasattr(handler_cls, func_to_find):
|
||||||
|
self.logger.warning(f"Unhandled v{version} request {endpoint}")
|
||||||
|
resp = {"returnCode": 1}
|
||||||
|
|
||||||
|
else:
|
||||||
|
try:
|
||||||
|
handler = getattr(handler_cls, func_to_find)
|
||||||
|
resp = handler(req_data)
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.logger.error(f"Error handling v{version} method {endpoint} - {e}")
|
||||||
|
return zlib.compress(b'{"returnCode": "0"}')
|
||||||
|
|
||||||
|
if resp == None:
|
||||||
|
resp = {"returnCode": 1}
|
||||||
|
|
||||||
|
self.logger.debug(f"Response {resp}")
|
||||||
|
|
||||||
|
return zlib.compress(json.dumps(resp, ensure_ascii=False).encode("utf-8"))
|
||||||
|
|
||||||
def handle_mai2(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
def handle_mai2(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
||||||
endpoint = matchers['endpoint']
|
endpoint = matchers['endpoint']
|
||||||
version = int(matchers['version'])
|
version = int(matchers['version'])
|
||||||
@ -164,52 +238,22 @@ class Mai2Servlet(BaseServlet):
|
|||||||
req_raw = request.content.getvalue()
|
req_raw = request.content.getvalue()
|
||||||
internal_ver = 0
|
internal_ver = 0
|
||||||
client_ip = Utils.get_ip_addr(request)
|
client_ip = Utils.get_ip_addr(request)
|
||||||
|
if version < 105: # 1.0
|
||||||
if game_code == "SDEZ":
|
internal_ver = Mai2Constants.VER_MAIMAI_DX
|
||||||
if version < 105: # 1.0
|
elif version >= 105 and version < 110: # PLUS
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_PLUS
|
||||||
elif version >= 105 and version < 110: # PLUS
|
elif version >= 110 and version < 115: # Splash
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_PLUS
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_SPLASH
|
||||||
elif version >= 110 and version < 115: # Splash
|
elif version >= 115 and version < 120: # Splash PLUS
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_SPLASH
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_SPLASH_PLUS
|
||||||
elif version >= 115 and version < 120: # Splash PLUS
|
elif version >= 120 and version < 125: # UNiVERSE
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_SPLASH_PLUS
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_UNIVERSE
|
||||||
elif version >= 120 and version < 125: # UNiVERSE
|
elif version >= 125 and version < 130: # UNiVERSE PLUS
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_UNIVERSE
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_UNIVERSE_PLUS
|
||||||
elif version >= 125 and version < 130: # UNiVERSE PLUS
|
elif version >= 130 and version < 135: # FESTiVAL
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_UNIVERSE_PLUS
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_FESTIVAL
|
||||||
elif version >= 130 and version < 135: # FESTiVAL
|
elif version >= 135: # FESTiVAL PLUS
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_FESTIVAL
|
internal_ver = Mai2Constants.VER_MAIMAI_DX_FESTIVAL_PLUS
|
||||||
elif version >= 135: # FESTiVAL PLUS
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_DX_FESTIVAL_PLUS
|
|
||||||
|
|
||||||
else:
|
|
||||||
if version < 110: # 1.0
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI
|
|
||||||
elif version >= 110 and version < 120: # Plus
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_PLUS
|
|
||||||
elif version >= 120 and version < 130: # Green
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_GREEN
|
|
||||||
elif version >= 130 and version < 140: # Green Plus
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_GREEN_PLUS
|
|
||||||
elif version >= 140 and version < 150: # Orange
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_ORANGE
|
|
||||||
elif version >= 150 and version < 160: # Orange Plus
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_ORANGE_PLUS
|
|
||||||
elif version >= 160 and version < 170: # Pink
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_PINK
|
|
||||||
elif version >= 170 and version < 180: # Pink Plus
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_PINK_PLUS
|
|
||||||
elif version >= 180 and version < 185: # Murasaki
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_MURASAKI
|
|
||||||
elif version >= 185 and version < 190: # Murasaki Plus
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_MURASAKI_PLUS
|
|
||||||
elif version >= 190 and version < 195: # Milk
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_MILK
|
|
||||||
elif version >= 195 and version < 197: # Milk Plus
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_MILK_PLUS
|
|
||||||
elif version >= 197: # Finale
|
|
||||||
internal_ver = Mai2Constants.VER_MAIMAI_FINALE
|
|
||||||
|
|
||||||
if (
|
if (
|
||||||
request.getHeader("Mai-Encoding") is not None
|
request.getHeader("Mai-Encoding") is not None
|
||||||
@ -262,6 +306,18 @@ class Mai2Servlet(BaseServlet):
|
|||||||
|
|
||||||
return zlib.compress(json.dumps(resp, ensure_ascii=False).encode("utf-8"))
|
return zlib.compress(json.dumps(resp, ensure_ascii=False).encode("utf-8"))
|
||||||
|
|
||||||
|
def handle_old_srv(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
||||||
|
endpoint = matchers['endpoint']
|
||||||
|
version = matchers['version']
|
||||||
|
self.logger.info(f"v{version} old server {endpoint}")
|
||||||
|
return zlib.compress(b"ok")
|
||||||
|
|
||||||
|
def handle_old_srv_userdata(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
||||||
|
endpoint = matchers['endpoint']
|
||||||
|
version = matchers['version']
|
||||||
|
self.logger.info(f"v{version} old server {endpoint}")
|
||||||
|
return zlib.compress(b"{}")
|
||||||
|
|
||||||
def render_GET(self, request: Request, version: int, url_path: str) -> bytes:
|
def render_GET(self, request: Request, version: int, url_path: str) -> bytes:
|
||||||
self.logger.debug(f"v{version} GET {url_path}")
|
self.logger.debug(f"v{version} GET {url_path}")
|
||||||
url_split = url_path.split("/")
|
url_split = url_path.split("/")
|
||||||
@ -276,23 +332,6 @@ class Mai2Servlet(BaseServlet):
|
|||||||
request.setResponseCode(404)
|
request.setResponseCode(404)
|
||||||
return b""
|
return b""
|
||||||
|
|
||||||
if url_split[0] == "old":
|
|
||||||
if url_split[1] == "ping":
|
|
||||||
self.logger.info(f"v{version} old server ping")
|
|
||||||
return zlib.compress(b"ok")
|
|
||||||
|
|
||||||
elif url_split[1].startswith("userdata"):
|
|
||||||
self.logger.info(f"v{version} old server userdata inquire")
|
|
||||||
return zlib.compress(b"{}")
|
|
||||||
|
|
||||||
elif url_split[1].startswith("friend"):
|
|
||||||
self.logger.info(f"v{version} old server friend inquire")
|
|
||||||
return zlib.compress(b"{}")
|
|
||||||
|
|
||||||
else:
|
|
||||||
request.setResponseCode(404)
|
|
||||||
return b""
|
|
||||||
|
|
||||||
elif url_split[0] == "usbdl":
|
elif url_split[0] == "usbdl":
|
||||||
if url_split[1] == "CONNECTIONTEST":
|
if url_split[1] == "CONNECTIONTEST":
|
||||||
self.logger.info(f"v{version} usbdl server test")
|
self.logger.info(f"v{version} usbdl server test")
|
||||||
|
@ -501,8 +501,8 @@ class Mai2ItemData(BaseData):
|
|||||||
user_id: int,
|
user_id: int,
|
||||||
charge_id: int,
|
charge_id: int,
|
||||||
stock: int,
|
stock: int,
|
||||||
purchase_date: datetime,
|
purchase_date: str,
|
||||||
valid_date: datetime,
|
valid_date: str,
|
||||||
) -> Optional[Row]:
|
) -> Optional[Row]:
|
||||||
sql = insert(charge).values(
|
sql = insert(charge).values(
|
||||||
user=user_id,
|
user=user_id,
|
||||||
|
@ -9,4 +9,4 @@ database = OngekiData
|
|||||||
reader = OngekiReader
|
reader = OngekiReader
|
||||||
frontend = OngekiFrontend
|
frontend = OngekiFrontend
|
||||||
game_codes = [OngekiConstants.GAME_CODE]
|
game_codes = [OngekiConstants.GAME_CODE]
|
||||||
current_schema_version = 5
|
current_schema_version = 6
|
||||||
|
@ -171,7 +171,6 @@ class OngekiBase:
|
|||||||
"gameRankingList": ranking_list,
|
"gameRankingList": ranking_list,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
def handle_get_game_point_api_request(self, data: Dict) -> Dict:
|
def handle_get_game_point_api_request(self, data: Dict) -> Dict:
|
||||||
get_game_point = self.data.static.get_static_game_point()
|
get_game_point = self.data.static.get_static_game_point()
|
||||||
game_point = []
|
game_point = []
|
||||||
@ -269,7 +268,9 @@ class OngekiBase:
|
|||||||
|
|
||||||
client_id = data["clientId"]
|
client_id = data["clientId"]
|
||||||
client_setting_data = data["clientSetting"]
|
client_setting_data = data["clientSetting"]
|
||||||
self.data.static.put_client_setting_data(client_id, client_setting_data)
|
cab = self.data.arcade.get_machine(client_id)
|
||||||
|
if cab is not None:
|
||||||
|
self.data.static.put_client_setting_data(cab['id'], client_setting_data)
|
||||||
return {"returnCode": 1, "apiName": "UpsertClientSettingApi"}
|
return {"returnCode": 1, "apiName": "UpsertClientSettingApi"}
|
||||||
|
|
||||||
def handle_upsert_client_testmode_api_request(self, data: Dict) -> Dict:
|
def handle_upsert_client_testmode_api_request(self, data: Dict) -> Dict:
|
||||||
@ -314,6 +315,13 @@ class OngekiBase:
|
|||||||
def handle_get_game_event_api_request(self, data: Dict) -> Dict:
|
def handle_get_game_event_api_request(self, data: Dict) -> Dict:
|
||||||
evts = self.data.static.get_enabled_events(self.version)
|
evts = self.data.static.get_enabled_events(self.version)
|
||||||
|
|
||||||
|
if evts is None:
|
||||||
|
return {
|
||||||
|
"type": data["type"],
|
||||||
|
"length": 0,
|
||||||
|
"gameEventList": [],
|
||||||
|
}
|
||||||
|
|
||||||
evt_list = []
|
evt_list = []
|
||||||
for event in evts:
|
for event in evts:
|
||||||
evt_list.append(
|
evt_list.append(
|
||||||
|
@ -132,10 +132,10 @@ class OngekiServlet(BaseServlet):
|
|||||||
proto = "https" if self.game_cfg.server.use_https and game_ver >= 120 else "http"
|
proto = "https" if self.game_cfg.server.use_https and game_ver >= 120 else "http"
|
||||||
|
|
||||||
if proto == "https":
|
if proto == "https":
|
||||||
t_port = f":{title_port_ssl_int}" if title_port_ssl_int != 443 and not self.core_cfg.server.is_using_proxy else ""
|
t_port = f":{title_port_ssl_int}" if title_port_ssl_int and not self.core_cfg.server.is_using_proxy else ""
|
||||||
|
|
||||||
else:
|
else:
|
||||||
t_port = f":{title_port_int}" if title_port_int != 80 and not self.core_cfg.server.is_using_proxy else ""
|
t_port = f":{title_port_int}" if title_port_int and not self.core_cfg.server.is_using_proxy else ""
|
||||||
|
|
||||||
return (
|
return (
|
||||||
f"{proto}://{self.core_cfg.title.hostname}{t_port}/{game_code}/{game_ver}/",
|
f"{proto}://{self.core_cfg.title.hostname}{t_port}/{game_code}/{game_ver}/",
|
||||||
@ -263,4 +263,4 @@ class OngekiServlet(BaseServlet):
|
|||||||
bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][1]),
|
bytes.fromhex(self.game_cfg.crypto.keys[internal_ver][1]),
|
||||||
)
|
)
|
||||||
|
|
||||||
return crypt.encrypt(padded)
|
return crypt.encrypt(padded)
|
@ -533,8 +533,8 @@ class OngekiItemData(BaseData):
|
|||||||
return result.fetchall()
|
return result.fetchall()
|
||||||
|
|
||||||
def put_mission_point(self, aime_id: int, version: int, mission_point_data: Dict) -> Optional[int]:
|
def put_mission_point(self, aime_id: int, version: int, mission_point_data: Dict) -> Optional[int]:
|
||||||
mission_point_data["user"] = aime_id
|
|
||||||
mission_point_data["version"] = version
|
mission_point_data["version"] = version
|
||||||
|
mission_point_data["user"] = aime_id
|
||||||
|
|
||||||
sql = insert(mission_point).values(**mission_point_data)
|
sql = insert(mission_point).values(**mission_point_data)
|
||||||
conflict = sql.on_duplicate_key_update(**mission_point_data)
|
conflict = sql.on_duplicate_key_update(**mission_point_data)
|
||||||
@ -639,8 +639,9 @@ class OngekiItemData(BaseData):
|
|||||||
return None
|
return None
|
||||||
return result.fetchall()
|
return result.fetchall()
|
||||||
|
|
||||||
def put_tech_event(self, aime_id: int, tech_event_data: Dict) -> Optional[int]:
|
def put_tech_event(self, aime_id: int, version: int, tech_event_data: Dict) -> Optional[int]:
|
||||||
tech_event_data["user"] = aime_id
|
tech_event_data["user"] = aime_id
|
||||||
|
tech_event_data["version"] = version
|
||||||
|
|
||||||
sql = insert(tech_event).values(**tech_event_data)
|
sql = insert(tech_event).values(**tech_event_data)
|
||||||
conflict = sql.on_duplicate_key_update(**tech_event_data)
|
conflict = sql.on_duplicate_key_update(**tech_event_data)
|
||||||
@ -651,7 +652,7 @@ class OngekiItemData(BaseData):
|
|||||||
return None
|
return None
|
||||||
return result.lastrowid
|
return result.lastrowid
|
||||||
|
|
||||||
def put_tech_event_ranking(self, version: int, aime_id: int, tech_event_data: Dict) -> Optional[int]:
|
def put_tech_event_ranking(self, aime_id: int, version: int, tech_event_data: Dict) -> Optional[int]:
|
||||||
tech_event_data["user"] = aime_id
|
tech_event_data["user"] = aime_id
|
||||||
tech_event_data["version"] = version
|
tech_event_data["version"] = version
|
||||||
tech_event_data.pop("isRankingRewarded")
|
tech_event_data.pop("isRankingRewarded")
|
||||||
|
@ -7,6 +7,7 @@ from sqlalchemy.engine import Row
|
|||||||
from sqlalchemy.dialects.mysql import insert
|
from sqlalchemy.dialects.mysql import insert
|
||||||
|
|
||||||
from core.data.schema import BaseData, metadata
|
from core.data.schema import BaseData, metadata
|
||||||
|
from core.data.schema.arcade import machine
|
||||||
|
|
||||||
events = Table(
|
events = Table(
|
||||||
"ongeki_static_events",
|
"ongeki_static_events",
|
||||||
@ -481,17 +482,16 @@ class OngekiStaticData(BaseData):
|
|||||||
|
|
||||||
result = self.execute(conflict)
|
result = self.execute(conflict)
|
||||||
if result is None:
|
if result is None:
|
||||||
self.logger.warning(f"clientId: {clientId} Failed to update ClientTestMode data"),
|
self.logger.warning(f"region_id: {region_id} Failed to update ClientTestMode data"),
|
||||||
return None
|
return None
|
||||||
return result.lastrowid
|
return result.lastrowid
|
||||||
|
|
||||||
def put_client_setting_data(self, client_id: str, client_setting_data: Dict) -> Optional[List[Dict]]:
|
def put_client_setting_data(self, machine_id: int, client_setting_data: Dict) -> Optional[List[Dict]]:
|
||||||
sql = insert(machine).values(data=client_setting_data)
|
sql = machine.update(machine.c.id == machine_id).values(data=client_setting_data)
|
||||||
conflict = sql.on_duplicate_key_update(serial=client_id)
|
|
||||||
|
|
||||||
result = self.execute(conflict)
|
result = self.execute(sql)
|
||||||
if result is None:
|
if result is None:
|
||||||
self.logger.warning(f"clientId: {clientId} Failed to update ClientSetting data"),
|
self.logger.warning(f"machine_id: {machine_id} Failed to update ClientSetting data"),
|
||||||
return None
|
return None
|
||||||
return result.lastrowid
|
return result.lastrowid
|
||||||
|
|
||||||
|
@ -1,6 +1,8 @@
|
|||||||
import logging
|
import logging
|
||||||
from csv import *
|
from csv import *
|
||||||
from random import choice
|
from random import choice
|
||||||
|
from typing import Dict, List
|
||||||
|
from os import path
|
||||||
|
|
||||||
from core.data import Data
|
from core.data import Data
|
||||||
from core import CoreConfig
|
from core import CoreConfig
|
||||||
@ -17,6 +19,19 @@ class SaoBase:
|
|||||||
self.version = 0
|
self.version = 0
|
||||||
self.logger = logging.getLogger("sao")
|
self.logger = logging.getLogger("sao")
|
||||||
|
|
||||||
|
def load_data_csv(self, file: str) -> List[Dict]:
|
||||||
|
ret = []
|
||||||
|
if path.exists(f"titles/sao/data/{file}.csv"):
|
||||||
|
with open(f"titles/sao/data/{file}.csv", "r", encoding="utf8") as f:
|
||||||
|
data = csv.DictReader(f, delimiter=',')
|
||||||
|
for x in data:
|
||||||
|
ret.append(x)
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
self.logger.warning(f"Failed to find csv file {file}.csv")
|
||||||
|
return ret
|
||||||
|
|
||||||
def handle_noop(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
def handle_noop(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
self.logger.info(f"Using Generic handler")
|
self.logger.info(f"Using Generic handler")
|
||||||
resp_thing = SaoNoopResponse(header.cmd + 1)
|
resp_thing = SaoNoopResponse(header.cmd + 1)
|
||||||
@ -831,4 +846,128 @@ class SaoBase:
|
|||||||
def handle_c306(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
def handle_c306(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
#card/scan_qr_quest_profile_card
|
#card/scan_qr_quest_profile_card
|
||||||
resp = SaoScanQrQuestProfileCardResponse(header.cmd +1)
|
resp = SaoScanQrQuestProfileCardResponse(header.cmd +1)
|
||||||
return resp.make()
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_c700(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# shop/get_shop_resource_sales_data_list
|
||||||
|
# TODO: Get user shop data
|
||||||
|
req = GetShopResourceSalesDataListRequest(header, request)
|
||||||
|
resp = GetShopResourceSalesDataListResponse(header.cmd + 1)
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_d100(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# shop/get_yui_medal_shop_user_data_list
|
||||||
|
# TODO: Get user shop data
|
||||||
|
req = GetYuiMedalShopUserDataListRequest(header, request)
|
||||||
|
resp = GetYuiMedalShopUserDataListResponse(header.cmd + 1)
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_cf0e(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# gasha/get_gasha_medal_shop_user_data_list
|
||||||
|
# TODO: Get user shop data
|
||||||
|
req = GetGashaMedalShopUserDataListRequest(header, request)
|
||||||
|
resp = GetGashaMedalShopUserDataListResponse(header.cmd + 1)
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_d5da(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# master_data/get_m_yui_medal_shops
|
||||||
|
req = GetMYuiMedalShopDataRequest(header, request)
|
||||||
|
resp = GetMYuiMedalShopDataResponse(header.cmd + 1)
|
||||||
|
|
||||||
|
shops = self.load_data_csv("YuiMedalShops")
|
||||||
|
for shop in shops:
|
||||||
|
tmp = YuiMedalShopData.from_args(int(shop['YuiMedalShopId']), shop['Name'], shop['Description'])
|
||||||
|
tmp.selling_yui_medal = int(shop['SellingYuiMedal'])
|
||||||
|
tmp.selling_col = int(shop['SellingCol'])
|
||||||
|
tmp.selling_event_item_id = int(shop['SellingEventItemId'])
|
||||||
|
tmp.selling_event_item_num = int(shop['SellingEventItemNum'])
|
||||||
|
tmp.selling_ticket_num = int(shop['SellingTicketNum'])
|
||||||
|
tmp.purchase_limit = int(shop['PurchaseLimit'])
|
||||||
|
tmp.pick_up_flag = 1 if shop['PickUpFlag'] == "True" else 0
|
||||||
|
tmp.product_category = int(shop['ProductCategory'])
|
||||||
|
tmp.sales_type = int(shop['SalesType'])
|
||||||
|
tmp.target_days = int(shop['TargetDays'])
|
||||||
|
tmp.target_hour = int(shop['TargetHour'])
|
||||||
|
tmp.interval_hour = int(shop['IntervalHour'])
|
||||||
|
tmp.sort = int(shop['Sort'])
|
||||||
|
|
||||||
|
tmp.sales_end_date = datetime(2121, 1, 1, 0, 0, 0, 0) # always open
|
||||||
|
|
||||||
|
resp.data_list.append(tmp)
|
||||||
|
self.logger.debug(f"Load {len(resp.data_list)} Yui Medal Shops")
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_d5dc(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# master_data/get_m_yui_medal_shop_items
|
||||||
|
req = GetMYuiMedalShopItemsRequest(header, request)
|
||||||
|
resp = GetMYuiMedalShopItemsResponse(header.cmd + 1)
|
||||||
|
|
||||||
|
shops = self.load_data_csv("YuiMedalShopItems")
|
||||||
|
for shop in shops:
|
||||||
|
tmp = YuiMedalShopItemData.from_args(int(shop['YuiMedalShopItemId']), int(shop['YuiMedalShopId']), int(shop['CommonRewardType']), int(shop['CommonRewardId']), int(shop['CommonRewardNum']), int(shop['Strength']))
|
||||||
|
|
||||||
|
tmp.property1_property_id = int(shop['Property1PropertyId'])
|
||||||
|
tmp.property1_value1 = int(shop['Property1Value1'])
|
||||||
|
tmp.property1_value2 = int(shop['Property1Value2'])
|
||||||
|
|
||||||
|
tmp.property2_property_id = int(shop['Property2PropertyId'])
|
||||||
|
tmp.property2_value1 = int(shop['Property2Value1'])
|
||||||
|
tmp.property2_value2 = int(shop['Property2Value2'])
|
||||||
|
|
||||||
|
tmp.property3_property_id = int(shop['Property3PropertyId'])
|
||||||
|
tmp.property3_value1 = int(shop['Property3Value1'])
|
||||||
|
tmp.property3_value2 = int(shop['Property3Value2'])
|
||||||
|
|
||||||
|
tmp.property4_property_id = int(shop['Property4PropertyId'])
|
||||||
|
tmp.property4_value1 = int(shop['Property4Value1'])
|
||||||
|
tmp.property4_value2 = int(shop['Property4Value2'])
|
||||||
|
|
||||||
|
resp.data_list.append(tmp)
|
||||||
|
|
||||||
|
self.logger.debug(f"Load {len(resp.data_list)} Yui Medal Shop Items")
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_d5fc(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# master_data/get_m_gasha_medal_shops
|
||||||
|
req = GetMGashaMedalShopsRequest(header, request)
|
||||||
|
resp = GetMGashaMedalShopsResponse(header.cmd + 1)
|
||||||
|
|
||||||
|
shops = self.load_data_csv("GashaMedalShops")
|
||||||
|
for shop in shops:
|
||||||
|
tmp = GashaMedalShop.from_args(int(shop['GashaMedalShopId']), shop['Name'], int(shop['GashaMedalId']), int(shop['UseGashaMedalNum']), int(shop['PurchaseLimit']))
|
||||||
|
tmp.sales_end_date = datetime(2121, 1, 1, 0, 0, 0, 0) # always open
|
||||||
|
|
||||||
|
resp.data_list.append(tmp)
|
||||||
|
|
||||||
|
self.logger.debug(f"Load {len(resp.data_list)} Gasha Medal Shops")
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
|
def handle_d5fe(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# master_data/get_m_gasha_medal_shop_items
|
||||||
|
return SaoNoopResponse(header.cmd + 1).make()
|
||||||
|
|
||||||
|
def handle_d604(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# master_data_2/get_m_res_earn_campaign_shops
|
||||||
|
req = GetMResEarnCampaignShopsRequest(header, request)
|
||||||
|
resp = GetMResEarnCampaignShopsResponse(header.cmd + 1)
|
||||||
|
|
||||||
|
shops = self.load_data_csv("ResEarnCampaignShops")
|
||||||
|
for shop in shops:
|
||||||
|
tmp = ResEarnCampaignShop.from_args(int(shop['ResEarnCampaignShopId']), int(shop['ResEarnCampaignApplicationId']), shop['Name'])
|
||||||
|
tmp.selling_yui_medal = int(shop['SellingYuiMedal'])
|
||||||
|
tmp.selling_col = int(shop['SellingCol'])
|
||||||
|
tmp.selling_event_item_id = int(shop['SellingEventItemId'])
|
||||||
|
tmp.selling_event_item_num = int(shop['SellingEventItemNum'])
|
||||||
|
tmp.purchase_limit = int(shop['PurchaseLimit'])
|
||||||
|
tmp.get_application_point = int(shop['GetApplicationPoint'])
|
||||||
|
|
||||||
|
tmp.sales_end_date = datetime(2121, 1, 1, 0, 0, 0, 0) # always open
|
||||||
|
|
||||||
|
resp.data_list.append(tmp)
|
||||||
|
|
||||||
|
#self.logger.debug(f"Load {len(resp.data_list)} Res Earn Campaign Shops")
|
||||||
|
return SaoNoopResponse(header.cmd + 1).make()
|
||||||
|
|
||||||
|
def handle_d606(self, header: SaoRequestHeader, request: bytes) -> bytes:
|
||||||
|
# master_data_2/get_m_res_earn_campaign_shop_items
|
||||||
|
return SaoNoopResponse(header.cmd + 1).make()
|
@ -29,6 +29,12 @@ class SaoServerConfig:
|
|||||||
self.__config, "sao", "server", "auto_register", default=True
|
self.__config, "sao", "server", "auto_register", default=True
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@property
|
||||||
|
def use_https(self) -> bool:
|
||||||
|
return CoreConfig.get_config_field(
|
||||||
|
self.__config, "sao", "server", "use_https", default=False
|
||||||
|
)
|
||||||
|
|
||||||
class SaoCryptConfig:
|
class SaoCryptConfig:
|
||||||
def __init__(self, parent_config: "SaoConfig"):
|
def __init__(self, parent_config: "SaoConfig"):
|
||||||
self.__config = parent_config
|
self.__config = parent_config
|
||||||
|
882
titles/sao/data/GashaMedalShopItems.csv
Normal file
882
titles/sao/data/GashaMedalShopItems.csv
Normal file
@ -0,0 +1,882 @@
|
|||||||
|
GashaMedalShopItemId,GashaMedalShopId,CommonRewardType,CommonRewardId,CommonRewardNum,Strength,Property1PropertyId,Property1Value1,Property1Value2,Property2PropertyId,Property2Value1,Property2Value2,Property3PropertyId,Property3Value1,Property3Value2,Property4PropertyId,Property4Value1,Property4Value2
|
||||||
|
15701,15701,1,101000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15702,15702,1,102000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15703,15703,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15801,15801,8,212000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15802,15802,8,201000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15803,15803,8,297000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15901,15901,1,118000070,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15902,15902,1,118000050,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15903,15903,1,118000060,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15904,15904,2,101000016,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16301,16301,8,209000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16302,16302,8,202000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16303,16303,8,205000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16304,16304,8,206000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16401,16401,8,212000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16402,16402,8,201000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16403,16403,8,297000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16501,16501,1,101000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16502,16502,1,102000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16503,16503,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16601,16601,1,105000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16602,16602,1,106000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16603,16603,2,103000007,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
16604,16604,2,109000006,1,0,204600,25,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16801,16801,1,102000300,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16802,16802,1,103000260,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16803,16803,1,104000320,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16804,16804,2,101000018,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16805,16805,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16806,16806,2,111000008,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17201,17201,1,109000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17202,17202,1,112000120,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17203,17203,2,101000011,1,0,209900,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17204,17204,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17301,17301,8,204000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17302,17302,8,209000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17303,17303,8,201000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17304,17304,8,202000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17305,17305,8,203000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17306,17306,8,205000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17307,17307,8,206000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17308,17308,8,211000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17601,17601,1,111000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17602,17602,1,106000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17603,17603,1,105000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17604,17604,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17605,17605,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
17606,17606,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17607,17607,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17608,17608,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17609,17609,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17610,17610,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
17611,17611,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18001,18001,1,101000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18002,18002,1,102000320,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18003,18003,1,103000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18004,18004,2,101000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18005,18005,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18006,18006,2,105000004,1,0,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
18007,18007,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18008,18008,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18009,18009,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18010,18010,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18011,18011,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18401,18401,1,102000170,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18402,18402,1,103000150,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18403,18403,1,104000160,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18404,18404,2,101000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18405,18405,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18406,18406,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18407,18407,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18408,18408,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18409,18409,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18410,18410,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18411,18411,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18501,18501,1,103000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18502,18502,1,104000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18503,18503,2,101000017,1,0,202500,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18504,18504,2,111000007,1,0,210100,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18505,18505,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18506,18506,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18507,18507,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18508,18508,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18509,18509,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18601,18601,8,202000170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18602,18602,8,204000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18603,18603,8,203000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18604,18604,8,208000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18605,18605,8,209000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18606,18606,8,210000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18607,18607,8,216000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18608,18608,8,297000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18901,18901,8,217000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18902,18902,8,205000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18903,18903,8,206000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
18904,18904,8,218000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19001,19001,8,211000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19002,19002,8,202000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19003,19003,8,203000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19004,19004,8,290000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19101,19101,8,216000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19102,19102,8,202000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19103,19103,8,203000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19104,19104,8,206000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19201,19201,8,209000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19202,19202,8,205000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19203,19203,8,215000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19204,19204,8,220000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19205,19205,8,204000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19206,19206,8,206000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19207,19207,8,201000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19208,19208,8,216000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19209,19209,8,290000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19210,19210,8,202000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19211,19211,8,203000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19212,19212,8,209000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19213,19213,8,297000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19214,19214,8,297000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19301,19301,1,104000340,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19302,19302,1,107000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19303,19303,1,109000270,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19304,19304,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19305,19305,2,105000004,1,0,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
19306,19306,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19307,19307,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19308,19308,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19309,19309,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19310,19310,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19311,19311,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19701,19701,1,111000180,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19702,19702,1,106000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19703,19703,1,109000260,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19704,19704,1,110000180,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19705,19705,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19706,19706,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
19707,19707,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19708,19708,2,107000004,1,0,205600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19709,19709,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19710,19710,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19711,19711,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19712,19712,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19713,19713,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19801,19801,1,103000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19802,19802,1,104000350,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19803,19803,2,101000018,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19804,19804,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19805,19805,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19806,19806,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19807,19807,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19808,19808,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19809,19809,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19901,19901,1,102000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19902,19902,1,109000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19903,19903,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19904,19904,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19905,19905,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19906,19906,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19907,19907,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19908,19908,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
19909,19909,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20001,20001,8,201000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20002,20002,8,202000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20003,20003,8,211000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20004,20004,8,212000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20005,20005,8,290000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20101,20101,8,209000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20102,20102,8,201000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20103,20103,8,202000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20104,20104,8,203000170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20201,20201,8,202000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20202,20202,8,211000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20203,20203,8,203000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20204,20204,8,204000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20205,20205,8,209000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20301,20301,8,218000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20302,20302,8,204000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20303,20303,8,206000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20304,20304,8,215000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20401,20401,8,290000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20402,20402,8,202000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20403,20403,8,204000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20404,20404,8,205000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20405,20405,8,206000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20406,20406,8,203000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20407,20407,8,209000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20408,20408,8,215000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20501,20501,8,297000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20502,20502,8,211000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20503,20503,8,297000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20504,20504,8,202000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20505,20505,8,290000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20506,20506,8,297000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20507,20507,8,212000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20508,20508,8,297000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20601,20601,8,205000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20602,20602,8,290000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20603,20603,8,206000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20604,20604,8,220000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20605,20605,8,203000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20606,20606,8,209000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20607,20607,8,203000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20608,20608,8,204000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20609,20609,8,208000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20610,20610,8,216000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20801,20801,1,103000320,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
20802,20802,1,104000380,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
20803,20803,1,111000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
20804,20804,2,101000015,1,0,207100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
20805,20805,2,102000008,1,0,204300,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
20806,20806,2,109000008,1,0,204100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
20807,20807,2,112000008,1,0,305000,100,0,305400,0,0,2,0,0,2,0,0
|
||||||
|
20808,20808,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20809,20809,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20810,20810,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
20811,20811,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21301,21301,1,102000240,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21302,21302,1,105000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21303,21303,1,109000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21304,21304,2,102000008,1,0,204300,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21305,21305,2,109000008,1,0,204100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21306,21306,2,101000015,1,0,207100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21307,21307,2,112000008,1,0,305000,100,0,305400,0,0,2,0,0,2,0,0
|
||||||
|
21308,21308,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21309,21309,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21310,21310,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21311,21311,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21401,21401,1,102000380,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21402,21402,1,104000390,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21403,21403,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21404,21404,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21405,21405,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21406,21406,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21407,21407,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21408,21408,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21409,21409,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21501,21501,1,104000200,1,0,100900,50,0,101000,50,0,2,0,0,2,0,0
|
||||||
|
21502,21502,1,106000170,1,0,100900,50,0,101000,50,0,2,0,0,2,0,0
|
||||||
|
21503,21503,1,111000100,1,0,100900,50,0,101000,50,0,2,0,0,2,0,0
|
||||||
|
21504,21504,2,111000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21505,21505,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
21506,21506,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21507,21507,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21508,21508,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21509,21509,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21510,21510,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21511,21511,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21601,21601,1,102000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21602,21602,1,109000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21603,21603,1,103000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21604,21604,1,111000110,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21605,21605,1,105000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21606,21606,1,106000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21607,21607,1,109000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21608,21608,1,112000120,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21609,21609,1,101000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21610,21610,1,101000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21611,21611,1,102000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21612,21612,1,105000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21613,21613,1,106000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21614,21614,1,111000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21615,21615,1,109000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21616,21616,1,102000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21617,21617,1,105000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21618,21618,1,106000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
21801,21801,8,202000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21802,21802,8,203000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21803,21803,8,204000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21804,21804,8,209000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21901,21901,8,215000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21902,21902,8,202000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21903,21903,8,205000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
21904,21904,8,220000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22001,22001,8,204000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22002,22002,8,201000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22003,22003,8,202000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22004,22004,8,206000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22101,22101,1,101000320,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22102,22102,1,111000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22103,22103,1,112000150,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22104,22104,2,101000013,1,0,204200,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22105,22105,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22106,22106,2,101000011,1,0,209900,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22107,22107,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22108,22108,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22109,22109,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22110,22110,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22111,22111,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22201,22201,1,102000440,1,0,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
22202,22202,1,103000340,1,0,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
22203,22203,1,109000340,1,0,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
22204,22204,1,110000200,1,0,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
22205,22205,1,118000120,1,0,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
22206,22206,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22207,22207,2,101000017,1,0,202500,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22208,22208,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22209,22209,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
22210,22210,2,101000016,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22211,22211,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22212,22212,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22213,22213,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22214,22214,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22215,22215,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22801,22801,1,101000240,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22802,22802,1,102000250,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22803,22803,1,103000210,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22804,22804,1,109000210,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22805,22805,1,104000240,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22806,22806,1,105000200,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22807,22807,1,106000200,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22808,22808,1,108000140,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22809,22809,2,107000007,1,0,207700,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22810,22810,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22811,22811,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22812,22812,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22813,22813,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
22814,22814,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23201,23201,1,101000350,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23202,23202,1,106000300,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23203,23203,2,101000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23204,23204,2,103000007,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23205,23205,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23206,23206,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23207,23207,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23208,23208,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23209,23209,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23301,23301,1,101000330,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23302,23302,1,102000420,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23303,23303,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23304,23304,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23305,23305,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23306,23306,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23307,23307,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23308,23308,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23309,23309,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23401,23401,8,205000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23402,23402,8,204000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23403,23403,8,206000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23404,23404,8,209000170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23501,23501,8,203000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23502,23502,8,204000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23503,23503,8,215000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23504,23504,8,217000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23601,23601,8,209000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23602,23602,8,202000260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23603,23603,8,203000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23604,23604,8,218000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23701,23701,8,203000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23702,23702,8,212000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23703,23703,8,202000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23704,23704,8,204000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23705,23705,8,206000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23706,23706,8,201000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23707,23707,8,297000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23801,23801,8,299000780,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23802,23802,8,299000790,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23803,23803,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23804,23804,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23901,23901,1,102000450,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23902,23902,1,109000350,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23903,23903,1,111000250,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23904,23904,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23905,23905,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23906,23906,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23907,23907,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
23908,23908,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23909,23909,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23910,23910,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
23911,23911,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24301,24301,1,111000260,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24302,24302,1,112000170,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24303,24303,1,118000150,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24304,24304,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24305,24305,2,101000011,1,0,209900,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24306,24306,2,101000016,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24307,24307,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24308,24308,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24309,24309,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24310,24310,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24311,24311,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24701,24701,1,102000470,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24702,24702,1,103000380,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24703,24703,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24704,24704,2,105000004,1,0,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
24705,24705,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24706,24706,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24707,24707,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24708,24708,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24709,24709,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24801,24801,1,105000290,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24802,24802,1,106000310,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24803,24803,2,109000006,1,0,204600,25,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24804,24804,2,103000007,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24805,24805,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24806,24806,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24807,24807,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24808,24808,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24809,24809,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24901,24901,1,101000370,1,0,105600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24902,24902,1,105000300,1,0,105600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24903,24903,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24904,24904,2,109000006,1,0,204600,25,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24905,24905,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24906,24906,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24907,24907,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24908,24908,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
24909,24909,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25001,25001,1,103000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25002,25002,1,104000350,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25003,25003,1,102000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25004,25004,1,109000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25005,25005,2,101000018,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25006,25006,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25007,25007,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25008,25008,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25009,25009,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25010,25010,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25011,25011,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25012,25012,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25013,25013,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25101,25101,8,204000240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25102,25102,8,203000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25103,25103,8,206000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25104,25104,8,299000910,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25201,25201,8,206000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25202,25202,8,202000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25203,25203,8,204000170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25204,25204,8,216000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25301,25301,8,202000300,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25302,25302,8,201000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25303,25303,8,209000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25304,25304,8,217000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25501,25501,1,104000440,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25502,25502,1,105000320,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25503,25503,1,106000320,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25504,25504,1,108000180,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25505,25505,1,109000360,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25506,25506,2,107000007,1,0,207700,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25507,25507,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25508,25508,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25509,25509,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25510,25510,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
25511,25511,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26101,26101,1,102000480,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26102,26102,1,111000280,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26103,26103,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26104,26104,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26105,26105,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26106,26106,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26107,26107,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26108,26108,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26109,26109,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26401,26401,1,101000320,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26402,26402,1,111000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26403,26403,1,112000150,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26404,26404,2,101000013,1,0,204200,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26405,26405,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26406,26406,2,101000011,1,0,209900,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26407,26407,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26408,26408,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26409,26409,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26410,26410,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26411,26411,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26601,26601,8,202000310,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26602,26602,8,204000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26603,26603,8,209000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26604,26604,8,215000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26701,26701,8,205000170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26702,26702,8,202000320,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26703,26703,8,206000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26704,26704,8,209000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26901,26901,1,101000330,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26902,26902,1,102000420,1,0,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26903,26903,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26904,26904,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26905,26905,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26906,26906,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26907,26907,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26908,26908,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
26909,26909,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27001,27001,8,206000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27002,27002,8,202000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27003,27003,8,204000170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27004,27004,8,216000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27101,27101,1,111000260,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27102,27102,1,112000170,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27103,27103,1,118000150,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27104,27104,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27105,27105,2,101000011,1,0,209900,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27106,27106,2,101000016,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27107,27107,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27108,27108,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27109,27109,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27110,27110,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27111,27111,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27501,27501,1,103000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27502,27502,1,104000350,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27503,27503,1,102000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27504,27504,1,109000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27505,27505,2,101000018,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27506,27506,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27507,27507,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27508,27508,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27509,27509,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27510,27510,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27511,27511,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27512,27512,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27513,27513,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27601,27601,8,202000300,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27602,27602,8,201000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27603,27603,8,209000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27604,27604,8,217000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27701,27701,1,103000400,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27702,27702,1,105000330,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27703,27703,1,109000390,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27704,27704,1,110000250,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27705,27705,1,118000180,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27706,27706,2,101000017,1,0,202500,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27707,27707,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27708,27708,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27709,27709,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
27710,27710,2,101000016,1,0,207300,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27711,27711,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27712,27712,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27713,27713,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27714,27714,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
27715,27715,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28401,28401,1,102000480,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28402,28402,1,111000280,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28403,28403,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28404,28404,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28405,28405,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28406,28406,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28407,28407,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28408,28408,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28409,28409,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28501,28501,1,104000460,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28502,28502,1,111000290,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28503,28503,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28504,28504,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28505,28505,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28506,28506,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28507,28507,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28508,28508,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28509,28509,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28601,28601,1,102000170,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28602,28602,1,103000150,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28603,28603,1,104000160,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28604,28604,1,111000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28605,28605,1,106000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28606,28606,1,105000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28607,28607,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28608,28608,2,101000017,1,0,202500,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28609,28609,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28610,28610,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28611,28611,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
28612,28612,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28613,28613,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28614,28614,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28615,28615,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28616,28616,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
28617,28617,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29001,29001,8,206000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29002,29002,8,204000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29003,29003,8,211000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29004,29004,8,290000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29101,29101,8,216000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29102,29102,8,202000330,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29103,29103,8,204000290,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29104,29104,8,209000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29201,29201,8,217000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29202,29202,8,204000260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29203,29203,8,205000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29204,29204,8,218000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29301,29301,8,209000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29302,29302,8,205000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29303,29303,8,215000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29304,29304,8,220000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29305,29305,8,204000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29306,29306,8,206000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29307,29307,8,201000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29308,29308,8,216000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29309,29309,8,290000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29310,29310,8,202000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29311,29311,8,203000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29312,29312,8,209000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29313,29313,8,297000010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29314,29314,8,297000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29401,29401,1,103000450,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29402,29402,1,104000490,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29403,29403,1,111000310,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29404,29404,1,106000370,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29405,29405,2,101000017,1,0,202500,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29406,29406,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29407,29407,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29408,29408,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29409,29409,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29410,29410,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29411,29411,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29412,29412,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29901,29901,1,105000350,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29902,29902,1,106000380,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29903,29903,1,110000260,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29904,29904,2,101000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29905,29905,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29906,29906,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29907,29907,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29908,29908,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29909,29909,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
29910,29910,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30401,30401,1,101000400,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30402,30402,1,102000540,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30403,30403,2,101000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30404,30404,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30405,30405,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30406,30406,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30407,30407,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30408,30408,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30409,30409,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30501,30501,1,101000410,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30502,30502,1,102000560,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30503,30503,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30504,30504,2,102000006,1,0,202400,25,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30505,30505,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30506,30506,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30507,30507,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30508,30508,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30509,30509,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30601,30601,8,290000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30602,30602,8,204000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30603,30603,8,205000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30604,30604,8,206000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30605,30605,8,202000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30606,30606,8,203000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30607,30607,8,209000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30608,30608,8,215000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30701,30701,8,201000180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30702,30702,8,204000300,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30703,30703,8,209000260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30704,30704,8,216000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30801,30801,8,203000290,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30802,30802,8,205000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30803,30803,8,215000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30804,30804,8,290000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30901,30901,8,202000360,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30902,30902,8,204000310,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30903,30903,8,209000270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
30904,30904,8,216000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31001,31001,1,102000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31002,31002,1,109000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31003,31003,1,103000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31004,31004,1,111000110,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31005,31005,1,105000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31006,31006,1,106000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31007,31007,1,109000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31008,31008,1,112000120,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31009,31009,1,102000380,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31010,31010,1,104000390,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31011,31011,1,101000350,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31012,31012,1,106000300,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31013,31013,8,297000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31014,31014,8,202000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31015,31015,8,290000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31016,31016,8,297000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31017,31017,8,299000780,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31018,31018,8,299000790,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31201,31201,1,106000390,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31202,31202,1,110000290,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31203,31203,1,118000200,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31204,31204,2,102000008,1,0,204300,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31205,31205,2,109000008,1,0,204100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31206,31206,2,101000015,1,0,207100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31207,31207,2,112000008,1,0,305000,100,0,305400,0,0,2,0,0,2,0,0
|
||||||
|
31208,31208,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31209,31209,8,206000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31210,31210,8,220000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31211,31211,8,203000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31212,31212,8,204000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31213,31213,8,216000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31214,31214,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31215,31215,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31216,31216,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31217,31217,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31701,31701,1,102000240,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31702,31702,1,105000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31703,31703,1,109000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31704,31704,1,103000320,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31705,31705,1,104000380,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31706,31706,1,111000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31707,31707,2,102000008,1,0,204300,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31708,31708,2,109000008,1,0,204100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31709,31709,2,101000015,1,0,207100,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31710,31710,2,112000008,1,0,305000,100,0,305400,0,0,2,0,0,2,0,0
|
||||||
|
31711,31711,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31712,31712,8,206000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31713,31713,8,220000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31714,31714,8,203000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31715,31715,8,204000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31716,31716,8,216000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31717,31717,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31718,31718,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31719,31719,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31720,31720,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31901,31901,8,209000300,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31902,31902,8,201000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31903,31903,8,203000320,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
31904,31904,8,204000340,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32001,32001,1,101000390,1,0,105600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32002,32002,1,103000390,1,0,105600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32003,32003,2,105000007,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32004,32004,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32005,32005,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32006,32006,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32007,32007,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32008,32008,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32101,32101,1,102000170,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32102,32102,1,103000150,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32103,32103,1,104000160,1,0,101000,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32104,32104,1,105000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32105,32105,1,106000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32106,32106,1,111000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32107,32107,1,103000400,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32108,32108,1,105000330,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32109,32109,1,109000390,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32110,32110,1,110000250,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32111,32111,1,118000180,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32112,32112,1,102000480,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32113,32113,1,111000280,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32114,32114,1,101000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32115,32115,1,101000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32116,32116,1,102000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32117,32117,1,103000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32118,32118,1,104000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32119,32119,1,101000370,1,0,105600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32120,32120,1,105000300,1,0,105600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32121,32121,1,102000470,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32122,32122,1,103000380,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32123,32123,1,109000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32127,32127,1,110000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32128,32128,1,112000100,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32129,32129,1,101000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32130,32130,1,104000360,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32131,32131,1,107000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32132,32132,1,103000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32133,32133,1,110000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32134,32134,1,109000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32135,32135,1,104000410,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32136,32136,1,102000370,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32137,32137,1,102000310,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32138,32138,1,106000240,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32139,32139,1,103000300,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32140,32140,1,102000340,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32141,32141,1,109000310,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32142,32142,1,105000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32143,32143,1,118000130,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32144,32144,1,101000340,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32145,32145,1,104000430,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32146,32146,1,110000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32147,32147,1,106000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32148,32148,1,109000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32149,32149,1,111000120,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32150,32150,1,118000090,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32151,32151,1,104000310,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32152,32152,1,106000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32153,32153,1,102000400,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32154,32154,1,102000200,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32155,32155,1,105000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32156,32156,1,106000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32301,32301,8,206000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32302,32302,8,205000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32303,32303,8,209000310,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32304,32304,8,217000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32401,32401,1,102000570,1,0,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32402,32402,1,104000510,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32403,32403,1,111000330,1,0,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32404,32404,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32405,32405,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32406,32406,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32407,32407,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32408,32408,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32409,32409,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32410,32410,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32411,32411,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32901,32901,1,101000240,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32902,32902,1,102000250,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32903,32903,1,103000210,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32904,32904,1,109000210,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32905,32905,1,104000240,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32906,32906,1,105000200,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32907,32907,1,106000200,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32908,32908,1,108000140,1,0,107800,2019,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32909,32909,2,107000007,1,0,207700,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32910,32910,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32911,32911,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32912,32912,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32913,32913,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
32914,32914,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33101,33101,1,109000410,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33102,33102,1,112000200,1,0,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33103,33103,2,115000005,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33104,33104,2,101000019,1,0,204400,0,0,204900,0,0,2,0,0,2,0,0
|
||||||
|
33105,33105,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33106,33106,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33107,33107,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33108,33108,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33109,33109,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33201,33201,8,203000330,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33202,33202,8,202000410,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33203,33203,8,204000350,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33204,33204,8,216000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33301,33301,8,203000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33302,33302,8,202000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33303,33303,8,204000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33304,33304,8,206000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33305,33305,8,212000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33306,33306,8,201000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33307,33307,8,297000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33401,33401,1,104000540,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33402,33402,1,105000380,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33403,33403,1,106000400,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33404,33404,2,111000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33405,33405,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33406,33406,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
33407,33407,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33408,33408,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33409,33409,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33410,33410,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33411,33411,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33901,33901,1,102000590,1,1,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33902,33902,1,111000360,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33903,33903,2,107000007,1,0,207700,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33904,33904,2,120000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33905,33905,3,110240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33906,33906,3,110250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33907,33907,3,110260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
33908,33908,3,110270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
34101,34101,1,102000450,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34102,34102,1,109000350,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34103,34103,1,111000250,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34104,34104,1,101000330,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34105,34105,1,102000420,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34106,34106,1,104000440,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34107,34107,1,105000320,1,1,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34108,34108,1,106000320,1,1,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34109,34109,1,108000180,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34110,34110,1,109000360,1,1,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34111,34111,1,104000200,1,1,100900,50,0,101000,50,0,2,0,0,2,0,0
|
||||||
|
34112,34112,1,106000170,1,1,100900,50,0,101000,50,0,2,0,0,2,0,0
|
||||||
|
34113,34113,1,111000100,1,1,100900,50,0,101000,50,0,2,0,0,2,0,0
|
||||||
|
34114,34114,1,102000440,1,1,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
34115,34115,1,103000340,1,1,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
34116,34116,1,109000340,1,1,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
34117,34117,1,110000200,1,1,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
34118,34118,1,118000120,1,1,100900,100,0,107900,0,0,2,0,0,2,0,0
|
||||||
|
34119,34119,1,103000290,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34120,34120,1,104000350,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34121,34121,1,102000330,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34122,34122,1,109000280,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34123,34123,1,101000320,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34124,34124,1,111000230,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34125,34125,1,112000150,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34126,34126,2,101000013,1,0,204200,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34127,34127,2,101000012,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34128,34128,2,101000011,1,0,209900,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34129,34129,2,101000018,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34130,34130,2,101000014,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34131,34131,2,101000016,1,0,207300,50,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34132,34132,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34133,34133,2,103000007,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
34134,34134,2,107000007,1,0,207700,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34135,34135,2,111000008,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34136,34136,2,115000005,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34201,34201,1,103000490,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34202,34202,1,109000440,1,1,102200,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34203,34203,1,118000220,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34204,34204,1,105000400,1,1,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34205,34205,1,106000420,1,1,105100,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34206,34206,1,103000500,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34207,34207,1,110000310,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34208,34208,1,118000230,1,1,111500,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34209,34209,1,101000440,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34210,34210,1,102000600,1,1,104000,10,0,1,0,0,2,0,0,2,0,0
|
|
882
titles/sao/data/GashaMedalShops.csv
Normal file
882
titles/sao/data/GashaMedalShops.csv
Normal file
@ -0,0 +1,882 @@
|
|||||||
|
GashaMedalShopId,Name,GashaMedalId,UseGashaMedalNum,PurchaseLimit,StartDate,EndDate
|
||||||
|
15701,"≪不屈の誓い≫キリト",10002,300,-1,"2020/03/10 7:00:00","2020/03/31 2:00:00"
|
||||||
|
15702,"≪明日への誓い≫アスナ",10002,300,-1,"2020/03/10 7:00:00","2020/03/31 2:00:00"
|
||||||
|
15703,"ダークリパルサー",10002,60,-1,"2020/03/10 7:00:00","2020/03/31 2:00:00"
|
||||||
|
15801,"《恒久の愛情》ユージオ",10001,180,-1,"2020/03/03 7:00:00","2020/03/24 2:00:00"
|
||||||
|
15802,"《赤誠の求愛》キリト",10001,30,-1,"2020/03/03 7:00:00","2020/03/24 2:00:00"
|
||||||
|
15803,"《狂愛の誓い》クラディール",10001,30,-1,"2020/03/03 7:00:00","2020/03/24 2:00:00"
|
||||||
|
15901,"《空島繋ぐ架け橋》レイン",10159,150,-1,"2020/06/09 7:00:00","2020/07/21 2:00:00"
|
||||||
|
15902,"《一騎多閃》レイン",10159,30,-1,"2020/06/09 7:00:00","2020/07/21 2:00:00"
|
||||||
|
15903,"《温かな眼差し》レイン",10159,30,-1,"2020/06/09 7:00:00","2020/07/21 2:00:00"
|
||||||
|
15904,"ソード・オブ・ホグニ",10159,30,-1,"2020/06/09 7:00:00","2020/07/21 2:00:00"
|
||||||
|
16301,"《愛おしい日常》ユウキ",10163,90,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16302,"《早朝の誘い》アスナ",10163,15,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16303,"《花の女子高生》リズベット",10163,15,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16304,"《通学路の乙女》シリカ",10163,15,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16401,"《恒久の愛情》ユージオ",10001,180,-1,"2020/06/23 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16402,"《赤誠の求愛》キリト",10001,30,-1,"2020/06/23 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16403,"《狂愛の誓い》クラディール",10001,30,-1,"2020/06/23 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16501,"≪不屈の誓い≫キリト",10002,300,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16502,"≪明日への誓い≫アスナ",10002,300,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16503,"ダークリパルサー",10002,60,-1,"2020/07/07 7:00:00","2020/07/28 2:00:00"
|
||||||
|
16601,"≪ハツコイ同盟≫リズベット",10166,150,-1,"2020/06/09 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16602,"≪トキメキ同盟≫シリカ",10166,150,-1,"2020/06/09 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16603,"ジャルディーノ",10166,30,-1,"2020/06/09 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16604,"グリダヴォル",10166,30,-1,"2020/06/09 7:00:00","2020/07/14 2:00:00"
|
||||||
|
16801,"《創世神ステイシア》アスナ",10168,150,-1,"2020/07/14 7:00:00","2020/08/18 2:00:00"
|
||||||
|
16802,"《地神テラリア》リーファ",10168,150,-1,"2020/07/14 7:00:00","2020/08/18 2:00:00"
|
||||||
|
16803,"《太陽神ソルス》シノン",10168,150,-1,"2020/07/14 7:00:00","2020/08/18 2:00:00"
|
||||||
|
16804,"ヴァーデュラス・アニマ",10168,30,-1,"2020/07/14 7:00:00","2020/08/18 2:00:00"
|
||||||
|
16805,"ラディアント・ライト",10168,30,-1,"2020/07/14 7:00:00","2020/08/18 2:00:00"
|
||||||
|
16806,"アニヒレート・レイ",10168,30,-1,"2020/07/14 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17201,"《英雄纏う剣才》ユウキ",10172,150,-1,"2020/07/21 7:00:00","2020/08/11 2:00:00"
|
||||||
|
17202,"《忘却の憧憬》ユージオ",10172,150,-1,"2020/07/21 7:00:00","2020/08/11 2:00:00"
|
||||||
|
17203,"青薔薇の剣",10172,30,-1,"2020/07/21 7:00:00","2020/08/11 2:00:00"
|
||||||
|
17204,"オブシディアナ",10172,30,-1,"2020/07/21 7:00:00","2020/08/11 2:00:00"
|
||||||
|
17301,"《揺るぎない信愛》シノン",10173,90,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17302,"《夢へ至る純愛》ユウキ",10173,90,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17303,"《運命の寵愛》キリト",10173,15,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17304,"《美貌の愛妻》アスナ",10173,15,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17305,"《豊かなる恵愛》直葉",10173,15,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17306,"《端麗な深愛》リズベット",10173,15,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17307,"《純真な情愛》シリカ",10173,15,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17308,"《高潔なる忠愛》アリス",10173,15,-1,"2020/07/21 7:00:00","2020/08/18 2:00:00"
|
||||||
|
17601,"≪透き通る青≫アリス",10176,150,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17602,"≪白砂の少女≫シリカ",10176,150,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17603,"≪目映い太陽≫リズベット",10176,150,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17604,"金木犀の剣",10176,30,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17605,"スクレープ",10176,30,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17606,"ジャイアント・タスク",10176,30,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17607,"ゴールド・ネックレス",10176,30,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17608,"ヒーローコード:ボスキラー",10176,100,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17609,"ヒーローコード:Mobキラー",10176,100,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17610,"ヒーローコード:HP最大時強化",10176,100,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
17611,"ヒーローコード:HP低下時強化",10176,100,-1,"2020/08/11 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18001,"≪現実を超えて≫キリト",10180,150,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18002,"≪鮮やかな閃光≫アスナ",10180,150,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18003,"≪剣に乗せた想い≫リーファ",10180,150,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18004,"エリュシデータ",10180,30,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18005,"アロンダイト",10180,30,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18006,"ムラマサ",10180,30,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18007,"ゴールド・ネックレス",10180,30,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18008,"ヒーローコード:ボスキラー",10180,100,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18009,"ヒーローコード:Mobキラー",10180,100,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18010,"ヒーローコード:HP最大時強化",10180,100,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18011,"ヒーローコード:HP低下時強化",10180,100,-1,"2020/09/08 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18401,"《真夏の眩耀》アスナ",10184,150,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18402,"《魅惑の夏日》リーファ",10184,150,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18403,"《砂浜の女神》シノン",10184,150,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18404,"エリュシデータ",10184,30,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18405,"アロンダイト",10184,30,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18406,"MEBRマニアック",10184,30,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18407,"ゴールド・ネックレス",10184,30,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18408,"ヒーローコード:ボスキラー",10184,100,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18409,"ヒーローコード:Mobキラー",10184,100,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18410,"ヒーローコード:HP最大時強化",10184,100,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18411,"ヒーローコード:HP低下時強化",10184,100,-1,"2020/08/11 7:00:00","2020/09/01 2:00:00"
|
||||||
|
18501,"《兄想う妖精》リーファ",10185,150,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18502,"《向き合う勇気》シノン",10185,150,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18503,"ヴァルトレーニス",10185,30,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18504,"アネモイ",10185,30,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18505,"ゴールド・ネックレス",10185,30,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18506,"ヒーローコード:ボスキラー",10185,100,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18507,"ヒーローコード:Mobキラー",10185,100,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18508,"ヒーローコード:HP最大時強化",10185,100,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18509,"ヒーローコード:HP低下時強化",10185,100,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
18601,"《納涼の令嬢》アスナ",10186,90,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18602,"《真夏の誘惑》シノン",10186,90,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18603,"《優美な夏姫》直葉",10186,15,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18604,"《海の漢》エギル",10186,15,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18605,"《南風の爛漫娘》ユウキ",10186,15,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18606,"《炎天の疾影》アルゴ",10186,15,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18607,"《清夏の羽休め》フィリア",10186,15,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18608,"《夏空の遊翼》ユイ&ピナ",10186,15,-1,"2020/08/18 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18901,"《盛夏の花形》セブン",10189,90,-1,"2020/08/25 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18902,"《艶やか彩花》リズベット",10189,15,-1,"2020/08/25 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18903,"《祭礼の彩り》シリカ",10189,15,-1,"2020/08/25 7:00:00","2020/09/15 2:00:00"
|
||||||
|
18904,"《賑わいの明光》レイン",10189,15,-1,"2020/08/25 7:00:00","2020/09/15 2:00:00"
|
||||||
|
19001,"《お姫様メイド》アリス",10190,90,-1,"2020/09/08 7:00:00","2020/09/29 2:00:00"
|
||||||
|
19002,"《お嬢様メイド》アスナ",10190,15,-1,"2020/09/08 7:00:00","2020/09/29 2:00:00"
|
||||||
|
19003,"《お世話好きメイド》直葉",10190,15,-1,"2020/09/08 7:00:00","2020/09/29 2:00:00"
|
||||||
|
19004,"《純真メイド》ユイ",10190,15,-1,"2020/09/08 7:00:00","2020/09/29 2:00:00"
|
||||||
|
19101,"《チアー・アップ!》フィリア",10191,90,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
19102,"《チアフル・リーダー》アスナ",10191,15,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
19103,"《チアフル・ジャンプ》リーファ",10191,15,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
19104,"《チアフル・エール》シリカ",10191,15,-1,"2020/09/22 7:00:00","2020/10/13 2:00:00"
|
||||||
|
19201,"《晴天の高揚》ユウキ",10192,90,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19202,"《熱砂の輝き》リズベット",10192,90,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19203,"《炎夏のひと時》ストレア",10192,90,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19204,"《盛夏の思い出》サチ",10192,90,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19205,"《華夜の巧者》シノン",10192,90,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19206,"《はじける笑顔》シリカ",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19207,"《真夏の遊戯》キリト",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19208,"《納涼の誘い》フィリア",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19209,"《暑熱の高鳴り》ユイ",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19210,"《一夏の華》アスナ",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19211,"《華輝の妖精》リーファ",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19212,"《真夏の憧憬》ユウキ",10192,15,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19213,"《熱暑の漢達》エギル&クライン",10192,10,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19214,"《水辺の戯れ》セブン&レイン",10192,10,-1,"2020/08/04 7:00:00","2020/08/25 2:00:00"
|
||||||
|
19301,"《現を射抜く眼》シノン",10193,150,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19302,"《同志と共に》クライン",10193,150,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19303,"《仮想を駆けて》ユウキ",10193,150,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19304,"MEBRマニアック",10193,30,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19305,"ムラマサ",10193,30,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19306,"オブシディアナ",10193,30,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19307,"ゴールド・ネックレス",10193,30,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19308,"ヒーローコード:ボスキラー",10193,100,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19309,"ヒーローコード:Mobキラー",10193,100,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19310,"ヒーローコード:HP最大時強化",10193,100,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19311,"ヒーローコード:HP低下時強化",10193,100,-1,"2020/10/20 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19701,"《劇甚なる金木犀》アリス",10197,150,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19702,"《蒼撃の竜姫》シリカ",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19703,"《光速の絶技》ユウキ",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19704,"《疾鼠の刻爪》アルゴ",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19705,"金木犀の剣",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19706,"スクレープ",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19707,"オブシディアナ",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19708,"ウィズィー・ガジェット",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19709,"ゴールド・ネックレス",10197,30,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19710,"ヒーローコード:ボスキラー",10197,100,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19711,"ヒーローコード:Mobキラー",10197,100,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19712,"ヒーローコード:HP最大時強化",10197,100,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19713,"ヒーローコード:HP低下時強化",10197,100,-1,"2020/11/10 7:00:00","2020/12/01 2:00:00"
|
||||||
|
19801,"《倒れぬ意志》リーファ",10198,150,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19802,"《見据える勝利》シノン",10198,150,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19803,"ヴァーデュラス・アニマ",10198,30,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19804,"MEBRマニアック",10198,30,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19805,"ゴールド・ネックレス",10198,30,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19806,"ヒーローコード:ボスキラー",10198,100,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19807,"ヒーローコード:Mobキラー",10198,100,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19808,"ヒーローコード:HP最大時強化",10198,100,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19809,"ヒーローコード:HP低下時強化",10198,100,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
19901,"《羽ばたく希望》アスナ",10199,150,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19902,"《輝く勇気》ユウキ",10199,150,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19903,"ラディアント・ライト",10199,30,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19904,"オブシディアナ",10199,30,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19905,"ゴールド・ネックレス",10199,30,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19906,"ヒーローコード:ボスキラー",10199,100,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19907,"ヒーローコード:Mobキラー",10199,100,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19908,"ヒーローコード:HP最大時強化",10199,100,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
19909,"ヒーローコード:HP低下時強化",10199,100,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20001,"《宵闇の戦士》キリト",10200,90,-1,"2020/10/13 7:00:00","2020/11/03 2:00:00"
|
||||||
|
20002,"《愛を紡ぐ天使》アスナ",10200,90,-1,"2020/10/13 7:00:00","2020/11/03 2:00:00"
|
||||||
|
20003,"《光輝の天使》アリス",10200,15,-1,"2020/10/13 7:00:00","2020/11/03 2:00:00"
|
||||||
|
20004,"《闇の貴公子》ユージオ",10200,15,-1,"2020/10/13 7:00:00","2020/11/03 2:00:00"
|
||||||
|
20005,"《愛しき闇天使》ユイ",10200,10,-1,"2020/10/13 7:00:00","2020/11/03 2:00:00"
|
||||||
|
20101,"《キューティ・ウルフ》ユウキ",10201,90,-1,"2020/10/27 7:00:00","2020/11/17 2:00:00"
|
||||||
|
20102,"《ブラッキー・ヴァンプ》キリト",10201,15,-1,"2020/10/27 7:00:00","2020/11/17 2:00:00"
|
||||||
|
20103,"《ラグー・ウィッチ》アスナ",10201,15,-1,"2020/10/27 7:00:00","2020/11/17 2:00:00"
|
||||||
|
20104,"《ムーンナイト・ウルフ》リーファ",10201,15,-1,"2020/10/27 7:00:00","2020/11/17 2:00:00"
|
||||||
|
20201,"《輝夜の月うさぎ》アスナ",10202,90,-1,"2020/11/03 7:00:00","2020/11/24 2:00:00"
|
||||||
|
20202,"《佳宵の月うさぎ》アリス",10202,90,-1,"2020/11/03 7:00:00","2020/11/24 2:00:00"
|
||||||
|
20203,"《暁の月うさぎ》リーファ",10202,15,-1,"2020/11/03 7:00:00","2020/11/24 2:00:00"
|
||||||
|
20204,"《宵闇の月うさぎ》シノン",10202,15,-1,"2020/11/03 7:00:00","2020/11/24 2:00:00"
|
||||||
|
20205,"《黄昏の月うさぎ》ユウキ",10202,10,-1,"2020/11/03 7:00:00","2020/11/24 2:00:00"
|
||||||
|
20301,"《笑顔の奉迎》レイン",10203,90,-1,"2020/11/17 7:00:00","2020/12/08 2:00:00"
|
||||||
|
20302,"《氷静の差添》シノン",10203,15,-1,"2020/11/17 7:00:00","2020/12/08 2:00:00"
|
||||||
|
20303,"《桜袖の応援》シリカ",10203,15,-1,"2020/11/17 7:00:00","2020/12/08 2:00:00"
|
||||||
|
20304,"《奉仕の戦華》ストレア",10203,15,-1,"2020/11/17 7:00:00","2020/12/08 2:00:00"
|
||||||
|
20401,"《スウィートウィッチ》ユイ",10204,90,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20402,"《ドリーミィ・バニー》アスナ",10204,90,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20403,"《クレバーソーサレス》シノン",10204,15,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20404,"《マジカルスミス》リズベット",10204,15,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20405,"《キャットモンスター》シリカ",10204,15,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20406,"《ファイン・サービング》直葉",10204,15,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20407,"《ベット・タイム!》ユウキ",10204,15,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20408,"《ベスト・サービス》ストレア",10204,15,-1,"2020/10/06 7:00:00","2020/10/27 2:00:00"
|
||||||
|
20501,"《永久の約束》キリト&アスナ&ユイ",10205,90,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20502,"《在りし日の宝物》アリス",10205,90,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20503,"《竹馬の友》キリト&ユージオ",10205,90,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20504,"《優艶な幼な妻》アスナ",10205,15,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20505,"《光彩の加護》ユイ",10205,15,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20506,"《絆の双刃》キリト&アスナ",10205,15,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20507,"《在りし日の親友》ユージオ",10205,15,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20508,"《協同調和》アリス&アスナ",10205,15,-1,"2020/10/20 7:00:00","2020/11/10 2:00:00"
|
||||||
|
20601,"《はにかみ露天》リズベット",10206,90,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20602,"《湯煙のひと時》ユイ",10206,90,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20603,"《食いしん坊トナカイ》シリカ",10206,90,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20604,"《聖夜の歌声》サチ",10206,90,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20605,"《温熱の誘惑》リーファ",10206,15,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20606,"《浴場の洗戯》ユウキ",10206,15,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20607,"《魅惑の綺羅星》リーファ",10206,15,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20608,"《雪明りの贈り物》シノン",10206,15,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20609,"《湯上りの一本》エギル",10206,10,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20610,"《雪旅の宝物》フィリア",10206,10,-1,"2020/11/24 7:00:00","2020/12/15 2:00:00"
|
||||||
|
20801,"《ジョイフルキャロル》リーファ",10208,150,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20802,"《ホワイトジングル》シノン",10208,150,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20803,"《スノープレゼント》アリス",10208,150,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20804,"エターナル・ツリー",10208,30,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20805,"スノウマン・ステッキ",10208,30,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20806,"ジングル・ヘッド",10208,30,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20807,"マジカル・リース",10208,30,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20808,"ヒーローコード:ボスキラー",10208,100,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20809,"ヒーローコード:Mobキラー",10208,100,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20810,"ヒーローコード:HP最大時強化",10208,100,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
20811,"ヒーローコード:HP低下時強化",10208,100,-1,"2020/12/08 7:00:00","2021/01/19 2:00:00"
|
||||||
|
21301,"《ハッピークリスマス》アスナ",10213,150,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21302,"《ホーリーデコレイト》リズベット",10213,150,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21303,"《ギフト・トゥギャザー! 》ユウキ",10213,150,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21304,"スノウマン・ステッキ",10213,30,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21305,"ジングル・ヘッド",10213,30,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21306,"エターナル・ツリー",10213,30,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21307,"マジカル・リース",10213,30,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21308,"ヒーローコード:ボスキラー",10213,100,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21309,"ヒーローコード:Mobキラー",10213,100,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21310,"ヒーローコード:HP最大時強化",10213,100,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21311,"ヒーローコード:HP低下時強化",10213,100,-1,"2020/12/08 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21401,"《荒野の閃光》アスナ",10214,150,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21402,"《血盟の狙撃手》シノン",10214,150,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21403,"MEBRマニアック",10214,30,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21404,"アロンダイト",10214,30,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21405,"ゴールド・ネックレス",10214,30,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21406,"ヒーローコード:ボスキラー",10214,100,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21407,"ヒーローコード:Mobキラー",10214,100,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21408,"ヒーローコード:HP最大時強化",10214,100,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21409,"ヒーローコード:HP低下時強化",10214,100,-1,"2021/01/12 7:00:00","2021/02/02 2:00:00"
|
||||||
|
21501,"《湯浴みの紅潮》シノン",10215,150,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21502,"《秘湯の恥じらい》シリカ",10215,150,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21503,"《火照る温浴》アリス",10215,150,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21504,"フェイルノート",10215,30,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21505,"スクレープ",10215,30,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21506,"金木犀の剣",10215,30,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21507,"ゴールド・ネックレス",10215,30,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21508,"ヒーローコード:ボスキラー",10215,100,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21509,"ヒーローコード:Mobキラー",10215,100,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21510,"ヒーローコード:HP最大時強化",10215,100,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21511,"ヒーローコード:HP低下時強化",10215,100,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
21601,"《生彩放つ飛躍》アスナ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21602,"《純真な想望》ユウキ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21603,"《親愛なる漆黒》リーファ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21604,"《黒衣の聖騎士》アリス",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21605,"《ハツコイ同盟》リズベット",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21606,"《トキメキ同盟》シリカ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21607,"《英雄纏う剣才》ユウキ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21608,"《忘却の憧憬》ユージオ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21609,"《SAOゲーム攻略会議2019》キリト",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21610,"《不屈の誓い》キリト",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21611,"《明日への誓い》アスナ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21612,"《目映い太陽》リズベット",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21613,"《白砂の少女》シリカ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21614,"《透き通る青》アリス",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21615,"《紅葉の祝福》ユウキ",10216,150,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21616,"《慈愛の光彩》アスナ",10216,30,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21617,"《快活なお誘い》リズベット",10216,30,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21618,"《至福のひと時》シリカ",10216,30,-1,"2021/01/01 7:00:00","2021/01/26 2:00:00"
|
||||||
|
21801,"《雪華の美姫》アスナ",10218,90,-1,"2020/12/01 7:00:00","2020/12/22 2:00:00"
|
||||||
|
21802,"《プリンセスオリオン》直葉",10218,15,-1,"2020/12/01 7:00:00","2020/12/22 2:00:00"
|
||||||
|
21803,"《聖夜の妖精》シノン",10218,15,-1,"2020/12/01 7:00:00","2020/12/22 2:00:00"
|
||||||
|
21804,"《ウインタークラウス》ユウキ",10218,15,-1,"2020/12/01 7:00:00","2020/12/22 2:00:00"
|
||||||
|
21901,"《冬宴の魅雪》ストレア",10219,90,-1,"2020/12/15 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21902,"《妖精のクリスマス》アスナ",10219,15,-1,"2020/12/15 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21903,"《秘める恋心》リズベット",10219,15,-1,"2020/12/15 7:00:00","2021/01/08 2:00:00"
|
||||||
|
21904,"《聖夜の贈り物》サチ",10219,15,-1,"2020/12/15 7:00:00","2021/01/08 2:00:00"
|
||||||
|
22001,"《温泉の弓姫》シノン",10220,90,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
22002,"《湯上り剣士》キリト",10220,15,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
22003,"《背流し癒湯姫》アスナ",10220,15,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
22004,"《仲良し洗いっこ》シリカ",10220,15,-1,"2021/01/19 7:00:00","2021/02/09 2:00:00"
|
||||||
|
22101,"《世界を包む星空》キリト",10221,150,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22102,"《世界を導く光》アリス",10221,150,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22103,"《世界を見守る剣》ユージオ",10221,150,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22104,"夜空の剣",10221,30,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22105,"金木犀の剣",10221,30,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22106,"青薔薇の剣",10221,30,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22107,"ゴールド・ネックレス",10221,30,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22108,"ヒーローコード:ボスキラー",10221,100,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22109,"ヒーローコード:Mobキラー",10221,100,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22110,"ヒーローコード:HP最大時強化",10221,100,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22111,"ヒーローコード:HP低下時強化",10221,100,-1,"2021/01/26 7:00:00","2021/03/02 2:00:00"
|
||||||
|
22201,"《湯の華咲いた》アスナ",10222,150,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22202,"《豊潤な湯浴み》リーファ",10222,150,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22203,"《温浴の寛ぎ》ユウキ",10222,150,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22204,"《秘境の癒湯》アルゴ",10222,150,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22205,"《湯上り素顔》レイン",10222,150,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22206,"アロンダイト",10222,30,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22207,"ヴァルトレーニス",10222,30,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22208,"オブシディアナ",10222,30,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22209,"スクレープ",10222,30,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22210,"ソード・オブ・ホグニ",10222,30,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22211,"ゴールド・ネックレス",10222,30,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22212,"ヒーローコード:ボスキラー",10222,100,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22213,"ヒーローコード:Mobキラー",10222,100,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22214,"ヒーローコード:HP最大時強化",10222,100,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22215,"ヒーローコード:HP低下時強化",10222,100,-1,"2021/02/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
22801,"《気儘な黒猫》キリト",10228,150,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22802,"《ねころび愛猫》アスナ",10228,150,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22803,"《奔放な萌猫》リーファ",10228,150,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22804,"《またたび仔猫》ユウキ",10228,150,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22805,"《慧眼の弓猫》シノン",10228,30,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22806,"《友情の桃猫》リズベット",10228,30,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22807,"《可憐な幼猫》シリカ",10228,30,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22808,"《猫耳の豪商》エギル",10228,30,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22809,"キティ・パウ",10228,30,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22810,"ゴールド・ネックレス",10228,30,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22811,"ヒーローコード:ボスキラー",10228,100,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22812,"ヒーローコード:Mobキラー",10228,100,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22813,"ヒーローコード:HP最大時強化",10228,100,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
22814,"ヒーローコード:HP低下時強化",10228,100,-1,"2021/02/09 7:00:00","2021/03/16 2:00:00"
|
||||||
|
23201,"《笑顔守るために》キリト",10232,150,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23202,"《電脳の歌姫》シリカ",10232,150,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23203,"エリュシデータ",10232,30,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23204,"ジャルディーノ",10232,30,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23205,"ゴールド・ネックレス",10232,30,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23206,"ヒーローコード:ボスキラー",10232,100,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23207,"ヒーローコード:Mobキラー",10232,100,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23208,"ヒーローコード:HP最大時強化",10232,100,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23209,"ヒーローコード:HP低下時強化",10232,100,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23301,"《ふたとせ求めて》キリト",10233,150,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23302,"《ふたとせ歩みて》アスナ",10233,150,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23303,"ダークリパルサー",10233,30,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23304,"ラディアント・ライト",10233,30,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23305,"ゴールド・ネックレス",10233,30,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23306,"ヒーローコード:ボスキラー",10233,100,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23307,"ヒーローコード:Mobキラー",10233,100,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23308,"ヒーローコード:HP最大時強化",10233,100,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23309,"ヒーローコード:HP低下時強化",10233,100,-1,"2021/03/16 7:00:00","2021/04/13 2:00:00"
|
||||||
|
23401,"《甘い真心》リズベット",10234,90,-1,"2021/02/02 7:00:00","2021/02/23 2:00:00"
|
||||||
|
23402,"《甘い恋のコクハク》シノン",10234,15,-1,"2021/02/02 7:00:00","2021/02/23 2:00:00"
|
||||||
|
23403,"《思慕の猫姫》シリカ",10234,15,-1,"2021/02/02 7:00:00","2021/02/23 2:00:00"
|
||||||
|
23404,"《恋焦がれるココロ》ユウキ",10234,15,-1,"2021/02/02 7:00:00","2021/02/23 2:00:00"
|
||||||
|
23501,"《安らかな夢見》リーファ",10235,90,-1,"2021/02/16 7:00:00","2021/03/09 2:00:00"
|
||||||
|
23502,"《早天の射手》シノン",10235,15,-1,"2021/02/16 7:00:00","2021/03/09 2:00:00"
|
||||||
|
23503,"《夢路への誘い》ストレア",10235,15,-1,"2021/02/16 7:00:00","2021/03/09 2:00:00"
|
||||||
|
23504,"《憩いの歌姫》セブン",10235,15,-1,"2021/02/16 7:00:00","2021/03/09 2:00:00"
|
||||||
|
23601,"《紫光の絶拳》ユウキ",10236,90,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23602,"《華麗な紅華》アスナ",10236,15,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23603,"《疾風の美技》リーファ",10236,15,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23604,"《赤影の明花》レイン",10236,15,-1,"2021/03/02 7:00:00","2021/03/23 2:00:00"
|
||||||
|
23701,"《恋情パティシエ》リーファ",10237,90,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23702,"《恒久の愛情》ユージオ",10237,90,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23703,"《最愛パティシエ》アスナ",10237,15,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23704,"《純情ショコラ》シノン",10237,15,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23705,"《恋慕ショコラ》シリカ",10237,15,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23706,"《赤誠の求愛》キリト",10237,15,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23707,"《狂愛の誓い》クラディール",10237,15,-1,"2021/03/09 7:00:00","2021/03/30 2:00:00"
|
||||||
|
23801,"《心照らす歌声》ユナ",10238,90,-1,"2021/03/16 7:00:00","2021/04/06 2:00:00"
|
||||||
|
23802,"《心奮う戦い》エイジ",10238,90,-1,"2021/03/16 7:00:00","2021/04/06 2:00:00"
|
||||||
|
23803,"EXPメモリ",10238,5,-1,"2021/03/16 7:00:00","2021/04/06 2:00:00"
|
||||||
|
23804,"プラチナ",10238,5,-1,"2021/03/16 7:00:00","2021/04/06 2:00:00"
|
||||||
|
23901,"《うららかジャンプ》アスナ",10239,150,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23902,"《はるかぜジャンプ》ユウキ",10239,150,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23903,"《ゆきどけジャンプ》アリス",10239,150,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23904,"アロンダイト",10239,30,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23905,"オブシディアナ",10239,30,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23906,"金木犀の剣",10239,30,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23907,"ゴールド・ネックレス",10239,30,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23908,"ヒーローコード:ボスキラー",10239,100,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23909,"ヒーローコード:Mobキラー",10239,100,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23910,"ヒーローコード:HP最大時強化",10239,100,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
23911,"ヒーローコード:HP低下時強化",10239,100,-1,"2021/03/30 7:00:00","2021/05/04 2:00:00"
|
||||||
|
24301,"《世界を越えて》アリス",10243,150,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24302,"《新たな挑戦》ユージオ",10243,150,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24303,"《共に駆ける今》レイン",10243,150,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24304,"金木犀の剣",10243,30,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24305,"青薔薇の剣",10243,30,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24306,"ソード・オブ・ホグニ",10243,30,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24307,"ゴールド・ネックレス",10243,30,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24308,"ヒーローコード:ボスキラー",10243,100,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24309,"ヒーローコード:Mobキラー",10243,100,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24310,"ヒーローコード:HP最大時強化",10243,100,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24311,"ヒーローコード:HP低下時強化",10243,100,-1,"2021/04/27 7:00:00","2021/06/01 2:00:00"
|
||||||
|
24701,"《フェアリー・ワルツ》アスナ",10247,150,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24702,"《フェアリー・マージ》リーファ",10247,150,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24703,"アロンダイト",10247,30,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24704,"ムラマサ",10247,30,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24705,"ゴールド・ネックレス",10247,30,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24706,"ヒーローコード:ボスキラー",10247,100,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24707,"ヒーローコード:Mobキラー",10247,100,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24708,"ヒーローコード:HP最大時強化",10247,100,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24709,"ヒーローコード:HP低下時強化",10247,100,-1,"2021/05/25 7:00:00","2021/06/22 2:00:00"
|
||||||
|
24801,"《頼れる盟友》リズベット",10248,150,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24802,"《勇気の跳躍》シリカ",10248,150,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24803,"グリダヴォル",10248,30,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24804,"ジャルディーノ",10248,30,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24805,"ゴールド・ネックレス",10248,30,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24806,"ヒーローコード:ボスキラー",10248,100,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24807,"ヒーローコード:Mobキラー",10248,100,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24808,"ヒーローコード:HP最大時強化",10248,100,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24809,"ヒーローコード:HP低下時強化",10248,100,-1,"2021/03/23 7:00:00","2021/04/20 2:00:00"
|
||||||
|
24901,"《黒衣の英雄》キリト",10249,150,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24902,"《英雄の剣匠》リズベット",10249,150,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24903,"ダークリパルサー",10249,30,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24904,"グリダヴォル",10249,30,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24905,"ゴールド・ネックレス",10249,30,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24906,"ヒーローコード:ボスキラー",10249,100,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24907,"ヒーローコード:Mobキラー",10249,100,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24908,"ヒーローコード:HP最大時強化",10249,100,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
24909,"ヒーローコード:HP低下時強化",10249,100,-1,"2021/04/13 7:00:00","2021/05/08 2:00:00"
|
||||||
|
25001,"《倒れぬ意志》リーファ",10250,150,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25002,"《見据える勝利》シノン",10250,150,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25003,"《羽ばたく希望》アスナ",10250,150,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25004,"《輝く勇気》ユウキ",10250,150,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25005,"ヴァーデュラス・アニマ",10250,30,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25006,"MEBRマニアック",10250,30,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25007,"ラディアント・ライト",10250,30,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25008,"オブシディアナ",10250,30,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25009,"ゴールド・ネックレス",10250,30,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25010,"ヒーローコード:ボスキラー",10250,100,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25011,"ヒーローコード:Mobキラー",10250,100,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25012,"ヒーローコード:HP最大時強化",10250,100,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25013,"ヒーローコード:HP低下時強化",10250,100,-1,"2021/05/01 7:00:00","2021/06/01 2:00:00"
|
||||||
|
25101,"《心の傷を越えて》シノン",10251,90,-1,"2021/04/06 7:00:00","2021/04/27 2:00:00"
|
||||||
|
25102,"《春満開》リーファ",10251,15,-1,"2021/04/06 7:00:00","2021/04/27 2:00:00"
|
||||||
|
25103,"《敬慕の瞳》シリカ",10251,15,-1,"2021/04/06 7:00:00","2021/04/27 2:00:00"
|
||||||
|
25104,"《番長》キバオウ",10251,15,-1,"2021/04/06 7:00:00","2021/04/27 2:00:00"
|
||||||
|
25201,"《碧海の踊り子》シリカ",10252,90,-1,"2021/04/20 7:00:00","2021/05/18 2:00:00"
|
||||||
|
25202,"《閃花の舞姫》アスナ",10252,15,-1,"2021/04/20 7:00:00","2021/05/18 2:00:00"
|
||||||
|
25203,"《氷弾の闘舞》シノン",10252,15,-1,"2021/04/20 7:00:00","2021/05/18 2:00:00"
|
||||||
|
25204,"《探求の踊り手》フィリア",10252,15,-1,"2021/04/20 7:00:00","2021/05/18 2:00:00"
|
||||||
|
25301,"《完全無欠メイド》アスナ",10253,90,-1,"2021/05/11 7:00:00","2021/06/08 2:00:00"
|
||||||
|
25302,"《有頂天外メイド》キリト",10253,15,-1,"2021/05/11 7:00:00","2021/06/08 2:00:00"
|
||||||
|
25303,"《天真爛漫メイド》ユウキ",10253,15,-1,"2021/05/11 7:00:00","2021/06/08 2:00:00"
|
||||||
|
25304,"《才色兼備メイド》セブン",10253,15,-1,"2021/05/11 7:00:00","2021/06/08 2:00:00"
|
||||||
|
25501,"《麗凛な獣猫》シノン",10255,150,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25502,"《毛繕い桃猫》リズベット",10255,150,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25503,"《まったり愛猫》シリカ",10255,150,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25504,"《隆隆狩猫》エギル",10255,150,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25505,"《とびつき活猫》ユウキ",10255,150,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25506,"キティ・パウ",10255,30,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25507,"ゴールド・ネックレス",10255,30,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25508,"ヒーローコード:ボスキラー",10255,100,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25509,"ヒーローコード:Mobキラー",10255,100,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25510,"ヒーローコード:HP最大時強化",10255,100,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
25511,"ヒーローコード:HP低下時強化",10255,100,-1,"2021/06/08 7:00:00","2021/07/27 2:00:00"
|
||||||
|
26101,"《犀薫る浜辺》アスナ",10261,150,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26102,"《波打ち際の彩》アリス",10261,150,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26103,"金木犀の剣",10261,30,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26104,"アロンダイト",10261,30,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26105,"ゴールド・ネックレス",10261,30,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26106,"ヒーローコード:ボスキラー",10261,100,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26107,"ヒーローコード:Mobキラー",10261,100,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26108,"ヒーローコード:HP最大時強化",10261,100,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26109,"ヒーローコード:HP低下時強化",10261,100,-1,"1971/07/20 7:00:00","1971/08/17 2:00:00"
|
||||||
|
26401,"《世界を包む星空》キリト",10264,150,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26402,"《世界を導く光》アリス",10264,150,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26403,"《世界を見守る剣》ユージオ",10264,150,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26404,"夜空の剣",10264,30,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26405,"金木犀の剣",10264,30,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26406,"青薔薇の剣",10264,30,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26407,"ゴールド・ネックレス",10264,30,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26408,"ヒーローコード:ボスキラー",10264,100,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26409,"ヒーローコード:Mobキラー",10264,100,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26410,"ヒーローコード:HP最大時強化",10264,100,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26411,"ヒーローコード:HP低下時強化",10264,100,-1,"2021/07/20 7:00:00","2021/08/17 2:00:00"
|
||||||
|
26601,"《天幸の恩愛》アスナ",10266,90,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26602,"《甘やかな誓愛》シノン",10266,15,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26603,"《無邪気な幼愛》ユウキ",10266,15,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26604,"《優艶な祝愛》ストレア",10266,15,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26701,"《夜天の桃虹》リズベット",10267,90,-1,"2021/07/06 7:00:00","2021/08/03 2:00:00"
|
||||||
|
26702,"《光星の天女》アスナ",10267,15,-1,"2021/07/06 7:00:00","2021/08/03 2:00:00"
|
||||||
|
26703,"《星彩の願い》シリカ",10267,15,-1,"2021/07/06 7:00:00","2021/08/03 2:00:00"
|
||||||
|
26704,"《宵闇の流星》ユウキ",10267,15,-1,"2021/07/06 7:00:00","2021/08/03 2:00:00"
|
||||||
|
26901,"《ふたとせ求めて》キリト",10233,150,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26902,"《ふたとせ歩みて》アスナ",10233,150,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26903,"ダークリパルサー",10233,30,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26904,"ラディアント・ライト",10233,30,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26905,"ゴールド・ネックレス",10233,30,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26906,"ヒーローコード:ボスキラー",10233,100,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26907,"ヒーローコード:Mobキラー",10233,100,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26908,"ヒーローコード:HP最大時強化",10233,100,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
26909,"ヒーローコード:HP低下時強化",10233,100,-1,"2021/06/01 7:00:00","2021/06/29 2:00:00"
|
||||||
|
27001,"《碧海の踊り子》シリカ",10252,90,-1,"2021/07/13 7:00:00","2021/08/10 2:00:00"
|
||||||
|
27002,"《閃花の舞姫》アスナ",10252,15,-1,"2021/07/13 7:00:00","2021/08/10 2:00:00"
|
||||||
|
27003,"《氷弾の闘舞》シノン",10252,15,-1,"2021/07/13 7:00:00","2021/08/10 2:00:00"
|
||||||
|
27004,"《探求の踊り手》フィリア",10252,15,-1,"2021/07/13 7:00:00","2021/08/10 2:00:00"
|
||||||
|
27101,"《世界を越えて》アリス",10243,150,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27102,"《新たな挑戦》ユージオ",10243,150,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27103,"《共に駆ける今》レイン",10243,150,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27104,"金木犀の剣",10243,30,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27105,"青薔薇の剣",10243,30,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27106,"ソード・オブ・ホグニ",10243,30,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27107,"ゴールド・ネックレス",10243,30,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27108,"ヒーローコード:ボスキラー",10243,100,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27109,"ヒーローコード:Mobキラー",10243,100,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27110,"ヒーローコード:HP最大時強化",10243,100,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27111,"ヒーローコード:HP低下時強化",10243,100,-1,"2021/06/29 7:00:00","2021/08/03 2:00:00"
|
||||||
|
27501,"《倒れぬ意志》リーファ",10250,150,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27502,"《見据える勝利》シノン",10250,150,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27503,"《羽ばたく希望》アスナ",10250,150,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27504,"《輝く勇気》ユウキ",10250,150,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27505,"ヴァーデュラス・アニマ",10250,30,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27506,"MEBRマニアック",10250,30,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27507,"ラディアント・ライト",10250,30,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27508,"オブシディアナ",10250,30,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27509,"ゴールド・ネックレス",10250,30,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27510,"ヒーローコード:ボスキラー",10250,100,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27511,"ヒーローコード:Mobキラー",10250,100,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27512,"ヒーローコード:HP最大時強化",10250,100,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27513,"ヒーローコード:HP低下時強化",10250,100,-1,"2021/06/15 7:00:00","2021/07/13 2:00:00"
|
||||||
|
27601,"《完全無欠メイド》アスナ",10253,90,-1,"2021/06/22 7:00:00","2021/07/20 2:00:00"
|
||||||
|
27602,"《有頂天外メイド》キリト",10253,15,-1,"2021/06/22 7:00:00","2021/07/20 2:00:00"
|
||||||
|
27603,"《天真爛漫メイド》ユウキ",10253,15,-1,"2021/06/22 7:00:00","2021/07/20 2:00:00"
|
||||||
|
27604,"《才色兼備メイド》セブン",10253,15,-1,"2021/06/22 7:00:00","2021/07/20 2:00:00"
|
||||||
|
27701,"《微睡の砂浜》リーファ",10277,150,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27702,"《海辺の休息》リズベット",10277,150,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27703,"《夏の陽の夢》ユウキ",10277,150,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27704,"《波際の司令塔》アルゴ",10277,150,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27705,"《心躍る岸辺》レイン",10277,150,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27706,"ヴァルトレーニス",10277,30,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27707,"ジャイアント・タスク",10277,30,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27708,"オブシディアナ",10277,30,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27709,"スクレープ",10277,30,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27710,"ソード・オブ・ホグニ",10277,30,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27711,"ゴールド・ネックレス",10277,30,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27712,"ヒーローコード:ボスキラー",10277,100,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27713,"ヒーローコード:Mobキラー",10277,100,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27714,"ヒーローコード:HP最大時強化",10277,100,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
27715,"ヒーローコード:HP低下時強化",10277,100,-1,"2021/07/27 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28401,"《犀薫る浜辺》アスナ",10284,150,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28402,"《波打ち際の彩》アリス",10284,150,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28403,"金木犀の剣",10284,30,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28404,"アロンダイト",10284,30,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28405,"ゴールド・ネックレス",10284,30,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28406,"ヒーローコード:ボスキラー",10284,100,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28407,"ヒーローコード:Mobキラー",10284,100,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28408,"ヒーローコード:HP最大時強化",10284,100,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28409,"ヒーローコード:HP低下時強化",10284,100,-1,"2021/08/10 7:00:00","2021/09/07 2:00:00"
|
||||||
|
28501,"《騎士の心得》シノン",10285,150,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28502,"《射撃手の心得》アリス",10285,150,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28503,"金木犀の剣",10285,30,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28504,"MEBRマニアック",10285,30,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28505,"ゴールド・ネックレス",10285,30,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28506,"ヒーローコード:ボスキラー",10285,100,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28507,"ヒーローコード:Mobキラー",10285,100,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28508,"ヒーローコード:HP最大時強化",10285,100,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28509,"ヒーローコード:HP低下時強化",10285,100,-1,"2021/09/07 7:00:00","2021/10/05 2:00:00"
|
||||||
|
28601,"《真夏の眩耀》アスナ",10286,150,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28602,"《魅惑の夏日》リーファ",10286,150,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28603,"《砂浜の女神》シノン",10286,150,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28604,"《透き通る青》アリス",10286,150,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28605,"《白砂の少女》シリカ",10286,150,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28606,"《目映い太陽》リズベット",10286,150,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28607,"アロンダイト",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28608,"ヴァルトレーニス",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28609,"MEBRマニアック",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28610,"金木犀の剣",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28611,"スクレープ",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28612,"ジャイアント・タスク",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28613,"ゴールド・ネックレス",10286,30,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28614,"ヒーローコード:ボスキラー",10286,100,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28615,"ヒーローコード:Mobキラー",10286,100,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28616,"ヒーローコード:HP最大時強化",10286,100,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
28617,"ヒーローコード:HP低下時強化",10286,100,-1,"2021/08/24 7:00:00","2021/09/28 2:00:00"
|
||||||
|
29001,"《キャンディポップ》シリカ",10290,90,-1,"2021/08/03 7:00:00","2021/08/31 2:00:00"
|
||||||
|
29002,"《オーシャンケットシー》シノン",10290,15,-1,"2021/08/03 7:00:00","2021/08/31 2:00:00"
|
||||||
|
29003,"《サマーサンシャイン》アリス",10290,15,-1,"2021/08/03 7:00:00","2021/08/31 2:00:00"
|
||||||
|
29004,"《サマープリティ》ユイ",10290,15,-1,"2021/08/03 7:00:00","2021/08/31 2:00:00"
|
||||||
|
29101,"《夏夜の彩り》フィリア",10291,90,-1,"2021/08/24 7:00:00","2021/09/21 2:00:00"
|
||||||
|
29102,"《月下の憩い》アスナ",10291,15,-1,"2021/08/24 7:00:00","2021/09/21 2:00:00"
|
||||||
|
29103,"《納涼の弓姫》シノン",10291,15,-1,"2021/08/24 7:00:00","2021/09/21 2:00:00"
|
||||||
|
29104,"《ひと夏の思い出》ユウキ",10291,15,-1,"2021/08/24 7:00:00","2021/09/21 2:00:00"
|
||||||
|
29201,"《心舞の熱唱》セブン",10292,90,-1,"2021/09/14 7:00:00","2021/10/12 2:00:00"
|
||||||
|
29202,"《快勝の導き》シノン",10292,15,-1,"2021/09/14 7:00:00","2021/10/12 2:00:00"
|
||||||
|
29203,"《熱烈な鼓舞》リズベット",10292,15,-1,"2021/09/14 7:00:00","2021/10/12 2:00:00"
|
||||||
|
29204,"《飛躍の舞踊》レイン",10292,15,-1,"2021/09/14 7:00:00","2021/10/12 2:00:00"
|
||||||
|
29301,"《晴天の高揚》ユウキ",10293,90,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29302,"《熱砂の輝き》リズベット",10293,90,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29303,"《炎夏のひと時》ストレア",10293,90,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29304,"《盛夏の思い出》サチ",10293,90,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29305,"《華夜の巧者》シノン",10293,90,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29306,"《はじける笑顔》シリカ",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29307,"《真夏の遊戯》キリト",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29308,"《納涼の誘い》フィリア",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29309,"《暑熱の高鳴り》ユイ",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29310,"《一夏の華》アスナ",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29311,"《華輝の妖精》リーファ",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29312,"《真夏の憧憬》ユウキ",10293,15,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29313,"《熱暑の漢達》エギル&クライン",10293,10,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29314,"《水辺の戯れ》セブン&レイン",10293,10,-1,"2021/07/27 7:00:00","2021/08/24 2:00:00"
|
||||||
|
29401,"《賽の悦楽》リーファ",10294,150,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29402,"《廻る享楽》シノン",10294,150,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29403,"《兎の務め》アリス",10294,150,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29404,"《二色の歓楽》シリカ",10294,30,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29405,"ヴァルトレーニス",10294,30,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29406,"MEBRマニアック",10294,30,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29407,"金木犀の剣",10294,30,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29408,"ゴールド・ネックレス",10294,30,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29409,"ヒーローコード:ボスキラー",10294,100,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29410,"ヒーローコード:Mobキラー",10294,100,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29411,"ヒーローコード:HP最大時強化",10294,100,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29412,"ヒーローコード:HP低下時強化",10294,100,-1,"2021/09/28 7:00:00","2021/11/09 2:00:00"
|
||||||
|
29901,"《ぬくもりの黒制服》リズベット",10299,150,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29902,"《闇色の心頼》シリカ",10299,150,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29903,"《黒尽くめの密か》アルゴ",10299,150,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29904,"エリュシデータ",10299,30,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29905,"ダークリパルサー",10299,30,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29906,"ゴールド・ネックレス",10299,30,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29907,"ヒーローコード:ボスキラー",10299,100,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29908,"ヒーローコード:Mobキラー",10299,100,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29909,"ヒーローコード:HP最大時強化",10299,100,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
29910,"ヒーローコード:HP低下時強化",10299,100,-1,"2021/11/02 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30401,"《純白の誓い》キリト",10304,150,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30402,"《純黒の誓い》アスナ",10304,150,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30403,"エリュシデータ",10304,30,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30404,"アロンダイト",10304,30,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30405,"ゴールド・ネックレス",10304,30,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30406,"ヒーローコード:ボスキラー",10304,100,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30407,"ヒーローコード:Mobキラー",10304,100,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30408,"ヒーローコード:HP最大時強化",10304,100,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30409,"ヒーローコード:HP低下時強化",10304,100,-1,"2021/11/16 7:00:00","2021/12/14 2:00:00"
|
||||||
|
30501,"《赦しの一振り》キリト",10305,150,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30502,"《正しき一突き》アスナ",10305,150,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30503,"ダークリパルサー",10305,30,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30504,"ランベントライト",10305,30,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30505,"ゴールド・ネックレス",10305,30,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30506,"ヒーローコード:ボスキラー",10305,100,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30507,"ヒーローコード:Mobキラー",10305,100,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30508,"ヒーローコード:HP最大時強化",10305,100,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30509,"ヒーローコード:HP低下時強化",10305,100,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30601,"《スウィートウィッチ》ユイ",10306,90,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30602,"《クレバーソーサレス》シノン",10306,15,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30603,"《マジカルスミス》リズベット",10306,15,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30604,"《キャットモンスター》シリカ",10306,15,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30605,"《ドリーミィ・バニー》アスナ",10306,90,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30606,"《ファイン・サービング》直葉",10306,15,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30607,"《ベット・タイム!》ユウキ",10306,15,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30608,"《ベスト・サービス》ストレア",10306,15,-1,"2021/09/28 7:00:00","2021/10/26 2:00:00"
|
||||||
|
30701,"《ジェット・ヴォルフ》キリト",10307,90,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30702,"《弓猫の魔法》シノン",10307,15,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30703,"《トリックキャット》ユウキ",10307,15,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30704,"《キャットマジック》フィリア",10307,15,-1,"2021/10/05 7:00:00","2021/11/02 2:00:00"
|
||||||
|
30801,"《黒煌の剣影》リーファ",10308,90,-1,"2021/10/26 7:00:00","2021/11/23 2:00:00"
|
||||||
|
30802,"《漆黒の桃華》リズベット",10308,15,-1,"2021/10/26 7:00:00","2021/11/23 2:00:00"
|
||||||
|
30803,"《ゴシックビウィッチ》ストレア",10308,15,-1,"2021/10/26 7:00:00","2021/11/23 2:00:00"
|
||||||
|
30804,"《可憐な小華》ユイ",10308,15,-1,"2021/10/26 7:00:00","2021/11/23 2:00:00"
|
||||||
|
30901,"《聖夜の純愛》アスナ",10309,90,-1,"2021/12/07 7:00:00","2022/01/04 2:00:00"
|
||||||
|
30902,"《彩氷の福音》シノン",10309,15,-1,"2021/12/07 7:00:00","2022/01/04 2:00:00"
|
||||||
|
30903,"《冬宴の楽しみ》ユウキ",10309,15,-1,"2021/12/07 7:00:00","2022/01/04 2:00:00"
|
||||||
|
30904,"《魅惑の甘味》フィリア",10309,15,-1,"2021/12/07 7:00:00","2022/01/04 2:00:00"
|
||||||
|
31001,"《生彩放つ飛躍》アスナ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31002,"《純真な想望》ユウキ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31003,"《親愛なる漆黒》リーファ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31004,"《黒衣の聖騎士》アリス",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31005,"《ハツコイ同盟》リズベット",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31006,"《トキメキ同盟》シリカ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31007,"《英雄纏う剣才》ユウキ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31008,"《忘却の憧憬》ユージオ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31009,"《荒野の閃光》アスナ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31010,"《血盟の狙撃手》シノン",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31011,"《笑顔守るために》キリト",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31012,"《電脳の歌姫》シリカ",10310,150,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31013,"《永久の約束》キリト&アスナ&ユイ",10310,90,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31014,"《優艶な幼な妻》アスナ",10310,15,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31015,"《光彩の加護》ユイ",10310,15,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31016,"《絆の双刃》キリト&アスナ",10310,15,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31017,"《心照らす歌声》ユナ",10310,90,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31018,"《心奮う戦い》エイジ",10310,90,-1,"2021/10/30 7:00:00","2021/12/21 2:00:00"
|
||||||
|
31201,"《聖しあの夜》シリカ",10312,150,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31202,"《慶びの枕元》アルゴ",10312,150,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31203,"《届ける聖歌》レイン",10312,150,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31204,"スノウマン・ステッキ",10312,30,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31205,"ジングル・ヘッド",10312,30,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31206,"エターナル・ツリー",10312,30,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31207,"マジカル・リース",10312,30,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31208,"ゴールド・ネックレス",10312,30,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31209,"《食いしん坊トナカイ》シリカ",10312,90,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31210,"《聖夜の歌声》サチ",10312,90,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31211,"《魅惑の綺羅星》リーファ",10312,15,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31212,"《雪明りの贈り物》シノン",10312,15,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31213,"《雪旅の宝物》フィリア",10312,10,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31214,"ヒーローコード:ボスキラー",10312,100,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31215,"ヒーローコード:Mobキラー",10312,100,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31216,"ヒーローコード:HP最大時強化",10312,100,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31217,"ヒーローコード:HP低下時強化",10312,100,-1,"2021/12/14 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31701,"《ハッピークリスマス》アスナ",10317,150,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31702,"《ホーリーデコレイト》リズベット",10317,150,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31703,"《ギフト・トゥギャザー!》ユウキ",10317,150,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31704,"《ジョイフルキャロル》リーファ",10317,150,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31705,"《ホワイトジングル》シノン",10317,150,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31706,"《スノープレゼント》アリス",10317,150,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31707,"スノウマン・ステッキ",10317,30,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31708,"ジングル・ヘッド",10317,30,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31709,"エターナル・ツリー",10317,30,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31710,"マジカル・リース",10317,30,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31711,"ゴールド・ネックレス",10317,30,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31712,"《食いしん坊トナカイ》シリカ",10317,90,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31713,"《聖夜の歌声》サチ",10317,90,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31714,"《魅惑の綺羅星》リーファ",10317,15,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31715,"《雪明りの贈り物》シノン",10317,15,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31716,"《雪旅の宝物》フィリア",10317,10,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31717,"ヒーローコード:ボスキラー",10317,100,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31718,"ヒーローコード:Mobキラー",10317,100,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31719,"ヒーローコード:HP最大時強化",10317,100,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31720,"ヒーローコード:HP低下時強化",10317,100,-1,"2021/12/14 7:00:00","2022/01/08 2:00:00"
|
||||||
|
31901,"《鏡花水月》ユウキ",10319,90,-1,"2021/12/28 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31902,"《萬福衝打》キリト",10319,15,-1,"2021/12/28 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31903,"《錦上添花》直葉",10319,15,-1,"2021/12/28 7:00:00","2022/01/25 2:00:00"
|
||||||
|
31904,"《雲中白鶴》シノン",10319,15,-1,"2021/12/28 7:00:00","2022/01/25 2:00:00"
|
||||||
|
32001,"《飛翔の新天地》キリト",10320,150,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32002,"《風舞う妖精》リーファ",10320,150,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32003,"アメノハバキリ",10320,30,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32004,"ゴールド・ネックレス",10320,30,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32005,"ヒーローコード:ボスキラー",10320,100,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32006,"ヒーローコード:Mobキラー",10320,100,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32007,"ヒーローコード:HP最大時強化",10320,100,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32008,"ヒーローコード:HP低下時強化",10320,100,-1,"2022/01/01 7:00:00","2022/02/01 2:00:00"
|
||||||
|
32101,"《真夏の眩耀》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32102,"《魅惑の夏日》リーファ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32103,"《砂浜の女神》シノン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32104,"《目映い太陽》リズベット",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32105,"《白砂の少女》シリカ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32106,"《透き通る青》アリス",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32107,"《微睡の砂浜》リーファ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32108,"《海辺の休息》リズベット",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32109,"《夏の陽の夢》ユウキ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32110,"《波際の司令塔》アルゴ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32111,"《心躍る岸辺》レイン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32112,"《犀薫る浜辺》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32113,"《波打ち際の彩》アリス",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32114,"《SAOゲーム攻略会議2019》キリト",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32115,"《不屈の誓い》キリト",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32116,"《明日への誓い》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32117,"《兄想う妖精》リーファ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32118,"《向き合う勇気》シノン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32119,"《黒衣の英雄》キリト",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32120,"《英雄の剣匠》リズベット",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32121,"《フェアリー・ワルツ》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32122,"《フェアリー・マージ》リーファ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32123,"《紅葉の祝福》ユウキ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32127,"《休息の爪先》アルゴ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32128,"《背氷の気迫》ユージオ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32129,"《可憐な銃剣士》キリト",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32130,"《美麗な狙撃手》シノン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32131,"《頭領の音頭》クライン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32132,"《乙女の髪留め》リーファ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32133,"《月宙の飛躍》アルゴ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32134,"《遠望の彼方》ユウキ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32135,"《女神の羽休め》シノン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32136,"《プレゼント大作戦!》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32137,"《潮風の悪戯》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32138,"《おやつ・タイム!》シリカ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32139,"《妖精の戯れ》リーファ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32140,"《穏やかな一時》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32141,"《さかさま花世界》ユウキ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32142,"《休日の談笑》リズベット",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32143,"《晴天の君》レイン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32144,"《安らぎの我が家》キリト",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32145,"《幸せの青い鳥》シノン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32146,"《秘密の甘邸》アルゴ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32147,"《一輪の幼花》シリカ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32148,"《揺蕩う夢幻》ユウキ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32149,"《熟達の志士》アリス",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32150,"《かろやかスキップ》レイン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32151,"《予期せぬ接触》シノン",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32152,"《ちゃーみー・けっとしー》シリカ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32153,"《麗姿の眼差し》アスナ",10321,150,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32154,"《慈愛の光彩》アスナ",10321,30,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32155,"《快活なお誘い》リズベット",10321,30,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32156,"《至福のひと時》シリカ",10321,30,-1,"2022/01/01 7:00:00","2022/02/22 2:00:00"
|
||||||
|
32301,"《火照り身少女》シリカ",10323,90,-1,"2022/01/18 7:00:00","2022/02/15 2:00:00"
|
||||||
|
32302,"《ほっと一息》リズベット",10323,15,-1,"2022/01/18 7:00:00","2022/02/15 2:00:00"
|
||||||
|
32303,"《湯船の遊影》ユウキ",10323,15,-1,"2022/01/18 7:00:00","2022/02/15 2:00:00"
|
||||||
|
32304,"《保養の湯掛》セブン",10323,15,-1,"2022/01/18 7:00:00","2022/02/15 2:00:00"
|
||||||
|
32401,"《相愛は甘やかに》アスナ",10324,150,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32402,"《親愛はとろけて》シノン",10324,150,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32403,"《愛慕は未だ青く》アリス",10324,150,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32404,"アロンダイト",10324,30,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32405,"金木犀の剣",10324,30,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32406,"MEBRマニアック",10324,30,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32407,"ゴールド・ネックレス",10324,30,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32408,"ヒーローコード:ボスキラー",10324,100,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32409,"ヒーローコード:Mobキラー",10324,100,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32410,"ヒーローコード:HP最大時強化",10324,100,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32411,"ヒーローコード:HP低下時強化",10324,100,-1,"2022/01/25 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32901,"《気儘な黒猫》キリト",10329,150,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32902,"《ねころび愛猫》アスナ",10329,150,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32903,"《奔放な萌猫》リーファ",10329,150,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32904,"《またたび仔猫》ユウキ",10329,150,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32905,"《慧眼の弓猫》シノン",10329,30,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32906,"《友情の桃猫》リズベット",10329,30,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32907,"《可憐な幼猫》シリカ",10329,30,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32908,"《猫耳の豪商》エギル",10329,30,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32909,"キティ・パウ",10329,30,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32910,"ゴールド・ネックレス",10329,30,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32911,"ヒーローコード:ボスキラー",10329,100,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32912,"ヒーローコード:Mobキラー",10329,100,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32913,"ヒーローコード:HP最大時強化",10329,100,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
32914,"ヒーローコード:HP低下時強化",10329,100,-1,"2022/02/01 7:00:00","2022/03/08 2:00:00"
|
||||||
|
33101,"《狙い撃つ軌道》ユウキ",10331,150,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33102,"《魔剣稽古》ユージオ",10331,150,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33103,"AMRティアマト",10331,30,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33104,"マサムネG4",10331,30,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33105,"ゴールド・ネックレス",10331,30,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33106,"ヒーローコード:ボスキラー",10331,100,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33107,"ヒーローコード:Mobキラー",10331,100,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33108,"ヒーローコード:HP最大時強化",10331,100,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33109,"ヒーローコード:HP低下時強化",10331,100,-1,"2022/02/15 7:00:00","2022/03/15 2:00:00"
|
||||||
|
33201,"《一途なラブハート》リーファ",10332,90,-1,"2022/02/08 7:00:00","2022/03/08 2:00:00"
|
||||||
|
33202,"《愛のメッセージ》アスナ",10332,15,-1,"2022/02/08 7:00:00","2022/03/08 2:00:00"
|
||||||
|
33203,"《愛情の弾丸》シノン",10332,15,-1,"2022/02/08 7:00:00","2022/03/08 2:00:00"
|
||||||
|
33204,"《甘い恋心》フィリア",10332,15,-1,"2022/02/08 7:00:00","2022/03/08 2:00:00"
|
||||||
|
33301,"《恋情パティシエ》リーファ",10333,90,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33302,"《最愛パティシエ》アスナ",10333,15,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33303,"《純情ショコラ》シノン",10333,15,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33304,"《恋慕ショコラ》シリカ",10333,15,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33305,"《恒久の愛情》ユージオ",10333,90,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33306,"《赤誠の求愛》キリト",10333,15,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33307,"《狂愛の誓い》クラディール",10333,15,-1,"2022/03/01 7:00:00","2022/03/29 2:00:00"
|
||||||
|
33401,"《厳格手ほどき》シノン",10334,150,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33402,"《ほどけぬ胸飾り》リズベット",10334,150,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33403,"《夢想の放課後》シリカ",10334,150,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33404,"フェイルノート",10334,30,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33405,"ジャイアント・タスク",10334,30,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33406,"スクレープ",10334,30,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33407,"ゴールド・ネックレス",10334,30,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33408,"ヒーローコード:ボスキラー",10334,100,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33409,"ヒーローコード:Mobキラー",10334,100,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33410,"ヒーローコード:HP最大時強化",10334,100,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33411,"ヒーローコード:HP低下時強化",10334,100,-1,"2022/03/08 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33901,"《熊の招宴》アスナ",10339,150,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33902,"《兎の密会》アリス",10339,150,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33903,"キティ・パウ",10339,30,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33904,"ゴールド・ネックレス",10339,30,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33905,"ヒーローコード:ボスキラー",10339,100,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33906,"ヒーローコード:Mobキラー",10339,100,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33907,"ヒーローコード:HP最大時強化",10339,100,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
33908,"ヒーローコード:HP低下時強化",10339,100,-1,"2022/03/29 7:00:00","2022/04/26 2:00:00"
|
||||||
|
34101,"《うららかジャンプ》アスナ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34102,"《はるかぜジャンプ》ユウキ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34103,"《ゆきどけジャンプ》アリス",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34104,"《ふたとせ求めて》キリト",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34105,"《ふたとせ歩みて》アスナ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34106,"《麗凛な獣猫》シノン",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34107,"《毛繕い桃猫》リズベット",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34108,"《まったり愛猫》シリカ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34109,"《隆隆狩猫》エギル",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34110,"《とびつき活猫》ユウキ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34111,"《湯浴みの紅潮》シノン",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34112,"《秘湯の恥じらい》シリカ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34113,"《火照る温浴》アリス",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34114,"《湯の華咲いた》アスナ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34115,"《豊潤な湯浴み》リーファ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34116,"《温浴の寛ぎ》ユウキ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34117,"《秘境の癒湯》アルゴ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34118,"《湯上り素顔》レイン",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34119,"《倒れぬ意志》リーファ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34120,"《見据える勝利》シノン",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34121,"《羽ばたく希望》アスナ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34122,"《輝く勇気》ユウキ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34123,"《世界を包む星空》キリト",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34124,"《世界を導く光》アリス",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34125,"《世界を見守る剣》ユージオ",10341,150,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34126,"夜空の剣",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34127,"金木犀の剣",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34128,"青薔薇の剣",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34129,"ヴァーデュラス・アニマ",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34130,"オブシディアナ",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34131,"ソード・オブ・ホグニ",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34132,"ラディアント・ライト",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34133,"ジャルディーノ",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34134,"キティ・パウ",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34135,"アニヒレート・レイ",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34136,"AMRティアマト",10341,30,-1,"2022/03/08 7:00:00","2022/05/03 2:00:00"
|
||||||
|
34201,"《零れる活力》リーファ",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34202,"《瞬きの宙》ユウキ",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34203,"《就床の一揖》レイン",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34204,"《不屈の鍛冶屋魂》リズベット",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34205,"《絆が生む力》シリカ",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34206,"《養う英気》リーファ",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34207,"《秘めたる日誌》アルゴ",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34208,"《即席軽音楽団》レイン",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34209,"《頬張り黒猫》キリト",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
||||||
|
34210,"《身支度愛猫》アスナ",10342,50,-1,"2022/04/26 7:00:00","2022/06/07 2:00:00"
|
|
7
titles/sao/data/ResEarnCampaignShopItems.csv
Normal file
7
titles/sao/data/ResEarnCampaignShopItems.csv
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
ResEarnCampaignShopItemId,ResEarnCampaignShopId,CommonRewardType,CommonRewardId,CommonRewardNum,Strength,Property1PropertyId,Property1Value1,Property1Value2,Property2PropertyId,Property2Value1,Property2Value2,Property3PropertyId,Property3Value1,Property3Value2,Property4PropertyId,Property4Value1,Property4Value2
|
||||||
|
15701,15701,1,101000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15702,15702,1,102000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15703,15703,2,101000009,1,0,204000,5,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15801,15801,8,212000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15802,15802,8,201000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15803,15803,8,297000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
|
7
titles/sao/data/ResEarnCampaignShops.csv
Normal file
7
titles/sao/data/ResEarnCampaignShops.csv
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
ResEarnCampaignShopId,ResEarnCampaignApplicationId,Name,SellingYuiMedal,SellingCol,SellingEventItemId,SellingEventItemNum,PurchaseLimit,GetApplicationPoint,StartDate,EndDate
|
||||||
|
15701,10001,"≪不屈の誓い≫キリト",-1,1,-1,-1,-1,1,"2020/01/01 7:00:00","2020/03/31 2:00:00"
|
||||||
|
15702,10001,"≪明日への誓い≫アスナ",-1,12,-1,-1,-1,1,"2020/01/01 7:00:00","2020/03/31 2:00:00"
|
||||||
|
15703,10001,"ダークリパルサー",-1,123,-1,-1,-1,1,"2020/01/01 7:00:00","2020/03/31 2:00:00"
|
||||||
|
15801,10001,"《恒久の愛情》ユージオ",-1,1234,-1,-1,-1,1,"2020/01/01 7:00:00","2020/03/24 2:00:00"
|
||||||
|
15802,10001,"《赤誠の求愛》キリト",-1,12345,-1,-1,-1,1,"2020/01/01 7:00:00","2020/03/24 2:00:00"
|
||||||
|
15803,10001,"《狂愛の誓い》クラディール",-1,123456,-1,-1,-1,1,"2020/01/01 7:00:00","2020/03/24 2:00:00"
|
|
789
titles/sao/data/YuiMedalShopItems.csv
Normal file
789
titles/sao/data/YuiMedalShopItems.csv
Normal file
@ -0,0 +1,789 @@
|
|||||||
|
YuiMedalShopItemId,YuiMedalShopId,CommonRewardType,CommonRewardId,CommonRewardNum,Strength,Property1PropertyId,Property1Value1,Property1Value2,Property2PropertyId,Property2Value1,Property2Value2,Property3PropertyId,Property3Value1,Property3Value2,Property4PropertyId,Property4Value1,Property4Value2
|
||||||
|
1,1,1,101000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
2,2,1,110000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
3,3,2,120000003,1,0,302000,10,0,301900,20,0,2,0,0,2,0,0
|
||||||
|
4,4,2,101000004,1,0,200400,90,0,200400,90,0,2,0,0,2,0,0
|
||||||
|
5,5,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
6,6,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
7,7,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
8,8,2,112000004,1,0,305000,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
9,9,1,105000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10,10,1,102000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
11,11,2,101000002,1,0,202400,75,0,202400,75,0,2,0,0,99999,0,0
|
||||||
|
12,12,2,105000004,1,0,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
13,13,2,108000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
14,14,2,111000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15,15,2,107000004,1,0,205600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
16,16,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
17,17,1,106000180,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
18,18,1,112000090,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
19,19,2,102000002,1,0,202600,50,0,202600,50,0,2,0,0,99999,0,0
|
||||||
|
20,20,2,101000004,1,0,200400,90,0,200400,90,0,2,0,0,2,0,0
|
||||||
|
21,21,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
22,22,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
23,23,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
24,24,2,112000004,1,0,305000,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
25,25,1,104000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
26,26,1,101000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
27,27,1,102000260,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
28,28,1,103000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
29,29,1,104000250,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
30,30,1,105000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
31,31,1,106000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
32,32,1,107000140,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
33,33,1,108000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
34,34,1,109000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
35,35,1,110000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
36,36,1,111000140,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
37,37,1,112000110,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
38,38,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
39,39,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
40,40,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
41,41,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
42,42,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
43,43,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
44,44,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
45,45,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
46,46,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
47,47,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
48,48,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
49,49,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
50,50,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
51,51,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
52,52,1,103000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
53,53,1,111000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
54,54,1,107000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
55,55,1,108000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
56,56,8,201000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
57,57,8,299000440,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
58,58,8,299000450,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
59,59,8,299000460,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
60,60,8,299000470,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
61,61,8,299000480,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
62,62,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
63,63,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
64,64,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
65,65,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
66,66,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
67,67,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
68,68,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
69,69,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
70,70,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
71,71,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
72,72,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
73,73,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
74,74,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
75,75,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
76,76,2,101000018,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
77,77,2,102000009,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
78,78,2,111000008,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
79,79,8,202000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
80,80,8,203000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
81,81,8,204000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
82,82,8,205000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
83,83,8,206000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
84,84,8,212000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
85,85,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
86,86,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
87,87,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
88,88,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
89,89,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
90,90,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
91,91,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
92,92,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
93,93,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
94,94,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
95,95,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
96,96,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
97,97,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
98,98,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
99,99,1,109000130,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
100,100,8,299000550,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
101,101,8,299000560,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
102,102,8,299000570,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
103,103,8,299000580,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
104,104,8,299000590,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
105,105,8,299000600,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
106,106,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
107,107,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
108,108,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
109,109,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
110,110,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
111,111,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
112,112,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
113,113,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
114,114,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
115,115,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
116,116,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
117,117,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
118,118,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
119,119,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
120,120,1,110000130,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
121,121,3,110060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
122,122,3,110070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
123,123,3,110080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
124,124,3,110090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
125,125,3,110100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
126,126,3,110110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
127,127,3,110120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
128,128,3,110130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
129,129,3,110140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
130,130,3,110150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
131,131,3,110160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
132,132,3,110170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
133,133,3,110180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
134,134,1,109000240,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
135,135,1,108000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
136,136,1,110000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
137,137,1,118000100,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
138,138,1,101000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
139,139,1,101000300,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
140,140,1,102000360,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
141,141,1,103000310,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
142,142,1,104000370,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
143,143,1,109000290,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
144,144,8,211000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
145,145,8,299000610,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
146,146,8,299000620,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
147,147,8,299000630,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
148,148,8,299000640,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
149,149,8,299000650,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
150,150,1,111000080,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
151,151,1,112000080,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
152,152,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
153,153,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
154,154,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
155,155,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
156,156,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
157,157,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
158,158,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
159,159,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
160,160,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
161,161,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
162,162,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
163,163,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
164,164,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
165,165,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
166,166,1,105000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
167,167,1,110000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
168,168,1,102000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
169,169,1,106000270,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
170,170,1,112000090,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
171,171,1,111000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
172,172,1,106000180,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
173,173,1,112000140,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
174,174,1,104000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
175,175,1,108000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
176,176,1,103000230,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
177,177,1,105000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
178,178,1,111000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
179,179,1,103000360,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
180,180,1,109000240,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
181,181,1,101000380,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
182,182,1,107000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
183,183,1,109000370,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
184,184,1,108000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
185,185,1,118000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
186,186,1,110000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
187,187,1,102000500,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
188,188,1,118000100,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
189,189,1,104000470,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
190,190,1,106000270,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
191,191,1,107000180,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
192,192,1,112000140,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
193,193,1,111000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
194,194,1,101000190,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
195,195,1,111000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
196,196,1,104000330,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
197,197,1,110000150,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
198,198,1,108000170,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
199,199,1,112000130,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
200,200,1,102000210,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
201,201,1,105000280,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
202,202,1,106000240,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203,203,1,105000160,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204,204,1,101000380,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
205,205,1,103000300,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
206,206,1,106000180,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
207,207,1,103000360,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
208,208,1,102000340,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
5000,5000,1,101000130,1,70,102600,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
5001,5001,1,102000120,1,70,101700,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
5002,5002,1,105000120,1,70,100500,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
5003,5003,1,109000110,1,70,102600,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
5004,5004,1,118000070,1,70,102600,30,0,1,0,0,2,0,0,2,0,0
|
||||||
|
5005,5005,1,110000110,1,70,100500,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10000,10000,1,101000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10001,10001,1,102000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10002,10002,1,103000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10003,10003,1,104000260,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10004,10004,1,105000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10005,10005,1,106000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10006,10006,1,107000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10007,10007,1,108000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10008,10008,1,109000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10009,10009,1,110000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10010,10010,1,111000030,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10011,10011,1,112000030,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10012,10012,1,118000040,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10013,10013,2,101000002,1,0,202400,75,0,202400,75,0,2,0,0,99999,0,0
|
||||||
|
10014,10014,2,102000002,1,0,202600,50,0,202600,50,0,2,0,0,99999,0,0
|
||||||
|
10015,10015,2,101000004,1,0,200400,90,0,200400,90,0,2,0,0,2,0,0
|
||||||
|
10016,10016,2,102000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10017,10017,2,103000004,1,0,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
10018,10018,2,105000004,1,0,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
10019,10019,2,107000004,1,0,205600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10020,10020,2,108000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10021,10021,2,109000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10022,10022,2,111000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10023,10023,2,115000004,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10024,10024,2,112000004,1,0,305000,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10025,10025,3,110060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10026,10026,3,110070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10027,10027,3,110080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10028,10028,3,110090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10029,10029,3,110100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10030,10030,3,110110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10031,10031,3,110120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10032,10032,3,110130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10033,10033,3,110140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10034,10034,3,110150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10035,10035,3,110160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10036,10036,3,110170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10037,10037,3,110180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10038,10038,1,101000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10039,10039,1,102000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10040,10040,1,103000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10041,10041,1,104000260,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10042,10042,1,105000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10043,10043,1,106000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10044,10044,1,107000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10045,10045,1,108000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10046,10046,1,109000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10047,10047,1,110000080,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10048,10048,1,111000030,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10049,10049,1,112000030,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10050,10050,1,118000040,1,70,100200,100,0,100300,100,0,100300,100,0,99999,0,0
|
||||||
|
10051,10051,2,101000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10052,10052,2,102000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10053,10053,2,103000004,1,70,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
10054,10054,2,105000004,1,70,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
10055,10055,2,107000004,1,70,205600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10056,10056,2,108000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10057,10057,2,109000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10058,10058,2,111000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10059,10059,2,115000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10060,10060,2,112000004,1,70,305000,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
10061,10061,2,101000002,1,70,202400,75,0,202400,75,0,2,0,0,99999,0,0
|
||||||
|
10062,10062,2,102000002,1,70,202600,50,0,202600,50,0,2,0,0,99999,0,0
|
||||||
|
10063,10063,3,110060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10064,10064,3,110070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10065,10065,3,110080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10066,10066,3,110090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10067,10067,3,110100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10068,10068,3,110110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10069,10069,3,110120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10070,10070,3,110130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10071,10071,3,110140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10072,10072,3,110150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10073,10073,3,110160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10074,10074,3,110170,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10075,10075,3,110180,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10076,10076,3,120300,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10077,10077,3,120310,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10078,10078,3,120320,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10079,10079,3,120330,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10080,10080,3,120340,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10081,10081,3,120350,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10082,10082,3,120360,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10083,10083,3,120370,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10084,10084,3,120380,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
10085,10085,3,120390,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15000,15000,1,101000190,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15001,15001,1,101000380,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15002,15002,1,102000210,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15003,15003,1,102000500,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15004,15004,1,103000230,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15005,15005,1,103000360,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15006,15006,1,104000230,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15007,15007,1,104000470,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15008,15008,1,105000160,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15009,15009,1,105000280,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15010,15010,1,106000180,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15011,15011,1,106000270,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15012,15012,1,107000150,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15013,15013,1,107000180,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15014,15014,1,108000160,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15015,15015,1,108000170,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15016,15016,1,109000240,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15017,15017,1,109000370,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15018,15018,1,110000150,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15019,15019,1,110000190,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15020,15020,1,111000160,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15021,15021,1,111000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15022,15022,1,112000090,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15023,15023,1,112000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15024,15024,1,118000100,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15025,15025,1,118000170,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15026,15026,1,101000340,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15027,15027,1,102000340,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15028,15028,1,102000550,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15029,15029,1,103000300,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15030,15030,1,103000420,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15031,15031,1,104000330,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15032,15032,1,104000430,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15033,15033,1,105000250,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15034,15034,1,105000390,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15035,15035,1,106000240,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15036,15036,1,106000330,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15037,15037,1,109000310,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15038,15038,1,110000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15039,15039,1,111000170,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15040,15040,1,112000130,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15041,15041,1,118000130,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15042,15042,1,118000210,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15043,15043,2,101000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15044,15044,2,102000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15045,15045,2,103000004,1,70,204100,0,0,204800,5,0,2,0,0,2,0,0
|
||||||
|
15046,15046,2,105000004,1,70,202700,50,0,204700,1,0,2,0,0,2,0,0
|
||||||
|
15047,15047,2,107000004,1,70,205600,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15048,15048,2,108000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15049,15049,2,109000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15050,15050,2,111000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15051,15051,2,115000004,1,70,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15052,15052,2,112000004,1,70,305000,100,0,1,0,0,2,0,0,2,0,0
|
||||||
|
15053,15053,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15054,15054,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15055,15055,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15056,15056,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15057,15057,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15058,15058,3,170007,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15059,15059,3,180007,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15060,15060,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15061,15061,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15062,15062,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15063,15063,3,220002,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
15064,15064,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202901,202901,1,101000310,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
202902,202902,1,102000410,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
202903,202903,8,201000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202904,202904,8,202000240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202905,202905,8,211000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202906,202906,8,299000730,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202907,202907,8,299000740,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202908,202908,8,299000750,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202909,202909,8,299000760,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202910,202910,8,299000770,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202911,202911,1,104000220,1,0,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
202912,202912,8,299000410,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202913,202913,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202914,202914,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202915,202915,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202916,202916,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202917,202917,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202918,202918,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202919,202919,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202920,202920,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202921,202921,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202922,202922,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202923,202923,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202924,202924,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202925,202925,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
202926,202926,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203001,203001,8,204000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203002,203002,8,205000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203003,203003,8,299000800,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203004,203004,8,299000810,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203005,203005,8,299000820,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203006,203006,8,201000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203007,203007,8,299000830,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203008,203008,8,202000270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203009,203009,8,206000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203010,203010,8,220000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203011,203011,1,109000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203012,203012,1,101000250,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203013,203013,1,102000260,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203014,203014,1,103000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203015,203015,1,104000250,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203016,203016,1,105000210,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203017,203017,1,106000210,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203018,203018,1,107000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203019,203019,1,108000150,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203020,203020,1,109000230,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203021,203021,1,110000170,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203022,203022,1,111000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203023,203023,1,112000110,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203024,203024,1,118000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203025,203025,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203026,203026,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203027,203027,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203028,203028,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203029,203029,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203030,203030,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203031,203031,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203032,203032,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203033,203033,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203034,203034,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203035,203035,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203036,203036,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203037,203037,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203038,203038,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203201,203201,8,206000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203202,203202,8,211000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203203,203203,8,299000840,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203204,203204,8,299000850,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203205,203205,8,299000860,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203206,203206,8,202000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203207,203207,8,204000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203208,203208,8,201000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203209,203209,8,203000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203210,203210,8,205000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203211,203211,1,102000280,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203213,203213,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203214,203214,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203215,203215,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203216,203216,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203217,203217,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203218,203218,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203219,203219,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203220,203220,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203221,203221,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203222,203222,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203223,203223,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203224,203224,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203225,203225,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203226,203226,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203301,203301,8,202000290,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203302,203302,8,203000240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203303,203303,8,299000870,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203304,203304,8,299000880,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203305,203305,8,299000890,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203306,203306,8,212000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203307,203307,8,201000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203308,203308,8,204000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203309,203309,8,209000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203310,203310,8,299000900,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203312,203312,8,291000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203313,203313,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203314,203314,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203315,203315,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203316,203316,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203317,203317,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203318,203318,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203319,203319,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203320,203320,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203321,203321,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203322,203322,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203323,203323,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203324,203324,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203325,203325,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203326,203326,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203501,203501,8,299000920,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203502,203502,8,299000930,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203503,203503,8,299000940,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203504,203504,8,299000950,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203505,203505,8,299000960,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203506,203506,8,206000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203507,203507,8,211000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203508,203508,8,299000840,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203509,203509,8,299000850,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203510,203510,8,299000860,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203511,203511,8,202000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203512,203512,8,204000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203513,203513,8,201000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203514,203514,8,203000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203515,203515,8,205000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203516,203516,1,101000270,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203517,203517,1,111000240,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203518,203518,1,102000280,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203519,203519,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203520,203520,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203521,203521,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203522,203522,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203523,203523,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203524,203524,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203525,203525,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203526,203526,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203527,203527,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203528,203528,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203529,203529,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203530,203530,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203531,203531,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203532,203532,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203601,203601,8,202000340,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203602,203602,8,205000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203603,203603,8,208000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203604,203604,8,211000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203605,203605,8,220000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203606,203606,8,203000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203607,203607,8,202000350,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203608,203608,8,205000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203609,203609,8,299001050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203610,203610,8,299001060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203611,203611,1,103000270,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203612,203612,1,104000420,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203613,203613,8,291000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203614,203614,8,201000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203615,203615,8,299000440,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203616,203616,8,299000450,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203617,203617,8,299000460,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203618,203618,8,299000470,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203619,203619,8,299000480,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203620,203620,8,202000290,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203621,203621,8,203000240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203622,203622,8,299000870,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203623,203623,8,299000880,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203624,203624,8,299000890,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203625,203625,8,212000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203626,203626,8,201000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203627,203627,8,204000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203628,203628,8,209000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203629,203629,8,299000900,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203630,203630,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203631,203631,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203632,203632,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203633,203633,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203634,203634,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203635,203635,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203636,203636,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203637,203637,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203638,203638,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203639,203639,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203640,203640,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203641,203641,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203642,203642,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203643,203643,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203701,203701,3,170100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203702,203702,3,170101,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203703,203703,3,170102,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203704,203704,3,170103,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203705,203705,3,170104,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203706,203706,8,203000300,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203707,203707,8,204000320,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203708,203708,8,217000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203709,203709,8,218000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203710,203710,8,299001070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203711,203711,8,299001080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203712,203712,8,298000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203713,203713,8,215000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203714,203714,1,106000260,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203715,203715,8,202000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203716,203716,8,203000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203717,203717,8,204000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203718,203718,8,205000110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203719,203719,8,206000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203720,203720,8,212000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203721,203721,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203722,203722,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203723,203723,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203724,203724,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203725,203725,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203726,203726,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203727,203727,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203728,203728,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203729,203729,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203730,203730,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203731,203731,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203732,203732,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203733,203733,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203734,203734,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203801,203801,8,202000380,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203802,203802,8,205000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203803,203803,8,206000250,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203804,203804,8,210000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203805,203805,8,299001090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203806,203806,8,220000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203807,203807,8,299001100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203808,203808,8,299001110,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203809,203809,1,105000240,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
203810,203810,8,299000550,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203811,203811,8,299000560,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203812,203812,8,299000570,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203813,203813,8,299000580,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203814,203814,8,299000590,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203815,203815,8,299000600,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203816,203816,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203817,203817,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203818,203818,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203819,203819,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203820,203820,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203821,203821,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203822,203822,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203823,203823,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203824,203824,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203825,203825,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203826,203826,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203827,203827,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203828,203828,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
203829,203829,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204001,204001,8,202000420,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204002,204002,8,203000340,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204003,204003,8,204000360,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204004,204004,8,211000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204005,204005,8,212000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204006,204006,1,101000300,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204007,204007,1,102000360,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204008,204008,1,103000310,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204009,204009,1,104000370,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204010,204010,1,109000290,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204011,204011,1,109000130,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204012,204012,1,110000130,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204013,204013,1,111000080,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204014,204014,1,112000080,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204015,204015,1,104000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204016,204016,1,109000300,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204017,204017,8,211000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204018,204018,8,299000610,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204019,204019,8,299000620,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204020,204020,8,299000630,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204021,204021,8,299000640,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204022,204022,8,299000650,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204023,204023,8,299000410,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204024,204024,8,299000660,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204025,204025,8,215000050,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204026,204026,8,216000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204027,204027,8,218000030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204028,204028,8,217000020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204029,204029,8,299000500,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204030,204030,8,299000510,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204031,204031,8,299000520,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204032,204032,8,299000530,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204033,204033,8,299000540,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204034,204034,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204035,204035,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204036,204036,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204037,204037,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204038,204038,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204039,204039,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204040,204040,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204041,204041,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204042,204042,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204043,204043,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204044,204044,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204045,204045,3,120241,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204046,204046,3,120251,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204047,204047,3,120261,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204048,204048,3,120271,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204049,204049,3,120730,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204050,204050,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204051,204051,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204052,204052,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204101,204101,8,209000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204102,204102,8,211000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204103,204103,8,212000070,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204104,204104,8,215000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204105,204105,8,216000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204106,204106,8,299001130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204107,204107,8,299001140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204108,204108,8,299001150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204109,204109,1,102000430,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204110,204110,1,109000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204111,204111,1,101000310,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204112,204112,1,102000410,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204113,204113,1,101000250,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204114,204114,1,102000260,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204115,204115,1,103000220,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204116,204116,1,104000250,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204117,204117,1,105000210,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204118,204118,1,106000210,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204119,204119,1,107000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204120,204120,1,108000150,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204121,204121,1,109000230,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204122,204122,1,110000170,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204123,204123,1,111000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204124,204124,1,112000110,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204125,204125,1,118000140,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204126,204126,8,201000120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204127,204127,8,202000240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204128,204128,8,211000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204129,204129,8,299000730,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204130,204130,8,299000740,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204131,204131,8,299000750,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204132,204132,8,299000760,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204133,204133,8,299000770,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204134,204134,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204135,204135,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204136,204136,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204137,204137,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204138,204138,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204139,204139,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204140,204140,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204141,204141,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204142,204142,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204143,204143,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204144,204144,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204145,204145,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204146,204146,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204147,204147,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204201,204201,1,101000430,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204202,204202,1,102000580,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204203,204203,1,103000480,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204204,204204,1,104000520,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204205,204205,1,109000430,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204206,204206,1,111000350,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204207,204207,8,205000240,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204208,204208,8,206000260,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204209,204209,8,215000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204210,204210,8,216000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204211,204211,8,217000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204212,204212,8,218000100,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204213,204213,8,299001120,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204214,204214,1,102000280,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204215,204215,8,291000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204216,204216,8,204000210,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204217,204217,8,205000150,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204218,204218,8,299000800,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204219,204219,8,299000810,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204220,204220,8,299000820,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204221,204221,8,201000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204222,204222,8,299000830,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204223,204223,8,202000270,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204224,204224,8,206000190,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204225,204225,8,220000060,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204226,204226,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204227,204227,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204228,204228,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204229,204229,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204230,204230,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204231,204231,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204232,204232,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204233,204233,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204234,204234,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204235,204235,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204236,204236,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204237,204237,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204238,204238,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204239,204239,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204301,204301,8,202000390,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204302,204302,8,203000310,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204303,204303,8,204000330,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204304,204304,8,209000290,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204305,204305,8,210000040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204306,204306,8,211000130,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204307,204307,8,212000080,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204308,204308,1,101000270,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204309,204309,1,104000420,1,1,1,0,0,1,0,0,2,0,0,2,0,0
|
||||||
|
204310,204310,8,206000200,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204311,204311,8,211000090,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204312,204312,8,299000840,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204313,204313,8,299000850,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204314,204314,8,299000860,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204315,204315,8,202000280,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204316,204316,8,204000220,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204317,204317,8,201000140,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204318,204318,8,203000230,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204319,204319,8,205000160,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204320,204320,3,170001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204321,204321,3,170004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204322,204322,3,170005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204323,204323,3,180001,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204324,204324,3,180004,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204325,204325,3,180005,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204326,204326,3,140000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204327,204327,3,150010,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204328,204328,3,150020,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204329,204329,3,150030,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204330,204330,3,150040,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204331,204331,3,190000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204332,204332,3,200000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
||||||
|
204333,204333,3,210000,1,0,1,0,0,1,0,0,1,0,0,1,0,0
|
|
789
titles/sao/data/YuiMedalShops.csv
Normal file
789
titles/sao/data/YuiMedalShops.csv
Normal file
@ -0,0 +1,789 @@
|
|||||||
|
YuiMedalShopId,Name,Description,SellingYuiMedal,SellingCol,SellingEventItemId,SellingEventItemNum,SellingTicketNum,PurchaseLimit,PickUpFlag,ProductCategory,SalesType,TargetDays,TargetHour,IntervalHour,SalesStartDate,SalesEndDate,Sort
|
||||||
|
1,"≪想い馳せる窓辺≫キリト",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
2,"≪悪戯なオネーサン≫アルゴ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
3,"ネックレス",,2,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
4,"エリュシデータ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
5,"アロンダイト",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
6,"スクレープ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
7,"ジャイアント・タスク",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
8,"スヴェル",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/08/01","2019/11/01 2:00:00",0
|
||||||
|
9,"≪信頼の口付け≫リズベット",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2019/10/01 7:00:00","2019/12/01 2:00:00",0
|
||||||
|
10,"≪愛の誓い≫アスナ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2019/11/01 7:00:00","2020/01/01 2:00:00",0
|
||||||
|
11,"ブラックプレート",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/11/01 7:00:00","2021/01/01 2:00:00",1
|
||||||
|
12,"ムラマサ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/11/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
13,"ヴェンデッタ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/11/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
14,"フェイルノート",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/11/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
15,"ヴィズィー・ガジェット",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/11/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
16,"MEBRカスタム",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2019/11/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
17,"《宙吊りプラント》シリカ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2019/12/01 7:00:00","2020/02/01 2:00:00",0
|
||||||
|
18,"《奇想の相棒》ユージオ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/01/01 7:00:00","2020/03/01 2:00:00",0
|
||||||
|
19,"エペ・ド・マルブル",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2020/01/01 7:00:00","2021/01/01 2:00:00",2
|
||||||
|
20,"エリュシデータ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2020/01/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
21,"アロンダイト",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2020/01/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
22,"スクレープ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2020/01/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
23,"ジャイアント・タスク",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2020/01/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
24,"スヴェル",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2020/01/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
25,"《疾風迅雷》シノン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/02/01 7:00:00","2020/04/01 2:00:00",0
|
||||||
|
26,"《愛受のはにかみ》キリト",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",20
|
||||||
|
27,"《甘い贈り物》アスナ",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",19
|
||||||
|
28,"《恋慕の微笑》リーファ",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",18
|
||||||
|
29,"《静穏の秘め事》シノン",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",17
|
||||||
|
30,"《親愛の鍛冶屋》リズベット",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",16
|
||||||
|
31,"《純情な恋路》シリカ",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",15
|
||||||
|
32,"《歓喜の照笑》クライン",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",14
|
||||||
|
33,"《義理堅い甘露》エギル",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",13
|
||||||
|
34,"《純粋な愛情》ユウキ",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",12
|
||||||
|
35,"《秘密の贈り物》アルゴ",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",11
|
||||||
|
36,"《裏腹な恋心》アリス",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",10
|
||||||
|
37,"《心届く笑顔》ユージオ",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",9
|
||||||
|
38,"EXPチップ《テラ》",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",7
|
||||||
|
39,"ゴールド《テラ》",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",4
|
||||||
|
40,"EXPチップ《キロ》",,-1,-1,10001,1,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",8
|
||||||
|
41,"ゴールド《キロ》",,-1,-1,10001,1,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",5
|
||||||
|
42,"EXPメモリ",,-1,-1,10001,5,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",6
|
||||||
|
43,"プラチナ",,-1,-1,10001,5,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",3
|
||||||
|
44,"プロパティアペンド",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
45,"コードイレイサー:1",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
46,"コードイレイサー:2",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
47,"コードイレイサー:3",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
48,"コードイレイサー:4",,-1,-1,10001,3,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
49,"ヒーローレベルアペンド《1》",,-1,-1,10001,20,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
50,"ウェポンレベルアペンド《1》",,-1,-1,10001,20,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
51,"アクセサリレベルアペンド《1》",,-1,-1,10001,20,-1,-1,False,0,0,0,0,0,"2020/02/11 7:00:00","2020/05/15 13:59:59",0
|
||||||
|
52,"《秘めた胸奥》リーファ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/03/01 7:00:00","2020/07/01 2:00:00",1
|
||||||
|
53,"《固守の決意》アリス",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/06/09 7:00:00","2020/09/01 2:00:00",2
|
||||||
|
54,"《武人の少憩》クライン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/07/01 7:00:00","2020/09/01 2:00:00",3
|
||||||
|
55,"《金剛なる体躯》エギル",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/09/01 7:00:00","2020/11/01 2:00:00",4
|
||||||
|
56,"《異世界の英雄》キリト",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
57,"《彼岸花の君》メディナ",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
58,"《柔靭なる剣士》ソルティリーナ",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
59,"《図書室の賢者》カーディナル",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
60,"《絶対的支配者》アドミニストレータ",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
61,"《愛の忠臣》チュデルキン",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
62,"EXPチップ《テラ》",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
63,"ゴールド《テラ》",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
64,"EXPチップ《キロ》",,-1,-1,10002,1,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
65,"ゴールド《キロ》",,-1,-1,10002,1,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
66,"EXPメモリ",,-1,-1,10002,5,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
67,"プラチナ",,-1,-1,10002,5,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
68,"プロパティアペンド",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
69,"コードイレイサー:1",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
70,"コードイレイサー:2",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
71,"コードイレイサー:3",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
72,"コードイレイサー:4",,-1,-1,10002,3,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
73,"ヒーローレベルアペンド《1》",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
74,"ウェポンレベルアペンド《1》",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
75,"アクセサリレベルアペンド《1》",,-1,-1,10002,20,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",0
|
||||||
|
76,"ヴァーデュラス・アニマ",,-1,-1,10002,8,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",22
|
||||||
|
77,"ラディアント・ライト",,-1,-1,10002,8,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",21
|
||||||
|
78,"アニヒレート・レイ",,-1,-1,10002,8,-1,-1,False,0,0,0,0,0,"2020/07/14 7:00:00","2020/08/11 2:00:00",20
|
||||||
|
79,"《愛する人へ》アスナ",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",20
|
||||||
|
80,"《大切な家族》リーファ",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",19
|
||||||
|
81,"《強さを知って》シノン",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",18
|
||||||
|
82,"《この温度を君に》リズベット",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",17
|
||||||
|
83,"《今度はあたしが》シリカ",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",16
|
||||||
|
84,"《傍らの相棒》ユージオ",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",15
|
||||||
|
85,"EXPチップ《テラ》",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",12
|
||||||
|
86,"ゴールド《テラ》",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",9
|
||||||
|
87,"EXPチップ《キロ》",,-1,-1,10003,1,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",13
|
||||||
|
88,"ゴールド《キロ》",,-1,-1,10003,1,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",10
|
||||||
|
89,"EXPメモリ",,-1,-1,10003,5,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",11
|
||||||
|
90,"プラチナ",,-1,-1,10003,5,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",8
|
||||||
|
91,"プロパティアペンド",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",7
|
||||||
|
92,"コードイレイサー:1",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",6
|
||||||
|
93,"コードイレイサー:2",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",5
|
||||||
|
94,"コードイレイサー:3",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",4
|
||||||
|
95,"コードイレイサー:4",,-1,-1,10003,3,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",3
|
||||||
|
96,"ヒーローレベルアペンド《1》",,-1,-1,10003,20,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",2
|
||||||
|
97,"ウェポンレベルアペンド《1》",,-1,-1,10003,20,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",1
|
||||||
|
98,"アクセサリレベルアペンド《1》",,-1,-1,10003,20,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",0
|
||||||
|
99,"≪蒼穹を駆ける英傑≫ユウキ",,-1,-1,10003,6,-1,-1,False,0,0,0,0,0,"2020/08/11 7:00:00","2020/09/08 2:00:00",14
|
||||||
|
100,"《整合騎士長》ベルクーリ",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",20
|
||||||
|
101,"《天穿の光》ファナティオ",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",19
|
||||||
|
102,"《焔の弓騎士》デュソルバート",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",18
|
||||||
|
103,"《師への敬愛》エルドリエ",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",17
|
||||||
|
104,"《黒百合の一閃》シェータ",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",16
|
||||||
|
105,"《失くした片翼》レンリ",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",15
|
||||||
|
106,"EXPチップ《テラ》",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",12
|
||||||
|
107,"ゴールド《テラ》",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",9
|
||||||
|
108,"EXPチップ《キロ》",,-1,-1,10004,1,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",13
|
||||||
|
109,"ゴールド《キロ》",,-1,-1,10004,1,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",10
|
||||||
|
110,"EXPメモリ",,-1,-1,10004,5,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",11
|
||||||
|
111,"プラチナ",,-1,-1,10004,5,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",8
|
||||||
|
112,"プロパティアペンド",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",7
|
||||||
|
113,"コードイレイサー:1",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",6
|
||||||
|
114,"コードイレイサー:2",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",5
|
||||||
|
115,"コードイレイサー:3",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",4
|
||||||
|
116,"コードイレイサー:4",,-1,-1,10004,3,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",3
|
||||||
|
117,"ヒーローレベルアペンド《1》",,-1,-1,10004,20,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",2
|
||||||
|
118,"ウェポンレベルアペンド《1》",,-1,-1,10004,20,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",1
|
||||||
|
119,"アクセサリレベルアペンド《1》",,-1,-1,10004,20,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",0
|
||||||
|
120,"≪万天に通ずる鼠≫アルゴ",,-1,-1,10004,6,-1,-1,False,0,0,0,0,0,"2020/09/08 7:00:00","2020/10/13 2:00:00",14
|
||||||
|
121,"ヒーローコード:斬耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
122,"ヒーローコード:打耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
123,"ヒーローコード:突耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
124,"ヒーローコード:火耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
125,"ヒーローコード:水耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
126,"ヒーローコード:風耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
127,"ヒーローコード:土耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
128,"ヒーローコード:聖耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
129,"ヒーローコード:闇耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
130,"ヒーローコード:毒無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
131,"ヒーローコード:混乱無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
132,"ヒーローコード:封印無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
133,"ヒーローコード:地震無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2020/07/28 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
134,"≪君との内緒事≫ユウキ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/08/01 7:00:00","2020/10/01 2:00:00",1
|
||||||
|
135,"《金剛なる体躯》エギル",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/09/01 7:00:00","2020/11/01 2:00:00",2
|
||||||
|
136,"≪悪戯なオネーサン≫アルゴ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/09/01 7:00:00","2020/10/01 2:00:00",0
|
||||||
|
137,"≪赤面プラクティカ≫レイン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/10/01 7:00:00","2020/12/01 2:00:00",3
|
||||||
|
138,"≪想い馳せる窓辺≫キリト",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/10/01 7:00:00","2020/11/01 2:00:00",0
|
||||||
|
139,"《共に歩む時》キリト",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",26
|
||||||
|
140,"《立ち上がる時》アスナ",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",25
|
||||||
|
141,"《心繋がる時》リーファ",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",24
|
||||||
|
142,"《意志示す時》シノン",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",23
|
||||||
|
143,"《背中押す時》ユウキ",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",22
|
||||||
|
144,"《誇り高き騎士》アリス",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",21
|
||||||
|
145,"《姉想う祈り》セルカ",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",20
|
||||||
|
146,"《正しき道》ロニエ",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",19
|
||||||
|
147,"《受け継ぐ希望》ティーゼ",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",18
|
||||||
|
148,"《無邪気な毒牙》フィゼル",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",17
|
||||||
|
149,"《穏やかな殺戮》リネル",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",16
|
||||||
|
150,"《心通う邂逅》アリス",,-1,-1,10005,10,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",15
|
||||||
|
151,"《かの剣技の継承者》ユージオ",,-1,-1,10005,10,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",14
|
||||||
|
152,"EXPチップ《テラ》",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",12
|
||||||
|
153,"ゴールド《テラ》",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",9
|
||||||
|
154,"EXPチップ《キロ》",,-1,-1,10005,1,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",13
|
||||||
|
155,"ゴールド《キロ》",,-1,-1,10005,1,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",10
|
||||||
|
156,"EXPメモリ",,-1,-1,10005,5,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",11
|
||||||
|
157,"プラチナ",,-1,-1,10005,5,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",8
|
||||||
|
158,"プロパティアペンド",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",7
|
||||||
|
159,"コードイレイサー:1",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",6
|
||||||
|
160,"コードイレイサー:2",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",5
|
||||||
|
161,"コードイレイサー:3",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",4
|
||||||
|
162,"コードイレイサー:4",,-1,-1,10005,3,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",3
|
||||||
|
163,"ヒーローレベルアペンド《1》",,-1,-1,10005,20,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",2
|
||||||
|
164,"ウェポンレベルアペンド《1》",,-1,-1,10005,20,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",1
|
||||||
|
165,"アクセサリレベルアペンド《1》",,-1,-1,10005,20,-1,-1,False,0,0,0,0,0,"2020/10/20 7:00:00","2020/12/01 2:00:00",0
|
||||||
|
166,"《信頼の口付け》リズベット",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/11/01 7:00:00","2020/12/01 2:00:00",0
|
||||||
|
167,"《隠された素顔》アルゴ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/11/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
168,"《愛の誓い》アスナ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/12/01 7:00:00","2021/01/01 2:00:00",0
|
||||||
|
169,"《あどけない笑み》シリカ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2020/12/01 7:00:00","2021/02/01 2:00:00",0
|
||||||
|
170,"《奇想の相棒》ユージオ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/01/01 7:00:00","2021/02/01 2:00:00",0
|
||||||
|
171,"《光の巫女》アリス",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/01/01 7:00:00","2021/03/01 2:00:00",0
|
||||||
|
172,"《宙吊りプラント》シリカ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/02/01 7:00:00","2021/03/01 2:00:00",0
|
||||||
|
173,"《休剣の手入れ》ユージオ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/02/01 7:00:00","2021/04/01 2:00:00",0
|
||||||
|
174,"《疾風迅雷》シノン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/03/01 7:00:00","2021/04/01 2:00:00",0
|
||||||
|
175,"《勇猛な巨躯》エギル",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/03/01 7:00:00","2021/05/01 2:00:00",0
|
||||||
|
176,"《秘めた胸奥》リーファ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/04/01 7:00:00","2021/05/01 2:00:00",0
|
||||||
|
177,"《恋するお人形》リズベット",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/04/01 7:00:00","2021/06/01 2:00:00",0
|
||||||
|
178,"《固守の決意》アリス",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/05/01 7:00:00","2021/06/01 2:00:00",0
|
||||||
|
179,"《南風に吹かれて》リーファ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/05/01 7:00:00","2021/07/01 2:00:00",0
|
||||||
|
180,"《君との内緒事》ユウキ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/06/01 7:00:00","2021/07/01 2:00:00",0
|
||||||
|
181,"《妖精の決闘》キリト",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/06/01 7:00:00","2021/08/01 2:00:00",1
|
||||||
|
182,"《武人の少憩》クライン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/07/01 7:00:00","2021/08/01 2:00:00",0
|
||||||
|
183,"《おすわりリトル》ユウキ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/07/01 7:00:00","2021/09/01 2:00:00",2
|
||||||
|
184,"《金剛なる体躯》エギル",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/08/01 7:00:00","2021/09/01 2:00:00",0
|
||||||
|
185,"《胸躍る一歩》レイン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/08/01 7:00:00","2021/10/01 2:00:00",3
|
||||||
|
186,"《隠された素顔》アルゴ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/09/01 7:00:00","2021/10/01 2:00:00",0
|
||||||
|
187,"《水妖精の導き》アスナ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/09/01 7:00:00","2021/11/01 2:00:00",4
|
||||||
|
188,"《赤面プラクティカ》レイン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/10/01 7:00:00","2021/11/01 2:00:00",0
|
||||||
|
189,"《同朋の待望》シノン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/10/01 7:00:00","2021/12/01 2:00:00",5
|
||||||
|
190,"《あどけない笑み》シリカ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/11/01 7:00:00","2021/12/01 2:00:00",0
|
||||||
|
191,"《跳躍の托生》クライン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/11/01 7:00:00","2022/01/01 2:00:00",6
|
||||||
|
192,"《休剣の手入れ》ユージオ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/12/01 7:00:00","2022/01/01 2:00:00",7
|
||||||
|
193,"《物思い耽る午後》アリス",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2021/12/01 7:00:00","2022/01/01 2:00:00",8
|
||||||
|
194,"《想い馳せる窓辺》キリト",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/01/01 7:00:00","2022/02/01 2:00:00",9
|
||||||
|
195,"《光の巫女》アリス",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/01/01 7:00:00","2022/02/01 2:00:00",10
|
||||||
|
196,"《悪戯な視線》シノン",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/01/01 7:00:00","2022/02/01 2:00:00",11
|
||||||
|
197,"《悪戯なオネーサン》アルゴ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/02/01 7:00:00","2022/03/01 2:00:00",12
|
||||||
|
198,"《勇猛な巨躯》エギル",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/02/01 7:00:00","2022/03/01 2:00:00",13
|
||||||
|
199,"《花舞う昼下がり》ユージオ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/02/01 7:00:00","2022/03/01 2:00:00",14
|
||||||
|
200,"《愛の誓い》アスナ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/03/01 7:00:00","2022/04/01 2:00:00",15
|
||||||
|
201,"《恋するお人形》リズベット",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/03/01 7:00:00","2022/04/01 2:00:00",16
|
||||||
|
202,"《おやつ・タイム!》シリカ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/03/01 7:00:00","2022/04/01 2:00:00",17
|
||||||
|
203,"《信頼の口付け》リズベット",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/04/01 7:00:00","2022/05/01 2:00:00",18
|
||||||
|
204,"《妖精の決闘》キリト",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/04/01 7:00:00","2022/05/01 2:00:00",19
|
||||||
|
205,"《妖精の戯れ》リーファ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/04/01 7:00:00","2022/05/01 2:00:00",20
|
||||||
|
206,"《宙吊りプラント》シリカ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/05/01 7:00:00","2022/06/07 2:00:00",21
|
||||||
|
207,"《南風に吹かれて》リーファ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/05/01 7:00:00","2022/06/07 2:00:00",22
|
||||||
|
208,"《穏やかな一時》アスナ",,5,-1,0,-1,-1,-1,True,0,0,0,0,0,"2022/05/01 7:00:00","2022/06/07 2:00:00",23
|
||||||
|
5000,"《神域の双剣使い》キリト",,-1,-1,0,-1,5,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/03/08 2:00:00",99
|
||||||
|
5001,"《流麗なる剣士》アスナ",,-1,-1,0,-1,5,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/03/08 2:00:00",98
|
||||||
|
5002,"《反撃の烽火》リズベット",,-1,-1,0,-1,5,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/03/08 2:00:00",97
|
||||||
|
5003,"《神速の黒き閃光》ユウキ",,-1,-1,0,-1,5,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/06/07 2:00:00",96
|
||||||
|
5004,"《空島繋ぐ架け橋》レイン",,-1,-1,0,-1,5,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/06/07 2:00:00",95
|
||||||
|
5005,"《陽光香る笑み》アルゴ",,-1,-1,0,-1,5,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/06/07 2:00:00",94
|
||||||
|
10000,"《黒の剣士》キリト",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",37
|
||||||
|
10001,"《一条の閃光》アスナ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",36
|
||||||
|
10002,"《薫風の瞳》リーファ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",35
|
||||||
|
10003,"《冥界の女神》シノン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",34
|
||||||
|
10004,"《征野の刀工》リズベット",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",33
|
||||||
|
10005,"《可憐なる竜使い》シリカ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",32
|
||||||
|
10006,"《真朱の武人》クライン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",31
|
||||||
|
10007,"《剛腕の威風》エギル",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",30
|
||||||
|
10008,"《絶剣》ユウキ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",29
|
||||||
|
10009,"《香染の諜報者》アルゴ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",28
|
||||||
|
10010,"《人界の守り手》アリス",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",27
|
||||||
|
10011,"《精勤す修剣士》ユージオ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",26
|
||||||
|
10012,"《多刀流の使い手》レイン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2020/12/01 7:00:00","2021/12/14 2:00:00",25
|
||||||
|
10013,"ブラックプレート",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",24
|
||||||
|
10014,"エペ・ド・マルブル",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",23
|
||||||
|
10015,"エリュシデータ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",22
|
||||||
|
10016,"アロンダイト",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",21
|
||||||
|
10017,"スクレープ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",20
|
||||||
|
10018,"ムラマサ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",19
|
||||||
|
10019,"ヴィズィー・ガジェット",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",18
|
||||||
|
10020,"ヴェンデッタ",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",17
|
||||||
|
10021,"ジャイアント・タスク",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",16
|
||||||
|
10022,"フェイルノート",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",15
|
||||||
|
10023,"MEBRカスタム",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",14
|
||||||
|
10024,"スヴェル",,5,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",13
|
||||||
|
10025,"ヒーローコード:斬耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",12
|
||||||
|
10026,"ヒーローコード:打耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",11
|
||||||
|
10027,"ヒーローコード:突耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",10
|
||||||
|
10028,"ヒーローコード:火耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",9
|
||||||
|
10029,"ヒーローコード:水耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",8
|
||||||
|
10030,"ヒーローコード:風耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",7
|
||||||
|
10031,"ヒーローコード:土耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",6
|
||||||
|
10032,"ヒーローコード:聖耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",5
|
||||||
|
10033,"ヒーローコード:闇耐性",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",4
|
||||||
|
10034,"ヒーローコード:毒無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",3
|
||||||
|
10035,"ヒーローコード:混乱無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",2
|
||||||
|
10036,"ヒーローコード:封印無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",1
|
||||||
|
10037,"ヒーローコード:地震無効",,-1,200000,0,-1,-1,-1,False,0,0,0,0,0,"2021/01/01 7:00:00","2021/12/14 2:00:00",0
|
||||||
|
10038,"《黒の剣士》キリト",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",47
|
||||||
|
10039,"《一条の閃光》アスナ",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",46
|
||||||
|
10040,"《薫風の瞳》リーファ",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",45
|
||||||
|
10041,"《冥界の女神》シノン",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",44
|
||||||
|
10042,"《征野の刀工》リズベット",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",43
|
||||||
|
10043,"《可憐なる竜使い》シリカ",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",42
|
||||||
|
10044,"《真朱の武人》クライン",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",41
|
||||||
|
10045,"《剛腕の威風》エギル",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",40
|
||||||
|
10046,"《絶剣》ユウキ",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",39
|
||||||
|
10047,"《香染の諜報者》アルゴ",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",38
|
||||||
|
10048,"《人界の守り手》アリス",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",37
|
||||||
|
10049,"《精勤す修剣士》ユージオ",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",36
|
||||||
|
10050,"《多刀流の使い手》レイン",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",35
|
||||||
|
10051,"エリュシデータ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",34
|
||||||
|
10052,"アロンダイト",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",33
|
||||||
|
10053,"スクレープ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",32
|
||||||
|
10054,"ムラマサ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",31
|
||||||
|
10055,"ウィズィー・ガジェット",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",30
|
||||||
|
10056,"ヴェンデッタ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",29
|
||||||
|
10057,"ジャイアント・タスク",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",28
|
||||||
|
10058,"フェイルノート",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",27
|
||||||
|
10059,"MEBRマニアック",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",26
|
||||||
|
10060,"スヴェル",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",25
|
||||||
|
10061,"ブラックプレート",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",24
|
||||||
|
10062,"エペ・ド・マルブル",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",23
|
||||||
|
10063,"ヒーローコード:斬耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",22
|
||||||
|
10064,"ヒーローコード:打耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",21
|
||||||
|
10065,"ヒーローコード:突耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",20
|
||||||
|
10066,"ヒーローコード:火耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",19
|
||||||
|
10067,"ヒーローコード:水耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",18
|
||||||
|
10068,"ヒーローコード:風耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",17
|
||||||
|
10069,"ヒーローコード:土耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",16
|
||||||
|
10070,"ヒーローコード:聖耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",15
|
||||||
|
10071,"ヒーローコード:闇耐性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",14
|
||||||
|
10072,"ヒーローコード:毒無効",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",13
|
||||||
|
10073,"ヒーローコード:混乱無効",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",12
|
||||||
|
10074,"ヒーローコード:封印無効",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",11
|
||||||
|
10075,"ヒーローコード:地震無効",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",10
|
||||||
|
10076,"ウェポンコード:火属性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",9
|
||||||
|
10077,"ウェポンコード:水属性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",8
|
||||||
|
10078,"ウェポンコード:風属性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",7
|
||||||
|
10079,"ウェポンコード:土属性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",6
|
||||||
|
10080,"ウェポンコード:聖属性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",5
|
||||||
|
10081,"ウェポンコード:闇属性",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",4
|
||||||
|
10082,"ウェポンコード:毒",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",3
|
||||||
|
10083,"ウェポンコード:麻痺",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",2
|
||||||
|
10084,"ウェポンコード:混乱",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",1
|
||||||
|
10085,"ウェポンコード:封印",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/06/07 2:00:00",0
|
||||||
|
15000,"《想い馳せる窓辺》キリト",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",64
|
||||||
|
15001,"《妖精の決闘》キリト",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",63
|
||||||
|
15002,"《愛の誓い》アスナ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",62
|
||||||
|
15003,"《水妖精の導き》アスナ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",61
|
||||||
|
15004,"《秘めた胸奥》リーファ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",60
|
||||||
|
15005,"《南風に吹かれて》リーファ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",59
|
||||||
|
15006,"《疾風迅雷》シノン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",58
|
||||||
|
15007,"《同朋の待望》シノン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",57
|
||||||
|
15008,"《信頼の口付け》リズベット",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",56
|
||||||
|
15009,"《恋するお人形》リズベット",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",55
|
||||||
|
15010,"《宙吊りプラント》シリカ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",54
|
||||||
|
15011,"《あどけない笑み》シリカ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",53
|
||||||
|
15012,"《武人の少憩》クライン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",52
|
||||||
|
15013,"《跳躍の托生》クライン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",51
|
||||||
|
15014,"《金剛なる体躯》エギル",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",50
|
||||||
|
15015,"《勇猛な巨躯》エギル",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",49
|
||||||
|
15016,"《君との内緒事》ユウキ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",48
|
||||||
|
15017,"《おすわりリトル》ユウキ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",47
|
||||||
|
15018,"《悪戯なオネーサン》アルゴ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",46
|
||||||
|
15019,"《隠された素顔》アルゴ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",45
|
||||||
|
15020,"《固守の決意》アリス",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",44
|
||||||
|
15021,"《光の巫女》アリス",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",43
|
||||||
|
15022,"《奇想の相棒》ユージオ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",42
|
||||||
|
15023,"《休剣の手入れ》ユージオ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",41
|
||||||
|
15024,"《赤面プラクティカ》レイン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",40
|
||||||
|
15025,"《胸躍る一歩》レイン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",39
|
||||||
|
15026,"《安らぎの我が家》キリト",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",38
|
||||||
|
15027,"《穏やかな一時》アスナ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",37
|
||||||
|
15028,"《小径の花環》アスナ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",36
|
||||||
|
15029,"《妖精の戯れ》リーファ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",35
|
||||||
|
15030,"《寛ぎの我が家》リーファ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",34
|
||||||
|
15031,"《悪戯な視線》シノン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",33
|
||||||
|
15032,"《幸せの青い鳥》シノン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",32
|
||||||
|
15033,"《休日の談笑》リズベット",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",31
|
||||||
|
15034,"《約束の花束》リズベット",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",30
|
||||||
|
15035,"《おやつ・タイム!》シリカ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",29
|
||||||
|
15036,"《一輪の幼花》シリカ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",28
|
||||||
|
15037,"《さかさま花世界》ユウキ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",27
|
||||||
|
15038,"《秘密の甘邸》アルゴ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",26
|
||||||
|
15039,"《物思い耽る午後》アリス",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",25
|
||||||
|
15040,"《花舞う昼下がり》ユージオ",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",24
|
||||||
|
15041,"《晴天の君》レイン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",23
|
||||||
|
15042,"《虹架かる団らん》レイン",,-1,-1,0,-1,3,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",22
|
||||||
|
15043,"エリュシデータ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",21
|
||||||
|
15044,"アロンダイト",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",20
|
||||||
|
15045,"スクレープ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",19
|
||||||
|
15046,"ムラマサ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",18
|
||||||
|
15047,"ウィズィー・ガジェット",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",17
|
||||||
|
15048,"ヴェンデッタ",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",16
|
||||||
|
15049,"ジャイアント・タスク",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",15
|
||||||
|
15050,"フェイルノート",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",14
|
||||||
|
15051,"MEBRマニアック",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",13
|
||||||
|
15052,"スヴェル",,-1,-1,0,-1,2,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",12
|
||||||
|
15053,"プロパティアペンド",,-1,10000,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",8
|
||||||
|
15054,"コードイレイサー:1",,-1,10000,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",7
|
||||||
|
15055,"コードイレイサー:2",,-1,10000,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",6
|
||||||
|
15056,"コードイレイサー:3",,-1,10000,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",5
|
||||||
|
15057,"コードイレイサー:4",,-1,10000,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",4
|
||||||
|
15058,"EXPメモリ《グラン》",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",11
|
||||||
|
15059,"プラチナ《グラン》",,-1,-1,0,-1,1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",10
|
||||||
|
15060,"ヒーローレベルアペンド《1》",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",3
|
||||||
|
15061,"ウェポンレベルアペンド《1》",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",2
|
||||||
|
15062,"アクセサリレベルアペンド《1》",,1,-1,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",1
|
||||||
|
15063,"サンキューギフト",,10,-1,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",0
|
||||||
|
15064,"EXPメモリ",,-1,50000,0,-1,-1,-1,False,0,0,0,0,0,"2022/06/07 7:00:00","2030/01/01",9
|
||||||
|
202901,"《伝説の始まり》キリト",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",25
|
||||||
|
202902,"《閃光の救世主》アスナ",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",24
|
||||||
|
202903,"《世界を結ぶ》キリト",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",23
|
||||||
|
202904,"《永遠を共に》アスナ",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",22
|
||||||
|
202905,"《見通せぬ未来》アリス",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",21
|
||||||
|
202906,"《決意を秘めて》イーディス",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",20
|
||||||
|
202907,"《立ち向かう意志》ロニエ",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",19
|
||||||
|
202908,"《惑う心》ティーゼ",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",18
|
||||||
|
202909,"《薄青の精鋭》エントキア",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",17
|
||||||
|
202910,"《萌ゆる深緑》ネルギウス",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",16
|
||||||
|
202911,"《華綻ぶはにかみ》シノン",,-1,-1,10006,10,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",15
|
||||||
|
202912,"《咲き誇る技巧》スズネ",,-1,-1,10006,10,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",14
|
||||||
|
202913,"EXPチップ《テラ》",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",12
|
||||||
|
202914,"ゴールド《テラ》",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",9
|
||||||
|
202915,"EXPチップ《キロ》",,-1,-1,10006,1,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",13
|
||||||
|
202916,"ゴールド《キロ》",,-1,-1,10006,1,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",10
|
||||||
|
202917,"EXPメモリ",,-1,-1,10006,5,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",11
|
||||||
|
202918,"プラチナ",,-1,-1,10006,5,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",8
|
||||||
|
202919,"プロパティアペンド",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",7
|
||||||
|
202920,"コードイレイサー:1",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",6
|
||||||
|
202921,"コードイレイサー:2",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",5
|
||||||
|
202922,"コードイレイサー:3",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",4
|
||||||
|
202923,"コードイレイサー:4",,-1,-1,10006,3,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",3
|
||||||
|
202924,"ヒーローレベルアペンド《1》",,-1,-1,10006,20,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",2
|
||||||
|
202925,"ウェポンレベルアペンド《1》",,-1,-1,10006,20,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",1
|
||||||
|
202926,"アクセサリレベルアペンド《1》",,-1,-1,10006,20,-1,-1,False,0,0,0,0,0,"2020/12/08 7:00:00","2021/01/19 2:00:00",0
|
||||||
|
203001,"《男らしく見えて…》シノン",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",36
|
||||||
|
203002,"《温かな距離》リズベット",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",35
|
||||||
|
203003,"《目と目を合わせて》メディナ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",34
|
||||||
|
203004,"《幼妹の添寝》セルカ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",33
|
||||||
|
203005,"《人との接し方》シェータ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",32
|
||||||
|
203006,"《夜空に煌く星》キリト",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",31
|
||||||
|
203007,"《死の天使》サトライザー",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",30
|
||||||
|
203008,"《女神の笑顔》アスナ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",29
|
||||||
|
203009,"《再生の花》シリカ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",28
|
||||||
|
203010,"《憩いの場》サチ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",27
|
||||||
|
203011,"《まごころショコラティエ》ユウキ",,-1,-1,10007,10,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",26
|
||||||
|
203012,"《愛受のはにかみ》キリト",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",25
|
||||||
|
203013,"《甘い贈り物》アスナ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",24
|
||||||
|
203014,"《恋慕の微笑》リーファ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",23
|
||||||
|
203015,"《静穏の秘め事》シノン",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",22
|
||||||
|
203016,"《親愛の鍛冶屋》リズベット",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",21
|
||||||
|
203017,"《純情な恋路》シリカ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",20
|
||||||
|
203018,"《歓喜の照笑》クライン",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",19
|
||||||
|
203019,"《義理堅い甘露》エギル",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",18
|
||||||
|
203020,"《純粋な愛情》ユウキ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",17
|
||||||
|
203021,"《秘密の贈り物》アルゴ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",16
|
||||||
|
203022,"《裏腹な恋心》アリス",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",15
|
||||||
|
203023,"《心届く笑顔》ユージオ",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",14
|
||||||
|
203024,"《繋ぐ想い》レイン",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",37
|
||||||
|
203025,"EXPチップ《テラ》",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",13
|
||||||
|
203026,"ゴールド《テラ》",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",12
|
||||||
|
203027,"EXPチップ《キロ》",,-1,-1,10007,1,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",11
|
||||||
|
203028,"ゴールド《キロ》",,-1,-1,10007,1,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",10
|
||||||
|
203029,"EXPメモリ",,-1,-1,10007,5,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",9
|
||||||
|
203030,"プラチナ",,-1,-1,10007,5,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",8
|
||||||
|
203031,"プロパティアペンド",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",7
|
||||||
|
203032,"コードイレイサー:1",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",6
|
||||||
|
203033,"コードイレイサー:2",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",5
|
||||||
|
203034,"コードイレイサー:3",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",4
|
||||||
|
203035,"コードイレイサー:4",,-1,-1,10007,3,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",3
|
||||||
|
203036,"ヒーローレベルアペンド《1》",,-1,-1,10007,20,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",2
|
||||||
|
203037,"ウェポンレベルアペンド《1》",,-1,-1,10007,20,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",1
|
||||||
|
203038,"アクセサリレベルアペンド《1》",,-1,-1,10007,20,-1,-1,False,0,0,0,0,0,"2021/02/02 7:00:00","2021/03/23 2:00:00",0
|
||||||
|
203201,"《抱きしめ幼愛》シリカ",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",25
|
||||||
|
203202,"《折り重なる感情》アリス",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",24
|
||||||
|
203203,"《憧れの先輩と》ロニエ",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",23
|
||||||
|
203204,"《悪戯な捕食者》フィゼル&リネル",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",22
|
||||||
|
203205,"《坊やの傍ら》ファナティオ",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",21
|
||||||
|
203206,"《攻略の最前線へ》アスナ",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",20
|
||||||
|
203207,"《切り拓く弾道》シノン",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",19
|
||||||
|
203208,"《浮遊城の救世主》キリト",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",18
|
||||||
|
203209,"《華麗なる妖精》リーファ",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",17
|
||||||
|
203210,"《鍛冶屋の恋心》リズベット",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",16
|
||||||
|
203211,"《異界の女神》アスナ",,-1,-1,10008,10,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",15
|
||||||
|
203213,"EXPチップ《キロ》",,-1,-1,10008,1,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",13
|
||||||
|
203214,"EXPチップ《テラ》",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",12
|
||||||
|
203215,"EXPメモリ",,-1,-1,10008,5,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",11
|
||||||
|
203216,"ゴールド《キロ》",,-1,-1,10008,1,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",10
|
||||||
|
203217,"ゴールド《テラ》",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",9
|
||||||
|
203218,"プラチナ",,-1,-1,10008,5,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",8
|
||||||
|
203219,"プロパティアペンド",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",7
|
||||||
|
203220,"コードイレイサー:1",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",6
|
||||||
|
203221,"コードイレイサー:2",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",5
|
||||||
|
203222,"コードイレイサー:3",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",4
|
||||||
|
203223,"コードイレイサー:4",,-1,-1,10008,3,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",3
|
||||||
|
203224,"ヒーローレベルアペンド《1》",,-1,-1,10008,20,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",2
|
||||||
|
203225,"ウェポンレベルアペンド《1》",,-1,-1,10008,20,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",1
|
||||||
|
203226,"アクセサリレベルアペンド《1》",,-1,-1,10008,20,-1,-1,False,0,0,0,0,0,"2021/03/30 7:00:00","2021/04/27 2:00:00",0
|
||||||
|
203301,"《愛情の眼差し》アスナ",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",25
|
||||||
|
203302,"《親愛なる兄と》リーファ",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",24
|
||||||
|
203303,"《尊敬する先輩》ティーゼ",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",23
|
||||||
|
203304,"《流麗なる華》ソルティリーナ",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",22
|
||||||
|
203305,"《内に潜む想い》カーディナル",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",21
|
||||||
|
203306,"《寄り添う親友》ユージオ",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",20
|
||||||
|
203307,"《剣に宿る絆》キリト",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",19
|
||||||
|
203308,"《ショート・ブレイク》シノン",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",18
|
||||||
|
203309,"《剣姫の願い》ユウキ",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",17
|
||||||
|
203310,"《栁絮の守護》コハル",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",16
|
||||||
|
203312,"《マスターの贈り物》リコ",,-1,-1,10009,10,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",14
|
||||||
|
203313,"EXPチップ《キロ》",,-1,-1,10009,1,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",13
|
||||||
|
203314,"EXPチップ《テラ》",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",12
|
||||||
|
203315,"EXPメモリ",,-1,-1,10009,5,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",11
|
||||||
|
203316,"ゴールド《キロ》",,-1,-1,10009,1,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",10
|
||||||
|
203317,"ゴールド《テラ》",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",9
|
||||||
|
203318,"プラチナ",,-1,-1,10009,5,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",8
|
||||||
|
203319,"プロパティアペンド",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",7
|
||||||
|
203320,"コードイレイサー:1",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",6
|
||||||
|
203321,"コードイレイサー:2",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",5
|
||||||
|
203322,"コードイレイサー:3",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",4
|
||||||
|
203323,"コードイレイサー:4",,-1,-1,10009,3,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",3
|
||||||
|
203324,"ヒーローレベルアペンド《1》",,-1,-1,10009,20,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",2
|
||||||
|
203325,"ウェポンレベルアペンド《1》",,-1,-1,10009,20,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",1
|
||||||
|
203326,"アクセサリレベルアペンド《1》",,-1,-1,10009,20,-1,-1,False,0,0,0,0,0,"2021/04/27 7:00:00","2021/06/08 2:00:00",0
|
||||||
|
203501,"《真》インフィニティ・モーメント",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",31
|
||||||
|
203502,"《裏》ホロウ・フラグメント",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",30
|
||||||
|
203503,"《絆》ロスト・ソング",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",29
|
||||||
|
203504,"《心》ホロウ・リアリゼーション",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",28
|
||||||
|
203505,"《銃》フェイタル・バレット",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",27
|
||||||
|
203506,"《抱きしめ幼愛》シリカ",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",26
|
||||||
|
203507,"《折り重なる感情》アリス",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",25
|
||||||
|
203508,"《憧れの先輩と》ロニエ",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",24
|
||||||
|
203509,"《悪戯な捕食者》フィゼル&リネル",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",23
|
||||||
|
203510,"《坊やの傍ら》ファナティオ",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",22
|
||||||
|
203511,"《攻略の最前線へ》アスナ",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",21
|
||||||
|
203512,"《切り拓く弾道》シノン",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",20
|
||||||
|
203513,"《浮遊城の救世主》キリト",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",19
|
||||||
|
203514,"《華麗なる妖精》リーファ",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",18
|
||||||
|
203515,"《鍛冶屋の恋心》リズベット",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",17
|
||||||
|
203516,"《クロス・イメージ》キリト",,-1,-1,10010,10,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",16
|
||||||
|
203517,"《ふたとせ廻りて》アリス",,-1,-1,10010,10,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",15
|
||||||
|
203518,"《異界の女神》アスナ",,-1,-1,10010,10,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",14
|
||||||
|
203519,"EXPチップ《キロ》",,-1,-1,10010,1,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",13
|
||||||
|
203520,"EXPチップ《テラ》",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",12
|
||||||
|
203521,"EXPメモリ",,-1,-1,10010,5,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",11
|
||||||
|
203522,"ゴールド《キロ》",,-1,-1,10010,1,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",10
|
||||||
|
203523,"ゴールド《テラ》",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",9
|
||||||
|
203524,"プラチナ",,-1,-1,10010,5,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",8
|
||||||
|
203525,"プロパティアペンド",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",7
|
||||||
|
203526,"コードイレイサー:1",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",6
|
||||||
|
203527,"コードイレイサー:2",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",5
|
||||||
|
203528,"コードイレイサー:3",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",4
|
||||||
|
203529,"コードイレイサー:4",,-1,-1,10010,3,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",3
|
||||||
|
203530,"ヒーローレベルアペンド《1》",,-1,-1,10010,20,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",2
|
||||||
|
203531,"ウェポンレベルアペンド《1》",,-1,-1,10010,20,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",1
|
||||||
|
203532,"アクセサリレベルアペンド《1》",,-1,-1,10010,20,-1,-1,False,0,0,0,0,0,"2021/06/08 7:00:00","2021/07/27 2:00:00",0
|
||||||
|
203601,"《スイカ・サースト》アスナ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",42
|
||||||
|
203602,"《スイカ・ストライク》リズベット",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",41
|
||||||
|
203603,"《不可避の魔球》エギル",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",40
|
||||||
|
203604,"《スイカ・セーバー》アリス",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",39
|
||||||
|
203605,"《空砲に駆けて》サチ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",38
|
||||||
|
203606,"《湖上の大輪》リーファ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",37
|
||||||
|
203607,"《海中散策》アスナ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",36
|
||||||
|
203608,"《海上遊歩》リズベット",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",35
|
||||||
|
203609,"《海飛沫ガード》ロニエ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",34
|
||||||
|
203610,"《海飛沫アタック》ティーゼ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",33
|
||||||
|
203611,"《灼熱!アタックガール》リーファ",,-1,-1,10011,10,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",32
|
||||||
|
203612,"《私の現実》シノン",,-1,-1,10011,10,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",31
|
||||||
|
203613,"《マスターの贈り物》リコ",,-1,-1,10011,10,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",30
|
||||||
|
203614,"《異世界の英雄》キリト",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",29
|
||||||
|
203615,"《彼岸花の君》メディナ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",28
|
||||||
|
203616,"《柔靭なる剣士》ソルティリーナ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",27
|
||||||
|
203617,"《図書室の賢者》カーディナル",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",26
|
||||||
|
203618,"《絶対的支配者》アドミニストレータ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",25
|
||||||
|
203619,"《愛の忠臣》チュデルキン",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",24
|
||||||
|
203620,"《愛情の眼差し》アスナ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",23
|
||||||
|
203621,"《親愛なる兄と》リーファ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",22
|
||||||
|
203622,"《尊敬する先輩》ティーゼ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",21
|
||||||
|
203623,"《流麗なる華》ソルティリーナ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",20
|
||||||
|
203624,"《内に潜む想い》カーディナル",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",19
|
||||||
|
203625,"《寄り添う親友》ユージオ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",18
|
||||||
|
203626,"《剣に宿る絆》キリト",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",17
|
||||||
|
203627,"《ショート・ブレイク》シノン",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",16
|
||||||
|
203628,"《剣姫の願い》ユウキ",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",15
|
||||||
|
203629,"《栁絮の守護》コハル",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",14
|
||||||
|
203630,"EXPチップ《キロ》",,-1,-1,10011,1,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",13
|
||||||
|
203631,"EXPチップ《テラ》",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",12
|
||||||
|
203632,"EXPメモリ",,-1,-1,10011,5,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",11
|
||||||
|
203633,"ゴールド《キロ》",,-1,-1,10011,1,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",10
|
||||||
|
203634,"ゴールド《テラ》",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",9
|
||||||
|
203635,"プラチナ",,-1,-1,10011,5,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",8
|
||||||
|
203636,"プロパティアペンド",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",7
|
||||||
|
203637,"コードイレイサー:1",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",6
|
||||||
|
203638,"コードイレイサー:2",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",5
|
||||||
|
203639,"コードイレイサー:3",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",4
|
||||||
|
203640,"コードイレイサー:4",,-1,-1,10011,3,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",3
|
||||||
|
203641,"ヒーローレベルアペンド《1》",,-1,-1,10011,20,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",2
|
||||||
|
203642,"ウェポンレベルアペンド《1》",,-1,-1,10011,20,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",1
|
||||||
|
203643,"アクセサリレベルアペンド《1》",,-1,-1,10011,20,-1,-1,False,0,0,0,0,0,"2021/07/27 7:00:00","2021/09/28 2:00:00",0
|
||||||
|
203701,"BET:アスナ",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",33
|
||||||
|
203702,"BET:リーファ",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",32
|
||||||
|
203703,"BET:シノン",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",31
|
||||||
|
203704,"BET:シリカ",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",30
|
||||||
|
203705,"BET:アリス",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",29
|
||||||
|
203706,"《心弛の寝息》リーファ",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",28
|
||||||
|
203707,"《安堵の就眠》シノン",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",27
|
||||||
|
203708,"《ご馳走ドリーム》セブン",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",26
|
||||||
|
203709,"《胸の旋律》レイン",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",25
|
||||||
|
203710,"《和みの理趣》プレミア",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",24
|
||||||
|
203711,"《慥かな腕枕》ティア",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",23
|
||||||
|
203712,"《兎の歓待》リズベット&シリカ",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",22
|
||||||
|
203713,"《博打ごっこ》ストレア",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",21
|
||||||
|
203714,"《0と1の狭間で》シリカ",,-1,-1,10012,10,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",20
|
||||||
|
203715,"《愛する人へ》アスナ",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",19
|
||||||
|
203716,"《大切な家族》リーファ",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",18
|
||||||
|
203717,"《強さを知って》シノン",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",17
|
||||||
|
203718,"《この温度を君に》リズベット",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",16
|
||||||
|
203719,"《今度はあたしが》シリカ",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",15
|
||||||
|
203720,"《傍らの相棒》ユージオ",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",14
|
||||||
|
203721,"EXPチップ《キロ》",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",13
|
||||||
|
203722,"EXPチップ《テラ》",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",12
|
||||||
|
203723,"EXPメモリ",,-1,-1,10012,5,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",11
|
||||||
|
203724,"ゴールド《キロ》",,-1,-1,10012,1,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",10
|
||||||
|
203725,"ゴールド《テラ》",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",9
|
||||||
|
203726,"プラチナ",,-1,-1,10012,5,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",8
|
||||||
|
203727,"プロパティアペンド",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",7
|
||||||
|
203728,"コードイレイサー:1",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",6
|
||||||
|
203729,"コードイレイサー:2",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",5
|
||||||
|
203730,"コードイレイサー:3",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",4
|
||||||
|
203731,"コードイレイサー:4",,-1,-1,10012,3,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",3
|
||||||
|
203732,"ヒーローレベルアペンド《1》",,-1,-1,10012,20,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",2
|
||||||
|
203733,"ウェポンレベルアペンド《1》",,-1,-1,10012,20,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",1
|
||||||
|
203734,"アクセサリレベルアペンド《1》",,-1,-1,10012,20,-1,-1,False,0,0,0,0,0,"2021/09/28 7:00:00","2021/11/02 2:00:00",0
|
||||||
|
203801,"《深まる夜》アスナ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",28
|
||||||
|
203802,"《消えゆく憂心》リズベット",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",27
|
||||||
|
203803,"《抱擁の慕情》シリカ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",26
|
||||||
|
203804,"《たまゆらの逢瀬》アルゴ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",25
|
||||||
|
203805,"《溶融の招》キズメル",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",24
|
||||||
|
203806,"《泡沫の安臥》サチ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",23
|
||||||
|
203807,"《打ち明ける閨》エイジ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",22
|
||||||
|
203808,"《浮きたつ真意》ユナ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",21
|
||||||
|
203809,"《変わらないもの》リズベット",,-1,-1,10013,10,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",20
|
||||||
|
203810,"《整合騎士長》ベルクーリ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",19
|
||||||
|
203811,"《天穿の光》ファナティオ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",18
|
||||||
|
203812,"《焔の弓騎士》デュソルバート",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",17
|
||||||
|
203813,"《師への敬愛》エルドリエ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",16
|
||||||
|
203814,"《黒百合の一閃》シェータ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",15
|
||||||
|
203815,"《失くした片翼》レンリ",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",14
|
||||||
|
203816,"EXPチップ《キロ》",,-1,-1,10013,1,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",13
|
||||||
|
203817,"EXPチップ《テラ》",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",12
|
||||||
|
203818,"EXPメモリ",,-1,-1,10013,5,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",11
|
||||||
|
203819,"ゴールド《キロ》",,-1,-1,10013,1,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",10
|
||||||
|
203820,"ゴールド《テラ》",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",9
|
||||||
|
203821,"プラチナ",,-1,-1,10013,5,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",8
|
||||||
|
203822,"プロパティアペンド",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",7
|
||||||
|
203823,"コードイレイサー:1",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",6
|
||||||
|
203824,"コードイレイサー:2",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",5
|
||||||
|
203825,"コードイレイサー:3",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",4
|
||||||
|
203826,"コードイレイサー:4",,-1,-1,10013,3,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",3
|
||||||
|
203827,"ヒーローレベルアペンド《1》",,-1,-1,10013,20,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",2
|
||||||
|
203828,"ウェポンレベルアペンド《1》",,-1,-1,10013,20,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",1
|
||||||
|
203829,"アクセサリレベルアペンド《1》",,-1,-1,10013,20,-1,-1,False,0,0,0,0,0,"2021/11/02 7:00:00","2021/12/14 2:00:00",0
|
||||||
|
204001,"《聖夜は白く》アスナ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",51
|
||||||
|
204002,"《想望の家路》リーファ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",50
|
||||||
|
204003,"《宿り木の下で》シノン",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",49
|
||||||
|
204004,"《星に願いを》アリス",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",48
|
||||||
|
204005,"《駈走る雪空》ユージオ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",47
|
||||||
|
204006,"《共に歩む時》キリト",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",46
|
||||||
|
204007,"《立ち上がる時》アスナ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",45
|
||||||
|
204008,"《心繋がる時》リーファ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",44
|
||||||
|
204009,"《意志示す時》シノン",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",43
|
||||||
|
204010,"《背中押す時》ユウキ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",42
|
||||||
|
204011,"《蒼穹を駆ける英傑》ユウキ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",41
|
||||||
|
204012,"《万天に通ずる鼠》アルゴ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",40
|
||||||
|
204013,"《心通う邂逅》アリス",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",39
|
||||||
|
204014,"《かの剣技の継承者》ユージオ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",38
|
||||||
|
204015,"《華綻ぶはにかみ》シノン",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",37
|
||||||
|
204016,"《サンタさん大作戦!》ユウキ",,-1,-1,10014,10,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",36
|
||||||
|
204017,"《誇り高き騎士》アリス",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",35
|
||||||
|
204018,"《姉想う祈り》セルカ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",34
|
||||||
|
204019,"《正しき道》ロニエ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",33
|
||||||
|
204020,"《受け継ぐ希望》ティーゼ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",32
|
||||||
|
204021,"《無邪気な毒牙》フィゼル",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",31
|
||||||
|
204022,"《穏やかな殺戮》リネル",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",30
|
||||||
|
204023,"《咲き誇る技巧》スズネ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",29
|
||||||
|
204024,"《攻略者憩う店》テリア",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",28
|
||||||
|
204025,"《無邪気な愛》ストレア",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",27
|
||||||
|
204026,"《宝物はここに》フィリア",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",26
|
||||||
|
204027,"《七色の夢》レイン",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",25
|
||||||
|
204028,"《真の繋がり》セブン",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",24
|
||||||
|
204029,"《芽吹きの時》プレミア",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",23
|
||||||
|
204030,"《私の証明》クレハ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",22
|
||||||
|
204031,"《無冠の女王》ツェリスカ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",21
|
||||||
|
204032,"《特別な存在》イツキ",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",20
|
||||||
|
204033,"《踏み出す一歩》コハル",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",19
|
||||||
|
204034,"EXPチップ《キロ》",,-1,-1,10014,1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",18
|
||||||
|
204035,"EXPチップ《テラ》",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",17
|
||||||
|
204036,"EXPメモリ",,-1,-1,10014,5,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",16
|
||||||
|
204037,"ゴールド《キロ》",,-1,-1,10014,1,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",15
|
||||||
|
204038,"ゴールド《テラ》",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",14
|
||||||
|
204039,"プラチナ",,-1,-1,10014,5,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",13
|
||||||
|
204040,"プロパティアペンド",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",12
|
||||||
|
204041,"コードイレイサー:1",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",11
|
||||||
|
204042,"コードイレイサー:2",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",10
|
||||||
|
204043,"コードイレイサー:3",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",9
|
||||||
|
204044,"コードイレイサー:4",,-1,-1,10014,3,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",8
|
||||||
|
204045,"ウェポンコード:ボスキラー",,-1,-1,10014,10,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",7
|
||||||
|
204046,"ウェポンコード:Mobキラー",,-1,-1,10014,10,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",6
|
||||||
|
204047,"ウェポンコード:HP最大時強化",,-1,-1,10014,10,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",5
|
||||||
|
204048,"ウェポンコード:HP低下時強化",,-1,-1,10014,10,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",4
|
||||||
|
204049,"ウェポンコード:弱点攻撃強化",,-1,-1,10014,10,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",3
|
||||||
|
204050,"ヒーローレベルアペンド《1》",,-1,-1,10014,20,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",2
|
||||||
|
204051,"ウェポンレベルアペンド《1》",,-1,-1,10014,20,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",1
|
||||||
|
204052,"アクセサリレベルアペンド《1》",,-1,-1,10014,20,-1,-1,False,0,0,0,0,0,"2021/12/14 7:00:00","2022/01/25 2:00:00",0
|
||||||
|
204101,"《寧静の眠り》ユウキ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",46
|
||||||
|
204102,"《高まる体温》アリス",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",45
|
||||||
|
204103,"《分け合う心》ユージオ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",44
|
||||||
|
204104,"《癒しの懐抱》ストレア",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",43
|
||||||
|
204105,"《臥房の什宝》フィリア",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",42
|
||||||
|
204106,"《夢の浮橋》イツキ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",41
|
||||||
|
204107,"《浮雲の温度》ツェリスカ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",40
|
||||||
|
204108,"《色葉散らず》クレハ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",39
|
||||||
|
204109,"《いとしのショコラティエ》アスナ",,-1,-1,10015,10,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",38
|
||||||
|
204110,"《まごころショコラティエ》ユウキ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",37
|
||||||
|
204111,"《伝説の始まり》キリト",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",36
|
||||||
|
204112,"《閃光の救世主》アスナ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",35
|
||||||
|
204113,"《愛受のはにかみ》キリト",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",34
|
||||||
|
204114,"《甘い贈り物》アスナ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",33
|
||||||
|
204115,"《恋慕の微笑》リーファ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",32
|
||||||
|
204116,"《静穏の秘め事》シノン",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",31
|
||||||
|
204117,"《親愛の鍛冶屋》リズベット",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",30
|
||||||
|
204118,"《純情な恋路》シリカ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",29
|
||||||
|
204119,"《歓喜の照笑》クライン",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",28
|
||||||
|
204120,"《義理堅い甘露》エギル",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",27
|
||||||
|
204121,"《純粋な愛情》ユウキ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",26
|
||||||
|
204122,"《秘密の贈り物》アルゴ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",25
|
||||||
|
204123,"《裏腹な恋心》アリス",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",24
|
||||||
|
204124,"《心届く笑顔》ユージオ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",23
|
||||||
|
204125,"《繋ぐ想い》レイン",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",22
|
||||||
|
204126,"《世界を結ぶ》キリト",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",21
|
||||||
|
204127,"《永遠を共に》アスナ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",20
|
||||||
|
204128,"《見通せぬ未来》アリス",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",19
|
||||||
|
204129,"《決意を秘めて》イーディス",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",18
|
||||||
|
204130,"《立ち向かう意志》ロニエ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",17
|
||||||
|
204131,"《惑う心》ティーゼ",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",16
|
||||||
|
204132,"《薄青の精鋭》エントキア",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",15
|
||||||
|
204133,"《萌ゆる深緑》ネルギウス",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",14
|
||||||
|
204134,"EXPチップ《キロ》",,-1,-1,10015,1,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",13
|
||||||
|
204135,"EXPチップ《テラ》",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",12
|
||||||
|
204136,"EXPメモリ",,-1,-1,10015,5,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",11
|
||||||
|
204137,"ゴールド《キロ》",,-1,-1,10015,1,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",10
|
||||||
|
204138,"ゴールド《テラ》",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",9
|
||||||
|
204139,"プラチナ",,-1,-1,10015,5,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",8
|
||||||
|
204140,"プロパティアペンド",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",7
|
||||||
|
204141,"コードイレイサー:1",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",6
|
||||||
|
204142,"コードイレイサー:2",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",5
|
||||||
|
204143,"コードイレイサー:3",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",4
|
||||||
|
204144,"コードイレイサー:4",,-1,-1,10015,3,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",3
|
||||||
|
204145,"ヒーローレベルアペンド《1》",,-1,-1,10015,20,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",2
|
||||||
|
204146,"ウェポンレベルアペンド《1》",,-1,-1,10015,20,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",1
|
||||||
|
204147,"アクセサリレベルアペンド《1》",,-1,-1,10015,20,-1,-1,False,0,0,0,0,0,"2022/01/25 7:00:00","2022/03/08 2:00:00",0
|
||||||
|
204201,"《受け止める軌跡》キリト",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",38
|
||||||
|
204202,"《見つめる軌跡》アスナ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",37
|
||||||
|
204203,"《信じきる軌跡》リーファ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",36
|
||||||
|
204204,"《向き合う軌跡》シノン",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",35
|
||||||
|
204205,"《確かめる軌跡》ユウキ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",34
|
||||||
|
204206,"《思い返す軌跡》アリス",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",33
|
||||||
|
204207,"《安眠の廉》リズベット",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",32
|
||||||
|
204208,"《守られる吉夢》シリカ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",31
|
||||||
|
204209,"《開かれる愁眉》ストレア",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",30
|
||||||
|
204210,"《安らぎの香》フィリア",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",29
|
||||||
|
204211,"《聞き澄ます愛吟》セブン",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",28
|
||||||
|
204212,"《傾慕の子守歌》レイン",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",27
|
||||||
|
204213,"《受ける薫陶》プレミア",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",26
|
||||||
|
204214,"《異界の女神》アスナ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",25
|
||||||
|
204215,"《マスターの贈り物》リコ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",24
|
||||||
|
204216,"《男らしく見えて…》シノン",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",23
|
||||||
|
204217,"《温かな距離》リズベット",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",22
|
||||||
|
204218,"《目と目を合わせて》メディナ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",21
|
||||||
|
204219,"《幼妹の添寝》セルカ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",20
|
||||||
|
204220,"《人との接し方》シェータ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",19
|
||||||
|
204221,"《夜空に煌く星》キリト",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",18
|
||||||
|
204222,"《死の天使》サトライザー",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",17
|
||||||
|
204223,"《女神の笑顔》アスナ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",16
|
||||||
|
204224,"《再生の花》シリカ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",15
|
||||||
|
204225,"《憩いの場》サチ",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",14
|
||||||
|
204226,"EXPチップ《キロ》",,-1,-1,10016,1,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",13
|
||||||
|
204227,"EXPチップ《テラ》",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",12
|
||||||
|
204228,"EXPメモリ",,-1,-1,10016,5,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",11
|
||||||
|
204229,"ゴールド《キロ》",,-1,-1,10016,1,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",10
|
||||||
|
204230,"ゴールド《テラ》",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",9
|
||||||
|
204231,"プラチナ",,-1,-1,10016,5,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",8
|
||||||
|
204232,"プロパティアペンド",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",7
|
||||||
|
204233,"コードイレイサー:1",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",6
|
||||||
|
204234,"コードイレイサー:2",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",5
|
||||||
|
204235,"コードイレイサー:3",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",4
|
||||||
|
204236,"コードイレイサー:4",,-1,-1,10016,3,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",3
|
||||||
|
204237,"ヒーローレベルアペンド《1》",,-1,-1,10016,20,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",2
|
||||||
|
204238,"ウェポンレベルアペンド《1》",,-1,-1,10016,20,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",1
|
||||||
|
204239,"アクセサリレベルアペンド《1》",,-1,-1,10016,20,-1,-1,False,0,0,0,0,0,"2022/03/08 7:00:00","2022/04/26 2:00:00",0
|
||||||
|
204301,"《目配せのしとね》アスナ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",32
|
||||||
|
204302,"《不壊の縁故》リーファ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",31
|
||||||
|
204303,"《解きほぐす内心》シノン",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",30
|
||||||
|
204304,"《東雲の契り》ユウキ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",29
|
||||||
|
204305,"《密かな処方》アルゴ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",28
|
||||||
|
204306,"《二人寝は繁く》アリス",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",27
|
||||||
|
204307,"《追懐の夜語り》ユージオ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",26
|
||||||
|
204308,"《クロス・イメージ》キリト",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",25
|
||||||
|
204309,"《私の現実》シノン",,-1,-1,10017,10,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",24
|
||||||
|
204310,"《抱きしめ幼愛》シリカ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",23
|
||||||
|
204311,"《折り重なる感情》アリス",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",22
|
||||||
|
204312,"《憧れの先輩と》ロニエ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",21
|
||||||
|
204313,"《悪戯な捕食者》フィゼル&リネル",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",20
|
||||||
|
204314,"《坊やの傍ら》ファナティオ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",19
|
||||||
|
204315,"《攻略の最前線へ》アスナ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",18
|
||||||
|
204316,"《切り拓く弾道》シノン",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",17
|
||||||
|
204317,"《浮遊城の救世主》キリト",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",16
|
||||||
|
204318,"《華麗なる妖精》リーファ",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",15
|
||||||
|
204319,"《鍛冶屋の恋心》リズベット",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",14
|
||||||
|
204320,"EXPチップ《キロ》",,-1,-1,10017,1,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",13
|
||||||
|
204321,"EXPチップ《テラ》",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",12
|
||||||
|
204322,"EXPメモリ",,-1,-1,10017,5,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",11
|
||||||
|
204323,"ゴールド《キロ》",,-1,-1,10017,1,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",10
|
||||||
|
204324,"ゴールド《テラ》",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",9
|
||||||
|
204325,"プラチナ",,-1,-1,10017,5,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",8
|
||||||
|
204326,"プロパティアペンド",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",7
|
||||||
|
204327,"コードイレイサー:1",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",6
|
||||||
|
204328,"コードイレイサー:2",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",5
|
||||||
|
204329,"コードイレイサー:3",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",4
|
||||||
|
204330,"コードイレイサー:4",,-1,-1,10017,3,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",3
|
||||||
|
204331,"ヒーローレベルアペンド《1》",,-1,-1,10017,20,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",2
|
||||||
|
204332,"ウェポンレベルアペンド《1》",,-1,-1,10017,20,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",1
|
||||||
|
204333,"アクセサリレベルアペンド《1》",,-1,-1,10017,20,-1,-1,False,0,0,0,0,0,"2022/04/26 7:00:00","2022/06/07 2:00:00",0
|
|
@ -3095,3 +3095,138 @@ class TrialTowerPlayEndUnanalyzedLogFixed(SaoBaseRequest):
|
|||||||
|
|
||||||
self.rarity_up_exec_flag = decode_byte(data, off)
|
self.rarity_up_exec_flag = decode_byte(data, off)
|
||||||
off += BYTE_OFF
|
off += BYTE_OFF
|
||||||
|
|
||||||
|
class GetShopResourceSalesDataListRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
off = 0
|
||||||
|
user_id = decode_str(data, off)
|
||||||
|
self.user_id = user_id[0]
|
||||||
|
off += user_id[1]
|
||||||
|
|
||||||
|
class GetShopResourceSalesDataListResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.shop_resource_sales_data: List[ShopResourceSalesData] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.shop_resource_sales_data)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
|
||||||
|
class GetYuiMedalShopUserDataListRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
off = 0
|
||||||
|
user_id = decode_str(data, off)
|
||||||
|
self.user_id = user_id[0]
|
||||||
|
off += user_id[1]
|
||||||
|
|
||||||
|
class GetYuiMedalShopUserDataListResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.user_data_list: List[YuiMedalShopUserData] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.user_data_list)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
|
||||||
|
class GetGashaMedalShopUserDataListRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
off = 0
|
||||||
|
user_id = decode_str(data, off)
|
||||||
|
self.user_id = user_id[0]
|
||||||
|
off += user_id[1]
|
||||||
|
|
||||||
|
class GetGashaMedalShopUserDataListResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.data_list: List[GashaMedalShopUserData] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.data_list)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
|
||||||
|
class GetMYuiMedalShopDataRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
self.dummy = decode_byte(data, 0)
|
||||||
|
|
||||||
|
class GetMYuiMedalShopDataResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.data_list: List[YuiMedalShopData] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.data_list)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
|
||||||
|
class GetMYuiMedalShopItemsRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
self.dummy = decode_byte(data, 0)
|
||||||
|
|
||||||
|
class GetMYuiMedalShopItemsResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.data_list: List[YuiMedalShopItemData] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.data_list)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
|
||||||
|
class GetMGashaMedalShopsRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
self.dummy = decode_byte(data, 0)
|
||||||
|
|
||||||
|
class GetMGashaMedalShopsResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.data_list: List[GashaMedalShop] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.data_list)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
|
||||||
|
class GetMResEarnCampaignShopsRequest(SaoBaseRequest):
|
||||||
|
def __init__(self, header: SaoRequestHeader, data: bytes) -> None:
|
||||||
|
super().__init__(header, data)
|
||||||
|
self.dummy = decode_byte(data, 0)
|
||||||
|
|
||||||
|
class GetMResEarnCampaignShopsResponse(SaoBaseResponse):
|
||||||
|
def __init__(self, cmd_id: int) -> None:
|
||||||
|
super().__init__(cmd_id)
|
||||||
|
self.result = 1 # byte
|
||||||
|
self.data_list: List[ResEarnCampaignShop] = []
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_byte(self.result)
|
||||||
|
ret += encode_arr_cls(self.data_list)
|
||||||
|
|
||||||
|
self.header.length = len(ret)
|
||||||
|
return super().make() + ret
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
from typing import Tuple, List
|
from typing import Tuple, List, Optional
|
||||||
import struct
|
import struct
|
||||||
import logging
|
import logging
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
BIGINT_OFF = 16
|
BIGINT_OFF = 16
|
||||||
LONG_OFF = 8
|
LONG_OFF = 8
|
||||||
@ -8,6 +9,18 @@ INT_OFF = 4
|
|||||||
SHORT_OFF = 2
|
SHORT_OFF = 2
|
||||||
BYTE_OFF = 1
|
BYTE_OFF = 1
|
||||||
|
|
||||||
|
DT_FMT = "%Y%m%d%H%M%S"
|
||||||
|
|
||||||
|
def fmt_dt(d: Optional[datetime] = None) -> str:
|
||||||
|
if d is None:
|
||||||
|
d = datetime.fromtimestamp(0)
|
||||||
|
return d.strftime(DT_FMT)
|
||||||
|
|
||||||
|
def prs_dt(s: Optional[str] = None) -> datetime:
|
||||||
|
if not s:
|
||||||
|
s = "19691231190000"
|
||||||
|
return datetime.strptime(s, DT_FMT)
|
||||||
|
|
||||||
def decode_num(data: bytes, offset: int, size: int) -> int:
|
def decode_num(data: bytes, offset: int, size: int) -> int:
|
||||||
try:
|
try:
|
||||||
return int.from_bytes(data[offset:offset + size], 'big')
|
return int.from_bytes(data[offset:offset + size], 'big')
|
||||||
@ -40,20 +53,45 @@ def decode_str(data: bytes, offset: int) -> Tuple[str, int]:
|
|||||||
logging.getLogger('sao').error(f"Failed to parse {data[offset:]} as string!")
|
logging.getLogger('sao').error(f"Failed to parse {data[offset:]} as string!")
|
||||||
return ("", 0)
|
return ("", 0)
|
||||||
|
|
||||||
|
def decode_arr_num(data: bytes, offset:int, element_size: int) -> Tuple[List[int], int]:
|
||||||
|
size = 0
|
||||||
|
num_obj = decode_int(data, offset + size)
|
||||||
|
size += INT_OFF
|
||||||
|
|
||||||
|
ret: List[int] = []
|
||||||
|
for _ in range(num_obj):
|
||||||
|
ret.append(decode_num(data, offset + size, element_size))
|
||||||
|
size += element_size
|
||||||
|
|
||||||
|
return (ret, size)
|
||||||
|
|
||||||
|
def decode_arr_str(data: bytes, offset: int) -> Tuple[List[str], int]:
|
||||||
|
size = 0
|
||||||
|
num_obj = decode_int(data, offset + size)
|
||||||
|
size += INT_OFF
|
||||||
|
|
||||||
|
ret: List[str] = []
|
||||||
|
for _ in range(num_obj):
|
||||||
|
tmp = decode_str(data, offset + size)
|
||||||
|
ret.append(tmp[0])
|
||||||
|
size += tmp[1]
|
||||||
|
|
||||||
|
return (ret, size)
|
||||||
|
|
||||||
def encode_byte(data: int) -> bytes:
|
def encode_byte(data: int) -> bytes:
|
||||||
return struct.pack("!B", data)
|
return struct.pack("!b", data)
|
||||||
|
|
||||||
def encode_short(data: int) -> bytes:
|
def encode_short(data: int) -> bytes:
|
||||||
return struct.pack("!H", data)
|
return struct.pack("!h", data)
|
||||||
|
|
||||||
def encode_int(data: int) -> bytes:
|
def encode_int(data: int) -> bytes:
|
||||||
return struct.pack("!I", data)
|
return struct.pack("!i", data)
|
||||||
|
|
||||||
def encode_long(data: int) -> bytes:
|
def encode_long(data: int) -> bytes:
|
||||||
return struct.pack("!L", data)
|
return struct.pack("!l", data)
|
||||||
|
|
||||||
def encode_bigint(data: int) -> bytes:
|
def encode_bigint(data: int) -> bytes:
|
||||||
return struct.pack("!Q", data)
|
return struct.pack("!q", data)
|
||||||
|
|
||||||
def encode_str(s: str) -> bytes:
|
def encode_str(s: str) -> bytes:
|
||||||
try:
|
try:
|
||||||
@ -63,14 +101,66 @@ def encode_str(s: str) -> bytes:
|
|||||||
except:
|
except:
|
||||||
logging.getLogger('sao').error(f"Failed to encode {s} as bytes!")
|
logging.getLogger('sao').error(f"Failed to encode {s} as bytes!")
|
||||||
return b""
|
return b""
|
||||||
|
|
||||||
|
def encode_arr_num(data: List[int], element_size: int) -> bytes:
|
||||||
|
ret = encode_int(len(data))
|
||||||
|
|
||||||
|
if element_size == BYTE_OFF:
|
||||||
|
for x in data:
|
||||||
|
ret += encode_byte(x)
|
||||||
|
elif element_size == SHORT_OFF:
|
||||||
|
for x in data:
|
||||||
|
ret += encode_short(x)
|
||||||
|
elif element_size == INT_OFF:
|
||||||
|
for x in data:
|
||||||
|
ret += encode_int(x)
|
||||||
|
elif element_size == LONG_OFF:
|
||||||
|
for x in data:
|
||||||
|
ret += encode_long(x)
|
||||||
|
elif element_size == BIGINT_OFF:
|
||||||
|
for x in data:
|
||||||
|
ret += encode_bigint(x)
|
||||||
|
else:
|
||||||
|
logging.getLogger('sao').error(f"Unknown element size {element_size}")
|
||||||
|
return b"\x00" * INT_OFF
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
class BaseHelper:
|
class BaseHelper:
|
||||||
def __init__(self, data: bytes, offset: int) -> None:
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
self._sz = 0
|
self._sz = 0
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls) -> "BaseHelper":
|
||||||
|
return cls(b"", 0)
|
||||||
|
|
||||||
def get_size(self) -> int:
|
def get_size(self) -> int:
|
||||||
return self._sz
|
return self._sz
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
return b""
|
||||||
|
|
||||||
|
def decode_arr_cls(data: bytes, offset: int, cls: BaseHelper):
|
||||||
|
size = 0
|
||||||
|
num_cls = decode_int(data, offset + size)
|
||||||
|
cls_type = type(cls)
|
||||||
|
|
||||||
|
ret: List[cls_type] = []
|
||||||
|
for _ in range(num_cls):
|
||||||
|
tmp = cls(data, offset + size)
|
||||||
|
size += tmp.get_size()
|
||||||
|
ret.append(tmp)
|
||||||
|
|
||||||
|
return (ret, size)
|
||||||
|
|
||||||
|
def encode_arr_cls(data: List[BaseHelper]) -> bytes:
|
||||||
|
ret = encode_int(len(data))
|
||||||
|
|
||||||
|
for x in data:
|
||||||
|
ret += x.make()
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
class MaterialCommonRewardUserData(BaseHelper):
|
class MaterialCommonRewardUserData(BaseHelper):
|
||||||
def __init__(self, data: bytes, offset: int) -> None:
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
super().__init__(data, offset)
|
super().__init__(data, offset)
|
||||||
@ -413,3 +503,415 @@ class MultiPlayEndRequestData(BaseHelper):
|
|||||||
self._sz += BYTE_OFF
|
self._sz += BYTE_OFF
|
||||||
self.dummy_3 = decode_byte(data, offset + self._sz)
|
self.dummy_3 = decode_byte(data, offset + self._sz)
|
||||||
self._sz += BYTE_OFF
|
self._sz += BYTE_OFF
|
||||||
|
|
||||||
|
class SalesResourceData(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.common_reward_type = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.common_reward_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property1_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property1_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property1_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property2_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property2_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property2_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property3_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property3_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property3_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property4_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property4_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property4_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, reward_type: int = 0, reward_id: int = 0) -> "SalesResourceData":
|
||||||
|
ret = cls(b"\x00" * 54, 0)
|
||||||
|
ret.common_reward_type = reward_type # short
|
||||||
|
ret.common_reward_id = reward_id # int
|
||||||
|
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = b""
|
||||||
|
ret += encode_short(self.common_reward_type)
|
||||||
|
ret += encode_int(self.common_reward_id)
|
||||||
|
|
||||||
|
ret += encode_int(self.property1_property_id)
|
||||||
|
ret += encode_int(self.property1_value1)
|
||||||
|
ret += encode_int(self.property1_value2)
|
||||||
|
|
||||||
|
ret += encode_int(self.property2_property_id)
|
||||||
|
ret += encode_int(self.property2_value1)
|
||||||
|
ret += encode_int(self.property2_value2)
|
||||||
|
|
||||||
|
ret += encode_int(self.property3_property_id)
|
||||||
|
ret += encode_int(self.property3_value1)
|
||||||
|
ret += encode_int(self.property3_value2)
|
||||||
|
|
||||||
|
ret += encode_int(self.property4_property_id)
|
||||||
|
ret += encode_int(self.property4_value1)
|
||||||
|
ret += encode_int(self.property4_value2)
|
||||||
|
|
||||||
|
class ShopResourceSalesData(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
user_shop_resource_id = decode_str(data, offset + self._sz)
|
||||||
|
self.user_shop_resource_id = user_shop_resource_id[0]
|
||||||
|
self._sz = user_shop_resource_id[1]
|
||||||
|
|
||||||
|
discharge_user_id = decode_str(data, offset + self._sz)
|
||||||
|
self.discharge_user_id = discharge_user_id[0]
|
||||||
|
self._sz = discharge_user_id[1]
|
||||||
|
|
||||||
|
self.remaining_num = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.purchase_num = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
|
||||||
|
sales_start_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_start_date = prs_dt(sales_start_date[0])
|
||||||
|
self._sz = sales_start_date[1]
|
||||||
|
|
||||||
|
sales_resource_data_list = decode_arr_cls(data, offset + self._sz, SalesResourceData)
|
||||||
|
self.sales_resource_data_list: List[SalesResourceData] = sales_resource_data_list[0]
|
||||||
|
self._sz += sales_resource_data_list[1]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, resource_id: str = "0", discharge_id: str = "0", remaining: int = 0, purchased: int = 0) -> "ShopResourceSalesData":
|
||||||
|
ret = cls(b"\x00" * 20, 0)
|
||||||
|
ret.user_shop_resource_id = resource_id
|
||||||
|
ret.discharge_user_id = discharge_id
|
||||||
|
ret.remaining_num = remaining # short
|
||||||
|
ret.purchase_num = purchased # short
|
||||||
|
ret.sales_start_date = prs_dt()
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_str(self.user_shop_resource_id)
|
||||||
|
ret += encode_str(self.discharge_user_id)
|
||||||
|
ret += encode_short(self.remaining_num)
|
||||||
|
ret += encode_short(self.purchase_num)
|
||||||
|
ret += encode_str(fmt_dt(self.sales_start_date))
|
||||||
|
ret += encode_arr_cls(self.sales_resource_data_list)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
class YuiMedalShopUserData(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.yui_medal_shop_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.purchase_num = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
last_purchase_date = decode_str(data, offset + self._sz)
|
||||||
|
self.last_purchase_date = last_purchase_date[0]
|
||||||
|
self._sz += last_purchase_date[1]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, yui_medal_shop_id: int = 0, purchase_num: int = 0, last_purchase_date: datetime = datetime.fromtimestamp(0)) -> "YuiMedalShopUserData":
|
||||||
|
ret = cls(b"\x00" * 20, 0)
|
||||||
|
ret.yui_medal_shop_id = yui_medal_shop_id
|
||||||
|
ret.purchase_num = purchase_num
|
||||||
|
ret.last_purchase_date = last_purchase_date
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_int(self.yui_medal_shop_id)
|
||||||
|
ret += encode_int(self.purchase_num)
|
||||||
|
ret += encode_str(fmt_dt(self.last_purchase_date))
|
||||||
|
return ret
|
||||||
|
|
||||||
|
class GashaMedalShopUserData(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.gasha_medal_shop_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.purchase_num = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, gasha_medal_shop_id: int = 0, purchase_num: int = 0) -> "GashaMedalShopUserData":
|
||||||
|
ret = cls(b"\x00" * 20, 0)
|
||||||
|
ret.gasha_medal_shop_id = gasha_medal_shop_id
|
||||||
|
ret.purchase_num = purchase_num
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_int(self.gasha_medal_shop_id)
|
||||||
|
ret += encode_int(self.purchase_num)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
class YuiMedalShopData(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.yui_medal_shop_id = decode_int(data, offset + self._sz)
|
||||||
|
|
||||||
|
name = decode_str(data, offset + self._sz)
|
||||||
|
self.name = name[0]
|
||||||
|
self._sz += name[1]
|
||||||
|
|
||||||
|
description = decode_str(data, offset + self._sz)
|
||||||
|
self.description = description[0]
|
||||||
|
self._sz += description[1]
|
||||||
|
|
||||||
|
self.selling_yui_medal = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.selling_col = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.selling_event_item_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.selling_event_item_num = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.selling_ticket_num = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.purchase_limit = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.pick_up_flag = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
self.product_category = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
self.sales_type = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
self.target_days = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
self.target_hour = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
self.interval_hour = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
|
||||||
|
sales_start_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_start_date = prs_dt(sales_start_date[0])
|
||||||
|
self._sz += sales_start_date[1]
|
||||||
|
|
||||||
|
sales_end_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_end_date = prs_dt(sales_end_date[0])
|
||||||
|
self._sz += sales_end_date[1]
|
||||||
|
|
||||||
|
self.sort = decode_byte(data, offset + self._sz)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, shop_id: int = 0, name: str = "", desc: str = "") -> "YuiMedalShopData":
|
||||||
|
ret = cls(b"\x00" * 43, 0)
|
||||||
|
ret.yui_medal_shop_id = shop_id
|
||||||
|
ret.name = name
|
||||||
|
ret.description = desc
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_int(self.yui_medal_shop_id)
|
||||||
|
ret += encode_str(self.name)
|
||||||
|
ret += encode_str(self.description)
|
||||||
|
ret += encode_short(self.selling_yui_medal)
|
||||||
|
ret += encode_int(self.selling_col)
|
||||||
|
ret += encode_int(self.selling_event_item_id)
|
||||||
|
ret += encode_int(self.selling_event_item_num)
|
||||||
|
ret += encode_int(self.selling_ticket_num)
|
||||||
|
ret += encode_short(self.purchase_limit)
|
||||||
|
ret += encode_byte(self.pick_up_flag)
|
||||||
|
ret += encode_byte(self.product_category)
|
||||||
|
ret += encode_byte(self.sales_type)
|
||||||
|
ret += encode_byte(self.target_days)
|
||||||
|
ret += encode_byte(self.target_hour)
|
||||||
|
ret += encode_byte(self.interval_hour)
|
||||||
|
ret += encode_str(fmt_dt(self.sales_start_date))
|
||||||
|
ret += encode_str(fmt_dt(self.sales_end_date))
|
||||||
|
ret += encode_byte(self.sort)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
class YuiMedalShopItemData(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.yui_medal_shop_item_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.yui_medal_shop_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.common_reward_type = decode_byte(data, offset + self._sz)
|
||||||
|
self._sz += BYTE_OFF
|
||||||
|
self.common_reward_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.common_reward_num = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.strength = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property1_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property1_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property1_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property2_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property2_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property2_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property3_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property3_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property3_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
self.property4_property_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property4_value1 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.property4_value2 = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, item_id: int = 0, shop_id: int = 0, reward_type: int = 0, reward_id: int = 0, reward_num: int = 0, strength: int = 0) -> "YuiMedalShopItemData":
|
||||||
|
ret = cls(b"\x00" * 67, 0)
|
||||||
|
ret.yui_medal_shop_item_id = item_id
|
||||||
|
ret.yui_medal_shop_id = shop_id
|
||||||
|
ret.common_reward_type = reward_type
|
||||||
|
ret.common_reward_id = reward_id
|
||||||
|
ret.common_reward_num = reward_num
|
||||||
|
ret.strength = strength
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_int(self.yui_medal_shop_item_id)
|
||||||
|
ret += encode_int(self.yui_medal_shop_id)
|
||||||
|
ret += encode_byte(self.common_reward_type)
|
||||||
|
ret += encode_int(self.common_reward_id)
|
||||||
|
ret += encode_short(self.common_reward_num)
|
||||||
|
ret += encode_int(self.strength)
|
||||||
|
|
||||||
|
ret += encode_int(self.property1_property_id)
|
||||||
|
ret += encode_int(self.property1_value1)
|
||||||
|
ret += encode_int(self.property1_value2)
|
||||||
|
|
||||||
|
ret += encode_int(self.property2_property_id)
|
||||||
|
ret += encode_int(self.property2_value1)
|
||||||
|
ret += encode_int(self.property2_value2)
|
||||||
|
|
||||||
|
ret += encode_int(self.property3_property_id)
|
||||||
|
ret += encode_int(self.property3_value1)
|
||||||
|
ret += encode_int(self.property3_value2)
|
||||||
|
|
||||||
|
ret += encode_int(self.property4_property_id)
|
||||||
|
ret += encode_int(self.property4_value1)
|
||||||
|
ret += encode_int(self.property4_value2)
|
||||||
|
return ret
|
||||||
|
|
||||||
|
class ResEarnCampaignShop(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.res_earn_campaign_shop_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.res_earn_campaign_application_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
name = decode_str(data, offset + self._sz)
|
||||||
|
self.name = name[0]
|
||||||
|
self._sz += name[1]
|
||||||
|
|
||||||
|
self.selling_yui_medal = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.selling_col = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.selling_event_item_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.selling_event_item_num = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.purchase_limit = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
self.get_application_point = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
|
||||||
|
sales_start_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_start_date = prs_dt(sales_start_date[0])
|
||||||
|
self._sz += sales_start_date[1]
|
||||||
|
|
||||||
|
sales_end_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_end_date = prs_dt(sales_end_date[0])
|
||||||
|
self._sz += sales_end_date[1]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, shop_id: int = 0, app_id: int = 0, name: str = "") -> "ResEarnCampaignShop":
|
||||||
|
ret = cls(b"\x00" * 26, 0)
|
||||||
|
ret.res_earn_campaign_shop_id = shop_id
|
||||||
|
ret.res_earn_campaign_application_id = app_id
|
||||||
|
ret.name = name
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_int(self.res_earn_campaign_shop_id)
|
||||||
|
ret = encode_int(self.res_earn_campaign_application_id)
|
||||||
|
ret += encode_str(self.name)
|
||||||
|
ret += encode_short(self.selling_yui_medal)
|
||||||
|
ret += encode_int(self.selling_col)
|
||||||
|
ret += encode_int(self.selling_event_item_id)
|
||||||
|
ret += encode_int(self.selling_event_item_num)
|
||||||
|
ret += encode_short(self.purchase_limit)
|
||||||
|
ret += encode_short(self.get_application_point)
|
||||||
|
ret += encode_str(fmt_dt(self.sales_start_date))
|
||||||
|
ret += encode_str(fmt_dt(self.sales_end_date))
|
||||||
|
return ret
|
||||||
|
|
||||||
|
class GashaMedalShop(BaseHelper):
|
||||||
|
def __init__(self, data: bytes, offset: int) -> None:
|
||||||
|
super().__init__(data, offset)
|
||||||
|
self.gasha_medal_shop_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
|
||||||
|
name = decode_str(data, offset + self._sz)
|
||||||
|
self.name = name[0]
|
||||||
|
self._sz += name[1]
|
||||||
|
|
||||||
|
self.gasha_medal_id = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.use_gasha_medal_num = decode_int(data, offset + self._sz)
|
||||||
|
self._sz += INT_OFF
|
||||||
|
self.purchase_limit = decode_short(data, offset + self._sz)
|
||||||
|
self._sz += SHORT_OFF
|
||||||
|
|
||||||
|
sales_start_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_start_date = prs_dt(sales_start_date[0])
|
||||||
|
self._sz += sales_start_date[1]
|
||||||
|
|
||||||
|
sales_end_date = decode_str(data, offset + self._sz)
|
||||||
|
self.sales_end_date = prs_dt(sales_end_date[0])
|
||||||
|
self._sz += sales_end_date[1]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_args(cls, shop_id: int = 0, name: str = "", medal_id: int = 0, medal_num: int = 0, purchase_limit: int = 0) -> "GashaMedalShop":
|
||||||
|
ret = cls(b"\x00" * 26, 0)
|
||||||
|
ret.gasha_medal_shop_id = shop_id
|
||||||
|
ret.name = name
|
||||||
|
ret.gasha_medal_id = medal_id
|
||||||
|
ret.use_gasha_medal_num = medal_num
|
||||||
|
ret.purchase_limit = purchase_limit
|
||||||
|
return ret
|
||||||
|
|
||||||
|
def make(self) -> bytes:
|
||||||
|
ret = encode_int(self.gasha_medal_shop_id)
|
||||||
|
ret += encode_str(self.name)
|
||||||
|
ret += encode_int(self.gasha_medal_id)
|
||||||
|
ret += encode_int(self.use_gasha_medal_num)
|
||||||
|
ret += encode_short(self.purchase_limit)
|
||||||
|
ret += encode_str(fmt_dt(self.sales_start_date))
|
||||||
|
ret += encode_str(fmt_dt(self.sales_end_date))
|
||||||
|
return ret
|
||||||
|
@ -6,7 +6,7 @@ from logging.handlers import TimedRotatingFileHandler
|
|||||||
from os import path
|
from os import path
|
||||||
from Crypto.Cipher import Blowfish
|
from Crypto.Cipher import Blowfish
|
||||||
from hashlib import md5
|
from hashlib import md5
|
||||||
import random
|
import secrets
|
||||||
|
|
||||||
from core import CoreConfig, Utils
|
from core import CoreConfig, Utils
|
||||||
from core.title import BaseServlet
|
from core.title import BaseServlet
|
||||||
@ -76,13 +76,17 @@ class SaoServlet(BaseServlet):
|
|||||||
return True
|
return True
|
||||||
|
|
||||||
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
def get_allnet_info(self, game_code: str, game_ver: int, keychip: str) -> Tuple[str, str]:
|
||||||
if not self.core_cfg.server.is_using_proxy and self.core_cfg.title.port_ssl:
|
port_ssl = Utils.get_title_port_ssl(self.core_cfg)
|
||||||
return (
|
port_normal = Utils.get_title_port(self.core_cfg)
|
||||||
f"https://{self.core_cfg.title.hostname}:{self.core_cfg.title.port_ssl}/",
|
|
||||||
f"{self.core_cfg.title.hostname}/",
|
|
||||||
)
|
|
||||||
|
|
||||||
return (f"http://{self.core_cfg.title.hostname}:{self.core_cfg.title.port}/", "")
|
proto = "http"
|
||||||
|
port = f":{port_normal}" if not self.core_cfg.server.is_using_proxy and port_normal != 80 else ""
|
||||||
|
|
||||||
|
if self.game_cfg.server.use_https:
|
||||||
|
proto = "https"
|
||||||
|
port = f":{port_ssl}" if not self.core_cfg.server.is_using_proxy and port_ssl != 443 else ""
|
||||||
|
|
||||||
|
return (f"{proto}://{self.core_cfg.title.hostname}{port}/", "")
|
||||||
|
|
||||||
def get_mucha_info(self, core_cfg: CoreConfig, cfg_dir: str) -> Tuple[bool, str]:
|
def get_mucha_info(self, core_cfg: CoreConfig, cfg_dir: str) -> Tuple[bool, str]:
|
||||||
if not self.game_cfg.server.enable:
|
if not self.game_cfg.server.enable:
|
||||||
@ -96,7 +100,9 @@ class SaoServlet(BaseServlet):
|
|||||||
iv = b""
|
iv = b""
|
||||||
|
|
||||||
req_raw = request.content.read()
|
req_raw = request.content.read()
|
||||||
sao_request = req_raw.hex()
|
if len(req_raw) < 40:
|
||||||
|
self.logger.warn(f"Malformed request to {endpoint} - {req_raw.hex()}")
|
||||||
|
return b""
|
||||||
req_header = SaoRequestHeader(req_raw)
|
req_header = SaoRequestHeader(req_raw)
|
||||||
|
|
||||||
cmd_str = f"{req_header.cmd:04x}"
|
cmd_str = f"{req_header.cmd:04x}"
|
||||||
@ -119,11 +125,24 @@ class SaoServlet(BaseServlet):
|
|||||||
self.logger.info(f"{endpoint} - {cmd_str} request")
|
self.logger.info(f"{endpoint} - {cmd_str} request")
|
||||||
self.logger.debug(f"Request: {req_raw.hex()}")
|
self.logger.debug(f"Request: {req_raw.hex()}")
|
||||||
resp = handler(req_header, req_data)
|
resp = handler(req_header, req_data)
|
||||||
|
|
||||||
|
if resp is None:
|
||||||
|
resp = SaoNoopResponse(req_header.cmd + 1).make()
|
||||||
|
|
||||||
|
if type(resp) == bytes:
|
||||||
|
pass
|
||||||
|
|
||||||
|
elif issubclass(resp, SaoBaseResponse):
|
||||||
|
resp = resp.make()
|
||||||
|
|
||||||
|
else:
|
||||||
|
self.logger.error(f"Unknown response type {type(resp)}")
|
||||||
|
return b""
|
||||||
|
|
||||||
self.logger.debug(f"Response: {resp.hex()}")
|
self.logger.debug(f"Response: {resp.hex()}")
|
||||||
|
|
||||||
if self.game_cfg.crypt.enable:
|
if self.game_cfg.crypt.enable:
|
||||||
iv = random.randbytes(8)
|
iv = secrets.token_bytes(8)
|
||||||
data_to_crypt = resp[24:]
|
data_to_crypt = resp[24:]
|
||||||
while len(data_to_crypt) % 8 != 0:
|
while len(data_to_crypt) % 8 != 0:
|
||||||
data_to_crypt += b"\x00"
|
data_to_crypt += b"\x00"
|
||||||
|
@ -96,6 +96,7 @@ class WaccaBase:
|
|||||||
|
|
||||||
def handle_housing_start_request(self, data: Dict) -> Dict:
|
def handle_housing_start_request(self, data: Dict) -> Dict:
|
||||||
req = HousingStartRequestV1(data)
|
req = HousingStartRequestV1(data)
|
||||||
|
allnet_region_id = None
|
||||||
|
|
||||||
machine = self.data.arcade.get_machine(req.chipId)
|
machine = self.data.arcade.get_machine(req.chipId)
|
||||||
if machine is not None:
|
if machine is not None:
|
||||||
@ -235,6 +236,11 @@ class WaccaBase:
|
|||||||
|
|
||||||
if profileId is None:
|
if profileId is None:
|
||||||
return BaseResponse().make()
|
return BaseResponse().make()
|
||||||
|
|
||||||
|
if profileId == 0:
|
||||||
|
# We've already made this profile, just return success
|
||||||
|
new_user = self.data.profile.get_profile(aime_id=req.aimeId)
|
||||||
|
profileId = new_user['id']
|
||||||
|
|
||||||
# Insert starting items
|
# Insert starting items
|
||||||
self.data.item.put_item(req.aimeId, WaccaConstants.ITEM_TYPES["title"], 104001)
|
self.data.item.put_item(req.aimeId, WaccaConstants.ITEM_TYPES["title"], 104001)
|
||||||
@ -255,25 +261,11 @@ class WaccaBase:
|
|||||||
self.data.item.put_item(
|
self.data.item.put_item(
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["note_sound"], 105001
|
req.aimeId, WaccaConstants.ITEM_TYPES["note_sound"], 105001
|
||||||
)
|
)
|
||||||
self.data.item.put_item(
|
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["note_sound"], 205005
|
|
||||||
) # Added lily
|
|
||||||
|
|
||||||
self.data.item.put_item(
|
self.data.item.put_item(
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["navigator"], 210001
|
req.aimeId, WaccaConstants.ITEM_TYPES["navigator"], 210001
|
||||||
)
|
)
|
||||||
|
|
||||||
self.data.item.put_item(
|
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["user_plate"], 211001
|
|
||||||
) # Added lily
|
|
||||||
|
|
||||||
self.data.item.put_item(
|
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["touch_effect"], 312000
|
|
||||||
) # Added reverse
|
|
||||||
self.data.item.put_item(
|
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["touch_effect"], 312001
|
|
||||||
) # Added reverse
|
|
||||||
|
|
||||||
return UserStatusCreateResponseV2(profileId, req.username).make()
|
return UserStatusCreateResponseV2(profileId, req.username).make()
|
||||||
|
|
||||||
def handle_user_status_getDetail_request(self, data: Dict) -> Dict:
|
def handle_user_status_getDetail_request(self, data: Dict) -> Dict:
|
||||||
|
@ -32,6 +32,8 @@ class HousingStartRequestV1(BaseRequest):
|
|||||||
class HousingStartRequestV2(HousingStartRequestV1):
|
class HousingStartRequestV2(HousingStartRequestV1):
|
||||||
def __init__(self, data: Dict) -> None:
|
def __init__(self, data: Dict) -> None:
|
||||||
super(HousingStartRequestV1, self).__init__(data)
|
super(HousingStartRequestV1, self).__init__(data)
|
||||||
|
self.unknown0: str = self.params[0]
|
||||||
|
self.errorLog: str = self.params[1]
|
||||||
self.creditLog: str = self.params[2]
|
self.creditLog: str = self.params[2]
|
||||||
self.info: List[HousingInfo] = []
|
self.info: List[HousingInfo] = []
|
||||||
|
|
||||||
|
@ -7,6 +7,8 @@ from hashlib import md5
|
|||||||
from twisted.web.http import Request
|
from twisted.web.http import Request
|
||||||
from typing import Dict, Tuple, List
|
from typing import Dict, Tuple, List
|
||||||
from os import path
|
from os import path
|
||||||
|
import traceback
|
||||||
|
import sys
|
||||||
|
|
||||||
from core import CoreConfig, Utils
|
from core import CoreConfig, Utils
|
||||||
from .config import WaccaConfig
|
from .config import WaccaConfig
|
||||||
@ -17,7 +19,7 @@ from .lilyr import WaccaLilyR
|
|||||||
from .lily import WaccaLily
|
from .lily import WaccaLily
|
||||||
from .s import WaccaS
|
from .s import WaccaS
|
||||||
from .base import WaccaBase
|
from .base import WaccaBase
|
||||||
from .handlers.base import BaseResponse
|
from .handlers.base import BaseResponse, BaseRequest
|
||||||
from .handlers.helpers import Version
|
from .handlers.helpers import Version
|
||||||
|
|
||||||
|
|
||||||
@ -87,10 +89,10 @@ class WaccaServlet:
|
|||||||
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
if not self.core_cfg.server.is_using_proxy and Utils.get_title_port(self.core_cfg) != 80:
|
||||||
return (
|
return (
|
||||||
f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/WaccaServlet",
|
f"http://{self.core_cfg.title.hostname}:{Utils.get_title_port(self.core_cfg)}/WaccaServlet",
|
||||||
"",
|
self.core_cfg.title.hostname,
|
||||||
)
|
)
|
||||||
|
|
||||||
return (f"http://{self.core_cfg.title.hostname}/WaccaServlet", "")
|
return (f"http://{self.core_cfg.title.hostname}/WaccaServlet", self.core_cfg.title.hostname)
|
||||||
|
|
||||||
def render_POST(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
def render_POST(self, request: Request, game_code: str, matchers: Dict) -> bytes:
|
||||||
def end(resp: Dict) -> bytes:
|
def end(resp: Dict) -> bytes:
|
||||||
@ -114,10 +116,20 @@ class WaccaServlet:
|
|||||||
try:
|
try:
|
||||||
req_json = json.loads(request.content.getvalue())
|
req_json = json.loads(request.content.getvalue())
|
||||||
version_full = Version(req_json["appVersion"])
|
version_full = Version(req_json["appVersion"])
|
||||||
|
req = BaseRequest(req_json)
|
||||||
|
|
||||||
except Exception:
|
except KeyError as e:
|
||||||
self.logger.error(
|
self.logger.error(
|
||||||
f"Failed to parse request to {url_path} -> {request.content.getvalue()}"
|
f"Failed to parse request to {request.content.getvalue()} -> Missing required value {e}"
|
||||||
|
)
|
||||||
|
resp = BaseResponse()
|
||||||
|
resp.status = 1
|
||||||
|
resp.message = "不正なリクエスト エラーです"
|
||||||
|
return end(resp.make())
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
self.logger.error(
|
||||||
|
f"Failed to parse request to {url_path} -> {request.content.getvalue()} -> {e}"
|
||||||
)
|
)
|
||||||
resp = BaseResponse()
|
resp = BaseResponse()
|
||||||
resp.status = 1
|
resp.status = 1
|
||||||
@ -143,7 +155,7 @@ class WaccaServlet:
|
|||||||
|
|
||||||
else:
|
else:
|
||||||
self.logger.warning(
|
self.logger.warning(
|
||||||
f"Unsupported version ({req_json['appVersion']}) request {url_path} - {req_json}"
|
f"Unsupported version ({req.appVersion}) request {url_path} - {req_json}"
|
||||||
)
|
)
|
||||||
resp = BaseResponse()
|
resp = BaseResponse()
|
||||||
resp.status = 1
|
resp.status = 1
|
||||||
@ -151,7 +163,7 @@ class WaccaServlet:
|
|||||||
return end(resp.make())
|
return end(resp.make())
|
||||||
|
|
||||||
self.logger.info(
|
self.logger.info(
|
||||||
f"v{req_json['appVersion']} {url_path} request from {client_ip} with chipId {req_json['chipId']}"
|
f"v{req.appVersion} {url_path} request from {client_ip} with chipId {req.chipId}"
|
||||||
)
|
)
|
||||||
self.logger.debug(req_json)
|
self.logger.debug(req_json)
|
||||||
|
|
||||||
@ -166,17 +178,20 @@ class WaccaServlet:
|
|||||||
handler = getattr(self.versions[internal_ver], func_to_find)
|
handler = getattr(self.versions[internal_ver], func_to_find)
|
||||||
resp = handler(req_json)
|
resp = handler(req_json)
|
||||||
|
|
||||||
self.logger.debug(f"{req_json['appVersion']} response {resp}")
|
self.logger.debug(f"{req.appVersion} response {resp}")
|
||||||
return end(resp)
|
return end(resp)
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.error(
|
self.logger.error(
|
||||||
f"{req_json['appVersion']} Error handling method {url_path} -> {e}"
|
f"{req.appVersion} Error handling method {url_path} -> {e}"
|
||||||
)
|
)
|
||||||
if self.core_cfg.server.is_develop:
|
if self.logger.level == logging.DEBUG:
|
||||||
raise
|
tp, val, tb = sys.exc_info()
|
||||||
|
traceback.print_exception(tp, val, tb, limit=3)
|
||||||
|
with open("{0}/{1}.log".format(self.core_cfg.server.log_dir, "wacca"), "a") as f:
|
||||||
|
traceback.print_exception(tp, val, tb, limit=3, file=f)
|
||||||
|
|
||||||
resp = BaseResponse()
|
resp = BaseResponse()
|
||||||
resp.status = 1
|
resp.status = 1
|
||||||
resp.message = "A server error occoured."
|
resp.message = "A server error occoured."
|
||||||
return end(resp)
|
return end(resp.make())
|
||||||
|
@ -41,28 +41,28 @@ class WaccaLily(WaccaS):
|
|||||||
resp = GetNewsResponseV3()
|
resp = GetNewsResponseV3()
|
||||||
return resp.make()
|
return resp.make()
|
||||||
|
|
||||||
def handle_housing_start_request(self, data: Dict) -> Dict:
|
|
||||||
req = HousingStartRequestV2(data)
|
|
||||||
|
|
||||||
if req.appVersion.country != "JPN" and req.appVersion.country in [
|
|
||||||
region.name for region in WaccaConstants.Region
|
|
||||||
]:
|
|
||||||
region_id = WaccaConstants.Region[req.appVersion.country]
|
|
||||||
else:
|
|
||||||
region_id = self.region_id
|
|
||||||
|
|
||||||
resp = HousingStartResponseV1(region_id)
|
|
||||||
return resp.make()
|
|
||||||
|
|
||||||
def handle_user_status_create_request(self, data: Dict) -> Dict:
|
def handle_user_status_create_request(self, data: Dict) -> Dict:
|
||||||
req = UserStatusCreateRequest(data)
|
req = UserStatusCreateRequest(data)
|
||||||
resp = super().handle_user_status_create_request(data)
|
ret = super().handle_user_status_create_request(data)
|
||||||
|
|
||||||
|
new_user = self.data.profile.get_profile(aime_id=req.aimeId)
|
||||||
|
|
||||||
|
if new_user is None:
|
||||||
|
return BaseResponse().make()
|
||||||
|
|
||||||
|
self.data.item.put_item(
|
||||||
|
req.aimeId, WaccaConstants.ITEM_TYPES["user_plate"], 211001
|
||||||
|
) # Added lily
|
||||||
|
|
||||||
|
self.data.item.put_item(
|
||||||
|
req.aimeId, WaccaConstants.ITEM_TYPES["note_sound"], 205005
|
||||||
|
) # Added lily
|
||||||
|
|
||||||
self.data.item.put_item(
|
self.data.item.put_item(
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["navigator"], 210002
|
req.aimeId, WaccaConstants.ITEM_TYPES["navigator"], 210002
|
||||||
) # Lily, Added Lily
|
) # Lily, Added Lily
|
||||||
|
|
||||||
return resp
|
return ret
|
||||||
|
|
||||||
def handle_user_status_get_request(self, data: Dict) -> Dict:
|
def handle_user_status_get_request(self, data: Dict) -> Dict:
|
||||||
req = UserStatusGetRequest(data)
|
req = UserStatusGetRequest(data)
|
||||||
@ -426,7 +426,7 @@ class WaccaLily(WaccaS):
|
|||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
self.logger.error(
|
self.logger.error(
|
||||||
f"{__name__} Failed to load item {item['item_id']} for user {profile['user']}"
|
f"Failed to load item {item['item_id']} for user {profile['user']}"
|
||||||
)
|
)
|
||||||
|
|
||||||
resp.seasonInfo.level = profile["xp"]
|
resp.seasonInfo.level = profile["xp"]
|
||||||
|
@ -3,11 +3,14 @@ from datetime import datetime, timedelta
|
|||||||
import json
|
import json
|
||||||
|
|
||||||
from core.config import CoreConfig
|
from core.config import CoreConfig
|
||||||
|
from titles.wacca.handlers import Dict
|
||||||
from titles.wacca.lily import WaccaLily
|
from titles.wacca.lily import WaccaLily
|
||||||
from titles.wacca.config import WaccaConfig
|
from titles.wacca.config import WaccaConfig
|
||||||
from titles.wacca.const import WaccaConstants
|
from titles.wacca.const import WaccaConstants
|
||||||
from titles.wacca.handlers import *
|
from titles.wacca.handlers import *
|
||||||
|
|
||||||
|
from core.const import AllnetCountryCode
|
||||||
|
|
||||||
|
|
||||||
class WaccaLilyR(WaccaLily):
|
class WaccaLilyR(WaccaLily):
|
||||||
def __init__(self, cfg: CoreConfig, game_cfg: WaccaConfig) -> None:
|
def __init__(self, cfg: CoreConfig, game_cfg: WaccaConfig) -> None:
|
||||||
@ -36,6 +39,38 @@ class WaccaLilyR(WaccaLily):
|
|||||||
(210003, 0),
|
(210003, 0),
|
||||||
]
|
]
|
||||||
|
|
||||||
|
def handle_housing_start_request(self, data: Dict) -> Dict:
|
||||||
|
req = HousingStartRequestV2(data)
|
||||||
|
allnet_region_id = None
|
||||||
|
|
||||||
|
machine = self.data.arcade.get_machine(req.chipId)
|
||||||
|
if machine is not None:
|
||||||
|
arcade = self.data.arcade.get_arcade(machine["arcade"])
|
||||||
|
allnet_region_id = arcade["region_id"]
|
||||||
|
|
||||||
|
if req.appVersion.country == AllnetCountryCode.JAPAN.value:
|
||||||
|
if allnet_region_id is not None:
|
||||||
|
region = WaccaConstants.allnet_region_id_to_wacca_region(
|
||||||
|
allnet_region_id
|
||||||
|
)
|
||||||
|
|
||||||
|
if region is None:
|
||||||
|
region_id = self.region_id
|
||||||
|
else:
|
||||||
|
region_id = region
|
||||||
|
|
||||||
|
else:
|
||||||
|
region_id = self.region_id
|
||||||
|
|
||||||
|
elif req.appVersion.country in WaccaConstants.VALID_COUNTRIES:
|
||||||
|
region_id = WaccaConstants.Region[req.appVersion.country]
|
||||||
|
|
||||||
|
else:
|
||||||
|
region_id = WaccaConstants.Region.NONE
|
||||||
|
|
||||||
|
resp = HousingStartResponseV1(region_id)
|
||||||
|
return resp.make()
|
||||||
|
|
||||||
def handle_user_status_create_request(self, data: Dict) -> Dict:
|
def handle_user_status_create_request(self, data: Dict) -> Dict:
|
||||||
req = UserStatusCreateRequest(data)
|
req = UserStatusCreateRequest(data)
|
||||||
resp = super().handle_user_status_create_request(data)
|
resp = super().handle_user_status_create_request(data)
|
||||||
|
@ -315,5 +315,12 @@ class WaccaReverse(WaccaLilyR):
|
|||||||
self.data.item.put_item(
|
self.data.item.put_item(
|
||||||
req.aimeId, WaccaConstants.ITEM_TYPES["navigator"], 310002
|
req.aimeId, WaccaConstants.ITEM_TYPES["navigator"], 310002
|
||||||
) # Added reverse
|
) # Added reverse
|
||||||
|
|
||||||
|
self.data.item.put_item(
|
||||||
|
req.aimeId, WaccaConstants.ITEM_TYPES["touch_effect"], 312000
|
||||||
|
) # Added reverse
|
||||||
|
self.data.item.put_item(
|
||||||
|
req.aimeId, WaccaConstants.ITEM_TYPES["touch_effect"], 312001
|
||||||
|
) # Added reverse
|
||||||
|
|
||||||
return resp
|
return resp
|
||||||
|
Loading…
Reference in New Issue
Block a user