Меню

Renpy ошибка indentation mismatch

I started using RenPy yesterday, so I’m fairly new to it. One problem I’ve been trying to figure out for the past hour or so is an indentation mismatch in my code, when I’m trying to implement choices. I have no idea what is wrong with it as I have run a test engine and the choices on there worked just fine.

Any help at all?

the code: (just in case, I’m not really sure if it helps)

menu:
    mc "Of course I won't. You're too annoying to forget.":
     jump ha
    mc "What? Sorry, can't hear you, I'm too successful.":
     jump oi  
    mc "I promise I won't forget you.":
     jump aww 
   label ha:
    bf "At least I have that going for me, [name]."
    "She grins at me, before hugging me tightly."
    bf "I'm going to miss you so much, [name]. I hope you do amazing at Viva Academy." 
    "We break from the hug, and I see tears running down Cadie's cheek, while she's smiling sadly."
    return
   label oi:
    "Cadie lightly punches me back, all huffy."
    bf "You better be joking [name]!"
    return
   label aww:
    "Cadie smiles, reassured by my words. She grabs a hold of my hands and squeezes them tightly."
    "She looks like she wants to say something."
    "Just as she opens her mouth, the roaring engine of the train interrupts her."
    return

Forum rules
This is the right place for Ren’Py help. Please ask one question per thread, use a descriptive subject like ‘NotFound error in option.rpy’ , and include all the relevant information — especially any relevant code and traceback messages. Use the code tag to format scripts.

Starky

Newbie
Posts: 1
Joined: Wed Jul 18, 2012 1:29 am
Contact:

Indentation Mismatch error

#1

Post

by Starky » Wed Jul 18, 2012 1:47 am

I keep getting an error called «Indentation Mismatch» that occurs on the same line as my ‘Return’ code.
Bare in mind this is my very first Ren’Py game, and I’m an absolute noob at Python, but I do wish to learn so I figure you guys can help out right with any questions I have. Don’t worry, I won’t ask loads.
But I don’t really understand this error, I don’t have any indentation on the return code, and when I do, I still get the same error, I’ve provided a screen shot, does anyone know what could be wrong? (Note: This occured when I was making a choice menu)

Attachments
error.png


User avatar

Michiyo6918

Veteran
Posts: 262
Joined: Fri Nov 11, 2011 12:26 am
Projects: ╮(╯▽╰)╭
Location: Look behind you
Contact:

Re: Indentation Mismatch error

#2

Post

by Michiyo6918 » Wed Jul 18, 2012 2:22 am

First, welcome to Ren’py and LSF!

Second, this is a usual error that frequently occurs to beginner. I used to get this all the time, don’t worry.

I don’t have any indentation on the return code

What do you mean by this? Does it mean you don’t have any space in front of the return code? Like this?:

If it looks like that then you’re doing it wrong. There have to be 4 spaces of indentation in front of the return code like this:

If the one I mentioned above is not your problem then I can give you a small example of how the indentation should look like in Ren’py when you’re using menu choice:

Code: Select all

label start:
    "Dialog go here."
    menu:
        "Choice 1":
            "Dialog again."
        "Choice 2":
            "Dialog."

    return

If you’re still having any problem, feel free to post your question and good luck on your project! :D


User avatar

SusanTheCat

Miko-Class Veteran
Posts: 952
Joined: Mon Dec 13, 2010 9:30 am
Location: New Brunswick, Canada
Contact:

Re: Indentation Mismatch error

#3

Post

by SusanTheCat » Wed Jul 18, 2012 10:38 am

Another thing to remember is that «tabs» are not the same as «spaces». Python doesn’t care what you use, as long as you are consistent. http://enjoydoingitwrong.wordpress.com/ … in-python/

Susan

» It’s not at all important to get it right the first time. It’s vitally important to get it right the last time. «
— Andrew Hunt and David Thomas


User avatar

PyTom

Ren’Py Creator
Posts: 15919
Joined: Mon Feb 02, 2004 10:58 am
Completed: Moonlight Walks
Projects: Ren’Py
IRC Nick: renpytom
Github: renpytom
itch: renpytom
Location: Kings Park, NY
Contact:

Re: Indentation Mismatch error

#4

Post

by PyTom » Wed Jul 18, 2012 12:30 pm

Ren’Py does care, however. It demands you use spaces, to prevent space-tab confusion.

Supporting creators since 2004
(When was the last time you backed up your game?)

«Do good work.» — Virgil Ivan «Gus» Grissom
Software > Drama • https://www.patreon.com/renpytom


Crayona

Newbie
Posts: 1
Joined: Thu Apr 21, 2016 4:01 pm
Contact:

Re: Indentation Mismatch error

#5

Post

by Crayona » Thu Apr 21, 2016 4:11 pm

Hello !
I’m a newbe in this forum and please excused my english because I’m french, and as the cliché said , the french ar’nt very good in foreign language ^^»
I’ve a problem with my script and ren’py write ‘ indentation mismatch’ I don’t understand this … Could you help me please ?
hear is my script:
c» Ce cours s’annonce plus long et pénible que jamais.»
c» Quand soudain…»
show Vincent at left
c» Je le vois. Encore en retard, c’est son coté »Bad Boy» … Il est magnifique, je l’aime tellement.»
c» Il file à sa place et le cours continue.»

menu:

«Le fixer du regard»
jump f:

«Continuer à suivre le cours normalement et crayoner»
jump c:

label f:

ps» Crayona! De qui te moques-tu ? Tu n’as rien écrit depuis 20 bonnes minutes. Tu as le droit d’etre amoureuse de Vincent mais à la récré s’il te plait!»
c» Mais Madame… Je…Euh…Je…»
c» *J’entends des gloussements.»
c»Une fois de plus je suis humiliée.»
show Crayona triste
c» Adieu ma romance…»

«.:. Bad Ending.»
return

label c:

show Crayona triste

(hear come the pb) c» Ce cours sur le Mercosur et l’ALENA est vraiment loin d’etre passionnant. Heureusement, je suis Crayona ! Mon art me sauve de cet ennui. Crayonnons, Crayonnons!!!»

show bg dessin2

jump suite

label suite:

c» Enfin la récré!»

Thanks you in advances :)


User avatar

Donmai

Eileen-Class Veteran
Posts: 1922
Joined: Sun Jun 10, 2012 1:45 am
Completed: Toire No Hanako, Li’l Red [NaNoRenO 2013], The One in LOVE [NaNoRenO 2014], Running Blade [NaNoRenO 2016], The Other Question, To The Girl With Sunflowers
Projects: Slumberland
Location: Brazil
Contact:

Re: Indentation Mismatch error

#6

Post

by Donmai » Thu Apr 21, 2016 5:03 pm

You should post your code between CODE tags, so the indentation is preserved. Click on the Code button on the header while you’re editing your post, and paste your code between the two CODE tags that will apear.

Image


User avatar

KurisuCrush

Newbie
Posts: 7
Joined: Sun May 22, 2016 8:21 am
Contact:

Re: Indentation Mismatch error

#7

Post

by KurisuCrush » Sun May 22, 2016 8:27 am

Hi, I have the same problem:

Code: Select all

# Vous pouvez placer le script de votre jeu dans ce fichier.

# Déclarez sous cette ligne les images, avec l'instruction 'image'
# ex: image eileen heureuse = "eileen_heureuse.png"
image kurisu = "images/mood0.png"
image bgg = "images/steinsgate.jpg"

# Déclarez les personnages utilisés dans le jeu.
define s = Character('shippy', color='#aa4933')
define p = Character('protagoniste', color='#aa4933')    
# Le jeu commence ici
label start:
    scene bgg
    show kurisu
    play music "soundtrack/ost1.mp3"
    window show
    
    $ s = "?????"
    
image kurisu animated:
      "images/mood0.png"
      pause .5
      "images/mood0a.png"
      pause .5
      "images/mood0b.png"
      repeat 2.5
    s "Fait attention! C'est dangereuse ici!"
    s "Pourquoi tu est ici..? Qui-es tu?"
    p "Je me rappelé pas mon prénom.."
    s "...ça c'est pas bien! Viens avec mois!"
 
image kurisu animated:
      "images/mood1.png"
      pause .5
      "images/mood1a.png"
      pause .5
      "images/mood1b.png"
      repeat 2.5
    $ s = "Kurisu"
    s "Je m’appelle Kurisu"

    stop music fadeout 2.0
    
    return


User avatar

korova

Veteran
Posts: 217
Joined: Sat Jun 27, 2009 5:15 pm
Completed: Ivy, Chocolate, Time, Clair Obscur
Projects: Writing exercises, The House [Nano18]
Tumblr: korova08
itch: korova
Location: Normandie, France
Contact:

Re: Indentation Mismatch error

#8

Post

by korova » Sun May 22, 2016 8:56 am

You should declare your images before the label start. (Il faut déclarer les images avant le label start, puis les afficher)

You should have the same number of spaces at the beginning of all you lines, which is clearly not the case everytime you declare an image. Indentation has to be consistent (Il y a décalage, certaines lignes ont plus d’espaces que d’autres en début de ligne, ce nombre doit toujours être le même)

Try this code (proposition de correction de code)

Code: Select all

# Vous pouvez placer le script de votre jeu dans ce fichier.

# Déclarez sous cette ligne les images, avec l'instruction 'image'
# ex: image eileen heureuse = "eileen_heureuse.png"
image kurisu = "images/mood0.png"

image kurisu animated1:
    "images/mood0.png"
    pause .5
    "images/mood0a.png"
    pause .5
    "images/mood0b.png"
    repeat 2.5

image kurisu animated2:
    "images/mood1.png"
    pause .5
    "images/mood1a.png"
    pause .5
    "images/mood1b.png"
    repeat 2.5

image bgg = "images/steinsgate.jpg"

# Déclarez les personnages utilisés dans le jeu.
default shippy = "?????"
define s = Character('[shippy]', color='#aa4933')
default protagoniste = "protagoniste"
define p = Character('[protagoniste]', color='#aa4933')   
# Le jeu commence ici
label start:
    scene bgg
    show kurisu
    play music "soundtrack/ost1.mp3"
    window show  

    show kurisu animated1
    s "Fait attention! C'est dangereux ici !"
    s "Pourquoi tu es ici..? Qui es-tu?"
    p "Je ne me rappelle pas mon prénom.."
    s "...ça c'est pas bien ! Viens avec moi !"
 

    show kurisu animated2
    $ shippy = "Kurisu"
    s "Je m’appelle Kurisu"

    stop music fadeout 2.0
   
    return

Image Image Image


User avatar

KurisuCrush

Newbie
Posts: 7
Joined: Sun May 22, 2016 8:21 am
Contact:

Re: Indentation Mismatch error

#9

Post

by KurisuCrush » Sun May 22, 2016 9:33 am

Ah okay thanks for the help! But I have another question, how I can set the character animation until the reader finish to read and click for the next phrase?


User avatar

korova

Veteran
Posts: 217
Joined: Sat Jun 27, 2009 5:15 pm
Completed: Ivy, Chocolate, Time, Clair Obscur
Projects: Writing exercises, The House [Nano18]
Tumblr: korova08
itch: korova
Location: Normandie, France
Contact:

Re: Indentation Mismatch error

#10

Post

by korova » Sun May 22, 2016 9:44 am

I’m not really sure I understand what you want to achieve here.
What about you replace the animated image by a static one when you want to stop the animation ?

By the way I realize there is an error in your image definition code.
the instruction «repeat» is followed by the number of times you want the instruction to repeat. So 2.5 won’t work.
If you want it to repeat forever, just put repeat, with no number.

maybe you were trying to do this ?

Code: Select all

image kurisu animated2:
    "images/mood1.png"
    pause .5
    "images/mood1a.png"
    pause .5
    "images/mood1b.png"
    pause 2.5
    repeat

Image Image Image


User avatar

Donmai

Eileen-Class Veteran
Posts: 1922
Joined: Sun Jun 10, 2012 1:45 am
Completed: Toire No Hanako, Li’l Red [NaNoRenO 2013], The One in LOVE [NaNoRenO 2014], Running Blade [NaNoRenO 2016], The Other Question, To The Girl With Sunflowers
Projects: Slumberland
Location: Brazil
Contact:

Re: Indentation Mismatch error

#11

Post

by Donmai » Sun May 22, 2016 10:59 am

korova wrote:I’m not really sure I understand what you want to achieve here.

Maybe KurisuCrush is talking about the click-to-continue icon?

Image


User avatar

KurisuCrush

Newbie
Posts: 7
Joined: Sun May 22, 2016 8:21 am
Contact:

Re: Indentation Mismatch error

#12

Post

by KurisuCrush » Sun May 22, 2016 12:09 pm

Nothing, I found the problem alone, sorry for my bad english!:D
Anyway last answer, there are a method to change the main menu background after a bad end?


Deaddisc

Newbie
Posts: 4
Joined: Sun Feb 12, 2017 9:07 am
Contact:

Re: Indentation Mismatch error

#13

Post

by Deaddisc » Wed Feb 15, 2017 10:09 pm

# Player Gender ——— Player Gender ——— Player Gender ——— Player Gender ——— Player Gender ——— Player Gender ———
label start:

jump Mainstory

label PlayerSelecter:

«Please select gender and name»

menu:

«Male»:
jump PlayerGenderMale

«Female»:
jump PlayerGenderFemale

label PlayerGenderMale:

$ player_gender = «Male»

if player_gender = «Male»:

image Player_Image = «PlayerMaleImage.png»
#If gender is male the character image should be male.

show Player_image #ERROR HERE —

«this should be a Male Image»

jump Endgame

label PlayerGenderFemale:

$ player_gender = «Female»

if player_gender = «Female»:

image Player_Image = «PlayerFemaleImage.png»
#If gender is female the character image should be female.

show Player_image

«this should be a Female Image»

jump Endgame

# PlayerName ——— PlayerName ——— PlayerName ——— PlayerName ——— PlayerName ——— PlayerName ——— PlayerName ———

label PlayerName:

$ player_name = «»

$ player_name = renpy.input(«What is your name»)
$ player_name = player_name.strip()

if player_name == «»:
$player_name = «Hayden»

label Endgame:

«the end»

# This ends the game.
return

for some reason i get a missmatch on: show Player_image tryed to look around and cant find anything that can help me and if you guys have a better way on how to make a gender selecter im all ears


Kuku

Newbie
Posts: 1
Joined: Thu Jan 25, 2018 2:54 pm
Contact:

Re: Indentation Mismatch error

#14

Post

by Kuku » Thu Jan 25, 2018 3:01 pm

Hi! I only started trying to make a visual novel on ren’py… There are so many errors and everything is so confusing… I’m using windows 10 and I’m not too sure what I’m doing with the code but it is written that:
-Line 7 is indented, but but the preceding statement does not expect a block
-(Same thing as before but with line 13)

Here is the script so far:

label start:

image Apartment = «AC.png»

scene Apartment

$ player_name = «»
$ player_name = renpy.input(«Enter name here.»)
$ player_name = player_name.strip()

scene dissolve

return

Thanks :)


JimmyFrost

Regular
Posts: 30
Joined: Fri May 01, 2015 9:46 am
Projects: TOWER
Location: United States
Contact:

Re: Indentation Mismatch error

#15

Post

by JimmyFrost » Thu Feb 22, 2018 5:41 am

Hello, this pertains to my current issue with an attempt on doing something ambitious. The offending code is on line 33, but I feel like I’m riding on false presumptions.

Code: Select all

init python:
    class Actor(object):
    """Characters built specifically to fight battles in-game. . .
    Args:
        Actor(str):name of character
        Active(bool):
        Atk(int):
        Def(int):
        Mat(int):
        Mdf(int):
        HP(int):
        MP(int):
        SP(int):
        magic_set(dict):
        demon_set(dict):
        personality(str):
    """
    def __init__(self, Actor"", Active=True, Atk=0, Def=0, Mat=0, Mdf=0, HP=0, MP=0, SP=0, magic_set[], demon_set[], personality""):
            self.Actor = Actor
            self.Active = Active
            self.Atk = Atk
            self.Def = Def
            self.Mat = Mat
            self.Mdf = Mdf
            self.HP = HP
            self.MP = MP
            self.SP = SP
            self.magic_set = magic_set
            self.demon_set = demon_set
            self.personality = personality
            self.status  = [self.Atk, self.Def, self.Mat, self.Mdf, self.HP, self.MP, self.SP]
       
       def magic_register(self, magic_name):
           self.magic_set.append(magic_name)
       def demon_register(self, demon_name):
           self.demon_set.append(demon_name)
           
       def normalize_status(self):
           print "Normalizing status. Please wait. . ."
           for index, value in enumerate(self.status):
               if value <= 0:
                   self.status[index] = 0
               return self.status

Should the indentation be deeper? Because the error still remains when I make all the def statements line up.

«If hard work hasn’t hurt anyone, then why is there worker’s comp?»


#361

93Mangaka

  • Участники
  • Pip

  • Новичок

  • Cообщений: 3

0

Обычный

Отправлено 22 Июль 2011 — 21:38

Спасибо большое! мне это очень помогло!

  • 0

  • Наверх

#362

93Mangaka

93Mangaka

  • Участники
  • Pip

  • Новичок

  • Cообщений: 3

0

Обычный

Отправлено 23 Июль 2011 — 10:42

Пытаюсь следовать руководству,однако после самой первой записи,при запуске проекта,программа выводит ошибку.Изображение

  • 0

  • Наверх

#363

Andy_Scull

Отправлено 23 Июль 2011 — 11:39

Пытаюсь следовать руководству,однако после самой первой записи,при запуске проекта,программа выводит ошибку.Изображение

Как человек, пишущий на питоне, скажу — требуются команды после init:, уж хз какие там должны быть.

Ошибку он пишет потому что там ничего нет — init: начат блок, и после него сразу начало другого блока label start:
Если в init ничего не требуется вставлять, то можно либо убрать совсем либо всунуть в него команду pass

Либо если label start должно быть внутри init, то надо вставить отступ перед label start — чтобы он понимал, что это внутри инит, а не после него

Сообщение отредактировал Andy_Scull: 23 Июль 2011 — 13:41

  • 0

  • Наверх

#364

Евгений Рысь

Евгений Рысь

  • Участники
  • Pip

  • Новичок

  • Cообщений: 7

2

Обычный

Отправлено 23 Июль 2011 — 23:15

Приветствую!

Вопрос по работе с DSE framework. Собственно задача (думаю) достаточно простая – в некоторый момент игры необходимо поменять выбор действий в планировщике для определенного периода.
В качестве основы под игру использовал пример из демки.
Вот кусок из секции init python в файле main.rpy:

dp_period(«Afternoon», «afternoon_act»)
dp_choice(«Study», «study»)
dp_choice(«Hang Out», «hang»)
dp_choice(«Shop», «shop», enable=»False», show=»True» )

Последнее действие – shop, оно показывается, но не активно.

Теперь вопрос – как в процессе игры поменять для shop значение enable=»False» на enable=»True»?

Сначала я просто пытался добавить новое действие, вызывая функцию dp_choice для добавления нового выбора в процессе игры, но не получилось. Из любого места ее не вызывать, только из init, а сделав еще один блок init далее в файле main.rpy в игре просто сразу показывается последнее заданное значение.

В любом случае мне нужно понять как управлять значениями enable и show, так как в процессе игры некоторые выборы из планировщика потребуется убрать.

Перебрал кучу вариантов, но так как пока плохо знаю Ren’Py и Python — результата и не добился. :(

Кто работает с DSE, подскажите пожалуйста, как в процессе игры управлять возможными действиями в планировщике событий (убирать или делать неактивными старые, добавлять новые)?

  • 0

  • Наверх

#365

Алекс__

Отправлено 24 Июль 2011 — 00:31

С DSE не работал, но есть мысль…

dp_choice("Shop", "shop", enable="False", show="True" )

присваивает параметрам <enable> и <show> значения «False» и «True» соответственно. Попробуйте вместо конкретных значений использовать переменные, значения которых можно будет менять в процессе игры (только в блоке init: или в самом начале блока start: надо будет присвоить этим переменным начальные значения)

init:
     $ shop_enable_value = "False"
     $ shop_show_value = "True"
... ... ...
    dp_choice("Shop", "shop", enable=shop_enable_value, show=shop_show_value )
... ... ...

label start:
... ... ...
    $ shop_enable_value = "True"

, а сделав еще один блок init далее в файле main.rpy в игре просто сразу показывается последнее заданное значение

Так и должно быть — Рен’пи обрабатывает сразу все «.rpy» файлы в папке с игрой (как если бы это был один файл, содержащий все блоки), а далее исполняет блоки в последовательности:
— init python (в соответствии с очередностью — -5 раньше, чем -2)
— init (в соответствии с очередностью)
— start

  • 0

  • Наверх

#366

Евгений Рысь

Евгений Рысь

  • Участники
  • Pip

  • Новичок

  • Cообщений: 7

2

Обычный

Отправлено 24 Июль 2011 — 09:45

Алекс, к сожалению не получилось добиться нужного результата.

Я сделал вот так:

init python:

shop_enable_value = «False»
shop_show_value = «True»

dp_choice(«Shop», «shop», enable=shop_enable_value, show=shop_show_value)

label start:

label shop_ok:

$ shop_enable_value = «True»

Когда доходит до shop_ok, то сообщений об ошибке не выдает, но выбор shop в меню остается не доступен.

Возможно я что-то делаю не так?

Сообщение отредактировал Евгений Рысь: 27 Июль 2011 — 19:46

  • 0

  • Наверх

#367

Алекс__

Отправлено 24 Июль 2011 — 15:27

Ммм, хорошо… Синтаксис был неправильный…((
http://lemmasoft.ren…hilit=dp_choice
Здесь рассказано, как правильно указать условия для <dp_choice>.

init python:
    
    shop_enable_value = False # убираем кавычки - теперь значение будет не текст "False", а логическое "ложь"
    shop_show_value = True

    dp_period(какой-то код)
    dp_choice("Shop", "shop", enable="shop_enable_value==True", show="shop_show_value==True" ) # проверяем значения переменных "shop_enable_value" и "shop_show_value" - если их значения "истина" (True без кавычек), то наши условия ("shop_enable_value==True" и "shop_show_value==True") вернут значения "истина" и все сработает.
                                                         	# если мы в начале присвоили значения переменным "shop_enable_value" и "shop_show_value" с кавычками ("True"), то получается, что значение - это некий текст (с учетом больших и маленьких букв). Тогда в условиях для <dp_choice> значения нужно было бы писать тоже в кавычках (одинарных, что бы не запутать Рен'пи) - enable="shop_enable_value == 'True' "

label shop_ok:
    $ shop_enable_value = True # в этом примере значения везде используются без кавычек

Также, если значением переменной может быть только «истина» / «ложь», то
можно сократить код
if my_var — это тоже самое, что и if my_var == True
Тоесть код можно записать так:

init python:
    
    shop_enable_value = False
    shop_show_value = True

    dp_period(какой-то код)
    dp_choice("Shop", "shop", enable="shop_enable_value", show="shop_show_value" )

label shop_ok:
    $ shop_enable_value = True

  • 0

  • Наверх

#368

Евгений Рысь

Евгений Рысь

  • Участники
  • Pip

  • Новичок

  • Cообщений: 7

2

Обычный

Отправлено 24 Июль 2011 — 15:48

Алекс, спасибо за ссылку на доки и за код. Все работает отлично!

  • 0

  • Наверх

#369

Nekofrenik

Nekofrenik

1 134

Понивластелин

Отправлено 24 Июль 2011 — 19:23

Здравствуйте. Хотел бы спросить у гуру конкретно про эту ошибку

On line 15 of C:Program Files!Dvijok dlya novellNyaka-chan/game/script.rpy: end of line expected.
jump dush:
^

и узнать есть ли где-нибудь список выскакивающих ошибок с кратким указанием, что делать в таком случае?

  • 0

  • Наверх

#370

Евгений Рысь

Евгений Рысь

  • Участники
  • Pip

  • Новичок

  • Cообщений: 7

2

Обычный

Отправлено 24 Июль 2011 — 21:32

У тебя ошибка в синтаксисе. Вот правильный пример:

label start:
    scene ...
    a "text..."
    menu:
        "выбор А":
            jump aaa
        "выбор Б":
            jump bbb

  • 1

  • Наверх

#371

Алекс__

Отправлено 24 Июль 2011 — 23:44

end of line expected

Рен’пи ожидал конец строки, а обнаружил двоеточие… (должно быть просто <jump dush>) Двоеточие ставится в конце первой строки блока — оно показывает, что последующие строки этого блока должны иметь дополнительный отступ (indentation).

Главное в сообщениях об ошибке — номер строки в которой она обнаружена.
А вообще, сообщения об ошибках в Рен’пи простые и понятные…

Indentation mismatch (и другие ошибки, где есть слово Indentation) — все, что связано с неправильной индентацией строк (лишние пробелы или их не хватает)

end of line expected — когда логически строка должна закончиться, но Рен’пи находит еще какие-либо символы в ней (кроме комментариев).

…expects a non-empty block — пустой блок (так быть не должно). Либо исправить индентацию (в следующих строках добавить пробелы, если это действительно блок), либо добавить в пустой блок строку <pass> (команда, которая ничего не делает, но заполняет собой блок), либо убрать двоеточие в строке, если это на самом деле не блок.

expected ‘name’ not found — когда ожидается некое название (изображения, блока и т.д.), а вместо этого написано что-либо другое

name ‘имя переменной’ is not defined — когда используется переменная, значение которой ранее не определено (поэтому, лучше всего присваивать значения всем переменным в самом начале блока «старт»).

Name u’название блока’ is defined twice — два блока с одинаковыми названиями. Названия блоков должны быть уникальными (начинаться с буквы и быть одним словом, т.е. не содержать пробелов (можно использовать нижнее подчеркивание))

… is not terminated with newline. (Check strings and parenthesis.) — необходимо проверить соответствие открывающих и закрывающих скобок

invalid syntax — неправильный синтаксис (возможно пропущены запятые, ошибки в названиях команд (большие и маленькие буквы учитываются)

expected statement — Рен’пи не нашел известной ему команды (возможно ошибка в написании, либо пропущен знак $ в начале единичной строки на питоне)

%d format: a number is required, not str — если формат вывода данных <%d> (т.е. числовые данные), но при этом переменной присвоено текстовое значение.

expected ‘simple_expression’ not found. — проблема со значениями, которые указаны для команд (например xpos = «text» вместо числового значения — текст)

u’какое-то слово’ is not a keyword argument or valid child for… — для данной функции, введенная команда не является правильным аргументом или дочерним элементом (?) (ошибка в названии или для данной функции такая команда просто не применима)

Уфф, вот — что смог припомнить…))

  • 2

  • Наверх

#372

Евгений Рысь

Евгений Рысь

  • Участники
  • Pip

  • Новичок

  • Cообщений: 7

2

Обычный

Отправлено 27 Июль 2011 — 09:23

В РенПи действительно простые сообщения об ошибках, чтобы даже не программист смог разобраться. Но шпаргалку от Алекса я все-таки себе распечатал. Пригодится :)

  • 0

  • Наверх

#373

Vicente

Отправлено 27 Июль 2011 — 17:45

Помогите мне (опять).
У меня есть несколько(5) меню с выборами ответов(правильный и не правильные). Чтобы продвинуться дальше по сюжету нужно набрать определенное количество очков(т.е правильно ответить на эти вопросы). Если очков будет не достаточно, то должна быть плохая концовка.
Как мне это реализовать? К сожалению ничего из этого руководства мне не помогло.

  • 0

  • Наверх

#374

Евгений Рысь

Евгений Рысь

  • Участники
  • Pip

  • Новичок

  • Cообщений: 7

2

Обычный

Отправлено 27 Июль 2011 — 19:41

Ну, если кратко, то все просто.

1. Заводим переменную, в ней и будем хранить количество правильных ответов
$ victory = 0

2. В процессе игры, при правильном ответе увеличиваем значение переменной
$ victory += 1

3. В финале игры (или там где нужно) проверяем что получилось:
if victory == 5: #проверяем что количество правильных ответов равно 5
jump good_end #переходим к хорошему финалу
#… так же можно проверить и для другого количества правильных ответов, ну а для тех, кто не набрал:
jump bad_end

Вот небольшой пример в виде кода:

define e = Character('Eileen', color="#c8ffc8")

label start:

    $ victory = 0
    
    menu:
        "Правильный ответ":
            e "Ответ правильный"
            $victory += 5
        "Ошибочный ответ":
            e "Ответ ошибочный"
    
    
    if victory == 5:
        e "Ты победил"
        return
    e "Ты проиграл"
    return

Собственно это все премудрости, если что не понятно, пиши.

  • 0

  • Наверх

#375

Vicente

Отправлено 27 Июль 2011 — 20:56

Делаю вроде бы все по Вашей инструкции, но что-то не получается.
Для начала:

$ victory = 0

Что означает цифра ноль?
victory — произвольное название?

$victory += 5

Пробел разве не нужен после доллара?

В общем делаю так:
В каждом меню ставлю переменные
Изображение
В конце ставлю иф:
Изображение
Запускаю игру, отвечаю правильно на все вопросы — выпадает «плохая концовка». Что же не правильно?

  • 0

  • Наверх

#376

Алекс__

Отправлено 27 Июль 2011 — 21:20

Vicente, вы точно ответили на 5 вопросов правильно? Не на 4, не на 6, т.к. у вас стоит условие <if victory == 5>.
Возможно в коде неправильно организованы jump’ы… Вообще, зачем прыгать по блокам? Можно задать вопросы подряд, разбавив неким текстом между менюшками…

label start:
    $ victory = 0 # начальное значение
    menu:
        "Первый вопрос":
             "Правильный ответ":
                  $ victory +=1
             "Неправильный ответ":
                  pass
    menu:
        "Второй вопрос":
             "Правильный ответ":
                  $ victory +=1
             "Неправильный ответ":
                  pass
    menu:
        "Третий вопрос":
             "Правильный ответ":
                  $ victory +=1
             "Неправильный ответ":
                  pass
    menu:
        "Четвертый вопрос":
             "Правильный ответ":
                  $ victory +=1
             "Неправильный ответ":
                  pass
    menu:
        "Пятый вопрос":
             "Правильный ответ":
                  $ victory +=1
             "Неправильный ответ":
                  pass
    "Вот и все с вопросами. Теперь узнаем результат..."
    jump result

label result:
    if victory >4:
        "Похоже, что это победа...))"
    else:
        "Всего %(victory)d правильных ответов, а надо - 5."

В процессе можно использовать Developer tool (Shift + d — язык должен быть английским) — в открывшемся меню выбрать Variable Viewer (просмотр переменных). Там будут написаны текущие значения игровых переменных.

Сообщение отредактировал Алекс__: 27 Июль 2011 — 21:24

  • 0

  • Наверх

#377

Vicente

Отправлено 27 Июль 2011 — 21:55

Использовала джамп, лейбл и элз и все получилось Изображение

В процессе можно использовать Developer tool

Очень полезная штука. Надеюсь она не работает в финальной версии. А то как-то по-читерски это выглядит.

  • 0

  • Наверх

#378

Алекс__

Отправлено 27 Июль 2011 — 22:04

Очень полезная штука. Надеюсь она не работает в финальной версии. А то как-то по-читерски это выглядит.

Дык, отключать надо…))
http://www.renpy.org…Developer_Tools
http://www.renpy.org…onfig.developer
http://www.renpy.org…asing-your-game

  • 0

  • Наверх

#379

Vicente

Отправлено 27 Июль 2011 — 22:13

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

  • 0

  • Наверх

#380

Vicente

Отправлено 29 Июль 2011 — 18:41

А видео для вставки должно быть какие-то особенное? А то у меня игра зависает перед тем как оно должно воспроизвестись(AVI подогнано под размер окна(800х600))

Как можно ввести текст в центре на весь экран?

Сообщение отредактировал Vicente: 29 Июль 2011 — 19:04

  • 0

  • Наверх

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Reduced engine performance range rover ошибка
  • Reduced braking power depress brake pedal fully ошибка