[YARDIM] Resourcese Erişen Kişinin ACL'ye Dokunamaması

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı naberbaba11

  • Yeni Üye
  • *
    • İleti: 1
Serverimdaki Üst Düzey Yetkililere Resources Vereceğim Ancak Kendilerine Console Vermelerini Ve ACL Ayarlamalarını Engellemek İçin Ne Yapmalıyım
« Son Düzenleme: 05 Aralık 2018, 14:59:44 Gönderen: Narkoz »
 


MTASATURK


Çevrimdışı Mahlukat

  • Uzman Üye
  • *
    • İleti: 637
Aslında yapılabilir.

Admin paneldeki yetki mantığı butonlar/tablar üzerindendir.
Örnek olarak para verme butonu kodu;
Kod: lua
aTab1.SetMoney=guiCreateButton ( 0.71, 0.530, 0.13, 0.04, "Set Money", true, aTab1.Tab, "setmoney" )
Kodun sonunda "setmoney" ACL den gelen ayardır.
Senin isteğin üzerinden gidersek, yapmamız gereken "Manage ACL" isimli butonunun kodunu bulup yetki eklemek.

Kod: lua
aTab2.ManageACL		= guiCreateButton ( 0.75, 0.02, 0.23, 0.04, "Manage ACL", true, aTab2.Tab )
Üstteki kodumuz o butonun kodu. İlk baştaki örnekteki gibi sonuna bir virgül bırakıp istediğimiz ayar ismini yazıyoruz.

Aynı şu şekilde;
Kod: lua
aTab2.ManageACL		= guiCreateButton ( 0.75, 0.02, 0.23, 0.04, "Manage ACL", true, aTab2.Tab,"aclyetki" )

Sonrasında ACL.xml gidiyoruz ve bu butona tıklayabilcek acl gruplarına şunu giriyoruz;
Kod: lua
<right name="command.aclyetki" access="true"></right>

Resources tabı açık olup da tıklayamicak olanlara da şunu;
Kod: lua
<right name="command.aclyetki" access="false"></right>

Acl'yi server kapalı iken güncellemeyi unutma. Denemedim ama büyük ihtimal çalışacaktır...

deathmatch\resources\[admin]\admin\client\gui\admin_main.lua
« Son Düzenleme: 14 Kasım 2018, 22:05:01 Gönderen: Mahlukat »
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı TheLaw

  • Yeni Üye
  • *
    • İleti: 1
Aşağıdaki kodları belirttiğim yerlere eklersen sadece izin verdiğin kullanıcılar Manage ACL butonunu aktif görebilir.

admin > server > admin_server.lua dosyasına en alta:

Kod: lua
addEventHandler("onPlayerLogin", root, function ()
for k, v in ipairs(getElementsByType("player")) do
local accName = getAccountName(getPlayerAccount(v))
if (accName == "izinvermekistediginoyuncununhesapadi") then
setElementData(v, "hasManageACL", true)
else
setElementData(v, "hasManageACL", false)
end
end
end)

Daha sonra admin > client > gui > admin_main.lua dosyasında bunu bul: function aClientClick ( button )
Alt satırına şunu ekle:
Kod: lua
local checkManageACLForUser = getElementData(localPlayer, "hasManageACL")
if (checkManageACLForUser) then
guiSetEnabled(aTab2.ManageACL, true)
else
guiSetEnabled(aTab2.ManageACL, false)
end

Daha fazla kullanıcı eklemek için ilk kodu bu şekilde yapabilir, istediğin kadar çoğaltabilirsin:
Kod: lua
addEventHandler("onPlayerLogin", root, function ()
for k, v in ipairs(getElementsByType("player")) do
local accName = getAccountName(getPlayerAccount(v))
if (accName == "izinvermekistediginoyuncununhesapadi") then
setElementData(v, "hasManageACL", true)
else
setElementData(v, "hasManageACL", false)
end
if (accName == "izinvermekistedigindigeroyuncununhesapadi") then
setElementData(v, "hasManageACL", true)
else
setElementData(v, "hasManageACL", false)
end
end
end)
Son olarak admin scriptine restart attıktan sonra işlem tamamdır.


* Belki başka kısayolu ve daha kullanışlı hali vardır ancak uzun zamandır script işinin içinde değilim. Konuyu görünce en son bendeki halini paylaşmak istedim. Umarım bi sıkıntı olmaz ve istediğin gibi çalışır..