プレイヤーがスニークしているように見せたい

[ 環境 ] paper-514 mc1.19.4 [ 導入plugin ] skript-2.6.4 skript-packet-2.1.0 ProtocolLib - ver 5.0.0-SNAPSHOT-636 [ やりたいこと ] packetを使いarg-1に設定したプレイヤーから自分(コマンド実行者)がスニークしているように見せたい [使用したコード]
command /sneak <player>:
trigger:
set {_packet} to new play_client_entity_action packet
set field 0 of {_packet} to id of player
set field 1 of {_packet} to "PRESS_SHIFT_KEY"
set field 2 of {_packet} to 0
send arg-1 packet {_packet}
command /sneak <player>:
trigger:
set {_packet} to new play_client_entity_action packet
set field 0 of {_packet} to id of player
set field 1 of {_packet} to "PRESS_SHIFT_KEY"
set field 2 of {_packet} to 0
send arg-1 packet {_packet}
[エラー内容] このコマンドを実行すると、arg-1に設定したプレイヤーが「io.netty.handler.codec.EncoderException: java.io.IOException: Can't serialize unregistered packet」という理由で蹴られます。
on packet event play_client_entity_action:
if "%field 1 of event-packet%" is "RELEASE_SHIFT_KEY":
cancel event
on packet event play_client_entity_action:
if "%field 1 of event-packet%" is "RELEASE_SHIFT_KEY":
cancel event
上のスニークを離したことをキャンセルするコードも作ってみたのですが、プレイヤーに左右クリックした時スニークが解除されてしまうというのがありました。 昨日パケットの勉強を始めたばかりの初心者なのでおかしいところがあるとは思いますが何卒よろしくお願いします。
6 Replies
tanoKun
tanoKun2y ago
送り続ければ何とかなると思います やりたいことがnametag hideならteamでできます
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
特にSkript-packetに思い入れがなければ、この構文を用いて簡単に実現できます https://docs.skunity.com/syntax/search/id:342
skUnity
skUnity
View a total of 1 search results on skUnity
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
スニークを解除したくない場合、 ・while等でtrueにし続ける ・on sneak toggleイベントをcancelする の2つを行うことで実現できます。 sneak toggleをcancelしない場合、スニークした瞬間に一瞬だけ解除されてしまいます というかcancelすればwhileは使わなくてもいいか
はるまき
はるまきOP2y ago
こんな便利な構文あったのですね。この構文を使って作ろうと思います。ありがとうございます!
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
あでもこれ 全員からスニーク状態に見えちゃうな 指定したプレイヤーから、となると別の方法を使わないと行けないかもしれないです
はるまき
はるまきOP2y ago
最初は指定したプレイヤー想定だったのですが、全員でもなんとかなりそうなのでこの方法で行こうと思います。わざわざありがとうございます。
Want results from more Discord servers?
Add your server