From 49589d84d6872a649c3ccd3fca285fc6990aaaf5 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sun, 21 Dec 2025 02:37:17 +0500 Subject: [PATCH 1/3] GUI Inprovements --- assets/translations/gui.csv | 3 +++ assets/translations/gui.en.translation | Bin 1898 -> 1208 bytes assets/translations/gui.ikg.translation | Bin 1490 -> 683 bytes assets/translations/gui.ru.translation | Bin 2705 -> 1468 bytes gui/client_settings/client_settings.tscn | 24 ++++++++++++++++++-- gui/client_settings/client_settings_menu.gd | 15 ++++++++++++ 6 files changed, 40 insertions(+), 2 deletions(-) diff --git a/assets/translations/gui.csv b/assets/translations/gui.csv index e8c5af3..3f1a17c 100644 --- a/assets/translations/gui.csv +++ b/assets/translations/gui.csv @@ -41,3 +41,6 @@ version_update_desc,"На сервере обнаружена новая (или Install it?", video,Видео,Video, win_rounds,Раундов до победы,Rounds to win, +toggle_walk,Переключение ходьбы,Toggle walking, +toggle_crouch,Переключение приседания,Toggle crouching, +toggle_scope,Переключение прицеливания,Toggle scoping, diff --git a/assets/translations/gui.en.translation b/assets/translations/gui.en.translation index 890c98af7739cdba6699090e112d301cc29f6ac7..46eb83e2ba55e7c3c834ebb5f6b8e347b32529e2 100644 GIT binary patch literal 1208 zcmV;p1V{T)Q$s@n000005C8zg2LJ$|1ONaiwJ-f(#0Iq_0A@PZNpM_JW9o%XQC{Qv z!V$~Ax(1#W*^TDPc&yF$u<*SxfQ{&FM_IRxJVqk&!deN=HK`DKO&#AQm&8{rFx^4l z5eh-3*#~ItP646-)d0@`X#ZjSZ*fAz{|;XNwf<|cp#1-I^xsJMU%`K%o&Uahp6CDT zf1&jbVC}$_a;>qv#3sW3MLYEYk2p#5>(TgTJ6%IHBXvT?xFL7yl z15U(oz{$}j8CCsKJKV6K$z2Q5*tX)gB+HR%#e*A>CprX-@lt09b=n$)DA7Zr!V%S5 zZUzh&uN#MTv7%LA4K;gt|%9QEy$cA=dY3g$_pGo31Ea2ykCxQi}$NdO=>s7E^br)PnG;P^5cKgA1Sm%~(8s$by#kU)_Y;C1#egcHt_r+1M=N6#PcRI*GehoQE%QI92;|LbM{J|-vuFRihS{bLKjO)R{3AuO-AYQEEq#IIX4dxDso-NuAF;fZ=@1va&U}GuTNQ!{OKvn%C|@w2vg~LGbj=#m5*dTRTvt6B>bh zY)luNe9Qg#+3MwY&>DmznJG&I`&kW#!5wzXvSz>8^%=ERWTTWYD3?(>rcx}GTR9d= zLJ2k9H%prQUXJU19IsA(9*PE97jt$?vZz;Lw@aTW$_w+Rmn1;Ty!& zP7MkswXeBaDHq&IePywrCnHSvS&TD(8BFe}8ZMBW zz}e8=zw>dhQP%YQ-OKlP%g5xGnD*MQ5z9xv3>d)~7T^uF0#MyL-gvgJ!TAB5Wcsl3 z6JIfTEn!y^>WlVa=h~&zc@V}Z;FJ1Yn)gh2d(PUbdt}Bpdxh{FK{BeXjz`5YXb;5G z@#S&B&tYp@kX28&uVGq&?k>wO&wH7@WUzLzefe(E4VV@itRGBEDMXp|@=muubxd0d z7wr4ciOQhk6Q_1LSD=`XyVYHR(b`?XI^w#RDFD#EbB4aj;|;PsZ(^n^WlglsrKwuA WPH(EV>hp2@prImu0hj|)Q$s`A3Rv<0 literal 1898 zcma)7eP~-%6u)WOY)!k?jk#7=)@~iO3n}SHolvuGv9(D{yM`omt`oD@^tDa<@O>~p@W$VHeGeWo!3#gm zIlp_(x#yhwKKucHBhywcWFBAv9tJuRN+cS2UhD}bg_tY}N+ccwy|T;@smV`QJ-hT% zug?7+xf)KTKvI4psL{^jJLP4`0jHT@Y)J_p$Y3}|*j zlS7cBnofCN(ez2kcYqVX8I7a;3(zlV_GQQ~H9Z4Kw_gFw1JpOcmN(nn48;na`qBB` z!u%pD44Qkffft+dh7W_M>oM}9bKeS}*am=l*YhkpFaEk4Hsv<@e|YSxEjPi@^%Hde z*RvPqp3pd|DM#C@UA|$a-soJ)Ws6N*@geBn@%`!O;Th~xEY(gAGUYxw>wGT&NwM@0 zzBtWmO0Yrs9s=gi`>zhcrW)yC(9fMdac#l|n{tugm}x|6fFC`66ic}Y<8^g^PeQ4I z?l$nwaP7@4;Mam9kT0R*P;lgJNUEP|()mBD&%Jv}+|`}RDbIV4xzb_uYTSe^Dg&~u!*NS^!UGiSUB4To8Cx5XWdTW zjHXlXdi=rV*VfYuL9;N<qng41cG$GN4t-{|GB}|^UY?h#ZDL$Lw7~~<-jaB?w+!^N2)fo zy7o5YN{@8??pVEpudqeKH4SdZan9VSo=BW=Pp;%T;`wBu)Cz~E-s~z`%ps-9O`N4rFs$e5^4ZQ<8B>X8h@Ujx_~O=1K@@u9~uzZFX|z!N)cs2?rVX z@83Cd!0L86g<}oFOT1wL~6Emt{?ZsybkIzKU&- z)^Ezv>u+(^CdB$u_;@qkHXNU|bRFVsPb563e%pCdc{XQp^mt`)dxA3`=n6?3qOyH2 z@j({&9&IC=&sNzqS2z}gOR8IngezKn6|y2IDYW9>zbj;J4N{>{TdAdhGt(M%pvr)# zDC+m02i8^D?R$}p`~vAe8g^vLISYzH6e)s*o_)x_$z?OscIU>-M3t-bXU@Ev)#^&d z-Hca%%m=0`$L#jgKE91DWhN#LBiBO}kiUq({WXsKav?b6lzVUeLY!@t6Gv D6)V4^ diff --git a/assets/translations/gui.ikg.translation b/assets/translations/gui.ikg.translation index 66b89b0b33445a64d65f39b36075819651a57534..4ce8ddc8c12133798dc650769271df7cdfc944da 100644 GIT binary patch literal 683 zcmV;c0#yA{Q$s@n000005C8xT1^@t)0ssIgwJ-f(4FydU0M;FJNw8E>YZNJm%%fxr zUjEy5oajDmwJ*EI+nTwHxdzju^7hh#3R@}b8ib7?weO&0QiKT2$K*~w3?g8t0u$>D z=d>jGR<8-R-6>80OaO8KrV0$YX3)Q~{ZYO)Xx?jyzidl1Q`$DQ=LHs3;LtpaL!dp4 zM8#{3f6SjUkm=y+$wpL?zdS9XsyV!=Y4icIMJN$fhkQTGfAYtElMmO3`k{WOpD79H zFB1AQVEFw!y`P8sZ9k36KU>#z{d0d!P>AZz2@261lqi_HYVNA`UNe{L<@}^Ngc{Eq zOi`nHRVzG+etwqi@FzG1I3PsyW)^zBATXK}jGGsWk&g#ofgZYZM2hG$KEg zOH?SJZl-=QwqzPCf$D(rw8KhKx`ZHB1s%w-l;T=StD_EPq9tQ3@nUn;)FL)SYIoe^ zp><^25Zkc?XtJ3Gnh97joDi<8zY50(I=`MD&P+{Z#Zs_B=|{$fXE#EJije2VqP(3r zT6JJkRXePX$w&{0;KognuNtW@8eIUC%9$ksb}o?!G73JVmXr#-CaMxw%c^+=uyq}g z#JnUOIn+!DybC8UxPBagk?>&4!~!5a(#Hzd3@aC~0YapTYp4MwA%v$SN$NBP-~yQ% zS{)J~V-(pEAg~h4`|Ne!X~t@Kio92{m8Zz(M-lIQ3w7{fu4^(3Yku z5ZPURU#^USiflC0_JEL)01=oj4HW&fHflh7>w^yT=!06UBk0_-@CcqE>Zf)4dq=xz4(z*N>qu@E@+kkB-~VU3h3`|m zQ=2UO(D~*LJmWN;_`B=r9lSK8i9d$|$MC$7CU)PmwXPR@+V|t}=QDVvDDQ(U@M))@ z$-kM~cMvZFX&V3YBlWE<%rDQjg8P6=+izQ sxPpl?VV<{Fe8D5YMR#u-HcDGz_o#Uj#w)?EnA( diff --git a/assets/translations/gui.ru.translation b/assets/translations/gui.ru.translation index 06b4b3181e81bd72fe46f82e89bb36dbbdadbcc8..f38c70c9260797465aa091403755b7795be1aad0 100644 GIT binary patch literal 1468 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 RusnjM_)i^w4?Xy2^e=M#WQ+g+ diff --git a/gui/client_settings/client_settings.tscn b/gui/client_settings/client_settings.tscn index 04cdd62..f070c68 100644 --- a/gui/client_settings/client_settings.tscn +++ b/gui/client_settings/client_settings.tscn @@ -21,7 +21,7 @@ layout_mode = 2 custom_minimum_size = Vector2(512, 256) layout_mode = 2 tab_alignment = 1 -current_tab = 3 +current_tab = 2 [node name="gameplay" type="VBoxContainer" parent="CenterContainer/VBoxContainer/PanelContainer"] visible = false @@ -38,7 +38,6 @@ layout_mode = 2 text = "fullscreen" [node name="controls" type="VBoxContainer" parent="CenterContainer/VBoxContainer/PanelContainer"] -visible = false layout_mode = 2 metadata/_tab_index = 2 @@ -54,6 +53,7 @@ unique_name_in_owner = true custom_minimum_size = Vector2(256, 0) layout_mode = 2 size_flags_horizontal = 3 +size_flags_vertical = 1 min_value = 0.001 max_value = 0.02 step = 0.001 @@ -68,7 +68,23 @@ value = 0.02 allow_greater = true allow_lesser = true +[node name="ToggleCrouch" type="CheckButton" parent="CenterContainer/VBoxContainer/PanelContainer/controls"] +unique_name_in_owner = true +layout_mode = 2 +text = "toggle_crouch" + +[node name="ToggleScope" type="CheckButton" parent="CenterContainer/VBoxContainer/PanelContainer/controls"] +unique_name_in_owner = true +layout_mode = 2 +text = "toggle_scope" + +[node name="ToggleWalk" type="CheckButton" parent="CenterContainer/VBoxContainer/PanelContainer/controls"] +unique_name_in_owner = true +layout_mode = 2 +text = "toggle_walk" + [node name="audio" type="VBoxContainer" parent="CenterContainer/VBoxContainer/PanelContainer"] +visible = false layout_mode = 2 metadata/_tab_index = 3 @@ -83,6 +99,7 @@ text = "audio_gameplay" unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 +size_flags_vertical = 1 max_value = 1.0 step = 0.01 value = 1.0 @@ -102,6 +119,9 @@ text = "Покинуть сессию" [connection signal="toggled" from="CenterContainer/VBoxContainer/PanelContainer/video/FullscreenButton" to="CenterContainer" method="_on_fullscreen_button_toggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/PanelContainer/controls/Sensitivity/SensitivitySlider" to="CenterContainer" method="_on_sensitivity_slider_value_changed"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/PanelContainer/controls/Sensitivity/SensitivityBox" to="CenterContainer" method="_on_sensitivity_box_value_changed"] +[connection signal="toggled" from="CenterContainer/VBoxContainer/PanelContainer/controls/ToggleCrouch" to="CenterContainer" method="_on_toggle_crouch_toggled"] +[connection signal="toggled" from="CenterContainer/VBoxContainer/PanelContainer/controls/ToggleScope" to="CenterContainer" method="_on_toggle_scope_toggled"] +[connection signal="toggled" from="CenterContainer/VBoxContainer/PanelContainer/controls/ToggleWalk" to="CenterContainer" method="_on_toggle_walk_toggled"] [connection signal="value_changed" from="CenterContainer/VBoxContainer/PanelContainer/audio/GameplayMainAudio/GameplayMainSlider" to="CenterContainer" method="_on_gameplay_main_slider_value_changed"] [connection signal="pressed" from="CenterContainer/VBoxContainer/StopSession" to="CenterContainer" method="_on_stop_session_pressed"] [connection signal="pressed" from="CenterContainer/VBoxContainer/LeaveButton" to="CenterContainer" method="_on_leave_button_pressed"] diff --git a/gui/client_settings/client_settings_menu.gd b/gui/client_settings/client_settings_menu.gd index ffb5328..9e5750d 100644 --- a/gui/client_settings/client_settings_menu.gd +++ b/gui/client_settings/client_settings_menu.gd @@ -9,6 +9,9 @@ func _ready() -> void: Lobby.lobby_closed.connect(%StopSession.hide) %SensitivitySlider.set_value_no_signal(ClientSettings.SENSITIVITY) %SensitivityBox.set_value_no_signal(ClientSettings.SENSITIVITY) + %ToggleCrouch.set_pressed_no_signal(ClientSettings.TOGGLE_CROUCH) + %ToggleScope.set_pressed_no_signal(ClientSettings.TOGGLE_SCOPE) + %ToggleWalk.set_pressed_no_signal(ClientSettings.TOGGLE_WALK) func _input(event: InputEvent) -> void: if event.is_action_pressed("menu_settings"): @@ -39,3 +42,15 @@ func _on_leave_button_pressed() -> void: func _on_stop_session_pressed() -> void: if multiplayer.is_server(): Session.end_session() + + +func _on_toggle_crouch_toggled(toggled_on: bool) -> void: + ClientSettings.TOGGLE_CROUCH = toggled_on + + +func _on_toggle_scope_toggled(toggled_on: bool) -> void: + ClientSettings.TOGGLE_SCOPE = toggled_on + + +func _on_toggle_walk_toggled(toggled_on: bool) -> void: + ClientSettings.TOGGLE_WALK = toggled_on From 88bbe56467860d15f7cc5cfae4a688db536e2ac4 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sun, 21 Dec 2025 02:56:55 +0500 Subject: [PATCH 2/3] Fixed version label not translating --- assets/translations/info.csv | 6 +++--- assets/translations/info.en.translation | Bin 674 -> 746 bytes assets/translations/info.ru.translation | Bin 873 -> 949 bytes gui/main_menu/version_label.gd | 14 +++++++++++--- systems/auto_update.gd | 12 ++++++------ 5 files changed, 20 insertions(+), 12 deletions(-) diff --git a/assets/translations/info.csv b/assets/translations/info.csv index 95cd18b..d906198 100644 --- a/assets/translations/info.csv +++ b/assets/translations/info.csv @@ -1,7 +1,7 @@ key,ru,en,ikg au_loading,Подгружаем данные с сервера…,Loading data from server…, -au_err_load,Ошибка загрузки данных: ,Error while loading data: , -au_err_install,Ошибка загрузки новой версии: ,Error while downloading new version: , +au_err_load,[color=red]Ошибка загрузки данных: {error}[/color] ,[color=red]Error while loading data: {error}[/color], +au_err_install,[color=red]Ошибка загрузки новой версии: {error}[/color],[color=red]Error while downloading new version: {error}[/color], au_new_version,Доступна новая версия!,New version available!, -au_current_version,У вас самая актуальная версия игры!,Your version is the current version!, +au_current_version,[color=green]У вас самая актуальная версия игры! [/color],[color=green]Your version is the current version! [/color], vr_version,Текущая версия игры: ,Game version: , diff --git a/assets/translations/info.en.translation b/assets/translations/info.en.translation index 2cc9f9222d9cef2f49473cc348600f51561ca515..3902be3177b45e7215dadd089264c96507c9aea2 100644 GIT binary patch delta 296 zcmZ3)`igbKB1T?a1_lOGAP)Q$5MMHRJ)?fTJygU2NHYO3BM^6-y%N<9q_u$98i;!) zc}?C3qZNRsoMJ#7ZSuy;B z2`y!F void: AutoUpdate.update_version_text.connect(update_version) - update_version(tr("au_loading")) + update_version("au_loading") -func update_version(version: StringName): - text = tr("vr_version") + preload("res://version.tres").version + "\n" + version +func update_version(version: StringName, new_error = -1): + status = version + error = new_error + text = tr("vr_version") + preload("res://version.tres").version + "\n" + tr(version).format({"error":error}) + +func _notification(what: int) -> void: + if what == NOTIFICATION_TRANSLATION_CHANGED: + text = tr("vr_version") + preload("res://version.tres").version + "\n" + tr(status).format({"error":error}) diff --git a/systems/auto_update.gd b/systems/auto_update.gd index b684782..e0eb7a4 100644 --- a/systems/auto_update.gd +++ b/systems/auto_update.gd @@ -5,7 +5,7 @@ var popup_scene: PackedScene = preload("uid://5goo8fyxkv33") var new_version_avaiable: bool var popup: ConfirmationDialog -signal update_version_text(to: StringName) +signal update_version_text(to: StringName,error: int) func _ready() -> void: request_completed.connect(on_request_completed) @@ -18,22 +18,22 @@ func _ready() -> void: patch_request.download_file = exec_dir.path_join("chelimbalo.pck") patch_request.request_completed.connect(patch_downloaded) - update_version_text.emit(tr("au_loading")) + update_version_text.emit("au_loading") request("https://2ndbeam.ru/durenije/chelimbalo/release/deploy_data") func on_request_completed(result: int, _response_code: int, _headers: PackedStringArray, body: PackedByteArray): if result != OK: - update_version_text.emit("[color=red]" + tr("au_err_load") + str(result) +"[/color]") + update_version_text.emit("au_err_load",result) return var ver_hash = body.get_string_from_ascii().split("\n")[1] if ver_hash != load("res://version.tres").version: - update_version_text.emit(tr("au_new_version")) + update_version_text.emit("au_new_version") popup.popup_centered() else: - update_version_text.emit("[color=green]"+tr("au_current_version")+"[/color]") + update_version_text.emit("au_current_version") func download_button_pressed() -> void: popup.get_node("HTTPRequest").request("https://2ndbeam.ru/durenije/chelimbalo/release/chelimbalo.pck") @@ -43,4 +43,4 @@ func patch_downloaded(result: int, _response_code: int, _headers: PackedStringAr OS.create_process(OS.get_executable_path(),OS.get_cmdline_args()) get_tree().quit() else: - update_version_text.emit("[color=red]" + tr("au_err_install") + str(result) +"[/color]") + update_version_text.emit("au_err_install",result) From af66792e47f0867011083d3f1d21b123637c6b70 Mon Sep 17 00:00:00 2001 From: Rendo Date: Sun, 21 Dec 2025 13:31:12 +0500 Subject: [PATCH 3/3] Small net optimization --- weapons/gun/bullet_hole.tscn | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/weapons/gun/bullet_hole.tscn b/weapons/gun/bullet_hole.tscn index 7d3dcda..a4c2cfa 100644 --- a/weapons/gun/bullet_hole.tscn +++ b/weapons/gun/bullet_hole.tscn @@ -25,4 +25,11 @@ ignore_time_scale = true [node name="MultiplayerSynchronizer" type="MultiplayerSynchronizer" parent="."] replication_config = SubResource("SceneReplicationConfig_wpexx") +[node name="Timer2" type="Timer" parent="."] +wait_time = 0.06 +one_shot = true +autostart = true +ignore_time_scale = true + [connection signal="timeout" from="Timer" to="." method="queue_free"] +[connection signal="timeout" from="Timer2" to="MultiplayerSynchronizer" method="queue_free"]