1
0
forked from metin2/web

Added website Docker image, bumped PHP version, added mall authentication, added experimental patcher support, improved migrations, added teasers

This commit is contained in:
2024-09-22 21:14:31 +03:00
parent a1d0a5b9cf
commit dea61c5a0c
253 changed files with 23071 additions and 547 deletions

344
database/data/banword.json Normal file
View File

@ -0,0 +1,344 @@
[
{
"word": "aryan"
},
{
"word": "asshole"
},
{
"word": "bastard"
},
{
"word": "bastards"
},
{
"word": "bitch"
},
{
"word": "bitches"
},
{
"word": "bitching"
},
{
"word": "bitchy"
},
{
"word": "boob"
},
{
"word": "boobie"
},
{
"word": "boobies"
},
{
"word": "boobs"
},
{
"word": "booby"
},
{
"word": "boobys"
},
{
"word": "bullshit"
},
{
"word": "bullshitter"
},
{
"word": "bullshitters"
},
{
"word": "bullshitting"
},
{
"word": "chickenshit"
},
{
"word": "chickenshits"
},
{
"word": "clit"
},
{
"word": "cock"
},
{
"word": "cockhead"
},
{
"word": "cocks"
},
{
"word": "cocksuck"
},
{
"word": "cocksucker"
},
{
"word": "cocksucking"
},
{
"word": "cumming"
},
{
"word": "cunt"
},
{
"word": "cuntree"
},
{
"word": "cuntry"
},
{
"word": "cunts"
},
{
"word": "dipshit"
},
{
"word": "dipshits"
},
{
"word": "dumbfuck"
},
{
"word": "dumbfucks"
},
{
"word": "dumbshit"
},
{
"word": "dumbshits"
},
{
"word": "fag"
},
{
"word": "faggot"
},
{
"word": "faggots"
},
{
"word": "faggy"
},
{
"word": "fags"
},
{
"word": "fuck"
},
{
"word": "fucka"
},
{
"word": "fucke"
},
{
"word": "fucked"
},
{
"word": "fucken"
},
{
"word": "fucker"
},
{
"word": "fuckers"
},
{
"word": "fuckface"
},
{
"word": "fuckhead"
},
{
"word": "fuckheads"
},
{
"word": "fuckhed"
},
{
"word": "fuckin"
},
{
"word": "fucking"
},
{
"word": "fucks"
},
{
"word": "fuckup"
},
{
"word": "fuckups"
},
{
"word": "fukk"
},
{
"word": "fukka"
},
{
"word": "goniff"
},
{
"word": "heb"
},
{
"word": "hebe"
},
{
"word": "hebes"
},
{
"word": "kike"
},
{
"word": "kikes"
},
{
"word": "kunt"
},
{
"word": "kuntree"
},
{
"word": "kuntry"
},
{
"word": "kunts"
},
{
"word": "motherfuck"
},
{
"word": "motherfucken"
},
{
"word": "motherfucker"
},
{
"word": "motherfuckers"
},
{
"word": "motherfuckin"
},
{
"word": "motherfucking"
},
{
"word": "nazi"
},
{
"word": "nigga"
},
{
"word": "niggah"
},
{
"word": "niggahs"
},
{
"word": "niggard"
},
{
"word": "niggardly"
},
{
"word": "niggas"
},
{
"word": "niggaz"
},
{
"word": "nigger"
},
{
"word": "niggers"
},
{
"word": "penis"
},
{
"word": "piss"
},
{
"word": "porn"
},
{
"word": "porno"
},
{
"word": "pornography"
},
{
"word": "pussy"
},
{
"word": "schlimazel"
},
{
"word": "schlimiel"
},
{
"word": "shit"
},
{
"word": "shitface"
},
{
"word": "shitfaced"
},
{
"word": "shithead"
},
{
"word": "shitheads"
},
{
"word": "shithed"
},
{
"word": "shits"
},
{
"word": "shitting"
},
{
"word": "shitty"
},
{
"word": "slut"
},
{
"word": "sluts"
},
{
"word": "slutty"
},
{
"word": "titties"
},
{
"word": "titty"
},
{
"word": "vagina"
},
{
"word": "vaginal"
},
{
"word": "whore"
},
{
"word": "whores"
},
{
"word": "whoring"
}
]

View File

@ -0,0 +1,818 @@
[
{
"apply": "MAX_HP",
"prob": "35",
"lv1": "500",
"lv2": "500",
"lv3": "1000",
"lv4": "1500",
"lv5": "2000",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "MAX_SP",
"prob": "35",
"lv1": "10",
"lv2": "20",
"lv3": "30",
"lv4": "50",
"lv5": "80",
"weapon": "0",
"body": "0",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "CON",
"prob": "11",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "12",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "INT",
"prob": "11",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "12",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "STR",
"prob": "11",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "12",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "DEX",
"prob": "11",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "12",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "ATT_SPEED",
"prob": "8",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "8",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "MOV_SPEED",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "CAST_SPEED",
"prob": "8",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "5",
"body": "5",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "HP_REGEN",
"prob": "60",
"lv1": "4",
"lv2": "8",
"lv3": "12",
"lv4": "20",
"lv5": "30",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "5",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "SP_REGEN",
"prob": "60",
"lv1": "4",
"lv2": "8",
"lv3": "12",
"lv4": "20",
"lv5": "30",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "5",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "POISON_PCT",
"prob": "8",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "8",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "STUN_PCT",
"prob": "18",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "8",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "SLOW_PCT",
"prob": "35",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "8",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "CRITICAL_PCT",
"prob": "18",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "10",
"weapon": "5",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "PENETRATE_PCT",
"prob": "30",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "10",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "ATTBONUS_HUMAN",
"prob": "15",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "10",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATTBONUS_ANIMAL",
"prob": "35",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATTBONUS_ORC",
"prob": "35",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATTBONUS_MILGYO",
"prob": "35",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATTBONUS_UNDEAD",
"prob": "35",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATTBONUS_DEVIL",
"prob": "35",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "20",
"weapon": "5",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "STEAL_HP",
"prob": "50",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "10",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "STEAL_SP",
"prob": "50",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "10",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "0",
"neck": "5",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "MANA_BURN_PCT",
"prob": "18",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "5",
"lv5": "10",
"weapon": "0",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "BLOCK",
"prob": "10",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "DODGE",
"prob": "10",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_SWORD",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "RESIST_TWOHAND",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "RESIST_DAGGER",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "RESIST_BELL",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "RESIST_FAN",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "RESIST_BOW",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "RESIST_FIRE",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_ELEC",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_MAGIC",
"prob": "25",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_WIND",
"prob": "18",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "10",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "REFLECT_MELEE",
"prob": "18",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "6",
"lv5": "10",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "POISON_REDUCE",
"prob": "18",
"lv1": "1",
"lv2": "2",
"lv3": "3",
"lv4": "4",
"lv5": "5",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "EXP_DOUBLE_BONUS",
"prob": "10",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "20",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "GOLD_DOUBLE_BONUS",
"prob": "10",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "20",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "5",
"neck": "5",
"head": "0",
"shield": "5",
"ear": "0"
},
{
"apply": "ITEM_DROP_BONUS",
"prob": "7",
"lv1": "2",
"lv2": "4",
"lv3": "6",
"lv4": "8",
"lv5": "20",
"weapon": "0",
"body": "0",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "5"
},
{
"apply": "IMMUNE_STUN",
"prob": "3",
"lv1": "1",
"lv2": "1",
"lv3": "1",
"lv4": "1",
"lv5": "1",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "1",
"ear": "0"
},
{
"apply": "IMMUNE_SLOW",
"prob": "3",
"lv1": "1",
"lv2": "1",
"lv3": "1",
"lv4": "1",
"lv5": "1",
"weapon": "0",
"body": "0",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "1",
"ear": "0"
},
{
"apply": "ATT_GRADE_BONUS",
"prob": "9",
"lv1": "5",
"lv2": "10",
"lv3": "15",
"lv4": "30",
"lv5": "50",
"weapon": "0",
"body": "5",
"wrist": "0",
"foots": "0",
"neck": "0",
"head": "0",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_ICE",
"prob": "18",
"lv1": "6",
"lv2": "8",
"lv3": "10",
"lv4": "12",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_EARTH",
"prob": "18",
"lv1": "6",
"lv2": "8",
"lv3": "10",
"lv4": "12",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
},
{
"apply": "RESIST_DARK",
"prob": "18",
"lv1": "6",
"lv2": "8",
"lv3": "10",
"lv4": "12",
"lv5": "15",
"weapon": "0",
"body": "5",
"wrist": "5",
"foots": "0",
"neck": "0",
"head": "5",
"shield": "0",
"ear": "0"
}
]

View File

@ -0,0 +1,342 @@
[
{
"apply": "MAX_HP",
"prob": "1",
"lv1": "500",
"lv2": "500",
"lv3": "500",
"lv4": "500",
"lv5": "500",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "MAX_SP",
"prob": "1",
"lv1": "50",
"lv2": "50",
"lv3": "50",
"lv4": "50",
"lv5": "50",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "CON",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "INT",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "STR",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "DEX",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "CRITICAL_PCT",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "PENETRATE_PCT",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_GRADE_BONUS",
"prob": "1",
"lv1": "50",
"lv2": "50",
"lv3": "50",
"lv4": "50",
"lv5": "50",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_BONUS_TO_MONSTER",
"prob": "1",
"lv1": "10",
"lv2": "10",
"lv3": "10",
"lv4": "10",
"lv5": "10",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_BONUS_TO_WARRIOR",
"prob": "1",
"lv1": "10",
"lv2": "10",
"lv3": "10",
"lv4": "10",
"lv5": "10",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_BONUS_TO_ASSASSIN",
"prob": "1",
"lv1": "10",
"lv2": "10",
"lv3": "10",
"lv4": "10",
"lv5": "10",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_BONUS_TO_SURA",
"prob": "1",
"lv1": "10",
"lv2": "10",
"lv3": "10",
"lv4": "10",
"lv5": "10",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_BONUS_TO_SHAMAN",
"prob": "1",
"lv1": "10",
"lv2": "10",
"lv3": "10",
"lv4": "10",
"lv5": "10",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "RESIST_WARRIOR",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "RESIST_ASSASSIN",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "RESIST_SURA",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "RESIST_SHAMAN",
"prob": "1",
"lv1": "5",
"lv2": "5",
"lv3": "5",
"lv4": "5",
"lv5": "5",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "ATT_SPEED",
"prob": "1",
"lv1": "2",
"lv2": "2",
"lv3": "2",
"lv4": "2",
"lv5": "2",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
},
{
"apply": "MOV_SPEED",
"prob": "1",
"lv1": "8",
"lv2": "8",
"lv3": "8",
"lv4": "8",
"lv5": "8",
"weapon": "5",
"body": "5",
"wrist": "5",
"foots": "5",
"neck": "5",
"head": "5",
"shield": "5",
"ear": "5"
}
]

1946
database/data/land.json Normal file

File diff suppressed because it is too large Load Diff

54
database/data/locale.json Normal file
View File

@ -0,0 +1,54 @@
[
{
"mKey": "LANGUAGE",
"mValue": "en"
},
{
"mKey": "DB_NAME_COLUMN",
"mValue": "locale_name"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE0",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE1",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE2",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE3",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE4",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE5",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE6",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_POWER_BY_LEVEL_TYPE7",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
},
{
"mKey": "SKILL_DAMAGE_BY_LEVEL_UNDER_90",
"mValue": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
},
{
"mKey": "SKILL_DAMAGE_BY_LEVEL_UNDER_45",
"mValue": "0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0"
},
{
"mKey": "SKILL_POWER_BY_LEVEL",
"mValue": "0 5 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 50 52 54 56 58 60 63 66 69 72 82 85 88 91 94 98 102 106 110 115 125 125 125 125 125"
}
]

View File

@ -0,0 +1,50 @@
[
{
"id": 1,
"name": "New Items"
},
{
"id": 2,
"name": "Modification&New Start"
},
{
"id": 3,
"name": "Contact & Trade"
},
{
"id": 4,
"name": "Regeneration&Strength"
},
{
"id": 5,
"name": "Fight and Aptitude"
},
{
"id": 6,
"name": "Wedding and Marriage"
},
{
"id": 7,
"name": "Refinement"
},
{
"id": 8,
"name": "Special Items"
},
{
"id": 9,
"name": "Hairstyles"
},
{
"id": 10,
"name": "Hairstyles of Attack"
},
{
"id": 11,
"name": "Economy Packages"
},
{
"id": 12,
"name": "Dragon Mark Items"
}
]

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,802 @@
[
{
"vnum": 14013,
"name": "weapons factory",
"price": 20000000,
"materials": "90010,20/90011,30/90012,20",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -213,
"reg_2": -213,
"reg_3": 213,
"reg_4": 213,
"npc": 20044,
"group_vnum": 2,
"dependent_group": 1
},
{
"vnum": 14014,
"name": "Armour blacksmith",
"price": 20000000,
"materials": "90010,20/90011,30/90012,20",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -213,
"reg_2": -213,
"reg_3": 213,
"reg_4": 213,
"npc": 20045,
"group_vnum": 2,
"dependent_group": 1
},
{
"vnum": 14015,
"name": "accessory factory",
"price": 20000000,
"materials": "90010,20/90011,30/90012,20",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -213,
"reg_2": -213,
"reg_3": 213,
"reg_4": 213,
"npc": 20046,
"group_vnum": 2,
"dependent_group": 1
},
{
"vnum": 14043,
"name": "diamond smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20060,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14045,
"name": "fossil wood smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20062,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14046,
"name": "copper smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20063,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14047,
"name": "silver smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20064,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14048,
"name": "gold smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20065,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14049,
"name": "jade smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20066,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14050,
"name": "ebony stone smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20067,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14051,
"name": "pearl smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20068,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14052,
"name": "platinum smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20069,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14053,
"name": "crystal smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20070,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14054,
"name": "amethyst smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20071,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14055,
"name": "Heavens tear smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 20072,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 14061,
"name": "Altar of Power",
"price": 25000000,
"materials": "90010,25/90011,25/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -112,
"reg_2": -298,
"reg_3": 114,
"reg_4": 225,
"npc": 20077,
"group_vnum": 4,
"dependent_group": 1
},
{
"vnum": 14062,
"name": "Altar of Power",
"price": 500000000,
"materials": "90010,50/90011,50/90012,50",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -112,
"reg_2": -298,
"reg_3": 114,
"reg_4": 225,
"npc": 20078,
"group_vnum": 4,
"dependent_group": 4
},
{
"vnum": 14063,
"name": "Altar of Power",
"price": 750000000,
"materials": "90010,75/90011,75/90012,75",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -112,
"reg_2": -298,
"reg_3": 114,
"reg_4": 225,
"npc": 20079,
"group_vnum": 4,
"dependent_group": 4
},
{
"vnum": 14100,
"name": "house(1)",
"price": 20000000,
"materials": "90010,20/90011,30/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -279,
"reg_2": -347,
"reg_3": 294,
"reg_4": 325,
"npc": 0,
"group_vnum": 1,
"dependent_group": 0
},
{
"vnum": 14110,
"name": "house(2)",
"price": 20000000,
"materials": "90010,20/90011,30/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -279,
"reg_2": -347,
"reg_3": 294,
"reg_4": 325,
"npc": 0,
"group_vnum": 1,
"dependent_group": 0
},
{
"vnum": 14120,
"name": "house(3)",
"price": 20000000,
"materials": "90010,20/90011,30/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -279,
"reg_2": -347,
"reg_3": 294,
"reg_4": 325,
"npc": 0,
"group_vnum": 1,
"dependent_group": 0
},
{
"vnum": 14141,
"name": "Wooden Wall 1",
"price": 800000,
"materials": "90010,5/90011,15/90012,15",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -2,
"reg_2": -40,
"reg_3": 174,
"reg_4": 40,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14142,
"name": "Wooden Wall 2",
"price": 500000,
"materials": "90010,5/90011,15/90012,15",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -36,
"reg_2": -36,
"reg_3": 36,
"reg_4": 36,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14143,
"name": "Wooden Wall 3",
"price": 800000,
"materials": "90010,5/90011,15/90012,15",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -195,
"reg_2": -52,
"reg_3": 2,
"reg_4": 52,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14144,
"name": "Wooden Gate",
"price": 500000,
"materials": "90010,5/90011,20/90012,20",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -1,
"reg_2": -96,
"reg_3": 348,
"reg_4": 96,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14200,
"name": "guild insignia",
"price": 3000000,
"materials": "90011,5/90012,5",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -23,
"reg_2": -5,
"reg_3": 21,
"reg_4": 20,
"npc": 0,
"group_vnum": 0,
"dependent_group": 1
},
{
"vnum": 14300,
"name": "stone1",
"price": 300000,
"materials": "90010,5",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -58,
"reg_2": -59,
"reg_3": 58,
"reg_4": 59,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14301,
"name": "stone2",
"price": 300000,
"materials": "90010,5",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -59,
"reg_2": -66,
"reg_3": 59,
"reg_4": 66,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14302,
"name": "stone3",
"price": 300000,
"materials": "90010,7",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -67,
"reg_2": -51,
"reg_3": 67,
"reg_4": 51,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14303,
"name": "stone4",
"price": 300000,
"materials": "90010,7",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -52,
"reg_2": -59,
"reg_3": 52,
"reg_4": 59,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14304,
"name": "stone5",
"price": 300000,
"materials": "90010,7",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -86,
"reg_2": -73,
"reg_3": 86,
"reg_4": 73,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14305,
"name": "stone6",
"price": 300000,
"materials": "90010,8",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -96,
"reg_2": -101,
"reg_3": 96,
"reg_4": 101,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14306,
"name": "stone7",
"price": 300000,
"materials": "90010,8",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -92,
"reg_2": -92,
"reg_3": 92,
"reg_4": 92,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14307,
"name": "stone8",
"price": 300000,
"materials": "90010,8",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -33,
"reg_2": -28,
"reg_3": 33,
"reg_4": 28,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14308,
"name": "stone9",
"price": 300000,
"materials": "90010,9",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -33,
"reg_2": -27,
"reg_3": 33,
"reg_4": 27,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14309,
"name": "stone10",
"price": 300000,
"materials": "90010,9",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -91,
"reg_2": -62,
"reg_3": 91,
"reg_4": 62,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14400,
"name": "wood1",
"price": 2000000,
"materials": "90011,5",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14401,
"name": "wood2",
"price": 2000000,
"materials": "90011,5",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14402,
"name": "wood3",
"price": 2000000,
"materials": "90011,7",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14403,
"name": "wood4",
"price": 2000000,
"materials": "90011,7",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14404,
"name": "wood5",
"price": 2000000,
"materials": "90011,7",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14405,
"name": "wood6",
"price": 2000000,
"materials": "90011,9",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14406,
"name": "wood7",
"price": 2000000,
"materials": "90011,9",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14407,
"name": "wood8",
"price": 2000000,
"materials": "90011,9",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 14408,
"name": "wood9",
"price": 2000000,
"materials": "90011,9",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": 0,
"reg_2": 0,
"reg_3": 0,
"reg_4": 0,
"npc": 0,
"group_vnum": 0,
"dependent_group": 0
},
{
"vnum": 26992,
"name": "Soul Crystal tear smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 33009,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 26993,
"name": "Rubin tear smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 33010,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 26994,
"name": "Garnet tear smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 33011,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 26995,
"name": "Smaragd tear smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 33012,
"group_vnum": 3,
"dependent_group": 1
},
{
"vnum": 26996,
"name": "Sapphire tear smelter",
"price": 20000000,
"materials": "90010,15/90011,20/90012,25",
"upgrade_vnum": 0,
"upgrade_limit_time": 0,
"life": 0,
"reg_1": -90,
"reg_2": -100,
"reg_3": 90,
"reg_4": 100,
"npc": 33013,
"group_vnum": 3,
"dependent_group": 1
}
]

File diff suppressed because it is too large Load Diff

157
database/data/shop.json Normal file
View File

@ -0,0 +1,157 @@
[
{
"vnum": 1,
"name": "Weapon Shop Dealer",
"npc_vnum": 9001
},
{
"vnum": 2,
"name": "Fisherman",
"npc_vnum": 9009
},
{
"vnum": 3,
"name": "General Store Saleswoman",
"npc_vnum": 9003
},
{
"vnum": 4,
"name": "Armour Shop Dealer",
"npc_vnum": 9002
},
{
"vnum": 5,
"name": "Weapon Shop Dealer 2",
"npc_vnum": 9007
},
{
"vnum": 6,
"name": "Armour Shop Dealer 2",
"npc_vnum": 9008
},
{
"vnum": 7,
"name": "gold_bar_shop",
"npc_vnum": 9005
},
{
"vnum": 8,
"name": "firework_shop",
"npc_vnum": 9004
},
{
"vnum": 9,
"name": "Peddler",
"npc_vnum": 20042
},
{
"vnum": 10,
"name": "pick_shop",
"npc_vnum": 20015
},
{
"vnum": 11,
"name": "Stable Boy",
"npc_vnum": 20349
},
{
"vnum": 1001,
"name": "all_sword",
"npc_vnum": 0
},
{
"vnum": 1002,
"name": "all_dualhand_sword",
"npc_vnum": 0
},
{
"vnum": 1003,
"name": "all_bow",
"npc_vnum": 0
},
{
"vnum": 1004,
"name": "all_twohand_sword",
"npc_vnum": 0
},
{
"vnum": 1005,
"name": "all_bell",
"npc_vnum": 0
},
{
"vnum": 1006,
"name": "all_fan",
"npc_vnum": 0
},
{
"vnum": 1007,
"name": "all_warrior_armour",
"npc_vnum": 0
},
{
"vnum": 1008,
"name": "all_assassin_armour",
"npc_vnum": 0
},
{
"vnum": 1009,
"name": "all_sura_armour",
"npc_vnum": 0
},
{
"vnum": 1010,
"name": "all_shaman_armour",
"npc_vnum": 0
},
{
"vnum": 1011,
"name": "all_warrior_helmet",
"npc_vnum": 0
},
{
"vnum": 1012,
"name": "all_assassin_helmet",
"npc_vnum": 0
},
{
"vnum": 1013,
"name": "all_sura_helmet",
"npc_vnum": 0
},
{
"vnum": 1014,
"name": "all_shaman_helmet",
"npc_vnum": 0
},
{
"vnum": 1015,
"name": "all_shield",
"npc_vnum": 0
},
{
"vnum": 1016,
"name": "all_bracelet",
"npc_vnum": 0
},
{
"vnum": 1017,
"name": "all_shoe",
"npc_vnum": 0
},
{
"vnum": 1018,
"name": "all_necklace",
"npc_vnum": 0
},
{
"vnum": 1019,
"name": "all_ring",
"npc_vnum": 0
},
{
"vnum": 13,
"name": "Alchemist",
"npc_vnum": 20001
}
]

1452
database/data/shop_item.json Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -17,6 +18,10 @@ return new class extends Migration
$table->string('mKey')->default('')->primary();
$table->string('mValue')->default('');
});
// Populate the table data
$data = File::json(database_path('data/locale.json'));
\App\Models\Game\Common\Locale::upsert($data, ['mKey']);
}
/**

View File

@ -14,6 +14,11 @@ return new class extends Migration
public function up()
{
Schema::connection('common')->create('spam_db', function (Blueprint $table) {
// TODO: update this to modern standards (InnoDB & utf8mb4)
$table->engine = "MyISAM";
$table->charset = "utf8";
$table->collation = "utf8_general_ci";
$table->set('type', ['GOOD', 'SPAM'])->default('SPAM');
$table->string('word', 256)->primary();
$table->integer('score')->default(10);

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -14,8 +15,12 @@ return new class extends Migration
public function up()
{
Schema::connection('player')->create('banword', function (Blueprint $table) {
$table->binary('word')->default('')->primary();
$table->binary('word', length: 24)->default('')->primary();
});
// Populate the table data
$data = File::json(database_path('data/banword.json'));
\App\Models\Game\Player\Banword::upsert($data, ['word']);
}
/**

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -30,6 +31,10 @@ return new class extends Migration
$table->string('shield', 100)->default('');
$table->string('ear', 100)->default('');
});
// Populate the table data
$data = File::json(database_path('data/item_attr_rare.json'));
\App\Models\Game\Player\ItemAttrRare::upsert($data, ['apply']);
}
/**

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -30,6 +31,10 @@ return new class extends Migration
$table->string('shield', 100)->default('');
$table->string('ear', 100)->default('');
});
// Populate the table data
$data = File::json(database_path('data/item_attr.json'));
\App\Models\Game\Player\ItemAttr::upsert($data, ['apply']);
}
/**

View File

@ -15,8 +15,8 @@ return new class extends Migration
{
Schema::connection('player')->create('item_proto', function (Blueprint $table) {
$table->unsignedInteger('vnum')->default(0)->primary();
$table->binary('name')->default('Noname');
$table->binary('locale_name')->default('Noname');
$table->binary('name', length: 24)->default('Noname');
$table->binary('locale_name', length: 24)->default('Noname');
$table->tinyInteger('type')->default(0);
$table->tinyInteger('subtype')->default(0);
$table->tinyInteger('weight')->nullable()->default(0);

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -25,6 +26,10 @@ return new class extends Migration
$table->unsignedInteger('price')->default(0);
$table->enum('enable', ['YES', 'NO'])->default('NO');
});
// Populate the table data
$data = File::json(database_path('data/land.json'));
\App\Models\Game\Player\Land::upsert($data, ['id']);
}
/**

View File

@ -15,8 +15,8 @@ return new class extends Migration
{
Schema::connection('player')->create('mob_proto', function (Blueprint $table) {
$table->integer('vnum')->default(0)->primary();
$table->string('name', 24)->default('Noname');
$table->binary('locale_name')->default('Noname ');
$table->binary('name', length: 24)->default('Noname');
$table->binary('locale_name', length: 24)->default('Noname');
$table->tinyInteger('rank')->default(0);
$table->tinyInteger('type')->default(0);
$table->boolean('battle_type')->default(false);

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -29,6 +30,10 @@ return new class extends Migration
$table->unsignedInteger('group_vnum')->default(0);
$table->unsignedInteger('dependent_group')->default(0);
});
// Populate the table data
$data = File::json(database_path('data/object_proto.json'));
\App\Models\Game\Player\ObjectProto::upsert($data, ['vnum']);
}
/**

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -30,6 +31,10 @@ return new class extends Migration
$table->unsignedInteger('result_vnum')->default(0);
$table->smallInteger('prob')->default(100);
});
// Populate the table data
$data = File::json(database_path('data/refine_proto.json'));
\App\Models\Game\Player\RefineProto::upsert($data, ['id']);
}
/**

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -20,6 +21,10 @@ return new class extends Migration
$table->unique(['shop_vnum', 'item_vnum', 'count'], 'vnum_unique');
});
// Populate the table data
$data = File::json(database_path('data/shop_item.json'));
\App\Models\Game\Player\ShopItem::upsert($data, ['shop_vnum', 'item_vnum']);
}
/**

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -18,6 +19,10 @@ return new class extends Migration
$table->string('name', 32)->default('Noname');
$table->smallInteger('npc_vnum')->default(0);
});
// Populate the table data
$data = File::json(database_path('data/shop.json'));
\App\Models\Game\Player\Shop::upsert($data, ['vnum']);
}
/**

View File

@ -2,6 +2,7 @@
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
@ -15,7 +16,7 @@ return new class extends Migration
{
Schema::connection('player')->create('skill_proto', function (Blueprint $table) {
$table->integer('dwVnum')->default(0)->primary();
$table->string('szName', 32)->default('');
$table->binary('szName', 32)->default('');
$table->tinyInteger('bType')->default(0);
$table->tinyInteger('bLevelStep')->default(0);
$table->tinyInteger('bMaxLevel')->default(0);
@ -46,6 +47,14 @@ return new class extends Migration
$table->integer('dwTargetRange')->default(1000);
$table->unsignedInteger('dwSplashRange')->default(0);
});
// Populate the table data
$data = File::json(database_path('data/skill_proto.json'));
foreach ($data as $key => &$value) {
// Decode szName from the base64 encoding
$value['szName'] = base64_decode($value['szName']);
}
\App\Models\Game\Player\SkillProto::upsert($data, ['dwVnum']);
}
/**

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::connection('website')->create('guild_highscore_cache', function (Blueprint $table) {
$table->bigInteger('id', true);
$table->text('name');
$table->text('master');
$table->integer('empire');
$table->bigInteger('level');
$table->bigInteger('ladder_point');
$table->timestamp('date')->useCurrent();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::connection('website')->dropIfExists('guild_highscore_cache');
}
};

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::connection('website')->create('highscore_cache', function (Blueprint $table) {
$table->bigInteger('id', true);
$table->text('name');
$table->integer('job');
$table->integer('empire');
$table->bigInteger('level');
$table->bigInteger('exp');
$table->timestamp('date')->useCurrent();
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::connection('website')->dropIfExists('highscore_cache');
}
};

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::connection('website')->create('mall_categories', function (Blueprint $table) {
$table->integer('id', true);
$table->text('name');
});
// Populate the table data
$data = File::json(database_path('data/mall_categories.json'));
\App\Models\Mall\MallCategory::upsert($data, ['id']);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::connection('website')->dropIfExists('mall_categories');
}
};

View File

@ -0,0 +1,32 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::connection('website')->create('mall_data', function (Blueprint $table) {
$table->unsignedInteger('vnum')->default(0)->primary();
$table->unsignedInteger('socket0')->default(0);
$table->unsignedInteger('socket1')->default(0);
$table->unsignedInteger('socket2')->default(0);
$table->unsignedInteger('socket3')->default(0);
$table->unsignedInteger('socket4')->default(0);
$table->unsignedInteger('socket5')->default(0);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::connection('website')->dropIfExists('mall_data');
}
};

View File

@ -0,0 +1,40 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\File;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::connection('website')->create('mall_items', function (Blueprint $table) {
$table->integer('id', true);
$table->integer('vnum');
$table->integer('category_id');
$table->integer('old_price')->nullable();
$table->integer('price');
$table->enum('pricing', ['CASH', 'MILEAGE'])->default('CASH');
$table->integer('quantity');
$table->text('image')->nullable();
$table->text('description')->nullable();
$table->enum('other', ['recommend', 'recommend_desc'])->nullable();
});
// Populate the table data
$data = File::json(database_path('data/mall_items.json'));
\App\Models\Mall\MallItem::upsert($data, ['id']);
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::connection('website')->dropIfExists('mall_items');
}
};

View File

@ -0,0 +1,49 @@
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::connection('website')->create('mall_storage', function (Blueprint $table) {
$table->bigInteger('id', true);
$table->unsignedInteger('owner_id')->default(0)->index('owner_id_idx');
$table->unsignedTinyInteger('count')->default(0);
$table->unsignedInteger('vnum')->default(0)->index('item_vnum_index');
$table->unsignedInteger('socket0')->default(0);
$table->unsignedInteger('socket1')->default(0);
$table->unsignedInteger('socket2')->default(0);
$table->unsignedInteger('socket3')->default(0);
$table->unsignedInteger('socket4')->default(0);
$table->unsignedInteger('socket5')->default(0);
$table->tinyInteger('attrtype0')->default(0);
$table->smallInteger('attrvalue0')->default(0);
$table->tinyInteger('attrtype1')->default(0);
$table->smallInteger('attrvalue1')->default(0);
$table->tinyInteger('attrtype2')->default(0);
$table->smallInteger('attrvalue2')->default(0);
$table->tinyInteger('attrtype3')->default(0);
$table->smallInteger('attrvalue3')->default(0);
$table->tinyInteger('attrtype4')->default(0);
$table->smallInteger('attrvalue4')->default(0);
$table->tinyInteger('attrtype5')->default(0);
$table->smallInteger('attrvalue5')->default(0);
$table->tinyInteger('attrtype6')->default(0);
$table->smallInteger('attrvalue6')->default(0);
});
}
/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::connection('website')->dropIfExists('mall_storage');
}
};