# NH321.awk # NetHack 3.1 シリーズの record を NetHack 3.2.1 シリーズに変換 # 1996 Sep.29 Sun. # Copyright (c)1996 G-HAL # # #旧 #日付 uid 死亡場所 死亡階 最大階 HP 最大HP 得点 職性 名前,死亡理由 # #新 #ver_major.ver_minor.patchlevel 得点 死亡場所 死亡階 最大階 HP 最大HP 死亡回数 死亡日 誕生日 uid 職性 名前,死亡理由 # # #誕生日と deaths のデータが無い。4 function error(p,q) { printf("%s: %s(%d) %s\n%s\n",p,FILENAME,NR,q,$0) > "/dev/stderr" } BEGIN { flag=0 } /^[89][0123456789][01][0123456789][0123][0123456789] / { flag=1 printf("%d.%d.%d %d %d %d %d %d %d %d %d %d %d %s %s\n", 3,2,1, $8, $3, $4, $5, $6, $7, 1, $1, $1, $2, $9, $10) next } /^3\.2\.[0123456789] / { flag=2 printf("%d %d %d %d %d %d %d %d %s %s\n", $9, $11, $3, $4, $5, $6, $7, $2, $12, $13) next } END { if(flag==0) { error("error","illigal format") } if(flag==1) { printf("This scorefile is NetHack 3.1 series.\n") > "/dev/stderr" printf("Converted to NetHack 3.2.1 series\n") > "/dev/stderr" } if(flag==2) { printf("This scorefile is NetHack 3.2 series.\n") > "/dev/stderr" printf("Converted to NetHack 3.1 series\n") > "/dev/stderr" } } # #960730 100 6 -2 54 -3 455 3351293 VF lannet,透明なアルコンに殺された # 1 3351293 lannet-Vは最終試練にて[最大地下54階] - [455] # 透明なアルコンに殺された. # #960205 100 0 11 17 0 270 692008 VM lannet,トラッパーに殺された # 3 692008 lannet-Vは運命の大迷宮の地下11階にて[最大地下17階] - [270] # トラッパーに殺された. # # fscanf(rfile, "%6s %d %d %d %d %d %d %ld %c%c %[^,],%[^\n]%*c", # tt->date, &tt->uid, # &tt->deathdnum, &tt->deathlev, # &tt->maxlvl, &tt->hp, &tt->maxhp, &tt->points, # &tt->plchar, &tt->sex, # tt->name, tt->death) # # #3.2.1 11393 0 11 11 -7 78 1 960906 960906 42 BM hal9000,火の精に殺された # 1 11393 hal9000-Bは運命の大迷宮の地下11階にて火の精に殺され # た. - [78] # #3.2.1 837 0 2 3 -4 36 1 960908 960908 42 CM hal9000,ねずみ女に殺された #22 837 hal9000-Cは運命の大迷宮の地下2階にて[最大地下3階] # ねずみ女に殺された. - [36] # # fscanf(rfile, "%d.%d.%d %ld %d %d %d %d %d %d %6s %6s %d %c%c %[^,],%[^\n]%*c", # &tt->ver_major, &tt->ver_minor, &tt->patchlevel, # &tt->points, &tt->deathdnum, &tt->deathlev, # &tt->maxlvl, &tt->hp, &tt->maxhp, &tt->deaths, # tt->deathdate, tt->birthdate, # &tt->uid, &tt->plchar, &tt->sex, # tt->name, tt->death)