GodotEngine. Неправильно воркает GUI

Забаненный
Участник
Статус
Оффлайн
Регистрация
23 Сен 2019
Сообщения
1,019
Реакции[?]
190
Поинты[?]
0
Столкнулся с такой проблемой, при подборе допустим патрон не обновляется количество в меню, но в память оно пишется. Пробовал сделать скрипт Gui глобальным, но это вызывает ряд других ошибок.

gui:
extends Control

func set_action_name(name):
    $action_name.text = name
func set_ammo(nameq):
    $patrons.text = nameq

func _physics_process(_delta):
    if !GiScript.action_object:
        set_action_name('')
    elif GiScript.action_object && 'action_name' in GiScript.action_object:
        set_action_name(GiScript.action_object.action_name)
    
    GiScript.reload()
    
    if !GiScript.ammo && !GiScript.ammo_g:
        set_ammo("0/2  0")
    elif GiScript.ammo && GiScript.ammo_g:
        if Input.is_action_just_pressed('ui_reload'):
            if GiScript.ammo == 1:
                set_ammo( str(GiScript.ammo_g) + "/2  " + str(GiScript.ammo) )
            elif GiScript.ammo == 0:
                pass
            else:
                set_ammo(str(GiScript.ammo_g) + "/2  " + str(GiScript.ammo) )
global:
extends Node

var level = 1

var pack = {}
var action_object = null

var ammo = 0
var ammo_g = 0

func to(scene):
    get_tree().change_scene_to_file("res://scenes/"+scene+".tscn")

func reload():
    if Input.is_action_just_pressed('ui_reload'):
        if GiScript.ammo == 1:
            GiScript.ammo = GiScript.ammo - 1
            GiScript.ammo_g = GiScript.ammo_g + 1
            print(GiScript.ammo)
            print(GiScript.ammo_g)
        elif GiScript.ammo == 0:
            pass
            print(GiScript.ammo)
            print(GiScript.ammo_g)
        else:
            GiScript.ammo = GiScript.ammo - 2
            GiScript.ammo_g = GiScript.ammo_g + 2
            print(GiScript.ammo)
            print(GiScript.ammo_g)

1711349842520.png
1711349883297.png
 
Забаненный
Участник
Статус
Оффлайн
Регистрация
23 Сен 2019
Сообщения
1,019
Реакции[?]
190
Поинты[?]
0
Можно закрыть, оказывается нужно было сделать:
gui:
    if !GiScript.ammo && !GiScript.ammo_g:
        set_ammo("0/2  0")
    else:
        set_ammo(str(GiScript.ammo_g) + "/2  " + str(GiScript.ammo) )
Без каких либо проверок на нажатие кнопки, ибо это б...я уже обрабатывается в глобальном скрипте, какой же Я дурачок...
 
Сверху Снизу