mirror of
https://github.com/MewoLab/AquaDX.git
synced 2025-12-14 11:56:15 +08:00
Compare commits
2 Commits
b0a49d6626
...
2ab2666ad0
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2ab2666ad0 | ||
|
|
4971f2be78 |
@@ -107,7 +107,8 @@ export interface GenericGameSummary {
|
|||||||
lastVersion: string
|
lastVersion: string
|
||||||
ratingComposition: { [key: string]: any }
|
ratingComposition: { [key: string]: any }
|
||||||
recent: GenericGamePlaylog[]
|
recent: GenericGamePlaylog[]
|
||||||
rival?: boolean
|
rival?: boolean,
|
||||||
|
favorites?: number[]
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface MusicMeta {
|
export interface MusicMeta {
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ export const EN_REF_USER = {
|
|||||||
'UserHome.RemoveRival': "Remove from Rival",
|
'UserHome.RemoveRival': "Remove from Rival",
|
||||||
'UserHome.InvalidGame': "Game ${game} is not supported on the web UI yet. We only support maimai, chunithm, wacca, and ongeki for now.",
|
'UserHome.InvalidGame': "Game ${game} is not supported on the web UI yet. We only support maimai, chunithm, wacca, and ongeki for now.",
|
||||||
'UserHome.ShowMoreRecent': 'Show more',
|
'UserHome.ShowMoreRecent': 'Show more',
|
||||||
|
'UserHome.FavoriteSongs': 'Favorite Songs'
|
||||||
}
|
}
|
||||||
|
|
||||||
export const EN_REF_Welcome = {
|
export const EN_REF_Welcome = {
|
||||||
|
|||||||
@@ -40,6 +40,7 @@ const zhUser: typeof EN_REF_USER = {
|
|||||||
'UserHome.RemoveRival': "移除劲敌",
|
'UserHome.RemoveRival': "移除劲敌",
|
||||||
'UserHome.InvalidGame': "游戏 ${game} 还不支持网页端查看。我们目前只支持舞萌、中二、华卡和音击。",
|
'UserHome.InvalidGame': "游戏 ${game} 还不支持网页端查看。我们目前只支持舞萌、中二、华卡和音击。",
|
||||||
'UserHome.ShowMoreRecent': "显示更多",
|
'UserHome.ShowMoreRecent': "显示更多",
|
||||||
|
'UserHome.FavoriteSongs': "收藏歌曲"
|
||||||
}
|
}
|
||||||
|
|
||||||
const zhWelcome: typeof EN_REF_Welcome = {
|
const zhWelcome: typeof EN_REF_Welcome = {
|
||||||
|
|||||||
@@ -325,7 +325,6 @@
|
|||||||
<RatingComposition title="Recent 10" comp={d.user.ratingComposition.recent10} {allMusics} game={game != "auto" ? game : "mai2"} top={10}/>
|
<RatingComposition title="Recent 10" comp={d.user.ratingComposition.recent10} {allMusics} game={game != "auto" ? game : "mai2"} top={10}/>
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
|
|
||||||
<div class="recent">
|
<div class="recent">
|
||||||
<h2>{t('UserHome.RecentScores')}</h2>
|
<h2>{t('UserHome.RecentScores')}</h2>
|
||||||
<div class="scores">
|
<div class="scores">
|
||||||
@@ -368,6 +367,22 @@
|
|||||||
{/if}
|
{/if}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{#if d.user.favorites != null && d.user.favorites.length > 0}
|
||||||
|
<div class="favorites">
|
||||||
|
<h2>{t('UserHome.FavoriteSongs')}</h2>
|
||||||
|
<div class="scores">
|
||||||
|
{#each d.user.favorites as favoriteSongId, i}
|
||||||
|
<div>
|
||||||
|
<img src={`${DATA_HOST}/d/${game}/music/00${favoriteSongId.toString().padStart(6, '0').substring(2)}.png`} alt="" on:error={coverNotFound} />
|
||||||
|
<div class="info">
|
||||||
|
<div class="song-title">{allMusics[favoriteSongId.toString()] ? allMusics[favoriteSongId.toString()].name : t("UserHome.UnknownSong")}</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{/if}
|
||||||
{/if}
|
{/if}
|
||||||
|
|
||||||
<StatusOverlays {error} loading={!d || isLoading} />
|
<StatusOverlays {error} loading={!d || isLoading} />
|
||||||
@@ -554,6 +569,60 @@
|
|||||||
flex-direction: row
|
flex-direction: row
|
||||||
justify-content: space-between
|
justify-content: space-between
|
||||||
|
|
||||||
|
.favorites
|
||||||
|
.scores
|
||||||
|
display: flex
|
||||||
|
flex-wrap: wrap
|
||||||
|
flex-direction: row
|
||||||
|
gap: 20px
|
||||||
|
|
||||||
|
|
||||||
|
// Image and song info
|
||||||
|
> div
|
||||||
|
display: flex
|
||||||
|
align-items: center
|
||||||
|
width: calc(calc(100% / 3) - 20px) // what the fuck is going on anymore
|
||||||
|
gap: 20px
|
||||||
|
|
||||||
|
background-color: rgba(white, 0.03)
|
||||||
|
border-radius: vars.$border-radius
|
||||||
|
|
||||||
|
img
|
||||||
|
width: 50px
|
||||||
|
height: 50px
|
||||||
|
border-radius: vars.$border-radius
|
||||||
|
object-fit: cover
|
||||||
|
|
||||||
|
// Song info and score
|
||||||
|
> div.info
|
||||||
|
flex: 1
|
||||||
|
display: flex
|
||||||
|
justify-content: space-between
|
||||||
|
overflow: hidden
|
||||||
|
flex-direction: column
|
||||||
|
|
||||||
|
.first-line
|
||||||
|
display: flex
|
||||||
|
flex-direction: row
|
||||||
|
|
||||||
|
// Limit song name to one line
|
||||||
|
.song-title
|
||||||
|
max-width: 100%
|
||||||
|
overflow: hidden
|
||||||
|
text-overflow: ellipsis
|
||||||
|
white-space: nowrap
|
||||||
|
|
||||||
|
// Make song score and rank not wrap
|
||||||
|
> div:last-child
|
||||||
|
white-space: nowrap
|
||||||
|
|
||||||
|
@media (max-width: vars.$w-mobile)
|
||||||
|
flex-direction: column
|
||||||
|
gap: 0
|
||||||
|
|
||||||
|
.rank-text
|
||||||
|
text-align: left
|
||||||
|
|
||||||
// Recent Scores section
|
// Recent Scores section
|
||||||
.recent
|
.recent
|
||||||
.scores
|
.scores
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ abstract class GameApiController<T : IUserData>(val name: String, userDataClass:
|
|||||||
userMusicRepo.findByUser_Card_ExtIdAndMusicIdIn(card.extId, musicList)
|
userMusicRepo.findByUser_Card_ExtIdAndMusicIdIn(card.extId, musicList)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun genericUserSummary(card: Card, ratingComp: Map<String, String>, rival: Boolean? = null): GenericGameSummary {
|
fun genericUserSummary(card: Card, ratingComp: Map<String, String>, rival: Boolean? = null, favorites: List<Int>? = null): GenericGameSummary {
|
||||||
// Summary values: total plays, player rating, server-wide ranking
|
// Summary values: total plays, player rating, server-wide ranking
|
||||||
// number of each rank, max combo, number of full combo, number of all perfect
|
// number of each rank, max combo, number of full combo, number of all perfect
|
||||||
val user = userDataRepo.findByCard(card) ?: (404 - "Game data not found")
|
val user = userDataRepo.findByCard(card) ?: (404 - "Game data not found")
|
||||||
@@ -199,7 +199,8 @@ abstract class GameApiController<T : IUserData>(val name: String, userDataClass:
|
|||||||
ratingComposition = ratingComp,
|
ratingComposition = ratingComp,
|
||||||
recent = plays.sortedBy { it.userPlayDate.toString() }.takeLast(100).reversed(),
|
recent = plays.sortedBy { it.userPlayDate.toString() }.takeLast(100).reversed(),
|
||||||
lastPlayedHost = user.lastClientId?.let { us.userRepo.findByKeychip(it)?.username },
|
lastPlayedHost = user.lastClientId?.let { us.userRepo.findByKeychip(it)?.username },
|
||||||
rival = rival
|
rival = rival,
|
||||||
|
favorites = favorites
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,8 @@ data class GenericGameSummary(
|
|||||||
|
|
||||||
val recent: List<IGenericGamePlaylog>,
|
val recent: List<IGenericGamePlaylog>,
|
||||||
|
|
||||||
val rival: Boolean?
|
val rival: Boolean?,
|
||||||
|
val favorites: List<Int>?
|
||||||
)
|
)
|
||||||
|
|
||||||
data class GenericRankingPlayer(
|
data class GenericRankingPlayer(
|
||||||
|
|||||||
@@ -60,7 +60,9 @@ class Chusan(
|
|||||||
"new" to (extra["rating_new_list"] ?: ""),
|
"new" to (extra["rating_new_list"] ?: ""),
|
||||||
)
|
)
|
||||||
|
|
||||||
genericUserSummary(card, ratingComposition)
|
val misc = rp.userMisc.findByUser_Card_ExtId(card.extId).firstOrNull()
|
||||||
|
|
||||||
|
genericUserSummary(card, ratingComposition, null, misc?.favMusic)
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ class Maimai2(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
genericUserSummary(card, ratingComposition, isMyRival)
|
genericUserSummary(card, ratingComposition, isMyRival, extra["favorite_music"]?.split(",")?.mapNotNull{it -> it.toIntOrNull()})
|
||||||
}
|
}
|
||||||
|
|
||||||
@API("user-rating")
|
@API("user-rating")
|
||||||
|
|||||||
@@ -31,7 +31,10 @@ class Wacca(
|
|||||||
|
|
||||||
override suspend fun userSummary(@RP username: String, @RP token: String?) = us.cardByName(username) { card ->
|
override suspend fun userSummary(@RP username: String, @RP token: String?) = us.cardByName(username) { card ->
|
||||||
// TODO: Rating composition
|
// TODO: Rating composition
|
||||||
genericUserSummary(card, mapOf())
|
|
||||||
|
val data = userDataRepo.findByCard_ExtId(card.extId)
|
||||||
|
|
||||||
|
genericUserSummary(card, mapOf(), null, if (data.isPresent) data.get().favoriteSongs else null)
|
||||||
}
|
}
|
||||||
|
|
||||||
override val shownRanks: List<Pair<Int, String>> = waccaScores.filter { it.first > 85 * 10000 }
|
override val shownRanks: List<Pair<Int, String>> = waccaScores.filter { it.first > 85 * 10000 }
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class ChusanController(
|
|||||||
val chusan: Chusan
|
val chusan: Chusan
|
||||||
): MeowApi({ api, resp ->
|
): MeowApi({ api, resp ->
|
||||||
if (resp is String) resp
|
if (resp is String) resp
|
||||||
else (if ("CM" in api) cmMapper else mapper).write(resp)
|
else (if ("CM" in api || api == "GetUserItemApi" ) cmMapper else mapper).write(resp)
|
||||||
}) {
|
}) {
|
||||||
val log = LoggerFactory.getLogger(ChusanController::class.java)
|
val log = LoggerFactory.getLogger(ChusanController::class.java)
|
||||||
|
|
||||||
|
|||||||
@@ -54,10 +54,31 @@ fun ChusanController.cmApiInit() {
|
|||||||
db.userGacha.save(it)
|
db.userGacha.save(it)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Set the hasCompleted to true
|
||||||
|
val printState = db.userCardPrintState.findByUserAndGachaIdAndHasCompleted(u, gachaId, false)
|
||||||
|
|
||||||
|
if (printState.isEmpty()) return@api null
|
||||||
|
|
||||||
|
printState.forEach { it.hasCompleted = true }
|
||||||
|
db.userCardPrintState.saveAll(printState)
|
||||||
|
|
||||||
|
// Append the order ID to the response with the key "orderId"
|
||||||
|
val fullPrintState = printState.map {
|
||||||
|
mapOf(
|
||||||
|
"orderId" to it.id,
|
||||||
|
"hasCompleted" to it.hasCompleted,
|
||||||
|
"limitDate" to it.limitDate.toString(),
|
||||||
|
"placeId" to it.placeId,
|
||||||
|
"cardId" to it.cardId,
|
||||||
|
"gachaId" to it.gachaId,
|
||||||
|
"userId" to uid
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
mapOf(
|
mapOf(
|
||||||
"returnCode" to 1,
|
"returnCode" to 1,
|
||||||
"apiName" to "CMUpsertUserGachaApi",
|
"apiName" to "CMUpsertUserGachaApi",
|
||||||
"userCardPrintStateList" to db.userCardPrintState.findByUserAndGachaIdAndHasCompleted(u, gachaId, false)
|
"userCardPrintStateList" to fullPrintState
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -3,6 +3,10 @@ package icu.samnyan.aqua.sega.chusan.model.userdata
|
|||||||
import com.fasterxml.jackson.annotation.JsonIgnore
|
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||||
import com.fasterxml.jackson.annotation.JsonInclude
|
import com.fasterxml.jackson.annotation.JsonInclude
|
||||||
import com.fasterxml.jackson.annotation.JsonProperty
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
|
import com.fasterxml.jackson.core.JsonParser
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationContext
|
||||||
|
import com.fasterxml.jackson.databind.JsonDeserializer
|
||||||
|
import com.fasterxml.jackson.databind.annotation.JsonDeserialize
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize
|
||||||
import icu.samnyan.aqua.net.games.BaseEntity
|
import icu.samnyan.aqua.net.games.BaseEntity
|
||||||
import icu.samnyan.aqua.net.games.IUserData
|
import icu.samnyan.aqua.net.games.IUserData
|
||||||
@@ -10,8 +14,22 @@ import icu.samnyan.aqua.sega.chusan.model.request.UserEmoney
|
|||||||
import icu.samnyan.aqua.sega.general.model.Card
|
import icu.samnyan.aqua.sega.general.model.Card
|
||||||
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
|
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
|
import kotlinx.io.IOException
|
||||||
import lombok.NoArgsConstructor
|
import lombok.NoArgsConstructor
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
|
import java.time.format.DateTimeFormatter
|
||||||
|
|
||||||
|
class FlexibleDateTimeDeserializer : JsonDeserializer<LocalDateTime?>() {
|
||||||
|
@Throws(IOException::class)
|
||||||
|
public override fun deserialize(p: JsonParser, ctxt: DeserializationContext?): LocalDateTime {
|
||||||
|
return LocalDateTime.parse(p.getText(), FORMATTER)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
// Card Maker needs the date ending with ".0" and chunithm sends the dates without it so we need a flexible parser
|
||||||
|
private val FORMATTER: DateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss[.S]")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Entity(name = "ChusanUserData")
|
@Entity(name = "ChusanUserData")
|
||||||
@Table(name = "chusan_user_data")
|
@Table(name = "chusan_user_data")
|
||||||
@@ -50,12 +68,14 @@ class Chu3UserData : BaseEntity(), IUserData {
|
|||||||
var totalExpertHighScore: Long = 0
|
var totalExpertHighScore: Long = 0
|
||||||
var totalMasterHighScore: Long = 0
|
var totalMasterHighScore: Long = 0
|
||||||
var totalUltimaHighScore: Long = 0
|
var totalUltimaHighScore: Long = 0
|
||||||
|
@JsonDeserialize(using = FlexibleDateTimeDeserializer::class)
|
||||||
var eventWatchedDate: LocalDateTime = LocalDateTime.now()
|
var eventWatchedDate: LocalDateTime = LocalDateTime.now()
|
||||||
var friendCount = 0
|
var friendCount = 0
|
||||||
var firstGameId: String = ""
|
var firstGameId: String = ""
|
||||||
var firstRomVersion: String = ""
|
var firstRomVersion: String = ""
|
||||||
var firstDataVersion: String = ""
|
var firstDataVersion: String = ""
|
||||||
|
|
||||||
|
@JsonDeserialize(using = FlexibleDateTimeDeserializer::class)
|
||||||
override var firstPlayDate: LocalDateTime = LocalDateTime.now()
|
override var firstPlayDate: LocalDateTime = LocalDateTime.now()
|
||||||
var lastGameId: String = ""
|
var lastGameId: String = ""
|
||||||
|
|
||||||
@@ -65,6 +85,7 @@ class Chu3UserData : BaseEntity(), IUserData {
|
|||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
var lastLoginDate: LocalDateTime = LocalDateTime.now()
|
var lastLoginDate: LocalDateTime = LocalDateTime.now()
|
||||||
|
|
||||||
|
@JsonDeserialize(using = FlexibleDateTimeDeserializer::class)
|
||||||
override var lastPlayDate: LocalDateTime = LocalDateTime.now()
|
override var lastPlayDate: LocalDateTime = LocalDateTime.now()
|
||||||
var lastPlaceId = 0
|
var lastPlaceId = 0
|
||||||
var lastPlaceName: String = ""
|
var lastPlaceName: String = ""
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package icu.samnyan.aqua.sega.chusan.model.userdata
|
package icu.samnyan.aqua.sega.chusan.model.userdata
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||||
import jakarta.persistence.Entity
|
import jakarta.persistence.Entity
|
||||||
import jakarta.persistence.Table
|
import jakarta.persistence.Table
|
||||||
import java.time.LocalDateTime
|
import java.time.LocalDateTime
|
||||||
@@ -8,6 +9,8 @@ import java.time.LocalDateTime
|
|||||||
@Table(name = "chusan_user_print_state")
|
@Table(name = "chusan_user_print_state")
|
||||||
class UserCardPrintState(
|
class UserCardPrintState(
|
||||||
var hasCompleted: Boolean = false,
|
var hasCompleted: Boolean = false,
|
||||||
|
|
||||||
|
@JsonIgnore
|
||||||
var limitDate: LocalDateTime = LocalDateTime.now(),
|
var limitDate: LocalDateTime = LocalDateTime.now(),
|
||||||
var placeId: Int = 0,
|
var placeId: Int = 0,
|
||||||
var cardId: Int = 0,
|
var cardId: Int = 0,
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ fun OngekiController.ongekiInit() {
|
|||||||
fun <T> List<T>.staticLst(key: String) = mapOf("length" to size, key to this)
|
fun <T> List<T>.staticLst(key: String) = mapOf("length" to size, key to this)
|
||||||
|
|
||||||
initUser()
|
initUser()
|
||||||
|
cmApiInit()
|
||||||
initUpsertAll()
|
initUpsertAll()
|
||||||
|
|
||||||
// Has type, but type is always 1
|
// Has type, but type is always 1
|
||||||
|
|||||||
345
src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiCMApis.kt
Normal file
345
src/main/java/icu/samnyan/aqua/sega/ongeki/OngekiCMApis.kt
Normal file
@@ -0,0 +1,345 @@
|
|||||||
|
package icu.samnyan.aqua.sega.ongeki
|
||||||
|
|
||||||
|
import ext.asDateTime
|
||||||
|
import ext.empty
|
||||||
|
import ext.int
|
||||||
|
import ext.invoke
|
||||||
|
import ext.long
|
||||||
|
import ext.mapApply
|
||||||
|
import ext.minus
|
||||||
|
import ext.parsing
|
||||||
|
import icu.samnyan.aqua.sega.ongeki.model.*
|
||||||
|
import java.time.LocalDateTime
|
||||||
|
|
||||||
|
fun OngekiController.cmApiInit() {
|
||||||
|
"CMGetUserData" {
|
||||||
|
val user = db.data.findByCard_ExtId(uid)() ?: (400 - "User not found")
|
||||||
|
mapOf("userId" to uid, "userData" to user)
|
||||||
|
}
|
||||||
|
|
||||||
|
"PrinterLogin" { mapOf("returnCode" to 1) }
|
||||||
|
"PrinterLogout" { mapOf("returnCode" to 1) }
|
||||||
|
|
||||||
|
"CMGetUserCard".unpaged("userCardList"){
|
||||||
|
db.card.findByUser_Card_ExtId(uid).map { it.apply { printCount = 99 } }
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMGetUserCharacter".unpaged("userCharacterList") { db.character.findByUser_Card_ExtId(uid)}
|
||||||
|
|
||||||
|
"CMGetUserItem" {
|
||||||
|
val kind = (parsing { data["nextIndex"]!!.long } / 10000000000L).toInt()
|
||||||
|
var dat = db.item.findByUser_Card_ExtIdAndItemKind(uid, kind)
|
||||||
|
|
||||||
|
// Check if user have infinite kaika
|
||||||
|
if (kind == OgkItemType.KaikaItem.ordinal) {
|
||||||
|
val u = db.data.findByCard_ExtId(uid)()
|
||||||
|
u?.card?.aquaUser?.gameOptions?.let {
|
||||||
|
if (it.ongekiInfiniteKaika) {
|
||||||
|
dat = listOf(UserItem().apply {
|
||||||
|
user = u
|
||||||
|
itemKind = OgkItemType.KaikaItem.ordinal
|
||||||
|
itemId = 1
|
||||||
|
stock = 999
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
mapOf("userId" to uid, "length" to dat.size, "nextIndex" to -1, "itemKind" to kind, "userItemList" to dat)
|
||||||
|
}
|
||||||
|
|
||||||
|
"GetGameGacha" {
|
||||||
|
gdb.gacha.findAll().let {
|
||||||
|
mapOf("length" to it.size, "gameGachaList" to it, "registIdList" to emptyList<Any>())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"GetGameGachaCardById" {
|
||||||
|
val gachaId = parsing { data["gachaId"]!!.long }
|
||||||
|
|
||||||
|
gdb.gachaCard.findAllByGachaId(gachaId).let {
|
||||||
|
mapOf("gachaId" to gachaId, "length" to it.size, "isPickup" to false, "gameGachaCardList" to it,
|
||||||
|
"emissionList" to empty, "afterCalcList" to empty
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"GetUserGacha" {
|
||||||
|
db.gacha.findByUser_Card_ExtId(uid).let{
|
||||||
|
mapOf("userId" to uid, "length" to it.size, "nextIndex" to 0, "userGachaList" to it)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"RollGacha" {
|
||||||
|
val (gachaId, tmpTimes) = parsing { data["gachaId"]!!.long to data["times"]!!.int }
|
||||||
|
var times = tmpTimes
|
||||||
|
|
||||||
|
val user = db.data.findByCard_ExtId(uid)() ?: (400 - "User not found")
|
||||||
|
val foundGacha = gdb.gacha.findById(gachaId)() ?: (404 - "Gacha not found")
|
||||||
|
|
||||||
|
val foundUserGacha = db.gacha.findByUserAndGachaId(user, gachaId)
|
||||||
|
|
||||||
|
// Official gacha percentages: R 76% SR 21% SSR 3%
|
||||||
|
val probabilities = listOf(76, 21, 3)
|
||||||
|
var rarityResults: List<Int> = emptyList()
|
||||||
|
|
||||||
|
// If this is the first x5 pull or any x11 pull, an SR is guaranteed
|
||||||
|
if(foundUserGacha != null && ((times == 5 && foundUserGacha.fiveGachaCnt==0) || times==11)){
|
||||||
|
rarityResults = listOf(3)
|
||||||
|
times -= 1
|
||||||
|
}
|
||||||
|
|
||||||
|
rarityResults = rarityResults + List(times) {
|
||||||
|
val rand = (1..100).random()
|
||||||
|
when {
|
||||||
|
rand <= probabilities[0] -> 2
|
||||||
|
rand <= probabilities[0] + probabilities[1] -> 3
|
||||||
|
else -> 4
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
val pulledCards = if(foundGacha.kind==0 || foundGacha.kind==3) {
|
||||||
|
// If it is the free or the permanent gacha, include cards from the gacha itself
|
||||||
|
gdb.gachaCard.findAllByGachaId(gachaId).groupBy { it.rarity }
|
||||||
|
} else {
|
||||||
|
// If it is a normal gacha, include all cards from the permanent gacha
|
||||||
|
gdb.gachaCard.findAllByGachaIdAndPermanent(gachaId).groupBy { it.rarity }
|
||||||
|
}
|
||||||
|
|
||||||
|
val finalPulls = rarityResults.map { rarity -> pulledCards[rarity]?.random()}
|
||||||
|
|
||||||
|
mapOf("length" to finalPulls.size, "gameGachaCardList" to finalPulls)
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMUpsertUserGacha" api@ {
|
||||||
|
val all: OngekiCMUpsertUserGacha = mapper.convert(data["cmUpsertUserGacha"]!!)
|
||||||
|
val gacha = parsing { data["gachaId"]!!.long }
|
||||||
|
val pullCount = parsing { data["gachaCnt"]!!.int }
|
||||||
|
val earnedSelectPoints = parsing { data["selectPoint"]!!.int }
|
||||||
|
|
||||||
|
// User data
|
||||||
|
val oldUser = db.data.findByCard_ExtId(uid)()
|
||||||
|
val u: UserData = all.userData?.get(0)?.apply {
|
||||||
|
id = oldUser?.id ?: 0
|
||||||
|
card = oldUser?.card ?: us.cardRepo.findByExtId(uid)() ?: (404 - "Card not found")
|
||||||
|
|
||||||
|
// Set eventWatchedDate with lastPlayDate, because client doesn't update it
|
||||||
|
cmEventWatchedDate = oldUser?.lastPlayDate ?: ""
|
||||||
|
db.data.save(this)
|
||||||
|
} ?: oldUser ?: return@api null
|
||||||
|
|
||||||
|
db.gacha.findByUserAndGachaId(u, gacha)?.apply {
|
||||||
|
totalGachaCnt += pullCount
|
||||||
|
|
||||||
|
// If the user pulled a select gacha increase the stats
|
||||||
|
if (earnedSelectPoints > 0) {
|
||||||
|
selectPoint += earnedSelectPoints
|
||||||
|
ceilingGachaCnt += pullCount
|
||||||
|
}
|
||||||
|
|
||||||
|
// Stats related with the group of pulls the user makes
|
||||||
|
if (pullCount == 5) {
|
||||||
|
fiveGachaCnt += 1
|
||||||
|
}else if (pullCount == 11) {
|
||||||
|
elevenGachaCnt+=1
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update the daily gacha
|
||||||
|
val parsedDailyGachaDate = dailyGachaDate.asDateTime()!!
|
||||||
|
if (
|
||||||
|
parsedDailyGachaDate.dayOfMonth != LocalDateTime.now().dayOfMonth ||
|
||||||
|
parsedDailyGachaDate.monthValue != LocalDateTime.now().monthValue ||
|
||||||
|
parsedDailyGachaDate.year != LocalDateTime.now().year
|
||||||
|
) {
|
||||||
|
dailyGachaCnt += pullCount
|
||||||
|
dailyGachaDate = LocalDateTime.now().toString()
|
||||||
|
}else{
|
||||||
|
dailyGachaCnt += pullCount
|
||||||
|
}
|
||||||
|
}?: UserGacha().apply {
|
||||||
|
user = u
|
||||||
|
gachaId = gacha
|
||||||
|
totalGachaCnt = pullCount
|
||||||
|
selectPoint = earnedSelectPoints
|
||||||
|
ceilingGachaCnt = if (earnedSelectPoints > 0) 1 else 0
|
||||||
|
fiveGachaCnt = if (pullCount == 5) 1 else 0
|
||||||
|
elevenGachaCnt = if (pullCount == 11) 1 else 0
|
||||||
|
dailyGachaCnt = pullCount
|
||||||
|
|
||||||
|
db.gacha.save(this)
|
||||||
|
}
|
||||||
|
|
||||||
|
all.run {
|
||||||
|
// Set users
|
||||||
|
listOfNotNull(
|
||||||
|
userCharacterList, userCardList, userItemList
|
||||||
|
).flatten().forEach { it.user = u }
|
||||||
|
|
||||||
|
// UserCharacterList
|
||||||
|
userCharacterList?.let { list ->
|
||||||
|
db.character.saveAll(list.distinctBy { it.characterId }.mapApply {
|
||||||
|
id = db.character.findByUserAndCharacterId(u, characterId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// UserCardList
|
||||||
|
userCardList?.let { list ->
|
||||||
|
db.card.saveAll(list.distinctBy { it.cardId }.mapApply {
|
||||||
|
id = db.card.findByUserAndCardId(u, cardId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// UserItemList
|
||||||
|
userItemList?.let { list ->
|
||||||
|
db.item.saveAll(list.distinctBy { it.itemKind to it.itemId }.mapApply {
|
||||||
|
id = db.item.findByUserAndItemKindAndItemId(u, itemKind, itemId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMUpsertUserAll" api@{
|
||||||
|
val all: OngekiCMUpsertAll = mapper.convert(data["cmUpsertUserAll"]!!)
|
||||||
|
|
||||||
|
// User data
|
||||||
|
val oldUser = db.data.findByCard_ExtId(uid)()
|
||||||
|
val u: UserData = all.userData?.get(0)?.apply {
|
||||||
|
id = oldUser?.id ?: 0
|
||||||
|
card = oldUser?.card ?: us.cardRepo.findByExtId(uid)() ?: (404 - "Card not found")
|
||||||
|
|
||||||
|
// Set eventWatchedDate with lastPlayDate, because client doesn't update it
|
||||||
|
cmEventWatchedDate = oldUser?.lastPlayDate ?: ""
|
||||||
|
db.data.save(this)
|
||||||
|
} ?: oldUser ?: return@api null
|
||||||
|
|
||||||
|
all.run {
|
||||||
|
// Set users
|
||||||
|
listOfNotNull(
|
||||||
|
userActivityList, userCharacterList, userCardList, userItemList
|
||||||
|
).flatten().forEach { it.user = u }
|
||||||
|
|
||||||
|
// UserActivityList
|
||||||
|
userActivityList?.let { list ->
|
||||||
|
db.activity.saveAll(list.distinctBy { it.activityId to it.kind }.mapApply {
|
||||||
|
id = db.activity.findByUserAndKindAndActivityId(u, kind, activityId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// UserCharacterList
|
||||||
|
userCharacterList?.let { list ->
|
||||||
|
db.character.saveAll(list.distinctBy { it.characterId }.mapApply {
|
||||||
|
id = db.character.findByUserAndCharacterId(u, characterId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// UserCardList
|
||||||
|
userCardList?.let { list ->
|
||||||
|
db.card.saveAll(list.distinctBy { it.cardId }.mapApply {
|
||||||
|
id = db.card.findByUserAndCardId(u, cardId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
// UserItemList
|
||||||
|
userItemList?.let { list ->
|
||||||
|
db.item.saveAll(list.distinctBy { it.itemKind to it.itemId }.mapApply {
|
||||||
|
id = db.item.findByUserAndItemKindAndItemId(u, itemKind, itemId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMUpsertUserSelectGacha" api@ {
|
||||||
|
val all: OngekiCMUpsertUserSelectGacha = mapper.convert(data["cmUpsertUserSelectGacha"]!!)
|
||||||
|
val selectLog:List<OngekiCMSelectGachaLog> = mapper.convert(data["selectGachaLogList"]!!)
|
||||||
|
|
||||||
|
// User data
|
||||||
|
val oldUser = db.data.findByCard_ExtId(uid)()
|
||||||
|
val u: UserData = all.userData?.get(0)?.apply {
|
||||||
|
id = oldUser?.id ?: 0
|
||||||
|
card = oldUser?.card ?: us.cardRepo.findByExtId(uid)() ?: (404 - "Card not found")
|
||||||
|
|
||||||
|
// Set eventWatchedDate with lastPlayDate, because client doesn't update it
|
||||||
|
cmEventWatchedDate = oldUser?.lastPlayDate ?: ""
|
||||||
|
db.data.save(this)
|
||||||
|
} ?: oldUser ?: return@api null
|
||||||
|
|
||||||
|
if(selectLog.isNotEmpty()) {
|
||||||
|
val selectionInfo = selectLog.first()
|
||||||
|
|
||||||
|
db.gacha.findByUserAndGachaId(u, selectionInfo.gachaId)?.apply {
|
||||||
|
// Total reset of selectPoints
|
||||||
|
selectPoint = 0
|
||||||
|
|
||||||
|
// Set the flag for the selection gacha so that the user cant use it anymore
|
||||||
|
useSelectPoint = 1
|
||||||
|
|
||||||
|
} ?: UserGacha().apply {
|
||||||
|
// It should be impossible to reach this
|
||||||
|
user = u
|
||||||
|
gachaId = selectionInfo.gachaId
|
||||||
|
|
||||||
|
db.gacha.save(this)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
all.run {
|
||||||
|
// Set users
|
||||||
|
listOfNotNull(
|
||||||
|
userCharacterList, userCardList
|
||||||
|
).flatten().forEach { it.user = u }
|
||||||
|
|
||||||
|
|
||||||
|
if (all.isNewCharacterList?.contains("1") ?: false) {
|
||||||
|
// UserCharacterList
|
||||||
|
userCharacterList?.let { list ->
|
||||||
|
db.character.saveAll(list.distinctBy { it.characterId }.mapApply {
|
||||||
|
id = db.character.findByUserAndCharacterId(u, characterId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (all.isNewCardList?.contains("1") ?: false) {
|
||||||
|
// UserCardList
|
||||||
|
userCardList?.let { list ->
|
||||||
|
db.card.saveAll(list.distinctBy { it.cardId }.mapApply {
|
||||||
|
id = db.card.findByUserAndCardId(u, cardId)()?.id ?: 0
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMUpsertUserPrintPlaylog" api@ {
|
||||||
|
// User payment logs, useless
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMUpsertUserPrint" api@ {
|
||||||
|
// User print information, useless
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMUpsertUserPrintlog" api@ {
|
||||||
|
// User print logs, useless
|
||||||
|
null
|
||||||
|
}
|
||||||
|
|
||||||
|
"CMGetUserGachaSupply" {
|
||||||
|
// Mock function, not sure of functionality
|
||||||
|
|
||||||
|
mapOf("supplyId" to 0, "length" to 0, "supplyCardList" to emptyList<Any>())
|
||||||
|
}
|
||||||
|
|
||||||
|
"GetGameTheater" {
|
||||||
|
// Mock function, not sure of functionality
|
||||||
|
|
||||||
|
mapOf("length" to 0, "gameTheaterList" to emptyList<Any>(), "registIdList" to emptyList<Any>())
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -151,6 +151,19 @@ interface OgkUserRegionsRepo: OngekiUserLinked<UserRegions> {
|
|||||||
fun findByUserAndRegionId(user: UserData, regionId: Int): UserRegions?
|
fun findByUserAndRegionId(user: UserData, regionId: Int): UserRegions?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface OgkGameGachaCardRepo : JpaRepository<GameGachaCard, Long> {
|
||||||
|
fun findAllByGachaId(gachaId: Long): List<GameGachaCard>
|
||||||
|
|
||||||
|
@Query("SELECT g FROM OngekiGameGachaCard g WHERE g.gachaId = :gachaId OR g.gachaId = 1112")
|
||||||
|
fun findAllByGachaIdAndPermanent(gachaId: Long): List<GameGachaCard>
|
||||||
|
}
|
||||||
|
|
||||||
|
interface OgkGameGachaRepo : JpaRepository<GameGacha, Long>
|
||||||
|
|
||||||
|
interface OgkUserGachaRepo : OngekiUserLinked<UserGacha> {
|
||||||
|
fun findByUserAndGachaId(user: UserData, gachaId: Long): UserGacha?
|
||||||
|
}
|
||||||
|
|
||||||
// Re:Fresh
|
// Re:Fresh
|
||||||
interface OgkUserEventMapRepo : OngekiUserLinked<UserEventMap>
|
interface OgkUserEventMapRepo : OngekiUserLinked<UserEventMap>
|
||||||
interface OgkUserSkinRepo : OngekiUserLinked<UserSkin>
|
interface OgkUserSkinRepo : OngekiUserLinked<UserSkin>
|
||||||
@@ -195,6 +208,7 @@ class OngekiUserRepos(
|
|||||||
val eventMap: OgkUserEventMapRepo,
|
val eventMap: OgkUserEventMapRepo,
|
||||||
val skin: OgkUserSkinRepo,
|
val skin: OgkUserSkinRepo,
|
||||||
val regions: OgkUserRegionsRepo,
|
val regions: OgkUserRegionsRepo,
|
||||||
|
val gacha: OgkUserGachaRepo,
|
||||||
)
|
)
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -207,6 +221,8 @@ class OngekiGameRepos(
|
|||||||
val present: OgkGamePresentRepo,
|
val present: OgkGamePresentRepo,
|
||||||
val reward: OgkGameRewardRepo,
|
val reward: OgkGameRewardRepo,
|
||||||
val skill: OgkGameSkillRepo,
|
val skill: OgkGameSkillRepo,
|
||||||
|
val gachaCard: OgkGameGachaCardRepo,
|
||||||
|
val gacha:OgkGameGachaRepo
|
||||||
)
|
)
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package icu.samnyan.aqua.sega.ongeki.model
|
package icu.samnyan.aqua.sega.ongeki.model
|
||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonIgnore
|
import com.fasterxml.jackson.annotation.JsonIgnore
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
|
|
||||||
@Entity(name = "OngekiGameCard")
|
@Entity(name = "OngekiGameCard")
|
||||||
@@ -112,3 +113,41 @@ class GameSkill {
|
|||||||
var category: String = ""
|
var category: String = ""
|
||||||
var info: String = ""
|
var info: String = ""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Entity(name = "OngekiGameGachaCard")
|
||||||
|
@Table(name = "ongeki_game_gacha_card")
|
||||||
|
class GameGachaCard {
|
||||||
|
@Id
|
||||||
|
var cardId: Long = 0
|
||||||
|
var gachaId: Long = 0
|
||||||
|
var rarity: Int = 0
|
||||||
|
var weight: Int = 0
|
||||||
|
|
||||||
|
@JsonProperty("isPickup")
|
||||||
|
var isPickup: Boolean = false
|
||||||
|
|
||||||
|
@JsonProperty("isSelect")
|
||||||
|
var isSelect: Boolean = false
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(name = "OngekiGameGacha")
|
||||||
|
@Table(name = "ongeki_game_gacha")
|
||||||
|
class GameGacha {
|
||||||
|
@Id
|
||||||
|
var gachaId: Long = 0
|
||||||
|
var gachaName: String = ""
|
||||||
|
var type: Int = 0
|
||||||
|
var kind: Int = 0
|
||||||
|
var maxSelectPoint: Int = 0
|
||||||
|
var ceilingCnt: Int = 0
|
||||||
|
var changeRateCnt1: Int = 0
|
||||||
|
var changeRateCnt2: Int = 0
|
||||||
|
var startDate: String = ""
|
||||||
|
var endDate: String = ""
|
||||||
|
var noticeStartDate: String = ""
|
||||||
|
var noticeEndDate: String = ""
|
||||||
|
var convertEndDate: String = ""
|
||||||
|
|
||||||
|
@JsonProperty("isCeiling")
|
||||||
|
var isCeiling: Boolean = false
|
||||||
|
}
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
package icu.samnyan.aqua.sega.ongeki.model
|
||||||
|
|
||||||
|
class OngekiCMUpsertUserGacha {
|
||||||
|
var userData: List<UserData>? = null
|
||||||
|
var userCharacterList: List<UserCharacter>? = null
|
||||||
|
var userCardList: List<UserCard>? = null
|
||||||
|
var gameGachaCardList: List<GameGachaCard>? = null
|
||||||
|
var userItemList: List<UserItem>? = null
|
||||||
|
|
||||||
|
// These are strings with as many 1s as new elements are present
|
||||||
|
var isNewCharacterList: String? = null
|
||||||
|
var isNewCardList: String? = null
|
||||||
|
var isNewItemList: String? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
class OngekiCMUpsertAll {
|
||||||
|
var userData: List<UserData>? = null
|
||||||
|
var userActivityList: List<UserActivity>? = null
|
||||||
|
var userCharacterList: List<UserCharacter>? = null
|
||||||
|
var userCardList: List<UserCard>? = null
|
||||||
|
var userItemList: List<UserItem>? = null
|
||||||
|
|
||||||
|
// These are strings with as many 1s as new elements are given
|
||||||
|
var isNewCharacterList: String? = null
|
||||||
|
var isNewCardList: String? = null
|
||||||
|
var isNewItemList: String? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
class OngekiCMUpsertUserSelectGacha {
|
||||||
|
var userData: List<UserData>? = null
|
||||||
|
var userCharacterList: List<UserCharacter>? = null
|
||||||
|
var userCardList: List<UserCard>? = null
|
||||||
|
|
||||||
|
// These are strings with as many 1s as new elements are given
|
||||||
|
var isNewCharacterList: String? = null
|
||||||
|
var isNewCardList: String? = null
|
||||||
|
}
|
||||||
|
|
||||||
|
class OngekiCMSelectGachaLog {
|
||||||
|
var gachaId: Long = 0
|
||||||
|
var useSelectPoint: Int = 0
|
||||||
|
var convertType: Int = 0
|
||||||
|
var convertItem: Int = 0
|
||||||
|
}
|
||||||
@@ -8,6 +8,7 @@ import icu.samnyan.aqua.sega.general.model.Card
|
|||||||
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
|
import icu.samnyan.aqua.sega.util.jackson.AccessCodeSerializer
|
||||||
import jakarta.persistence.*
|
import jakarta.persistence.*
|
||||||
import java.time.LocalDate
|
import java.time.LocalDate
|
||||||
|
import java.time.LocalDateTime
|
||||||
|
|
||||||
@MappedSuperclass
|
@MappedSuperclass
|
||||||
class OngekiUserEntity : BaseEntity(), IUserEntity<UserData> {
|
class OngekiUserEntity : BaseEntity(), IUserEntity<UserData> {
|
||||||
@@ -517,10 +518,27 @@ class UserSkin : OngekiUserEntity() {
|
|||||||
@Entity(name = "OngekiUserRegions")
|
@Entity(name = "OngekiUserRegions")
|
||||||
@Table(
|
@Table(
|
||||||
name = "ongeki_user_regions",
|
name = "ongeki_user_regions",
|
||||||
uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "regionId"])]
|
uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "region_id"])]
|
||||||
)
|
)
|
||||||
class UserRegions : OngekiUserEntity() {
|
class UserRegions : OngekiUserEntity() {
|
||||||
var regionId = 0
|
var regionId = 0
|
||||||
var playCount = 1
|
var playCount = 1
|
||||||
var created: String = LocalDate.now().toString()
|
var created: String = LocalDate.now().toString()
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(name="OngekiUserGacha")
|
||||||
|
@Table(
|
||||||
|
name = "ongeki_user_gacha",
|
||||||
|
uniqueConstraints = [UniqueConstraint(columnNames = ["user_id", "gacha_id"])]
|
||||||
|
)
|
||||||
|
class UserGacha : OngekiUserEntity() {
|
||||||
|
var gachaId:Long = 0
|
||||||
|
var totalGachaCnt = 0
|
||||||
|
var ceilingGachaCnt = 0
|
||||||
|
var selectPoint = 0
|
||||||
|
var useSelectPoint = 0
|
||||||
|
var dailyGachaCnt = 0
|
||||||
|
var fiveGachaCnt = 0
|
||||||
|
var elevenGachaCnt = 0
|
||||||
|
var dailyGachaDate: String = LocalDateTime.now().toString()
|
||||||
}
|
}
|
||||||
840
src/main/resources/db/80/V1000_57__ongekicm.sql
Normal file
840
src/main/resources/db/80/V1000_57__ongekicm.sql
Normal file
@@ -0,0 +1,840 @@
|
|||||||
|
CREATE TABLE ongeki_game_gacha
|
||||||
|
(
|
||||||
|
gacha_id BIGINT AUTO_INCREMENT NOT NULL,
|
||||||
|
gacha_name VARCHAR(255) NOT NULL,
|
||||||
|
type INT NOT NULL,
|
||||||
|
kind INT NOT NULL,
|
||||||
|
is_ceiling BOOLEAN NOT NULL,
|
||||||
|
max_select_point INT NOT NULL,
|
||||||
|
ceiling_cnt INT NOT NULL,
|
||||||
|
change_rate_cnt1 INT NOT NULL,
|
||||||
|
change_rate_cnt2 INT NOT NULL,
|
||||||
|
start_date DATETIME NOT NULL,
|
||||||
|
end_date DATETIME NOT NULL,
|
||||||
|
notice_start_date DATETIME NOT NULL,
|
||||||
|
notice_end_date DATETIME NOT NULL,
|
||||||
|
convert_end_date DATETIME NOT NULL,
|
||||||
|
CONSTRAINT pk_ongk_gacha PRIMARY KEY (gacha_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE ongeki_game_gacha_card
|
||||||
|
(
|
||||||
|
card_id BIGINT AUTO_INCREMENT NOT NULL,
|
||||||
|
gacha_id BIGINT NOT NULL,
|
||||||
|
rarity INT NOT NULL,
|
||||||
|
weight INT NOT NULL,
|
||||||
|
is_pickup BOOLEAN NOT NULL,
|
||||||
|
is_select BOOLEAN NOT NULL,
|
||||||
|
CONSTRAINT pk_ongk_gacha_card PRIMARY KEY (card_id, gacha_id)
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE ongeki_game_gacha_card
|
||||||
|
ADD CONSTRAINT FK_ONGEKI_GAME_GACHA_CARD_ON_GACHA FOREIGN KEY (gacha_id) REFERENCES ongeki_game_gacha (gacha_id );
|
||||||
|
|
||||||
|
CREATE TABLE ongeki_user_gacha
|
||||||
|
(
|
||||||
|
id BIGINT AUTO_INCREMENT NOT NULL,
|
||||||
|
user_id BIGINT NOT NULL,
|
||||||
|
gacha_id BIGINT NOT NULL,
|
||||||
|
total_gacha_cnt INT NOT NULL,
|
||||||
|
ceiling_gacha_cnt INT NOT NULL,
|
||||||
|
select_point INT NOT NULL,
|
||||||
|
use_select_point INT NOT NULL,
|
||||||
|
daily_gacha_cnt INT NOT NULL,
|
||||||
|
five_gacha_cnt INT NOT NULL,
|
||||||
|
eleven_gacha_cnt INT NOT NULL,
|
||||||
|
daily_gacha_date DATETIME NOT NULL,
|
||||||
|
CONSTRAINT pk_ongk_user_gacha PRIMARY KEY (id)
|
||||||
|
);
|
||||||
|
|
||||||
|
ALTER TABLE ongeki_user_gacha
|
||||||
|
ADD CONSTRAINT FK_ONGEKI_USER_GACHA_ON_USER FOREIGN KEY (user_id) REFERENCES ongeki_user_data (id);
|
||||||
|
ALTER TABLE ongeki_user_gacha
|
||||||
|
ADD CONSTRAINT FK_ONGEKI_USER_GACHA_ON_GACHA FOREIGN KEY (gacha_id) REFERENCES ongeki_game_gacha (gacha_id);
|
||||||
|
ALTER TABLE ongeki_user_gacha
|
||||||
|
ADD CONSTRAINT unq_ongk_user_gacha UNIQUE (user_id, gacha_id);
|
||||||
|
|
||||||
|
INSERT INTO ongeki_game_gacha (gacha_id, gacha_name, `type`, kind, is_ceiling, max_select_point, ceiling_cnt, change_rate_cnt1, change_rate_cnt2, start_date, end_date, notice_start_date, notice_end_date, convert_end_date)
|
||||||
|
VALUES
|
||||||
|
(1011, '無料ガチャ', 0, 3, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1012, '無料ガチャ(SR確定)', 0, 3, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1112, 'レギュラーガチャ', 0, 0, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1123, 'AQUA属性オンリーガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1128, 'bitter chocolate kiss ガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1135, 'オンゲキ bright 大感謝祭ガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1137, 'テアトル展開!プロジェクト奏坂ドールズリミテッドガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1138, 'WONDER SHOOTER EASTER ガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1139, 'ラスボス登場!?悪の侵略者ガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1140, 'カラフルアンブレラガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1141, 'It''s Showtime!ワンダフルサーカスガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1143, 'マーチングポケッツ ピックアップガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1144, 'bitter flavor ピックアップガチャ', 0, 4, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1145, '7EVENDAYS⇔HOLIDAYS ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1146, '⊿TRiEDGE ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1147, 'R.B.P. ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1148, '皇城 セツナ ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1149, 'ASTERISM ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1151, 'スラッシュスキル ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1152, '高瀬 梨緒オンリーガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1154, 'トラストスキル ピックアップガチャ', 0, 1, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1156, 'bright memory振り返りガチャ', 0, 2, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1159, 'オンゲキ&オンゲキ PLUS ピックアップガチャ', 0, 2, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1160, 'SUMMER & SUMMER PLUS ピックアップガチャ', 0, 2, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1161, 'R.E.D. & R.E.D. PLUS ピックアップガチャ', 0, 2, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1162, 'bright & bright MEMORY ピックアップガチャ', 0, 2, 0, 0, 0, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000'),
|
||||||
|
(1167, '6周年記念!! 6rd Anniversaryセレクトガチャ', 0, 2, 1, 11, 11, 0, 0, '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2020-01-01 00:00:00.000', '2999-01-01 00:00:00.000', '2999-01-01 00:00:00.000');
|
||||||
|
|
||||||
|
INSERT INTO ongeki_game_gacha_card (card_id, gacha_id,rarity,weight,is_pickup,is_select)
|
||||||
|
VALUES
|
||||||
|
(100003, 1112, 2, 100, 0, 0),
|
||||||
|
(100003, 1149, 2, 100, 0, 0),
|
||||||
|
(100004, 1112, 2, 100, 0, 0),
|
||||||
|
(100004, 1149, 2, 100, 0, 0),
|
||||||
|
(100006, 1112, 3, 100, 0, 0),
|
||||||
|
(100006, 1159, 3, 100, 0, 0),
|
||||||
|
(100007, 1112, 3, 100, 0, 0),
|
||||||
|
(100007, 1159, 3, 100, 0, 0),
|
||||||
|
(100008, 1112, 4, 100, 0, 0),
|
||||||
|
(100008, 1159, 4, 100, 0, 0),
|
||||||
|
(100008, 1167, 4, 100, 0, 1),
|
||||||
|
(100012, 1112, 2, 100, 0, 0),
|
||||||
|
(100012, 1149, 2, 100, 0, 0),
|
||||||
|
(100013, 1112, 2, 100, 0, 0),
|
||||||
|
(100013, 1149, 2, 100, 0, 0),
|
||||||
|
(100015, 1112, 3, 100, 0, 0),
|
||||||
|
(100015, 1159, 3, 100, 0, 0),
|
||||||
|
(100016, 1112, 3, 100, 0, 0),
|
||||||
|
(100016, 1159, 3, 100, 0, 0),
|
||||||
|
(100017, 1112, 4, 100, 0, 0),
|
||||||
|
(100017, 1159, 4, 100, 0, 0),
|
||||||
|
(100017, 1167, 4, 100, 0, 1),
|
||||||
|
(100021, 1112, 2, 100, 0, 0),
|
||||||
|
(100021, 1149, 2, 100, 0, 0),
|
||||||
|
(100022, 1112, 2, 100, 0, 0),
|
||||||
|
(100022, 1149, 2, 100, 0, 0),
|
||||||
|
(100024, 1112, 3, 100, 0, 0),
|
||||||
|
(100024, 1159, 3, 100, 0, 0),
|
||||||
|
(100025, 1112, 3, 100, 0, 0),
|
||||||
|
(100025, 1159, 3, 100, 0, 0),
|
||||||
|
(100026, 1112, 4, 100, 0, 0),
|
||||||
|
(100026, 1159, 4, 100, 0, 0),
|
||||||
|
(100026, 1167, 4, 100, 0, 1),
|
||||||
|
(100030, 1112, 2, 100, 0, 0),
|
||||||
|
(100030, 1146, 2, 100, 0, 0),
|
||||||
|
(100030, 1152, 2, 100, 1, 0),
|
||||||
|
(100033, 1152, 3, 100, 1, 0),
|
||||||
|
(100033, 1159, 3, 100, 0, 0),
|
||||||
|
(100034, 1112, 4, 100, 0, 0),
|
||||||
|
(100034, 1152, 4, 100, 1, 0),
|
||||||
|
(100034, 1159, 4, 100, 0, 0),
|
||||||
|
(100034, 1167, 4, 100, 0, 1),
|
||||||
|
(100037, 1112, 2, 100, 0, 0),
|
||||||
|
(100037, 1146, 2, 100, 0, 0),
|
||||||
|
(100040, 1112, 3, 100, 0, 0),
|
||||||
|
(100040, 1159, 3, 100, 0, 0),
|
||||||
|
(100041, 1112, 4, 100, 0, 0),
|
||||||
|
(100041, 1159, 4, 100, 0, 0),
|
||||||
|
(100041, 1167, 4, 100, 0, 1),
|
||||||
|
(100044, 1112, 2, 100, 0, 0),
|
||||||
|
(100044, 1146, 2, 100, 0, 0),
|
||||||
|
(100047, 1112, 3, 100, 0, 0),
|
||||||
|
(100047, 1159, 3, 100, 0, 0),
|
||||||
|
(100048, 1112, 4, 100, 0, 0),
|
||||||
|
(100048, 1159, 4, 100, 0, 0),
|
||||||
|
(100048, 1167, 4, 100, 0, 1),
|
||||||
|
(100051, 1112, 2, 100, 0, 0),
|
||||||
|
(100051, 1144, 2, 100, 0, 0),
|
||||||
|
(100053, 1112, 3, 100, 0, 0),
|
||||||
|
(100053, 1144, 3, 100, 0, 0),
|
||||||
|
(100053, 1159, 3, 100, 0, 0),
|
||||||
|
(100054, 1112, 4, 100, 0, 0),
|
||||||
|
(100054, 1144, 4, 100, 0, 0),
|
||||||
|
(100054, 1159, 4, 100, 0, 0),
|
||||||
|
(100054, 1167, 4, 100, 0, 1),
|
||||||
|
(100057, 1112, 2, 100, 0, 0),
|
||||||
|
(100057, 1144, 2, 100, 0, 0),
|
||||||
|
(100059, 1112, 3, 100, 0, 0),
|
||||||
|
(100059, 1144, 3, 100, 0, 0),
|
||||||
|
(100059, 1159, 3, 100, 0, 0),
|
||||||
|
(100060, 1112, 4, 100, 0, 0),
|
||||||
|
(100060, 1144, 4, 100, 0, 0),
|
||||||
|
(100060, 1159, 4, 100, 0, 0),
|
||||||
|
(100060, 1167, 4, 100, 0, 1),
|
||||||
|
(100063, 1112, 2, 100, 0, 0),
|
||||||
|
(100063, 1147, 2, 100, 0, 0),
|
||||||
|
(100065, 1112, 3, 100, 0, 0),
|
||||||
|
(100065, 1147, 3, 100, 0, 0),
|
||||||
|
(100065, 1159, 3, 100, 0, 0),
|
||||||
|
(100066, 1112, 4, 100, 0, 0),
|
||||||
|
(100066, 1147, 4, 100, 0, 0),
|
||||||
|
(100066, 1159, 4, 100, 0, 0),
|
||||||
|
(100066, 1167, 4, 100, 0, 1),
|
||||||
|
(100069, 1112, 2, 100, 0, 0),
|
||||||
|
(100069, 1145, 2, 100, 0, 0),
|
||||||
|
(100071, 1112, 3, 100, 0, 0),
|
||||||
|
(100071, 1145, 3, 100, 0, 0),
|
||||||
|
(100071, 1159, 3, 100, 0, 0),
|
||||||
|
(100072, 1112, 4, 100, 0, 0),
|
||||||
|
(100072, 1145, 4, 100, 0, 0),
|
||||||
|
(100072, 1159, 4, 100, 0, 0),
|
||||||
|
(100072, 1167, 4, 100, 0, 1),
|
||||||
|
(100075, 1112, 2, 100, 0, 0),
|
||||||
|
(100075, 1145, 2, 100, 0, 0),
|
||||||
|
(100077, 1112, 3, 100, 0, 0),
|
||||||
|
(100077, 1145, 3, 100, 0, 0),
|
||||||
|
(100077, 1159, 3, 100, 0, 0),
|
||||||
|
(100078, 1112, 4, 100, 0, 0),
|
||||||
|
(100078, 1145, 4, 100, 0, 0),
|
||||||
|
(100078, 1159, 4, 100, 0, 0),
|
||||||
|
(100078, 1167, 4, 100, 0, 1),
|
||||||
|
(100081, 1112, 2, 100, 0, 0),
|
||||||
|
(100081, 1147, 2, 100, 0, 0),
|
||||||
|
(100083, 1112, 3, 100, 0, 0),
|
||||||
|
(100083, 1147, 3, 100, 0, 0),
|
||||||
|
(100083, 1159, 3, 100, 0, 0),
|
||||||
|
(100084, 1112, 4, 100, 0, 0),
|
||||||
|
(100084, 1147, 4, 100, 0, 0),
|
||||||
|
(100084, 1159, 4, 100, 0, 0),
|
||||||
|
(100084, 1167, 4, 100, 0, 1),
|
||||||
|
(100087, 1112, 2, 100, 0, 0),
|
||||||
|
(100087, 1147, 2, 100, 0, 0),
|
||||||
|
(100089, 1112, 3, 100, 0, 0),
|
||||||
|
(100089, 1147, 3, 100, 0, 0),
|
||||||
|
(100089, 1159, 3, 100, 0, 0),
|
||||||
|
(100090, 1112, 4, 100, 0, 0),
|
||||||
|
(100090, 1147, 4, 100, 0, 0),
|
||||||
|
(100090, 1159, 4, 100, 0, 0),
|
||||||
|
(100090, 1167, 4, 100, 0, 1),
|
||||||
|
(100173, 1112, 2, 100, 0, 0),
|
||||||
|
(100173, 1149, 2, 100, 0, 0),
|
||||||
|
(100174, 1112, 2, 100, 0, 0),
|
||||||
|
(100174, 1149, 2, 100, 0, 0),
|
||||||
|
(100175, 1112, 2, 100, 0, 0),
|
||||||
|
(100175, 1149, 2, 100, 0, 0),
|
||||||
|
(100176, 1112, 2, 100, 0, 0),
|
||||||
|
(100176, 1146, 2, 100, 0, 0),
|
||||||
|
(100176, 1152, 2, 100, 1, 0),
|
||||||
|
(100177, 1112, 2, 100, 0, 0),
|
||||||
|
(100177, 1146, 2, 100, 0, 0),
|
||||||
|
(100178, 1112, 2, 100, 0, 0),
|
||||||
|
(100178, 1146, 2, 100, 0, 0),
|
||||||
|
(100179, 1112, 2, 100, 0, 0),
|
||||||
|
(100179, 1144, 2, 100, 0, 0),
|
||||||
|
(100180, 1112, 2, 100, 0, 0),
|
||||||
|
(100180, 1144, 2, 100, 0, 0),
|
||||||
|
(100181, 1112, 2, 100, 0, 0),
|
||||||
|
(100181, 1147, 2, 100, 0, 0),
|
||||||
|
(100182, 1112, 2, 100, 0, 0),
|
||||||
|
(100182, 1145, 2, 100, 0, 0),
|
||||||
|
(100183, 1112, 2, 100, 0, 0),
|
||||||
|
(100183, 1145, 2, 100, 0, 0),
|
||||||
|
(100184, 1112, 2, 100, 0, 0),
|
||||||
|
(100184, 1147, 2, 100, 0, 0),
|
||||||
|
(100185, 1112, 2, 100, 0, 0),
|
||||||
|
(100185, 1147, 2, 100, 0, 0),
|
||||||
|
(100209, 1011, 2, 100, 0, 0),
|
||||||
|
(100223, 1112, 2, 100, 0, 0),
|
||||||
|
(100223, 1149, 2, 100, 0, 0),
|
||||||
|
(100224, 1112, 2, 100, 0, 0),
|
||||||
|
(100224, 1149, 2, 100, 0, 0),
|
||||||
|
(100225, 1112, 2, 100, 0, 0),
|
||||||
|
(100225, 1149, 2, 100, 0, 0),
|
||||||
|
(100226, 1112, 2, 100, 0, 0),
|
||||||
|
(100226, 1146, 2, 100, 0, 0),
|
||||||
|
(100226, 1152, 2, 100, 1, 0),
|
||||||
|
(100227, 1112, 2, 100, 0, 0),
|
||||||
|
(100227, 1146, 2, 100, 0, 0),
|
||||||
|
(100228, 1112, 2, 100, 0, 0),
|
||||||
|
(100228, 1146, 2, 100, 0, 0),
|
||||||
|
(100229, 1112, 2, 100, 0, 0),
|
||||||
|
(100229, 1144, 2, 100, 0, 0),
|
||||||
|
(100230, 1112, 2, 100, 0, 0),
|
||||||
|
(100230, 1144, 2, 100, 0, 0),
|
||||||
|
(100231, 1112, 2, 100, 0, 0),
|
||||||
|
(100231, 1147, 2, 100, 0, 0),
|
||||||
|
(100232, 1112, 2, 100, 0, 0),
|
||||||
|
(100232, 1145, 2, 100, 0, 0),
|
||||||
|
(100233, 1112, 2, 100, 0, 0),
|
||||||
|
(100233, 1145, 2, 100, 0, 0),
|
||||||
|
(100234, 1112, 2, 100, 0, 0),
|
||||||
|
(100234, 1147, 2, 100, 0, 0),
|
||||||
|
(100235, 1112, 2, 100, 0, 0),
|
||||||
|
(100235, 1147, 2, 100, 0, 0),
|
||||||
|
(100236, 1011, 3, 100, 0, 0),
|
||||||
|
(100236, 1012, 3, 100, 0, 0),
|
||||||
|
(100237, 1011, 3, 100, 0, 0),
|
||||||
|
(100237, 1012, 3, 100, 0, 0),
|
||||||
|
(100238, 1011, 3, 100, 0, 0),
|
||||||
|
(100238, 1012, 3, 100, 0, 0),
|
||||||
|
(100239, 1011, 3, 100, 0, 0),
|
||||||
|
(100239, 1012, 3, 100, 0, 0),
|
||||||
|
(100240, 1011, 3, 100, 0, 0),
|
||||||
|
(100240, 1012, 3, 100, 0, 0),
|
||||||
|
(100241, 1011, 3, 100, 0, 0),
|
||||||
|
(100241, 1012, 3, 100, 0, 0),
|
||||||
|
(100242, 1011, 3, 100, 0, 0),
|
||||||
|
(100242, 1012, 3, 100, 0, 0),
|
||||||
|
(100243, 1011, 3, 100, 0, 0),
|
||||||
|
(100243, 1012, 3, 100, 0, 0),
|
||||||
|
(100244, 1011, 3, 100, 0, 0),
|
||||||
|
(100244, 1012, 3, 100, 0, 0),
|
||||||
|
(100245, 1011, 3, 100, 0, 0),
|
||||||
|
(100245, 1012, 3, 100, 0, 0),
|
||||||
|
(100246, 1011, 3, 100, 0, 0),
|
||||||
|
(100246, 1012, 3, 100, 0, 0),
|
||||||
|
(100247, 1011, 3, 100, 0, 0),
|
||||||
|
(100247, 1012, 3, 100, 0, 0),
|
||||||
|
(100248, 1011, 3, 100, 0, 0),
|
||||||
|
(100248, 1012, 3, 100, 0, 0),
|
||||||
|
(100249, 1112, 3, 100, 0, 0),
|
||||||
|
(100249, 1159, 3, 100, 0, 0),
|
||||||
|
(100250, 1112, 3, 100, 0, 0),
|
||||||
|
(100250, 1159, 3, 100, 0, 0),
|
||||||
|
(100251, 1112, 3, 100, 0, 0),
|
||||||
|
(100251, 1159, 3, 100, 0, 0),
|
||||||
|
(100252, 1011, 3, 100, 0, 0),
|
||||||
|
(100252, 1012, 3, 100, 0, 0),
|
||||||
|
(100253, 1011, 3, 100, 0, 0),
|
||||||
|
(100253, 1012, 3, 100, 0, 0),
|
||||||
|
(100254, 1011, 3, 100, 0, 0),
|
||||||
|
(100254, 1012, 3, 100, 0, 0),
|
||||||
|
(100255, 1011, 3, 100, 0, 0),
|
||||||
|
(100255, 1012, 3, 100, 0, 0),
|
||||||
|
(100256, 1011, 3, 100, 0, 0),
|
||||||
|
(100256, 1012, 3, 100, 0, 0),
|
||||||
|
(100257, 1011, 3, 100, 0, 0),
|
||||||
|
(100257, 1012, 3, 100, 0, 0),
|
||||||
|
(100258, 1011, 3, 100, 0, 0),
|
||||||
|
(100258, 1012, 3, 100, 0, 0),
|
||||||
|
(100259, 1011, 3, 100, 0, 0),
|
||||||
|
(100259, 1012, 3, 100, 0, 0),
|
||||||
|
(100260, 1011, 3, 100, 0, 0),
|
||||||
|
(100260, 1012, 3, 100, 0, 0),
|
||||||
|
(100261, 1011, 3, 100, 0, 0),
|
||||||
|
(100261, 1012, 3, 100, 0, 0),
|
||||||
|
(100262, 1112, 3, 100, 0, 0),
|
||||||
|
(100262, 1159, 3, 100, 0, 0),
|
||||||
|
(100263, 1112, 3, 100, 0, 0),
|
||||||
|
(100263, 1159, 3, 100, 0, 0),
|
||||||
|
(100264, 1112, 3, 100, 0, 0),
|
||||||
|
(100264, 1159, 3, 100, 0, 0),
|
||||||
|
(100265, 1112, 3, 100, 0, 0),
|
||||||
|
(100265, 1152, 3, 100, 1, 0),
|
||||||
|
(100265, 1159, 3, 100, 0, 0),
|
||||||
|
(100266, 1112, 3, 100, 0, 0),
|
||||||
|
(100266, 1159, 3, 100, 0, 0),
|
||||||
|
(100267, 1112, 3, 100, 0, 0),
|
||||||
|
(100267, 1159, 3, 100, 0, 0),
|
||||||
|
(100268, 1112, 3, 100, 0, 0),
|
||||||
|
(100268, 1144, 3, 100, 0, 0),
|
||||||
|
(100268, 1159, 3, 100, 0, 0),
|
||||||
|
(100269, 1112, 3, 100, 0, 0),
|
||||||
|
(100269, 1144, 3, 100, 0, 0),
|
||||||
|
(100269, 1159, 3, 100, 0, 0),
|
||||||
|
(100270, 1112, 3, 100, 0, 0),
|
||||||
|
(100270, 1147, 3, 100, 0, 0),
|
||||||
|
(100270, 1159, 3, 100, 0, 0),
|
||||||
|
(100271, 1112, 3, 100, 0, 0),
|
||||||
|
(100271, 1145, 3, 100, 0, 0),
|
||||||
|
(100271, 1159, 3, 100, 0, 0),
|
||||||
|
(100272, 1112, 3, 100, 0, 0),
|
||||||
|
(100272, 1145, 3, 100, 0, 0),
|
||||||
|
(100272, 1159, 3, 100, 0, 0),
|
||||||
|
(100273, 1112, 3, 100, 0, 0),
|
||||||
|
(100273, 1147, 3, 100, 0, 0),
|
||||||
|
(100273, 1159, 3, 100, 0, 0),
|
||||||
|
(100274, 1112, 3, 100, 0, 0),
|
||||||
|
(100274, 1147, 3, 100, 0, 0),
|
||||||
|
(100274, 1159, 3, 100, 0, 0),
|
||||||
|
(100275, 1112, 4, 100, 0, 0),
|
||||||
|
(100275, 1159, 4, 100, 0, 0),
|
||||||
|
(100275, 1167, 4, 100, 0, 1),
|
||||||
|
(100276, 1112, 4, 100, 0, 0),
|
||||||
|
(100276, 1159, 4, 100, 0, 0),
|
||||||
|
(100276, 1167, 4, 100, 0, 1),
|
||||||
|
(100277, 1112, 4, 100, 0, 0),
|
||||||
|
(100277, 1159, 4, 100, 0, 0),
|
||||||
|
(100277, 1167, 4, 100, 0, 1),
|
||||||
|
(100278, 1112, 4, 100, 0, 0),
|
||||||
|
(100278, 1152, 4, 100, 1, 0),
|
||||||
|
(100278, 1159, 4, 100, 0, 0),
|
||||||
|
(100278, 1167, 4, 100, 0, 1),
|
||||||
|
(100280, 1112, 4, 100, 0, 0),
|
||||||
|
(100280, 1159, 4, 100, 0, 0),
|
||||||
|
(100280, 1167, 4, 100, 0, 1),
|
||||||
|
(100282, 1112, 4, 100, 0, 0),
|
||||||
|
(100282, 1144, 4, 100, 0, 0),
|
||||||
|
(100282, 1159, 4, 100, 0, 0),
|
||||||
|
(100282, 1167, 4, 100, 0, 1),
|
||||||
|
(100284, 1112, 4, 100, 0, 0),
|
||||||
|
(100284, 1145, 4, 100, 0, 0),
|
||||||
|
(100284, 1159, 4, 100, 0, 0),
|
||||||
|
(100284, 1167, 4, 100, 0, 1),
|
||||||
|
(100285, 1112, 4, 100, 0, 0),
|
||||||
|
(100285, 1145, 4, 100, 0, 0),
|
||||||
|
(100285, 1159, 4, 100, 0, 0),
|
||||||
|
(100285, 1167, 4, 100, 0, 1),
|
||||||
|
(100286, 1112, 4, 100, 0, 0),
|
||||||
|
(100286, 1147, 4, 100, 0, 0),
|
||||||
|
(100286, 1159, 4, 100, 0, 0),
|
||||||
|
(100286, 1167, 4, 100, 0, 1),
|
||||||
|
(100336, 1011, 3, 100, 0, 0),
|
||||||
|
(100336, 1012, 3, 100, 0, 0),
|
||||||
|
(100337, 1011, 3, 100, 0, 0),
|
||||||
|
(100337, 1012, 3, 100, 0, 0),
|
||||||
|
(100338, 1011, 3, 100, 0, 0),
|
||||||
|
(100338, 1012, 3, 100, 0, 0),
|
||||||
|
(100339, 1112, 2, 100, 0, 0),
|
||||||
|
(100339, 1149, 2, 100, 0, 0),
|
||||||
|
(100340, 1112, 2, 100, 0, 0),
|
||||||
|
(100340, 1149, 2, 100, 0, 0),
|
||||||
|
(100341, 1112, 2, 100, 0, 0),
|
||||||
|
(100341, 1149, 2, 100, 0, 0),
|
||||||
|
(100342, 1112, 2, 100, 0, 0),
|
||||||
|
(100342, 1146, 2, 100, 0, 0),
|
||||||
|
(100342, 1152, 2, 100, 1, 0),
|
||||||
|
(100343, 1112, 2, 100, 0, 0),
|
||||||
|
(100343, 1146, 2, 100, 0, 0),
|
||||||
|
(100344, 1112, 2, 100, 0, 0),
|
||||||
|
(100344, 1146, 2, 100, 0, 0),
|
||||||
|
(100345, 1112, 2, 100, 0, 0),
|
||||||
|
(100345, 1144, 2, 100, 0, 0),
|
||||||
|
(100346, 1112, 2, 100, 0, 0),
|
||||||
|
(100346, 1144, 2, 100, 0, 0),
|
||||||
|
(100347, 1112, 2, 100, 0, 0),
|
||||||
|
(100347, 1147, 2, 100, 0, 0),
|
||||||
|
(100348, 1112, 2, 100, 0, 0),
|
||||||
|
(100348, 1145, 2, 100, 0, 0),
|
||||||
|
(100349, 1112, 2, 100, 0, 0),
|
||||||
|
(100349, 1145, 2, 100, 0, 0),
|
||||||
|
(100350, 1112, 2, 100, 0, 0),
|
||||||
|
(100350, 1147, 2, 100, 0, 0),
|
||||||
|
(100351, 1112, 2, 100, 0, 0),
|
||||||
|
(100351, 1147, 2, 100, 0, 0),
|
||||||
|
(100407, 1112, 4, 100, 0, 0),
|
||||||
|
(100407, 1143, 4, 100, 0, 0),
|
||||||
|
(100407, 1160, 4, 100, 0, 0),
|
||||||
|
(100407, 1167, 4, 100, 0, 1),
|
||||||
|
(100411, 1112, 2, 100, 0, 0),
|
||||||
|
(100411, 1146, 2, 100, 0, 0),
|
||||||
|
(100411, 1152, 2, 100, 1, 0),
|
||||||
|
(100412, 1112, 2, 100, 0, 0),
|
||||||
|
(100412, 1146, 2, 100, 0, 0),
|
||||||
|
(100413, 1112, 2, 100, 0, 0),
|
||||||
|
(100413, 1146, 2, 100, 0, 0),
|
||||||
|
(100414, 1112, 2, 100, 0, 0),
|
||||||
|
(100415, 1112, 2, 100, 0, 0),
|
||||||
|
(100416, 1112, 2, 100, 0, 0),
|
||||||
|
(100417, 1112, 2, 100, 0, 0),
|
||||||
|
(100418, 1112, 3, 100, 0, 0),
|
||||||
|
(100418, 1149, 3, 100, 0, 0),
|
||||||
|
(100418, 1160, 3, 100, 0, 0),
|
||||||
|
(100419, 1112, 3, 100, 0, 0),
|
||||||
|
(100419, 1160, 3, 100, 0, 0),
|
||||||
|
(100420, 1112, 3, 100, 0, 0),
|
||||||
|
(100420, 1144, 3, 100, 0, 0),
|
||||||
|
(100421, 1147, 3, 100, 0, 0),
|
||||||
|
(100421, 1160, 3, 100, 0, 0),
|
||||||
|
(100422, 1112, 3, 100, 0, 0),
|
||||||
|
(100422, 1144, 3, 100, 0, 0),
|
||||||
|
(100422, 1160, 3, 100, 0, 0),
|
||||||
|
(100423, 1112, 3, 100, 0, 0),
|
||||||
|
(100423, 1160, 3, 100, 0, 0),
|
||||||
|
(100424, 1112, 3, 100, 0, 0),
|
||||||
|
(100424, 1143, 3, 100, 0, 0),
|
||||||
|
(100424, 1160, 3, 100, 0, 0),
|
||||||
|
(100425, 1112, 3, 100, 0, 0),
|
||||||
|
(100425, 1160, 3, 100, 0, 0),
|
||||||
|
(100426, 1112, 3, 100, 0, 0),
|
||||||
|
(100426, 1147, 3, 100, 0, 0),
|
||||||
|
(100426, 1160, 3, 100, 0, 0),
|
||||||
|
(100427, 1112, 3, 100, 0, 0),
|
||||||
|
(100427, 1160, 3, 100, 0, 0),
|
||||||
|
(100428, 1112, 3, 100, 0, 0),
|
||||||
|
(100428, 1160, 3, 100, 0, 0),
|
||||||
|
(100429, 1112, 3, 100, 0, 0),
|
||||||
|
(100429, 1160, 3, 100, 0, 0),
|
||||||
|
(100430, 1112, 3, 100, 0, 0),
|
||||||
|
(100430, 1160, 3, 100, 0, 0),
|
||||||
|
(100431, 1112, 4, 100, 0, 0),
|
||||||
|
(100431, 1143, 4, 100, 0, 0),
|
||||||
|
(100431, 1160, 4, 100, 0, 0),
|
||||||
|
(100431, 1167, 4, 100, 0, 1),
|
||||||
|
(100432, 1112, 4, 100, 0, 0),
|
||||||
|
(100432, 1143, 4, 100, 0, 0),
|
||||||
|
(100432, 1160, 4, 100, 0, 0),
|
||||||
|
(100432, 1167, 4, 100, 0, 1),
|
||||||
|
(100433, 1112, 4, 100, 0, 0),
|
||||||
|
(100433, 1160, 4, 100, 0, 0),
|
||||||
|
(100433, 1167, 4, 100, 0, 1),
|
||||||
|
(100434, 1112, 4, 100, 0, 0),
|
||||||
|
(100434, 1144, 4, 100, 0, 0),
|
||||||
|
(100434, 1160, 4, 100, 0, 0),
|
||||||
|
(100434, 1167, 4, 100, 0, 1),
|
||||||
|
(100435, 1112, 4, 100, 0, 0),
|
||||||
|
(100435, 1123, 4, 100, 0, 0),
|
||||||
|
(100435, 1147, 4, 100, 0, 0),
|
||||||
|
(100435, 1154, 4, 100, 0, 0),
|
||||||
|
(100435, 1160, 4, 100, 0, 0),
|
||||||
|
(100435, 1167, 4, 100, 0, 1),
|
||||||
|
(100436, 1112, 4, 100, 0, 0),
|
||||||
|
(100436, 1160, 4, 100, 0, 0),
|
||||||
|
(100436, 1167, 4, 100, 0, 1),
|
||||||
|
(100437, 1112, 4, 100, 0, 0),
|
||||||
|
(100437, 1160, 4, 100, 0, 0),
|
||||||
|
(100437, 1167, 4, 100, 0, 1),
|
||||||
|
(100438, 1112, 4, 100, 0, 0),
|
||||||
|
(100438, 1147, 4, 100, 0, 0),
|
||||||
|
(100438, 1160, 4, 100, 0, 0),
|
||||||
|
(100438, 1167, 4, 100, 0, 1),
|
||||||
|
(100439, 1112, 4, 100, 0, 0),
|
||||||
|
(100439, 1146, 4, 100, 0, 0),
|
||||||
|
(100439, 1152, 4, 100, 1, 0),
|
||||||
|
(100439, 1160, 4, 100, 0, 0),
|
||||||
|
(100439, 1167, 4, 100, 0, 1),
|
||||||
|
(100440, 1011, 2, 100, 0, 0),
|
||||||
|
(100441, 1011, 2, 100, 0, 0),
|
||||||
|
(100445, 1112, 2, 100, 0, 0),
|
||||||
|
(100445, 1143, 2, 100, 0, 0),
|
||||||
|
(100447, 1112, 2, 100, 0, 0),
|
||||||
|
(100447, 1143, 2, 100, 0, 0),
|
||||||
|
(100449, 1112, 2, 100, 0, 0),
|
||||||
|
(100449, 1143, 2, 100, 0, 0),
|
||||||
|
(100454, 1011, 4, 100, 0, 0),
|
||||||
|
(100606, 1112, 3, 100, 0, 0),
|
||||||
|
(100607, 1112, 3, 100, 0, 0),
|
||||||
|
(100608, 1112, 3, 100, 0, 0),
|
||||||
|
(100608, 1143, 3, 100, 0, 0),
|
||||||
|
(100608, 1160, 3, 100, 0, 0),
|
||||||
|
(100609, 1112, 3, 100, 0, 0),
|
||||||
|
(100609, 1143, 3, 100, 0, 0),
|
||||||
|
(100609, 1160, 3, 100, 0, 0),
|
||||||
|
(100610, 1112, 3, 100, 0, 0),
|
||||||
|
(100610, 1143, 3, 100, 0, 0),
|
||||||
|
(100610, 1160, 3, 100, 0, 0),
|
||||||
|
(100634, 1011, 3, 100, 0, 0),
|
||||||
|
(100634, 1012, 3, 100, 0, 0),
|
||||||
|
(100636, 1011, 3, 100, 0, 0),
|
||||||
|
(100636, 1012, 3, 100, 0, 0),
|
||||||
|
(100637, 1011, 3, 100, 0, 0),
|
||||||
|
(100637, 1012, 3, 100, 0, 0),
|
||||||
|
(100638, 1011, 3, 100, 0, 0),
|
||||||
|
(100638, 1012, 3, 100, 0, 0),
|
||||||
|
(100639, 1011, 3, 100, 0, 0),
|
||||||
|
(100639, 1012, 3, 100, 0, 0),
|
||||||
|
(100640, 1011, 3, 100, 0, 0),
|
||||||
|
(100640, 1012, 3, 100, 0, 0),
|
||||||
|
(100641, 1011, 3, 100, 0, 0),
|
||||||
|
(100641, 1012, 3, 100, 0, 0),
|
||||||
|
(100642, 1011, 3, 100, 0, 0),
|
||||||
|
(100642, 1012, 3, 100, 0, 0),
|
||||||
|
(100643, 1011, 3, 100, 0, 0),
|
||||||
|
(100643, 1012, 3, 100, 0, 0),
|
||||||
|
(100644, 1011, 3, 100, 0, 0),
|
||||||
|
(100644, 1012, 3, 100, 0, 0),
|
||||||
|
(100645, 1011, 3, 100, 0, 0),
|
||||||
|
(100645, 1012, 3, 100, 0, 0),
|
||||||
|
(100646, 1011, 3, 100, 0, 0),
|
||||||
|
(100646, 1012, 3, 100, 0, 0),
|
||||||
|
(100647, 1112, 2, 100, 0, 0),
|
||||||
|
(100648, 1112, 2, 100, 0, 0),
|
||||||
|
(100649, 1112, 2, 100, 0, 0),
|
||||||
|
(100650, 1011, 2, 100, 0, 0),
|
||||||
|
(100651, 1011, 2, 100, 0, 0),
|
||||||
|
(100652, 1011, 2, 100, 0, 0),
|
||||||
|
(100653, 1112, 2, 100, 0, 0),
|
||||||
|
(100653, 1143, 2, 100, 0, 0),
|
||||||
|
(100654, 1112, 2, 100, 0, 0),
|
||||||
|
(100654, 1143, 2, 100, 0, 0),
|
||||||
|
(100655, 1112, 2, 100, 0, 0),
|
||||||
|
(100655, 1143, 2, 100, 0, 0),
|
||||||
|
(100662, 1112, 2, 100, 0, 0),
|
||||||
|
(100665, 1011, 3, 100, 0, 0),
|
||||||
|
(100665, 1012, 3, 100, 0, 0),
|
||||||
|
(100666, 1011, 3, 100, 0, 0),
|
||||||
|
(100666, 1012, 3, 100, 0, 0),
|
||||||
|
(100667, 1011, 3, 100, 0, 0),
|
||||||
|
(100667, 1012, 3, 100, 0, 0),
|
||||||
|
(100692, 1112, 2, 100, 0, 0),
|
||||||
|
(100692, 1149, 2, 100, 0, 0),
|
||||||
|
(100693, 1112, 2, 100, 0, 0),
|
||||||
|
(100693, 1149, 2, 100, 0, 0),
|
||||||
|
(100694, 1112, 2, 100, 0, 0),
|
||||||
|
(100694, 1149, 2, 100, 0, 0),
|
||||||
|
(100701, 1112, 2, 100, 0, 0),
|
||||||
|
(100701, 1146, 2, 100, 0, 0),
|
||||||
|
(100701, 1152, 2, 100, 1, 0),
|
||||||
|
(100702, 1011, 2, 100, 0, 0),
|
||||||
|
(100703, 1011, 2, 100, 0, 0),
|
||||||
|
(100711, 1112, 3, 100, 0, 0),
|
||||||
|
(100711, 1161, 3, 100, 0, 0),
|
||||||
|
(100712, 1112, 3, 100, 0, 0),
|
||||||
|
(100712, 1161, 3, 100, 0, 0),
|
||||||
|
(100725, 1112, 4, 100, 0, 0),
|
||||||
|
(100725, 1146, 4, 100, 0, 0),
|
||||||
|
(100725, 1161, 4, 100, 0, 0),
|
||||||
|
(100725, 1167, 4, 100, 0, 1),
|
||||||
|
(100726, 1112, 4, 100, 0, 0),
|
||||||
|
(100726, 1161, 4, 100, 0, 0),
|
||||||
|
(100726, 1167, 4, 100, 0, 1),
|
||||||
|
(100755, 1112, 2, 100, 0, 0),
|
||||||
|
(100756, 1112, 2, 100, 0, 0),
|
||||||
|
(100757, 1112, 3, 100, 0, 0),
|
||||||
|
(100757, 1160, 3, 100, 0, 0),
|
||||||
|
(100758, 1112, 3, 100, 0, 0),
|
||||||
|
(100758, 1160, 3, 100, 0, 0),
|
||||||
|
(100759, 1112, 3, 100, 0, 0),
|
||||||
|
(100759, 1160, 3, 100, 0, 0),
|
||||||
|
(100760, 1112, 4, 100, 0, 0),
|
||||||
|
(100760, 1149, 4, 100, 0, 0),
|
||||||
|
(100760, 1160, 4, 100, 0, 0),
|
||||||
|
(100760, 1167, 4, 100, 0, 1),
|
||||||
|
(100761, 1112, 4, 100, 0, 0),
|
||||||
|
(100761, 1160, 4, 100, 0, 0),
|
||||||
|
(100761, 1167, 4, 100, 0, 1),
|
||||||
|
(100762, 1112, 3, 100, 0, 0),
|
||||||
|
(100762, 1160, 3, 100, 0, 0),
|
||||||
|
(100763, 1112, 3, 100, 0, 0),
|
||||||
|
(100763, 1160, 3, 100, 0, 0),
|
||||||
|
(100764, 1112, 3, 100, 0, 0),
|
||||||
|
(100764, 1160, 3, 100, 0, 0),
|
||||||
|
(100765, 1112, 3, 100, 0, 0),
|
||||||
|
(100765, 1160, 3, 100, 0, 0),
|
||||||
|
(100766, 1112, 3, 100, 0, 0),
|
||||||
|
(100766, 1146, 3, 100, 0, 0),
|
||||||
|
(100766, 1160, 3, 100, 0, 0),
|
||||||
|
(100767, 1112, 4, 100, 0, 0),
|
||||||
|
(100767, 1160, 4, 100, 0, 0),
|
||||||
|
(100767, 1167, 4, 100, 0, 1),
|
||||||
|
(100768, 1112, 4, 100, 0, 0),
|
||||||
|
(100768, 1160, 4, 100, 0, 0),
|
||||||
|
(100768, 1167, 4, 100, 0, 1),
|
||||||
|
(100771, 1112, 2, 100, 0, 0),
|
||||||
|
(100772, 1011, 3, 100, 0, 0),
|
||||||
|
(100772, 1012, 3, 100, 0, 0),
|
||||||
|
(100777, 1112, 3, 100, 0, 0),
|
||||||
|
(100777, 1146, 3, 100, 0, 0),
|
||||||
|
(100777, 1152, 3, 100, 1, 0),
|
||||||
|
(100777, 1160, 3, 100, 0, 0),
|
||||||
|
(100778, 1112, 3, 100, 0, 0),
|
||||||
|
(100778, 1160, 3, 100, 0, 0),
|
||||||
|
(100779, 1112, 4, 100, 0, 0),
|
||||||
|
(100779, 1154, 4, 100, 0, 0),
|
||||||
|
(100779, 1160, 4, 100, 0, 0),
|
||||||
|
(100779, 1167, 4, 100, 0, 1),
|
||||||
|
(100780, 1112, 4, 100, 0, 0),
|
||||||
|
(100780, 1149, 4, 100, 0, 0),
|
||||||
|
(100780, 1160, 4, 100, 0, 0),
|
||||||
|
(100780, 1167, 4, 100, 0, 1),
|
||||||
|
(100783, 1112, 3, 100, 0, 0),
|
||||||
|
(100783, 1160, 3, 100, 0, 0),
|
||||||
|
(100784, 1112, 4, 100, 0, 0),
|
||||||
|
(100784, 1160, 4, 100, 0, 0),
|
||||||
|
(100784, 1167, 4, 100, 0, 1),
|
||||||
|
(100785, 1112, 3, 100, 0, 0),
|
||||||
|
(100785, 1149, 3, 100, 0, 0),
|
||||||
|
(100785, 1151, 3, 100, 0, 0),
|
||||||
|
(100785, 1161, 3, 100, 0, 0),
|
||||||
|
(100786, 1112, 3, 100, 0, 0),
|
||||||
|
(100786, 1149, 3, 100, 0, 0),
|
||||||
|
(100786, 1151, 3, 100, 0, 0),
|
||||||
|
(100786, 1161, 3, 100, 0, 0),
|
||||||
|
(100787, 1112, 4, 100, 0, 0),
|
||||||
|
(100787, 1151, 4, 100, 0, 0),
|
||||||
|
(100787, 1161, 4, 100, 0, 0),
|
||||||
|
(100787, 1167, 4, 100, 0, 1),
|
||||||
|
(100805, 1112, 3, 100, 0, 0),
|
||||||
|
(100805, 1160, 3, 100, 0, 0),
|
||||||
|
(100842, 1112, 3, 100, 0, 0),
|
||||||
|
(100980, 1011, 4, 100, 0, 0),
|
||||||
|
(100982, 1112, 4, 100, 0, 0),
|
||||||
|
(100982, 1161, 4, 100, 0, 0),
|
||||||
|
(100982, 1167, 4, 100, 0, 1),
|
||||||
|
(100983, 1112, 4, 100, 0, 0),
|
||||||
|
(100983, 1161, 4, 100, 0, 0),
|
||||||
|
(100983, 1167, 4, 100, 0, 1),
|
||||||
|
(100984, 1137, 4, 100, 1, 0),
|
||||||
|
(100984, 1146, 4, 100, 0, 0),
|
||||||
|
(100984, 1167, 4, 100, 0, 1),
|
||||||
|
(100985, 1112, 4, 100, 0, 0),
|
||||||
|
(100985, 1161, 4, 100, 0, 0),
|
||||||
|
(100985, 1167, 4, 100, 0, 1),
|
||||||
|
(100986, 1137, 4, 100, 1, 0),
|
||||||
|
(100986, 1167, 4, 100, 0, 1),
|
||||||
|
(100987, 1112, 4, 100, 0, 0),
|
||||||
|
(100987, 1149, 4, 100, 0, 0),
|
||||||
|
(100987, 1154, 4, 100, 0, 0),
|
||||||
|
(100987, 1161, 4, 100, 0, 0),
|
||||||
|
(100987, 1167, 4, 100, 0, 1),
|
||||||
|
(100988, 1112, 4, 100, 0, 0),
|
||||||
|
(100988, 1154, 4, 100, 0, 0),
|
||||||
|
(100988, 1161, 4, 100, 0, 0),
|
||||||
|
(100988, 1167, 4, 100, 0, 1),
|
||||||
|
(100989, 1112, 4, 100, 0, 0),
|
||||||
|
(100989, 1123, 4, 100, 0, 0),
|
||||||
|
(100989, 1146, 4, 100, 0, 0),
|
||||||
|
(100989, 1152, 4, 100, 1, 0),
|
||||||
|
(100989, 1161, 4, 100, 0, 0),
|
||||||
|
(100989, 1167, 4, 100, 0, 1),
|
||||||
|
(100996, 1112, 3, 100, 0, 0),
|
||||||
|
(100996, 1161, 3, 100, 0, 0),
|
||||||
|
(100997, 1137, 3, 100, 1, 0),
|
||||||
|
(100998, 1137, 3, 100, 1, 0),
|
||||||
|
(100999, 1112, 3, 100, 0, 0),
|
||||||
|
(100999, 1161, 3, 100, 0, 0),
|
||||||
|
(101000, 1112, 3, 100, 0, 0),
|
||||||
|
(101000, 1161, 3, 100, 0, 0),
|
||||||
|
(101001, 1137, 3, 100, 1, 0),
|
||||||
|
(101002, 1137, 3, 100, 1, 0),
|
||||||
|
(101002, 1146, 3, 100, 0, 0),
|
||||||
|
(101003, 1112, 3, 100, 0, 0),
|
||||||
|
(101003, 1161, 3, 100, 0, 0),
|
||||||
|
(101004, 1112, 3, 100, 0, 0),
|
||||||
|
(101004, 1161, 3, 100, 0, 0),
|
||||||
|
(101005, 1112, 3, 100, 0, 0),
|
||||||
|
(101005, 1149, 3, 100, 0, 0),
|
||||||
|
(101005, 1161, 3, 100, 0, 0),
|
||||||
|
(101020, 1112, 2, 100, 0, 0),
|
||||||
|
(101020, 1149, 2, 100, 0, 0),
|
||||||
|
(101021, 1112, 2, 100, 0, 0),
|
||||||
|
(101021, 1146, 2, 100, 0, 0),
|
||||||
|
(101021, 1152, 2, 100, 1, 0),
|
||||||
|
(101022, 1112, 2, 100, 0, 0),
|
||||||
|
(101023, 1112, 2, 100, 0, 0),
|
||||||
|
(101023, 1146, 2, 100, 0, 0),
|
||||||
|
(101024, 1112, 2, 100, 0, 0),
|
||||||
|
(101024, 1146, 2, 100, 0, 0),
|
||||||
|
(101025, 1112, 2, 100, 0, 0),
|
||||||
|
(101025, 1149, 2, 100, 0, 0),
|
||||||
|
(101026, 1112, 2, 100, 0, 0),
|
||||||
|
(101293, 1112, 4, 100, 0, 0),
|
||||||
|
(101293, 1123, 4, 100, 0, 0),
|
||||||
|
(101293, 1137, 4, 100, 1, 0),
|
||||||
|
(101293, 1154, 4, 100, 0, 0),
|
||||||
|
(101293, 1161, 4, 100, 0, 0),
|
||||||
|
(101293, 1167, 4, 100, 0, 1),
|
||||||
|
(101294, 1112, 4, 100, 0, 0),
|
||||||
|
(101294, 1161, 4, 100, 0, 0),
|
||||||
|
(101294, 1167, 4, 100, 0, 1),
|
||||||
|
(101295, 1112, 4, 100, 0, 0),
|
||||||
|
(101295, 1123, 4, 100, 0, 0),
|
||||||
|
(101295, 1149, 4, 100, 0, 0),
|
||||||
|
(101295, 1161, 4, 100, 0, 0),
|
||||||
|
(101295, 1167, 4, 100, 0, 1),
|
||||||
|
(101296, 1112, 4, 100, 0, 0),
|
||||||
|
(101296, 1149, 4, 100, 0, 0),
|
||||||
|
(101296, 1151, 4, 100, 0, 0),
|
||||||
|
(101296, 1154, 4, 100, 0, 0),
|
||||||
|
(101296, 1161, 4, 100, 0, 0),
|
||||||
|
(101296, 1167, 4, 100, 0, 1),
|
||||||
|
(101297, 1137, 4, 100, 1, 0),
|
||||||
|
(101297, 1167, 4, 100, 0, 1),
|
||||||
|
(101298, 1112, 3, 100, 0, 0),
|
||||||
|
(101298, 1146, 3, 100, 0, 0),
|
||||||
|
(101298, 1161, 3, 100, 0, 0),
|
||||||
|
(101299, 1112, 3, 100, 0, 0),
|
||||||
|
(101299, 1161, 3, 100, 0, 0),
|
||||||
|
(101300, 1112, 3, 100, 0, 0),
|
||||||
|
(101300, 1151, 3, 100, 0, 0),
|
||||||
|
(101300, 1161, 3, 100, 0, 0),
|
||||||
|
(101301, 1137, 3, 100, 1, 0),
|
||||||
|
(101301, 1146, 3, 100, 0, 0),
|
||||||
|
(101301, 1152, 3, 100, 1, 0),
|
||||||
|
(101315, 1146, 2, 100, 0, 0),
|
||||||
|
(101315, 1151, 2, 100, 0, 0),
|
||||||
|
(101316, 1151, 2, 100, 0, 0),
|
||||||
|
(101320, 1112, 4, 100, 0, 0),
|
||||||
|
(101320, 1146, 4, 100, 0, 0),
|
||||||
|
(101320, 1161, 4, 100, 0, 0),
|
||||||
|
(101320, 1167, 4, 100, 0, 1),
|
||||||
|
(101321, 1112, 3, 100, 0, 0),
|
||||||
|
(101321, 1161, 3, 100, 0, 0),
|
||||||
|
(101553, 1011, 4, 100, 0, 0),
|
||||||
|
(101566, 1112, 3, 100, 0, 0),
|
||||||
|
(101566, 1135, 3, 100, 1, 0),
|
||||||
|
(101566, 1148, 3, 100, 0, 0),
|
||||||
|
(101566, 1162, 3, 100, 0, 0),
|
||||||
|
(101567, 1112, 4, 100, 0, 0),
|
||||||
|
(101567, 1135, 4, 100, 1, 0),
|
||||||
|
(101567, 1148, 4, 100, 0, 0),
|
||||||
|
(101567, 1151, 4, 100, 0, 0),
|
||||||
|
(101567, 1162, 4, 100, 0, 0),
|
||||||
|
(101567, 1167, 4, 100, 0, 1),
|
||||||
|
(101589, 1011, 2, 100, 0, 0),
|
||||||
|
(101592, 1112, 4, 100, 0, 0),
|
||||||
|
(101592, 1135, 4, 100, 1, 0),
|
||||||
|
(101592, 1149, 4, 100, 0, 0),
|
||||||
|
(101592, 1154, 4, 100, 0, 0),
|
||||||
|
(101592, 1162, 4, 100, 0, 0),
|
||||||
|
(101592, 1167, 4, 100, 0, 1),
|
||||||
|
(101593, 1137, 4, 100, 1, 0),
|
||||||
|
(101593, 1167, 4, 100, 0, 1),
|
||||||
|
(101594, 1112, 4, 100, 0, 0),
|
||||||
|
(101594, 1123, 4, 100, 0, 0),
|
||||||
|
(101594, 1135, 4, 100, 1, 0),
|
||||||
|
(101594, 1154, 4, 100, 0, 0),
|
||||||
|
(101594, 1162, 4, 100, 0, 0),
|
||||||
|
(101594, 1167, 4, 100, 0, 1),
|
||||||
|
(101595, 1112, 4, 100, 0, 0),
|
||||||
|
(101595, 1123, 4, 100, 0, 0),
|
||||||
|
(101595, 1128, 4, 100, 1, 0),
|
||||||
|
(101595, 1135, 4, 100, 1, 0),
|
||||||
|
(101595, 1167, 4, 100, 0, 1),
|
||||||
|
(101596, 1112, 4, 100, 0, 0),
|
||||||
|
(101596, 1138, 4, 100, 1, 0),
|
||||||
|
(101596, 1146, 4, 100, 0, 0),
|
||||||
|
(101596, 1154, 4, 100, 0, 0),
|
||||||
|
(101596, 1156, 4, 100, 1, 0),
|
||||||
|
(101596, 1162, 4, 100, 0, 0),
|
||||||
|
(101596, 1167, 4, 100, 0, 1),
|
||||||
|
(101597, 1112, 4, 100, 0, 0),
|
||||||
|
(101597, 1139, 4, 100, 1, 0),
|
||||||
|
(101597, 1156, 4, 100, 1, 0),
|
||||||
|
(101597, 1162, 4, 100, 0, 0),
|
||||||
|
(101597, 1167, 4, 100, 0, 1),
|
||||||
|
(101598, 1137, 4, 100, 1, 0),
|
||||||
|
(101598, 1148, 4, 100, 0, 0),
|
||||||
|
(101599, 1112, 4, 100, 0, 0),
|
||||||
|
(101599, 1140, 4, 100, 1, 0),
|
||||||
|
(101599, 1156, 4, 100, 1, 0),
|
||||||
|
(101599, 1162, 4, 100, 0, 0),
|
||||||
|
(101599, 1167, 4, 100, 0, 1),
|
||||||
|
(101600, 1112, 4, 100, 0, 0),
|
||||||
|
(101600, 1141, 4, 100, 1, 0),
|
||||||
|
(101600, 1156, 4, 100, 1, 0),
|
||||||
|
(101600, 1162, 4, 100, 0, 0),
|
||||||
|
(101600, 1167, 4, 100, 0, 1),
|
||||||
|
(101601, 1137, 3, 100, 1, 0),
|
||||||
|
(101602, 1112, 3, 100, 0, 0),
|
||||||
|
(101602, 1135, 3, 100, 1, 0),
|
||||||
|
(101602, 1149, 3, 100, 0, 0),
|
||||||
|
(101602, 1162, 3, 100, 0, 0),
|
||||||
|
(101603, 1112, 3, 100, 0, 0),
|
||||||
|
(101603, 1128, 3, 100, 1, 0),
|
||||||
|
(101603, 1135, 3, 100, 1, 0),
|
||||||
|
(101603, 1146, 3, 100, 0, 0),
|
||||||
|
(101603, 1162, 3, 100, 0, 0),
|
||||||
|
(101604, 1112, 3, 100, 0, 0),
|
||||||
|
(101604, 1138, 3, 100, 1, 0),
|
||||||
|
(101604, 1149, 3, 100, 0, 0),
|
||||||
|
(101604, 1156, 3, 100, 1, 0),
|
||||||
|
(101604, 1162, 3, 100, 0, 0),
|
||||||
|
(101605, 1112, 3, 100, 0, 0),
|
||||||
|
(101605, 1139, 3, 100, 1, 0),
|
||||||
|
(101605, 1156, 3, 100, 1, 0),
|
||||||
|
(101605, 1162, 3, 100, 0, 0),
|
||||||
|
(101606, 1137, 3, 100, 1, 0),
|
||||||
|
(101606, 1167, 3, 100, 0, 1),
|
||||||
|
(101607, 1112, 3, 100, 0, 0),
|
||||||
|
(101607, 1140, 3, 100, 1, 0),
|
||||||
|
(101607, 1156, 3, 100, 1, 0),
|
||||||
|
(101607, 1162, 3, 100, 0, 0),
|
||||||
|
(101608, 1112, 3, 100, 0, 0),
|
||||||
|
(101608, 1141, 3, 100, 1, 0),
|
||||||
|
(101608, 1156, 3, 100, 1, 0),
|
||||||
|
(101608, 1162, 3, 100, 0, 0),
|
||||||
|
(101619, 1112, 2, 100, 0, 0),
|
||||||
|
(101619, 1135, 2, 100, 1, 0),
|
||||||
|
(101619, 1148, 2, 100, 0, 0),
|
||||||
|
(101620, 1011, 2, 100, 0, 0),
|
||||||
|
(101627, 1011, 4, 100, 0, 0);
|
||||||
Reference in New Issue
Block a user