launcher.gd 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. extends Node
  2. var currentversion = 00
  3. var status = 0
  4. var downloaded_bytes = 0
  5. var body_size = 0
  6. var dowload = true
  7. export var versionfile = 'https://git.galodev.net/galo/ghosthandupdate/raw/master/version.json'
  8. export var pckfile = 'https://download1645.mediafire.com/u9zz5bf2gvng/e8fuz27b4t5uvvq/GhostHand.pck'
  9. func _ready():
  10. if ResourceLoader.exists('user://patches/currentversion.tres'):
  11. var loader = load("user://patches/currentversion.tres")
  12. currentversion = loader.data[0]['version']
  13. print(currentversion)
  14. var directory = Directory.new()
  15. if directory.dir_exists("user://patches"):
  16. pass
  17. else:
  18. directory.make_dir("user://patches")
  19. $HTTPRequest2.request(versionfile)
  20. print('gen bat file')
  21. var save_game = File.new()
  22. save_game.open("res://run.bat", File.WRITE)
  23. save_game.store_line('pushd %~dp0')
  24. save_game.store_line('gamelauncher.exe --main-pack GhostHand.pck')
  25. save_game.store_line('popd')
  26. save_game.close()
  27. func dowloadupdate():
  28. print('dowloading patch')
  29. $HTTPRequest.set_download_file('res://GhostHand.pck')
  30. $HTTPRequest.request(pckfile)
  31. func _on_HTTPRequest_request_completed(result, response_code, headers, body):
  32. if response_code == 200:
  33. set_process(false)
  34. $Label.text = 'your dowload just finished'
  35. $Button.set_disabled(false)
  36. $ProgressBar.value = 100
  37. # ProjectSettings.load_resource_pack('user://patches/newpatch.pck')
  38. # get_tree().change_scene_to(load("res://Login/Client.tscn"))
  39. else:
  40. server_connect_fail()
  41. func server_connect_fail():
  42. $Label.text = 'server connection failure!'
  43. print('failed to connect to server')
  44. # if ResourceLoader.exists('user://patches/newpatch.pck'):
  45. # ProjectSettings.load_resource_pack('user://patches/newpatch.pck')
  46. # get_tree().change_scene_to(load("res://Login/Client.tscn"))
  47. func _on_HTTPRequest2_request_completed(result, response_code, headers, body):
  48. if response_code == 200:
  49. var data = JSON.parse(body.get_string_from_ascii())
  50. var dataprocess = data.result
  51. print(body.get_string_from_ascii())
  52. print(dataprocess)
  53. body_size = dataprocess['size']
  54. var dict = Directory.new()
  55. if dataprocess['version'] > currentversion:
  56. dowloadupdate()
  57. dowload = false
  58. var data2 = load("res://dataresource.gd").new()
  59. data2.data = [dataprocess]
  60. ResourceSaver.save('user://patches/currentversion.tres', data2)
  61. else:
  62. print('no version to dowload')
  63. $Label.text = 'you are on the most recent version!!!'
  64. $Button.set_disabled(false)
  65. # ProjectSettings.load_resource_pack('user://patches/newpatch.pck')
  66. # get_tree().change_scene_to(load("res://Client/Client.tscn"))
  67. else:
  68. server_connect_fail()
  69. $Label.text = 'server connection failure!'
  70. pass # Replace with function body.
  71. func force_update():
  72. dowloadupdate()
  73. dowload = false
  74. var buffer = 0.0
  75. var buffertext = ''
  76. func _process(delta):
  77. status = $HTTPRequest.get_http_client_status()
  78. downloaded_bytes = $HTTPRequest.get_downloaded_bytes()
  79. if not dowload:
  80. $Label.text = 'dowloading '+String.humanize_size(downloaded_bytes) +' of '+String.humanize_size(body_size)
  81. if (downloaded_bytes-buffer)/delta != 0:
  82. buffertext = '\n' + ' at speed ' + String.humanize_size(float(downloaded_bytes-buffer)/delta) + '/s'
  83. $Label.text += buffertext
  84. buffer = downloaded_bytes
  85. $ProgressBar.value = downloaded_bytes*100/body_size