Mudlet: Server IRE tidak bernegosiasi untuk MXP

Dibuat pada 22 Jan 2019  ·  26Komentar  ·  Sumber: Mudlet/Mudlet

Ringkasan singkat masalah / Deskripsi fitur yang diminta:

@ vadi2 memberi tahu saya bahwa kode mxp di cabang pengembangan tidak berfungsi untuk server IRE. Jadi untuk selanjutnya saya telah menyelidiki masalahnya.

Langkah-langkah untuk mereproduksi masalah / Alasan menambahkan fitur:

  1. Berada di cabang pengembangan terbaru
  2. Menghubung
  3. ??
  4. kenapa mxp tidak aktif ?!

Keluaran kesalahan / Hasil yang diharapkan dari fitur

Saya telah membuat skrip untuk memeriksa apakah MXP telah dinegosiasikan oleh server IRE. Sayangnya tidak. Hanya GMCP yang dinegosiasikan oleh server.

Informasi tambahan, seperti versi Mudlet, sistem operasi, dan gagasan tentang cara menyelesaikan / mengimplementasikan:

  1. cabang pengembangan terbaru sejak 3.16.1.
  2. Saya telah berbicara dengan Tecton dari IRE untuk mengetahui mengapa server tidak bernegosiasi untuk itu? ternyata itu bukan di mesin pengangkatan. Dia mengatakan bahwa itu menyala secara otomatis untuk pengguna mudlet, jadi negosiasi tidak diperlukan. tetapi kode negosiasi mungkin akan ada di pembaruan pengangkatan berikutnya (mungkin?).

Jadi saya kira saya harus membuat solusi PR malam ini khusus untuk server IRE sehingga akan menyala dengan memeriksa untuk melihat apakah kita terhubung ke server IRE ..

bug high regression

Semua 26 komentar

Itu mungkin menjelaskan kode aslinya - tetapi itu bisa jadi bukan satu-satunya, dan kami tidak dapat merusak banyak hal secara default dan menambahkan solusi untuk setiap game di luar sana.

Benar; namun, masalahnya akan kembali pada Evennia dan game MUD lain yang bernegosiasi juga, @ vadi2 : laughing: jadi Anda mungkin bermain dengan hot potato. : man_shrugging:

Menurut Evennia, jamur bekerja untuk mereka! Mungkin tidak harus menjadi pilihan.

Menarik. jadi kami hanya default MXP untuk terus maju? (dan memberi komentar di suatu tempat untuk merujuk masalah ini ...)

Tidak, kita harus menemukan solusi yang sesuai untuk Evennia dan IRE. Agar Evennia tidak melarikan diri <> sebelum MXP dinegosiasikan dan agar IRE entah bagaimana membuat MXP bekerja tanpa mereka menegosiasikannya.

Ini adalah hal sulit yang harus kita lakukan. Pengguna tidak peduli apakah itu berfungsi pada satu atau yang lain, mereka ingin Mudlet hanya berfungsi: man_shrugging:

mungkin membuat fungsi Lua yang dapat mengaktifkan mxp untuk pengguna. Saya perhatikan bahwa kami tidak memiliki fungsionalitas Lua (malas) yang memungkinkan kami untuk mematikan atau mengaktifkan mxp secara langsung. dengan ide itu, kita bisa memasangkannya dalam sebuah profil.

sementara pada saat yang sama, akan berguna untuk memiliki fungsionalitas tersebut sehingga pembuat kode lumpur dan pengguna mudlet dapat membuat alias untuk mematikan dan untuk mengamatinya dengan mudah.

Itu masih merupakan solusi bagi pengguna IRE. Bagaimana MUSHclient melakukannya - dan apakah itu benar-benar bekerja untuk Evennia / ChatMUD dan IREs di luar kotak?

image

Saya harus mencatat bahwa itu 'sesuai perintah' secara default di mush client.

Ah ok, jadi IRE sudah rusak di luar kotak.

Saya berpikir untuk mencoba mengimplementasikan sesuatu yang serupa di mushclient dalam bentuk:

1) 'ya / tidak / atas perintah'
2) juga harus memberikan keterangan alat yang berguna menjelaskan opsi mana yang cocok untuk server mana. misalnya, untuk 'ya':
"Direkomendasikan untuk memilih opsi ini jika Anda memainkan game IRE (achaea, aetolia, starmourn, dll).

3) terapkan ini ke dalam opsi XML (jangan tinggalkan opsi forced_mxp_negotiation) sebagai gantinya gunakan untuk mengimpor opsi ke variabel baru. ini mengubah profil lama menjadi profil baru dalam pembaruan.
4) setiap profil default akan memiliki opsi XML yang dapat berupa salah satu dari opsi tersebut diaktifkan / dinonaktifkan / perintah menyesuaikan untuk setiap game masing-masing.

Ini tidak akan berhasil, kami tidak dapat memiliki klien yang rumit yang membutuhkan lebih banyak kenop dan fob saat ia berkembang hanya untuk menjaga agar tetap berfungsi (dan tidak menambahkan fitur baru).

Bagaimana dengan kita mendeteksi MXP secara otomatis dan mengaktifkannya?

Jadi kami ingin mendeteksi mxp dalam bentuk [#z dan juga mendeteksi negosiasi?

Ya. Pada dasarnya, tambahkan solusi untuk IRE (sampai mereka memperbaikinya).

Saya terkejut mereka tidak menegosiasikannya mengingat seberapa luas penerapan MXP mereka - Anda sangat yakin itu masalahnya?

mushclient atau IRE?

KEMARAHAN

dari apa yang saya kumpulkan itu dapat diaktifkan oleh konfigurasi mereka. Namun, mereka belum menerapkan negosiasi untuk mxp. saat saya berkomunikasi langsung dengan Tecton tentang hal ini, dia mengatakan itu mungkin diterapkan di pembaruan mesin pengangkatan berikutnya. (di mana saya tidak tahu kapan itu akan menjadi pembaruan berikutnya).

Oke - mari tambahkan opsi deteksi otomatis untuk kasus di mana mesin mulai memaksanya (seperti yang kami lakukan sebelumnya ... ha)

kami memiliki deteksi otomatis ini sebelum ini atau itu kode yang sama sebelum saya memodifikasinya?

Nah, ingat kami berasumsi MXP aktif tanpa server menegosiasikannya - dan itulah mengapa IRE berfungsi.

kemudian
1) secara default, kita membiarkan mxp aktif (dengan mMxp menjadi false di init) jelas IRE dapat mengaktifkannya dengan (esc) [4z
2) jika dan jika ada server lumpur yang dinegosiasikan, maka mMXP akan dibalik menjadi true. (Kode AKA 0 baris terbuka)

baik?

Saya kira begitu - maksud Anda MXP dapat dihidupkan baik dengan negosiasi yang tepat atau dengan kami memindai string ajaib. Jika tidak, mati dan < , > muncul OK. Kedengarannya bagus.

deteksi otomatis ajaib. : p saya akan membuat PR patch ajaib besok.

Ingat ada MUD di luar sana yang bahkan tidak tahu / peduli tentang MXP sehingga merusak output mereka jika mereka kebetulan menggunakan < > misalnya, beberapa bentuk penyorotan satu nilai dalam daftar sehingga dari sudut pandang HTML / XML sepertinya tag tidak aktif. Apa oh! Atau, setidaknya, ini TIDAK AKTIF secara default ...! :tidak melihat kejahatan:

Anda harus dapat mengaktifkan sihir deteksi otomatis dengan meletakkan sesuatu di TBuffer::translateToPlainText(std::string& data, const bool isFromServer) setelah baris:

                case static_cast<quint8>('z'):

yang akan mencegat SEMUA urutan kode kontrol MXP tetapi hanya bertindak padanya jika kondisinya benar. Anda harus, mungkin mengunci pengaktifan dengan isFromServer sehingga hanya data Server (dan Pemutaran Ulang yang sesuai) yang menggelitik kode Anda - melakukan hal itu akan mencegah positif palsu dari feedTriggers( ... ) panggilan oleh skrip pengguna / pengemas ...: smile_imp:

@Slyven terima kasih. Saya akan memeriksanya.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat