Compare commits

...
Sign in to create a new pull request.

3 commits

Author SHA1 Message Date
af66792e47 Small net optimization 2025-12-21 13:31:12 +05:00
88bbe56467 Fixed version label not translating 2025-12-21 02:56:55 +05:00
49589d84d6 GUI Inprovements 2025-12-21 02:37:17 +05:00
12 changed files with 67 additions and 14 deletions

View file

@ -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,

1 key ru en ikg
41 win_rounds Раундов до победы Rounds to win
42 toggle_walk Переключение ходьбы Toggle walking
43 toggle_crouch Переключение приседания Toggle crouching
44 toggle_scope Переключение прицеливания Toggle scoping
45
46

View file

@ -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: ,

1 key ru en ikg
2 au_loading Подгружаем данные с сервера… Loading data from server…
3 au_err_load Ошибка загрузки данных: [color=red]Ошибка загрузки данных: {error}[/color] Error while loading data: [color=red]Error while loading data: {error}[/color]
4 au_err_install Ошибка загрузки новой версии: [color=red]Ошибка загрузки новой версии: {error}[/color] Error while downloading new version: [color=red]Error while downloading new version: {error}[/color]
5 au_new_version Доступна новая версия! New version available!
6 au_current_version У вас самая актуальная версия игры! [color=green]У вас самая актуальная версия игры! [/color] Your version is the current version! [color=green]Your version is the current version! [/color]
7 vr_version Текущая версия игры: Game version:

View file

@ -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"]

View file

@ -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

View file

@ -1,10 +1,18 @@
extends RichTextLabel
var status: StringName = "au_loading"
var error: int
func _ready() -> 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})

View file

@ -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)

View file

@ -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"]