game
Oyun kütüphanesi, oyunun motorundaki çeşitli özelliklere erişmek için fonksiyonlar sağlar; bu fonksiyonların çoğu haritayı kontrol etmekle ilgilidir.
Metotlar
game.AddAmmoType( table ammoData )
Oyuna yeni bir mermi türü ekler.
Varsayılan mermi türlerinin bir listesini burada bulabilirsiniz.
Beklenmedik sorunlarla karşılaşmamak için bu fonksiyon GM:Initialize içinde hem istemcide hem de sunucuda çağrılmalıdır. Varsayılanlar dahil olmak üzere 256 mermi türü limiti vardır.
Yeni bir çıkartma (decal) kaydeder.
Kaydedilebilecek çıkartma materyalleri için 256 civarında oldukça düşük bir limit vardır ve bunlar harita yüklendiğinde temizlenmez.
game.AddParticles( string particleFileName )
Bir partikül dosyası yükler. Bireysel partikül sistemlerinin yine de PrecacheParticleSystem ile önbelleğe alınması (precached) gerekir.
Partikül efektlerini sunucu tarafında oluştursanız bile bu fonksiyonu istemci tarafında da çağırmanız gerekecektir.
table game.BuildAmmoTypes()
Bu dahili olarak kullanılır - kullanabiliyor olsanız da muhtemelen kullanmamalısınız.
Bunun yerine game.GetAmmoTypes ve game.GetAmmoData kullanmayı düşünün.
Mermi türlerini almak için oyun motoru tarafından çağrılır.
game.CleanUpMap( boolean dontSendToClients = false, table extraFilters = {}, function callback = nil )
Çoğu varlığı kaldırır ve ardından harita tarafından oluşturulan varlıkları, sanki harita yeni yüklenmiş gibi yeniden doğurur.
Oyuncular veya oyuncuların elindeki silahlar, ses manzaraları (soundscapes) ve diğerleri gibi belirli istisnalar vardır.
Bir harita temizliği sırasında varlıkları korumak için EFL_KEEP_ON_RECREATE_ENTITIES bayrağı ayarlanabilir.
İstemci tarafında çıkartmaları, sesleri, parçaları (gibs), ölü NPC'leri ve ents.CreateClientProp ile oluşturulan varlıkları kaldırır. Bu fonksiyon sunucuda çağrıldığında, sunucudan tüm istemcilerde otomatik olarak çalıştırılır.
Bu fonksiyon, haritayı temizlemeden önce GM:PreCleanupMap'i ve haritayı temizledikten sonra GM:PostCleanupMap'i çağırır.
Sonsuz döngülerden kaçınmak için bu fonksiyonu harita temizliği sırasında çağrılabilecek kancalarda (hook) (ENTITY:StartTouch gibi) çağırmaktan kaçının.
Bu fonksiyonu çağırmak tüm BASS akışlarını (streams) yok eder. Sorun Takipçisi: 2874Bu, _firesmoke varlıklarını kaldırırken çökmeye neden olabilir. Bu sorunu çözmek için aşağıdaki örneği kullanabilirsiniz. Sorun Takipçisi: 3637EFL_KEEP_ON_RECREATE_ENTITIES bayrağı, bir varlığın yeniden oluşturulmasını engellemez, bu da bayraklı varlıkların hem korunup hem de yeniden oluşturulduğu için kopyalanacağı anlamına gelir. Sorun Takipçisi: 6105
game.ConsoleCommand( string stringCommand )
Bir konsol komutu çalıştırır.
Komutun sonuna bir yeni satır ("\n") eklediğinizden emin olun.
Bir istemciden alınan verileri kullanıyorsanız, bu fonksiyonu kullanmaktan kaçınmalısınız çünkü yeni satır ve noktalı virgül (en azından) istemcinin keyfi komutlar çalıştırmasına olanak tanır!
Güvenlik için, bu durumda RunConsoleCommand kullanmanız önemle tavsiye edilir.
Verilen mermi türünün hasar türünü döndürür.
Verilen ID için AmmoData yapısını döndürür.
Bir varlık, verilen mermi türündeki bir mermi tarafından vurulduğunda uygulanan mermi kuvvetini döndürür.
Verilen mermi türü adı için mermi türü ID'sini döndürür.
Tersi için game.GetAmmoName'e bakın.
gmod_maxammo convar'ının ayarından bağımsız olarak, verilen mermi ID'sinin gerçek maksimum mermi miktarını döndürür.
Verilen mermi türü ID'si için mermi adını döndürür.
Tersi için game.GetAmmoID'ye bakın.
Verilen mermi türünün NPC'lere vermesi gereken hasarı döndürür.
Verilen mermi türünün oyunculara vermesi gereken hasarı döndürür.
table game.GetAmmoTypes()
Mevcut olarak kayıtlı tüm mermi türlerinin bir listesini döndürür.
Bir Global State'in (Genel Durum) sayacını döndürür.
Daha fazla bilgi için Global States'e bakın.
Bir Global State'in (Genel Durum) kapalı, aktif veya ölü (inaktif) olup olmadığını döndürür.
Daha fazla bilgi için Global States'e bakın.
string game.GetIPAddress()
Mevcut sunucunun genel IP adresini ve portunu döndürür. Bu, istemci tarafında çalıştırıldığında bağlandığınız IP/portu döndürür.
Tek oyunculu modda "loopback" döndürür. GM:Initialize ve GM:InitPostEntity dahil olmak üzere çok erken çağrıldığında sunucuda "0.0.0.0:port" döndürür. Bu hata yalnızca bir sunucu ilk kez başlatıldığında meydana geliyor gibi görünmektedir ve haritalar arasında geçiş yaptıktan sonra doğru değeri döndürecektir. Sorun Takipçisi: 3001
Mevcut haritanın adını dosya uzantısı olmadan döndürür.
Menü durumundayken "menu" döndürür.
Çok oyunculu modda bu, GM:Initialize'dan önce CLIENT alanında mevcut haritayı döndürmez.
string game.GetMapNext()
mapcyclefile convar'ı tarafından ayarlanan dosyaya göre yüklenecek bir sonraki haritayı döndürür.
number game.GetMapVersion()
Mevcut haritanın revizyonunu (VBSP Sürümü ile karıştırılmamalıdır) döndürür.
number game.GetSkillLevel()
Oyunun zorluk seviyesini döndürür.
İPUCU: Bu fonksiyonu betiklenmiş NPC'lerinizde veya Nextbot'larınızda onları daha güçlü yapmak için kullanabilirsiniz, ancak sadece canlarını artırmak yerine güçlü saldırıları en yüksek zorluk seviyesine kilitlemek iyi bir fikirdir.
Dahili olarak bu, gamerules varlığına bağlıdır, bu yüzden zorluk seviyesini döndürmek için GM:InitPostEntity çağrılana kadar beklemeniz gerekir
number game.GetTimeScale()
game.SetTimeScale ile ayarlanan zaman ölçeğini döndürür.
Eğer host_timescale değerini almak isterseniz
`local timescale = GetConVar( "host_timescale" ):GetFloat()` kullanın
boolean game.IsDedicated()
Eğer sunucu bir dedicated sunucu ise true, bir listen sunucu veya tek oyunculu bir oyun ise false döndürür.
Bir oyuncuyu sunucudan atar. Bu, oyuncu doğmadan önce çalıştırılabilir.
game.LoadNextMap()
nextlevel convar'ına göre veya ilgili convar tarafından ayarlanan mevcut mapcyclefile'dan bir sonraki haritayı yükler.
string game.MapLoadType()
Mevcut haritanın yüklenme türünü döndürür.
`changelevel` konsol komutuyla haritayı değiştirdikten sonra "newgame" döndürülür. `changelevel2` ile (sadece tek oyunculu) "transition" döndürülür.
number game.MaxPlayers()
Sunucunun sahip olabileceği maksimum oyuncu sayısını (botlar dahil) döndürür.
Diskten bir GMA eklentisi bağlar (mount eder).
steamworks.DownloadUGC ile kullanılabilir.
Bağlanan eklentinin sağladığı ve o anda yüklü olan tüm hatalı modeller yeniden yüklenecektir.
Bağlanan eklentinin sağladığı ve o anda yüklü olan tüm hatalı materyaller yeniden yüklenmeyecektir. Bu, eksik harita materyallerini düzeltmek için kullanılamayacağı anlamına gelir, çünkü harita materyalleri siz bunu çağırabilmeden önce yüklenir.
game.RemoveRagdolls()
Tüm istemci tarafı ragdoll'ları kaldırır. Sunucuda, SF_RAGDOLLPROP_USE_LRU_RETIREMENT (4096) spawnflag'ına sahip tüm prop_ragdoll'ları kaldıracaktır.
Bir Global State'in (Genel Durum) sayacını ayarlar.
Daha fazla bilgi için Global States'e bakın.
Bir Global State'in (Genel Durum) kapalı, aktif veya ölü (inaktif) olup olmadığını ayarlar.
Daha fazla bilgi için Global States'e bakın.
game.SetSkillLevel( number level )
Oyunun zorluk seviyesini ayarlar, game.GetSkillLevel ile alınabilir.
Bu, "skill" convar'ı sunucu tarafında değiştirildiğinde otomatik olarak değişecektir.
game.SetTimeScale( number timeScale )
Oyunun zaman ölçeğini ayarlar.
Bu fonksiyonun, hile korumalı olan host_timescale convar'ını kullanma ihtiyacını ortadan kaldırması beklenir.
Belirli bir oyuncunun hareketini yavaşlatmak veya hızlandırmak için bunun yerine Player:SetLaggedMovementValue kullanın.
host_timescale gibi, bu metot da sesleri etkilemez; bunu değiştirmek isterseniz GM:EntityEmitSound'a bakın. Gerçek zaman ölçeği, host_timescale ile game.GetTimeScale'in çarpımı olacaktır
boolean game.SinglePlayer()
Mevcut oturumun tek oyunculu bir oyun olup olmadığını döndürür.
Oyuncu başlangıç konumu olarak kullanılması gereken varlığın adını döndürür.
Bu, doğma noktalarıyla (spawn points) aynı şey değildir (Bunun için GM:PlayerSelectSpawn'a bakın), bu, oyuncuyu haritalar arasında düzgün bir şekilde geçirmek için kullanılır ve bu nedenle yalnızca tek oyunculu modda bir trigger_changelevel varlığı aracılığıyla bir seviye değişikliğinden sonra ayarlanır.
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord