Форум Anivisual закрыт. Вы не можете создавать новые темы или писать ответы. Форум будет работать в режиме архива.
Пользователи · Поиск по форуму · · · Регистрация

  • Страница 1 из 1
  • 1
Форум о визуальных новеллах » Записи участника » Kostys [12]
Результаты поиска

Kostys

#1 | Тема: Работает не с первого раза
Привет, у меня такая проблема, что текст показывается не с первого раза, когда изменяется переменная. Я хочу, чтобы когда список activequests[] содержал 1, то появлялся текст, но проблема в том, что он не появляется с первого раза, когда я перехожу на экран, а когда я его закрываю и захожу снова - он появляется. Как сделать так, чтобы он показывался с первого раза? Код ниже.
Код
screen mainquestpage():

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

    vbox xpos 100 ypos 100 spacing 30:

        if activequests[0] == 1 and questcomp1 == False:
            text "[questname1]" color '#000000' size 18
            text "[questdesc1]" color '#000000' size 18

        elif questcomp1:
            text "[questname1] was completed." color '#000000' size 18


Это экран. А вот quests.rpy:

Код
# list of all active quests

define activequests = [ None ]

# quest 1

define questname1 = "Helping Part One."
define questdesc1 = "Fetch a ball."
define questcomp1 = False
Для этого я просто убрал в начале игры из activequests[] None, и потом activequests.append(1), ну и дальше, как видите, проверяю, есть ли там 1.

Kostys

#2 | Тема: 'unicode' object is not callable
Привет всем еще раз, у меня возникла новая, уже непонятная для меня проблема. Если вкратце:

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/Апр/2020, 11:20

Kostys

#3 | Тема: 'unicode' object is not callable
Цитата СОНЦЕ ()
Дошли тентакли до этой проблемы Надеюсь Вы уже ее решили XDно крч вот в чем была загвоздка

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

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

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

Спасибо!

Kostys

#4 | Тема: Показ текста
Привет, у меня вот возник вопрос по поводу показа текста.

Кароч, если вкратце, я решил сделать что-то типа меню квестов, и чтобы там показывался текст названия и описания задания. 
Но у меня возникла проблема с отображением текста, т.к. если квестов > 1, то нужно размещать следующий квест чуть ниже.
Это можно, конечно, сделать вручную, но если у меня будет 20 квестов, то я запарюсь вот это все писать...
Есть ли какой то варик создать, например, list, чтобы первая цифра в нем, например, была первым квестом, который отображается самым первым, а потом если добавить еще, то вторая отображалась уже ниже, ну и если убрать самую первую, то остальные тоже сместились выше? 
Я пока не видел такого урока или хотя бы совета в интернете, поэтому кто знает, подскажите, пожалуйста. 

Ну а вообще такое чувство, что я пишу только для пользователя СОНЦЕ, ибо никто вообще не собирается отвечать мне здесь) Ну чтож, скажем ему спасибо)

Kostys

#5 | Тема: Показ текста
Цитата СОНЦЕ ()
не должно составить труда подменить
Да нет, нифига, я подставил туда список, а команда range выдает мне числа зачем-то, смотря сколько я туда поставлю, столько и выдает
Ну например, у меня есть q = ["a", "b", "c"] и когда я использую range(3) показывает от 0 до 2 числа, они мне нафиг не нужны
Посмотрел в инете, предлагали range(0, len(q)) сделать, но тоже не работает и показывает абсолютно то-же самое, что и тут
Поэтому как раз  таки не понятно)

Kostys

#6 | Тема: Показ текста
Цитата СОНЦЕ ()
Мне просто было лень придумать квесты в лист...Код

init python:
    quests = ['поучить python','поучить listы в python','поучить циклы в python','поработать с listами в циклах в python']

screen viewport_vbox_list:
    viewport:
        scrollbars 'vertical'
        pos 400, 50
        xsize 500
        ysize 500
Насчет заданий полностью согласен - мне еще учить и учить этот питон, так что спасибо за подсказку, если заработает, конечно, потому что я рандомно кликая, вроде, уже такое пробовал, и нифига, ну щас попробую прям скопировать)

Kostys

#7 | Тема: Показ текста
Цитата СОНЦЕ ()
init python:    quests = ['поучить python','поучить listы в python','поучить циклы в python','поработать с listами в циклах в python']
Чекнул я данную конструкцию, тут же quests[0] получается и он повторяется 4 раза
Если я ставлю все в отдельные [] то это уже уникод, а там я хз, ни map(str,q) не помогает, ни q.encode("utf-8")  или что там еще по запросам в поисковике выдавалось
Надеюсь, голову там еще не пробили от фейспалма? Потому что я новичок еще, пока что не пользовался листами в renpy и особенно ничего из уникода не конвертировал никуда
Так есть какой-то варик это все проделать?

Kostys

#8 | Тема: Показ текста
Цитата СОНЦЕ ()
Боюсь даже спрашивать, но что конкретно у тебя в коде, и что конкретно ты хочешь получить в результате?
Да ничего особенного, в коде q = ["a", "b", "c", "d"] и я хочу, чтобы у меня было a b c d отдельно на каждой строчке, но прикол в том, что по идее их нужно поставить в еще одни скобки [] и получится q = [["a"], ["b"], ["c"], ["d"]], но тогда это unicode и когда это высвечивается, во-первых, все буквы смешиваются, а во вторых abcd печатаются с u/"a" и так далее символами до a
Ну вот мне нужно их как-то перевести из unicode в норм формат, но в инете ниче не нашел, а то, что нашел, попробовал и не получилось
Да и + посмотрел в интернете видео и нифига не понятно, а хотелось бы как-то подробнее про эту тему с переводами в другие форматы текста и с печатанием текста в viewport

Kostys

#9 | Тема: Показ текста
Цитата СОНЦЕ ()
for i in q:                text i
А, ну да, я как всегда невнимательно напечатал и поставил "text q")))))
Спасибо, что поправили, надо что-то с этой внимательностью делать уже cry А если серьезно, спс)

Kostys

#10 | Тема: Ищем художника
Привет. Наша небольшая команда ищет художника. Сразу скажу, что проект связан с вселенной MLP. Проект полностью не коммерческий, мы работаем за идею. Вот ссылка на группу в вк: https://vk.com/ponkquest
Если вам нравится, в какую сторону движется разработка, и хотелось бы принять участие: милости просим к нам) 

P.S. Внимание: пишите, пожалуйста, в сообщения группы или в лс прямо создателю проекта. Спасибо.

Kostys

#11 | Тема: Почему ренпай так странно делит?
Написал пробный тест вычисления процента от числа, сделал так:

Код
define finalvalue = 0

label start:

$ finalvalue = 50 / 100 * 10

"[finalvalue]"

return

И данный код выдает мне 0, хотя по идее, должно получиться 5

Как именно это работает? И есть ли ошибка в том, что я это не делаю в блоке init python и не импортировал там какие-то нужные библиотеки?

Kostys

#12 | Тема: Почему ренпай так странно делит?
Цитата СОНЦЕ ()
Потому что RenPy базируется на python а python так странно делит ^^суть: пока все переменные целочисленные - результаты так же останутся целочисленными.
соответственно 50/100 = 0 целочисленная часть от 0.5.

чтобы таки заставить питон правильно считать дроби нужно четко объявить питону что это дробная операция
показать, что он работает именно с дробными числами
навример так
50.0 / 100 = 0.5

или float(50)/100 = 0.5

отмечу что 0.5 * 10 = не 5 а 5.0 . иногда это важно и нужно округлить через операцию int
int(5.0) = 5

Спс, я просто написал пост сюда, а потом сразу понял, но удалять не стал)
Форум о визуальных новеллах » Записи участника » Kostys [12]
  • Страница 1 из 1
  • 1
Поиск: