銃skの改善点指摘してほしい
初心者のぼくが初めてまともに書いたskということで30発入りSMGを3発ずつ撃ててリロードもできるskです。一応動きます。
変数の使い方とかマジで色々汚いと思いますが「こう書いたらいいよ」とか温かく教えてください🥲
28 Replies
こーどいずこ…
質問書くだけ書いてコード出すの忘れてたことにベッドの中で気づいてPCつけました😅 おやすみ💤
playsoundも構文あるよ
最後のsayのくだりは、全員に弾数表示されるくない?
自分に弾数表示させたいなら
send "%{ammo以下略}%"がよき
sayのやつはその場で適当に確認したいだけだった
playみたいな構文があったけどskRayFallのやつで、入れようと思ったんだけどなんかなかったからとりあえすexecuteにした
余裕でplay soundあったわ使います
ちなこれ右クリ連打するとどうなります?
その場で確認は基本sendでやろう
broadcastわい憤死
on pickupとか、sendだとモニターできないのもあるから
broadcastはあり
ただ、PR民にありがちな、稼働中実環境でやる時に全員に表示されるから……
あぁー…
やっぱ気にするのか…
思ったけどreloadの時にset name of player's toolだと持ち替えしたら別のアイテムに名前ついちゃうから変数にアイテム入れてからのほうがいいかもね
あと話戻るけど
1番最初のコード
SMGとか各銃を関数にした方が間違い起きなくていいかも
function gunSMG() :: item:
みたいな感じで
particle使った銃のskript落としておきます
ヘッドショット胴体とかも判定してくれるのでご参考に
skriptは大体自己満じゃない?
否めん
ただ最終的に鯖で使うことを視野に入れてるなら
ほかPLの利用も考えた方がいいかなって
そうじゃないなら俺の言うたことは蛇足なりけり
しょうみCSとかに勝てることはないと思うけど、sk勉強するってことで作るもの考えたら銃しか思いつかなかった
functionがまだあんまり理解できてないかも
function もとい『関数』は
複数処理や計算にまとめて名前をつけたもの
同じ処理を色んなところで繰り返す時に
自分で決めた関数の名前を指定するだけでその処理を行える
リスト変数を{_t}にすることで各武器にも対応できるようになってるってことかな?
reload(player, "smg")
{_t}の中には"smg"が入ってる
武器を追加するとき
みたいにすればやりやすい
理解できた
ありがとうございます😁
function内でsendするときにプレイヤーが検出できませんみたいなエラー出るんですけど、どうしたらいいですか?
to {_p}つければええか
Skriptに限らずプログラムを組む時は、できるだけ抽象化する事を考えるといい
例えば銃の弾をリロードする関数を作る時、reloadSMGってのを作っちゃうと、今後reloadARとかreloadSGとかも作る必要が出てきちゃう
そこでこれみたいに種類問わず銃なら何でもリロード出来る関数を作って、関数を使う時に「因みにこの銃の種類はSMGです」っていう情報を後付けするようにすると、無駄な関数が増えないしコードも綺麗になるのでオススメ
なるべくコードを共通にするのもいい
きれいにするなら武器情報を変数に全部入れちゃうのが一番
ymlでまとめれるようにするのもありだよ
ってかymlで作れるほうが便利じゃね
まぁ PRだったらむりだけど
普通のサバでyml skript 使うぐらいなら ぐちゃぐちゃになる気がする