手紙バグ
ベルやアイテムの入手に利用できた
通常手に入らないオブジェクトもアイテムとして手に入れられた
関所とか
動作原理に興味があるあんも.icon
特定の操作によって通常操作できないデータ領域を操作する
手紙の本文
ここまでが通常操作可能な範囲
宛先
便箋の種類
手紙についているプレゼント
https://gyazo.com/c4de5b5a358be033735e56e987ad2e17
もちもの欄
30文字
もちもの欄の数は15個
1文字は16進数で2桁、アイテムは16進数で4桁で表されている
2文字で1アイテムを表せる
手持ちのベル
4文字
16進数で8桁ぶん
0xffffffff=4294967295
もちもの欄の状態
4文字
プレゼント状態のフラグ?あんも.icon
カタログの状態のフラグ
家具の状態のフラグ
71文字
家具は562種類
1文字は16進数で2桁、2進数にして8桁
562/8=70.25で70文字とちょっとあればよい
服の状態のフラグ
10番目の手紙を利用する方法では途中までしか到達できない
服は256種類
文字列の表
♪がFFになっている
0xff=0b11111111
00とE1がNULになっているのでこれを含むアイテムを指定することはできない
なぜ特定の操作で手紙の内容以外の領域に行けるのか?
なぜ2組ずつ逆順に読むのか?
0x01312d01=012D3101=あをぐあ
0131+2D01→2D01+0131
(2D+01)*(01+31)→012D3101
01: あ
2D: を
31: ぐ
やり方
1. 手紙を9通にして、右下だけ開けておく
もちもの欄のアイテムは上書きされてしまうことがあるので空にしておく
2. 手紙を用意して、手紙を書く
宛先は名前が3文字の人にするとより良いらしい?あんも.icon
3. 宛先のさんへを消して名前だけにする
4. 名前の前にカーソルを合わせてスペース4回、名前の後にスペース4回
5. 本文を文字で埋める
16×4=64文字
4行あるうち、1行目と3行目を全部「あ」に、2行目と4行目を全部「た」にする
文字列に意味があるらしいあんも.icon
「あ」だと手紙がバグらずリサイクルできる
「た」だと「なつのくものびんせん」になる
6. 本文全体を選択してコピーする
コピーが終わった本文は削除しておく
効果があるかはわからないのでおまじない的あんも.icon 7. 宛先行の先頭ではりつけして1文字削除してスペースを入力
はりつけはRボタンでできる
16×4-1+1=64文字入力するのと同じ?あんも.icon
8. Yボタンを2回押す
赤いポインタがあるところに手のアイコンが出てくる
9. 右キーを5回押すか押しっぱなしにする
赤いポインタと手のアイコンが少し右に移動する
10. はりつけを2回する
16×4×2=128文字入力するのと同じ?あんも.icon
11. 8文字削除する
手持ちアイテムの一つ目を決める場所に移動するため
はりつけを2回したあと8文字削除したところから、30文字のところが手持ちアイテムを決める範囲
12. 30文字までの任意の文字列を入力する
「ラてモてロてユて」
きんのあみ・きんのオノ・きんのパチンコ・きんのつりざお の場合
30文字以上にはみ出すと手持ちのベルを書き換えられる
手持ちのベルを表すのに使っている範囲は4文字ぶん
30文字+「あをぐあ」
20,000,001ベル
20000001=0x01312d01
どうぶつの森内の解釈に合わせて読み替える
0x01312d01=012D3101=あをぐあ
0131+2D01→2D01+0131
(2D+01)*(01+31)→012D3101
01: あ
2D: を
31: ぐ
ぴったりの数字はNULが入っていて難しかったらしいあんも.icon
NULを入力する手段がない
この方法で役場にベルを貯金すると累計貯金額の粗品が貰えない場合がある
通常持てない額のベルを貯金するのでチェックの金額をすり抜けてしまう
そのアイテムも手紙バグで出せてしまうかも?あんも.icon Q全く分かりません><
Aどんまい><
とても味わい深いあんも.icon
説明してあげてほしい
この種の裏技は呪術的になりやすい気がするあんも.icon
動作原理がわかっていないから
table:hex_char
hex char
00 NUL
01 あ
02 い
03 う
04 え
05 お
06 か
07 き
08 く
09 け
0A こ
0B さ
0C し
0D す
0E せ
0F そ
10 た
11 ち
12 つ
13 て
14 と
15 な
16 に
17 ぬ
18 ね
19 の
1A は
1B ひ
1C ふ
1D へ
1E ほ
1F ま
20 み
21 む
22 め
23 も
24 や
25 ゆ
26 よ
27 ら
28 り
29 る
2A れ
2B ろ
2C わ
2D を
2E ん
2F が
30 ぎ
31 ぐ
32 げ
33 ご
34 ざ
35 じ
36 ず
37 ぜ
38 ぞ
39 だ
3A ぢ
3B づ
3C で
3D ど
3E ば
3F び
40 ぶ
41 べ
42 ぼ
43 ぱ
44 ぴ
45 ぷ
46 ぺ
47 ぽ
48 ぁ
49 ぃ
4A ぅ
4B ぇ
4C ぉ
4D ゃ
4E ゅ
4F ょ
50 っ
51 ア
52 イ
53 ウ
54 エ
55 オ
56 カ
57 キ
58 ク
59 ケ
5A コ
5B サ
5C シ
5D ス
5E セ
5F ソ
60 タ
61 チ
62 ツ
63 テ
64 ト
65 ナ
66 ニ
67 ヌ
68 ネ
69 ノ
6A ハ
6B ヒ
6C フ
6D ヘ
6E ホ
6F マ
70 ミ
71 ム
72 メ
73 モ
74 ヤ
75 ユ
76 ヨ
77 ラ
78 リ
79 ル
7A レ
7B ロ
7C ワ
7D ヲ
7E ン
7F ガ
80 ギ
81 グ
82 ゲ
83 ゴ
84 ザ
85 ジ
86 ズ
87 ゼ
88 ゾ
89 ダ
8A ヂ
8B ヅ
8C デ
8D ド
8E バ
8F ビ
90 ブ
91 ベ
92 ボ
93 パ
94 ピ
95 プ
96 ペ
97 ポ
98 ァ
99 ィ
9A ゥ
9B ェ
9C ォ
9D ャ
9E ュ
9F ョ
A0 ッ
A1 ヴ
A2 A
A3 B
A4 C
A5 D
A6 E
A7 F
A8 G
A9 H
AA I
AB J
AC K
AD L
AE M
AF N
B0 O
B1 P
B2 Q
B3 R
B4 S
B5 T
B6 U
B7 V
B8 W
B9 X
BA Y
BB Z
BC a
BD b
BE c
BF d
C0 e
C1 f
C2 g
C3 h
C4 i
C5 j
C6 k
C7 l
C8 m
C9 n
CA o
CB p
CC q
CD r
CE s
CF t
D0 u
D1 v
D2 w
D3 x
D4 y
D5 z
D6 0
D7 1
D8 2
D9 3
DA 4
DB 5
DC 6
DD 7
DE 8
DF 9
E0 空白
E1 NUL
E2 -
E3 ~
E4 ・
E5 。
E6 、
E7 !
E8 ?
E9 .
EA ,
EB 「
EC 」
ED (
EE )
EF <
F0 >
F1 ’
F2 ”
F3 _
F4 +
F5 =
F6 &
F7 @
F8 :
F9 ;
FA ×
FB ÷
FC 💦
FD ★
FE ♥
FF ♪
code:jl
using CSV
using DataFrames
# 双方向に変換できるようにDict型で2つつくる
df = CSV.read("hex_char.csv", DataFrame)
hex_to_char = Dict(row.hex => row.char for row in eachrow(df))
char_to_hex = Dict(row.char => row.hex for row in eachrow(df))
マスターソード = "3494"
function itemcode_to_chars(itemcode::String)
swap