Это правильный путь, вам действительно нужно установить флажок "0". И вы загружаетесь в "op` правильно. Но способ, которым вы работаете с комментарием, неверен.
Символы закодированы в UTF-8, поэтому использование load_uint не будет работать должным образом, поскольку оно ожидает двоичную кодировку.
Вместо этого вам придется разобрать его:
() recv_internal(int balance, int msg_value, cell in_msg_full, slice in_msg_body) { int op = in_msg_body~load_uint(32); if (op == 0) { ;; load in the first 8 bits because of UTF-8 encoding int comment = in_msg_body~load_uint(8); ;; in UTF-8, 50 is the character for 2, because 50 = 0x32 var state = 0; if (comment == 50) { state = 2; } set_data(begin_cell().store_uint(op, 32).store_uint(comment, 8).store_int(state, 8).end_cell()); } }Обратитесь к UTF-8 здесь: https://www.utf8-chartable.de/