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

Günlük veya Saatlik Meslek Değiştirme Limiti/Kısıtlaması

severus07

Üye
FT Kullanıcı
Katılım
4 yıl 9 ay 10 gün
Mesajlar
233
Merhaba arkadaşlar, benim aradığım şey günlük veya belli bir saat aralığı ile meslek değiştirme limiti. Yani mesela ben saat 12.00 da mesleğimi değiştirdim, birdaha meslek değişimini en az 5 saat sonra yapabileyim. Bunu fivem forumunda da sordum bir arkadaş sağolsun cevapladı, söylediği şey mantıklı ve aslında işine hakim birisi için basit gibi duruyor ama ben daha önce hiç böyle birşey yapmadığım için nasıl yaparım nerden nasıl başlarım bilmiyorum. Acaba bu bahsettiğim eklentiyi, bu arkadaşın söylediği gibi veya kendine has yöntemlerle yapacak ve paylaşabilecek biri var mı? Heryerde aradım fakat böyle bir paylaşım yok. Eğer bu tarz bişey yapabilirseniz forumdaki diğer kullanıcılar içinde çok faydası dokunacağını düşünüyorum. Çünkü meslekler konusunda farklı planlar geliyor aklıma fakat bu meslek değiştirme sınır olmadığı için çok fazla abuse edilmeye müsait durumda oluyor. Bu meslek değiştirme sınırını ayarlayabilirseniz eğer birçok yeniliğinde önünü açacaktır diye düşünüyorum. Teşekkürler şimdiden.

2217
 
Bunu cron scriptiyle yapabilir miyim peki? Meslek aldığında bir değer 1 olur örnek veriyorum, meslek alırken if ile eğer 1 se aldırmayıp uyarı verir. Cron da günün belli bir saati o değeri herkes için 0 yapsa ? Böyle birşey yapılabilir mi, nasıl yapılır?
 
Şöyle olabilir. Job tablosuna tarih kısmı ekle.
Oyuncu işi aldığında tarihi oraya eklet. Sonra oyuncu menüyü açtığında veri tabanından jobları çektiği sql'e where ekleyip tarih bu günden farklı ise işleri çek gibi bir kısım ekleyebilirsin. Böylelikle liste çekilemeyecek oyuncu job değişemeyecek. Bu sadece basit bir mantık.
 
Şöyle olabilir. Job tablosuna tarih kısmı ekle.
Oyuncu işi aldığında tarihi oraya eklet. Sonra oyuncu menüyü açtığında veri tabanından jobları çektiği sql'e where ekleyip tarih bu günden farklı ise işleri çek gibi bir kısım ekleyebilirsin. Böylelikle liste çekilemeyecek oyuncu job değişemeyecek. Bu sadece basit bir mantık.
Benimde ben başta aklımda bu vardı ama oyuncu mesleği aldığınızda bugünün tarihini databaseye nasıl gönderecem? Usersta lastJobUpdated diye bir alan açtım. Buraya o günün tarihini nasıl gönderecem ve sonrasında tekrar meslek almaya çalıştıklarında o anki tarih ile updated tarih arasındaki farkı nasıl bulacam basit bir çıkarma işlemiyle olmaz gibi geliyor.
 
job tablosuna tarih kismi ekleyemezsin yeni bir table acman gerekir. Bunun icin oraya update soygusuyla script icinden parametre alarak gonderebilirsin. O tarih arasinda farki nasil bulma konusuna gelirsen sql in bir ozelligi olan TIMESAMP functionu tam bu islik oradan where kosulu ile tarih sorgulamasi yapabilirsin. Mesela where (currentime-time)>6 gibi oradaki degerler saat olacak tabiki
 
Bu arada meslege gunluk ne kadar yapacagina nasil sinir konulur fikri olan ? :D
 
job tablosuna tarih kismi ekleyemezsin yeni bir table acman gerekir. Bunun icin oraya update soygusuyla script icinden parametre alarak gonderebilirsin. O tarih arasinda farki nasil bulma konusuna gelirsen sql in bir ozelligi olan TIMESAMP functionu tam bu islik oradan where kosulu ile tarih sorgulamasi yapabilirsin. Mesela where (currentime-time)>6 gibi oradaki degerler saat olacak tabiki
benim istediğim şey aslında tarih atamasınada gerek yok bassit bir sistem olsa ssadece saati yazsa örnek veriyorum 14, sonra direk düz hesap o anki saatler lastupdate saatini çıkarssın fark örnek veriyorum 5 ten fazlaysa izin versin. Sadece saati dataya nasıl göndertebilirim ona aşırı kafam karışıyor yardımcı olur musunuz?
 
RegisterServerEvent('esx_jobs:startWork')

Bu event trigerlandiginda tanimlanmis degeri 1 arttirsa sql uzerinden cron sayesinde 00:00'da sifirlansa sanirim olur
 
benim istediğim şey aslında tarih atamasınada gerek yok bassit bir sistem olsa ssadece saati yazsa örnek veriyorum 14, sonra direk düz hesap o anki saatler lastupdate saatini çıkarssın fark örnek veriyorum 5 ten fazlaysa izin versin. Sadece saati dataya nasıl göndertebilirim ona aşırı kafam karışıyor yardımcı olur musunuz?
Tabiki hemen deniyorum.
 
RegisterServerEvent('esx_jobs:startWork')

Bu event trigerlandiginda tanimlanmis degeri 1 arttirsa sql uzerinden cron sayesinde 00:00'da sifirlansa sanirim olur
evet buda olabilir crona 00 da değeri sıfırla komutunu nasıl verebiliriz peki? Bide işleyişte bir sıkıntı olurda bazı oyuncuların değeri 1 kalma gibi bi ihtimal varmı oda şüphede bırakıyordu beni. Oyuzden direk saatler arası fark daha sağlam olur gibi geldi.
 
Cron için sql'e gerek yok aslında. Bi değişken ata bu true olsun. Kişi job seçtiğinde bu değeri false yap cron ile bi fonksiyon oluştur. Saat belirle o saat geldiğinde değere true olsun. Böylede db'yi yormadan hızlı ve optimize şekilde istediğine ulaşabilirsinz. Tabii oluşturduğun değer true ise sadece job listelensin diye ekleme yapman gerekiyor.
 
Cron için sql'e gerek yok aslında. Bi değişken ata bu true olsun. Kişi job seçtiğinde bu değeri false yap cron ile bi fonksiyon oluştur. Saat belirle o saat geldiğinde değere true olsun. Böylede db'yi yormadan hızlı ve optimize şekilde istediğine ulaşabilirsinz. Tabii oluşturduğun değer true ise sadece job listelensin diye ekleme yapman gerekiyor.
Peki kişi seçtiğinde false olduğunda herkesi etkilemez mi bu? Yani o false un kişiye özel olması lazım. Bunu nasıl sağalyabilirim datayı kullanmadan?
 
Clinet side'da tutarsan o kişiye ait olur sadece
 
Client Side nasıl oluyor bilmiyorumda ozamanda oyunu kapat aç yaptığında sıfırlama gibi bir durum olmaz değil mi?
Client side evet öyle olur. O zaman server side tarafında array tutacaksın kişinin identifier ve true false olayını tutucan.
 
Client side evet öyle olur. O zaman server side tarafında array tutacaksın kişinin identifier ve true false olayını tutucan.
peki bunun komutu nedir onu söyleyebilir misin örnek veriyorum users de jobselected diye bir table açtım, buraya adam mesleği seçtiğinde sejob komutunun altına birde databasede jobselected kısmına true gönder komutu, tabi bide bunun öncesinde adam mesleği seçerken önce if jobselected true, show notification vs. ayarlayacam. Database ile bağlantılı olan kısımları, databaseye bilgi gönderme ve bilgi alma kısımlarını nasıl yapacağımı bilmiyorum o konuda yardımcı olabilir misiniz veya öğrenebileceğim anlatılan bir kaynak var mı?
 
xPlayer = GetPlayerIdentifier gibi bir function bulunuyordu onunla kisiler uzerinden islem yapabilirsin oyuncunun bilgilerini alarak
 
Biri şu komutla users daki jobselected kısmına true yollarsın, şu komutla databaseden jobselected değerini çekersin diye yazabilirse çok güzel olur.
 

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!