Custom Marker

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 589
: 17 Haziran 2019, 16:00:59
İlk defa görev scriptinde kullandığımız, 3dxline markerları paylaşayım dedim. Sadece "cylinder" tipindeki markerları dönüştürür. Mantık; markerı görünmez yapıp aynı yerde ve aynı boyutta 3dxline göstermek. Yeağni marker işlevini kaybetmez. Basit bi yay animasyonu var göze hoş gelsin diye. Aşağıdaki kodları, custom markerları kullanmak istediğiniz scriptin client.lua'sına ekleyin.
Not; sadece kodların eklendiği scriptteki markerlar dönüştürülür.

Kod
addEventHandler("onClientRender",root,function()
local now = getTickCount()
for i,marker in pairs(getElementsByType("marker",resourceRoot,true)) do
local markerType = getMarkerType(marker)
if markerType == "cylinder" then
local x,y,z = getElementPosition(marker)
local r,g,b,a = getMarkerColor(marker)
if a ~= 0 then
     setMarkerColor(marker,r,g,b,0)
end
local size = getMarkerSize(marker)
local k = interpolateBetween(.3*size,0,0,.5*size,0,0,now/4000,"CosineCurve")
for i=0,6 do
dxDrawOctagon3D(x,y,z+i*k/3.5,size/2,size*2,tocolor(r,g,b,255))
end
end
end
end)

--

function dxDrawOctagon3D(x,y,z,radius,width,color)
if type(x) ~= "number" or type(y) ~= "number" or type(z) ~= "number" then
return false
end
local radius = radius or 1
local radius2 = radius/math.sqrt(2)
local width = width or 1
local color = color or tocolor(255,255,255,150)
point = {}
for i=1,8 do
point[i] = {}
end
point[1].x = x
point[1].y = y-radius
point[2].x = x+radius2
point[2].y = y-radius2
point[3].x = x+radius
point[3].y = y
point[4].x = x+radius2
point[4].y = y+radius2
point[5].x = x
point[5].y = y+radius
point[6].x = x-radius2
point[6].y = y+radius2
point[7].x = x-radius
point[7].y = y
point[8].x = x-radius2
point[8].y = y-radius2
for i=1,8 do
if i ~= 8 then
x, y, z, x2, y2, z2 = point[i].x,point[i].y,z,point[i+1].x,point[i+1].y,z
else
x, y, z, x2, y2, z2 = point[i].x,point[i].y,z,point[1].x,point[1].y,z
end
dxDrawLine3D(x, y, z, x2, y2, z2, color, width)
end
return true
end

Görsel;
Spoiler for Hiden:
Linki görebilmek için Kayıt olun yada Giriş yapın.
« Son Düzenleme: 16 Eylül 2019, 00:08:51 Gönderen: Narkoz »
system
 


MTASATURK

Custom Marker
« : 17 Haziran 2019, 16:00:59 »

Çevrimdışı Ky

  • Uzman Üye
  • *
    • İleti: 614
Yanıtla #1 : 17 Haziran 2019, 16:16:26
Başarılı olmuş eline sağlık.
 


Çevrimdışı #CrawL

  • Acemi Üye
  • *
    • İleti: 138
  • Skype: mtacrawl | Discord: crawl</>#2808
Yanıtla #2 : 17 Haziran 2019, 16:48:46
markerlar adına oldukça kâfi olmuş. markerlar kendini güzelleşmiş hissedecek!
 


Çevrimdışı VaTaN

  • Bilgin Üye
  • *
    • İleti: 270
Yanıtla #3 : 17 Haziran 2019, 17:46:49
Başarılı Olmuş..
 


Çevrimdışı Casti

  • C-se (Discord - Casti#9795)
  • Deneyimli Üye
  • *
    • İleti: 307
Yanıtla #4 : 17 Haziran 2019, 19:44:48
Sen harcanıyorsun la CIT de geliştirici ekibinde olsaydın biraz tasarımını iyileştirir din
>:( >:( >:( >:( >:( >:( >:( >:( >:( >:(
 


Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 589
Yanıtla #5 : 18 Haziran 2019, 21:50:59
teşekkürleer
system
 


MTASATURK

Ynt: [KOD] Custom Marker
« Yanıtla #5 : 18 Haziran 2019, 21:50:59 »

Çevrimdışı Strong

  • Deneyimli Üye
  • *
    • İleti: 455
  • After Roleplay Developer
Yanıtla #6 : 19 Haziran 2019, 12:35:54
Sen bu işleri çözmüşsün arkandan geliyorum yavaş yavaş.
 


Çevrimdışı Core^

  • inAkTiF
  • Acemi Üye
  • *
    • İleti: 106
  • inaktiv
Yanıtla #7 : 21 Haziran 2019, 22:20:13
Kod
function dxDrawCircle3D( x, y, z, radius, circle, color, width ) 
    circle = circle or 16; -- sayı nekadar yüksekse circle okadar güzel gözükür ama fps daha fazla düşürür.
    color = color or tocolor( 255, 255, 0 );
    width = width or 1;
    local Angle = 360 / circle;
    local fX, fY, tX, tY; 
    for i = 1, circle do
    fX = x + math.cos( math.rad( Angle * i ) ) * radius;
    fY = y + math.sin( math.rad( Angle * i ) ) * radius;
    tX = x + math.cos( math.rad( Angle * (i+1) ) ) * radius;
    tY = y + math.sin( math.rad( Angle * (i+1) ) ) * radius;
    dxDrawLine3D( fX, fY, z, tX, tY, z, color, width );
    end
end
 
addEventHandler("onClientRender", root, 
    function()
        dxDrawCircle3D( 1603, -1696.4, 5, 3) -- test
    end
)
Buda benim libde duruyordu, marker olarak kullanıyordum belki birisinin işine yarar
Eskisi gibi fazla aktif değilim, ulaşmak isterseniz Discordum: Core#7982[/url]
Client > Server
 


Çevrimdışı firatcelik

  • Yeni Üye
  • *
    • İleti: 16
Yanıtla #8 : 28 Ocak 2020, 15:27:57
birşey anlamadım :(
 


Çevrimdışı GrandX

  • Yeni Üye
  • *
    • İleti: 55
Yanıtla #9 : 28 Ocak 2020, 15:43:58
Linki görebilmek için Kayıt olun yada Giriş yapın.
birşey anlamadım :(

marker kullandığın client luanın en altına yapıştır.
 


Çevrimdışı MertA178

  • Oh,shit! What is these cringes? These are LUA codes bro! LUA is a terrible scripting language.
  • Deneyimli Üye
  • *
    • İleti: 381
Yanıtla #10 : 31 Ocak 2020, 13:37:46
OVV Yararlı anlatım.Ben daha düzgün script yazamıyom scripterim diye geziniyorum :D
 


Çevrimdışı WickedGOD

  • Yeni Üye
  • *
    • İleti: 31
Yanıtla #11 : 30 Mart 2022, 11:22:34
FPS Sıkıntısı Olabilir Mi Nede Olsa Grafiksel Olarak Sürekli Animasyon Şekilinde Sallancak