메뉴 건너뛰기

조회 수 1864 추천 수 49 댓글 29
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form

제가 가진 지식을 나눠드리면 좋을 것 같아 quickbms를 활용한 데이터 분석 강좌를 꾸준히 작성했었지만, 기초편 넘어가니 읽어주시는 분들이 없더군요. 그리고 스크립트 툴 제작 강좌 자체가 없기 때문에 큰 도움될거라 믿고 야심차게 준비했으나.. 한글화 패치 인력이 모인 한식구 카페에서도 읽는 분들이 잘 없는 것 같습니다. ㅠㅠ

 

뭐, 아무튼 누군가에게는 도움이 되길 바랍니다. 궁금한 점이 있으면 질문주세요.

 

소스 코드와 예제 첨부 파일 http://blog.naver.com/physics1114/220958590835

 

바이너리 파일에서 CSV로 추출, 그리고 다시 원본으로 되돌리는 과정입니다.

 

<추출> - 기초편과 비슷한 구조입니다만, 하나의 파일에 여러가지 언어 정보를 담고 있습니다. 하여 임의로 array가 되도록 작성했습니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <MsgBoxConstants.au3>

$Path = FileOpenDialog("Select the -25 file", @ScriptDir, "dat files (*.-25)",1)
If @error = 1 Then Exit
$File = fileopen($Path,16)
$Name = CompGetFileName($Path)

FileSetPos($File,"0xF0",0)
$Files = _BinaryToInt32(FileRead($File, 4))

Dim $Text
$Text &= "분류" & @TAB & "영어"& @TAB & "스페인어"& @TAB & "카탈로니아어" & @TAB &"프랑스어" & @TAB & "이탈리아어" & @TAB & "독일어" & @TAB &"일본어" & @TAB & "폴란드어" & @TAB & "헝가리어" & @TAB & "러시아어" & @TAB & "중국어" & @CRLF

Dim $Str
For $i = 1 to $Files
    $Title_pos = FileGetPos($file)
    $Title_len = _BinaryToInt32(FileRead($File, 4))
 $Str = BinaryToString(FileRead($File,$Title_len),4)
 $Text &= $Str & @TAB

    $jump = $Title_len - 4*int($Title_len / 4) ;ex) if $Title_len= 0x13 = 19=> 19 - 4*(19/4) = 19 - 4*4 = 3
    If $jump <> 0 Then
 $jump = 4 - $jump ; 4 - 3 = 1만큼 $Title_pos에서 jump 해야 다음 스트링 len 시작지점
    $offset = $Title_pos + 4 + $Title_len + $jump
    Filesetpos($file,$offset,0)
 EndIf

    $null = FileRead($File, 4)
 $category_pos = FileGetPos($file)
 $category_len = _BinaryToInt32(FileRead($File, 4))

 If $category_len = 0 Then
    $languages = FileRead($File, 4) ; 0x0B000000
 Else
    ;MsgBox(0,"Title",$category_len)
    $category = BinaryToString(FileRead($File,$category_len),4)
    $jump = $category_len - 4*int($category_len / 4) ;ex) if $Title_len= 0x13 = 19=> 19 - 4*(19/4) = 19 - 4*4 = 3
       If $jump <> 0 Then
       $jump = 4 - $jump ; 4 - 3 = 1만큼 $Title_pos에서 jump 해야 다음 스트링 len 시작지점
          $offset = $category_pos + 4 + $category_len + $jump
          Filesetpos($file,$offset,0)
    EndIf
 $languages = FileRead($File, 4) ; 0x0B000000
 EndIf

    For $j = 1 to $languages
 $pos = FileGetPos($File)
 $len = _BinaryToInt32(FileRead($File, 4))
 $Str = BinaryToString(FileRead($File,$len),4)
    $Str = StringRegExpReplace($Str,@CRLF,"<cf>")
 $Str = StringRegExpReplace($Str,@LF,"<lf>")
 $Str = StringRegExpReplace($Str,@CR,"<cr>")
    If $j = 11 Then
       $Text &= $Str & @CRLF
       Else
          $Text &= $Str & @TAB
       EndIf

          $jump_2 = $len - 4*int($len / 4) ;ex) if $Title_len= 0x13 = 19=> 19 - 4*(19/4) = 19 - 4*4 = 3
       If $jump_2 <> 0 Then
       $jump_2 = 4 - $jump_2 ; 4 - 3 = 1만큼 $Title_pos에서 jump 해야 다음 스트링 len 시작지점
          $offset_2 = $pos + 4 + $len + $jump_2
          Filesetpos($file,$offset_2,0)
    EndIf
 Next

    $pos_tail_block = FileGetPos($File)
 $tail_block = FileRead($File, "0x40")
 ;MsgBox(0,"Title",$pos_tail_block)
 Next

;;;Lang category infor
$Tail_pos = FileGetPos($file)
$Tail = FileRead($File, "0xB8")
;;;

$hFile = FileOpen ($Name&".csv", 2+256)
FileWrite($hFile, $Text)
FileClose($hFile)
TrayTip("Exporter", "Finish!", 3)
sleep(3000)

Func CompGetFileName($Path)
If StringLen($Path) < 4 Then Return -1
$ret = StringSplit($Path,"\",2)
If IsArray($ret) Then
Return $ret[UBound($ret)-1]
EndIf
If @error Then Return -1
EndFunc

Func _BinaryToInt32($Binary)
 Return BitAND(Int(Binary($Binary)), 0xFFFFFFFF)
EndFunc

 

이렇게 하여 추출 후, csv 파일을 구글 시트에 업로드합니다.

필요없는 C~G열은 '열 숨기기'로 숨기고, 번역을 진행 한 후 폰트까지 만들어줍니다.

K-020.png

 

<도입> _DelimFile_To_Array2D 함수는 템플릿이니 array 배열 사용할 때 그대로 차용하면 됩니다.

아라가미의 경우 Array 배열이 11이 되도록 추출했으니  $Array = 11로 지정했습니다.

$NEWdata에서 템플릿 함수를 불러오도록 만들고.. 나머지 과정은 제가 만든 소스 코드를 읽어보시면 됩니다.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
#include <ArrayNaturalSort.au3>
#include <File.au3>
#include <Binary.au3>

Dim $NEWdata, $Num = 2
$Array = 11
$Debug = false

$TxtPath = FileOpenDialog("txt 파일을 선택하세요", @ScriptDir, "txt files (*.csv)",1)
If @error = 1 Then Exit

$NEWdata = _DelimFile_To_Array2D($TxtPath, @TAB, $Array + 1) ; 2 = colums, key + lang1
if $Debug Then _ArrayDisplay($NEWdata)

$Name = StringTrimRight(CompGetFileName($TxtPath),4)
$File = FileOpen($Name, 0+16)
If $File = -1 Then
MsgBox(0,"오류!",$Name & "파일을 열 수 없습니다.")
Exit
EndIf

FileSetPos($File,"0xF0",0)
$Files = _BinaryToInt32(FileRead($File, 4))

FileSetPos($File,0,0)
Dim $New_Block
Dim $Newtext
Dim $tail_block
Dim $Newfile

$New_Header = FileRead($File, "0xF4")
$Newfile &= $New_Header

For $i = 1 to $Files
    $Title_pos = FileGetPos($file)
    $Title_len = _BinaryToInt32(FileRead($File, 4))
    $jump = $Title_len - 4*int($Title_len / 4)

    If $jump = 0 Then
    $size = 4 + $Title_len
 Else
       $jump = 4 - $jump
       $size = 4 + $Title_len + $jump
    EndIf

    Filesetpos($file,$Title_pos,0)
 $Title = FileRead($File, $size)
 $New_Block &= $Title

    $null = FileRead($File, 4)
 $New_Block &= $null

 $category_pos = FileGetPos($file)
 $category_len = _BinaryToInt32(FileRead($File, 4))

 If $category_len = 0 Then
    $New_Block &= "0x00000000"
    $languages = FileRead($File, 4) ; 0x0B000000
       $New_Block &= $languages
    Else
       $category_jump = $category_len - 4*int($category_len / 4)

       If $category_jump = 0 Then
       $category_size = 4 + $category_len
    Else
          $category_jump = 4 - $category_jump
          $category_size = 4 + $category_len + $category_jump
       EndIf

       Filesetpos($file,$category_pos,0)
    $category = FileRead($File, $category_size)

    $New_Block &= $category
    $languages = FileRead($File, 4) ; 0x0B000000
       $New_Block &= $languages
 EndIf

    ;read text
 For $x = 1 to $Array
    $ValueText = $NEWdata[$Num][$x]
    $ValueText = StringRegExpReplace($ValueText,"<cf>",@CRLF)
    $ValueText = StringRegExpReplace($ValueText,"<lf>",@LF)
    $ValueText = StringRegExpReplace($ValueText,"<cr>",@CR)
       $bNewText = StringToBinary($ValueText,4)
    $Newlen_for_cal = BinaryLen($bNewText)
    $Newlen = _binaryFromint32($Newlen_for_cal)
    $Newtext &= $Newlen
    $Newtext &= $bNewText

       $add_null_for_cal = $Newlen_for_cal - 4*int($Newlen_for_cal / 4)
       If $add_null_for_cal <> 0 Then
    $add_null_for_cal = 4 - $add_null_for_cal
    For $k = 1 to $add_null_for_cal
     $Newtext &= "0x00"
    Next
       EndIf
 Next
 $Num += 1
 $New_Block &= $Newtext
 $Newtext = "0x" & StringRegExpReplace($Newtext,"0x","")

    ;read $file in order to bypass language data and get block_tail.
    For $w = 1 to 11
 $pos = FileGetPos($File)
 $len = _BinaryToInt32(FileRead($File, 4))

    $jump = $len - 4*int($len / 4)

    If $jump <> 0 Then
    $jump = 4 - $jump
    $offset = $pos + $len + 4 + $jump
 Else
    $offset = $pos + $len + 4
 EndIf

    FileSetPos($file,$offset,0)
 Next

    $pos_tail_block = FileGetPos($File)


 $tail_block = FileRead($File, "0x40")
    $New_Block &= $tail_block

    $New_Block = "0x" & StringRegExpReplace($New_Block,"0x","")
    $Newfile &= $New_Block

    $New_Block = ""
 $Newtext = ""
 Next

;Lang category infor
$Tail_pos = FileGetPos($file)
$Tail = FileRead($File, "0xFC")
$Newfile &= $Tail
$Newfile = "0x" & StringRegExpReplace($Newfile,"0x","")

$hNewfile = FileOpen ("NEW_"&$Name, 2+16)
FileWrite ($hNewfile, $Newfile)
FileClose ($hNewfile)
TrayTip ("추출", "성공!", 3)
sleep (3000)

Func CompGetFileName($Path)
If StringLen($Path) < 4 Then Return -1
$ret = StringSplit($Path,"\",2)
If IsArray($ret) Then
Return $ret[UBound($ret)-1]
EndIf
If @error Then Return -1
EndFunc

Func _DelimFile_To_Array2D($s_file, $s_delim = @TAB, $i_max_2d = 0)
    Local $s_str = $s_file
    If FileExists($s_str) Then $s_str = FileRead($s_file)

    Local $i_enum_max = False
    If Int($i_max_2d) < 1 Then
        $i_enum_max = True
        $i_max_2d = 1
    EndIf

    Local $a_split = StringSplit(StringStripCR($s_str), @LF)
    Local $a_ret[$a_split[0] + 1][$i_max_2d] = [[$a_split[0]]], $a_delim

    For $i = 1 To $a_split[0]
        $a_delim = StringSplit($a_split[$i], $s_delim, 1)
        If $i_enum_max And $i_max_2d < $a_delim[0] Then
            ReDim $a_ret[$a_split[0] + 1][$a_delim[0]]
            $i_max_2d = $a_delim[0]
        EndIf
        For $j = 1 To $a_delim[0]
            $a_ret[$i][$j - 1] = $a_delim[$j]
        Next
    Next

    Return $a_ret
EndFunc

 

이렇게 하여 리팩을 하면 번역문 길이에 제약받지 않는 한글 패치 제작이 가능해집니다.

여기까지 기본편이고, 기본 응용, 중급, 고급 과정은 따로 강좌를 더 작성할지는 잘 모르겠네요.

아무튼 한글화 도전하시는 분들께 도움이 되길 바랍니다.

20170310004544_1.jpg

 

20170310004531_1.jpg

 

글쓴이 프기니님의 최신글
  1. 2019-08-01 22:00 이야기 > 디스아너드 브릭모어의 마녀들 번역가 모집 *8
  2. 2019-02-02 13:02 이야기 > 니노쿠니2 한글 패치 1.0 배포 *36
  3. 2019-02-01 23:04 이야기 > 히트맨 2016 한글 패치 1.0 배포 *36
  4. 2018-09-09 21:55 이야기 > 게이밍 노트북 어떤게 괜찮을까요? *14
  5. 2018-06-30 14:08 이야기 > 회사 기숙사.. 게임 라이프 접어야할 각인지.. *39

  • profile
    랜박블블3개 2017.03.15 13:00

    이미지가 깨진거 같은데 ... 맞나요?...

    그리고 아마 진짜 스크립트 툴에 관하여 전혀 모르는 분이 다가가기에는 벽이 높기 때문에

    힘들어 하는거 같아요 ..

    그래서 더욱더 프기니님의 한글화 작업에 많은 사람들이 열광을 했던거겠죠! ㅋㅋ

    제가 했던 게임 중에도 프기니님이 한글화 했던게 있을꺼에요!

  • profile
    프기니 2017.03.15 13:11
    수정했습니다. 이미지 부분은 중요한 건 아니고.. 저번 기초편과 구조가 비슷한데 다중 언어를 포함한 경우에 어떻게 행과 열로 배열한 형태로 추출하고, 다시 이를 도입하는지에 관한 과정입니다.
  • profile
    랜박블블3개 2017.03.15 13:29
    .... ㅂ... 바로 '다중 언어를 포함한 경우에 어떻게 행과 열로 배열한 형태로 추출하고, 다시 이를 도입하는지'
    부분에서 @ㅁ@...? 응?...아아.... 이러고 넘어가시는 분들이 많다는겤ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ
    그래도 분명 어느정도 아시는 분들은 오..!!! 이러면서 참고 되었어요 감사합니다! 라는 글을 남겨주실거에요 ㅋㅋ
  • profile
    프기니 2017.03.15 13:40
    그랬으면 좋겠네요 ㅎㅎ
  • profile
    랜박블블3개 2017.03.15 13:52
    에이 그럴꺼에요 ㅋㅋㅋ
    으샤 으샤 오늘도 힘내시구요 ㅋㅋ
  • profile
    프기니 2017.03.15 14:14
    랜박 님도 활기찬 하루가 되실길 :D
  • profile
    디비딥 2017.03.15 13:08

    저도 1번째, 3번째 그림만 보이고, 나머지 그림은 다 깨져보이네요.

    좋은 정보 감사드립니다.

  • profile
    프기니 2017.03.15 13:10
    수정했는데 보이시나요? 사실 소스코드가 중요하기 때문에..
  • profile
    디비딥 2017.03.15 13:12
    아...1번째, 3번째는 그림이 아니라 텍스트군요..ㅎㅎ
    나머지 그림도 잘 보입니다. 감사합니다.
  • profile
    촉수금지 2017.03.15 13:27

    그림이 잘보여도.. 무슨 소리인지 1도 못알아듣겠습니다.....ㅎㅎㅎㅎㅎㅎ

     

    그냥 번역이나 열심히 할께요....ㅎㅎㅎㅎ  기술적인건 역시 전문가분들 영역으로 남겨두는걸로..

  • profile
    아레스다 2017.03.15 13:50

    번역을 진행 한 후 폰트까지 만들어줍니다.

    포... 폰트 ㅠ_ㅜ

  • profile
    crys 2017.03.15 13:53

    스크립트에 대해 0.1도 모르다보니 무슨소리인가 하고 넘어갑니다..

  • profile
    촉수금지 2017.03.15 14:04

    폰트 만드는 법도 혹시 강의 하실 생각은 없으신지요?  텍스트는 이미 일반 csv 파일등으로 들어있는데 폰트만 없어서 한글 구사가 안되는 게임이 가끔있더군요. (ex : DX12 데모용 게임 애쉬스 오브 싱귤레리티 같은놈들..)

     

     

  • profile
    프기니 2017.03.15 14:12
    폰트는 정말 게임마다 너~~무 달라서 일반적인 강좌를 할 수가 없습니다. 심지어 저도 잘 모르는 부분도 있고요.
  • profile
    이드v 2017.03.15 14:25

    으아~ 컴퓨터 언어만 봐도 눈이 핑그르르 도네요

    글만 번역해도 힘든데 저런 것도 알아야하는 군요 orz...

    엑셀로 추출하고 다시 리팩하는 부분은 캡쳐사진을 보니 다른 세상인거 같네요..

    저도 깨작깨작 번역에 도움이 되고자 참여는 하고 있는데

    우선 여기부터 충실해야겠네요 orz

  • profile
    나무노래 2017.03.15 15:14

    번역만 해도 힘든데 기술적인 게 해결이 안되면 사실상 한국어화가 불가능 하거늘

    별별 시비 거는 사람이 많죠...힘내세요!

  • profile
    대하0534 2017.03.15 15:56

    고생이 많으시네요. 정리하기도 쉽지 않은데.. 감사합니다.

  • profile
    Rs 2017.03.15 16:10

    이런거 정리까지..

    수고하셨습니다.

     

  • profile
    LuciDio 2017.03.15 16:29

    검은건 배경이요 알록달록한 건 알파벳이로다...

  • profile
    RizeWave 2017.03.15 17:29

    이런 노하우까지 공개를 하시다니.. 스크랩해둬야겠습니다.

    수고많으셨습니다!

  • profile
    술라 2017.03.15 18:35

    늘 감사합니다

  • profile
    kerakera 2017.03.15 19:29

    노고에 감사합니다.

  • profile
    찌그만앙마 2017.03.15 20:25

    게임 소스 파일의 언팩, 리팩, 그리고 폰트 파일 인식.. 이게 가장 큰 골치죠..

  • profile
    리베르떼 2017.03.15 20:39

    진정한 전문가의 영역같아요 ㄷㄷ;;

  • profile
    Zykyl 2017.03.16 00:21

    저렇게 테이블 뽑고 워드카운트해서 글로서리 만들고 그 다음에 번역규칙 정하면 재미있겟네요.

    좋은 강의 감사합니다. 꾸벅 

  • profile
    프기니 2017.03.16 00:23
    저는 왠만하면 워드 카운트할 때마다 폰트 만들어줘야해서 가능하다면 2350자 + 알파가 되도록 폰트만들어 놓고 시작하죠. 확장하기 힘들 때는 카운트해야합니다만..
  • profile
    라네요 2017.03.16 14:07

    따라하기는 어찌저찌 진행이 되는데 이 지식을 바탕으로 제 능력으로 다른 곳에 적용할 수 있을까 라는 의문만 가득해집니다.

     

    마치... 밥아저씨가 그림 다 그려놓고 참 쉽죠? 할 때의 그 느낌입니다.

  • profile
    프기니 2017.03.16 14:22
    저도 오랜 시간 분석한 훈련을 거듭해서 여기까지 왔으니.. 한 번에 가능한 일은 잘 없죠. 노력하시다보면 잘 될거라고 봅니다.
  • profile
    지나가던네팔렘 2017.03.17 13:42

    유용한 정보 감사합니당


List of Articles
분류 제목 게임 글쓴이 날짜 조회 추천
공지 안녕하세요 ITCM 관리자입니다.(게임 추가관련 공지) 21 whals98 07.19 7175 20
공지 관리자에게 쪽지보내실때 참고해주세요!!! whals98 05.08 6018 20
공지 방송관련글 카테고리가 추가되었습니다. 1 ITCM 08.23 7586 20
공지 ITCM 안드로이드 어플 V1.1 15 CMDev 08.10 10372 34
공지 핫라인 개설!!! 24 매양 01.18 11619 38
공지 시디키즈, G2A등 리셀러 정보 글 작성 금지 매양 10.04 12583 28
공지 나눔 글은 나눔게시판을 이용해주시기 바랍니다. 4 매양 09.26 9669 14
공지 ITCM <스팀그룹> 비공개 전환 안내 및 초대요청 1995 ITCM 08.24 42851 37
꿀팁 [운영자 인증] ITCM 꿀팁정보 모음 (2017/3/16) 33 코코넛먹자 08.05 17497 67
공지 ITCM 내부 규정 안내 - 2017.7.11 UPDATE 65 file ZardLuck 02.05 33434 86
잡담 공부하기 전에 취미 투척을...(유튭 영상) LostARK 03.15 238 4
잡담 선물을 받았습니다 27 file 돌삐니 03.15 532 44
잡담 꽈당 + 소화제 3 file 볼로냐 03.15 210 6
잡담 마지막이 될지도 모르는(?) 한글화 스크립트 툴 제작 ... 29 file 프기니 03.15 1864 49
잡담 18일에 발매라면서 아직 예구도 안받는 게임. 5 file 촉수금지 03.15 594 9
질문 시디키즈 결제가 왜 이런거죠??;; 2 엘니뇨 03.15 657 2
일상 따뜻한 점심이네요 6 file RuTel 03.15 230 10
잡담 오늘은 신선한 뉴스들이 ㅋㅋ 9 file 위르노 03.15 597 9
잡담 BBC 뉴스사고 후 인터뷰 8 위르노 03.15 719 12
잡담 다들 상큼한 수요일 보내고 계신가요 24 랜박블블3개 03.15 228 4
소개 STYX: Shards of Darkness 리뷰등록 시작 + 메타스코어 3 file 코코넛먹자 03.15 490 20
잡담 매스이펙트 안드로메다 사이드퀘스트가 2004년 한국RP... 10 코코넛먹자 03.15 589 20
잡담 ??? 8 킬러조 03.15 593 25
소개 (수정)Rivercity Ransom : Underground 막보스 전투 ... 12 file NovE 03.15 334 6
잡담 냥봇님의 험블글이 없는걸 보니... 8 위르노 03.15 490 7
잡담 날씨가 많이 풀렸네요 6 file Aro 03.15 95 4
꿀팁 깜빡하고 아르마 번들 놓치신 분들 늦게나마 구입 방법 2 file YS 03.15 642 5
영상 용의둥지, 청명한하늘 & 감자서버의 습격?!(1:28:... 4 NovE 03.15 189 3
질문 섬란카구라 SV 엑박패드 무선리시버 사용시 정상작동... 4 돌더미 03.15 660 0
잡담 방송봐주신 분들 감사합니다 2 나무노래 03.15 255 13
잡담 다들 안주무시는지 12 꿍디 03.15 451 10
질문 요즘 글픽가성비 머가 제일인가요?? 중고시장도 합쳐서 13 개뿔뿔 03.15 1181 4
소개 zvault의 보너스 프로모션으로 충전하신 분들 참고하... 8 뫼한 03.15 360 18
모집 스카이림 엔데랄 모드 번역자를 모집합니다. 5 file Eva_millene 03.15 860 9
잡담 토비네타님 1엔트리 챌린지 이벤트 상품(?) 인증 18 file jach 03.15 293 18
Board Pagination Prev 1 ... 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 ... 2496 Next
/ 2496
CLOSE

SEARCH

CLOSE