mirror of
https://github.com/JonnyBro/beatrun.git
synced 2025-04-05 18:36:33 +05:00
Merge branch 'jonny/replays' of https://github.com/underset/beatrun-jonny into jonny/replays
This commit is contained in:
commit
253a1951e9
28 changed files with 350 additions and 80 deletions
|
@ -50,6 +50,8 @@ Please refer to this [README](beatrun/README.md).
|
|||
**All** of the Beatrun settings can be changed in the configuration menu.
|
||||
* Localization support.\
|
||||
For now Russian and English are supported.
|
||||
* Build Mode Tweaks.\
|
||||
You can now spawn any prop from Spawn Menu and they will save in course.
|
||||
* Added the ability to get off of ladders.
|
||||
* Added an arrow that shows the next checkpoint.
|
||||
* Added a ConVar to allow Overdrive usage on the server - `Beatrun_AllowOverdriveInMultiplayer`.
|
||||
|
|
|
@ -50,6 +50,8 @@ iex (iwr "rlxx.ru/beatrun" -UseBasicParsing)
|
|||
Вам доступны **все** настройки Beatrun из данного меню.
|
||||
* Поддержка локализации.\
|
||||
На данный момент доступны Русский и Английский языки.
|
||||
* Улучшения режима строительства.\
|
||||
Можно заспавнить любой проп из меню спавна и он сохранится в курсе.
|
||||
* Добавлена возможность слезания с лестниц.
|
||||
* Добавлена стрелка указывающая на следующую контрольную точку.
|
||||
* Добавлена переменная которая разрешает использование Overdrive на сервере - `Beatrun_AllowOverdriveInMultiplayer`.
|
||||
|
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -183,7 +183,7 @@ beatrun.toolsmenu.moves.sidestep=Side Step
|
|||
beatrun.toolsmenu.moves.sidestepdesc=Toggles Side Step Move\nA/D + RMB
|
||||
|
||||
beatrun.toolsmenu.moves.disarm=Disarm
|
||||
beatrun.toolsmenu.moves.disarmdesc=Toggles Ability to Disarm NPC\nPress "%s" on an NPC
|
||||
beatrun.toolsmenu.moves.disarmdesc=Toggles Ability to Disarm NPC\nPress USE on an NPC
|
||||
|
||||
beatrun.toolsmenu.moves.divesettings=Dive Settings
|
||||
|
||||
|
@ -235,4 +235,4 @@ beatrun.infection.infected=was infected!
|
|||
beatrun.infection.infectedby=has infected
|
||||
beatrun.infection.award=You were awarded 200 XP for surviving!
|
||||
beatrun.infection.awardinfected=You were awarded 100 XP for spawning as an infected!
|
||||
beatrun.infection.end=The game has ended!\nSurvivors: %s\nRestarting in 15s
|
||||
beatrun.infection.end=The game has ended!\nSurvivors: %s\nRestarting in 15s
|
||||
|
|
|
@ -183,7 +183,7 @@ beatrun.toolsmenu.moves.sidestep=Side Step
|
|||
beatrun.toolsmenu.moves.sidestepdesc=Переключает Side Step\nA/D + ПКМ
|
||||
|
||||
beatrun.toolsmenu.moves.disarm=Разоружение
|
||||
beatrun.toolsmenu.moves.disarmdesc=Переключает возможность разоружить (убить) NPC\nНажмите "%s" на NPC
|
||||
beatrun.toolsmenu.moves.disarmdesc=Переключает возможность разоружить (убить) NPC\nНажмите ИСПОЛЬЗОВАТЬ на NPC
|
||||
|
||||
beatrun.toolsmenu.moves.divesettings=Настройки ныряния
|
||||
|
||||
|
@ -235,4 +235,4 @@ beatrun.infection.infected=был заражён!
|
|||
beatrun.infection.infectedby=заразил
|
||||
beatrun.infection.award=Вы получили 200 XP за выживание!
|
||||
beatrun.infection.awardinfected=Вы получили 100 XP за спавн заражённым!
|
||||
beatrun.infection.end=Игра окончена!\nВыжившие: %s\nПерезапуск через 15 сек
|
||||
beatrun.infection.end=Игра окончена!\nВыжившие: %s\nПерезапуск через 15 сек
|
||||
|
|
|
@ -0,0 +1,238 @@
|
|||
# Misc
|
||||
beatrun.misc.ok=TAMAM
|
||||
beatrun.misc.noclipdetected=Noclip Algılandı! Koşuya yeniden başlamak için yeniden canlanın
|
||||
beatrun.misc.checkconsole=Konsolu kontrol edin!
|
||||
|
||||
# AddonWarning
|
||||
beatrun.addonwarning.warntext=UYARI\nOynamadan veya herhangi bir sorunu GitHub üzerinden bildirmeden önce lütfen aşağıdaki eklentileri devre dışı bırakın:
|
||||
beatrun.addonwarning.quitbutton=ANA MENÜYE DÖN
|
||||
beatrun.addonwarning.play=Oyna
|
||||
beatrun.addonwarning.conflictfound=ÇAKIŞAN EKLENTİLER BULUNDU
|
||||
|
||||
# BuildModeHUD
|
||||
beatrun.buildmodehud.info=İndeks: %s\nSeçili: %s\nAçı: %s
|
||||
beatrun.buildmodehud.props=Menü / Nesneler
|
||||
beatrun.buildmodehud.entities=Menü / Varlıklar
|
||||
beatrun.buildmodehud.drag=Sürükle (G)
|
||||
beatrun.buildmodehud.copy=Kopyala (SHIFT+D)
|
||||
beatrun.buildmodehud.delete=Sil (DEL/BCKSPC)
|
||||
beatrun.buildmodehud.highlight=Vurgula (T)
|
||||
beatrun.buildmodehud.select=Seç
|
||||
beatrun.buildmodehud.zipline=Halat (SHIFT = 2 Yönlü)
|
||||
|
||||
# All ConVars
|
||||
beatrun.convars.hudxp=Takma adın yanında toplam XP'yi göster
|
||||
beatrun.convars.hudsway=Arayüz sarsılmasını göster
|
||||
beatrun.convars.huddynamic=Hareket ederken arayüzü gizle
|
||||
beatrun.convars.hudhidden=Arayüzün çoğunu gizler
|
||||
beatrun.convars.hudreticle=Bir nişangah göster
|
||||
beatrun.convars.hudtextcolor=Arayüz Metin Rengi\nVarsayılan: 255 255 255 255
|
||||
beatrun.convars.hudcornercolor=Arayüz Köşe Rengi\nVarsayılan: 20 20 20 100
|
||||
beatrun.convars.hudfloatxpcolor=Arayüz Süzülen XP Rengi\nVarsayılan: 255 255 255 255
|
||||
beatrun.convars.nametags=Oyuncuların üzerinde isim etiketlerini göster
|
||||
beatrun.convars.apikey=API Anahtarı
|
||||
beatrun.convars.domain=Koşu veritabanının alanı
|
||||
beatrun.convars.viewbob=Görüntü Sarsılma Şiddeti
|
||||
beatrun.convars.viewbobstabilization=Görüntü sallamayı oyuncunun görünüm pozisyonunu ortalanmış halde tutarak yol tutmasını azaltmak için açın
|
||||
beatrun.convars.fov=Oyuncunun Görüş Alanını değiştirir
|
||||
beatrun.convars.cpsave=Bir koşu sırasında yeniden canlanmak, en son değilen aşamaya geri dönecektir
|
||||
beatrun.convars.faststart=Daha hızlı başlangıç geri sayımı
|
||||
beatrun.convars.disablegrapple=Kanca özelliğini devre dışı bırakır
|
||||
beatrun.convars.puristmode=Purist modu, havadayken "strafe" atmayı ciddi şekilde zayıflatan bir kullanıcı tercihidir, bu da ME oyunlarının bunu nasıl ele aldığıdır.\n0 = Kısıtlama yok\n1 = Havadaki azaltılmış hareket hızı
|
||||
beatrun.convars.quickturnground=Yerdeyken ikincil saldırı ile hızlı dönüşü etkinleştirir
|
||||
beatrun.convars.quickturnhandsonly=Yalnızca "Koşucu Elleri" ile hızlı dönüşü etkinleştirir
|
||||
|
||||
# HUD
|
||||
beatrun.hud.course=Koşu: %s
|
||||
beatrun.hud.freeplay=Serbest Mod
|
||||
beatrun.hud.lvl=Svy: %s
|
||||
beatrun.hud.infector=Enfektör
|
||||
|
||||
# Menu_Course
|
||||
beatrun.coursemenu.trials=Koşular - %s
|
||||
beatrun.coursemenu.buildmode=İnşa Modunu Aç
|
||||
beatrun.coursemenu.freeplay=Serbest Mod'a geri dön
|
||||
|
||||
# CoursesDatabase
|
||||
beatrun.coursesdatabase.cantuploadfreeplay=Serbest Modda yüklenemiyor
|
||||
beatrun.coursesdatabase.upload1=%s haritasında adı %s olan bir koşu yüklemeye çalışıyorsunuz.
|
||||
beatrun.coursesdatabase.upload2=Devam etmek için Beatrun_Confirm veya iptal etmek için Beatrun_Cancel kullanın.
|
||||
beatrun.coursesdatabase.update1=Bu koda sahip bir koşuyu %s,%s haritasındaki %s adlı koşuya güncellemeye çalışıyorsunuz.
|
||||
|
||||
# Tools Menu
|
||||
beatrun.toolsmenu.client=Kullanıcı
|
||||
beatrun.toolsmenu.server=Sunucu
|
||||
|
||||
# Tools Menu Courses Section
|
||||
beatrun.toolsmenu.courses.name=Koşular
|
||||
beatrun.toolsmenu.courses.desc=Koşu Ayarları
|
||||
|
||||
beatrun.toolsmenu.courses.faststart=Hızlı Başlangıç
|
||||
beatrun.toolsmenu.courses.faststartdesc=Koşunun başında daha hızlı geri sayım
|
||||
|
||||
beatrun.toolsmenu.courses.checkpointsave=Aşamada Kaydet
|
||||
beatrun.toolsmenu.courses.checkpointsavedesc=Koşularda en son aşamada yeniden canlan
|
||||
|
||||
beatrun.toolsmenu.courses.database=Veritabanı Alanı
|
||||
beatrun.toolsmenu.courses.databasedesc=Veritabanının alanı/IP'si\nVarsayılan: courses.beatrun.ru
|
||||
|
||||
beatrun.toolsmenu.courses.changeapikey=API Anahtarını Değiştir
|
||||
beatrun.toolsmenu.courses.enterapikey=API anahtarınızı girin
|
||||
|
||||
beatrun.toolsmenu.courses.savecourse=Şu Anda Devam Eden Koşuyu Bir Dosyaya Kaydet
|
||||
beatrun.toolsmenu.courses.namesavecourse=Koşunuz için bir ad girin
|
||||
|
||||
beatrun.toolsmenu.courses.loadcourse=Çevrim içi Veritabandan Koşu Yükle
|
||||
beatrun.toolsmenu.courses.enterloadcourse=Koşu kodunu gir
|
||||
|
||||
beatrun.toolsmenu.courses.uploadcourse=Şu An Devam Eden Koşuyu Veritabanına Yükle
|
||||
|
||||
beatrun.toolsmenu.courses.updatecourse=Veritabanında bir Koşuyu Güncelle
|
||||
beatrun.toolsmenu.courses.updatecoursehelp=Veritabanındaki bir koşuyu şu anda devam eden koşuyla günceller
|
||||
|
||||
# Tools Menu HUD Section
|
||||
beatrun.toolsmenu.hud.name=ARAYÜZ
|
||||
beatrun.toolsmenu.hud.desc=Arayüz Ayarları
|
||||
|
||||
beatrun.toolsmenu.hud.dynamic=Dinamik Arayüz
|
||||
beatrun.toolsmenu.hud.dynamicdesc=Hareket ederken arayüzü gizler
|
||||
|
||||
beatrun.toolsmenu.hud.sway=Arayüz Sarsıntısı
|
||||
beatrun.toolsmenu.hud.swaydesc=Arayüz sallanmayı açar/kapatır
|
||||
|
||||
beatrun.toolsmenu.hud.reticle=Nişangahı Göster
|
||||
beatrun.toolsmenu.hud.reticledesc=Ekranın ortasında bir nokta gösterir
|
||||
|
||||
beatrun.toolsmenu.hud.nametags=Ad Etiketlerini Göster
|
||||
beatrun.toolsmenu.hud.nametagsdesc=Oyuncuların üzerindeki ad etiketlerini açar
|
||||
|
||||
beatrun.toolsmenu.hud.hudxp=Arayüz XP'yi göster
|
||||
beatrun.toolsmenu.hud.hudxpdesc=Takma adın yanında toplam XP'yi göster
|
||||
|
||||
beatrun.toolsmenu.hud.wind=Rüzgar Etkisi
|
||||
beatrun.toolsmenu.hud.winddesc=Koşarken rüzgar sesleri
|
||||
|
||||
beatrun.toolsmenu.hud.fov=Görüş Alanı
|
||||
beatrun.toolsmenu.hud.fovdesc=Görüş Alanınızı değiştirdikten sonra yeniden canlanmanız gerekiyor!
|
||||
|
||||
beatrun.toolsmenu.hud.hidden=Arayüzü gizle
|
||||
beatrun.toolsmenu.hud.hiddendesc=0 - Gösterilen\n1 - Yalnızca oyun\nmodu 2 - Gizli
|
||||
|
||||
beatrun.toolsmenu.hud.textcolor=Arayüz Metin Rengi
|
||||
beatrun.toolsmenu.hud.cornercolor=Arayüz Köşe Rengi
|
||||
beatrun.toolsmenu.hud.floatxpcolor=Arayüz Süzülen XP Rengi
|
||||
|
||||
# Tools Menu Viewbob Section
|
||||
beatrun.toolsmenu.viewbob.name=Görüntü Sarsılması
|
||||
beatrun.toolsmenu.viewbob.desc=Görüntü Sarsılma Ayarları
|
||||
|
||||
beatrun.toolsmenu.viewbob.stabilization=Görüntü Sarsılma Stabilizasyonu
|
||||
beatrun.toolsmenu.viewbob.stabilizationdesc=Görüntü sallamayı oyuncunun görünüm pozisyonunu ortalanmış halde tutarak yol tutmasını azaltmak için açın
|
||||
beatrun.toolsmenu.viewbob.intensity=Sarsılma Şiddeti
|
||||
|
||||
# Tools Menu Gameplay Section
|
||||
beatrun.toolsmenu.gameplay.name=Oynanış
|
||||
beatrun.toolsmenu.gameplay.desc=Oynanış Ayarları
|
||||
|
||||
beatrun.toolsmenu.gameplay.quickturnground=Yerde Hızlı Dönüş
|
||||
beatrun.toolsmenu.gameplay.quickturngrounddesc=Yerdeyken ikincil saldırı ile hızlı dönüşü etkinleştirir
|
||||
|
||||
beatrun.toolsmenu.gameplay.quickturnhandsonly=Sadece Hızlı Dönüş Elleri
|
||||
beatrun.toolsmenu.gameplay.quickturnhandsonlydesc=Yalnızca "Koşucu Elleri" ile hızlı dönüşü etkinleştirir
|
||||
|
||||
beatrun.toolsmenu.gameplay.puristmode=Purist Modu
|
||||
beatrun.toolsmenu.gameplay.puristmodedesc=Purist modu, havadayken "strafe" atmayı ciddi şekilde zayıflatan bir kullanıcı tercihidir, bu da ME oyunlarının bunu nasıl ele aldığıdır.\nDevre dışı = Kısıtlama yok\nEtkin = Havadaki azaltılmış hareket hızı
|
||||
|
||||
beatrun.toolsmenu.gameplay.disablegrapple=Kanca Özelliğini Devre Dışı Bırak
|
||||
beatrun.toolsmenu.gameplay.disablegrappledesc=Kanca özelliğini devre dışı bırakır
|
||||
|
||||
# Tools Menu Misc Section
|
||||
beatrun.toolsmenu.misc.name=Diğer
|
||||
beatrun.toolsmenu.misc.desc=Çeşitli Ayarlar
|
||||
|
||||
beatrun.toolsmenu.misc.propspawn=Nesne Oluşturma
|
||||
beatrun.toolsmenu.misc.propspawndesc=Yönetici hakları olmayan oyuncuların nesne, varlık ve silah oluşturmasına izin verir
|
||||
|
||||
beatrun.toolsmenu.misc.overdrivemp=Çok Oyunculuda Aşım
|
||||
beatrun.toolsmenu.misc.overdrivempdesc=Sunucuda aşım kullanımına izin verir
|
||||
|
||||
# Tools Menu Moves Section
|
||||
beatrun.toolsmenu.moves.name=Hareketler
|
||||
beatrun.toolsmenu.moves.desc=Hareket Ayarları
|
||||
beatrun.toolsmenu.moves.help=Havadayken Ctrl + RMB ile dalış yapabilirsin!\nE + LMB ile Aşım Geçişleri.
|
||||
|
||||
beatrun.toolsmenu.moves.speedlimit=Hız Sınırı
|
||||
beatrun.toolsmenu.moves.speedlimitdesc=Oyuncunun hız sınırını değiştirir\nVarsayılan: 325
|
||||
|
||||
beatrun.toolsmenu.moves.forcepuristmode=Purist Modunu Zorla
|
||||
beatrun.toolsmenu.moves.forcepuristmodedesc=Purist Modun tüm oyuncular için etkinleştirilmesini zorunlu kılar
|
||||
|
||||
beatrun.toolsmenu.moves.realisticwallrunning="Gerçekçi" duvar koşusu
|
||||
beatrun.toolsmenu.moves.realisticwallrunningdesc=Devre dışı bırakıldığında duvar koşusuna başlarken hız kaybetmezsiniz
|
||||
|
||||
beatrun.toolsmenu.moves.kickglitch=Tekme Hatası
|
||||
beatrun.toolsmenu.moves.kickglitchdesc=Tekme Hatası Hareketini Açar\nDuvardan koşarken ve hemen ardından zıplarken LMB basın
|
||||
|
||||
beatrun.toolsmenu.moves.kickglitchversion=Tekme Hatası Sürümü
|
||||
beatrun.toolsmenu.moves.kickglitchversiondesc=Etkin - Eski sürüm\nDevre Dışı - Yeni sürüm\nYeni sürüm, bir oyuncunun altında küçük bir platform oluşturan ME'nin mekaniğini kullanıyor
|
||||
|
||||
beatrun.toolsmenu.moves.quakejump=Quake Zıplayışı
|
||||
beatrun.toolsmenu.moves.quakejumpdesc=Quake Zıplama Hareketini açar/kapatır\nYan Adımdan Sonra Sağa Zıplaya basın
|
||||
|
||||
beatrun.toolsmenu.moves.sidestep=Yan Adım
|
||||
beatrun.toolsmenu.moves.sidestepdesc=Yan Adım Hareketini Açar\nA/D + RMB
|
||||
|
||||
beatrun.toolsmenu.moves.disarm=Silahsızlandır
|
||||
beatrun.toolsmenu.moves.disarmdesc=NPC'yi Silahsızlandırma Yeteneği\nBir NPC'de KULLAN'a basın
|
||||
|
||||
beatrun.toolsmenu.moves.divesettings=Dalış Ayarları
|
||||
|
||||
beatrun.toolsmenu.moves.totsugeki=Totsugeki
|
||||
beatrun.toolsmenu.moves.totsugekidesc=Totsugeki Dalışı\nQuake Zıplayışından hemen sonra dal
|
||||
|
||||
beatrun.toolsmenu.moves.totsugekispam=Totsugeki Abanması
|
||||
beatrun.toolsmenu.moves.totsugekispamdesc=Totsugeki'yi Abanma Yeteneğini Açar
|
||||
|
||||
beatrun.toolsmenu.moves.totsugekiheading=Totsugeki İlerleyişi
|
||||
beatrun.toolsmenu.moves.totsugekiheadingdesc=Totsugeki'ye X ekseninde (yukarı/aşağı) izin verir
|
||||
|
||||
beatrun.toolsmenu.moves.totsugekidirection=Totsugeki Yönü
|
||||
beatrun.toolsmenu.moves.totsugekidirectiondesc=Başka Bir Yöne Totsugeki Yapmayı Sağlar\nAbanma ve İlerleyişle beraber kullanıldığında uçmanıza izin verir =)
|
||||
|
||||
# Tools Menu Gamemodes Section
|
||||
beatrun.toolsmenu.gamemodes.name=Oyun Modları
|
||||
beatrun.toolsmenu.gamemodes.desc=Oyun Modları Ayarları
|
||||
beatrun.toolsmenu.gamemodes.error=Başka bir oyun modu çalışıyor!
|
||||
|
||||
beatrun.toolsmenu.gamemodes.infection=Enfeksiyon Oyun Modunu Aç
|
||||
beatrun.toolsmenu.gamemodes.infectionstarttime=Başlamadan önceki zaman
|
||||
beatrun.toolsmenu.gamemodes.infectiongametime=Oyunun uzunluğu
|
||||
beatrun.toolsmenu.gamemodes.infectiontime=Saniyeler cinsinden zaman
|
||||
beatrun.toolsmenu.gamemodes.datatheft=Veri Hırsızlığı Oyun Modunu Aç
|
||||
beatrun.toolsmenu.gamemodes.deathmatch=Ölüm Maçı Oyun Modunu Aç
|
||||
|
||||
# Checkpoints
|
||||
beatrun.checkpoints.countdown1=Hazır
|
||||
beatrun.checkpoints.countdown2=Dikkat
|
||||
beatrun.checkpoints.countdown3=BAŞLA!
|
||||
beatrun.checkpoints.speedometer=%s km/s
|
||||
|
||||
# DataTheft
|
||||
beatrun.datatheft.name=Veri Hırsızı (%s)
|
||||
beatrun.datatheft.start=Veri hırsızı! Veri toplamak için oyuncuları öldür, bankalara veri yatır
|
||||
|
||||
# Deathmatch
|
||||
beatrun.deathmatch.name=Ölüm Maçı
|
||||
beatrun.deathmatch.start=Ölüm Maçı! Puan almak için oyuncuları öldür!
|
||||
|
||||
# Infection
|
||||
beatrun.infection.name=Enfeksiyon
|
||||
beatrun.infection.infectedtext=(Enfekte)
|
||||
beatrun.infection.humantext=(İnsan)
|
||||
beatrun.infection.start=Enfeksiyon! Diğer oyunculara bulaştırmak için dokun\n%s oyuncu %s süre içinde enfekte olacak
|
||||
beatrun.infection.nosurvivors=Hiç kimse...
|
||||
beatrun.infection.infected=enfekte oldu!
|
||||
beatrun.infection.infectedby=enfekte etti
|
||||
beatrun.infection.award=Hayatta kaldığın için 200 XP ile ödüllendirildin!
|
||||
beatrun.infection.awardinfected=Enfekte olarak canlandığın için 100 XP ile ödüllendirildin!
|
||||
beatrun.infection.end=Oyun sona erdi!\nYaşayanlar: %s\n15 saniye içinde \nyeniden başlıyor
|
|
@ -18,6 +18,30 @@ lockang = false
|
|||
CamAddAng = false
|
||||
CamIgnoreAng = false
|
||||
|
||||
local tools = {
|
||||
["gmod_tool"] = true,
|
||||
["weapon_physgun"] = true,
|
||||
["gmod_camera"] = true
|
||||
}
|
||||
|
||||
has_tool_equipped = false
|
||||
|
||||
hook.Add("Think", "beatrun_detect_tool", function()
|
||||
local lp = LocalPlayer()
|
||||
if not IsValid(lp) then return end
|
||||
|
||||
local weapon = lp:GetActiveWeapon()
|
||||
if not IsValid(weapon) then return end
|
||||
|
||||
local class = weapon:GetClass()
|
||||
|
||||
if tools[class] then
|
||||
has_tool_equipped = true
|
||||
else
|
||||
has_tool_equipped = false
|
||||
end
|
||||
end)
|
||||
|
||||
-- local BodyAnimPos = Vector(0, 0, 0)
|
||||
-- local BodyAnimAngLerp = Angle(0, 0, 0)
|
||||
-- local DidDraw = false
|
||||
|
@ -338,8 +362,6 @@ function StartBodyAnim(animtable)
|
|||
BodyAnim:SetPos(ply:GetPos())
|
||||
BodyAnim:SetNoDraw(false)
|
||||
|
||||
BodyAnimStartPos:Set(BodyAnim:GetPos())
|
||||
|
||||
if not IsValid(ply:GetHands()) then return end
|
||||
|
||||
local plymodel = ply
|
||||
|
@ -480,6 +502,13 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
return
|
||||
end
|
||||
|
||||
if has_tool_equipped then
|
||||
BodyAnim:SetNoDraw(true)
|
||||
BodyAnim:SetRenderOrigin(pos * 1000)
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
if IsValid(BodyAnim) and pos:Distance(ply:EyePos()) > 20 then
|
||||
if updatethirdperson then
|
||||
ply:SetNoDraw(false)
|
||||
|
@ -575,7 +604,7 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
end
|
||||
|
||||
if attach ~= nil then
|
||||
view.origin = attach.Pos
|
||||
view.origin = has_tool_equipped and pos or attach.Pos
|
||||
|
||||
if savedeyeangb == Angle(0, 0, 0) then
|
||||
savedeyeangb = Angle(0, attach.Ang.y, 0)
|
||||
|
@ -583,10 +612,10 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
|
||||
view.angles = ply:EyeAngles()
|
||||
|
||||
if lockang2 then
|
||||
view.angles = attach.Ang
|
||||
if lockang2 and not has_tool_equipped then
|
||||
view.angles = has_tool_equipped and angles or attach.Ang
|
||||
view.angles.x = ply:EyeAngles().x
|
||||
view.origin = attach.Pos
|
||||
view.origin = has_tool_equipped and pos or attach.Pos
|
||||
end
|
||||
|
||||
allowedangchange = true
|
||||
|
@ -598,7 +627,7 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
lastlockangstart:Set(lasteyeang)
|
||||
end
|
||||
|
||||
if ply:Alive() and lockang then
|
||||
if ply:Alive() and (lockang and not has_tool_equipped) then
|
||||
local attachId = BodyAnim:LookupAttachment(camjoint)
|
||||
local attach = BodyAnim:GetAttachment(attachId) or attach
|
||||
local ang = attach.Ang
|
||||
|
@ -608,7 +637,7 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
lerplockang = math.Approach(lerplockang, 1, FrameTime() * 4.5)
|
||||
end
|
||||
|
||||
view.angles = ang
|
||||
view.angles = has_tool_equipped and angles or ang
|
||||
view.angles:Add(ViewTiltAngle)
|
||||
allowedangchange = false
|
||||
|
||||
|
@ -672,7 +701,10 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
hook.Run("BodyAnimCalcView", view)
|
||||
|
||||
pos:Set(view.origin)
|
||||
angles:Set(view.angles)
|
||||
|
||||
if not has_tool_equipped then
|
||||
angles:Set(view.angles)
|
||||
end
|
||||
|
||||
if lerpchangeatt < 1 then
|
||||
pos:Set(lerpedpos)
|
||||
|
@ -697,7 +729,7 @@ function BodyAnimCalcView2(ply, pos, angles, fov)
|
|||
end
|
||||
|
||||
if attach == nil or CurTime() < (mantletimer or 0) then
|
||||
view.origin = lastattachpos
|
||||
view.origin = has_tool_equipped and pos or lastattachpos
|
||||
pos:Set(lastattachpos)
|
||||
|
||||
return
|
||||
|
@ -745,8 +777,8 @@ hook.Add("CreateMove", "BodyAnim_Mouse", function(cmd)
|
|||
local limitx = BodyLimitX or 30
|
||||
local limity = BodyLimitY or 50
|
||||
|
||||
pastlimitx = limitx < math.AngleDifference(nang.x, oang.x)
|
||||
pastlimity = limity < math.abs(math.AngleDifference(nang.y, oang.y))
|
||||
pastlimitx = limitx < math.AngleDifference(nang.x, oang.x) and not has_tool_equipped
|
||||
pastlimity = limity < math.abs(math.AngleDifference(nang.y, oang.y)) and not has_tool_equipped
|
||||
|
||||
if limitx ~= lastlimitx and pastlimitx or limity ~= lastlimity and pastlimity then
|
||||
BodyAnimLimitEase = true
|
||||
|
@ -796,7 +828,7 @@ end)
|
|||
hook.Add("InputMouseApply", "BodyAnim_Mouse", function(cmd)
|
||||
local newvalues = false
|
||||
|
||||
if lockang then
|
||||
if lockang and not has_tool_equipped then
|
||||
cmd:SetMouseX(0)
|
||||
cmd:SetMouseY(0)
|
||||
|
||||
|
|
|
@ -1318,6 +1318,8 @@ hook.Add("PostDrawSkyBox", "JumpArm3DSky", function()
|
|||
end)
|
||||
|
||||
hook.Add("CalcViewModelView", "lol", function(wep, vm, oldpos, oldang, pos, ang)
|
||||
if has_tool_equipped then return end
|
||||
|
||||
pos:Sub(oldpos)
|
||||
pos:Add(campos)
|
||||
ang:Sub(oldang)
|
||||
|
|
|
@ -283,7 +283,7 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function()
|
|||
panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.sidestepdesc"))
|
||||
|
||||
panel:CheckBox("#beatrun.toolsmenu.moves.disarm", "Beatrun_Disarm")
|
||||
panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.disarmdesc"):format(IN_USE))
|
||||
panel:ControlHelp(language.GetPhrase("beatrun.toolsmenu.moves.disarmdesc"))
|
||||
|
||||
local divider = vgui.Create("DHorizontalDivider")
|
||||
panel:AddItem(divider)
|
||||
|
@ -395,4 +395,4 @@ hook.Add("PopulateToolMenu", "Beatrun_ToolMenu", function()
|
|||
-- end
|
||||
-- panel:AddItem(LoadoutMenuButton)
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
|
|
@ -35,8 +35,9 @@ XP_floatingxp = {}
|
|||
|
||||
hook.Add("OnParkour", "ParkourXP", function(event)
|
||||
local ply = LocalPlayer()
|
||||
if not IsValid(ply) then return end
|
||||
|
||||
if ply.InReplay then return end
|
||||
-- if ply.InReplay then return end
|
||||
|
||||
local pos = ply:GetPos()
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@ if SERVER then
|
|||
local spawn = {"PlayerGiveSWEP", "PlayerSpawnEffect", "PlayerSpawnNPC", "PlayerSpawnObject", "PlayerSpawnProp", "PlayerSpawnRagdoll", "PlayerSpawnSENT", "PlayerSpawnSWEP", "PlayerSpawnVehicle"}
|
||||
|
||||
local function BlockSpawn(ply)
|
||||
if not ply:IsAdmin() and not allowPropSpawn:GetBool() then return false end
|
||||
if ply:IsAdmin() or allowPropSpawn:GetBool() then return true end
|
||||
end
|
||||
|
||||
for _, v in ipairs(spawn) do
|
||||
|
|
|
@ -301,9 +301,9 @@ end
|
|||
local function CustomPropMat(prop)
|
||||
if propmatsblacklist[buildmode_props_index[prop:GetModel()]] then return end
|
||||
|
||||
if prop.hr then
|
||||
if prop.hr == true then
|
||||
prop:SetMaterial("medge/redplainplastervertex")
|
||||
else
|
||||
elseif prop.hr == nil or prop.hr == false then
|
||||
prop:SetMaterial("medge/plainplastervertex")
|
||||
end
|
||||
end
|
||||
|
@ -498,7 +498,7 @@ if SERVER then
|
|||
net.Receive("BuildMode_ReadSave", function(len, ply)
|
||||
if not ply.BuildMode then return end
|
||||
|
||||
local a = util.Decompress(net.ReadData(len))
|
||||
local a = net.ReadData(len)
|
||||
local props = util.JSONToTable(a)
|
||||
|
||||
for _, v in pairs(props) do
|
||||
|
@ -604,7 +604,14 @@ if SERVER then
|
|||
for _, v in pairs(props) do
|
||||
local a = ents.Create("prop_physics")
|
||||
a.hr = v.hr
|
||||
a:SetModel(buildmode_props[v.model])
|
||||
|
||||
local is_model_an_index = tonumber(v.model)
|
||||
if is_model_an_index then
|
||||
a:SetModel(buildmode_props[v.model])
|
||||
else
|
||||
a:SetModel(v.model)
|
||||
end
|
||||
|
||||
CustomPropMat(a)
|
||||
|
||||
a:SetPos(v.pos)
|
||||
|
@ -612,8 +619,11 @@ if SERVER then
|
|||
a:Spawn()
|
||||
|
||||
local phys = a:GetPhysicsObject()
|
||||
phys:EnableMotion(false)
|
||||
phys:Sleep()
|
||||
|
||||
if IsValid(phys) then
|
||||
phys:EnableMotion(false)
|
||||
phys:Sleep()
|
||||
end
|
||||
|
||||
a:PhysicsDestroy()
|
||||
a:SetHealth(inf)
|
||||
|
@ -886,7 +896,7 @@ if CLIENT then
|
|||
end
|
||||
|
||||
function CourseData(name)
|
||||
local save = {{}, {}, Course_StartPos, Course_StartAng, name or "Unnamed", {}}
|
||||
local save = {{}, {}, Course_StartPos, Course_StartAng, name or os.date("%H:%M:%S - %d/%m/%Y", os.time()), {}}
|
||||
|
||||
for _, v in pairs(buildmode_placed) do
|
||||
if not IsValid(v) then -- Nothing
|
||||
|
@ -895,13 +905,13 @@ if CLIENT then
|
|||
else
|
||||
local class = v:GetClass()
|
||||
|
||||
if class == "prop_physics" and not buildmode_props_index[v:GetModel():lower()] then
|
||||
print("ignoring", v:GetModel():lower())
|
||||
elseif class == "prop_physics" then
|
||||
if class == "prop_physics" then
|
||||
local hr = v:GetMaterial() == "medge/redplainplastervertex" and true or nil
|
||||
|
||||
if v.buildmode_placed_manually then hr = false end
|
||||
|
||||
table.insert(save[1], {
|
||||
model = buildmode_props_index[v:GetModel():lower()],
|
||||
model = v:GetModel():lower(),
|
||||
pos = v:GetPos(),
|
||||
ang = v:GetAngles(),
|
||||
hr = hr
|
||||
|
@ -947,7 +957,7 @@ if CLIENT then
|
|||
end
|
||||
|
||||
concommand.Add("Beatrun_SaveCourse", function(ply, cmd, args, argstr)
|
||||
local name = args[1] or "Unnamed"
|
||||
local name = args[1] or os.date("%H:%M:%S - %d/%m/%Y", os.time())
|
||||
|
||||
SaveCourse(name, args[2])
|
||||
end)
|
||||
|
@ -970,14 +980,20 @@ if CLIENT then
|
|||
end
|
||||
|
||||
concommand.Add("Beatrun_LoadCourse", function(ply, cmd, args, argstr)
|
||||
local id = args[1] or "Unnamed"
|
||||
local id = args[1]
|
||||
|
||||
if not id then
|
||||
print("Supply course name")
|
||||
|
||||
return
|
||||
end
|
||||
|
||||
LoadCourse(id)
|
||||
end)
|
||||
|
||||
function LoadCourseRaw(data)
|
||||
if not data then
|
||||
print("LOAD NOTHING??!!")
|
||||
print("Supply course data")
|
||||
|
||||
return
|
||||
end
|
||||
|
@ -1144,24 +1160,13 @@ if CLIENT then
|
|||
end
|
||||
end,
|
||||
[KEY_BACKSPACE] = function()
|
||||
if not dragging then
|
||||
local props = {}
|
||||
|
||||
for k, v in pairs(buildmode_selected) do
|
||||
table.insert(props, k)
|
||||
buildmode_selected[k] = nil
|
||||
end
|
||||
|
||||
net.Start("BuildMode_Delete")
|
||||
net.WriteTable(props)
|
||||
net.SendToServer()
|
||||
end
|
||||
buildmodeinputs[KEY_DELETE]()
|
||||
end,
|
||||
[KEY_T] = function()
|
||||
if not dragging then
|
||||
local props = {}
|
||||
|
||||
for k, v in pairs(buildmode_selected) do
|
||||
for k, _ in pairs(buildmode_selected) do
|
||||
if not propmatsblacklist[buildmode_props_index[k:GetModel()]] then
|
||||
table.insert(props, k)
|
||||
end
|
||||
|
@ -1205,7 +1210,7 @@ if CLIENT then
|
|||
end
|
||||
end
|
||||
end,
|
||||
[KEY_ENTER] = function()
|
||||
[KEY_PAD_MINUS] = function()
|
||||
if table.Count(buildmode_selected) == 0 then return end
|
||||
|
||||
local save = {}
|
||||
|
@ -1228,7 +1233,7 @@ if CLIENT then
|
|||
local jsonsave = util.TableToJSON(save)
|
||||
|
||||
file.CreateDir("beatrun/savedbuilds")
|
||||
file.Write("beatrun/savedbuilds/save.txt", util.Compress(jsonsave))
|
||||
file.Write("beatrun/savedbuilds/save.txt", jsonsave)
|
||||
end,
|
||||
[KEY_PAD_PLUS] = function()
|
||||
local save = file.Read("beatrun/savedbuilds/save.txt", "DATA")
|
||||
|
@ -1402,12 +1407,19 @@ if CLIENT then
|
|||
if bind ~= "buildmode" and not camcontrol then return true end
|
||||
end
|
||||
|
||||
hook.Add("OnEntityCreated", "BuildModeProps", function(ent)
|
||||
if not ent:GetNW2Bool("BRProtected") and ent:GetClass() == "prop_physics" or buildmode_ents[ent:GetClass()] then
|
||||
table.insert(buildmode_placed, ent)
|
||||
end
|
||||
hook.Add("InitPostEntity", "buildmode_create_hook", function()
|
||||
timer.Simple(2, function()
|
||||
hook.Add("OnEntityCreated", "BuildModeProps", function(ent)
|
||||
if not ent:GetNW2Bool("BRProtected") and ent:GetClass() == "prop_physics" or buildmode_ents[ent:GetClass()] then
|
||||
if not BuildMode then ent.buildmode_placed_manually = true end
|
||||
|
||||
table.insert(buildmode_placed, ent)
|
||||
end
|
||||
end)
|
||||
end)
|
||||
end)
|
||||
|
||||
|
||||
local dragorigin = nil
|
||||
|
||||
function BuildModeDrag()
|
||||
|
@ -1546,7 +1558,7 @@ if CLIENT then
|
|||
local num = v:GetCPNum()
|
||||
|
||||
surface.SetTextPos(w2s.x, w2s.y)
|
||||
surface.DrawText(num)
|
||||
surface.DrawText("Checkpoint: " .. num)
|
||||
end
|
||||
|
||||
local startw2s = Course_StartPos:ToScreen()
|
||||
|
@ -1626,4 +1638,4 @@ if CLIENT then
|
|||
hook.Run("BuildModeState", false)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -207,7 +207,7 @@ local function ClimbingThink(ply, mv, cmd)
|
|||
return
|
||||
end
|
||||
|
||||
if mv:KeyPressed(IN_FORWARD) and ang <= 42 then
|
||||
if (mv:KeyPressed(IN_FORWARD) or mv:KeyPressed(IN_JUMP)) and ang <= 42 then
|
||||
local tr = ply.ClimbingTraceSafety
|
||||
local trout = ply.ClimbingTraceSafetyOut
|
||||
local mins, maxs = ply:GetHull()
|
||||
|
|
|
@ -60,11 +60,7 @@ net.Receive("RollAnimSP", function()
|
|||
local ply = LocalPlayer()
|
||||
|
||||
if net.ReadBool() then
|
||||
if ply:UsingRH() then
|
||||
roll.AnimString = "land"
|
||||
else
|
||||
roll.AnimString = "landgun"
|
||||
end
|
||||
roll.AnimString = ply:UsingRH() and "land" or "landgun"
|
||||
roll.animmodelstring = "climbanim"
|
||||
roll.BodyAnimSpeed = 1
|
||||
elseif net.ReadBool() then
|
||||
|
@ -72,12 +68,7 @@ net.Receive("RollAnimSP", function()
|
|||
roll.animmodelstring = "climbanim"
|
||||
roll.BodyAnimSpeed = 1.5
|
||||
else
|
||||
if ply:UsingRH() then
|
||||
roll.AnimString = "meroll"
|
||||
else
|
||||
roll.AnimString = "merollgun"
|
||||
end
|
||||
|
||||
roll.AnimString = ply:UsingRH() and "meroll" or "merollgun"
|
||||
roll.animmodelstring = "climbanim"
|
||||
roll.BodyAnimSpeed = 1.15
|
||||
end
|
||||
|
@ -167,12 +158,7 @@ hook.Add("OnPlayerHitGround", "SafetyRoll", function(ply, water, floater, speed)
|
|||
ply:SetSafetyRollAng(landang)
|
||||
ply:SetSafetyRollTime(CurTime() + 0.6)
|
||||
|
||||
if ply:UsingRH() then
|
||||
roll.AnimString = "land"
|
||||
else
|
||||
roll.AnimString = "landgun"
|
||||
end
|
||||
|
||||
roll.AnimString = ply:UsingRH() and "land" or "landgun"
|
||||
roll.animmodelstring = "climbanim"
|
||||
roll.usefullbody = true
|
||||
else
|
||||
|
@ -181,12 +167,7 @@ hook.Add("OnPlayerHitGround", "SafetyRoll", function(ply, water, floater, speed)
|
|||
ply:SetSafetyRollAng(ang)
|
||||
ply:SetSafetyRollTime(CurTime() + 1.05)
|
||||
|
||||
if ply:UsingRH() then
|
||||
roll.AnimString = "meroll"
|
||||
else
|
||||
roll.AnimString = "merollgun"
|
||||
end
|
||||
|
||||
roll.AnimString = ply:UsingRH() and "meroll" or "merollgun"
|
||||
roll.animmodelstring = "climbanim"
|
||||
roll.usefullbody = false
|
||||
end
|
||||
|
|
Loading…
Add table
Reference in a new issue