parent
da047c4e7d
commit
d147eb102f
5 changed files with 5 additions and 114 deletions
|
|
@ -40,71 +40,3 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\"
|
||||||
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash
|
||||||
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\")
|
||||||
rm -rf \"{temp_dir}\""
|
rm -rf \"{temp_dir}\""
|
||||||
|
|
||||||
[preset.1]
|
|
||||||
|
|
||||||
name="Windows Desktop"
|
|
||||||
platform="Windows Desktop"
|
|
||||||
runnable=true
|
|
||||||
advanced_options=false
|
|
||||||
dedicated_server=false
|
|
||||||
custom_features=""
|
|
||||||
export_filter="all_resources"
|
|
||||||
include_filter=""
|
|
||||||
exclude_filter=""
|
|
||||||
export_path="exports/Chelimbalo.exe"
|
|
||||||
patches=PackedStringArray()
|
|
||||||
encryption_include_filters=""
|
|
||||||
encryption_exclude_filters=""
|
|
||||||
seed=0
|
|
||||||
encrypt_pck=false
|
|
||||||
encrypt_directory=false
|
|
||||||
script_export_mode=2
|
|
||||||
|
|
||||||
[preset.1.options]
|
|
||||||
|
|
||||||
custom_template/debug=""
|
|
||||||
custom_template/release=""
|
|
||||||
debug/export_console_wrapper=1
|
|
||||||
binary_format/embed_pck=true
|
|
||||||
texture_format/s3tc_bptc=true
|
|
||||||
texture_format/etc2_astc=false
|
|
||||||
shader_baker/enabled=false
|
|
||||||
binary_format/architecture="x86_64"
|
|
||||||
codesign/enable=false
|
|
||||||
codesign/timestamp=true
|
|
||||||
codesign/timestamp_server_url=""
|
|
||||||
codesign/digest_algorithm=1
|
|
||||||
codesign/description=""
|
|
||||||
codesign/custom_options=PackedStringArray()
|
|
||||||
application/modify_resources=true
|
|
||||||
application/icon=""
|
|
||||||
application/console_wrapper_icon=""
|
|
||||||
application/icon_interpolation=4
|
|
||||||
application/file_version=""
|
|
||||||
application/product_version=""
|
|
||||||
application/company_name=""
|
|
||||||
application/product_name=""
|
|
||||||
application/file_description=""
|
|
||||||
application/copyright=""
|
|
||||||
application/trademarks=""
|
|
||||||
application/export_angle=0
|
|
||||||
application/export_d3d12=0
|
|
||||||
application/d3d12_agility_sdk_multiarch=true
|
|
||||||
ssh_remote_deploy/enabled=false
|
|
||||||
ssh_remote_deploy/host="user@host_ip"
|
|
||||||
ssh_remote_deploy/port="22"
|
|
||||||
ssh_remote_deploy/extra_args_ssh=""
|
|
||||||
ssh_remote_deploy/extra_args_scp=""
|
|
||||||
ssh_remote_deploy/run_script="Expand-Archive -LiteralPath '{temp_dir}\\{archive_name}' -DestinationPath '{temp_dir}'
|
|
||||||
$action = New-ScheduledTaskAction -Execute '{temp_dir}\\{exe_name}' -Argument '{cmd_args}'
|
|
||||||
$trigger = New-ScheduledTaskTrigger -Once -At 00:00
|
|
||||||
$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
|
|
||||||
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings $settings
|
|
||||||
Register-ScheduledTask godot_remote_debug -InputObject $task -Force:$true
|
|
||||||
Start-ScheduledTask -TaskName godot_remote_debug
|
|
||||||
while (Get-ScheduledTask -TaskName godot_remote_debug | ? State -eq running) { Start-Sleep -Milliseconds 100 }
|
|
||||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue"
|
|
||||||
ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue
|
|
||||||
Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue
|
|
||||||
Remove-Item -Recurse -Force '{temp_dir}'"
|
|
||||||
|
|
|
||||||
Binary file not shown.
4
exports/Chelimbalo.sh
Executable file
4
exports/Chelimbalo.sh
Executable file
|
|
@ -0,0 +1,4 @@
|
||||||
|
#!/bin/sh
|
||||||
|
printf '\033c\033]0;%s\a' Chelimbalo
|
||||||
|
base_path="$(dirname "$(realpath "$0")")"
|
||||||
|
"$base_path/Chelimbalo.x86_64" "$@"
|
||||||
Binary file not shown.
|
|
@ -14,31 +14,14 @@ var in_lobby: bool = false
|
||||||
var attack_team: Array[int] = []
|
var attack_team: Array[int] = []
|
||||||
var defence_team: Array[int] = []
|
var defence_team: Array[int] = []
|
||||||
var specators_team: Array[int] = []
|
var specators_team: Array[int] = []
|
||||||
var validated_players = []
|
|
||||||
|
|
||||||
var win_score = 13
|
var win_score = 13
|
||||||
var half_rounds = 12
|
var half_rounds = 12
|
||||||
|
|
||||||
var client_hash: String = ""
|
|
||||||
|
|
||||||
const CHUNK_SIZE = 1024
|
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
multiplayer.peer_disconnected.connect(player_left)
|
multiplayer.peer_disconnected.connect(player_left)
|
||||||
multiplayer.server_disconnected.connect(server_disconnected)
|
multiplayer.server_disconnected.connect(server_disconnected)
|
||||||
multiplayer.peer_connected.connect(add_and_sync_peer)
|
multiplayer.peer_connected.connect(add_and_sync_peer)
|
||||||
multiplayer.connected_to_server.connect(send_validation)
|
|
||||||
|
|
||||||
var ctx = HashingContext.new()
|
|
||||||
ctx.start(HashingContext.HASH_SHA256)
|
|
||||||
|
|
||||||
var file = FileAccess.open(OS.get_executable_path(),FileAccess.READ)
|
|
||||||
|
|
||||||
while file.get_position() < file.get_length():
|
|
||||||
var remaining = file.get_length() - file.get_position()
|
|
||||||
ctx.update(file.get_buffer(min(remaining,CHUNK_SIZE)))
|
|
||||||
|
|
||||||
client_hash = ctx.finish().hex_encode()
|
|
||||||
|
|
||||||
func player_left(id: int) -> void:
|
func player_left(id: int) -> void:
|
||||||
if attack_team.has(id):
|
if attack_team.has(id):
|
||||||
|
|
@ -59,35 +42,10 @@ func host() -> void:
|
||||||
lobby_created.emit()
|
lobby_created.emit()
|
||||||
specators_team.append(multiplayer.get_unique_id())
|
specators_team.append(multiplayer.get_unique_id())
|
||||||
in_lobby = true
|
in_lobby = true
|
||||||
multiplayer.peer_connected.connect(check_player_hash)
|
|
||||||
multiplayer.peer_disconnected.connect(on_player_left)
|
|
||||||
|
|
||||||
func check_player_hash(id: int):
|
|
||||||
if multiplayer.is_server():
|
|
||||||
get_tree().create_timer(1).timeout.connect(kick_untrustworthy.bind(id))
|
|
||||||
|
|
||||||
func on_player_left(id: int):
|
|
||||||
if multiplayer.is_server():
|
|
||||||
if validated_players.has(id):
|
|
||||||
validated_players.erase(id)
|
|
||||||
|
|
||||||
func kick_untrustworthy(id: int):
|
|
||||||
if multiplayer.is_server() and validated_players.has(id) == false:
|
|
||||||
multiplayer.disconnect_peer(id)
|
|
||||||
|
|
||||||
@rpc("any_peer","call_remote","reliable")
|
|
||||||
func validate_hash(sender_hash: StringName):
|
|
||||||
if multiplayer.is_server() == false:
|
|
||||||
return
|
|
||||||
if client_hash == sender_hash:
|
|
||||||
validated_players.append(multiplayer.get_remote_sender_id())
|
|
||||||
|
|
||||||
func send_validation():
|
|
||||||
validate_hash.rpc_id(1,client_hash)
|
|
||||||
|
|
||||||
func join(ip: String) -> Error:
|
func join(ip: String) -> Error:
|
||||||
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
|
var peer: ENetMultiplayerPeer = ENetMultiplayerPeer.new()
|
||||||
var res = peer.create_client(ip,PORT)
|
var res = peer.create_client(ip,PORT)
|
||||||
if res != 0:
|
if res != 0:
|
||||||
return res
|
return res
|
||||||
multiplayer.multiplayer_peer = peer
|
multiplayer.multiplayer_peer = peer
|
||||||
|
|
@ -95,10 +53,7 @@ func join(ip: String) -> Error:
|
||||||
in_lobby = true
|
in_lobby = true
|
||||||
return Error.OK
|
return Error.OK
|
||||||
|
|
||||||
|
|
||||||
func leave() -> void:
|
func leave() -> void:
|
||||||
if multiplayer.is_server():
|
|
||||||
multiplayer.peer_connected.disconnect(check_player_hash)
|
|
||||||
multiplayer.multiplayer_peer = OfflineMultiplayerPeer.new()
|
multiplayer.multiplayer_peer = OfflineMultiplayerPeer.new()
|
||||||
attack_team.clear()
|
attack_team.clear()
|
||||||
defence_team.clear()
|
defence_team.clear()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue