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

Rehber FiveM Lua Üzerinden Script Yapmak

hasannnnn

Üye
FT Kullanıcı
Katılım
4 yıl 26 gün
Mesajlar
931
Anlatacağım şeyler fivem script yazma konusunda sizi bir adım daha ilerletebilir.
Threadlar;
Örnek 1 -

Kod:
Citizen.CreateThread(function()

     -- code

end)
Oyuncu client taraflı oyuna bağlandığı zaman tek taraflı olarak kod çalışır.Sürekli olarak çalışmaz.Fivemde çoğunlukla ped veya blip create kodları için kullanılır.
Örnek 2 -
Kod:
Citizen.CreateThread(function()
   while true do -- while ESX == nil do -- while playerinjail == true do
        Citizen.Wait(1)
   end
end)
Oyuncu client taraflı oyuna bağlandığı zaman döngüyü sona erdirmenize kadar çalışır.
Eventler;
--client
Kod:
RegisterNetEvent('asd')
AddEventHandler('asd',function()
 
end)
--server
Kod:
RegisterServerEvent('asd)
AddEventHandler('asd',function()

end)
Event Trigger ve Eventlerin Fonksiyon Kullanımları;
Kod:
-- client
RegisterCommand('txt',function(args,raw)
   local komut1 = args[1] -- kişinin /txt yazdıktan bir sonraki capslockundaki kelimeyi algılattım
   local komut2 = args[2] -- kişinin /txt yazdıktan iki sonraki capslockundaki kelimeyi algılattım
   TriggerServerEvent('test',komut1,komut2) --server side'a göndermemiz için iki değeride virgülle ayırıp yazdım
end)
--server
RegisterServerEvent('test')
AddEventHandler('test',function(a,b) -- clientten server side'ye gönderdiğim değerleri server side'de fonksiyonun içine yazdım.(Değerlerin isminin aynı olmasına gerek yok)
   print(a,b)
end)

Client ve Server Side Export Alma
Client

Kod:
local dead = false
AddEventHandler('esx:onPlayerDeath', function()
    dead = true
end)
IsPlayerDead = function()
   return dead
end
Kod:
local ispeddead = exports.scriptismi:IsPlayerDead()  -- size true veya false değerini verecektir.
           if ispeddead then --
           else
           end
Scriptin fxmanifest veya __resource tarafına aşağıdaki kodu yazmanız yeterli olacaktır.
Kod:
exports {
   'fonksiyonismi' --bendeki IsPlayerDead
}
Server
Kod:
exports("kickplayer", function(source,reason)
       DropPlayer(source,'Sunucudan Kicklendiniz \n Sebep = '..reason) -- kişiyi  sebebini bildirerek sunucudan kickledim
end)
Kullanımı;
Kod:
RegisterCommand('kickplayer',function(source,args,raw)
    local playerId = tonumber(args[1]) -- kişinin komutu yazdıktan sonraki ilk kelimesini kicklenecek kişinin idsi olarak algılamasını yazdım.
    local reason = args[2]
    exports['scriptismi']:kickplayer(playerId,reason)
end)
for döngüsü
For döngüsünün içine yazdığınız değer boş bir değer veya nil ise döngüyü çalıştırmaz ve hata verir.
Kod:
local table = {}
for i,j in pairs(table) do
   -- döngü çalışmaz
end
local table2 -- herhangi bir değer vermedim o yüzden table2 = nil
for k,v in pairs(table2) do
    -- hata
end
Break;
Yaptığınız işlemi kırmaya yarar çoğunlukla for döngülerinde kullanılır.
Return;
Kod:
local identifiers = { --tablomu oluşturdum
    'hasan1',
    'hasan2',
    'hasan3',
    'hasan4'
}
GetPlayerIdent = function(ident)  -- fonksiyonun içine ident yazdım
   for i,j in pairs(identifiers) do --identifiers için for döngümü başlattım
      if j == ident then   -- j bana identifiers tablomun içindeki değerleri veriyor.İçindeki değerlerin biri benim fonksiyonun içindeki 'ident' değeriyle eşit mi değil mi kontrolünü yapıyorum.
         return true -- true olarak dönmesini sağlıyorum
      end
   end
   return false --eğer döngünün içinde true olarak dönerse kod aşağıya inemeyeceği için false değerine ulaşamaz.
end

RegisterCommand('hasan',function()
   local identifier = GetPlayerIdent('hasan1')
   local identifier2 = GetPlayerIdent('asdasd1')
   print(identifier) -- bize true  verecek
   print(identifier2) -- false verecek
end)
Biraz mala anlatır gibi oldu
Aklıma geldikçe konuyu güncel tutmaya çalışacağım.​
 
ADAM YA ADAM
 
Çok güzel olmuş çoğu kişinin işine yarayacaktır.
 
Başarılı ve anlaşılır rehber, Ellerine sağlık.
 
Başarılı Bir Rehber Olmuş Ellerine Sağlık Çoğu Kişinin İşine Yarar Umarım
 
Anlatacağım şeyler fivem script yazma konusunda sizi bir adım daha ilerletebilir.
Threadlar;
Örnek 1 -

Kod:
Citizen.CreateThread(function()

     -- code

end)
Oyuncu client taraflı oyuna bağlandığı zaman tek taraflı olarak kod çalışır.Sürekli olarak çalışmaz.Fivemde çoğunlukla ped veya blip create kodları için kullanılır.
Örnek 2 -
Kod:
Citizen.CreateThread(function()
   while true do -- while ESX == nil do -- while playerinjail == true do
        Citizen.Wait(1)
   end
end)
Oyuncu client taraflı oyuna bağlandığı zaman döngüyü sona erdirmenize kadar çalışır.
Eventler;
--client
Kod:
RegisterNetEvent('asd')
AddEventHandler('asd',function()

end)
--server
Kod:
RegisterServerEvent('asd)
AddEventHandler('asd',function()

end)
Event Trigger ve Eventlerin Fonksiyon Kullanımları;
Kod:
-- client
RegisterCommand('txt',function(args,raw)
   local komut1 = args[1] -- kişinin /txt yazdıktan bir sonraki capslockundaki kelimeyi algılattım
   local komut2 = args[2] -- kişinin /txt yazdıktan iki sonraki capslockundaki kelimeyi algılattım
   TriggerServerEvent('test',komut1,komut2) --server side'a göndermemiz için iki değeride virgülle ayırıp yazdım
end)
--server
RegisterServerEvent('test')
AddEventHandler('test',function(a,b) -- clientten server side'ye gönderdiğim değerleri server side'de fonksiyonun içine yazdım.(Değerlerin isminin aynı olmasına gerek yok)
   print(a,b)
end)

Client ve Server Side Export Alma
Client

Kod:
local dead = false
AddEventHandler('esx:onPlayerDeath', function()
    dead = true
end)
IsPlayerDead = function()
   return dead
end
Kod:
local ispeddead = exports.scriptismi:IsPlayerDead()  -- size true veya false değerini verecektir.
           if ispeddead then --
           else
           end
Scriptin fxmanifest veya __resource tarafına aşağıdaki kodu yazmanız yeterli olacaktır.
Kod:
exports {
   'fonksiyonismi' --bendeki IsPlayerDead
}
Server
Kod:
exports("kickplayer", function(source,reason)
       DropPlayer(source,'Sunucudan Kicklendiniz \n Sebep = '..reason) -- kişiyi  sebebini bildirerek sunucudan kickledim
end)
Kullanımı;
Kod:
RegisterCommand('kickplayer',function(source,args,raw)
    local playerId = tonumber(args[1]) -- kişinin komutu yazdıktan sonraki ilk kelimesini kicklenecek kişinin idsi olarak algılamasını yazdım.
    local reason = args[2]
    exports['scriptismi']:kickplayer(playerId,reason)
end)
for döngüsü
For döngüsünün içine yazdığınız değer boş bir değer veya nil ise döngüyü çalıştırmaz ve hata verir.
Kod:
local table = {}
for i,j in pairs(table) do
   -- döngü çalışmaz
end
local table2 -- herhangi bir değer vermedim o yüzden table2 = nil
for k,v in pairs(table2) do
    -- hata
end
Break;
Yaptığınız işlemi kırmaya yarar çoğunlukla for döngülerinde kullanılır.
Return;
Kod:
local identifiers = { --tablomu oluşturdum
    'hasan1',
    'hasan2',
    'hasan3',
    'hasan4'
}
GetPlayerIdent = function(ident)  -- fonksiyonun içine ident yazdım
   for i,j in pairs(identifiers) do --identifiers için for döngümü başlattım
      if j == ident then   -- j bana identifiers tablomun içindeki değerleri veriyor.İçindeki değerlerin biri benim fonksiyonun içindeki 'ident' değeriyle eşit mi değil mi kontrolünü yapıyorum.
         return true -- true olarak dönmesini sağlıyorum
      end
   end
   return false --eğer döngünün içinde true olarak dönerse kod aşağıya inemeyeceği için false değerine ulaşamaz.
end

RegisterCommand('hasan',function()
   local identifier = GetPlayerIdent('hasan1')
   local identifier2 = GetPlayerIdent('asdasd1')
   print(identifier) -- bize true  verecek
   print(identifier2) -- false verecek
end)
Biraz mala anlatır gibi oldu
Aklıma geldikçe konuyu güncel tutmaya çalışacağım.​
mala anlatır gibi oldu ama ben gine bi poh anlamadım ama eline sağlık sorun bende bunu biliyorum.
emeğine sağlık.
 

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!