GM
Temel oyun modunu baz alan tüm oyun modları için mevcut olan hook'lar.
Ayrıca bakınız: GM structure.
Olaylar
Bir harita G/Ç (Giriş/Çıkış) olayı meydana geldiğinde çağrılır.
Varlıklarda Input'ları tetikleyen fonksiyonlar için ayrıca Entity:Fire ve Entity:Input'a bakınız.
GM:AddDeathNotice( string attacker, number attackerTeam, string inflictor, string victim, number victimTeam )
Bir ölüm bildirimi girdisi ekler.
Fare hassasiyetini ayarlamanıza olanak tanır.
Bir oyuncu "kullanma" tuşunu kullanarak bir şeyi almaya çalıştığında çağrılır, geçersiz kılmak için return edin.
Eğer sv_playerpickupallowed 0 olarak ayarlanmışsa bu hook çağrılmaz.
Gravity Gun ile alma varyantı için GM:GravGunPickupAllowed'a bakınız.
Physics Gun ile alma varyantı için GM:PhysgunPickup'a bakınız.
Bu hook, bir oyuncu için animasyonları hesaplamak amacıyla kullanılır.
Bu hook, hem istemci hem de sunucuda aynı anda aynı değerleri döndürmelidir. İstemcide oyuncuların animasyonları görmesi için, sunucuda ise isabet saptamanın (hit detection) düzgün çalışması için gereklidir.
Oyuncu bir araç sürerken GM:CalcView'dan çağrılır.
GM:CalcView'ı geçersiz kılan oyun modlarında bu hook çağrılmayabilir.
Varsayılan görünümü geçersiz kılmaya izin verir.
Vector, Angle GM:CalcViewModelView( Weapon wep, Entity vm, Vector oldPos, Angle oldAng, Vector pos, Angle ang )
Viewmodel'in pozisyonunu ve açısını geçersiz kılmaya olanak tanır.
Bir oyuncu geri alma işlemi oluşturmaya çalıştığında çağrılır.
Bir varlık üzerinde bir değişken düzenlendiğinde (Özellikleri Düzenle... menüsü tarafından çağrılır), düzenlemeye izin verilip verilmeyeceğini belirlemek için çağrılır.
Sistem hakkında daha fazla bilgi için Düzenlenebilir varlıklar bölümüne bakın.
Oyuncunun kendi başına araçtan çıkıp çıkamayacağını belirler. Player:ExitVehicle bu hook'u atlar.
Ters hook için GM:CanPlayerEnterVehicle'a bakınız.
Bir oyuncu herhangi bir nedenle bir araçtan çıktığında çağrılacak bir hook için ayrıca GM:PlayerLeaveVehicle'a bakınız.
Belirtilen oyuncunun belirtilen araca girip giremeyeceğini belirler. Player:EnterVehicle yine de bu hook'u çağıracaktır.
GM:PlayerEnteredVehicle'dan hemen önce çağrılır. Ayrıca GM:CanExitVehicle'a bakınız.
Oyuncunun kill veya explode konsol komutlarını kullanarak kendini öldürüp öldüremeyeceğini belirler.
Oyuncunun varlığın donmasını çözüp çözemeyeceğini belirler.
Bir özelliğin kullanılıp kullanılamayacağını kontrol eder.
Bir oyuncu geri alma işlemi yapmaya çalıştığında çağrılır.
GM:CaptureVideo()
IVideoWriter kullanarak demoları videoya kaydetmek için her karede çağrılır.
Bu hook, bir demonun kaydedilip kaydedilmediğine bakılmaksızın her karede çağrılır
Sohbet kutusuna bir mesaj yazdırıldığında çağrılır. Argümanları olmasına rağmen oyuncu mesajlarıyla çalışmadığını unutmayın.
Oyuncu mesajları için GM:PlayerSay ve GM:OnPlayerChat'e bakınız.
GM:ChatTextChanged( string text )
Kullanıcının sohbet giriş kutusunun içeriği değiştirildiğinde çağrılır.
boolean, string GM:CheckPassword( string steamID64, string ipAddress, string svPassword, string clPassword, string name )
Yerel olmayan bir oyuncu bağlandığında, Lua sisteminin şifreyi kontrol etmesine izin vermek için çağrılır.
Temel oyun modlarındaki varsayılan davranış, normalde olacak olanı taklit eder. Eğer sv_password ayarlanmışsa ve değeri istemci tarafından girilen şifreyle eşleşiyorsa, oyuncunun katılmasına izin verilir. Ayarlanmamışsa da katılmasına izin verilir.
Bir oyuncunun oturum açma durumu değiştiğinde çağrılır.
Bu hook sırasında herhangi bir noktada userID'den geçerli bir oyuncu nesnesi alamazsınız. Hata Takipçisi: 4899
GM:CloseDermaMenus()
Derma menüleri CloseDermaMenus ile kapatıldığında çağrılır.
Bir varlık istemci tarafında bir ragdoll olduğunda çağrılır.
Sunucu tarafı ragdoll'ları için GM:CreateEntityRagdoll'a bakınız.
Bir varlığın sunucu tarafı ragdoll'u oluşturulduğunda çağrılır.
İstemci tarafı ragdoll'ları için GM:CreateClientsideRagdoll'a bakınız.
Oyuncuların hareketlerini sunucuya gönderilmeden önce değiştirmenize olanak tanır.
Hareket sistemi hakkında bir açıklama için Oyun Hareketi bölümüne bakın.
Bu hook'un sadece istemci tarafında olması nedeniyle, kullanıcı tarafından geçersiz kılınabilir ve mantığınızı tamamen atlamalarına olanak tanıyabilir, bunun yerine paylaşılan bir dosyada GM:StartCommand kullanılması önerilir.
GM:CreateTeams()
Takımlar bu hook içinde team.SetUp kullanılarak oluşturulur.
Bu hook, GM:PreGamemodeLoaded'dan önce çağrılır.
Bir animasyon olayı üzerine çağrılır, bu, Player:AddVCDSequenceToGestureSlot, Player:AnimRestartGesture ve benzeri oyuncu animasyon fonksiyonlarını çağırmak için ideal bir yerdir.
Oyuncunun ölümünü yönetir.
Bu hook, oyuncu Player:KillSilent ile öldürülürse çağrılmaz. Bunun için GM:PlayerSilentDeath'e bakınız.
GM:PlayerDeath bu hook'tan sonra çağrılır
GM:PostPlayerDeath ondan sonra çağrılır
Bu hook'ta Player:Alive false döndürecektir.
Bu hook, mevcut tüm ölüm bildirimlerini çizmek için her karede çağrılır.
GM:DrawMonitors()
Oyun içi monitörleri (Breencast, oyun içi TV'ler, vb.) çizmeden önce her karede çağrılır, ancak hiçbir şey yapmıyor gibi görünüyor, 2D veya 3D elemanları render etme girişimleri başarısız oluyor.
GM:DrawOverlay()
Diğer tüm 2D çizim hook'ları çağrıldıktan sonra çağrılır. Tüm VGUI Panelleri ve HUD'ların üzerine çizer.
GM:HUDPaint'in aksine, bu hook oyun duraklatıldığında ve Kamera SWEP'i kuşanıldığında çağrılır.
r_drawvgui devre dışı bırakıldığında çağrılmaz.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
boolean GM:DrawPhysgunBeam( Player ply, Weapon physgun, boolean enabled, Entity target, number physBone, Vector hitPos )
Physgun efektlerinin render edilmesini geçersiz kılmanıza olanak tanır.
Bu hook, physgun sprite efektlerini de geçersiz kılabilme yeteneğine sahip olduğu için, convar bunu yapmazken, physgun_drawbeams 0 olarak ayarlandığında bile çağrılır.
Bir varlık sürmeyi bırakmadan hemen önce çağrılır. Bu hook'u geçersiz kılmak, drive.End'in çağrılmamasına ve oyuncunun sürmeyi bırakmamasına neden olur.
Bir ses çalındığında çağrılır. Sunucu, istemcinin de Entity:EmitSound çağırmadan sesi çalması durumunda bu, istemci tarafında çağrılmaz.
Bir mermi bir varlıktan ateşlenmek üzereyken her seferinde çağrılır, bu da mermi yapısını mermi gerçekten ateşlenmeden önce tamamen değiştirmenize olanak tanır.
Dağılım hesaplamalarından sonraki nişan yönü gibi nihai mermi değerlerini yakalamak isterseniz GM:PostEntityFireBullets'e bakınız.
Bu hook doğrudan Entity:FireBullets'tan çağrılır. Bu nedenle, bu hook içinde Entity:FireBullets çağıramazsınız, aksi takdirde sonsuz bir döngü oluşur ve oyun çöker.
Harita başlangıcında bir varlık üzerinde bir anahtar-değer çifti ayarlandığında çağrılır. Entity:SetKeyValue tarafından çağrılmaz.
Scriptli varlıklar için bir hook olan ENTITY:KeyValue'a ve onun scriptli silah alternatifi olan WEAPON:KeyValue'a bakınız.
Bir NW2Var değiştirildiğinde çağrılır.
Bir Lua Varlığına dayalı bir varlıkta bir NW2Var ayarlanırsa, NW2Var'ın diğerleriyle karışması ve birden çok kez güncellenmesiyle sonuçlanabilir. Hata Takipçisi: 5455Bu hook, istemci değeri gerçekten değiştirilmeden önce tetiklenir. Bu hook içinde belirtilen değişken adı için GetNW2 fonksiyonunu çağırmak, mevcut/güncellenmiş değeri değil, eski değeri döndürecektir.
Bu hook, tam bir güncelleme sırasında tüm Varlıklardaki tüm NW2Var'lar için çağrılır. Bu durumda eski değer nil olacaktır.
Bu hook görünürde bir neden olmadan çağrılıyorsa, tam bir güncellemeden kaynaklanıp kaynaklanmadığını kontrol edin.
Bir varlığın kaldırılmasından hemen önce çağrılır.
Bu hook, Source Engine'deki ağ sisteminin çalışma şekli nedeniyle tam güncellemeler sırasında istemci tarafında çağrılır.
Bu, istemcinin sunucuyla bağlantısını kısa süreliğine kaybettiğinde meydana gelebilir ve test amacıyla cl_fullupdate ile simüle edilebilir.
Bir varlık hasar almak üzereyken çağrılır. Bu hook'ta hasar bilgisinin tüm kısımlarını değiştirebilir veya hasar olayını tamamen engelleyebilirsiniz.
Nihai hasar olayını yakalamak isterseniz GM:PostEntityTakeDamage'e bakınız.
Bu hook'tan hasar alan varlığa hasar uygulamak sonsuz döngüye/çökmeye yol açacaktır.
Bu hook, oyuncu kullanma eyleminin uygulanması gereken varlığı sorgular.
Bu hook'un varsayılan davranışı CBasePlayer::FindUseEntity'dedir. CBasePlayer::FindUseEntity'nin paylaşılan olarak tanımlanmasına rağmen, pratikte yalnızca sunucu tarafında çağrılır, bu nedenle bu hook da yalnızca sunucu tarafında çağrılacaktır. Modüllerin bunu istemci tarafında çağırması mümkündür, bu nedenle Lua kodu yine de paylaşılan olarak ele alınmalıdır.
GM:FinishChat()
Kullanıcı yazmayı iptal ettiğinde/bitirdiğinde çalışır.
GM:Move'dan sonra çağrılır, CMoveData'daki tüm değişiklikleri oyuncuya uygular.
Hareket sistemi hakkında bir açıklama için Oyun Hareketi bölümüne bakınız.
string GM:ForceDermaSkin()
Tüm paneller için varsayılan Derma görünümünü geçersiz kılmaya izin vermek için çağrılır.
Bu hook yalnızca Lua başlangıcında çağrılır, zaten çağrıldıktan sonra değerini değiştirmek (veya yeni hook'lar eklemek) herhangi bir etki yaratmaz.
GM:GameContentChanged()
Oyun içeriği değiştiğinde, örneğin bir eklenti veya bağlanabilir bir oyun (kaldırıldığında) bağlandığında çağrılır.
Ölüm bildiriminde varlığın adı olarak gösterilecek çevrilmemiş bir dize almak için kullanılan dahili bir fonksiyondur. Bkz. GM:SendDeathNotice
Bir oyuncu düşmekten hasar aldığında çağrılır, hasarı geçersiz kılmaya izin verir.
string GM:GetGameDescription()
Oyun(sunucu) sunucu tarayıcısında oyun modu olarak gösterilen metni güncellemesi gerektiğinde çağrılır. Yaklaşık 2 saniyelik bir aralıkla çalışır, sunucu hazırda bekleme modundayken bile çalışır.
Bu hook (ve sv_gamename_override komutu) DarkRP veya Trouble Terrorist Town gibi bazı popüler oyun modlarında çalışmayabilir. Bu bir hata değildir, sadece çalışma şekli budur. Daha fazla bilgi için buraya bakın.
Ayrıca, yalnızca adanmış sunucularda çalışır ve sunucuda oyuncu olmasa ve hazırda bekleme fonksiyonu etkin olsa bile düzenli aralıklarla (yaklaşık bir saniye) çağrılır.
number, number, number, number GM:GetMotionBlurValues( number horizontal, number vertical, number forward, number rotational )
Source Engine'in hareket bulanıklığı (motion blur) shader'larını değiştirmenize olanak tanır.
Varlık için tercih edilen taşıma açılarını belirlemek üzere çağrılır. Hem +use ile alma hem de gravity gun ile alma için çalışır.
Çok oyunculu modda gravity gun kodlamasının doğası gereği, istemci tarafı tahmininin taşıma açılarını bilmemesi nedeniyle bu hook çalışmıyor gibi görünebilir (ancak emin olun çalışır). +use ile alma bu sorunu göstermez çünkü oyuncunun nesneyi taşımasını istemci tarafında tahmin etmez (çok oyunculu modda prop'un geride kaldığını fark edebilirsiniz). Bu hook, testere bıçağı ve zıpkın gibi propların tercih edilen taşıma açılarını geçersiz kılamaz.
Verilen varlığın takımı için rengi döndürür. Bu, sohbette ve ölüm bildirimi metninde kullanılır.
Verilen takım indeksi için takım rengini döndürür.
GM:GrabEarAnimation( Player ply )
Oyun modunuzda kulak kapma animasyonunu devre dışı bırakmak/değiştirmek için bu hook'u geçersiz kılın. Varsayılan olarak, sunucuda hiçbir yerde çağrılmaz.
Bir varlık bir gravity gun tarafından bırakıldığında çağrılır.
Physics Gun bırakma varyantı için GM:PhysgunDrop'a bakınız.
Bir varlık bir gravity gun tarafından alındığında çağrılır.
Oyuncu +use ile alma varyantı için GM:OnPlayerPhysicsPickup'a bakınız.
Physics Gun ile alma varyantı için GM:OnPhysgunPickup'a bakınız.
Bir oyuncunun gravity gun ile bir varlığı alıp alamayacağını sorgulamak için her tick'te çağrılır.
+USE ile alma varyantı için GM:AllowPlayerPickup'a bakınız.
Physics Gun ile alma varyantı için GM:PhysgunPickup'a bakınız.
Sandbox türevi oyun modlarında her karede üzerine gelinen varlıkta ENTITY:GravGunPickupAllowed'u çağırır.
Bir varlık gravity gun ile fırlatılmak (birincil ateş) üzereyken çağrılır.
Varsayılan olarak bu fonksiyon Sandbox türevi oyun modlarında ENTITY:GravGunPunt'un çalışmasını sağlar.
gui.EnableScreenClicker tarafından kullanılan panel ve Panel:ParentToHUD tarafından kullanılan panel gibi CGModBase'den türetilmiş herhangi bir panelde fare çift tıklandığında çağrılır.
Varsayılan olarak bu hook GM:GUIMousePressed'i çağırır.
Bir oyuncu Sandbox'taki içerik menüsünde veya gui.EnableScreenClicker tarafından kullanılan panel ve Panel:ParentToHUD tarafından kullanılan panel gibi CGModBase'den türetilmiş herhangi bir panelde bir fare tuşuna bastığında çağrılır.
Tüm VGUI öğelerinde çağrılan bir hook için GM:VGUIMousePressed'e bakınız.
Bir oyuncu Sandbox'taki içerik menüsünde veya gui.EnableScreenClicker tarafından kullanılan panel ve Panel:ParentToHUD tarafından kullanılan panel gibi CGModBase'den türetilmiş herhangi bir panelde bir fare tuşunu bıraktığında çağrılır.
Oyuncu hasar aldığında, oyuncu zırh azaltmasını yönetmek için çağrılır.
Diğer hasar hook'ları ile hook sırasını netleştirin.
Oyuncu sürüş animasyonlarını geçersiz kılmaya izin verir.
Oyuncu eğilme animasyonlarını geçersiz kılmaya izin verir.
Oyuncu modeli animasyon sistemi tarafından her karede çağrılır. Oyuncu zıplama animasyonlarını geçersiz kılmaya izin verir.
Oyuncu modeli animasyon sistemi tarafından her karede çağrılır. Oyuncu yere inme animasyonlarını geçersiz kılmaya izin verir.
Oyuncu noclip animasyonlarını geçersiz kılmaya izin verir.
Oyuncu yüzme animasyonlarını geçersiz kılmaya izin verir.
Oyuncu uçma (havada, noclip değil) animasyonlarını geçersiz kılmaya izin verir.
GM:HideTeam()
Takım seçme panelini gizler.
İstemci cephane aldığında çağrılır. Varsayılan HUD bildirimini devre dışı bırakmak için geçersiz kılın.
GM:HUDDrawPickupHistory()
HUD alma geçmişini render eder. Varsayılanı gizlemek veya kendi HUD'ınızı çizmek için geçersiz kılın.
GM:HUDDrawScoreBoard()
Skor tablosunu render etmek için her karede çağrılır.
Bu iş için bu hook yerine Derma ve VGUI kullanılması önerilir. GM:HUDPaint'ten hemen sonra çağrılır.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
boolean GM:HUDDrawTargetID()
İmlecinizi veya farenizi bir oyuncunun üzerine getirdiğinizde oyuncu bilgilerini çizmek için GM:HUDPaint'ten çağrılır.
GM:HUDItemPickedUp( string itemName )
Bir eşya alındığında çağrılır. Varsayılan HUD bildirimini devre dışı bırakmak için geçersiz kılın.
GM:HUDPaint()
HUD çizilmesi gerektiğinde çağrılır.
Bu, özel HUD öğeleri çizmek için ideal bir yerdir.
Varsayılan oyun HUD'unun çizilmesini önlemek için GM:HUDShouldDraw kullanın.
Bu hook, Kamera SWEP'i tutulurken veya esc menüsü açıkken çağrılmaz.
Bu durumlarda çizim yapmanız gerekiyorsa, bunun yerine GM:DrawOverlay kullanın.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
GM:HUDPaintBackground()
HUD arka planı çizilirken GM:HUDPaint'ten önce çağrılır.
Tıpkı GM:HUDPaint gibi, bu hook da ana menü görünür olduğunda çağrılmaz. GM:PostDrawHUD bu davranışa sahip değildir.
Bu hook'ta render edilen şeyler, her zaman GM:HUDPaint'te render edilenlerin arkasında görünür.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
Oyun modu, istemcinin HUD'unda (heads-up display) belirli bir öğeyi çizmek üzereyken çağrılır.
Bu hook, saniyede YÜZLERCE kez çağrılır (ortalama olarak kare başına 5 defadan fazla). Herhangi bir yoğun hesaplama işlemi yapmamalısınız.
GM:HUDWeaponPickedUp( Weapon weapon )
Bir silah alındığında çağrılır. Varsayılan HUD bildirimini devre dışı bırakmak için geçersiz kılın.
GM:Initialize()
Oyun modu yüklendikten ve başladıktan sonra çağrılır.
Bu hook çağrıldığı sırada hiçbir varlık mevcut olmaz, tüm harita varlıkları başlatıldıktan sonra bir kez çalışan bir hook için lütfen GM:InitPostEntity'ye bakınız.
GM:InitPostEntity()
Tüm varlıklar başlatıldıktan sonra çağrılır. Bu hook'tan itibaren LocalPlayer geçerli bir nesne döndürecektir.
Bu noktada istemci yalnızca spawn noktalarının PVS'si (Potansiyel Görünürlük Seti) içindeki varlıkları bilir. Örneğin, sunucu bu PVS içinde olmayan bir varlık gönderirse, istemci bunu NULL varlık olarak alacaktır.
Sağlanan Kullanıcı Komutunu fare girdisiyle değiştirmenize olanak tanır. Bu, fareyi hareket ettirmenin görüş açılarına garip şeyler yapmasını sağlamak için kullanılabilir.
Bir oyuncunun belirli bir spawn noktasında spawn olup olamayacağını kontrol eder.
Bir oyuncu IN tuşları içinde yer alan bir tuşa bastığında çağrılır.
Tüm girdi türlerini işleyen daha genel amaçlı bir fonksiyon için GM:PlayerButtonDown'a bakınız.
Tuş bırakma olayı için GM:KeyRelease'e bakınız.
Tahmin edilen bir hook olmasına rağmen, kolaylık olması için tek oyunculu modda yine de çağrılır.
Bunun tahmin edilen bir hook olması nedeniyle, bu hook'tan yalnızca sunucu tarafında oluşturulan ParticleEffects istemciye ağ üzerinden gönderilmez, bu yüzden bunu her iki alanda da yaptığınızdan emin olun.
Bir oyuncu tarafından bir IN tuşu bırakıldığında çalışır.
Tüm girdi türlerini işleyen daha genel amaçlı bir fonksiyon için GM:PlayerButtonUp'a bakınız.
Tuşa basma olayı için GM:KeyPress'e bakınız.
Tahmin edilen bir hook olmasına rağmen, kolaylık olması için tek oyunculu modda yine de çağrılır.
Bu dahili olarak kullanılır - kullanabilmenize rağmen muhtemelen kullanmamalısınız.
Oyunun bir harita yüklemesi gerektiğinde gm_load'dan çağrılır.
Steam atölyesinden bir eklenti indirilirken çağrılır. Varsayılan olarak süslü atölye indirme panelindeki ayrıntıları güncellemek için kullanılır.
GM:MenuStart()
menu.lua yüklenmesi bittiğinde çağrılır.
GM:MouthMoveAnimation( Player ply )
Sesli sohbette konuşurken ağız hareketini devre dışı bırakmak için bu oyun modu fonksiyonunu geçersiz kılın. Varsayılan olarak, sunucuda hiçbir yerde çağrılmaz.
Move hook'u, oyuncunun MoveData'sını manipüle etmeniz için çağrılır.
Move hook'unda oyuncunun pozisyonunu hiçbir şekilde ayarlamamalısınız. Bunun nedeni, tahmin hataları nedeniyle, netcode'un paketler geç geldiğinde move hook'unu birden çok kez çalıştırabilmesidir. Bu nedenle bu hook'ta yalnızca movedata yapısını ayarlamalısınız.
Genellikle bu hook'u kullanmanıza gerek kalmaz - özel bir hareket türü yapmak istiyorsanız drive sistemine bakmalısınız.
Bu hook, GM:PlayerTick'ten sonra çağrılır.
Hareket sistemi hakkında bir açıklama için Oyun Hareketi bölümüne bakınız.
boolean GM:NeedsDepthPass()
Bu hook'ta true döndürmek, render.GetResolvedFullFrameDepth ile tanımlanan derinlik tamponlarını (depth buffers) render etmesine neden olur.
GM:NetworkEntityCreated( Entity ent )
Bir varlık ağ üzerinden oluşturulduğunda çağrılır.
Bir oyuncunun SteamID'si Steam tarafından doğrulandığında çağrılır.
Ayrıca GM:PlayerAuthed ve Player:IsFullyAuthenticated'e bakınız.
Bu hook, tek oyunculu modda kasıtlı olarak çalışmaz çünkü SteamID bu durumda doğrulanmaz. Bu aynı zamanda her yinelenen -multirun istemcisi için sv_lan 1 sunucuları için de geçerlidir.
Bu varlık, bu YerelOyuncu için iletim durumunu değiştirdiğinde, örneğin PVS'den (Potansiyel Görünürlük Seti) çıktığında veya yeniden girdiğinde çağrılır.
Bu, Entity:SetPredictable'ın sıfırlanmasını yönetmek için en iyi yerdir, çünkü bu genellikle oyuncu geciktiğinde ve tam bir paket güncellemesi talep ettiğinde çağrılır.
Varlık iletimi durdurduğunda, Entity:IsDormant yalnızca bu hook'tan sonra true döndürecektir.
Bir oyuncu bir başarı kazandığında çağrılır. Achievements kütüphanesi ile bir başarı ID'sinden adı ve diğer bilgileri alabilirsiniz.
Yerel oyuncu sohbet kutusu açıkken TAB tuşuna bastığında çağrılır.
Bu fonksiyon şimdi player.Iterator kullanıyor. Bu, her zaman çalışamayacağı anlamına gelir, çünkü GM:OnEntityCreated veya GM:EntityRemoved hook'larındaki bir hata onu kesintiye uğratabilir. Hiçbir eklentinin bu hook'larda hataya neden olmadığından emin olun.
Bir istemcide bir Lua hatası oluştuğunda ve sunucuya gönderildiğinde sunucuda çağrılır.
Bu hook, sunucu tarafı kodunun istemci tarafı hatalarını tespit etmesine ve kaydetmesine olanak tanır.
Kendi alanında Lua hatalarını yakalayan bir hook için GM:OnLuaError'a bakınız.
Stack argümanının 0 değerli bir tablo içerebileceğini unutmayın. Uyarı: hook, lua hata spam'ine karşı "korur". 1 saniyeden daha kısa sürede 5 hata olursa, hook bu 4 hatanın hiçbirini almaz.
boolean GM:OnCloseCaptionEmit( string soundScript, number duration, boolean fromPlayer, string fullText )
Altyazı kutusuna bir başlık/altyazı gönderildiğinde çağrılır.
GM:OnContextMenuClose()
İçerik menüsü tuş ataması (+menu_context), varsayılan olarak C tuşu, bırakıldığında çağrılır.
input.IsKeyTrapping true döndürürse bu hook çalışmaz.
Ayrıca bakınız GM:OnContextMenuOpen.
GM:OnContextMenuOpen()
İçerik menüsü tuş ataması (+menu_context), varsayılan olarak c tuşu, basıldığında çağrılır.
Ayrıca bakınız GM:OnContextMenuClose.
Çılgın fizik tespiti, Çılgın Fizik'e sahip bir varlık tespit ettiğinde çağrılır.
Bir oyuncu bir patlamadan yaralandığında çağrılır. Varsayılan ses efektini devre dışı bırakmak için geçersiz kılın.
GM:OnEntityCreated( Entity entity )
Varlık oluşturulur oluşturulmaz çağrılır. Bu aşamada varlığın çok az özelliği başlatılmış olacaktır (anahtar değerler, sınıf adı, bayraklar, herhangi bir şey), özellikle sunucu tarafında.
İlk harita başlangıcındaki bazı varlıklar bu hook'tan geçirilir ve ardından aynı karede kaldırılır. Bu, motor tarafından modeller ve sesler gibi şeyleri önbelleğe almak için kullanılır, bu yüzden geçerliliklerini her zaman IsValid ile kontrol edin. GM:InitPostEntity'den sonra hook'unuzu oluşturursanız IsValid kontrolü gerektirmez. Bu olay sırasında oluşturulan varlığı kaldırmak beklenmedik sorunlara yol açabilir. Varlığı güvenli bir şekilde kaldırmak için SafeRemoveEntityDelayed( entity, 0 ) kullanın.
Bir varlığın Entity:WaterLevel'i değiştiğinde çağrılır.
0 - Varlık suda değil.
1 - Hafifçe batmış (en azından ayaklarına kadar).
2 - Varlığın çoğunluğu batmış (en azından beline kadar).
3 - Tamamen batmış.
Bu hook bir fizik geri çağrısı (physics callback) olarak kabul edilebilir, bu yüzden içinde çarpışma kurallarını (Entity:SetSolidFlags) değiştirmek çökmeye yol açabilir!
GM:OnGamemodeLoaded()
Oyun modu yüklendiğinde çağrılır.
Bu çalıştırıldığında LocalPlayer() NULL döndürür.
Bir Lua hatası oluştuğunda çağrılır.
İstemci hatalarını sunucu tarafında almak istiyorsanız, bu hook'u kullanabilirsiniz: GM:OnClientLuaError
Sunucu alanında, bu hook yalnızca sunucu tarafı hatalarını hesaba katar, istemci tarafı hatalarını değil.
Bir Eklenti Çatışması meydana geldiğinde çağrılır, yalnızca Menü alanında çalışır.
Bir NPC öldüğünde bir eşya düşürdüğünde çağrılır.
Yalnızca NPC'nin oluşturduğu varlıklar için çağrılır.
Düşürülen silahlar için çağrılmaz (Half-Life: Source NPC'leri hariç, çünkü onlar gerçek silah varlıkları kullanmazlar, silahları ölüm anında oluştururlar).
GM:PlayerDroppedWeapon zaten NPC silah düşmeleri için çalışır. (Evet, PLAYERDroppedWeapon yazdığını biliyorum, hook'un düşüren varlıktan değil, silahın kendisinden çağrılması nedeniyle çalışır)
Bir NPC öldürüldüğünde çağrılır.
Ana menü, küçük bir aralıkta GM:OnPauseMenuShow tarafından dört kez engellendiğinde çağrılır. Bu, kullanıcıya ana menüyü zorla açmak için ⇧ shift tuşunu basılı tutabileceğini açıklamak için dahili olarak kullanılır.
boolean GM:OnPauseMenuShow()
Duraklatma menüsü açılmaya çalışıldığında çağrılır. O seferlik ana menünün açılmasını engellemenize olanak tanır.
Kullanıcı bu hook'u çağırmamak için ⇧ shift tuşunu basılı tutabilir. Ana menü kısa sürede birden çok kez engellenirse, son kullanıcıya hook'u nasıl atlayacağına dair bir uyarı gösterilir.
GM:OnPermissionsChanged()
Bir izin Verildiğinde veya Geri Alındığında çağrılır.
Bir oyuncu physgun ile bir varlığı dondurduğunda çağrılır.
Bir oyuncu Physics Gun'ı ile bir varlığı başarıyla aldığında çağrılır.
Oyuncunun bir varlığı alıp alamayacağını sormak için birden çok kez çağrılan GM:PhysgunPickup ile karıştırılmamalıdır.
Gravity Gun ile alma varyantı için GM:GravGunOnPickedUp'a bakınız.
Oyuncu +use ile alma varyantı için GM:OnPlayerPhysicsPickup'a bakınız.
Bir oyuncu physgun ile şarjör değiştirdiğinde çağrılır. Varsayılan donma çözme davranışını devre dışı bırakmak için bunu geçersiz kılın.
Bunu kullanmanızı önermiyoruz. Gelecekteki bir güncellemede değiştirilebilir veya kaldırılabilir.
Bunun yerine, her Player:SetTeam çağrısı için çalışan GM:PlayerChangedTeam kullanın.
Bir oyuncu GM:PlayerJoinTeam kullanarak takım değiştirdiğinde çağrılır.
Bu hook hook.Add ile çalışmaz ve yalnızca temel oyun modu tarafından GM:PlayerJoinTeam'den manuel olarak çağrılır
Bir oyuncu bir sohbet mesajı gönderdiğinde çağrılır. Sunucu tarafı eşdeğeri için GM:PlayerSay'e bakınız.
Bu hook'un girdisi (veya bastırılması) GM:PlayerSay'den gelen çıktıya dayanır. Sunucu tarafında bastırılan sohbet olayları bu hook'u çağırmaz.
Bir oyuncu bir zıplama veya düşüşten sonra yerle temas ettiğinde çağrılır.
Bir oyuncu zıpladığında çağrılır.
Bir oyuncu +use ile bir varlığı düşürdüğünde çağrılır.
Bir oyuncu +use ile bir varlığı aldığında çağrılır. Bu, varlık GM:AllowPlayerPickup'tan geçtikten sonra çağrılacaktır.
Gravity Gun ile alma varyantı için GM:GravGunOnPickedUp'a bakınız.
Physics Gun ile alma varyantı için GM:OnPhysgunPickup'a bakınız.
GM:OnReloaded()
Oyun modu otomatik yenileme ile yeniden yüklendiğinde çağrılır.
Bu olayın tek bir yenileme olayı için birden fazla kez tetiklenebileceği görülüyor.
Oyuncunun oyunun ekran çözünürlüğü değiştiğinde çağrılır.
Bu hook çağrıldığında ScrW ve ScrH yeni değerleri döndürecektir.
GM:OnSpawnMenuClose()
Bir oyuncu klavyesindeki +menu tuş atamasını bıraktığında çağrılır, bu varsayılan olarak Q tuşuna atanmıştır.
GM:OnSpawnMenuOpen()
Bir oyuncu klavyesindeki +menu tuş atamasına bastığında çağrılır, bu varsayılan olarak q tuşuna atanmıştır.
GM:OnTextEntryGetFocus( Panel panel )
Bir DTextEntry odaklandığında çağrılır.
Bu hook DTextEntry:OnGetFocus ve DTextEntry'nin PANEL:OnMousePressed'inden çalıştırılır.
GM:OnTextEntryLoseFocus( Panel panel )
Bir DTextEntry odağını kaybettiğinde çağrılır.
Oyuncu silahını başka bir silahla değiştirdiğinde - ve viewmodel modeli değiştiğinde çağrılır.
Bu her zaman istemci tarafında çağrılmaz. Hata Takipçisi: 2473
Bir oyuncu Physgun ile bir varlığı düşürdüğünde çağrılır.
Gravity Gun düşürme varyantı için GM:GravGunOnDropped'e bakınız.
Bir oyuncunun Physics Gun ile bir varlığı alıp alamayacağını belirlemek için çağrılır.
Bir oyuncu bir varlığı başarıyla aldığında çağrılan bir hook için GM:OnPhysgunPickup'a bakınız.
Gravity Gun ile alma varyantı için GM:GravGunPickupAllowed'a bakınız.
+USE ile alma varyantı için GM:AllowPlayerPickup'a bakınız.
Oyuncunun yedek cephane sayısı değiştikten sonra çağrılır.
Oyuncunun Player:UniqueID'si ilk kez ayarlandıktan sonra çağrılır. Bu hook tek oyunculu modda da çağrılacaktır.
Oyuncunun SteamID'si Steam tarafından doğrulandığında çağrılan bir hook için GM:NetworkIDValidated'e bakınız.
Bir tuş atamasına basıldığında çalışır. Komutları engellemeye izin verir.
"alias" konsol komutunu kullanarak, bu hook etkili bir şekilde atlatılabilir. Bunu önlemek için input.TranslateAlias kullanın.
Kullanıcının +attack, +left ve benzeri diğer hareket komutlarını kullanmasını engellemek için, lütfen bunun yerine GM:StartCommand kullanmayı düşünün. Üçüncü argüman her zaman true olacaktır. Hata Takipçisi: 1176Bu, fonksiyon tuşları atamaları (F1-F12) için çalışmaz. Hata Takipçisi: 2888
Bir oyuncu bir tuşa bastığında çağrılır.
Oyuncunun klavye girişi etkinleştirilmiş bir paneli açıksa bu çağrılmaz, bunun yerine PANEL:OnKeyCodePressed kullanın.
IN enum kullanan bir alternatif için GM:KeyPress'e bakınız.
"tuş bırakma" olayı için GM:PlayerButtonUp'a bakınız.
Bir oyuncu bir tuşu bıraktığında çağrılır.
Oyuncunun klavye girişi etkinleştirilmiş bir paneli açıksa bu çağrılmaz, bunun yerine PANEL:OnKeyCodeReleased kullanın.
IN enum kullanan bir alternatif için GM:KeyRelease'e bakınız.
"tuşa basma" olayı için GM:PlayerButtonDown'a bakınız.
Bir oyuncunun sesli sohbette başka bir oyuncuyu duyup duyamayacağına karar verir.
Bu hook bir tick'te game.MaxPlayers * game.MaxPlayers kez çağrılır, bu yüzden kodunuzun verimli olduğundan emin olun.
Bir oyuncunun bir takıma katılmasına izin verilip verilmediğini döndürür
Bu hook hook.Add ile çalışmaz ve yalnızca temel oyun modu tarafından GM:PlayerJoinTeam'den manuel olarak çağrılır
Bir oyuncunun bir eşyayı (cephane, sağlık, zırh) almasına izin verilip verilmediğini döndürür.
Bu genellikle yalnızca temel oyun varlıkları için çalışır, benzer varlıkları uygulayan mod yazarları da bu hook'u manuel olarak çağırmadıkça.
Silah alımlarını kontrol eden bir hook için GM:PlayerCanPickupWeapon'a bakınız.
Bir oyuncunun bir silahı almasına izin verilip verilmediğini döndürür.
Bu false döndürürse, Player:Give çalışmaz.
Sağlık kitleri, zırh pilleri ve cephane varlıkları gibi şeyleri etkileyen bir hook için GM:PlayerCanPickupItem'a bakınız.
Bir oyuncu bu hook'u geçtikten sonra bir silahı başarıyla aldığında çağrılan bir hook için GM:WeaponEquip'e bakınız.
boolean GM:PlayerCanSeePlayersChat( string text, boolean teamOnly, Player listener, Player speaker )
Oyuncunun diğer oyuncunun sohbetini görüp göremeyeceğini döndürür.
Speaker parametresi, örneğin konsol mesajları görüntülendiğinde olduğu gibi geçerli bir Player nesnesi olmak zorunda değildir.
Bir oyuncu Player:SetTeam kullanarak takım değiştirdiğinde çağrılır.
Sonsuz bir döngüye neden olabileceğinden bu hook'ta Player:SetTeam çağırmaktan kaçının! Bu hook içindeki Player:Team oldTeam'i döndürecektir.
Bir oyuncu bir şey spawn etmek üzereyken, spawn ettikleri şey için bir sınıra ulaşıp ulaşmadıklarını görmek için çağrılır.
Bu hook tek oyunculu modda çağrılmaz, çünkü tek oyunculu modun sınırları yoktur.
Bu dahili olarak kullanılır - kullanabilmenize rağmen muhtemelen kullanmamalısınız.
Bir oyuncunun sınıfı sunucu tarafında player_manager.SetPlayerClass ile değiştirildiğinde çağrılır.
Bir oyuncu sunucuya bağlandığında yürütülür. Oyuncuya bir UserID ve varlık atanmadan önce çağrılır. Oyuncu varlığı oluşturulduktan sonra çağrılan bu hook'un bir versiyonu için player_connect oyun olayına bakın.
Bu yalnızca dinleme sunucusu (listen server) ana bilgisayarları için istemci tarafında çağrılır. Yerel oyuncu için istemci tarafında çağrılmaz.
Bir oyuncu Player:Kill veya diğer normal yollarla öldürüldüğünde çağrılır.
Bu hook, oyuncu Player:KillSilent ile öldürülürse çağrılmaz. Bunun için GM:PlayerSilentDeath'e bakınız.
GM:DoPlayerDeath bu hook'tan önce çağrılır.
GM:PostPlayerDeath bu hook'tan sonra çağrılır.
Oyuncunun son vurulan hitgroup'unu almanız gerekiyorsa Player:LastHitGroup'a bakın.
Bu hook'ta Player:Alive false döndürecektir.
Varsayılan ölüm sesinin sessize alınıp alınmaması gerektiğini döndürür.
Oyuncu ölüyken her think'te çağrılır. Dönüş değeri, oyuncunun yeniden doğup doğmayacağını belirler.
Bu fonksiyonu geçersiz kılmak, oyuncuların boşluk tuşuna veya tıklayarak yeniden doğmasını engeller.
Bu hook, FL_FROZEN bayrağı uygulanmış oyuncular için çağrılmaz. Hata Takipçisi: 1577
GM:PlayerDisconnected( Player ply )
Bir oyuncu sunucudan ayrıldığında çağrılır. Bu hook'un paylaşılan bir versiyonu için player_disconnect oyun olayına bakın.
Bu, tek oyunculu modda veya dinleme sunucularında ana bilgisayar için çağrılmaz. Hata Takipçisi: 3523
GM:PlayerDriveAnimate( Player ply )
Bir sürüş sırasında oyuncunun animasyonunu güncellemek için çağrılır.
Bir silah bir oyuncu tarafından Player:DropWeapon aracılığıyla düşürüldüğünde çağrılır. Adına rağmen, bu hook NPC silah düşüşleri için de çağrılır.
Ayrıca bir silah Player:StripWeapon aracılığıyla bir oyuncudan kaldırıldığında da çağrılır.
Bir oyuncu bir silah aldığında bir hook için ayrıca GM:WeaponEquip'e bakın.
Bu hook çağrıldığında silahın Entity:GetOwner'ı NULL olacaktır.
WEAPON:OnDrop bu hook çağrılmadan önce çağrılır.
GM:PlayerEndVoice( Player ply )
Oyuncu sesli sohbeti kullanmayı bıraktığında çağrılır.
Bir oyuncu bir araca bindiğinde çağrılır.
GM:CanPlayerEnterVehicle'dan hemen sonra çağrılır.
Ayrıca bakınız GM:PlayerLeaveVehicle.
Bir oyuncu modelinde istemci tarafı animasyon olaylarını tetiklemeden önce çağrılır.
Sunucu tarafı versiyonu için GM:PlayerHandleAnimEvent'e bakınız.
boolean GM:PlayerFootstep( Player ply, Vector pos, number foot, string sound, number volume, CRecipientFilter filter )
Bir oyuncu adım attığında çağrılır. Normal sesi susturmak için true döndürün.
Ayak sesi frekansı hakkında ilgili bir hook için GM:PlayerStepSoundTime'a bakınız.
Bu hook tüm istemcilerde çağrılır.
Bir oyuncu bir nesneyi dondurduğunda çağrılır.
GM:PlayerHandleAnimEvent( Player ply, number event, number eventTime, number cycle, number type, string options )
Oyuncu modellerinde sunucu tarafı animasyon olaylarını tetiklemeden önce çağrılır.
İstemci tarafı versiyonu için GM:PlayerFireAnimationEvent'e bakınız.
Bir oyuncu yaralandığında çağrılır.
Oyuncu ilk kez spawn olduğunda çağrılır.
Her oyuncu spawn olduğunda çağrılan bir hook için GM:PlayerSpawn'a bakınız.
Bu hook, oyuncu tam olarak yüklenmeden önce, oyuncu hala Lua Yükleniyor ekranını görürken çağrılır. Örneğin, Entity:GetModel fonksiyonunu kullanmaya çalışmak varsayılan modeli (models/player. mdl) döndürecektir. player_activate oyun olayından itibaren net mesajları gönderebilirsiniz. Yukarıdaki not nedeniyle, bu hook'ta spawn olan oyuncuya net mesajları göndermek oldukça güvenilmezdir ve büyük olasılıkla alınmayacaktır (daha fazla bilgi burada: https://github. com/Facepunch/garrysmod-requests/issues/718).
Ağ olmadan geçici çözüm:
local load_queue = {}
hook. Add( "PlayerInitialSpawn", "myAddonName/Load", function( ply )
load_queue[ ply ] = true
end )
hook. Add( "StartCommand", "myAddonName/Load", function( ply, cmd )
if load_queue[ ply ] and not cmd:IsForced() then
load_queue[ ply ] = nil
-- İhtiyacınız olanı buraya gönderin!
end
end )
Ağ ile:
-- CLIENT
hook. Add( "InitPostEntity", "Ready", function()
net. Start( "cool_addon_client_ready" )
net. SendToServer()
end )-- SERVER
util. AddNetworkString( "cool_addon_client_ready" )
net. Receive( "cool_addon_client_ready", function( len, ply )
-- İhtiyacınız olanı buraya gönderin!
end )
Oyuncunun belirtilen bir takıma katılmasını sağlar. Bu, Player:SetTeam'i çağıran ve GM:OnPlayerChangedTeam hook'unu çalıştıran bir kolaylık fonksiyonudur.
Bir oyuncu herhangi bir nedenle, Player:ExitVehicle dahil, bir araçtan ayrıldığında çağrılır.
Ters hook için GM:PlayerEnteredVehicle'a bakınız.
Çıkış animasyonları olan araçlar için, bu animasyonun başlangıcında değil, sonunda çağrılacaktır!
GM:PlayerLoadout( Player ply )
Oyunculara varsayılan silah setini vermek için çağrılır.
GM:PlayerSpawn'ınızı geçersiz kıldıysanız ve self.BaseClass.PlayerSpawn veya hook.Call kullanmıyorsanız bu fonksiyon özel oyun modunuzda çalışmayabilir.
Bir oyuncu noclip modunu değiştirmeye çalıştığında çağrılır.
GM:PlayerPostThink( Player ply )
Oyuncunun think'inden sonra, GM:FinishMove'dan hemen sonra çağrılır.
İstemci tarafında, yalnızca yerel oyuncu için çağrılır.
Bir oyuncunun takıma katılmasını talep eder. Bu fonksiyon, takımın katılmaya uygun olup olmadığını kontrol edecektir.
Bu hook, oyuncu konsolda "changeteam" komutunu çalıştırdığında çağrılır.
Oyuncunun takım değiştirmesini önlemek için, GM:PlayerCanJoinTeam'e bakın.
Bir oyuncu bir sohbet mesajı gönderdiğinde çağrılır. İstemci tarafı eşdeğeri için GM:OnPlayerChat'e bakınız.
Eklentiler genellikle sohbet mesajlarını değiştirmek için bu hook'ta değerler döndürdüğü için sunucu tarafında mesajları okumak için gameevent/player_say kullanmak daha güvenilir olabilir.
Bir oyuncunun spawn olacağı bir spawn noktası belirlemek için çağrılır.
Spawn noktası varlığı, oyuncunun göz açısını da etkileyecektir. Örneğin, varlık baş aşağı ise, oyuncunun görüşü de öyle olacaktır.
Bu oyuncu için bir takım spawn noktası varlığı bulur.
View model ellerine bir model ayarlanması gerektiğinde çağrılır. Varsayılan olarak bu, PLAYER:GetHandsModel'i çağırır ve bu başarısız olursa, eller modelini oyuncu modeline göre ayarlar.
GM:PlayerSetModel( Player ply )
Bir oyuncu spawn olduğunda ve bir model seçmesi gerektiğinde çağrılır. Bir oyuncuya bir model atamak için iyi bir yerdir.
GM:PlayerSpawn'ınızı geçersiz kıldıysanız ve içinde self.BaseClass.PlayerSpawn kullanmıyorsanız veya GM:PlayerSpawn'dan bu hook'u hook.Call ile çağırmıyorsanız, bu fonksiyon özel oyun modunuzda çalışmayabilir.
Oyuncunun verilen saldırgandan hasar alıp almaması gerektiğini true olarak döndürür.
Bu hook'tan hasar alan oyuncuya hasar uygulamak sonsuz döngüye/çökmeye yol açacaktır.
Oyuncu alaylarını (taunt) bastırmaya izin verir.
GM:PlayerSilentDeath( Player ply )
Oyuncu Player:KillSilent ile öldürüldüğünde çağrılır.
Bu hook çağrıldığında oyuncu zaten ölü kabul edilir.
Diğer tüm ölüm nedenlerini işleyen bir hook için GM:PlayerDeath'e bakınız.
GM:PostPlayerDeath bu hook'tan sonra çağrılır.
Bu hook'ta Player:Alive true döndürecektir.
Bir oyuncu yeniden doğmalar dahil olmak üzere her spawn olduğunda çağrılır.
Bir oyuncunun yalnızca ilk kez spawn olduğunda çağrılan bir hook için GM:PlayerInitialSpawn'a bakınız.
Bu hook'un paylaşılan bir versiyonu için player_spawn oyun olayına bakın.
Varsayılan olarak, "base" türevi oyun modlarında, bu hook ayrıca GM:PlayerLoadout ve GM:PlayerSetModel'i de çağırır, bu da Entity:SetModel ve Player:Give çağrılarınızı geçersiz kılabilir. Diğer hook'ları veya 0 saniyelik bir zamanlayıcı kullanmayı düşünün.
GM:PlayerSpawnAsSpectator( Player ply )
Oyuncuyu bir izleyici olarak spawn etmek için çağrılır.
Oyuncunun impulse 201 konsol komutunu kullanarak sprey yapıp yapamayacağını belirler.
Oyuncu alay etmeye (taunt) başladığında çağrılır.
Bir oyuncu sesli sohbeti kullanmaya başladığında çağrılır.
Oyuncu üzerindeki simgeleri devre dışı bırakmak istiyorsanız mp_show_voice_icons'u 0 olarak ayarlayın.
Ayak sesleri arasındaki süreyi geçersiz kılmanıza olanak tanır.
Ayak seslerinin kendisi hakkında ilgili bir hook için GM:PlayerFootstep'e bakınız.
Bu hook tüm istemcilerde çağrılır.
Bir oyuncu el fenerini açmaya veya kapatmaya çalıştığında çağrılır, false döndürmek değişikliği reddeder.
Ayrıca Player:Flashlight kullanıldığında da çağrılır.
Bir oyuncu silahını değiştirmeye çalıştığında çağrılır.
Bu hook'un birincil kullanımı, silah değiştirmeyi algılamak değil, silah değiştirmeyi önlemek/izin vermektir. Player:SetActiveWeapon için çağrılmaz.
Move hook'u, oyuncunun CMoveData'sını manipüle etmeniz için çağrılır. Bu hook, GM:Move ve GM:PlayerNoClip'ten hemen önce çağrılır.
Bu hook bir araç içindeyken çalışmaz. Onun yerine GM:VehicleMove çağrılır.
Bir oyuncu bir iz (trace) tarafından vurulduğunda ve hasar aldığında (örneğin bir mermiden) çağrılır. true döndürmek hasar yönetimini geçersiz kılar ve GM:ScalePlayerDamage'ın çağrılmasını önler.
Bir oyuncu bir nesnenin donmasını çözdüğünde çağrılır.
Oyuncu bir nesne üzerinde kullanma tuşuna bastığında tetiklenir. USE bırakılana kadar sürekli çalışır ancak USE tuşu bırakılana kadar diğer Varlıkları etkinleştirmez; Varlığın etkinleştirme türüne bağlıdır.
GM:PopulateMenuBar( Panel menubar )
En üstteki içerik menüsü menü çubuğunu doldurma zamanı geldiğinde çağrılır.
GM:PostCleanupMap()
Harita temizlendikten hemen sonra çağrılır (genellikle game.CleanUpMap çağrıldığı için)
Ayrıca bakınız GM:PreCleanupMap.
GM:PostDraw2DSkyBox()
2D skybox çizildikten hemen sonra çağrılır - üzerine çizim yapmanıza olanak tanır.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
GM:PostDrawEffects()
Efektleri render ettikten sonra çağrılır. Burası halelerin çizildiği yerdir. GM:PreDrawHUD'dan hemen önce çağrılır.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
GM:PostDrawHUD()
GM:PreDrawHUD, GM:HUDPaintBackground ve GM:HUDPaint'ten sonra ancak GM:DrawOverlay'dan önce çağrılır.
GM:HUDPaint(Background) hook'larının aksine, bu ana menü görünür olduğunda bile çağrılır. Ve GM:PreDrawHUD da öyle.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
GM:PostDrawOpaqueRenderables( boolean bDrawingDepth, boolean bDrawingSkybox, boolean isDraw3DSkybox )
Opak varlıkları çizdikten sonra çağrılır.
Ayrıca bakınız GM:PostDrawTranslucentRenderables ve GM:PreDrawOpaqueRenderables.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
Oyuncu elleri çizildikten sonra çağrılır.
View model alternatifi için GM:PostDrawViewModel'e bakınız.
View model elleri çizilmeden hemen önce çağrılan bir hook için GM:PreDrawPlayerHands'e bakınız.
GM:PostDrawSkyBox()
3D skybox çizildikten sonra çağrılır. Bu, GM:PreDrawSkyBox hook'u aracılığıyla skybox render'ı engellenmişse çağrılmaz.
Ayrıca bakınız GM:PostDraw2DSkyBox.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
GM:PostDrawTranslucentRenderables( boolean bDrawingDepth, boolean bDrawingSkybox, boolean isDraw3DSkybox )
Tüm yarı saydam varlıklar çizildikten sonra çağrılır.
Ayrıca bakınız GM:PostDrawOpaqueRenderables ve GM:PreDrawTranslucentRenderables.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur. Bu, r_drawentities veya r_drawopaquerenderables devre dışı bırakıldığında bile çağrılır. Hata Takipçisi: 3295Bu, r_drawtranslucentworld devre dışı bırakıldığında çağrılmaz. Hata Takipçisi: 3296
View model çizildikten sonra çağrılır.
Bu hook'taki render FOV'u ana görünümden farklıdır, çünkü view modeller genellikle farklı bir FOV ile render edilir. Her render işlemi yalnızca view model varlığıyla doğru olacaktır.
Bir view model çizilmeden hemen önce çağrılan bir hook için GM:PreDrawViewModel'e bakınız.
View model elleri alternatifi için, GM:PostDrawPlayerHands'e bakınız.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
Bir varlıktan her mermi saçması (yani bu hook bir pompalı tüfek atışı için birden çok kez çağrılır) ateşlendiğinde çağrılır. Özellikle bu hook, mermi saçması için son hasarı ve nişan yönünü içerecektir.
Mermileri ateşlenmeden önce değiştirmek isterseniz GM:EntityFireBullets'e bakınız.
Bu hook doğrudan Entity:FireBullets'tan çağrılır. Bu nedenle, bu hook içinde Entity:FireBullets çağıramazsınız, aksi takdirde sonsuz bir döngü oluşur ve oyun çöker.
Bir varlık, hasar filtrelerini vb. geçtikten sonra bir hasar olayı aldığında çağrılır.
Hasar olaylarını önlemek veya başka şekilde değiştirmek isterseniz GM:EntityTakeDamage'e bakınız.
Bu hook'tan hasar alan varlığa hasar uygulamak sonsuz döngüye/çökmeye yol açacaktır.
GM:PostGamemodeLoaded()
Oyun modu yüklendikten sonra çağrılır.
GM:PostPlayerDeath( Player ply )
GM:DoPlayerDeath, GM:PlayerDeath ve GM:PlayerSilentDeath'ten hemen sonra çağrılır.
Bu hook, Player:KillSilent dahil tüm ölümler için çağrılacaktır.
Bu hook'ta Player:Alive false döndürecektir.
PVS'nizdeki (Potansiyel Görünürlük Seti) bir oyuncu çizildikten sonra çağrılır.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
Post-processing efekti çizimini bastırmanıza olanak tanır.
GM:PostRender()
Kare render edildikten sonra çağrılır.
GM:PostRenderVGUI()
VGUI çizildikten sonra çağrılır.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
GM:PreCleanupMap()
Harita temizlenmeden hemen önce çağrılır (genellikle game.CleanUpMap çağrıldığı için)
Ayrıca bakınız GM:PostCleanupMap.
GM:PreDrawEffects()
GM:PreDrawViewModel'den hemen sonra çağrılır ve teknik olarak "PostDrawAllViewModels" olarak kabul edilebilir.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
GM:PreDrawHalos()
Haleleri render etmeden önce çağrılır. Burası halo.Add çağırmak için yerdir. Bu hook aslında GM:PostDrawEffects içinde çalışır.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
GM:PreDrawHUD()
GM:PostDrawEffects'ten hemen sonra çağrılır. İçinde bir şey çizmek yanlış çalışıyor gibi görünüyor.
boolean GM:PreDrawOpaqueRenderables( boolean isDrawingDepth, boolean isDrawSkybox, boolean isDraw3DSkybox )
Tüm opak varlıklar çizilmeden önce çağrılır.
Ayrıca bakınız GM:PreDrawTranslucentRenderables ve GM:PostDrawOpaqueRenderables.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
Oyuncu elleri çizilmeden önce çağrılır.
View model alternatifi için GM:PreDrawViewModel'e bakınız.
View model elleri çizilmeden hemen önce çağrılan bir hook için GM:PostDrawPlayerHands'e bakınız.
boolean GM:PreDrawSkyBox()
3D skybox çizilmeden önce çağrılır. Bu, 3D skybox'ı olmayan haritalar için veya 3D skybox devre dışı bırakıldığında (r_3dsky 0) çağrılmaz.
Ayrıca bakınız GM:PostDrawSkyBox
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
boolean GM:PreDrawTranslucentRenderables( boolean isDrawingDepth, boolean isDrawSkybox, boolean isDraw3DSkybox )
Tüm yarı saydam varlıklar çizilmeden önce çağrılır.
Ayrıca bakınız GM:PreDrawOpaqueRenderables ve GM:PostDrawTranslucentRenderables.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur. Bu, r_drawentities veya r_drawopaquerenderables devre dışı bırakıldığında bile çağrılır. Hata Takipçisi: 3295Bu, r_drawtranslucentworld devre dışı bırakıldığında çağrılmaz. Hata Takipçisi: 3296
View model çizilmeden önce çağrılır.
Varsayılan olarak bu hook ayrıca WEAPON:PreDrawViewModel'i de çağırır, bu yüzden bir scriptli silah geliştiriyorsanız bunu kullanabilirsiniz.
Bir view modelini render ettikten hemen sonra çalışan bir hook için GM:PostDrawViewModel'e bakınız.
Bir kare içinde tüm view modeller çizilmeden önce çalışan bir hook için GM:PreDrawViewModels'e bakınız.
View model elleri için, GM:PreDrawPlayerHands'e bakınız.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
GM:PreDrawViewModels()
Tüm view modeller (her oyuncu için 3 tane vardır, bkz. Player:GetViewModel) ve RENDERGROUP_VIEWMODEL olan varlıklar çizilmeden hemen önce çağrılır.
Belirli view modeller için çalışan hook'lar için GM:PreDrawViewModel ve GM:PostDrawViewModel'e bakınız.
Tüm view model(ler) çizildikten hemen sonra çağrıldığı için "PostDrawViewModels" hook'u olarak GM:PreDrawEffects'i kullanabilirsiniz.
Bu, 3D bir render bağlamı sağlayan bir render hook'udur.
GM:PreGamemodeLoaded()
Oyun modu yüklenmeden önce çağrılır.
Oyuncu çizilmeden önce çağrılır.
scripted_ents.Register tarafından çağrılır.
Bir Scriptli Silah (SWEP) kaydedilmek üzereyken çağrılır, eklentilerin silahın SWEP tablosunu daha sonra kullanılmak üzere özel verilerle değiştirmesine olanak tanır. weapons.Register'dan dahili olarak çağrılır.
Bu, oyuncu C menüsünden ateş etmeye çalıştığında in_attack'ın sunucuya gönderilmesini önleyecektir.
Sahneyi render eder. Stereoskopi post-processing efekti tarafından kullanılır.
Bu hook'ta render edilen materyallerin düzgün çizilmesi için $ignorez parametresi gerekir.
Post-processing efektlerini render etmek için kullanılır.
Bu, 2D bir render bağlamı sağlayan bir render hook'udur.
GM:Restored()
Oyun bir Source Engine kayıt sisteminden (Sandbox kayıtları veya kopyaları değil) yeniden yüklendiğinde çağrılır.
Böyle bir kayıt dosyası oluşturulduğunda çağrılan bir hook için GM:Saved'e bakınız.
GM:Saved()
Oyun Source Engine kayıt sistemi (Sandbox kayıtları veya kopyaları değil) kullanılarak kaydedildiğinde çağrılır.
Böyle bir kayıt dosyası yüklendiğinde çağrılan bir hook için GM:Restored'e bakınız.
İlgili fonksiyonlar için ayrıca saverestore'a bakınız.
Bir NPC hasar aldığında çağrılır.
Bu hook yalnızca NPC'nin belirli bir vuruş grubu (hit group) vurulduğunda çağrılır. Vuruş grubunun önemli olmadığı durumlarda, bunun yerine GM:EntityTakeDamage kullanmalısınız!
Bu hook, bir oyuncu belirli bir vücut kısmına hasar aldığında ne kadar hasar alacağını değiştirmenize olanak tanır.
Bu yalnızca bir oyuncunun aldığı mermi hasarı için çağrılır, TÜM hasarı tespit etmeniz gerekiyorsa bunun yerine GM:EntityTakeDamage kullanmalısınız.
GM:ScoreboardHide()
Oyuncu skor tablosu düğmesini (varsayılan olarak tab) bıraktığında çağrılır.
boolean GM:ScoreboardShow()
Oyuncu skor tablosu düğmesine (varsayılan olarak tab) bastığında çağrılır.
GM:SendDeathNotice( Entity or string or nil attacker, string inflictor, Entity or string victim, number flags )
Tüm istemcilere bir ölüm bildirimi olayı göndermek için kullanılan dahili bir fonksiyondur.
Oyuncu yürüme ve koşma hızlarını ayarlar.
0 hızı kullanmak tahmin hatalarına yol açabilir ve oyuncuların sv_maxvelocity'de hareket etmesine neden olabilir. Hata Takipçisi: 2030Bu bir hook değildir. Bunu oyuncunun hızını ayarlamak için bir yardımcı fonksiyon olarak kabul edin.
SetupMove, motor hareketleri işlemeden önce çağrılır. Bu, oyuncuların hareketini geçersiz kılmamıza olanak tanır.
Hareket sistemi hakkında bir açıklama için Oyun Hareketi bölümüne bakınız.
Oyuncunun PVS'sine (Potansiyel Görünürlük Seti) ekstra pozisyonlar eklemenize olanak tanır. Burası AddOriginToPVS çağırmak için yerdir.
Skybox sisini manipüle etmek için render.Fog* fonksiyonlarını kullanmanıza olanak tanır.
Bu, 3D skybox'ı olmayan haritalar için veya 3D skybox devre dışı bırakıldığında (r_3dsky 0) çağrılmaz.
boolean GM:SetupWorldFog()
Dünya sisini manipüle etmek için render.Fog* fonksiyonlarını kullanmanıza olanak tanır.
Bir çift varlığın birbiriyle çarpışıp çarpışmayacağına karar vermek için çağrılır. Bu, yalnızca bir veya her iki varlıkta Entity:SetCustomCollisionCheck kullanıldıysa çağrılır.
Uygulanabilir olduğunda, bunun yerine constraint.NoCollide veya bir logic_collision_pair varlığı kullanmayı düşünün - bunların kullanımı oldukça daha kolaydır ve bazı durumlarda daha uygun olabilir.
Bu hook, aynı varlık çifti için tutarlı bir şekilde aynı değeri döndürmelidir.
Bir varlık, çarpışma kurallarını değiştirecek şekilde değiştiyse, o varlık üzerinde derhal Entity:CollisionRulesChanged çağırmalısınız - bu hook'ta veya fizik geri çağrılarında (physics callbacks) değil.
Örneklerde belirtilen kurallara harfiyen uyduğunuz sürece, bu hook bozulmadan güvenilir bir şekilde çalışacaktır, küçük bir hata bile fiziği bozabilir. Bu hook, belirli koşullar altında tüm fiziğin bozulmasına neden olabilir. Hata Takipçisi: 642
YerelOyuncunun çizilip çizilmeyeceğini belirlemek için çağrılır.
Eğer bu hook'u bir GM:CalcView hook'u için bir oyuncu çizmek amacıyla kullanıyorsanız, bunun yerine CamData yapı tablonuzda kullanabileceğiniz drawviewer değişkenini kullanmayı düşünebilirsiniz.
Bu hook'un her karenin başında sıfırlanan dahili bir önbelleği vardır. Bu, bu hook'un belirli durumlarda çalışmasını engelleyecektir. Bu önbellek cam.Start'ta ve gelecekteki bir güncellemede ek görünümleri render ederken render.RenderView'da sıfırlanır.
Bir oyuncu gm_showhelp konsol komutunu çalıştırdığında çağrılır. (Varsayılan tuş ataması f1)
GM:ShowSpare1( Player ply )
Bir oyuncu gm_showspare1 konsol komutunu çalıştırdığında çağrılır (Varsayılan tuş ataması f3).
GM:ShowSpare2( Player ply )
Bir oyuncu gm_showspare2 konsol komutunu çalıştırdığında çağrılır (Varsayılan tuş ataması f4).
Bir oyuncu gm_showteam konsol komutunu çalıştırdığında çağrılır. (Varsayılan tuş ataması f2)
GM:ShutDown()
Lua ortamı kapatılmak üzereyken, örneğin harita değiştiğinde veya sunucu kapanmak üzereyken çağrılır.
Spawn ikonu oluşturulduğunda çağrılır.
GM:SpawnMenuCreated()
Spawnmenu Oluşturulduğunda çağrılır.
Kullanıcı sohbet kutusunu açmaya çalıştığında çalışır.
true döndürmek, sohbet kutusunun VGUI odağını almasını engellemez. chat.Close bunu hafifletmek için veya GM:PlayerBindPress kullanımı faydalı olabilir.
Oyuncuların girdilerini sunucu tarafından işlenmeden önce değiştirmenize olanak tanır. Bu fonksiyon botlar için de çağrılır, bu da onları kontrol etmek için en iyi çözümü sunar.
Bu temel olarak GM:CreateMove'un paylaşılan bir versiyonudur.
Bu hook tahmin edilir, ancak alışılmış yollarla değil, istemcide bir CUserCmd oluşturulduğunda ve sunucuda alındığında çağrılır, bu nedenle bu hook'un tek oyunculu modda bile istemci tarafında çağrılması gereklidir
Bir varlık sürmeye başlamadan hemen önce çağrılır. Bu hook'u geçersiz kılmak, drive.Start'ın çağrılmamasına ve oyuncunun varlığı sürmeye başlamamasına neden olur.
GM:StartGame()
Menü üzerinden yeni bir oyun başlattığınızda çağrılır.
GM:Think()
İstemcide, oyun duraklatıldığında hariç, her render edilen karede çağrılır.
Sunucuda her oyun tick'inde çağrılır. Bu, gecikme (lag) olmadığında sunucudaki GM:Tick ile aynı olacaktır, ancak gecikme sırasında işlenen her sunucu karesinde yalnızca bir kez çağrılır.
Sunucuda bu hook'un her çağrısında CurTime'ın farklı olması garanti edilir.
Hem istemci hem de sunucuda her tick'te çalışan bir hook için GM:Tick'e bakınız.
Sunucuda, sv_hibernate_think ConVar'ını 1 olarak ayarlamadığınız sürece, sunucu boşsa bu hook ÇALIŞMAZ.
GM:Tick()
Her oyun tick'inde çağrılır. Her çağrı arasında engine.TickCount'ın farklı olması garanti edilir.
Sunucu tarafında, bu GM:Think'e benzer (Ayrıntılar için o sayfaya bakın).
Varsayılan tickrate 66.6666'dır (15 milisaniyelik aralıklar). -tickrate komut satırı seçeneği ile değiştirilebilir.
Bu veriyi çalışma zamanında almak için bir fonksiyon için engine.TickInterval'e bakınız.
Sunucu boşsa, sv_hibernate_think ConVar'ını 1 olarak ayarlamadığınız sürece bu hook ÇALIŞMAZ
CalcMainActivity geçerli bir geçersiz kılma sekans id'si döndürdüğünde çağrılmaz
Oyuncu aktivitelerini çevirmenize olanak tanır.
Animasyon güncellemeleri (poz parametreleri vb.) burada yapılmalıdır.
Bir Varlık üzerinde bir değişken düzenlendiğinde (Özellikleri Düzenle... menüsü tarafından çağrılır). Daha fazla bilgi için Düzenlenebilir Varlıklar bölümüne bakın.
Bu hook bir değişken değiştirildikten sonra değil, bir değişkeni değiştirmek için çağrılır
Bir araç kullanırken çağrılır. Bu hook, GM:Move gibi çalışır.
Bu hook GM:Move'dan önce çağrılır ve GM:PlayerTick çağrılmadığında çağrılır.
Kullanıcı bir VGUI paneline tıkladığında çağrılır.
Bir VGUI öğesi veya menüsünde bir fare düğmesine basıldığında çağrılır.
Bir silah varlığı bir oyuncu tarafından alındığında çağrılır. (Player:Give dahil)
Hook'un adının aksine, oyuncu aktif silahını başka bir silahla değiştirdiğinde çağrılmaz.
Ayrıca bakınız GM:PlayerDroppedWeapon ve GM:PlayerCanPickupWeapon.
Bu hook çağrıldığında Entity:GetOwner NULL döndürür. Sahip bir sonraki karede ayarlanır. Bu, zaten sahip olduğunuz bir silahı alırken çağrılmaz çünkü silah kaldırılır ve bunun yerine WEAPON:EquipAmmo çağrılır.
Steam atölyesinden bir eklentinin indirilmesi bittiğinde çağrılır. Varsayılan olarak atölye indirme panelindeki ayrıntıları güncellemek için kullanılır.
Steam atölyesinden bir eklentinin indirilmesi başladığında çağrılır. Varsayılan olarak atölye indirme paneline ayrıntıları yerleştirmek için kullanılır.
GM:WorkshopDownloadProgress( number id, number imageID, string title, number downloaded, number expected )
Steam atölyesinden bir eklenti indirilirken çağrılır. Varsayılan olarak süslü atölye indirme panelindeki ayrıntıları güncellemek için kullanılır.
GM:WorkshopStart'tan sonra çağrılır.
GM:WorkshopEnd()
Steam atölyesinden içerik indirme bittiğinde çağrılır. Varsayılan olarak süslü atölye indirme panelini gizlemek için kullanılır.
Steam atölyesinden bir eklenti ayıklanırken çağrılır. Varsayılan olarak süslü atölye indirme panelindeki ayrıntıları güncellemek için kullanılır.
GM:WorkshopStart()
Steam atölyesinden içerik indirme başladığında çağrılır. Varsayılan olarak süslü atölye indirme panelini göstermek için kullanılır.
Atölye hook'larının sırası şöyledir:
WorkshopStart
WorkshopDownloadTotals
Bunlar her yeni öğe için çağrılır:
WorkshopDownloadFile
WorkshopDownloadProgress - Bu, dosya bitene kadar çağrılır
WorkshopDownloadedFile
WorkshopEnd (bu bir kez çağrılır)
UGC abonelik durumu değiştiğinde çağrılır.
GM:WorkshopSubscriptionsMessage( string message )
Bir Atölye Mesajı alındığında mı çağrılır? Şu anda, mesaj her seferinde #ugc.mounting olacak gibi görünüyor.
Bu tam olarak ne zaman çağrılır? Bir eklentiye abone olunduğunda, abonelikten çıkıldığında, bir hata oluştuğunda veya herhangi bir olayda mı?
Bu dahili olarak kullanılır - kullanabilmenize rağmen muhtemelen kullanmamalısınız.
Oyun başlangıçta ana menü ekranının altında gösterilecek abonelikleri aldığında motor tarafından çağrılır.
Tüm sunucular · GmodTR Launcher · Rehber · GMod Wiki · GmodTR nedir? · Sunucu ekle · Discord