[İSTEK]ACL ile markerden ışınlanma

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı ulusoy

  • Yeni Üye
  • *
    • İleti: 50
: 21 Aralık 2019, 20:04:48
Merhaba , ACL üzerinde kayıt ismi belirli olan bir oyuncu harita üzerinde belirlenmiş marker'a çarptığında onu harita üzerinde belirtilmiş konuma ışınlamasını sağlamak istiyorum. Bu sistem ACL grup olarakta ayarlanabilir, tıpkı harita üzerinde evler veya dükkanlar önünde belirlenmiş mekan ışınlanma markerları gibi fakat ACL ye duyarlı. bunu aynı harita üzerindeki bir mekan için koymak istiyorum 1. markerden  x noktasına acl noktası ile gidilsin fakat x noktasından y noktasına acl yetkisi istemesin, 2 li ışınlanma kullanacağım giriş ve çıkış , şimdiden söyleyeyim yardım ederseniz eğer çok teşekkür ederim :)
 


MTASATURK

[İSTEK]ACL ile markerden ışınlanma
« : 21 Aralık 2019, 20:04:48 »

Çevrimdışı Mahlukat

  • Uzman Üye
  • *
    • İleti: 637
Yanıtla #1 : 21 Aralık 2019, 23:25:25
Kod
server-side
[code
local markerlar = {
{
acl={"Admin","Console"},
bilgiler={
giris= {
pos = {0,0,3}, -- marker pos
toPos = {10,10,3}, -- nereye ışınlancağı
renk = {0,255,0,200},
boyut= 2,
},
cikis= {
pos = {5,0,3}, -- markerpos
toPos = {20,10,3}, -- nereye ışınlancağı
renk = {255,0,0,200},
boyut= 2,
}
},
},
}

local d,e = {},{}
addEventHandler("onResourceStart",resourceRoot,function()
markerOlustur()
end)

function markerOlustur()
for i,v in ipairs(markerlar) do
if not d[i] then d[i]={} end
local g,c = v.bilgiler.giris,v.bilgiler.cikis
--giris
local gx,gy,gz = unpack(g.pos)
local gr,gg,gb,ga = unpack(g.renk)
--cikis
local cx,cy,cz = unpack(c.pos)
local cr,cg,cb,ca = unpack(c.renk)
d[i].girisMarker = createMarker(gx,gy,gz,"cylinder",g.boyut,gr,gg,gb,ga)
d[i].cikisMarker = createMarker(gx,cx,cy,cz,"cylinder",c.boyut,cr,cg,cb,ca)
e[d[i].girisMarker] = {acl=v.acl,pos=g.toPos}
e[d[i].cikisMarker] = {acl=v.acl,pos=c.toPos}
end
end

addEventHandler("onMarkerHit",resourceRoot,function(hit,matchDim)
if isElement(hit) and getElementType(hit) == "player" then
local m = e[source]
if m then
if isPlayerInACLGroup(hit,m.acl) then
local x,y,z = unpack(m.pos)
setElementPosition(hit,x,y,z)
end
end
end
end)


--- Util
function isPlayerInACLGroup(player, t)
if (not player or not t) then return false end
if (not isElement(player) or getElementType(player) ~= "player") then return false end
local account = getPlayerAccount(player)
if (isGuestAccount(account)) then return false end

local acl = t
if (#acl == 1) then
return isObjectInACLGroup("user."..getAccountName(account), aclGetGroup(acl[1])) or false
else
for i,acl in ipairs(acl) do
if (isObjectInACLGroup("user."..getAccountName(account), aclGetGroup(acl))) then
return true
end
end
return false
end
end
denemedim.hata olursa yazabilrisin
« Son Düzenleme: 22 Aralık 2019, 16:56:00 Gönderen: Mahlukat »
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı ulusoy

  • Yeni Üye
  • *
    • İleti: 50
Yanıtla #2 : 22 Aralık 2019, 15:50:29
4. satırdaki parantez hatası mevcut bir diğer husus marker a çarpınca karakter hangi noktaya ışınlanacağı yok

 


Çevrimdışı Ky

  • Uzman Üye
  • *
    • İleti: 614
Yanıtla #3 : 22 Aralık 2019, 16:13:55
server-side
Kod
local marker = createMarker (-1323.4423828125, -81.353584289551, 14.14, "cylinder", 1, 199, 0, 0, 79) -- GİRİLİCEK MARKERİN OLUŞTURULACAĞI NOKTA X , Y , Z
local cikmarker = createMarker (-1323.4423828125, -81.353584289551, 14.14, "cylinder", 1, 199, 0, 0, 79) -- ÇIKILICAK MARKERİN OLUŞTURULACAĞI NOKTA X , Y , Z

function markergirdi(source)
local hesap = getAccountName ( getPlayerAccount ( source ) ) -- Oyuncunun hesabını çektik
if isObjectInACLGroup ("user."..hesap, aclGetGroup ( "Admin" ) ) then -- Eğer oyuncu ACL grubunda var ise
setElementPosition ( source, -1315.8054199219, 91.57, 14.14 ) -- OYUNCUNUN GİRİLEN MARKERE GİRDİĞİNDE GİDECEĞİ BOKTA X, Y , Z
else -- EĞER YOK İSE
outputChatBox("Malesef, bu markere girmek için Admin grubunda olmanız gerekiyor.", source, 255, 0, 0, true) -- CHATE YAZI AKTAR
end
end
addEventHandler ("onMarkerHit", marker, markergirdi)

function markercikti(source)
setElementPosition ( source, -1318.8054199219, 91.57, 14.14 ) -- OYUNCUNUN ÇIKILAN MARKERE GİRDİĞİNDE GİDECEĞİ NOKTA X , Y , Z
end
addEventHandler ("onMarkerHit", cikmarker, markercikti)
 


Çevrimdışı ulusoy

  • Yeni Üye
  • *
    • İleti: 50
Yanıtla #4 : 22 Aralık 2019, 16:54:36
Çok teşekkür ederim başarılı bir script oldu , elinize kolunuza sağlık.

Konu kilit olabilir.
 
Mesajı Beğenenler: Ky