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

  • Страница 1 из 1
  • 1
[Нужна помощь] Кастомное меню иневентаря

MrDench

#1
Всем доброго здравия! У меня возникла проблема (опять), с кастомным экраном (опять X2). Я создаю игру на подобии RPG, понимаю, Ren'Py не лучший вариант для этого, но других движков я пока не изучал х). 
Проблема возникла с экраном инвентаря. Возникающая ошибка: NameError: Name 'name' is not defined.   

Вопрос, можно ли как-то взять переменную "name" из script.rpy? У меня эта переменная берет начало в начале игры. Я хочу вставить эту переменную, для того чтобы на экране инвентаря было имя персонажа.

Вот код экрана:           (P.s. заранее благодарю всех!)

screen inventory():
    tag menu
    default currenthp = 100  #comment in realise
    default hpmax = 100 #comment in realise
    default currentlvl = 0 #comment in realise
    default currentarmor = 0 #comment in realise
    default tonextlvl = 27203 #comment in realise
    default money = 0 #comment in realise
    add "gui/inventory/inventory_menu.png"
    imagebutton auto  "gui/inventory/return_%s.png" xpos 0 ypos 0 focus_mask True action ShowMenu("main_menu")
    imagebutton auto "gui/inventory/armor_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/eqstuff1_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/eqstuff2_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/eqstuff3_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    imagebutton auto "gui/inventory/weapon_inv_%s.png" xpos 0 ypos 0 focus_mask True action NullAction()
    frame:
        xpos 575 ypos 360 xysize(1316,684)
        viewport:
            mousewheel True
            vbox:
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
                text "smth"
                text "stick'n'shit"
    hbox: # hp
        xpos 112 ypos 800
        spacing 10
        text "{color=#000000}[currenthp]/[hpmax]{/color}":
            size 50
    hbox: # lvl
        xpos 1025 ypos 120
        text "{color=#000000}[currentlvl]{/color}":
            size 50
    hbox: # to next lvl
        xpos 1320 ypos 140
        text "{color=#000000} [tonextlvl]EXP{/color}":
            size 20
    hbox: # name
        xpos 1086 ypos 50
        text "{color=#000000}[name]{/color}"
    hbox: #armor
        xpos 190 ypos 870
        text "{color=#000000}[currentarmor]{/color}"
    hbox: #moneh
        xpos 305 ypos 940
        text "{color=#000000}[money]{/color}"
:)

Katruna

#2
MrDench, Если я тебя правильно поняла, то все очень просто.
Тебе просто надо взять и написать что-то такое:

text "[name]"

По сути, программа просто будет брать эту переменную и без изменений ее писать где тебе угодно.

У меня аналогичная штука есть, игрок в начале игры вводит имя перса. Ну а дальше, я просто везде, где имя героя упоминается пишу - [name].

p.s. на будущее, такие вопросы лучше кидать в тему по движкам или сюда: тема по вопросам
Сообщение отредактировал Katruna - Среда, 16/Июн/2021, 12:51
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

MrDench

#3
Katruna, в том и проблема, что это не работает:) и выдает ошибку, что я не объявлял эту переменную
:)

Katruna

#4
MrDench, хм..
А кинь кусок кода из скрипта, где у тебя эта переменная задается.  У тебя персонаж имеет заданное имя? Или игрок его сам задает?
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

MrDench

#5
Katruna
script.rpy

$ name = renpy.input("Enter your nickname: ")
$ name = name.strip() or "NoImaginationMan123"

может конечно нужно через питон, но не знаю...
python:
    name = renpy.input("...")
    name  = name.strip or "..."
:)

Katruna

#6
MrDench, попробуй вот так прописать. У меня в таком формате работает.

Код

  $ name = renpy.input("Enter your nickname:", default="Default_name").strip()
    if name == "":
        $ name = "Default_name"


Вот ведь. Я поняла, в чем проблема.

Ошибка такая происходит, потому что ты открываешь свое меню с инвентарем ДО того как ты вносишь это имя.
Твой инвентарь можно открыть до введения имени героя?

Полагаю, тут можно попробовать сделать костыль такой, изначально, для переменной задать конкретное имя. Типо в дефолте имя будет "Hero".
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

Katruna

#7
Хм.. так такой костыль не работает. Я еще подумаю, как это организовать красиво и правильно. Пока, могу посоветовать сделать так, что бы твой инвентарь, нельзя было вызвать до появления имени у героя.
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect

Katruna

#9
Цитата MrDench ()
как оптимизировать его

Немного не поняла, про кого ты сейчас. Про меню инвентаря? или про что?
Художник в душе и в жизни
Дракон в душе и в жизни
Butterfly effect
  • Страница 1 из 1
  • 1
Поиск: