個人医
わたしの運営するFiveMサーバー「GRVL」は、大手のサーバーさんを参考に作られています。
そんな中でかなーーーり苦戦したのが
「個人医」。
個人医だったり、闇医者だったり、とにかく救急隊に似た動きを救急隊という職業「以外」で行うシステムが必要でした。
ただこれ、
どれだけMODを調べても出てこない….!!!!
日本語検索だと基本ひっかからないので、ひたすら英語で
「FiveM privatedoctor script」
「FiveM doctor script」
「FiveM medical treat」
などとかたっぱしから調べていました。
結果、見つからず。
どれだけ探しても見つからないのであれば
疑似的につくってしまえばいいのでは…?
プログラミング経験もない無知なりのひらめきでした。
■実際にやったこと
簡単に言うと、使用している救急隊のスクリプトを一部書き加えただけです。
・個人医にする職業を作る
・救急隊スクリプトで制御している、医療ツールを使用出来る職業を増やす
・通知を鳴らす設定を、ジョブ名を個人医で複製する
こんなもんです。
当時私が使っていた救急隊スクリプトは「qb-ambulancejob」でした。(無料のヤツ)
ちなみに今は「wasabi-ambulance」を使用していますが、こちらでも似たように通知設定を複製させて疑似的に個人医を作り出しています。
大手サーバーは自作MODが多く、探しても見つからないことが多くて真似をするのも一苦労ですね;;
はじめまして。私はプライベートでFiveMサーバーを建て遊んでいる者です。
個人医のスクリプトを探し求め、こちらのブログに辿り着きました。
現在、qb-ambulancejobを使っており、wasabi-ambulanceは購入したものの導入はしておりません。
どうしても個人医というジョブを作ってみたいのですが、アドバイスいただけないでしょうか。
いきなりの訪問で不躾なお願いをお許しください。
どうかよろしくお願い致します。
はじめまして、コメントありがとうございます!
個人医のスクリプトは探してもなかなか見つかりませんよね…
私がやった具体的な内容としては
①qb-ambulancejobの通知設定をコピペ
②ジョブがambulance限定になっているので個人医のジョブ名に書き換え
③コマンドの作成(/911eなどで救急隊を呼べるので、同じように個人医用にコピペで作成)
④qb-ambulancejobの場合、アイテムの使用可能ジョブの制限もあるのでこちらも変更
これで疑似的に個人医を作成しました。
wasabi-ambulanceの場合、もともと追加で治療可能ジョブ設定が出来るので
config.luaに個人医のジョブ名を書き加えれば④の手順は必要ありません。
参考になれば幸いです!
はじめまして!
同じ様にプログラムで煮詰まってしまいご教授いただけないかと思い投稿しました。
問題点として
現在wasabi-ambulanceを使用しているのですが
qbもwasabiも通知設定の部分がどこにあるのか見つからず
頭がパンクしてます
何処にあるのかだけでも教えてはいただけないでしょうか
コメントありがとうございます、通知部分についてですね。
qb-ambulancejob/client/main.luaと
qb-ambulancejob/server/main.lua部分にあるambulanceAlertについての記述をコピーしてください。
貼り付け先はそれぞれ
wasabi_ambulance/game/client/cl_customize.lua
wasabi_ambulance/game/server/sv_customize.luaです。
使用バージョンによってもファイルの階層は異なってくるのであくまでも私の環境ではこの場所だということをご了承下さい。
wasabi_ambulanceを使っているのですが、Gを押して病院に連絡するなどがデフォルトのやつで設定できていますが、追加で E を押して個人医を要請みたいな行を追加したいです。どうやるとかご教授いただければ幸いです!
localesフォルダにある、使用言語のファイルを開き「distress_send」と検索してください。
そこに、救急隊を呼ぶ記述と同じように個人医を呼ぶを書き足せば表示されます。
こんにちは!参考にさせていただいております!
③コマンドの作成(/911eなどで救急隊を呼べるので、同じように個人医用にコピペで作成)
ここがよくわからず、できればご教示いただけますでしょうか?
一応現在wasabi_ambulanceを使っていてqb-ambulancejobからいろいろ流用するところまではやりました!
よろしくお願いいたします
「QBCore.Commands.Add」とqb-ambulance内(おそらくserver.luaとかにある)で検索して頂くと、911eのコマンドについて書かれている部分があります。
同じように、入力させたいコマンド、表示する文字、ジョブの指定などを書き換えて下さい。
あとはTriggerClientEventで呼び出す関数の名前を指定すれば完了です。
呼び出す関数については、色々流用された後とのことなので、クライアント側に記述のあるhospital:client:ambulanceAlertのパクりを個人医用に作成すればOKです。
hospital:client:ambulanceAlertがその関数の名前なので、似たような感じでhospital:client:privateDoctorなどで複製し、ジョブ指定などを個人医のジョブ名に変えるなどカスタムしてください。
エンジニアなどではないので本当に助かっています
Eを押して個人医に と言う表示を追加する際にEを押すと個人医に通知を出す結び付けはどうされてますでしょうか?
よくわかってない初心者の質問ですみません・・・
途中で送ってしまいましたすみません・・・
Gを押すと救急にシグナルを送るようになっていて、これに表示でEを押すと個人医にシグナルを送るように表示させて
Gを押したときは救急だけ、Eを押すと個人医だけに振り分けたいのですが
elseif Config.phoneDistress == ‘lb’ then
local jobs = Config.ambulanceJobs or Config.ambulanceJob
if jobs and type(jobs) == ‘table’ then
for i = 1, #jobs do
exports[“lb-phone”]:SendCompanyMessage(jobs[i], ‘Unconscious person’)
exports[“lb-phone”]:SendCompanyCoords(jobs[i])
当方LBphoneなので上記の部分でシグナルを振り分けるように変更するという事でしょうか?
どのようにされているかお伺いできればありがたいです!
その部分はスマートフォンに通知を鳴らすための記述なので、マップにシグナル表示をするための記述とは異なります。
押すキーを変えて送るジョブを変更したい場合、私の場合はqb-ambulancejobからambulanceAlertに関する記述を引っ張ってきています。
RegisterNetEvent(‘hospital:client:ambulanceAlert’, function~という記述がqb-ambulanceにあるので、それを個人医用に作り替えてペーストします。
サーバー側も同様に、RegisterNetEvent(‘hospital:server:ambulanceAlert’, function~の部分を引用しています。
書き込み失礼いたします。
こちらの記事大変お世話になっております。
sv_customize.luaに下記を追記しました。
※cl側も同様
RegisterNetEvent(‘wasabi_ambulance:privateDoctor’, function(text)
local src = source
local ped = GetPlayerPed(src)
local coords = GetEntityCoords(ped)
local players = QBCore.Functions.GetQBPlayers()
for _, v in pairs(players) do
if v.PlayerData.job.name == ‘privateDoctor’ and v.PlayerData.job.onduty then
TriggerClientEvent(‘hospital:client:privateDoctor’, v.PlayerData.source, coords, text)
end
end
end)
こちらのイベントは、ダウン時に特定のキーを押した場合に起動する認識ですが、どこの処理が呼び出し元となっているか紐づけの理解ができず…
大変恐縮ですがご教示いただけましたら幸いです。
よろしくお願いいたします。
コメントありがとうございます。
このprivateDoctorの関数自体はプレイヤーの位置や情報を取得して、もし個人医が出勤状態だったらクライアント側のイベントをトリガーする」という内容なので、
紐づけされる処理は、「キーを押したときにこの関数(送って頂いている関数)を実行する」という処理の部分と、「個人医側に送る通知(音やマーカーの表示など)に関する処理」などになってくるかと思われます。
具体的にどこに何があり、追記した文をどこに書かれているのか、ファイルが見えるわけではないので分かりかねますが
呼び出し元を見つけたい場合、この関数の名前(privateDoctor)で、クライアントやサーバー内で文字列検索をかけるのが一番手っ取り早いかと思います。
初めまして。こちらの記事大変お世話になっております!
任意のボタンを押下して個人医のみに連絡したい場合、hospital:client:privateDoctorのようなイベントをボタン押下で呼び出せればよい認識です。
「このボタンを押せばこの関数が呼ばれる」のような設定はどちらに記述すればよいのでしょうか…
job自体もqb-core>sharedにある一覧に個人医ジョブを追加してます。
お忙しいところ恐縮ですが、ご教示いただければ幸いです。
よろしくお願いいたします!
バラバラのものを継ぎ足して1つの仕組みを作っているような感じなので、ボタン押下で呼び出す処理については2つの部品で成り立っているイメージです。
①Eを押せばマーカーや音が鳴る仕組み(クライアント側に記述)
②ダウン状態であるかを確認し、プレイヤーの場所や情報を取得し、個人医の出勤状態を確認し、個人医がいる場合にEが押されたらは①を実行する(サーバー側に記述)
はじめまして。最初の個人医としてのジョブを作成する段階でつまずいてしまい、自分でも調べてみたのですが、解決できないのでご教示いただけますと幸いです。
QBを使用しているのであればですが
ジョブの作成はqb-coreのsharedのjob.luaに記載することで、新規ジョブの作成が可能です。
ありがとうございます。試してみます