Polis-Mafya-Kartel-Çete-Doktor | Meslek erişim ayarlamaları

Veins

Paylaşım Ekibi
Katılım
2 Ağu 2019
Mesajlar
211
Tepki puanı
15
Yaş
24

İtibar Puanı:

Merhaba arkadaşlar zaten kodlamayla biraz ilgisi olanlar bu paylaşımı yararlı bulmayabilir fakat ben o diğer kesimi rahatlatmak için böyle bir girişimde bulundum. Size çete,mafya gibi mesleklerde nasıl ayarlama yapılabileceğini göstereceğim. (Yetki ayarlamaları)

Rütbe yetkilerini kullanmak istiyorsanız öncelikle yukarıda local kısımda playerData'yı tanımlamanız gerekicektir. Bu mesleklerde tanımlı olduğu için tekrarda tanımlanması gerekmiyor.

Mesela Çete mesleğinde herkesin aramasını değilde sadece patronun ve sağ kolun aramasını istiyorsunuz. Bunun için client.lua yada client>main.lua'ya giriş yapmanız gerekiyor


if data2.current.value == 'body_search' then --(Kod bloğu menüden body_search seçilip seçilmediğini kontrol ediyor bu sırada biz kontrol mekanizmamızı ekleriz.
OpenBodySearchMenu(player) --(Şart gerçekleştikten sonra üst arama menüsü açıyor)
end


if data2.current.value == 'body_search' and PlayerData.job.grade_name == 'boss' then --(boss yazan yere meslek seviyesinin ismi)
OpenBodySearchMenu(player)
end

if data2.current.value == 'body_search' and PlayerData.job.grade_name == 'consiglere' then --(consiglere yazan yere meslek seviyesinin ismi)
OpenBodySearchMenu(player)
end


Depoyu rütbeye göre ayarlamak istersek
Benim ballas adlı çetemde bulunan sistem bu eğer farklı bir sistem bulunuyorsa sizde ki sanmıyorum ondada yardımcı olabilirim.

if Config.EnableArmoryManagement then

local elements = {
{label = 'Prendre Objet', value = 'get_stock'},
{label = 'Déposer objet', value = 'put_stock'},
{label = _U('get_weapon'), value = 'get_weapon'}),
{label = _U('put_weapon'), value = 'put_weapon'})
}

if PlayerData.job.grade_name == 'boss' then
table.insert(elements, {label = _U('buy_weapons'), value = 'buy_weapons'})
end

Burada patrona ait menülere eklemek istiyorsak yapacağımız işlem şudur virgüllere dikkat edin diğer türlü kodunuz çalışmamasına sebep olabilir. "--" sonrasında yazanları koda dahil etmez yorum satırı haline getirir.


if Config.EnableArmoryManagement then

local elements = {
{label = 'Prendre Objet', value = 'get_stock'},
{label = 'Déposer objet', value = 'put_stock'}
--{label = _U('get_weapon'), value = 'get_weapon'})
-- {label = _U('put_weapon'), value = 'put_weapon'})
}

if PlayerData.job.grade_name == 'boss' then
table.insert(elements, {label = _U('buy_weapons'), value = 'buy_weapons'})
table.insert(elements, {label = _U('get_weapon'), value = 'get_weapon'})
table.insert(elements, {label = _U('put_weapon'), value = 'put_weapon'})
end

Çetelerin üyelerin üstünden ne el koyduğuna bakmak istiyorsanız. Sql log tutabilirsiniz. El koyduğu para,item,silah görüntülenmektedir.

-Server>main.lua açılır

targetXPlayer.removeInventoryItem(itemName, amount)
sourceXPlayer.addInventoryItem (itemName, amount)

-Yukarıdaki kodlardan biri aratılır.
-Aşağıdaki kod bloğu hemen altına yapıştırılır.

MySQL.Async.execute('INSERT INTO ballas (Alan, Tur, Sayi, Kimden)VALUES (@Alan, @Tur, @Sayi, @Kimden) ',
{
['@Alan'] = sourceXPlayer.name,
['@Tur'] = itemName,
['@Sayi'] = amount,
['@Kimden'] = targetXPlayer.name

})


Yani şöyle olacaktır.



if targetItem.count > 0 and targetItem.count <= amount then

-- can the player carry the said amount of x item?
if sourceItem.limit ~= -1 and (sourceItem.count + amount) > sourceItem.limit then
TriggerClientEvent('esx:showNotification', _source, _U('quantity_invalid'))
else
targetXPlayer.removeInventoryItem(itemName, amount)
sourceXPlayer.addInventoryItem (itemName, amount)
TriggerClientEvent('esx:showNotification', _source, _U('you_confiscated', amount, sourceItem.label, targetXPlayer.name))
TriggerClientEvent('esx:showNotification', target, _U('got_confiscated', amount, sourceItem.label, sourceXPlayer.name))

MySQL.Async.execute('INSERT INTO ballas (Alan, Tur, Sayi, Kimden)VALUES (@Alan, @Tur, @Sayi, @Kimden) ',
{
['@Alan'] = sourceXPlayer.name,
['@Tur'] = itemName,
['@Sayi'] = amount,
['@Kimden'] = targetXPlayer.name

})


end
else
TriggerClientEvent('esx:showNotification', _source, _U('quantity_invalid'))
end

-- Bu sadece kimden hangi iteme el koyduğunu bulmak içindir.
-- Kara para takip etmek için bu şekilde yapmamız gerekir. (item_account)

elseif itemType == 'item_account' then
targetXPlayer.removeAccountMoney(itemName, amount)
sourceXPlayer.addAccountMoney (itemName, amount)

TriggerClientEvent('esx:showNotification', _source, _U('you_confiscated_account', amount, itemName, targetXPlayer.name))
TriggerClientEvent('esx:showNotification', target, _U('got_confiscated_account', amount, itemName, sourceXPlayer.name))

MySQL.Async.execute('INSERT INTO ballas (Alan, Tur, Sayi, Kimden)VALUES (@Alan, @Tur, @Sayi, @Kimden) ',
{
['@Alan'] = sourceXPlayer.name,
['@Tur'] = itemName,
['@Sayi'] = amount,
['@Kimden'] = targetXPlayer.name

})

- Silahları takip etmek içinse böyle

elseif itemType == 'item_weapon' then
if amount == nil then amount = 0 end
targetXPlayer.removeWeapon(itemName, amount)
sourceXPlayer.addWeapon (itemName, amount)

TriggerClientEvent('esx:showNotification', _source, _U('you_confiscated_weapon', ESX.GetWeaponLabel(itemName), targetXPlayer.name, amount))
TriggerClientEvent('esx:showNotification', target, _U('got_confiscated_weapon', ESX.GetWeaponLabel(itemName), amount, sourceXPlayer.name))

MySQL.Async.execute('INSERT INTO ballas (Alan, Tur, Sayi, Kimden)VALUES (@Alan, @Tur, @Sayi, @Kimden) ',
{
['@Alan'] = sourceXPlayer.name,
['@Tur'] = itemName,
['@Sayi'] = amount,
['@Kimden'] = targetXPlayer.name

})


end


Aşağıdaki sql sorgusunu databasenizde çalıştırmanız gerekiyor.

CREATE TABLE `ballas` (
`Alan` VARCHAR(50) NULL DEFAULT NULL,
`Tur` VARCHAR(50) NULL DEFAULT NULL,
`Sayi` INT(11) NULL DEFAULT NULL,
`Kimden` VARCHAR(50) NULL DEFAULT NULL,
`Time` TIMESTAMP NULL DEFAULT current_timestamp()
)
COMMENT='Item Transfer Information'
COLLATE='latin1_swedish_ci'
ENGINE=InnoDB
;
 

Users Who Are Viewing This Konu (Users: 0, Guests: 1)