Server.cfg için
TriggerEvent olarak addCommand, (chat komutu) belirtmeniz lazım.
Function olarak source, args(command arguments), user(kullanıcılar) atamalarını yapıyoruz.
Table.remove kullanarak chat kısmında gözükmesini engelliyoruz.
İşlemin herkesin gözünde (server'da) yaşanabilmesi adına, herkesin bu etkileşime kaynak(source) göstermemiz gerekiyor.
local tanımlamamızda playername'i GetPlayerName(source) olarak eşliyoruz.
Yukarıdaki işlemi açıklamam gerekirse;
kod satırımıza bir chat komutu ekliyoruz. Kaynağının kullanıcı bazlı olduğu bir chat komutu işlevine çeviriyoruz.
Lakin chat komutu olduğu için, t chat'imizde görünmemesi adına table'dan remove'luyoruz.
Sıra geldi herkesin bu işlemi görebilmesine.
Herkesin insanların yaptığı işlemi görebilmesi için o insanlardan bu kaynağı alabilmesi lazım. Kaynağı da oyuncu isimleri üzerinden iletiyoruz.
Sonra herkesin bu işlemi görebilmesi adına server'da çalışan scriptimize TriggerClientEvent atamamız lazım.
Kişi kaynaklı bildirim şeklinde gözükmesi için "sendProximityMessage" adlı Handler kullanıyorum.
onun Handler'ını da aşağıya bırakıyorum.
*** AddEventHandler('chatMessage', function(source, name, message)
if string.sub(message,1,string.len("/"))=="/" then
else
TriggerClientEvent("sendProximityMessage", -1, source, name, message)
end
CancelEvent()
end) ***
TriggerClientEvent'imize sendProximityMessage(chatkomutumuz neyse artık), -1, source,playername, yazıp table.concat(args. " ")) end'liyoruz. argümanın sonucu gözükecek string'i belirliyoruz, diyebiliriz.
Client.cfg için
Oyuncuların gözünü de düzenlememiz lazım. Bunun için NetEvent kullanacağız. RegisterNetEvent şeklinde NetEvent'imizi kaydediyoruz.
Sonra EventHandler ekliyoruz. AddEventHandler. sendProximityMessage kullanıyorduk. Bu sefer işlemin id,isim,mesaj olarak almasını istiyoruz.
local olarak Playerid ve GetPlayerFromServerId eşlememiz gerekiyor. Bunu yapma sebebimiz server'daki id ile sizin gördüğünüz kendi id'nizin eşlenmesi.
eğer bu iki durum DENK ise eşit demedim denk dedim(==). işte o zaman işlem başlayabilir.
TriggerEvent'lerimizi chatMessage olarak eklemeye devam ediyoruz. Renk id ve message gibi belirtmelerimizi yapıp Eşlediğimiz id'lerin koordinatları arasındaki mesafenin maksimum değerini belirliyoruz. Bunu yapma sebebimiz aslında koordinatları karakterin üzerinde sıkıştırmak ve yazının o kısımda görünmesini sağlamak. İşlem doğrulanırsa devam ediliyor.
***elseif GetDistanceBetweenCoords(GetEntityCoords(GetPlayerPed(monid)), GetEntityCoords(GetPlayerPed(sonid)), true) < 19.99*** Then
Mesajımız görünecek.
TriggerEvent('chatMessage', "", {255, 0, 0}, " ^6((" .. name ..")) ".." " .. message)
end
end
Resource dosyası ile birbirine bağladığınızda script'iniz hazır hale gelcektir. Bu işlemleri do me ooc için teker teker uygulayıp tek dosyada toplayabilirsiniz. Böylece kendinize ait chat komutu scriptine sahip olabilirsiniz. En azından Me yerine Mizasen, do yerine Durum şeklinde güncelleyebilirsiniz.