【Skript&SkillAPI】skriptでダメージを与える際strengthの効果を実質無効にする方法

サーバー運用される方はこちらで情報交換されてはいかがでしょうか?
フォーラムルール
質問関連フォーラムで質問する時は、必ず次のトピックを一読/厳守お願い致します。
viewtopic.php?f=5&t=999
  • (PostNo.316000)

【Skript&SkillAPI】skriptでダメージを与える際strengthの効果を実質無効にする方法

投稿記事by SILOUSAGIU » 2018年4月23日(月) 08:24

運営チーム[運営宛のメッセージ(PM)を作成] 複数アカウントの運用を確認したため、利用を停止させて頂きます。

skriptで作ったスキルで「make player damage」でダメージを与えるとSkillAPIのstrength(damage+1%)が適応されてしまい、本来以上の威力で攻撃してしまいます。
これを何とか無効化したいのですがそんな設定があるわけでもないのであらかじめstrengthで威力が上昇しても本来のダメージになるように与えるダメージを減らして置きたいのですが単純に与えたダメージのstrength%分引くだけだと低くなりすぎてしまいます。あまり数学が得意ではないのちゃんとした式が立てれません。わかりにくかったらすいません。


スキル発動 → ダメージを与える際にSkillAPI側でdamage = damage+(damage*strength/100)するみたいなのであらかじめ与えるダメージを調整しないと行けないのですがどうゆう式を立てればいいのかさっぱりで・・・

もし別の対策等あるならそれも教えてください(*- -)(*_ _)ペコリ
画像
SILOUSAGIU
ID:b488043b
水から上がったとこ
 
記事: 2
登録日時: 2018年4月23日(月) 08:02

  • (PostNo.316016)

Re: 【Skript&SkillAPI】skriptでダメージを与える際strengthの効果を実質無効にする方法

投稿記事by mcgo » 2018年4月23日(月) 20:44

『make player damage (living entity) by (number)』という書き方はアタッカーをプレイヤーにして特定のMOBにダメージを与えることが出来るものです。
なので、アタッカーがプレイヤーというのをSkillAPIが読み取ってstrengthの効果が出てしまうのではないでしょうか?
だとしたら、アタッカーを指定しずにダメージを与えればいいので、『damage (living entity) by (number)』という書き方なら単にダメージを与えるだけなのでstrengthを無視出来るのではないでしょうか?
コード: 全て選択
#アタッカーがプレイヤー
on sneak toggle:
   player is sneaking
   loop all entities in radius 5 around location of player:
      make player damage loop-entity by 10

on damage:
   broadcast "%attacker%"

コード: 全て選択
#アタッカーを指定しない
on sneak toggle:
   player is sneaking
   loop all entities in radius 5 around location of player:
      damage loop-entity by 5

on damage:
   broadcast "%attacker%"

上記のコードはスニークしたら周りのMOBにダメージを与えるコードですが、アタッカーを指定しないコードを使用するとbroadcastではnoneと表示され、アタッカーが指定されてないのが分かります。
是非お試し下さい。
主にSkriptのトピックに出現中・・・
個人的に話したければプライベートメッセージいつでも送ってね♪
最近少しだけプラグイン開発に手を出し始めました^p^
どっかのサーバーでSkriptでお仕事したいなぁ~
【Skript自作コード公開中】
アバター
mcgo
ID:47db717f
鉄鉱掘り
 
記事: 277
登録日時: 2016年11月04日(金) 00:05
お住まい: Minecraft

  • (PostNo.316270)

Re: 【Skript&SkillAPI】skriptでダメージを与える際strengthの効果を実質無効にする方法

投稿記事by SILOUSAGIU » 2018年5月02日(水) 10:25

返信おくれて申し訳ありません
自己解決しました
mcgo さんが書きました:『make player damage (living entity) by (number)』という書き方はアタッカーをプレイヤーにして特定のMOBにダメージを与えることが出来るものです。
なので、アタッカーがプレイヤーというのをSkillAPIが読み取ってstrengthの効果が出てしまうのではないでしょうか?
だとしたら、アタッカーを指定しずにダメージを与えればいいので、『damage (living entity) by (number)』という書き方なら単にダメージを与えるだけなのでstrengthを無視出来るのではないでしょうか?
コード: 全て選択
#アタッカーがプレイヤー
on sneak toggle:
   player is sneaking
   loop all entities in radius 5 around location of player:
      make player damage loop-entity by 10

on damage:
   broadcast "%attacker%"

コード: 全て選択
#アタッカーを指定しない
on sneak toggle:
   player is sneaking
   loop all entities in radius 5 around location of player:
      damage loop-entity by 5

on damage:
   broadcast "%attacker%"

上記のコードはスニークしたら周りのMOBにダメージを与えるコードですが、アタッカーを指定しないコードを使用するとbroadcastではnoneと表示され、アタッカーが指定されてないのが分かります。
是非お試し下さい。

その方法だと敵を倒した際にアタッカー指定されないのでEXPが入りません
なのであらかじめ与えるダメージを下げSTRがかかった際に本来のダメージになるようにしました。
例:ダメージが100、 STRが10の場合
・式:100+(100+10)/100
画像
SILOUSAGIU
ID:b488043b
水から上がったとこ
 
記事: 2
登録日時: 2018年4月23日(月) 08:02


Return to 質問:マルチサーバー運用

x