Neler yeni

Foruma hoş geldin, Ziyaretçi

Forum içeriğine ve tüm hizmetlerimize erişim sağlamak için foruma kayıt olmalı ya da giriş yapmalısınız. Foruma üye olmak tamamen ücretsizdir.

Türkiye'nin İlk ve tek FiveM forum adresi

Forum adresimize hoş geldin FiveMTürk olarak amacımız siz değerli kullanıcılarımıza en aktif fikir ve paylaşım platformu sunmak bir yana en güvenilir şekilde alışveriş yapabileceğiniz bir platform sunmaktır.
DF DF
DF DF
DF DF

Soru (Soru) Bir Blip'i Sadece Bir Mesleğin Görmesini Nasıl Sağlayabilirim ?

oyunnesli

Üye
FT Kullanıcı
Katılım
4 yıl 29 gün
Mesajlar
38
Bir Blip'i Sadece Bir Mesleğin Görmesini Nasıl Sağlayabilirim ? Galeride Araç Alma Blipi Var Bütün Userler Görüyor Sadece Bir Jobs Un O Blipi Görmesini Nasıl Sağlayabilirim ?
 
Esx_vehicleshop config dosyasınin 4 veya 5 satır olmasi lazim true yaparsan sadece cardealer mesleği olanlar görür.
 
Konu taşındı.
 
Blip diye bahsettiğin şeyin adı marker. Sadece jobu olan kişiler görsün istiyorsan config içerisinden playermanagement seçeneğini true yapman gerek.
 
Öncelikle marker ve blip farkını açıklayayım.
* Marker oyun içinde gördüğünüz kırmızı, mor küçük dairesel alanlardır. Buralarda "e" tuşu (veyahut atanan herhangi bir tuş ile) etkileşime girilip scriptler kullanılabilir.

* Blip'ler ise haritada ilgili etkileşim yerlerinin simgesel olarak işaretlenmesidir.


Konu marker üzerine olduğu için örnek bir marker kodlaması paylaşacağım;

Marker'ımızı local Locations olarak tanımladıktan sonra koordinatlarını belirtmemiz gerekir.

local Locations = {

["Markers"] = {
["Lokasyon1"] = { ["x"] = -koordinat, ["y"] = -koordinat, ["z"] = koordinat, ["Info"] = "[E] ~g~Etkileşim" },
["Lokasyon2"] = { ["x"] = -koordinat, ["y"] = -koordinat, ["z"] = koordinat, ["Info"] = "[E] ~g~Etkileşim" },
["Lokasyon3"] ={ ["x"] = -koordinat, ["y"] = -koordinat, ["z"] = koordinat, ["Info"] = "[E] ~g~Etkileşim" },
["Satis"] = { ["x"] = -koordinat, ["y"] = -koordinat, ["z"] = koordinat, ["Info"] = "[E] ~g~Sat" },
["Satinalim"] = { ["x"] = -koordinat, ["y"] = -koordinat, ["z"] = koordinat, ["Info"] = "[E] ~g~Satin al" }
}

Marker lokasyonlarını belirttikten sonra karakter fonksiyonu eklememiz gerekiyor. Karakter lokasyonu ile marker lokasyonu eşleşince (üst üste, aynı konumda bulununca) Marker'ın gözükmesini istiyoruz. Ayrıca etkileşimimiz varsa bunu client dosyasında (script çalışması açısından) belirtmemiz gerekir.

Citizen.CreateThread(function()


##Haritadaki yerini göstermek için blip bilgilerini ekliyoruz.##

local Blips = Locations["Blips"]

for spot, val in pairs(Blips) do
local BlipInformation = val

local Blip = AddBlipForCoord(BlipInformation["x"], BlipInformation["y"], BlipInformation["z"])
SetBlipSprite(Blip, BlipInformation["sprite"])
SetBlipDisplay(Blip, 4)
SetBlipScale(Blip, 0.8)
SetBlipColour(Blip, 0)
SetBlipAsShortRange(Blip, true)
BeginTextCommandSetBlipName("STRING")
AddTextComponentString(BlipInformation["title"])
EndTextCommandSetBlipName(Blip)
end

Citizen.Wait(0)


##Yukarısı haritadaki blipler alakalı##

while true do

local sleep = 500

local ped = PlayerPedId()
local coords = GetEntityCoords(ped) --Karakter koordinatını coords olarak tanımlamış.

for place, v in pairs(Locations["Markers"]) do

local dstCheck = GetDistanceBetweenCoords(coords, v["x"], v["y"], v["z"], true)

if dstCheck <= 5.0 then
sleep = 5
DrawM(v["Info"], 27, v["x"], v["y"], v["z"]) --Marker çizer.
if dstCheck <= 1.5 then
if IsControlJustPressed(0, Keys["E"]) then --keyler tanımlandıysa "e" şeklinde yazılabilir.
print(place)
StartAction(place)
end
end
end

end
Citizen.Wait(sleep)
end)



Yukarıda " DrawM " function'ını açıklamamız lazım.

function Draw3DText(x, y, z, text) --İlgili marker'a 3 boyutlu text eklemek için.
local onScreen, _x, _y = World3dToScreen2d(x, y, z)
local p = GetGameplayCamCoords()
local distance = GetDistanceBetweenCoords(p.x, p.y, p.z, x, y, z, 1)
local scale = (1 / distance) * 2
local fov = (1 / GetGameplayCamFov()) * 100
local scale = scale * fov
if onScreen then
SetTextScale(0.0*scale, 0.35*scale)
SetTextFont(0)
SetTextProportional(1)
SetTextColour(255, 255, 255, 255)
SetTextDropshadow(0, 0, 0, 0, 255)
SetTextEdge(2, 0, 0, 0, 150)
SetTextDropShadow()
SetTextOutline()
SetTextEntry("STRING")
SetTextCentre(1)
AddTextComponentString(text)
DrawText(_x,_y)
end
end

function DrawM(hint, type, x, y, z) --DrawM function açılımı
ESX.Game.Utils.DrawText3D({x = x, y = y, z = z + 1.0}, hint, 0.4)
DrawMarker(type, x, y, z, 0.0, 0.0, 0.0, 0, 0.0, 0.0, 2.0, 2.0, 2.0, 255, 255, 255, 100, false, true, 2, false, false, false, false)
end



Eğer marker'ları sadece belirli job sahiplerinin görmesini istiyorsanız;
if ESX.PlayerData.job and ESX.PlayerData.job.name == 'meslek grubu' then --Bu kısım meslek grubuyla eşleştirir marker'ı.
local playerPed = PlayerPedId()
local playerCoords = GetEntityCoords(playerPed)

şeklinde "local olarak player Ped ile koordinatların(coords) tanımlarının üstüne eklemeniz gerekir. Benim yazdığım yazıda ise bu kısım (((##Yukarısı haritadaki blipler alakalı## ))) hemen altında bulunuyor. İf seçeneğini eklediğinizde eğer belirlediğiniz job grubuyla karakterin job'ı eşleşirse (aynıysa) Function yani script başlayacaktır.

Umarım açıklayıcı olabilmişimdir. Durum açısından öğretici olmak istedim ki insanlar kendileri bir şeyler yazıp ekleyebilsin, hazırcı olmasınlar diye.
 

Forumdan daha fazla yararlanmak için giriş yapın yada üye olun!

Forumdan daha fazla yararlanmak için giriş yapın veya kayıt olun!

Kayıt ol

Forumda bir hesap oluşturmak tamamen ücretsizdir.

Şimdi kayıt ol
Giriş yap

Eğer bir hesabınız var ise lütfen giriş yapın

Giriş yap

Bu konuyu görüntüleyen kullanıcılar

Tema düzenleyici

Tema özelletirmeleri

Granit arka planlar

Lütfen Javascript'i etkinleştirin!Javascript'i etkinleştirin!