package routers import ( "context" "sync" ) var _ = sync.Mutex{} var _ = context.Background // // 手机「拨号」线的两个 C2S 回执(T1-9 的通话记录 / 联系人操作那一半)。 // 这两条之前没有任何 handler,客户端 await 的是返回值 ⇒ 走的是中性兜底。兜底的回包也是 0 错误, // 所以表面上"没崩",但 CallPhoneUtils 的回调分支依赖 err == Ok 才继续写本地记录: // AskPhoneAddCallRecord → 成功后 table.insert(CallRecordList) 并抛 // ON_CALL_PHONE_ADD_CALL_RECORD_SUCCESS(否则弹服务端错误提示、记录不落本地) // 联系人选项那条更关键:它的 result 直接决定 ShowContactOptionDialog 播 SuccessDialogId 还是 // FailDialogId(叫车失败提示 / 好感度对话打不开都出在这)。 // 内容侧不需要服务端参与:拨通之后的对话是客户端本地 ShowGeneralDialog(dialogId), // 通讯录与解锁进度都由登录帧下发(RuntimePayloadFactory 的 PhoneContacts / PhoneContactsUnlockAll)。 // 所以这里只做两件事 —— 记日志 + 回一个 0 错误空包(与兜底字节一致,不碰客户端既有分支)。 // func GameRouter_Phone_AskPhoneAddCallRecord4229938(ctx context.Context, conn any, msg any) any { // Router implementation for GameRouter_Phone_AskPhoneAddCallRecord4229938 var zero any; return zero } func GameRouter_Phone_AskPhoneContactOptionAction4229938(ctx context.Context, conn any, msg any) any { // Router implementation for GameRouter_Phone_AskPhoneContactOptionAction4229938 var zero any; return zero } // 把号码翻成名字,纯粹为了让日志可读;查不到就返回空串。 func GameRouter_Phone_NameOfPhoneNumber(ctx context.Context, phoneNumber string) string { // Router implementation for GameRouter_Phone_NameOfPhoneNumber return "" }