hasankortak
üye
- Katılım
- 23 Tem 2021
- Mesajlar
- 430
- Konu Yazar
- #1
Merhaba,
Daha önce ClientSide ve ServerSide ın nasıl optimize edilebileceğini anlattığım bir konum vardı
ancak anlatımımın yetersiz olduğunu düşündüm ve bu konuyu açtım.
Yapacağımız Optimizasyonun Olayı Ne ?: Kod veya kod bloklarını belirlediğimiz mesafe/eylem/olay gibi tetikleyicilerin optimizasyon için kullanacağız. Kısaca event dolayısıyla kodu aktif edeceğiz.
Nasıl Yapılır ? ;
Göreceğiniz örnekte yapacağım optimizasyonu "DrawMarker" Nativesi üzerinde kullanacağım.
DrawMarker nativesi resmon değerlerini fazlasıyla etkilemektedir
methodumu mesafe yi kullanarak uygulayacağım. Eğer oyuncu (client) Marker ın olduğu konumda belirli bir uzaklıkta bulunuyor ise Marker ı sileceğim
İlk olarak kodlarımı yazmamda bana yardımcı olması için local operatörünü kullanacağım. PlayerPedId() veya GetPlayerPed(-1) oyuncuyu temsil etmektedir
ancak yazımları fazlasıyla uzun ve bu beni rahatsız ediyor. Optimize edeceğim Client Scriptini (dosyasını) Açtım ve en üst satıra
Ruby:
local player = PlayerPedId()
Kodunu yerleştiriyorum...
Önemli : PlayerPedId() Oyuncu girdikçe kendini güncellemektedir ancak GetPlayerPed(-1) Limitsiz oyuncu gibi anlama gelir dolayısıyla Kesinlikle PlayerPedId() kullanın (çok bi fark yok)
Dediğim gibi DrawMarker (marker oluşturmak) ı optimize edecektik.
**DrawMarker döngü içerisinde kullanılan bir native dir aksi taktirde çalışmaz**
DrawMarker in bulunduğu döngün içerisine
Kod:
Ruby:
local playerLoc = GetEntityCoords(player)
Kodunu yerleştiriyorum. Bu sunucuda bulunan oyuncuların kordinatlarını almaktadır.
!! Ve DrawMarker in bulunduğu satırın bir üstüne bir kod yazıyorum
Kod:
C++:
if GetDistanceBetweenCoords(playerLoc.x, playerLoc.y, playerLoc.z, 1011.34, -692.64, 56.97, true) < 20 then
(( playerLoc.<veri> "." dan sonra playerLoc içerisindeki almak istediğimiz veri ye ulaşıyoruz, sondaki "20" metre cinsinden mesafeyi temsil ediyor ))
ve DrawMarker ın altına "end" ekliyoruz.
Örnek :
GetDistanceBetweenCoords Nativesinin Parametrelerini BURADAN İnceleyebilirsiniz
Başka Örnekler :
Bu sefer "mesafe" dışında başka birşey kullanalım...
Mesela oyuncu "X" Tuşuna basar ise Marker oluşsun. Bunun için IsControlPressed Nativesini kullanacağız
Herşeyden önce "X" Tuşunun INDEX yani Buton koduna ulaşmamız gerekiyor
Ulaşabiliriniz (X in kodu 73)
Native in parametrelerine göz atmak için IS_CONTROL_PRESSED
Hızlı hızlı yapıyorum mantığını kavradığınızı düşünerek direkt olarak örnek vereceğim
Şimdi ise "X" tuşu kullanıldığında Marker oluşuyor
Verilebilecek çok fazla örnek var. Verdiklerimin Optimizasyonun mantığını kavratacağını düşünüyorum sizlere
Aklınıza takılan biryer olursa yorumlarda çekinmeden paylaşabilirsiniz
Daha önce ClientSide ve ServerSide ın nasıl optimize edilebileceğini anlattığım bir konum vardı
ancak anlatımımın yetersiz olduğunu düşündüm ve bu konuyu açtım.
Yapacağımız Optimizasyonun Olayı Ne ?: Kod veya kod bloklarını belirlediğimiz mesafe/eylem/olay gibi tetikleyicilerin optimizasyon için kullanacağız. Kısaca event dolayısıyla kodu aktif edeceğiz.
Nasıl Yapılır ? ;
Göreceğiniz örnekte yapacağım optimizasyonu "DrawMarker" Nativesi üzerinde kullanacağım.
DrawMarker nativesi resmon değerlerini fazlasıyla etkilemektedir
methodumu mesafe yi kullanarak uygulayacağım. Eğer oyuncu (client) Marker ın olduğu konumda belirli bir uzaklıkta bulunuyor ise Marker ı sileceğim
İlk olarak kodlarımı yazmamda bana yardımcı olması için local operatörünü kullanacağım. PlayerPedId() veya GetPlayerPed(-1) oyuncuyu temsil etmektedir
ancak yazımları fazlasıyla uzun ve bu beni rahatsız ediyor. Optimize edeceğim Client Scriptini (dosyasını) Açtım ve en üst satıra
Ruby:
local player = PlayerPedId()
Kodunu yerleştiriyorum...
Önemli : PlayerPedId() Oyuncu girdikçe kendini güncellemektedir ancak GetPlayerPed(-1) Limitsiz oyuncu gibi anlama gelir dolayısıyla Kesinlikle PlayerPedId() kullanın (çok bi fark yok)
Dediğim gibi DrawMarker (marker oluşturmak) ı optimize edecektik.
**DrawMarker döngü içerisinde kullanılan bir native dir aksi taktirde çalışmaz**
DrawMarker in bulunduğu döngün içerisine
Kod:
Ruby:
local playerLoc = GetEntityCoords(player)
Kodunu yerleştiriyorum. Bu sunucuda bulunan oyuncuların kordinatlarını almaktadır.
!! Ve DrawMarker in bulunduğu satırın bir üstüne bir kod yazıyorum
Kod:
C++:
if GetDistanceBetweenCoords(playerLoc.x, playerLoc.y, playerLoc.z, 1011.34, -692.64, 56.97, true) < 20 then
(( playerLoc.<veri> "." dan sonra playerLoc içerisindeki almak istediğimiz veri ye ulaşıyoruz, sondaki "20" metre cinsinden mesafeyi temsil ediyor ))
ve DrawMarker ın altına "end" ekliyoruz.
Örnek :
GetDistanceBetweenCoords Nativesinin Parametrelerini BURADAN İnceleyebilirsiniz
Başka Örnekler :
Bu sefer "mesafe" dışında başka birşey kullanalım...
Mesela oyuncu "X" Tuşuna basar ise Marker oluşsun. Bunun için IsControlPressed Nativesini kullanacağız
Herşeyden önce "X" Tuşunun INDEX yani Buton koduna ulaşmamız gerekiyor
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
Native in parametrelerine göz atmak için IS_CONTROL_PRESSED
Hızlı hızlı yapıyorum mantığını kavradığınızı düşünerek direkt olarak örnek vereceğim
Şimdi ise "X" tuşu kullanıldığında Marker oluşuyor
Verilebilecek çok fazla örnek var. Verdiklerimin Optimizasyonun mantığını kavratacağını düşünüyorum sizlere
Aklınıza takılan biryer olursa yorumlarda çekinmeden paylaşabilirsiniz