diff --git a/fileStruct/merge_StringBIN.py b/fileStruct/merge_StringBIN.py index 399a265..f66703f 100644 --- a/fileStruct/merge_StringBIN.py +++ b/fileStruct/merge_StringBIN.py @@ -168,13 +168,15 @@ def packData(self, output_path: str): MENU2_1 = createStringBINNClass('MENU/MENU2.PRG', [12, 13, 14, 15, 16, 17], 0x2478) MENU3 = createStringBINNClass('MENU/MENU3.PRG', [], 0x6bb4) MENU7 = createStringBINNClass('MENU/MENU7.PRG', startPtr=0x7c54) +MENU8 = createStringBINNClass('MENU/MENU8.PRG', [62], 0x429c) + MENU12 = createStringBINNClass('MENU/MENU12.BIN') #NAMEDIC = createStringBINNClass('MENU/NAMEDIC.BIN', [9, 10, 11, 12]) MENUB = createStringBINNClass('MENU/MENUB.PRG', startPtr=0x7a80) MON = createStringBINNClass('SMALL/MON.BIN', [], 0x19C8) -FileLoadFuncNames = ['MENU0', 'MENU1', 'MENU2', 'MENU2_1', 'MENU3', 'MENU4', 'MENU7', 'MENU12', 'MCMAN', 'ITEMHELP', +FileLoadFuncNames = ['MENU0', 'MENU1', 'MENU2', 'MENU2_1', 'MENU3', 'MENU4', 'MENU7', 'MENU8', 'MENU12', 'MCMAN', 'ITEMHELP', 'MENUB', 'BATTLE_3', 'MON' ] def getNNClass(className: str): diff --git a/fileStruct/readStrFile.py b/fileStruct/readStrFile.py index 3ee1316..71ddc42 100644 --- a/fileStruct/readStrFile.py +++ b/fileStruct/readStrFile.py @@ -71,7 +71,7 @@ def unpackData(self, buffer: bytes): def __len__(self): return self.len_buffer if 0 < self.itemNums else 0 - def packData(self): + def packData(self, aligb4b = True): if 0 >= self.itemNums: return None @@ -100,10 +100,20 @@ def packData(self): byte_stream.write(data) currPos = byte_stream.tell() - if self.len_buffer < currPos: - logging.warning(f"check the length of strings, size overflowed; {self.len_buffer} < current({currPos})") + if aligb4b: + sumBytes_pad = ((currPos+3)//4)*4 + padding = sumBytes_pad - currPos + if padding: + for _ in range(padding): + byte_stream.write(bytes1(0)) + sumBytes = sumBytes_pad + else: + sumBytes = currPos + + if self.len_buffer < sumBytes: + logging.warning(f"check the length of strings, size overflowed; {self.len_buffer} < current({sumBytes})") - self.len_buffer = currPos + self.len_buffer = sumBytes return byte_stream.getvalue() diff --git a/fileStruct/read_EVT.py b/fileStruct/read_EVT.py index 97ba1fc..d27caca 100644 --- a/fileStruct/read_EVT.py +++ b/fileStruct/read_EVT.py @@ -39,8 +39,13 @@ def unpackData(self, input_path: str): self.strings.unpackData(self.buffer[head[1]:head[2]]) self.Unknown1 = self.buffer[head[2]:head[3]] self.Unknown2 = self.buffer[head[3]:head[0]] - + self.strings_byte = self.strings._byte + + #if not all([x==0 for x in self.Unknown1]): + # print() + #if not all([x==0 for x in self.Unknown2]): + # print() def packData(self, output_path: str): byte_stream = io.BytesIO(self.buffer) diff --git a/fileStruct/read_Nstrings.py b/fileStruct/read_Nstrings.py index 921ba39..693306b 100644 --- a/fileStruct/read_Nstrings.py +++ b/fileStruct/read_Nstrings.py @@ -157,12 +157,12 @@ def packData(self, output_path: str): FileLoadFuncNames = ['MENU5', 'NAMEDIC', - 'MENU8', 'MENU9', 'MENUD', 'MENUE', + 'MENU9', 'MENUD', 'MENUE', 'BATTLE', 'MON', 'TITLE', 'INITBTL', 'ITEMNAME', 'SL_Main'] FileLoad1Strs = ['NAMEDIC', - 'MENU8', 'MENUD', 'MENUE', + 'MENUD', 'MENUE', 'TITLE', 'ITEMNAME'] def getNNClass(className: str) -> Tuple[Class_Nstrings, Class_Nstrings]: diff --git a/fileStruct/structMPD.py b/fileStruct/structMPD.py index 58708c5..4f37fce 100644 --- a/fileStruct/structMPD.py +++ b/fileStruct/structMPD.py @@ -105,8 +105,9 @@ def unpackData(self, buffer: bytes): def packData(self): return self.buffer -DoorPtrs_jp = { 0 : [0x0044, 0x009C, ], 17 : [0x0330, ], 18 : [0x0068, 0x00D8, ], 20 : [0x01E0, 0x03E8, 0x0514, 0x05E4, 0x0714, ], 24 : [0x0058, ], 25 : [0x0058, ], 26 : [0x0058, ], 28 : [0x0070, ], 30 : [0x00A4, 0x0148, ], 32 : [0x0058, 0x04C4, 0x054C, ], 34 : [0x0254, 0x0384, 0x0438, ], 42 : [0x0058, 0x00E0, ], 43 : [0x0058, ], 45 : [0x0058, ], 46 : [0x0058, 0x036C, 0x0438, 0x04F0, ], 50 : [0x0064, ], 51 : [0x0058, 0x00DC, ], 59 : [0x0058, ], 60 : [0x0574, 0x05E8, 0x07F8, ], 61 : [0x0058, ], 63 : [0x0058, ], 67 : [0x0058, ], 69 : [0x0058, ], 75 : [0x011C, ], 77 : [0x0058, ], 79 : [0x0058, ], 83 : [0x0058, 0x00DC, ], 88 : [0x0058, ], 90 : [0x0058, 0x00EC, ], 94 : [0x0058, ], 96 : [0x0058, ], 99 : [0x0198, ], 106 : [0x0058, 0x00DC, ], 109 : [0x006C, 0x012C, ], 110 : [0x0064, ], 112 : [0x0058, ], 113 : [0x0090, ], 115 : [0x0064, ], 121 : [0x006C, 0x012C, ], 124 : [0x0200, ], 140 : [0x0058, 0x00EC, ], 142 : [0x0058, 0x00E8, ], 145 : [0x0058, ], 149 : [0x0588, ], 150 : [0x01F8, 0x03A8, 0x0660, 0x0934, 0x0D3C, ], 151 : [0x0094, ], 153 : [0x00BC, 0x0124, ], 155 : [0x0060, ], 156 : [0x0050, ], 159 : [0x00BC, ], 164 : [0x0058, ], 177 : [0x0060, ], 179 : [0x0120, 0x030C, ], 180 : [0x019C, ], 181 : [0x019C, ], 182 : [0x023C, ], 183 : [0x019C, ], 184 : [0x019C, ], 185 : [0x019C, ], 186 : [0x019C, ], 187 : [0x019C, ], 188 : [0x019C, ], 189 : [0x019C, ], 190 : [0x00B0, 0x0268, ], 191 : [0x019C, ], 192 : [0x01D8, ], 193 : [0x019C, ], 194 : [0x019C, ], 195 : [0x019C, ], 196 : [0x019C, ], 197 : [0x019C, ], 198 : [0x019C, ], 199 : [0x01D8, ], 201 : [0x00FC, ], 202 : [0x00B8, ], 203 : [0x013C, 0x03CC, 0x0708, 0x0A40, 0x0BCC, 0x0E54, ], 223 : [0x0058, ], 228 : [0x0058, ], 231 : [0x0094, ], 232 : [0x0094, ], 233 : [0x0094, ], 235 : [0x0058, 0x00CC, ], 236 : [0x0058, ], 241 : [0x0064, ], 248 : [0x0058, 0x00E4, ], 249 : [0x0058, ], 252 : [0x0058, ], 257 : [0x0058, ], 264 : [0x006C, 0x012C, ], 265 : [0x0058, 0x00E0, ], 266 : [0x0058, ], 268 : [0x0124, ], 269 : [0x00B8, ], 271 : [0x00AC, 0x0150, ], 272 : [0x00AC, 0x0154, ], 277 : [0x0058, ], 282 : [0x0058, 0x012C, ], 286 : [0x0058, ], 288 : [0x0058, ], 290 : [0x0058, ], 298 : [0x0058, ], 310 : [0x009C, ], 312 : [0x0058, ], 314 : [0x0058, ], 315 : [0x0058, ], 316 : [0x0068, 0x00D8, ], 318 : [0x0078, 0x0178, ], 321 : [0x0078, 0x0178, ], 334 : [0x0058, ], 336 : [0x0068, 0x00D8, ], 340 : [0x0058, ], 344 : [0x0080, 0x0190, ], 345 : [0x0068, 0x00D8, ], 350 : [0x00FC, 0x01F4, ], 352 : [0x0174, 0x0320, 0x03D4, ], 356 : [0x0058, 0x00E4, ], 358 : [0x0068, 0x00D8, ], 360 : [0x0058, 0x00E8, ], 362 : [0x0058, 0x00E0, ], 366 : [0x0058, 0x00E4, ], 368 : [0x006C, 0x00DC, ], 371 : [0x0058, ], 377 : [0x0058, 0x00E4, ], 382 : [0x006C, 0x00DC, ], 383 : [0x0058, 0x00E0, ], 387 : [0x0058, 0x00E4, ], 392 : [0x0058, 0x00E4, ], 396 : [0x0068, 0x01B4, 0x02E8, 0x03EC, ], 404 : [0x0058, ], 408 : [0x0058, 0x00DC, ], 416 : [0x0110, 0x026C, ], 417 : [0x00C8, 0x0258, ], } -DoorPtrs_en = {0 : [0x0044, 0x009C, ], 17 : [0x0330, ], 18 : [0x0068, 0x00E8, ], 20 : [0x01E0, 0x0418, 0x0574, 0x0650, ], 24 : [0x0058, ], 25 : [0x0058, ], 26 : [0x0058, ], 28 : [0x0070, ], 30 : [0x00A4, 0x0154, ], 32 : [0x04D8, 0x0564, ], 34 : [0x0254, ], 42 : [0x0058, 0x00E4, ], 46 : [0x0058, 0x0370, 0x044C, 0x0514, ], 50 : [0x0064, ], 51 : [0x0058, 0x00E0, ], 60 : [0x0058, ], 61 : [0x0058, ], 63 : [0x0058, ], 67 : [0x0058, ], 69 : [0x0058, ], 75 : [0x011C, ], 77 : [0x0058, ], 79 : [0x0058, ], 83 : [0x0058, 0x00E0, ], 88 : [0x0058, ], 90 : [0x0058, 0x00F0, ], 94 : [0x0058, ], 96 : [0x0058, ], 99 : [0x0198, ], 106 : [0x0058, 0x00E0, ], 109 : [0x006C, 0x013C, ], 110 : [0x0064, ], 113 : [0x0090, ], 115 : [0x0064, ], 121 : [0x006C, 0x013C, ], 140 : [0x0058, 0x00F0, ], 142 : [0x0058, 0x00EC, ], 145 : [0x0058, ], 149 : [0x0588, ], 150 : [0x067C, 0x0968, 0x0D98, ], 151 : [0x0094, ], 153 : [0x0140, ], 155 : [0x0060, ], 156 : [0x0050, ], 177 : [0x0060, ], 179 : [0x0120, 0x0318, ], 180 : [0x019C, ], 181 : [0x019C, ], 182 : [0x023C, ], 183 : [0x019C, ], 184 : [0x019C, ], 185 : [0x019C, ], 186 : [0x019C, ], 187 : [0x019C, ], 188 : [0x019C, ], 189 : [0x019C, ], 190 : [0x0284, ], 191 : [0x019C, ], 192 : [0x01D8, ], 193 : [0x019C, ], 194 : [0x019C, ], 195 : [0x019C, ], 196 : [0x019C, ], 197 : [0x019C, ], 198 : [0x019C, ], 199 : [0x01D8, ], 203 : [0x03E8, 0x0728, 0x0A70, 0x0C08, 0x0E94, ], 223 : [0x0058, ], 231 : [0x0094, ], 232 : [0x0094, ], 233 : [0x0094, ], 235 : [0x0058, 0x00D8, ], 241 : [0x0064, ], 248 : [0x0058, 0x00E8, ], 249 : [0x0058, ], 252 : [0x0058, ], 257 : [0x0058, ], 264 : [0x006C, 0x013C, ], 265 : [0x0058, 0x00E4, ], 266 : [0x0058, ], 268 : [0x0124, ], 271 : [0x00AC, 0x015C, ], 272 : [0x00AC, 0x0160, ], 277 : [0x0058, ], 282 : [0x0058, 0x0138, ], 286 : [0x0058, ], 290 : [0x0058, ], 298 : [0x0058, ], 310 : [0x009C, ], 312 : [0x0058, ], 314 : [0x0058, ], 315 : [0x0058, ], 316 : [0x0068, 0x00E8, ], 318 : [0x0078, 0x0188, ], 321 : [0x0078, 0x0188, ], 334 : [0x0058, ], 336 : [0x0068, 0x00E8, ], 340 : [0x0058, ], 344 : [0x0080, 0x019C, ], 345 : [0x0068, 0x00E8, ], 350 : [0x0210, ], 352 : [0x0174, 0x0320, 0x03D4, ], 356 : [0x0058, 0x00E8, ], 358 : [0x0068, 0x00E8, ], 360 : [0x0058, 0x00EC, ], 362 : [0x0058, 0x00E4, ], 366 : [0x0058, 0x00E8, ], 368 : [0x006C, 0x00EC, ], 371 : [0x0058, ], 377 : [0x0058, 0x00E8, ], 382 : [0x006C, 0x00EC, ], 383 : [0x0058, 0x00E4, ], 387 : [0x0058, 0x00E8, ], 392 : [0x0058, 0x00E8, ], 396 : [0x0068, 0x01C0, 0x0304, 0x0418, ], 404 : [0x0058, ], 408 : [0x0058, 0x00E0, ], 416 : [0x0110, 0x026C, ],} +#282 : [0x0058, 0x012C, ] +DoorPtrs_jp = { 0 : [0x0044, 0x009C, ], 17 : [0x0330, ], 18 : [0x0068, 0x00D8, ], 20 : [0x01E0, 0x03E8, 0x0514, 0x05E4, 0x0714, ], 24 : [0x0058, ], 25 : [0x0058, ], 26 : [0x0058, ], 28 : [0x0070, ], 30 : [0x00A4, 0x0148, ], 32 : [0x0058, 0x04C4, 0x054C, ], 34 : [0x0254, 0x0384, 0x0438, ], 38: [0xB0,], 42 : [0x0058, 0x00E0, ], 43 : [0x0058, ], 45 : [0x0058, ], 46 : [0x0058, 0x036C, 0x0438, 0x04F0, ], 50 : [0x0064, ], 51 : [0x0058, 0x00DC, ], 59 : [0x0058, ], 60 : [0x0574, 0x05E8, 0x07F8, ], 61 : [0x0058, ], 63 : [0x0058, ], 67 : [0x0058, ], 69 : [0x0058, ], 75 : [0x011C, ], 77 : [0x0058, ], 79 : [0x0058, ], 83 : [0x0058, 0x00DC, ], 88 : [0x0058, ], 90 : [0x0058, 0x00EC, ], 94 : [0x0058, ], 96 : [0x0058, ], 99 : [0x0198, ], 106 : [0x0058, 0x00DC, ], 109 : [0x006C, 0x012C, ], 110 : [0x0064, ], 112 : [0x0058, ], 113 : [0x0090, ], 115 : [0x0064, ], 121 : [0x006C, 0x012C, ], 124 : [0x0200, ], 140 : [0x0058, 0x00EC, ], 142 : [0x0058, 0x00E8, ], 145 : [0x0058, ], 149 : [0x0588, ], 150 : [0x01F8, 0x03A8, 0x0660, 0x0934, 0x0D3C, ], 151 : [0x0094, ], 153 : [0x00BC, 0x0124, ], 155 : [0x0060, ], 156 : [0x0050, ], 159 : [0x00BC, ], 164 : [0x0058, ], 177 : [0x0060, ], 179 : [0x0120, 0x030C, ], 180 : [0x019C, ], 181 : [0x019C, ], 182 : [0x023C, ], 183 : [0x019C, ], 184 : [0x019C, ], 185 : [0x019C, ], 186 : [0x019C, ], 187 : [0x019C, ], 188 : [0x019C, ], 189 : [0x019C, ], 190 : [0x00B0, 0x0268, ], 191 : [0x019C, ], 192 : [0x01D8, ], 193 : [0x019C, ], 194 : [0x019C, ], 195 : [0x019C, ], 196 : [0x019C, ], 197 : [0x019C, ], 198 : [0x019C, ], 199 : [0x01D8, ], 201 : [0x00FC, ], 202 : [0x00B8, ], 203 : [0x013C, 0x03CC, 0x0708, 0x0A40, 0x0BCC, 0x0E54, ], 223 : [0x0058, ], 228 : [0x0058, ], 231 : [0x0094, ], 232 : [0x0094, ], 233 : [0x0094, ], 235 : [0x0058, 0x00CC, ], 236 : [0x0058, ], 241 : [0x0064, ], 248 : [0x0058, 0x00E4, ], 249 : [0x0058, ], 252 : [0x0058, ], 257 : [0x0058, ], 264 : [0x006C, 0x012C, ], 265 : [0x0058, 0x00E0, ], 266 : [0x0058, ], 268 : [0x0124, ], 269 : [0x00B8, ], 271 : [0x00AC, 0x0150, ], 272 : [0x00AC, 0x0154, ], 277 : [0x0058, ], 282 : [0x0058, ], 286 : [0x0058, ], 288 : [0x0058, ], 290 : [0x0058, ], 298 : [0x0058, ], 310 : [0x009C, ], 312 : [0x0058, ], 314 : [0x0058, ], 315 : [0x0058, ], 316 : [0x0068, 0x00D8, ], 318 : [0x0078, 0x0178, ], 321 : [0x0078, 0x0178, ], 334 : [0x0058, ], 336 : [0x0068, 0x00D8, ], 340 : [0x0058, ], 344 : [0x0080, 0x0190, ], 345 : [0x0068, 0x00D8, ], 350 : [0x00FC, 0x01F4, ], 352 : [0x0174, 0x0320, 0x03D4, ], 356 : [0x0058, 0x00E4, ], 358 : [0x0068, 0x00D8, ], 360 : [0x0058, 0x00E8, ], 362 : [0x0058, 0x00E0, ], 366 : [0x0058, 0x00E4, ], 368 : [0x006C, 0x00DC, ], 371 : [0x0058, ], 377 : [0x0058, 0x00E4, ], 382 : [0x006C, 0x00DC, ], 383 : [0x0058, 0x00E0, ], 387 : [0x0058, 0x00E4, ], 392 : [0x0058, 0x00E4, ], 396 : [0x0068, 0x01B4, 0x02E8, 0x03EC, ], 404 : [0x0058, ], 408 : [0x0058, 0x00DC, ], 416 : [0x0110, 0x026C, ], 417 : [0x00C8, 0x0258, ], } +DoorPtrs_en = {0 : [0x0044, 0x009C, ], 17 : [0x0330, ], 18 : [0x0068, 0x00E8, ], 20 : [0x01E0, 0x0418, 0x0574, 0x0650, ], 24 : [0x0058, ], 25 : [0x0058, ], 26 : [0x0058, ], 28 : [0x0070, ], 30 : [0x00A4, 0x0154, ], 32 : [0x04D8, 0x0564, ], 34 : [0x0254, ], 38: [0xB0,], 42 : [0x0058, 0x00E4, ], 46 : [0x0058, 0x0370, 0x044C, 0x0514, ], 50 : [0x0064, ], 51 : [0x0058, 0x00E0, ], 60 : [0x0058, ], 61 : [0x0058, ], 63 : [0x0058, ], 67 : [0x0058, ], 69 : [0x0058, ], 75 : [0x011C, ], 77 : [0x0058, ], 79 : [0x0058, ], 83 : [0x0058, 0x00E0, ], 88 : [0x0058, ], 90 : [0x0058, 0x00F0, ], 94 : [0x0058, ], 96 : [0x0058, ], 99 : [0x0198, ], 106 : [0x0058, 0x00E0, ], 109 : [0x006C, 0x013C, ], 110 : [0x0064, ], 113 : [0x0090, ], 115 : [0x0064, ], 121 : [0x006C, 0x013C, ], 140 : [0x0058, 0x00F0, ], 142 : [0x0058, 0x00EC, ], 145 : [0x0058, ], 149 : [0x0588, ], 150 : [0x067C, 0x0968, 0x0D98, ], 151 : [0x0094, ], 153 : [0x0140, ], 155 : [0x0060, ], 156 : [0x0050, ], 177 : [0x0060, ], 179 : [0x0120, 0x0318, ], 180 : [0x019C, ], 181 : [0x019C, ], 182 : [0x023C, ], 183 : [0x019C, ], 184 : [0x019C, ], 185 : [0x019C, ], 186 : [0x019C, ], 187 : [0x019C, ], 188 : [0x019C, ], 189 : [0x019C, ], 190 : [0x0284, ], 191 : [0x019C, ], 192 : [0x01D8, ], 193 : [0x019C, ], 194 : [0x019C, ], 195 : [0x019C, ], 196 : [0x019C, ], 197 : [0x019C, ], 198 : [0x019C, ], 199 : [0x01D8, ], 203 : [0x03E8, 0x0728, 0x0A70, 0x0C08, 0x0E94, ], 223 : [0x0058, ], 231 : [0x0094, ], 232 : [0x0094, ], 233 : [0x0094, ], 235 : [0x0058, 0x00D8, ], 241 : [0x0064, ], 248 : [0x0058, 0x00E8, ], 249 : [0x0058, ], 252 : [0x0058, ], 257 : [0x0058, ], 264 : [0x006C, 0x013C, ], 265 : [0x0058, 0x00E4, ], 266 : [0x0058, ], 268 : [0x0124, ], 271 : [0x00AC, 0x015C, ], 272 : [0x00AC, 0x0160, ], 277 : [0x0058, ], 282 : [0x0058, ], 286 : [0x0058, ], 290 : [0x0058, ], 298 : [0x0058, ], 310 : [0x009C, ], 312 : [0x0058, ], 314 : [0x0058, ], 315 : [0x0058, ], 316 : [0x0068, 0x00E8, ], 318 : [0x0078, 0x0188, ], 321 : [0x0078, 0x0188, ], 334 : [0x0058, ], 336 : [0x0068, 0x00E8, ], 340 : [0x0058, ], 344 : [0x0080, 0x019C, ], 345 : [0x0068, 0x00E8, ], 350 : [0x0210, ], 352 : [0x0174, 0x0320, 0x03D4, ], 356 : [0x0058, 0x00E8, ], 358 : [0x0068, 0x00E8, ], 360 : [0x0058, 0x00EC, ], 362 : [0x0058, 0x00E4, ], 366 : [0x0058, 0x00E8, ], 368 : [0x006C, 0x00EC, ], 371 : [0x0058, ], 377 : [0x0058, 0x00E8, ], 382 : [0x006C, 0x00EC, ], 383 : [0x0058, 0x00E4, ], 387 : [0x0058, 0x00E8, ], 392 : [0x0058, 0x00E8, ], 396 : [0x0068, 0x01C0, 0x0304, 0x0418, ], 404 : [0x0058, ], 408 : [0x0058, 0x00E0, ], 416 : [0x0110, 0x026C, ],} def createDoorSectionClass(Ptrs: List[int] = []): class DoorSection(): @@ -140,7 +141,16 @@ def unpackData(self, buffer: bytes): for pos in Ptrs: self.strings.append(ReadStrings(self.buffer[pos:])) - self.preSizes.append(self.strings[-1].len_buffer) + len_str = self.strings[-1].len_buffer + len_str_pad = ((len_str+3)//4)*4 + pad = len_str_pad - len_str + if pad: + res = self.buffer[pos+len_str:pos+len_str+pad] + if all([x==0 for x in res]): + len_str = len_str_pad + else: + logging.debug("why?") + self.preSizes.append(len_str) return @@ -232,7 +242,8 @@ def packData(self): byte_stream.seek(self.ptrWeaponName) if 0x18 < len(self.name_byte): logging.critical(f"WeaponName: {self.name_str} is too long. max (24byte.)") - self.name_byte = self.name_byte[:0x18] + self.name_byte = self.name_byte[:0x17] + self.name_byte.append(0xE7) byte_stream.write(self.name_byte) return byte_stream.getvalue() @@ -269,21 +280,15 @@ def packData(self): return None data = self.strings.packData() + sumBytes = self.strings.len_buffer + + if self.sectionSize < sumBytes: + logging.info(f"check the dialogs length, size overflowed; privious({self.sectionSize}) < current({sumBytes})") + self.sectionSize = sumBytes - sumBytes = 2*self.strings.itemNums - for text in self.strings_byte: - sumBytes += len(text) - sumBytes_pad = ((sumBytes+3)//4)*4 - padding = sumBytes_pad - sumBytes - - if self.sectionSize < sumBytes_pad: - logging.info(f"check the dialogs length, size overflowed; privious({self.sectionSize}) < current({sumBytes_pad})") - self.sectionSize = sumBytes_pad - - if sumBytes_pad == 0: + if sumBytes == 0: return bytes() - - return data + b'\x00'*padding + return data class ScriptSection: def __init__(self, buffer: Union[bytes, None] = None) -> None: @@ -439,10 +444,7 @@ def unpackData(self, input_path: str): for idx in range(6): if sizes[idx] == 0: continue byte_stream.seek(poses[idx]) - if idx == 3: - sections[idx].unpackData(byte_stream.read(sizes[idx])) - else: - sections[idx].unpackData(byte_stream.read(sizes[idx])) + sections[idx].unpackData(byte_stream.read(sizes[idx])) def packData(self, output_path:str): if not self.header: @@ -452,7 +454,7 @@ def packData(self, output_path:str): poses = [self.header[0]] sizes = [] - scriptSection = self.scriptSection.packData() + scriptSectionData = self.scriptSection.packData() sections = [self.roomSection, self.clearedSection, self.scriptSection, self.doorSection, self.enemySection, self.treasureSection] @@ -461,10 +463,10 @@ def packData(self, output_path:str): if idx > 0: poses.append(poses[idx-1] + sizes[idx-1]) sumSizes = sum(sizes) - logging.debug(f"MDP / room:{self.header[1]}, cleared:{self.header[3]}, script:{self.header[5]}, door:{self.header[7]}, enemy:{self.header[9]}, treasure:{self.header[1]}") + logging.debug(f"MDP / room:{self.header[1]}, cleared:{self.header[3]}, script:{self.header[5]}, door:{self.header[7]}, enemy:{self.header[9]}, treasure:{self.header[11]}") - prevScriptSectionSize = self.header[6] - self.header[4] - writeSize = len(scriptSection) if scriptSection is not None else 0 + prevScriptSectionSize = self.header[5] + writeSize = len(scriptSectionData) if scriptSectionData is not None else 0 if prevScriptSectionSize < writeSize: logging.info(f"{output_path}, check the section size, size overflowed({prevScriptSectionSize} < {writeSize})") @@ -473,9 +475,9 @@ def packData(self, output_path:str): self.header[idx+1] = sizes[idx//2] if sumSizes > fileSize: - prev = math.ceil(fileSize / 2048) * 2048 - curr = math.ceil(sumSizes / 2048) * 2048 - if curr > prev: + prev = ((fileSize + 2047) // 2048) * 2048 + curr = ((sumSizes + 2047) // 2048) * 2048 + if prev < curr: logging.critical(f"{output_path}, check the file size, LBA overflowed({fileSize} < {sumSizes})") else: logging.info(f"{output_path}, check the file size, size overflowed({fileSize} < {sumSizes})") @@ -485,7 +487,7 @@ def packData(self, output_path:str): file.write(bytes4(value)) for idx in range(6): - data = scriptSection if idx == 2 else sections[idx].packData() + data = scriptSectionData if idx == 2 else sections[idx].packData() if data is not None: file.seek(poses[idx]) file.write(data) diff --git a/rebuild.py b/rebuild.py index 2e5d087..1e18a70 100644 --- a/rebuild.py +++ b/rebuild.py @@ -190,7 +190,7 @@ def calpos(row: int, col: int): return jpnList -def makeKorFont(): +def makeKorFontData(): jpnIndexes, jpnLetters = jpnTableslots(jpnTBL) korTBL = deepcopy(jpnTBL) korKeys = list(korTBL.fwd_tbl.keys()) @@ -244,6 +244,13 @@ def makeKorFont(): f.write(f"{h}={v}\n") + + return korHisto + +def applyKorFont(): + krfontImage = 'font/font12kr.png' + imgJpKr = Image.open(krfontImage) + system_dat = cvtFontBin.SYSTEM_DAT(f'{PATH_JPN_VARGRANTSTORY}') system_dat.fontData.setImage(imgJpKr) @@ -253,7 +260,6 @@ def makeKorFont(): system_dat.packData(f'{PATH_KOR_VARGRANTSTORY}/BATTLE/SYSTEM.DAT') insertTITLE_font(f'{PATH_JPN_VARGRANTSTORY}/TITLE/TITLE.PRG', 'font/font12kr.png', f'{PATH_KOR_VARGRANTSTORY}/TITLE/TITLE.PRG') - return korHisto def posInTable18_ja(index: int): row = index//18 @@ -320,6 +326,8 @@ def fixMPD(idx: int, mpd: MPDstruct): def update_MPD(index: int, kor_strings: dict): Name = f"MAP{index:03}" filepath = f"{PATH_JPN_VARGRANTSTORY}/MAP/{Name}.MPD" + if Name == 'MAP038': + print() mpd = MPDstruct(str(filepath), DoorPtrs_jp) mpd.cvtByte2Str(jpnTBL) @@ -371,7 +379,8 @@ def updateMAP_MDP(kor_strings: dict): for key in kor_strings.keys(): if str(key)[:3] == 'MAP' and str(key) != 'MAP_ZND': idx = int(str(key)[3:]) - logging.info(f"=== MAP{idx:03}.MPD packing ===") + #logging.info(f"=== MAP{idx:03}.MPD packing ===") + print(f"=== MAP{idx:03}.MPD packing ===") update_MPD(idx, kor_strings) def update_ARM(Name: str, dictTexts: dict): @@ -561,9 +570,10 @@ def update_EVT(kor_strings: dict): string = v1.get('string') if string is not None: evts_jp.evtFiles[int_k0].strings_str[int_k1] = string - - evts_jp.cvtStr2Byte(korTBL) - evts_jp.packData(PATH_KOR_VARGRANTSTORY) + + evts_jp.evtFiles[int_k0].strings.cvtStr2Byte(korTBL) + evts_jp.evtFiles[int_k0].packData(f"{PATH_KOR_VARGRANTSTORY}/EVENT/{int_k0:04}.EVT") + def stringBIN_merge(kor_strings: dict): print(f"update === stringBIN_merge === ") @@ -693,10 +703,11 @@ def rebuildKor(): #exit() #downlaod_localazy() -#korHisto = makeKorFont() +#korHisto = makeKorFontData() #makeKorFont14(korHisto) #update_Help() #exit() +applyKorFont() rebuildKor() def test1(): diff --git a/test.py b/test.py index bb198c8..2431855 100644 --- a/test.py +++ b/test.py @@ -1162,7 +1162,7 @@ def searchByte(): #word = bytearray([0x91, 0xE0, 0x90, 0xCD, 0x53, 0xA2, 0xD7, 0xE7]) #word = bytearray([0xE0, 0x9C, 0x90, 0xCD, 0xED, 0x23, 0xA2, 0xD7]) #word = bytearray([0xEF, 0x6B, 0xF0, 0x0C, 0x4A, 0x63]) - word = bytearray([0x16 , 0x19 , 0xED , 0x2A , 0xEE , 0xAB , 0x56 , 0x4D , 0x5F]) + word = bytearray([0xD1,0xC4 ,0xB5 ,0xB2]) len_word = len(word) for filepath in tqdm(file_list, desc="Processing"): relative_path = filepath.relative_to(folder_path) diff --git a/work/kor/EVENT_EVT_ko.json b/work/kor/EVENT_EVT_ko.json index 4d62f28..2f3f761 100644 --- a/work/kor/EVENT_EVT_ko.json +++ b/work/kor/EVENT_EVT_ko.json @@ -181,20 +181,6 @@ "string": "«F800»«FB78»«FB04»바람의 흐름이 바뀌었다!" } }, - "025": { - "000": { - "string": "«F800»«FB50»■ 삭제 예정! ↵«E6E7»" - }, - "001": { - "string": "«F800»«FB50»■ 삭제 예정! ↵«E6E7»" - }, - "002": { - "string": "«F800»«FB50»■ 삭제 예정! ↵«E6E7»" - }, - "003": { - "string": "«F800»«FB50»■ 삭제 예정! ↵«E6E7»" - } - }, "026": { "000": { "string": "«FB68»«FA0C»⋯부탁이야,그만해줘。" @@ -224,7 +210,7 @@ "string": "«FB68»«FA12»이것은!«FAFA»?" }, "009": { - "string": "«FB68»«FA0C»이게 “진실”이다。" + "string": "«FB68»«FA0C»이게«FA03»“진실”이다。" }, "010": { "string": "«FB88»«FA12»바보 같은!«FAFA»!↵«FA12»속임수다!«FAFA»!" @@ -244,16 +230,16 @@ }, "027": { "000": { - "string": "«FB68»«FA0C»너는 이 정보분석관을↵«FA0C»데리고 먼저 가라。↵«FA0C»서툰 흉내는 내지 말고。" + "string": "«FB68»«FA18»너는 이 정보분석관을↵«FA18»데리고 먼저 가라。↵«FA18»서툰 흉내는 내지 말고。" }, "001": { - "string": "«FB68»«FA0C»⋯너는?" + "string": "«FB68»«FA24»⋯너는?" }, "002": { - "string": "«FB98»«FA24»길덴스턴에 인사라도↵«FA24»하고 오지。 걱정마。" + "string": "«FB98»«FA24»길덴스턴에게 인사라도↵«FA24»하고 오지。 걱정마。" }, "003": { - "string": "«FB68»«FA0C»가능하면 “각인”으로 문을 잠궈。 ↵«FA0C»놈들이 해제하는 걸 배우려면 시간이↵«FA0C»필요하니까。" + "string": "«FB68»«FA12»가능하면«FA03»“각인”으로 문을 잠궈。↵«FA12»놈들이 해제하는 걸 배우려면↵«FA12»시간이 필요하니까。" }, "004": { "string": "«FB68»«FA12»시드니。" @@ -262,7 +248,7 @@ "string": "«FB68»«FA0C»⋯친구라면,너의↵«FA0C»“의식”을 억지로 집어 넣지마。 " }, "006": { - "string": "«FB98»«FA1E»알겠어?,두 번 다시 그러지마!" + "string": "«FB98»«FA0C»알겠어?,두 번 다시 그러지마!" }, "007": { "string": "«FB68»«FA0C»⋯그는 죽을 생각이야。" @@ -271,10 +257,10 @@ "string": "«FB68»«FA0C»이쪽이야。따라와。" }, "009": { - "string": "«FB68»«FA0C»⋯멜로즈。" + "string": "«FB68»«FA24»⋯멜로즈。" }, "010": { - "string": "«FB98»«FA0C»⋯시드니,무슨 생각이지?" + "string": "«FB98»«FA18»⋯시드니,무슨 생각이지?" } }, "028": { @@ -456,7 +442,7 @@ "string": "«FB68»«FA18»거짓이다!" }, "006": { - "string": "«FB68»«FA0C»VKP는 너의 죄책감을↵«FA0C»법에 대한 복종심으로 바꾸기 위해↵«FA0C»인격변경,즉 “세뇌”를 했다⋯。" + "string": "«FB68»«FA0C»VKP는 너의 죄책감을↵«FA0C»법에 대한 복종심으로 바꾸기 위해↵«FA0C»인격변경,즉«FA03»“세뇌”를 했다⋯。" }, "007": { "string": "«FB88»«FA18»부인과 아들을 잃은 슬픔은↵«FA18»범죄자에 대한 분노가 되었다。" @@ -474,7 +460,7 @@ "string": "«FB68»«FA0C»네가 가지고 있는 기술들이야 말로↵«FA0C»확실한 증거가 아닌가?" }, "012": { - "string": "«FB68»«FA0C»특수부대에서 배운 “살인기술”은↵«FA0C»레아몽드에서는 특별한 비술이 아니야。" + "string": "«FB68»«FA0C»특수부대에서 배운«FA03»“살인기술”은↵«FA0C»레아몽드에서는 특별한 비술이 아니야。" }, "013": { "string": "«FBB8»«FA0C»그만«FA03»――――해!«FAFA»!" @@ -489,7 +475,7 @@ "string": "«FB68»«FA18»자신의 상황에 맞게↵«FA18»기억을 바꿔서 맞추는 거다⋯。" }, "017": { - "string": "«FB88»자기 자신에게 “거짓말”을 하는 것이다。" + "string": "«FB88»자기 자신에게«FA03»“거짓말”을 하는 것이다。" }, "018": { "string": "«FB68»«FA12»확실히 VKP의 세뇌가↵«FA12»있었을지도 몰라。" @@ -547,16 +533,16 @@ "string": "«FB68»«FA0C»그 녀석은 케이스 72의↵«FA0C»사례와 유사하군⋯。" }, "001": { - "string": "«FB68»«FA1E»그것은 타인의 시각,청각 등의↵«FA1E»오감을 링크하는 “능력”이다。 " + "string": "«FB68»«FA1E»그것은 타인의 시각,청각 등의↵«FA1E»오감을 링크하는«FA03»“능력”이다。 " }, "002": { - "string": "«FB68»«FA0C»인간은 각각 “파장”을 가지고 있어서,↵«FA0C»유사한 “파장”을 잡아서 “탈 수” 있지。" + "string": "«FB68»«FA0C»인간은 각각«FA03»“파장”을 가지고 있어서,↵«FA0C»유사한«FA03»“파장”을 잡아서«FA03»“탈 수” 있지。" }, "003": { "string": "«FB68»«FA0C»성인기사단은 아니군⋯。↵«FA0C»시드니의 동료인가? " }, "004": { - "string": "«FB68»«FA0C»능력이 있는 녀석은 “파장”에↵«FA0C»관계 없이 링크할 수 있지만↵«FA0C»너는 아직 무리인 것 같군⋯。" + "string": "«FB68»«FA0C»능력이 있는 녀석은«FA03»“파장”에↵«FA0C»관계 없이 링크할 수 있지만↵«FA0C»너는 아직 무리인 것 같군⋯。" }, "005": { "string": "«FB98»«FA0C»나의 이름은 로젠크란츠。↵«FA0C»너와 같은 리스크 브레이커다。" @@ -710,7 +696,7 @@ "string": "«FB68»«FA18»인간의 약한 마음을 이용해서,↵«FA18»민중을 통제하는 건↵«FA18»교회의 전매특허겠지。" }, "008": { - "string": "«FB68»«FA12»있지도 않은 신의 “기적”으로↵«FA12»인심을 얻고 있는 건↵«FA12»너희들이다。" + "string": "«FB68»«FA12»있지도 않은 신의«FA03»“기적”으로↵«FA12»인심을 얻고 있는 건↵«FA12»너희들이다。" }, "009": { "string": "«FB68»«FA2A»⋯아니,너도 그↵«FA2A»약한 사람들 중 하나인가。" @@ -777,7 +763,7 @@ "string": "«FB68»«FA18»그렇군。↵«FA18»모르는건 너 뿐이로군。" }, "003": { - "string": "«FB68»«FA12»괴물과 “魔”의 존재를↵«FA12»의회와 VKP는 알고 있다!" + "string": "«FB68»«FA12»괴물과«FA03»“魔”의 존재를↵«FA12»의회와 VKP는 알고 있다!" }, "004": { "string": "«FB68»«FA1E»단지,그 정보가↵«FA18»“극비”라는 거지。" @@ -798,19 +784,19 @@ "string": "«FB68»«FA0C»아아,내가 조사↵«FA0C»했었으니까⋯。" }, "010": { - "string": "«FBB8»«FA0C»레아몽드는 “목장”이다。" + "string": "«FBB8»«FA0C»레아몽드는«FA03»“목장”이다。" }, "011": { "string": "«FB30»«FA12»뭐?" }, "012": { - "string": "«FB68»«FA1E»네가 그런 것처럼↵«FA18»“魔”에 접촉하는 자는«FAFC»신기한 “능력”을↵«FA1E»가질 수 있게 된다。" + "string": "«FB68»«FA1E»네가 그런 것처럼↵«FA18»“魔”에 접촉하는 자는«FAFC»신기한«FA03»“능력”을↵«FA1E»가질 수 있게 된다。" }, "013": { - "string": "«FB68»«FA12»어떤 “능력”을 가지게 될지는↵«FA12»그때가 되어바야 알겠지만,↵«FA12»어쨋든,보통 이상의 존재가 되는 거야。" + "string": "«FB68»«FA12»어떤«FA03»“능력”을 가지게 될지는↵«FA12»그때가 되어바야 알겠지만,↵«FA12»어쨋든,보통 이상의 존재가 되는 거야。" }, "014": { - "string": "«FB70»«FA0C»어쨋든,«FAFE»그 “능력”을 얻기 위해서는↵ “魔”가 필요해。 하지만,«FAFB»“魔”는 그렇게 쉽게 손에 넣을 수있는게↵«FA0C»아니라서 말이야。 " + "string": "«FB70»«FA0C»어쨋든,«FAFE»그«FA03»“능력”을 얻기 위해서는↵«FA03»“魔”가 필요해。 하지만,«FAFB»“魔”는 그렇게 쉽게 손에 넣을 수있는게↵«FA0C»아니라서 말이야。 " }, "015": { "string": "«FB98»«FA24»그래서 의회는 결계를 치고,↵«FA1E»“魔”를 풀어 놓고 기르게 되었지。" @@ -822,13 +808,13 @@ "string": "«FB68»«FA1E»고대 킬티아의↵«FA1E»전설적인 마도사 뮐렌캄프의↵«FA18»“마법 도시”이니까。" }, "018": { - "string": "«FB70»«FA30»나머지는 “먹이”만 있으면,↵«FA2A»“저쪽”에서 알아서↵«FA30»와 준다는 거지。" + "string": "«FB70»«FA30»나머지는«FA03»“먹이”만 있으면,↵«FA2A»“저쪽”에서 알아서↵«FA30»와 준다는 거지。" }, "019": { "string": "«FB68»«FA12»먹이⋯⋯?↵«FA12»설마!" }, "020": { - "string": "«FB68»«FA0C»그래。25년전의 대지진은 “먹이”를 만들기 위한 “조리법”이다。" + "string": "«FB68»«FA0C»그래。25년전의 대지진은«FA03»“먹이”를 만들기 위한«FA03»“조리법”이다。" }, "021": { "string": "«FB68»«FA0C»헤메는 망령들이↵«FA0C»울부짖고 있다⋯。" @@ -863,7 +849,7 @@ "string": "«FB68»«FA0C»타인의 의식에 자신의 의지를↵«FA0C»심어 넣는 능력⋯。" }, "001": { - "string": "«FB68»«FA0C»내가 본 그 “진실의 과거”도↵«FA0C»거짓일 수도⋯。" + "string": "«FB68»«FA0C»내가 본 그«FA03»“진실의 과거”도↵«FA0C»거짓일 수도⋯。" } }, "049": { @@ -962,23 +948,9 @@ "string": "«F800»«FB20»리치의 잔류 사념이 애슐리에게 말한다⋯。↵ 애슐리는 마법 「텔레포트」를 습득했다。" } }, - "059": { - "000": { - "string": "«F800»«FB50»«FB04»BAD!!«FA84»59:59:99↵«E6E7»" - }, - "001": { - "string": "«F800»«FB50»«FB04»COOL!!«FA78»«FE14»:«FE15»:«FE16»↵«E6E7»" - }, - "002": { - "string": "«F800»«FB50»«FB04»GREAT!!«FA6C»«FE14»:«FE15»:«FE16»↵«E6E7»" - }, - "003": { - "string": "«F800»«FB50»«FB04»EXCELLENT!!«FA3C»«FE14»:«FE15»:«FE16»↵«E6E7»" - } - }, "064": { "000": { - "string": "«FB68»«FA0C»성불하지 못한 영혼은 “생”을 부러워한다。↵«FA0C»그래서,혼을 잃은 육체를 보면↵«FA0C»재빨리 들어가려고 한다。" + "string": "«FB68»«FA0C»성불하지 못한 영혼은«FA03»“생명”을 부러워한다。↵«FA0C»그래서,혼을 잃은 육체를 보면↵«FA0C»재빨리 들어가려고 한다。" }, "001": { "string": "«FBB8»«FA12»“살아 있는 시체”의 탄생이라는 거지。" @@ -1005,7 +977,7 @@ "string": "«FB68»«FA18»그리고?" }, "009": { - "string": "«FB68»«FA0C»진정한 “불사”를 손에 넣은 자가 있다⋯。↵«FA0C»우리의 목표는 그 놈이다。" + "string": "«FB68»«FA0C»진정한«FA03»“불사”를 손에 넣은 자가 있다⋯。↵«FA0C»우리의 목표는 그 놈이다。" }, "010": { "string": "«FB68»«FA12»⋯시드니를 찾아요。" @@ -1309,7 +1281,7 @@ "string": "«FB68»«FA0C»너,너도,시드니와↵«FA0C»같은 능력을⋯!" }, "006": { - "string": "«FB68»«FA0C»어떻게⋯⋯!↵«FA0C»이렇게까지 “魔”와⋯⋯↵«FA0C»접촉하지 않았을 텐데!" + "string": "«FB68»«FA0C»어떻게⋯⋯!↵«FA0C»이렇게까지«FA03»“魔”와⋯⋯↵«FA0C»접촉하지 않았을 텐데!" }, "007": { "string": "«FB68»«FA0C»“魔”가 레아몽드에만↵«FA0C»있을거라 생각했나?" @@ -1351,7 +1323,7 @@ "string": "«FB98»«FA2A»『피에 물든 죄』라는 열쇠를↵«FA2A»가진 자만이 계승자 후보다。" }, "020": { - "string": "«FB68»«FA0C»계승자는 “영혼(팬텀)”을 제물로↵«FA0C»바치는 것으로,마의 힘을↵«FA0C»자유롭게 조종할 수 있는 소유자가 된다⋯。" + "string": "«FB68»«FA0C»계승자는«FA03»“영혼(팬텀)”을 제물로↵«FA0C»바치는 것으로,마의 힘을↵«FA0C»자유롭게 조종할 수 있는 소유자가 된다⋯。" }, "021": { "string": "«FB68»«FA0C»영혼 따윈 이 도시에↵«FA0C»얼마든지 있다。↵«FA0C»이제 열쇠만 있으면 되。" @@ -1505,7 +1477,7 @@ "string": "«FB90»«FA0C»로젠크란츠를↵«FA0C»만났나?" }, "002": { - "string": "«FB68»«FA0C»레아몽드는 “魔”를↵«FA0C»키우기 위한 “목장”이라고 들었다。" + "string": "«FB68»«FA0C»레아몽드는«FA03»“魔”를↵«FA0C»키우기 위한«FA03»“목장”이라고 들었다。" }, "003": { "string": "«FB68»«FA12»어떻게 생각하나?" @@ -1529,7 +1501,7 @@ "string": "«FB90»«FA18»도시를 붕괴시킬 정도의 지진을↵«FA18»인위적으로 일으킬 수 있다는 건가?" }, "010": { - "string": "«FB68»«FA0C»몇 천명이나 되는 주민을 희생시켜서,↵«FA0C»이런 “목장”을 만든게↵«FA0C»의회와 법왕청이라고 말하는 건가?" + "string": "«FB68»«FA0C»몇 천명이나 되는 주민을 희생시켜서,↵«FA0C»이런«FA03»“목장”을 만든게↵«FA0C»의회와 법왕청이라고 말하는 건가?" }, "011": { "string": "«FA38»↵«FB08»«FA0C»물어보면 알아。" @@ -1538,7 +1510,7 @@ "string": "«FB68»«FA1E»물어 본다고?" }, "013": { - "string": "«FB68»«FA0C»희생당한 “증인”에게。" + "string": "«FB68»«FA0C»희생당한«FA03»“증인”에게。" }, "014": { "string": "«FB68»«FA0C»대단한 성장이다。↵«FA0C»역시 리스크 브레이커⋯," @@ -1558,10 +1530,10 @@ "string": "«FBB8»«FA18»시드니!" }, "001": { - "string": "«FB68»«FA0C»과연 “리스크 브레이커”。" + "string": "«FB68»«FA0C»과연«FA03»“리스크 브레이커”。" }, "002": { - "string": "«FB68»«FA0C»대부분의 인간은 “진실”을 인정하지 못하고↵«FA0C»“상식”에 얽메이게 되지。↵«FA0C»그때문에,«FA0C»“공포”에 얽메이게 된다。" + "string": "«FB68»«FA0C»대부분의 인간은«FA03»“진실”을 인정하지 못하고↵«FA0C»“상식”에 얽메이게 되지。↵«FA0C»그때문에,«FA0C»“공포”에 얽메이게 된다。" }, "003": { "string": "«FBC8»«FA30»하지만,너는 특별하다。" @@ -1573,7 +1545,7 @@ "string": "«FB68»«FA18»반드시⋯«F814»。«F801»↵«FA18»말이야⋯" }, "006": { - "string": "«FB68»«FA0C»마치 “마음”이 없는 것 같아。" + "string": "«FB68»«FA0C»마치«FA03»“마음”이 없는 것 같아。" }, "007": { "string": "«FB98»«FA0C»어째서냐«F814»?«F801»↵«FA0C»어떻게,육체를 지배할 수 있는거지?" @@ -1582,16 +1554,16 @@ "string": "«FB68»«FA0C»마치 그림책을 읽는 아이와↵«FA0C»책 속에서 활약하는 용사처럼,↵«FA0C»마음과 육체가 분리되 있어。" }, "009": { - "string": "«FB98»«FA0C»네 놈의 “마음”은 어디에 있나?" + "string": "«FB98»«FA0C»네 놈의«FA03»“마음”은 어디에 있나?" }, "010": { "string": "«FB98»«FA0C»VKP 훈련의 결과인가?" }, "011": { - "string": "«FB68»«FA0C»⋯아니면 “마음”을 닫지 않으면 안되는 무언가를↵«FA0C»본 결과인가?" + "string": "«FB68»«FA0C»⋯아니면«FA03»“마음”을 닫지 않으면 안되는 무언가를↵«FA0C»본 결과인가?" }, "012": { - "string": "«FB68»«FA0C»네놈의 “마음”을↵«FA0C»보여라⋯。" + "string": "«FB68»«FA0C»네놈의«FA03»“마음”을↵«FA0C»보여라⋯。" } }, "081": { diff --git a/work/kor/MAP_MPD_ko.json b/work/kor/MAP_MPD_ko.json index e98de2f..01a3ef6 100644 --- a/work/kor/MAP_MPD_ko.json +++ b/work/kor/MAP_MPD_ko.json @@ -183,7 +183,7 @@ }, "MAP014": { "000": { - "string": "«FB68»«FA0C»이것도 “그리모어”의↵«FA0C»힘인가?" + "string": "«FB68»«FA0C»이것도«FA03»“그리모어”의↵«FA0C»힘인가?" }, "001": { "string": "«FB98»«FA18»정말 깜짝 놀랐다구。" @@ -192,7 +192,7 @@ "string": "«FB68»«FA0C»들어보긴 했지만,↵«FA0C»실제로 보게 될 줄은⋯" }, "003": { - "string": "«FB68»«FA0C»⋯공작의 저택에서 “용”을 본↵«FA0C»사람이 있다고는 들었지만⋯。" + "string": "«FB68»«FA0C»⋯공작의 저택에서«FA03»“용”을 본↵«FA0C»사람이 있다고는 들었지만⋯。" }, "004": { "string": "«FB68»«FA0C»그래,“마법”이 실제로↵있다면,«FA0C»용이든 뭐든↵있을 거라고。" @@ -213,7 +213,7 @@ "string": "«FBC0»«FA3C»⋯흥분하지 말라구。" }, "010": { - "string": "«FB68»«FA0C»우리는 신입이라 잘 모르지만↵«FA0C»위쪽에선 “그리모어”의 존재를↵«FA0C»알고 있는건 확실해。" + "string": "«FB68»«FA0C»우리는 신입이라 잘 모르지만↵«FA0C»위쪽에선«FA03»“그리모어”의 존재를↵«FA0C»알고 있는건 확실해。" }, "011": { "string": "«FBC0»«FA54»그렇지?" @@ -225,7 +225,7 @@ "string": "«FB98»«FA48»“기적의 확보”다。" }, "014": { - "string": "«FB68»«FA0C»⋯소문이지만 길덴스턴님 쪽도⋯,↵«FA0C»그 “마법”을 사용할 수 있다던데⋯。" + "string": "«FB68»«FA0C»⋯소문이지만 길덴스턴님 쪽도⋯,↵«FA0C»그«FA03»“마법”을 사용할 수 있다던데⋯。" }, "015": { "string": "«FB68»«FA2A»헛소리!↵«FA2A»우리는 신을 섬기는 몸이라구!" @@ -542,6 +542,15 @@ "MAP037": { "treasure": "소울 키스" }, + "MAP038": { + "door": { + "000": { + "000": { + "string": "«F800»«FB20»이것은 퍼즐을 해결하는 시간을 겨루는 모드입니다。↵「옵션」명령의 「퍼즐 모드 설정」을 ↵OFF로 취소할 수 있습니다." + } + } + } + }, "MAP042": { "000": { "string": "«F800»«FB20»몬스터가 문을 잠갔다!" @@ -910,7 +919,7 @@ "string": "«FB98»«FA36»걱정하지마⋯。" }, "004": { - "string": "«FB68»«FA0C»안전한 장소로 “전이”시켰다。↵«FA0C»자력으로 탈출할 수«F808»⋯«F801»있을 거야。" + "string": "«FB68»«FA0C»안전한 장소로«FA03»“전이”시켰다。↵«FA0C»자력으로 탈출할 수«F808»⋯«F801»있을 거야。" }, "005": { "string": "«FB98»«FA0C»대체,무슨 일이 있었지?" @@ -943,7 +952,7 @@ "string": "«FB68»«FA0C»“魔”를 원하는 자는↵«FA0C»“魔”를 지배할 수 없어。" }, "015": { - "string": "«FB68»«FA24»언젠가,녀석은 “魔”에↵«FA24»영혼을 먹혀버리게 되겠지。" + "string": "«FB68»«FA24»언젠가,녀석은«FA03»“魔”에↵«FA24»영혼을 먹혀버리게 되겠지。" }, "016": { "string": "«FB68»«FA30»⋯그렇게 되기 전에,↵«FA30»놈을 쓰러뜨려줘。" @@ -963,7 +972,7 @@ "string": "«FB68»«FA0C»«F802»⋯어«F80C»,«F802»«FAFC»⋯⋯어째서«F801»?" }, "001": { - "string": "«FB68»«FA0C»미안하다,사만다。↵«FA0C»너의 “혼”이 필요하다。" + "string": "«FB68»«FA0C»미안하다,사만다。↵«FA0C»너의«FA03»“혼”이 필요하다。" }, "002": { "string": "«FB68»«FA0C»우리의 이상을 위해서라고↵«FA0C»생각해 줘。" @@ -1147,7 +1156,7 @@ "string": "«FB68»«FA0C»레아몽드를 둘러싼 성벽에는 모두↵«FA0C»킬티아 문자가 세겨저↵«FA0C»있어⋯。왜 이런거죠?" }, "003": { - "string": "«FB68»«FA0C»⋯이것은 “주술”이다。↵«FA0C»레아몽드를 “주술”로↵«FA0C»둘러싸고 있는 거다。" + "string": "«FB68»«FA0C»⋯이것은«FA03»“주술”이다。↵«FA0C»레아몽드를«FA03»“주술”로↵«FA0C»둘러싸고 있는 거다。" }, "004": { "string": "«FB68»«FA0C»아마,도시의 모든 건물 마다↵«FA0C»세겨져 있을 거다。" @@ -1159,7 +1168,7 @@ "string": "«FB98»«FA0C»풍화하고,지진으로 무너졌다지만,↵«FA0C»그 기능은 남아있어。" }, "007": { - "string": "«FB68»«FA0C»⋯느끼고 있었지만,마을의 중앙,↵«FA0C»대성당으로 가까이 갈수록 “魔”가↵«FA0C»강한 것 같아。" + "string": "«FB68»«FA0C»⋯느끼고 있었지만,마을의 중앙,↵«FA0C»대성당으로 가까이 갈수록«FA03»“魔”가↵«FA0C»강한 것 같아。" }, "008": { "string": "«FBC0»«FA12»도시 전체가 거대한↵«FA12»“마법진”인 것이다!«FAFA»!" @@ -1192,13 +1201,13 @@ "string": "«FBB8»«FA0C»어쩔셈이냐!«FAFA»!" }, "018": { - "string": "«FB68»«FA0C»소용없다。잊었나?↵«FA0C»나에게 “魔”는 통하지 않아。" + "string": "«FB68»«FA0C»소용없다。잊었나?↵«FA0C»나에게«FA03»“魔”는 통하지 않아。" }, "019": { "string": "«FB68»«FA0C»⋯나는 너희들의↵«FA0C»동료가 된 기억이 없어。↵«FA0C»공작과 짜고 있는 것도,일시적인거지。" }, "020": { - "string": "«FB68»«FA0C»네놈은 “뜻”이라는게↵«FA0C»없는 거냐!" + "string": "«FB68»«FA0C»네놈은«FA03»“뜻”이라는게↵«FA0C»없는 거냐!" }, "021": { "string": "«FB68»«FA0C»있지。타인을 위해 인생을↵«FA0C»또 신에게 바치는 것보단 나은。" @@ -1362,7 +1371,7 @@ "string": "«FB68»«FA0C»무슨 의미지?" }, "007": { - "string": "«FB68»«FA0C»모르겠나? 그 남자는↵«FA0C»이미 “魔”의 도시를 물려 받을 자격이 있다。" + "string": "«FB68»«FA0C»모르겠나? 그 남자는↵«FA0C»이미«FA03»“魔”의 도시를 물려 받을 자격이 있다。" }, "008": { "string": "«FB68»«FA0C»“魔”를 받아들일↵«FA12»모든 조건을 갖추고 있지。" @@ -1552,25 +1561,25 @@ "string": "«FB68»«FA0C»⋯누구를 향해 그런⋯↵«FA0C»⋯말을 하는 거냐?" }, "003": { - "string": "«FB68»«FA0C»네 놈들이 “魔”를↵«FA0C»지배할 수 있다고 생각하는 거냐⋯?" + "string": "«FB68»«FA0C»네 놈들이«FA03»“魔”를↵«FA0C»지배할 수 있다고 생각하는 거냐⋯?" }, "004": { - "string": "«FB68»«FA3C»우리는 “신”을↵«FA3C»모시는 사제들입니다。" + "string": "«FB68»«FA3C»우리는«FA03»“신”을↵«FA3C»모시는 사제들입니다。" }, "005": { - "string": "«FB68»“魔”를 “지배하는 것”이 아닌,↵«FA0C»“정화하기” 위해 여기에 왔습니다。" + "string": "«FB68»“魔”를«FA03»“지배하는 것”이 아닌,↵«FA0C»“정화하기” 위해 여기에 왔습니다。" }, "006": { "string": "«FB68»«FA0C»자아,“신”에게 용서를 구하십시요。↵«FA0C»지금이라면 아직 늦지 않았습니다。" }, "007": { - "string": "«FB68»«FA1E»제가 신의 “대리인”으로서↵«FA1E»당신의 죄를 사하여 드리겠습니다。" + "string": "«FB68»«FA1E»제가 신의«FA03»“대리인”으로서↵«FA1E»당신의 죄를 사하여 드리겠습니다。" }, "008": { "string": "«FB68»«FA0C»⋯지옥에나 떨어져라。" }, "009": { - "string": "«FB68»«FA0C»그것이 “魔”와 관련된↵«FA0C»자의 말로다。" + "string": "«FB68»«FA0C»그것이«FA03»“魔”와 관련된↵«FA0C»자의 말로다。" }, "010": { "string": "«FB68»«FA0C»무슨 뜻인가요?" @@ -1579,7 +1588,7 @@ "string": "«FB68»«FA0C»“魔”라는 건 실체가 없는 힘이지만↵«FA0C»감기나 흑사병처럼,자신도↵«FA0C»모르는 사이에 신체를 잠식해 가지。" }, "012": { - "string": "«FB98»«FA0C»하지만,잠식당한 자는 “불사”를↵«FA0C»손에 넣을 수 있다。" + "string": "«FB98»«FA0C»하지만,잠식당한 자는«FA03»“불사”를↵«FA0C»손에 넣을 수 있다。" }, "013": { "string": "«FB68»«FA12»불사⋯?" @@ -1609,16 +1618,16 @@ "string": "«FB68»«FA0C»그렇다면,그들은 죽지 않았다는 건가요?" }, "022": { - "string": "«FB68»«FA0C»“魔”에 잠식된 자는육신은↵«FA0C»소멸해도,영혼은 영원히 이 세상을↵«FA0C»떠돌게 된다。" + "string": "«FB68»«FA0C»“魔”에 잠식된 자는 육신은↵«FA0C»소멸해도,영혼은 영원히↵«FA0C»이 세상을 떠돌게 된다。" }, "023": { - "string": "«FB68»«FA0C»레아몽드에서의 “불사”는↵«FA0C»“죽지 않는다”는게 아니야。" + "string": "«FB68»«FA18»레아몽드에서의«FA03»“불사”는↵«FA18»“죽지 않는다”는게 아니야。" }, "024": { "string": "«FB90»«FA2A»“불완전한 죽음”이다。" }, "025": { - "string": "«FB68»«FA12»불완전한 “죽음”⋯。" + "string": "«FB68»«FA12»불완전한«FA03»“죽음”⋯。" }, "door": { "000": { @@ -1707,7 +1716,7 @@ "string": "«FB68»«FA0C»아,그래。↵«FA0C»성 요쿠스가 태어나기 한참 전⋯" }, "011": { - "string": "«FB68»«FA24»아직 “마법”이 일상적으로↵«FA24»사용되던 시대의 문자다。" + "string": "«FB68»«FA24»아직«FA03»“마법”이 일상적으로↵«FA24»사용되던 시대의 문자다。" }, "012": { "string": "«FB68»«FA12»무슨 일이지?" @@ -1722,7 +1731,7 @@ "string": "«FB68»«FA0C»시드니 같은 사이코에게↵«FA0C»그런 위험한 걸↵«FA0C»맞길 수는 없으니까。" }, "016": { - "string": "«FB68»«FA0C»시드니가 “그란・그리모어”를↵«FA0C»손에 넣었다고 생각해?" + "string": "«FB68»«FA0C»시드니가«FA03»“그란・그리모어”를↵«FA0C»손에 넣었다고 생각해?" }, "017": { "string": "«FBC0»«FA3C»모르겠어。" @@ -1796,7 +1805,7 @@ "string": "«FB98»«FA2A»⋯6«FAFC»0«FAFF»에서 7«FAFC»0«FAFF»정도↵«FA2A»되겠지。" }, "007": { - "string": "«FB68»«FA0C»하지만 연락이 끊어진 부대도 있어서↵«FA0C»정확한 숫자는 “작전”이↵«FA0C»끝나봐야 알 수 있어。" + "string": "«FB68»«FA0C»하지만 연락이 끊어진 부대도 있어서↵«FA0C»정확한 숫자는«FA03»“작전”이↵«FA0C»끝나봐야 알 수 있어。" }, "008": { "string": "«FB68»«FA0C»오후부터 몬스터 수가↵«FA0C»늘고 있어⋯。" @@ -1817,7 +1826,7 @@ "string": "«FB68»«FA0C»그냥⋯,«FAF9»“시뮬레이션”과↵«FA0C»너무 달라。" }, "014": { - "string": "«FB68»«FA0C»겁나,사만다?↵«FA0C»작전에 “변경”은 항상 있는거야。" + "string": "«FB68»«FA0C»겁나,사만다?↵«FA0C»작전에«FA03»“변경”은 항상 있는거야。" }, "015": { "string": "«FB68»«FA12»공포에 맞서야되。" @@ -1903,46 +1912,46 @@ "string": "«FB68»«FA0C»당신들은,↵«FA0C»저기⋯,뭐라고 할까⋯。" }, "005": { - "string": "«FB98»«FA2A»그놈들은⋯,↵«FA2A»부대를 3개로 나눈 모양이야。" + "string": "«FB98»«FA18»그놈들은⋯,↵«FA18»부대를 3개로 나눈 모양이야。" }, "006": { - "string": "«FB68»«FA0C»피해가 너무 커⋯,↵«FA0C»전력을 분산시키는 것에 대한 위험성을↵«FA0C»겨우 눈치 챈 것 같군。" + "string": "«FB68»«FA0C»피해가 너무 커⋯,↵«FA0C»전력을 분산시키는 것에 대한↵«FA0C»위험성을 겨우 눈치 챈 것 같군。" }, "007": { - "string": "«FB98»«FA12»특히,어제 밤에 잠입한 부대보다↵«FA12»오늘 아침에 진입한 본대 쪽이 더 혼란스러워하고 있어⋯。" + "string": "«FB98»«FA12»특히,어제 밤에 잠입한 부대보다↵«FA12»오늘 아침에 진입한 본대 쪽이↵«FA12»더 혼란스러워하고 있어⋯。" }, "008": { - "string": "«FB68»«FA0C»어제 밤에 잠입한 부대는 사태를 정확히 파악한↵«FA0C»베테랑이었지만,후발대 녀석들은↵«FA0C»급히 모인 병사들이니까。" + "string": "«FB68»«FA0C»어제 밤에 잠입한 부대는 사태를↵«FA0C»정확히 파악한 베테랑이었지만,↵«FA0C»후발대는 급히 모인 병사들이니까。" }, "009": { - "string": "«FB68»«FA12»길덴스턴은 아마,↵«FA12»그레이 랜드에서↵«FA12»우릴 잡을 수 있을거라 생각했겠지。" + "string": "«FB68»«FA12»길덴스턴은 아마,↵«FA12»그레이랜드에서 우릴 잡을 수↵«FA12»있을거라 생각했겠지。" }, "010": { - "string": "«FB98»«FA24»하지만,이쪽도 그렇게 간단하게는↵«FA24»잡혀줄 순 없지⋯。" + "string": "«FB98»«FA12»하지만,이쪽도 그렇게↵«FA12»간단하게는 잡혀줄 순 없지⋯。" }, "011": { "string": "«FB98»«FA0C»기뻐할게 아니야。↵«FA0C»이쪽도 성인기사단 이상의 피해라구。" }, "012": { - "string": "«FB68»«FA1E»녀석들 때문에,↵«FA1E»통제력을 잃은 “말”들이↵«FA1E»주인의 명령을 거부하고 있어。" + "string": "«FB68»«FA1E»녀석들 때문에,↵«FA1E»통제력을 잃은«FA03»“말”들이↵«FA1E»주인의 명령을 거부하고 있어。" }, "013": { "string": "«FB98»«FA1E»지상이 제압되는 것도↵«FA1E»시간 문제라구。어쩔거야?" }, "014": { - "string": "«FB68»«FA0C»우리는 아까운 동료들의 목숨을↵«FA0C»희생시키고 있다。" + "string": "«FB68»«FA0C»우리는 아까운 동료들의↵«FA0C»목숨을 희생시키고 있다。" }, "015": { - "string": "«FB68»«FA12»하지만,그것을 쓸모없게 하진 않을 거야。↵«FA12»그렇지,하딘。" + "string": "«FB68»«FA12»하지만,그것을 쓸모없게↵«FA12»하진 않을거야。하딘。" }, "016": { - "string": "«FB68»«FA0C»어떻게 녀석들은 “말”을↵«FA0C»제어할 수 있지? 어떻게?" + "string": "«FB68»«FA0C»어떻게 녀석들은«FA03»“말”을↵«FA0C»제어할 수 있지? 어떻게?" }, "017": { "string": "«FB68»«FA1E»전부는 아니야。↵«FA1E»극히 일부만。" }, "018": { - "string": "«FB68»«FA0C»우리들만이 아니었나,↵«FA0C»주인은?" + "string": "«FB68»«FA24»우리들만이 아니었나,↵«FA24»주인은?" }, "019": { "string": "«FB68»«FA24»배신자라도 있었나↵«FA24»우리 중에?" @@ -1951,34 +1960,34 @@ "string": "«FB68»«FA0C»이때를 위해 준비하고↵«FA0C»있던거다,법왕청은。" }, "021": { - "string": "«FB68»«FA1E»2«FAFC»0«FAFF»년간 때를 기다리며,↵«FA1E»조용히 숨죽이고서。" + "string": "«FB68»«FA0C»2«FAFC»0«FAFF»년간 때를 기다리며,↵«FA0C»조용히 숨죽이고서。" }, "022": { - "string": "«FB68»«FA0C»생각해봐!↵«FA0C»공작저택 점거도 문지기의 눈을 피해 잠입 했다고!↵«FA0C»누군가 알려준 거라고 밖에 생각할 수 없어!" + "string": "«FB68»«FA0C»생각해봐! 공작저택 점거도↵«FA0C»문지기의 눈을 피해 잠입 했다고!↵«FA0C»누군가 알려준 거라고 밖에 생각할 수 없어!" }, "023": { - "string": "«FB68»«FA0C»알았으니까,좀 진정해,↵«FA0C»하딘。" + "string": "«FB68»«FA18»알았으니까,좀 진정해,↵«FA18»하딘。" }, "024": { - "string": "«FBC8»«FA12»더 이상은 안돼,실패야。" + "string": "«FBC8»«FA0C»더 이상은 안돼,실패야。" }, "025": { "string": "«FB68»«FA0C»이대로라면,↵«FA0C»우리도 목숨을 잃게 된다구。↵«FA0C»도망가자,시드니!«FAFA»!" }, "026": { - "string": "«FBB8»«FA0C»진정하라고 했어!«FAFA»!" + "string": "«FBB8»«FA24»진정하라고 했어!«FAFA»!" }, "027": { - "string": "«FB68»«FA12»내가 괜찮다고↵«FA12»말하자나。" + "string": "«FB68»«FA24»내가 괜찮다고↵«FA24»말하자나。" }, "028": { - "string": "«FB68»«FA0C»알겠나? 하딘。↵«FA0C»다 괜찮아。" + "string": "«FB68»«FA24»알겠나? 하딘。↵«FA24»다 괜찮아。" }, "029": { - "string": "«FB68»«FA0C»너와 나는 친구다。↵«FA0C»그렇지,하딘。↵«FA0C»나를 믿어。" + "string": "«FB68»«FA18»너와 나는 친구다。↵«FA18»그렇지,하딘。↵«FA18»나를 믿어。" }, "030": { - "string": "«FB68»«FA0C»그,그래。↵«FA0C»⋯친구지。" + "string": "«FB68»«FA18»그,그래。↵«FA18»⋯친구지。" } }, "MAP175": { @@ -2982,7 +2991,7 @@ "string": "«FB68»«FA0C»[xylda・nazam・sson・]«FC00»[medayda!]" }, "012": { - "string": "«FB68»«FA0C»신기하군요⋯。↵«FA0C»온 몸에 “힘”이↵«FA0C»넘치고 있습니다⋯。" + "string": "«FB68»«FA0C»신기하군요⋯。↵«FA0C»온 몸에«FA03»“힘”이↵«FA0C»넘치고 있습니다⋯。" }, "013": { "string": "«FB98»«FA18»형의 복수를↵«FA18»하도록 하겠습니다。" @@ -3614,12 +3623,7 @@ "door": { "000": { "000": { - "string": "«F800»«FB20»문이 잠겨 있다!" - } - }, - "001": { - "000": { - "string": "0«EC50»00B0P31PFGQ" + "string": "«F800»«FB20»문이 잠겼다!" } } } @@ -4213,7 +4217,7 @@ "string": "«FB68»«FA0C»핫핫핫하。모두,시드니에게↵«FA0C»이용당했다는 거지。" }, "009": { - "string": "«FB68»«FA0C»의식에 필요한 “영혼”은 뭐지?↵«FA0C»대답해,시드니。" + "string": "«FB68»«FA0C»의식에 필요한«FA03»“영혼”은 뭐지?↵«FA0C»대답해,시드니。" }, "010": { "string": "«FB68»«FA12»죽고 싶은거냐?" @@ -4231,13 +4235,13 @@ "string": "«FB68»«FA0C»자신의 이익을 위해 특권층에 빌붙는 자,↵«FA0C»노력도 없이 세상 탓으로 돌리는 자," }, "015": { - "string": "«FB68»«FA36»자신의 “꿈”을 실현하기 위해↵«FA36»타인의 “꿈”을 뺏는자⋯," + "string": "«FB68»«FA36»자신의«FA03»“꿈”을 실현하기 위해↵«FA36»타인의«FA03»“꿈”을 뺏는자⋯," }, "016": { - "string": "«FB68»이걸 바로 잡기 위해서는 공통의 “가치관”,↵면도날 하나 들어갈 틈도 없는 완벽한 “법치”," + "string": "«FB68»이걸 바로 잡기 위해서는 공통의«FA03»“가치관”,↵면도날 하나 들어갈 틈도 없는 완벽한«FA03»“법치”," }, "017": { - "string": "«FB98»«FA18»그리고,이 모든 걸 누르는 “공포”가 필요하다。" + "string": "«FB98»«FA18»그리고,이 모든 걸 누르는«FA03»“공포”가 필요하다。" }, "018": { "string": "«FB68»«FA0C»불쌍하군。↵«FA0C»그래서야 사람 목숨의 값어치가 없잖나。" @@ -4246,7 +4250,7 @@ "string": "«FB98»«FA0C»“구원” 따윈 의미가 없다。" }, "020": { - "string": "«FB68»«FA0C»쓰레기 같은 삶을↵«FA0C»사는 놈들에겐 “구원”은 사치야。" + "string": "«FB68»«FA0C»쓰레기 같은 삶을↵«FA0C»사는 놈들에겐«FA03»“구원”은 사치야。" }, "021": { "string": "«FB98»지금,«FAFC»우리에게 필요한건“선별”이다。" diff --git a/work/kor/MENU_MENU0_PRG_ko.json b/work/kor/MENU_MENU0_PRG_ko.json index 20087b4..7d448d5 100644 --- a/work/kor/MENU_MENU0_PRG_ko.json +++ b/work/kor/MENU_MENU0_PRG_ko.json @@ -148,7 +148,7 @@ "string": "암흑 속성 보조마법。방출형。단독。↵대상을 「저주」상태이상으로 만든다。" }, "049": { - "string": "보조 마법。방출형。맵에 있는 이동 블록을 일정 시간 동안 정지시킨다。" + "string": "보조 마법。방출형。맵에 있는 이동 블록을↵일정 시간 동안 정지시킨다。" }, "050": { "string": "보조마법。방출형。유닛 단독。↵대상에 걸려 있는 마법을 무효화한다。" @@ -157,7 +157,7 @@ "string": "보조마법。방출형。마법으로 잠긴 보물상자를 연다。↵RISK가 높을수록 성공률이 높다。" }, "052": { - "string": "보조마법。방출형。↵트랩,함정을 일시적으로 보이도록 만든다。해당 맵에서만 유효。" + "string": "보조마법。방출형。트랩,함정을 일시적으로↵보이도록 만든다。해당 맵에서만 유효。" }, "053": { "string": "보조마법。방출형。단독。대상의 파라미터를 분석한다。↵RISK가 높을수록 성공률이 높다。" diff --git a/work/kor/SLPS_main_ko.json b/work/kor/SLPS_main_ko.json index 65d8e6c..cc2a70d 100644 --- a/work/kor/SLPS_main_ko.json +++ b/work/kor/SLPS_main_ko.json @@ -262,7 +262,7 @@ "string": "리스토레이션" }, "088": { - "string": "해독제" + "string": "독 치료" }, "089": { "string": "" @@ -286,7 +286,7 @@ "string": "드레인 마인드" }, "096": { - "string": "회복" + "string": "상처 치료" }, "097": { "string": "솔리드 쇼크" @@ -502,7 +502,7 @@ "string": "너밍 니들" }, "168": { - "string": "블러드석" + "string": "흡혈" }, "169": { "string": "애시드 스니즈" diff --git a/work/kor/SMALL_MON_BIN_ko.json b/work/kor/SMALL_MON_BIN_ko.json index 1f266cd..691f0f5 100644 --- a/work/kor/SMALL_MON_BIN_ko.json +++ b/work/kor/SMALL_MON_BIN_ko.json @@ -53,7 +53,7 @@ "name": "고블린" }, "013": { - "description": "고블린☐족장。지능이☐높고,마법을☐쓰는☐골치아픈☐녀석。↵레아몬드의☐지하를☐근거지로☐삼고있다", + "description": "고블린☐족장。지능이☐높고,마법을☐쓰는☐골치아픈↵녀석。레아몬드의☐지하를☐근거지로☐삼고있다", "name": "고블린 리더" }, "014": { @@ -193,7 +193,7 @@ "name": "다마스쿠스 골렘" }, "048": { - "description": "놀라운 순발력을 자랑하는 “식인귀”。↵신화 시대에는마계의 병졸로 인간과 싸웠다고 전해진다", + "description": "놀라운 순발력을 자랑하는 “식인귀”。신화 시대에는↵마계의 병졸로 인간과 싸웠다고 전해진다", "name": "오거" }, "049": { @@ -225,7 +225,7 @@ "name": "진" }, "056": { - "description": "불의 정령。공중을 자유롭게 이동할 뿐만↵아니라,불 속성의 마법을 구사하는 강적", + "description": "불의 정령。공중을 자유롭게 이동할 뿐만 아니라,↵불 속성의 마법을 구사하는 강적", "name": "파이어 엘리멘탈" }, "057": {