• Страница 1 из 1
  • 1
Форум о визуальных новеллах » Для разработчиков » Ren'Py » 'unicode' object is not callable
'unicode' object is not callable

Kostys
Дата: Четверг, 30.04.2020, 12:12 | Сообщение # 1
Пользователь
Сообщений: 12
Награды: 0
Привет всем еще раз, у меня возникла новая, уже непонятная для меня проблема. Если вкратце:

1. Я создал screen mainquestpage на котором располагается картинка во весь экран и кнопка, при нажатии на которую происходит Hide("mainquestpage"). Проверил - все работает, логично, ошибок нет.

2. Я решил показать этот экран не сразу, а после определенного момента игры. Ну и вот прописал всякие 'спец. эффекты', чтобы это выглядело прикольно, ну и вот на этот моменте, собственно, и возникла проблема.

Когда я получил возможность нажать на кнопку, я сразу же решил протестировать и вернуться обратно, ну и при нажатии появился экран, все ок, а потом когда я НАВЕЛ на кнопку, по которой нужно вернуться обратно, у меня вылетела ошибОЧКА: 'unicode' object is not callable

Она указывала на элемент pause 2.0 в скрипте. Ну я и подумал, что он просто второй раз паузу не может нажать, значит, подожду, пока пройдет пауза. Подождал. После еще раз нажал, вышла точно такая же ошибка, но уже на другой кусок кода, последний, там где я поставил $ renpy.pause(hard=True) и пишет, что вот никак не может это сделать. Ну и поменял эту строку на call screen который мне нужно, но он опять выдал ту же самую ошибку, только уже со скрином, и мне втирая, что не может сделать call screen вот никак.

Почитал в инете, там предлагали перезапустить комп, ну и ничего не произошло. Из советов там больше ничего не было, были только другие проблемы других людей. В общем и целом, что делать с такой ошибкой? По какой причине она вообще появляется? Кусок кода я прикрепил ниже.

Код №1: то место, где я показываю screen mainquestpage и где происходит всё это безобразие:
Код
# дополнительно поясняю, что сначала там просто шел диалог через ""
window hide
hide twi1 with dissolve
$ questactive1 = True
show screen questbutton with dissolve
show screen questhint with dissolve
pause 2.0
hide screen questhint with dissolve
show screen twiroom
$ renpy.pause(hard=True)

Код №2: показываю screen questbutton, mainquestpage:

Код
#mainquestpage
screen mainquestpage:

    imagemap:
        ground "questpage.png"
        hotspot (1070, 526, 202, 169) action Hide("mainquestpage")

    imagebutton:
        xpos 1071 ypos 526
        idle "btg.png"
        hovered "btg hovered.png"
        action Hide("mainquestpage")

    text "Квесты:" color '#000000' size 18 xpos 75 ypos 75

    if questactive1 and questcomp1 == False:
        vbox xpos 100 ypos 100 spacing 30:
            text "[questname1]" color '#000000' size 18
            text "[questdesc1]" color '#000000' size 18

    if questcomp1:
        text "[questname1] выполнен." color '#ffffff' size 18 ypos 200 xpos 200

#questbutton
screen questbutton:

    imagebutton:
        xpos 950 ypos 15
        idle "qb.png"
        hover "qb hovered.png"
        action Show("mainquestpage")

Код №3 (мало ли): показываю screen questhint:

Код
#questhint
screen questhint:

    text "Квесты ->" color '#ff0000' size 18 xpos 850 ypos 50

Правка: показываю ошибку с $ renpy.pause(hard=True), которая не только с этой строкой возникает:
Код
I'm sorry, but an uncaught exception occurred.

While running game code:
  File "game/script.rpy", line 192, in script
    $ renpy.pause(hard=True)
  File "game/script.rpy", line 192, in <module>
    $ renpy.pause(hard=True)
TypeError: 'unicode' object is not callable

-- Full Traceback ------------------------------------------------------------

Full traceback:
  File "game/script.rpy", line 192, in script
    $ renpy.pause(hard=True)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\ast.py", line 914, in execute
    renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\python.py", line 2028, in py_exec_bytecode
    exec bytecode in globals, locals
  File "game/script.rpy", line 192, in <module>
    $ renpy.pause(hard=True)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\exports.py", line 1480, in pause
    rv = renpy.ui.interact(mouse='pause', type='pause', roll_forward=roll_forward)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\ui.py", line 297, in interact
    rv = renpy.game.interface.interact(roll_forward=roll_forward, **kwargs)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\display\core.py", line 2702, in interact
    repeat, rv = self.interact_core(preloads=preloads, trans_pause=trans_pause, **kwargs)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\display\core.py", line 3515, in interact_core
    rv = renpy.display.focus.mouse_handler(ev, x, y)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\display\focus.py", line 407, in mouse_handler
    return change_focus(new_focus, default=default)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\display\focus.py", line 369, in change_focus
    rv = widget.focus(default=default)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\display\behavior.py", line 819, in focus
    rv = run(self.hovered)
  File "C:\Programs\Renpy\renpy-7.3.5-sdk\renpy\display\behavior.py", line 320, in run
    return action(*args, **kwargs)
TypeError: 'unicode' object is not callable


Ну вот и все. Спасибо за прочтение, надеюсь на помощь.


Сообщение отредактировал Kostys - Четверг, 30.04.2020, 12:20


СОНЦЕ
Дата: Суббота, 02.05.2020, 13:53 | Сообщение # 2
Разработчик
Сообщений: 196
Награды: 29
Дошли тентакли до этой проблемы Надеюсь Вы уже ее решили XD
но крч вот в чем была загвоздка

Код
 
    imagebutton:
        xpos 1071 ypos 526
        idle "btg.png"
        hovered "btg hovered.png"
        action Hide("mainquestpage")


команду hovered надо поменять на hover. и впредь быть внимательнее поскольку это похожие по написанию но две разные команды
hover - что показывать при наведении на кнопку - тут обычно название картинки в кавычках. для ренпи это тип "unicode"
hovered - что выполнить при наведении на кнопку - тут обычно исполняемая команда на манер тех что после action

ну вот ренпи при наведении и попыталась выполнить строчку unicode, чего ее жизнь не учила...

Kostys
Дата: Воскресенье, 03.05.2020, 16:53 | Сообщение # 3
Пользователь
Сообщений: 12
Награды: 0
Цитата СОНЦЕ ()
Дошли тентакли до этой проблемы Надеюсь Вы уже ее решили XDно крч вот в чем была загвоздка

Код
 
    imagebutton:
        xpos 1071 ypos 526
        idle "btg.png"
        hovered "btg hovered.png"
        action Hide("mainquestpage")

команду hovered надо поменять на hover. и впредь быть внимательнее поскольку это похожие по написанию но две разные команды
hover - что показывать при наведении на кнопку - тут обычно название картинки в кавычках. для ренпи это тип "unicode"
hovered - что выполнить при наведении на кнопку - тут обычно исполняемая команда на манер тех что после action

ну вот ренпи при наведении и попыталась выполнить строчку unicode, чего ее жизнь не учила...

Спасибо!
Форум о визуальных новеллах » Для разработчиков » Ren'Py » 'unicode' object is not callable
  • Страница 1 из 1
  • 1
Поиск: