MTASA TÜRK
Türkiye'nin En Güncel MTA Platformu


[YARDIM] Zaman, arama, skin shader

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı MertA178

  • LUA
  • Deneyimli Üye
  • *
    • İleti: 343
  • Scripter
: 23 Mayıs 2020, 20:29:56
Merhabalar.3 konu hakkında bilgi sahibi olmak istiyorum.

setTimerlar oyuncu oyundan çıkarsa killeniyor.killTimerdan bahsettim.getRealTime() ile dakikayı çektim ve eğer o dakikayı gelirse oyuncu ban yesin dedim ama oyuncu oyundayken oldu.Peki oyuncu oyunda değilken nasıl ban atabilirim? Ama o saate geldiğinde.


Editboxda oyuncu bir harf yazdığında o harfin bulunduğu oyuncular gridliste eklensin istiyorum nasıl yapabilirim?

Skin shaderda aslında söylemek istediğim,nasıl araç modu eklediğimde sadece o araç modunun benim aracıma özel yapabilirim,yani başka araçlarda olmasını istemiyorum.Ve skindede aynı.Nasıl sadece benim özel skinim olsun?
« Son Düzenleme: 23 Mayıs 2020, 20:32:36 Gönderen: MertA178 »
 


MTASA TÜRK

[YARDIM] Zaman, arama, skin shader
« : 23 Mayıs 2020, 20:29:56 »

Çevrimdışı #TalhaTugsat

  • Her Türlü LUA Dersi İtinayla Alınır
  • Acemi Üye
  • *
    • İleti: 195
  • Asus Gaming
Yanıtla #1 : 23 Mayıs 2020, 22:20:43
Oyuncu oyunda değilse atamazsın fakat bir istisna var her oyuna giren kişinin serialini kaydettirirsin, sonra o serial üstünden ban attırabilirsin o saat geldiğinde.


gridlistlerden hiç anlamam

araç modunuda getPlayerAccount veya isPlayerInACL ile yapabilirsin, bu ikisi server taraflı ama sen server tarafından bu acldeki hesaplara data verirsen ve clienttede fonksiyonun altına vereceğim kodu eklersen kişiye özel olur. if getElementData(localplayer,"dataismin") == false then return end
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı MertA178

  • LUA
  • Deneyimli Üye
  • *
    • İleti: 343
  • Scripter
Yanıtla #2 : 23 Mayıs 2020, 22:46:46
Linki görebilmek için Kayıt olun yada Giriş yapın.
Oyuncu oyunda değilse atamazsın fakat bir istisna var her oyuna giren kişinin serialini kaydettirirsin, sonra o serial üstünden ban attırabilirsin o saat geldiğinde.


gridlistlerden hiç anlamam

araç modunuda getPlayerAccount veya isPlayerInACL ile yapabilirsin, bu ikisi server taraflı ama sen server tarafından bu acldeki hesaplara data verirsen ve clienttede fonksiyonun altına vereceğim kodu eklersen kişiye özel olur. if getElementData(localplayer,"dataismin") == false then return end
Ya ama herkes özel kendine aldı diyelim ve herkes elegant aracına kullanıcak nasıl olucak ozaman? Birde CIT2 den görmüşsündür vip saatlik azaltılıyor o nasıl oldu?

Mesaj Birleştirildi: 23 Mayıs 2020, 23:27:11
Linki görebilmek için Kayıt olun yada Giriş yapın.
Oyuncu oyunda değilse atamazsın fakat bir istisna var her oyuna giren kişinin serialini kaydettirirsin, sonra o serial üstünden ban attırabilirsin o saat geldiğinde.


gridlistlerden hiç anlamam

araç modunuda getPlayerAccount veya isPlayerInACL ile yapabilirsin, bu ikisi server taraflı ama sen server tarafından bu acldeki hesaplara data verirsen ve clienttede fonksiyonun altına vereceğim kodu eklersen kişiye özel olur. if getElementData(localplayer,"dataismin") == false then return end
Birde yanlış bilgi veriyorsun./oban var roleplayde.
« Son Düzenleme: 23 Mayıs 2020, 23:27:11 Gönderen: MertA178 »
 


Çevrimdışı ertrldtcu

  • Uzman Üye
  • *
    • İleti: 605
Yanıtla #3 : 23 Mayıs 2020, 23:37:38
Linki görebilmek için Kayıt olun yada Giriş yapın.
Peki oyuncu oyunda değilken nasıl ban atabilirim? Ama o saate geldiğinde.
Oyuncu sunucudan çıktığında serial, ip ve hesap ismini kaydedip bi timer başlatıyoruz. Timer süresini ben 15 dakika olarak belirledim. 15 dakika sonra fonksiyon tetiklendiğinde oyuncunun serial, ip ve hesabına sınırsız ban attık. Oyuncu 15 dakika içerisinde sunucuya tekrar girerse timerı iptal edip gereksiz şeyleri tablodan sildik. Tam olarak istediğin bu değil ama istediğine evriltebilirsin.
Kod
timers = {}
informations = {}
addEventHandler("onPlayerQuit",root,function()
local serial = getPlayerSerial(source)
local ip = getPlayerIP(source)
local accountName = getAccountName(getPlayerAccount(source))
informations[serial] = {ip = ip,accountName = accountName}
timers[serial] = setTimer(function(serial)
addBan(informations[serial].ip,informations[serial].accountName,serial,root,"Ban Sebebi",0)
-- sırasıyla ip, hesap ismi, seriale ban attık
-- 0 yerine ban süresini saniye cinsinden yazabilirsin
informations[serial] = nil
killTimer(timers[serial])
timers[serial] = nil
-- çöpleri temizledik
end,15*60*1000,1,serial) -- 15 dakikalık bi timer
end)

addEventHandler("onPlayerJoin",root,function()
local serial = getPlayerSerial(source)
informations[serial] = nil
if isTimer(timers[serial]) then killTimer(timers[serial]) end
timers[serial] = nil
-- oyuncu girdiğinde timerı iptal ettik, çöpleri temizledik
end)

Linki görebilmek için Kayıt olun yada Giriş yapın.
Editboxda oyuncu bir harf yazdığında o harfin bulunduğu oyuncular gridliste eklensin istiyorum nasıl yapabilirim?
Editboxtaki yazı değiştiğinde listeyi güncelleyen fonksiyonumuza editboxtaki yazıyı göndererek fonksiyonumuzu tetikliyoruz. Fonksiyon içerisinde listeyi temizliyoruz. Ardından tüm oyuncuları döndüren bi döngü başlatıyoruz. Her oyuncunun ismini çekip fonksiyona gelen yazı içerisinde var mı diye kontrol ediyoruz. Eğer var ise listeye bir satır ekleyip oyuncunun ismini satıra yazıyoruz. Ayrıca çekerken rahatlık olsun diye aynı satıra data olarak oyuncuyu kaydettim.
Kod
function listPlayers(word)
guiGridListClear(gridlist_degiskeni)
for i,player in ipairs (getElementsByType("player")) do
local text = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
if (text):find(word) then
local row = guiGridListAddRow(gridlist_degiskeni,text)
guiGridListSetItemData(gridlist_degiskeni,row,sutun_index,player)
end
end
end

addEventHandler("onClientGUIChanged",root,function()
if source == edit_degiskeni then
listPlayers(guiGetText(source))
end
end)

Linki görebilmek için Kayıt olun yada Giriş yapın.
Skin shaderda aslında söylemek istediğim,nasıl araç modu eklediğimde sadece o araç modunun benim aracıma özel yapabilirim,yani başka araçlarda olmasını istemiyorum.Ve skindede aynı.Nasıl sadece benim özel skinim olsun?
Sadece bir araç veya karaktere mod yapman mümkün değil. Modlar modellere yapılıyor. Ancak mod yaptığın aracı/karakteri sadece senin alabileceğin şekilde ayarlaman mümkün.

Kodları denemedim, sorun çıkarsa konu altından etiket atarak sorunu yazarsan yardımcı olabilirim.
Script yazmak için kod bilmek yetmez
 


Çevrimdışı MertA178

  • LUA
  • Deneyimli Üye
  • *
    • İleti: 343
  • Scripter
Yanıtla #4 : 24 Mayıs 2020, 00:18:11
Linki görebilmek için Kayıt olun yada Giriş yapın.
Oyuncu sunucudan çıktığında serial, ip ve hesap ismini kaydedip bi timer başlatıyoruz. Timer süresini ben 15 dakika olarak belirledim. 15 dakika sonra fonksiyon tetiklendiğinde oyuncunun serial, ip ve hesabına sınırsız ban attık. Oyuncu 15 dakika içerisinde sunucuya tekrar girerse timerı iptal edip gereksiz şeyleri tablodan sildik. Tam olarak istediğin bu değil ama istediğine evriltebilirsin.
Kod
timers = {}
informations = {}
addEventHandler("onPlayerQuit",root,function()
local serial = getPlayerSerial(source)
local ip = getPlayerIP(source)
local accountName = getAccountName(getPlayerAccount(source))
informations[serial] = {ip = ip,accountName = accountName}
timers[serial] = setTimer(function(serial)
addBan(informations[serial].ip,informations[serial].accountName,serial,root,"Ban Sebebi",0)
-- sırasıyla ip, hesap ismi, seriale ban attık
-- 0 yerine ban süresini saniye cinsinden yazabilirsin
informations[serial] = nil
killTimer(timers[serial])
timers[serial] = nil
-- çöpleri temizledik
end,15*60*1000,1,serial) -- 15 dakikalık bi timer
end)

addEventHandler("onPlayerJoin",root,function()
local serial = getPlayerSerial(source)
informations[serial] = nil
if isTimer(timers[serial]) then killTimer(timers[serial]) end
timers[serial] = nil
-- oyuncu girdiğinde timerı iptal ettik, çöpleri temizledik
end)
Editboxtaki yazı değiştiğinde listeyi güncelleyen fonksiyonumuza editboxtaki yazıyı göndererek fonksiyonumuzu tetikliyoruz. Fonksiyon içerisinde listeyi temizliyoruz. Ardından tüm oyuncuları döndüren bi döngü başlatıyoruz. Her oyuncunun ismini çekip fonksiyona gelen yazı içerisinde var mı diye kontrol ediyoruz. Eğer var ise listeye bir satır ekleyip oyuncunun ismini satıra yazıyoruz. Ayrıca çekerken rahatlık olsun diye aynı satıra data olarak oyuncuyu kaydettim.
Kod
function listPlayers(word)
guiGridListClear(gridlist_degiskeni)
for i,player in ipairs (getElementsByType("player")) do
local text = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
if (text):find(word) then
local row = guiGridListAddRow(gridlist_degiskeni,text)
guiGridListSetItemData(gridlist_degiskeni,row,sutun_index,player)
end
end
end

addEventHandler("onClientGUIChanged",root,function()
if source == edit_degiskeni then
listPlayers(guiGetText(source))
end
end)
Sadece bir araç veya karaktere mod yapman mümkün değil. Modlar modellere yapılıyor. Ancak mod yaptığın aracı/karakteri sadece senin alabileceğin şekilde ayarlaman mümkün.

Kodları denemedim, sorun çıkarsa konu altından etiket atarak sorunu yazarsan yardımcı olabilirim.
Araç modu değildirde shader yani araç skini vardı o oluyor mümkün.Kodlar için teşekkürler.

Mesaj Birleştirildi: [time]24 Mayıs 2020, 00:38:09[/time]
Kodlar çalışıyor ama demek istediğim araç modeli değildi.Araca özel skin ve oyuncuya özel skin.Demek istediğim model değil yani şöyle.Bir skin var ve onun üzerine programlardan çizim yapıyorlar.Bir dosya türü var galiba txd ve dff değil sanırsam.Onları  oyuncuya özel yapmak istiyorum.Mesela 280 idli polis skinini aldım ve üzerine çizimler yaptım kendi adımı felan yazdırdım ve kendime özel ekledim.Ve başkasının skininde aracında gözükmez.Sadece bana özel olur ve başkasıda bende görebilirim.

Mesaj Birleştirildi: 24 Mayıs 2020, 11:24:05
Linki görebilmek için Kayıt olun yada Giriş yapın.
Oyuncu sunucudan çıktığında serial, ip ve hesap ismini kaydedip bi timer başlatıyoruz. Timer süresini ben 15 dakika olarak belirledim. 15 dakika sonra fonksiyon tetiklendiğinde oyuncunun serial, ip ve hesabına sınırsız ban attık. Oyuncu 15 dakika içerisinde sunucuya tekrar girerse timerı iptal edip gereksiz şeyleri tablodan sildik. Tam olarak istediğin bu değil ama istediğine evriltebilirsin.
Kod
timers = {}
informations = {}
addEventHandler("onPlayerQuit",root,function()
local serial = getPlayerSerial(source)
local ip = getPlayerIP(source)
local accountName = getAccountName(getPlayerAccount(source))
informations[serial] = {ip = ip,accountName = accountName}
timers[serial] = setTimer(function(serial)
addBan(informations[serial].ip,informations[serial].accountName,serial,root,"Ban Sebebi",0)
-- sırasıyla ip, hesap ismi, seriale ban attık
-- 0 yerine ban süresini saniye cinsinden yazabilirsin
informations[serial] = nil
killTimer(timers[serial])
timers[serial] = nil
-- çöpleri temizledik
end,15*60*1000,1,serial) -- 15 dakikalık bi timer
end)

addEventHandler("onPlayerJoin",root,function()
local serial = getPlayerSerial(source)
informations[serial] = nil
if isTimer(timers[serial]) then killTimer(timers[serial]) end
timers[serial] = nil
-- oyuncu girdiğinde timerı iptal ettik, çöpleri temizledik
end)
Editboxtaki yazı değiştiğinde listeyi güncelleyen fonksiyonumuza editboxtaki yazıyı göndererek fonksiyonumuzu tetikliyoruz. Fonksiyon içerisinde listeyi temizliyoruz. Ardından tüm oyuncuları döndüren bi döngü başlatıyoruz. Her oyuncunun ismini çekip fonksiyona gelen yazı içerisinde var mı diye kontrol ediyoruz. Eğer var ise listeye bir satır ekleyip oyuncunun ismini satıra yazıyoruz. Ayrıca çekerken rahatlık olsun diye aynı satıra data olarak oyuncuyu kaydettim.
Kod
function listPlayers(word)
guiGridListClear(gridlist_degiskeni)
for i,player in ipairs (getElementsByType("player")) do
local text = getPlayerName(player):gsub("#%x%x%x%x%x%x","")
if (text):find(word) then
local row = guiGridListAddRow(gridlist_degiskeni,text)
guiGridListSetItemData(gridlist_degiskeni,row,sutun_index,player)
end
end
end

addEventHandler("onClientGUIChanged",root,function()
if source == edit_degiskeni then
listPlayers(guiGetText(source))
end
end)
Sadece bir araç veya karaktere mod yapman mümkün değil. Modlar modellere yapılıyor. Ancak mod yaptığın aracı/karakteri sadece senin alabileceğin şekilde ayarlaman mümkün.

Kodları denemedim, sorun çıkarsa konu altından etiket atarak sorunu yazarsan yardımcı olabilirim.
Buldum kodu.engineApplyShaderToWorldTexture mış.Modelde değildi demek istediğim shaderdi.
« Son Düzenleme: 24 Mayıs 2020, 11:24:05 Gönderen: MertA178 »