ショットガンの実現とその問題

①雪玉が同時に10個くらいplayerからばらまかれる ②雪玉にset metadata value "damage" of last shot snowball to 1でダメージ設定 ③on projectile collideでmetadetaを取得し、make player damage entity by ~で攻撃する という形式で実現しようとしています…が どうやら一つ目の雪玉しかダメージが通ってないようで… 試しにmake player damage {_target} by 10を大量に同時に送ってみたところ 一つ目しか判定されませんでした(以下テストコード)
on right click:
set {_target} to player's target
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10

on damage:
send "%damage%" to attacker

on damage:
wait 1 tick
set victim's invulnerability ticks to 0
set velocity of victim to vector 0,0,0
on right click:
set {_target} to player's target
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10
make player damage {_target} by 10

on damage:
send "%damage%" to attacker

on damage:
wait 1 tick
set victim's invulnerability ticks to 0
set velocity of victim to vector 0,0,0
これって、解決できますかね…?
51 Replies
わし
わし14mo ago
skRageでDamageSource作る
Una_Nancy_Owen
Una_Nancy_Owen14mo ago
maximum damage delay of playerとかはどうですか あとこの手の処理ってwait挟んでいけるもんなんです?
わし
わし14mo ago
https://github.com/akon1248/SkRage でdamagesourceで検索すると無限の可能性を得る
GitHub
GitHub - akon1248/SkRage: Skript Addon
Skript Addon. Contribute to akon1248/SkRage development by creating an account on GitHub.
わし
わし14mo ago
set {_dmgSource} to new damagesource with type %string%(自由なstring) でdamaesourceを新規作成 damagesource attacker of {_dmgSource} to %entity% で攻撃者を指定 ignore no damage ticks of {_dmgSource} to true で無敵時間を無視するdamagesourceにする damage %entity% by %number% with damage[ ]source %damagesource% で作ったdamagesource を使ってダメージを与える ノックバックしない設定もある no knockback of %damagesource%とかだっけ
Laminas
Laminas14mo ago
これでええんでねえの
わし
わし14mo ago
それ永続じゃね あと月猫のコードでできなかったのはwait 1 tickした後(全部ダメージ終わった後)に無敵時間0にしてるからってだけじゃね
Tsukineko(月雲)
諏訪線もうちょっと詳しくお願いしていいですか
Una_Nancy_Owen
Una_Nancy_Owen14mo ago
on join: set maximum damage delay of player to 0 ticks とかでダメージ受けた時のクールダウンが多分0になるんじゃないですか 私は1にしてますから0でどうなるかはよく分かりませんが
Tsukineko(月雲)
でもwait 1 tickしないと無敵時間消去できなかった…
Una_Nancy_Owen
Una_Nancy_Owen14mo ago
ただサボテンとかマグマで即死するようになるので、そこらへんはうまく工夫してください
わし
わし14mo ago
じゃあ各make damageの直後に逐次set victim's invulnerability ticks to 0もできないか やはりdamagesource 使おう
Tsukineko(月雲)
個々の最後の%damagesource%って何書けばよろし…? cant understund this でした(
わし
わし14mo ago
最初にsetした{_dmgSource}ですわ
Tsukineko(月雲)
SkRage 2.4.4です
on projectile collide:
projectile has metadata value "damage"
set {_player} to shooter of projectile
cancel the event
set {_vec} to velocity of projectile
set {_loc} to location at projectile
set {_loopNum} to floor(normal length of {_vec}) * 2
set normal length of {_vec} to 0.5
set {_HS} to false
set {_LS} to false
loop {_loopNum} times:
set {_loc} to {_loc} ~ {_vec}
if distance between {_loc} and location at entity's head < 0.5:
set {_HS} to true
exit 1 sections
else if distance between {_loc} and location at entity < 0.5:
set {_LS} to true
exit 1 sections
set {_damage} to metadata value "damage" of projectile
message "%{_damage}%" to {_player}
set {_dmgSource} to new damagesource with type "attack"
damagesource attacker of {_dmgSource} to {_player}
ignore creative of {_dmgSource} to true
ignore no damage ticks of {_dmgSource} to true
wait 1 tick
if {_HS} is true:
set {_damage} to {_damage} *2
else if {_LS} is true:
set {_damage} to {_damage} *0.6
else:
set {_damage} to {_damage}
damage entity by {_damage} with damage source {_dmgSource}
on projectile collide:
projectile has metadata value "damage"
set {_player} to shooter of projectile
cancel the event
set {_vec} to velocity of projectile
set {_loc} to location at projectile
set {_loopNum} to floor(normal length of {_vec}) * 2
set normal length of {_vec} to 0.5
set {_HS} to false
set {_LS} to false
loop {_loopNum} times:
set {_loc} to {_loc} ~ {_vec}
if distance between {_loc} and location at entity's head < 0.5:
set {_HS} to true
exit 1 sections
else if distance between {_loc} and location at entity < 0.5:
set {_LS} to true
exit 1 sections
set {_damage} to metadata value "damage" of projectile
message "%{_damage}%" to {_player}
set {_dmgSource} to new damagesource with type "attack"
damagesource attacker of {_dmgSource} to {_player}
ignore creative of {_dmgSource} to true
ignore no damage ticks of {_dmgSource} to true
wait 1 tick
if {_HS} is true:
set {_damage} to {_damage} *2
else if {_LS} is true:
set {_damage} to {_damage} *0.6
else:
set {_damage} to {_damage}
damage entity by {_damage} with damage source {_dmgSource}
あ。いっこめはちょっとむししてください(((
Una_Nancy_Owen
Una_Nancy_Owen14mo ago
うちの環境なら普通に動くのに...verとかかな https://www.spigotmc.org/resources/simple-hit-delay.80902/ こういうのもあるから限定的な環境下でしか動かないとかもないと思うけども
わし
わし14mo ago
set damagesource attacker of ~とか setですわよ そのdamagesourceの性質を逐次trueにsetしていくって感じ
Tsukineko(月雲)
ハッズ殺してくれ…
Tsukineko(月雲)
setつけてもダメだった…
わし
わし14mo ago
; ;
Tsukineko(月雲)
on projectile collide:
projectile has metadata value "damage"
set {_player} to shooter of projectile
cancel the event
set {_vec} to velocity of projectile
set {_loc} to location at projectile
set {_loopNum} to floor(normal length of {_vec}) * 2
set normal length of {_vec} to 0.5
set {_HS} to false
set {_LS} to false
loop {_loopNum} times:
set {_loc} to {_loc} ~ {_vec}
if distance between {_loc} and location at entity's head < 0.5:
set {_HS} to true
exit 1 sections
else if distance between {_loc} and location at entity < 0.5:
set {_LS} to true
exit 1 sections
set {_damage} to metadata value "damage" of projectile
message "%{_damage}%" to {_player}
set {_dmgSource} to new damagesource with type "attack"
set damagesource attacker of {_dmgSource} to {_player}
set ignore creative of {_dmgSource} to true
set ignore no damage ticks of {_dmgSource} to true
wait 1 tick
if {_HS} is true:
set {_damage} to {_damage} *2
else if {_LS} is true:
set {_damage} to {_damage} *0.6
else:
set {_damage} to {_damage}
damage entity by {_damage} with damage source {_dmgSource}
on projectile collide:
projectile has metadata value "damage"
set {_player} to shooter of projectile
cancel the event
set {_vec} to velocity of projectile
set {_loc} to location at projectile
set {_loopNum} to floor(normal length of {_vec}) * 2
set normal length of {_vec} to 0.5
set {_HS} to false
set {_LS} to false
loop {_loopNum} times:
set {_loc} to {_loc} ~ {_vec}
if distance between {_loc} and location at entity's head < 0.5:
set {_HS} to true
exit 1 sections
else if distance between {_loc} and location at entity < 0.5:
set {_LS} to true
exit 1 sections
set {_damage} to metadata value "damage" of projectile
message "%{_damage}%" to {_player}
set {_dmgSource} to new damagesource with type "attack"
set damagesource attacker of {_dmgSource} to {_player}
set ignore creative of {_dmgSource} to true
set ignore no damage ticks of {_dmgSource} to true
wait 1 tick
if {_HS} is true:
set {_damage} to {_damage} *2
else if {_LS} is true:
set {_damage} to {_damage} *0.6
else:
set {_damage} to {_damage}
damage entity by {_damage} with damage source {_dmgSource}
わし
わし14mo ago
ウ↑チ↓のdamagesourceくんは
set {_damagesource} to new damage source with type "player"
set damage source entity of {_damagesource} to player
set ignore no damage ticks of {_damagesource} to true
set prevent knockback of {_damagesource} to true
damage target entity by 9 with damage source {_damagesource}
set {_damagesource} to new damage source with type "player"
set damage source entity of {_damagesource} to player
set ignore no damage ticks of {_damagesource} to true
set prevent knockback of {_damagesource} to true
damage target entity by 9 with damage source {_damagesource}
これで動いてるからぜんぜんわからん 一応skRageは1.12.2しか対応してない
Tsukineko(月雲)
なんもわからん
わし
わし14mo ago
ProtocolLibはいってりゅ? Requiredらしいが
Tsukineko(月雲)
あかい…
わし
わし14mo ago
😢 ProtocolLibのver合わせればいけそう
Tsukineko(月雲)
verいくら…?
わし
わし14mo ago
wakan nai; ; サーバーのバージョンに合わせるように うちのやつは 5.0.0!?
Tsukineko(月雲)
えぇ… どこから拾ってきたの…w
わし
わし14mo ago
どこにも存在しない
Tsukineko(月雲)
わし
わし14mo ago
PlayerRealmsの標準ProtocolLibが 5.0.0なんですけど...
Tsukineko(月雲)
thinking
わし
わし14mo ago
何者だよこいつは
Tsukineko(月雲)
protocolibが赤文字じゃなくなった! skRageは依然赤…
わし
わし14mo ago
ウチは2.3.3ですわねskRage
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
コンソールのエラーがneed skRageが有効化されない理由を模索
Tsukineko(月雲)
実際に該当コードを読み込んだ時のやつが必須ですかね
わし
わし14mo ago
上の見るとdamage sourceを変数にsetするとこはエラー出てないからvery謎
mirageeeeeeeeeeeeeeeeeeeeeeeeeee
skRageを読み込んだ時にエラーが出てると思うので プラグイン読んだ時のログで
Tsukineko(月雲)
これですかね… @mirageeeeeeeeeeeeeeeeeeeeeeeeeee
Tsukineko(月雲)
どうでしょう…skrageのエラーの理由とかわかりそうな方いますか…
何か
何か14mo ago
明らかにprotocollib
Tsukineko(月雲)
(´・ω・`) 解決方法…ありますか…?
何か
何か14mo ago
何か
何か14mo ago
1.12.2は java8で動かさないといろいろバグります これjava18だから 動かないよ
Tsukineko(月雲)
これ、java verどうやって変えるんでしたっけ… 自分agamesで鯖借りてるんですよ あ、こうもくあった♥ あ!エラーないなった!!
Want results from more Discord servers?
Add your server
More Posts
npcはどうやって作ればいいですか?command /setpvp: permission: admin trigger: spawn npc named "pvp" at player as zombiskutilitiesでyamlを操作```yaml acount: - x: 0 y: 0 z: 0 world: world - x: 3.5 y: 31.5 z: 4.5 world: w-lobプレイヤーがスニークしているように見せたい[ 環境 ] paper-514 mc1.19.4 [ 導入plugin ] skript-2.6.4 skript-packet-2.1.0 ProtocolLib - ver 5.0.0-SNAPlocation作成とworldの指定``` every 20 tick: set {_path} to "plugins/skript/scripts/yaml/stand_locations.yml" loop 10アーマースタンドの向きアーマースタンドの向きってどうやって変えればいいですか…? ``` spawn armor stand at {_loc} ~ vector 0,-1,0 with nbt "{Invisチェストその他もろもろ方向が存在するブロックについてこいつらを指定した向きに設置する方法が知りたいでやんす… あと、設置済みのチェストの方向を調べる方法も弓を引くモーションプレイヤーに、特定のアイテムを持っている間、ずっと弓を最大限引いたモーションを取らせたいです。 パケットの知識とか0なのですが、なにとぞ案などあれば教えていただけないでしょうか。skBee読み込まれない問題画像のような構成でskriptいじってますが、skbeeが反映されません 2.5.4のskbee入れてます 最新verでも動きませんでした これ適応verかなんかあります?長押しの検知いや、わかってるんですよ 多分無理だろうなって… 現状右クリック長押しで一秒間に5回判定されることが分かりました これを毎ティックチェックする方法ありますかHUDを追加する画面右下に文字を表示させるとかできる…?