New cookbook candidate- need experienced coders' opinions
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.
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.
-
- Regular
- Posts: 27
- Joined: Sun Jun 08, 2008 6:01 pm
- Contact:
New cookbook candidate- need experienced coders' opinions
For the past while, I've been working on some code designed to help reproduce a Fighting Fantasy gamebook using Ren'Py. You've helped me with some of the more difficult bits. Now I've finally got it to the point where it does everything I want, and does it correctly. I'd like to share it with the community, but I'm not a terribly experienced coder, and I'd like to make sure I haven't made any mistakes that will bite future developers in the butt. I've composed a brief demo that shows off the new features, and attached the source code to this post. Give it a look and let me know how it could be improved.
[EDIT: Corrected version posted]
[EDIT: Corrected version posted]
- Attachments
-
- GCDemo.zip
- (715.01 KiB) Downloaded 1921 times
Last edited by ParsonSyunOwen on Wed Jul 16, 2008 6:38 pm, edited 2 times in total.
-
- Newbie
- Posts: 11
- Joined: Mon Jul 31, 2006 2:08 am
- Projects: House MD visual novel (Nearing end of script writing)
- Contact:
Re: New cookbook candidate- need experienced coders' opinions
Ah, Fighting Fantasy. I've never read any of those, but I read a bunch of the Lone Wolf series when I was younger, so I hope your code works out.
"That thing you burnt up isn't important to me. It's the fluid catalytic
cracking unit. It made shoes for orphans. Nice job breaking it, hero."
http://subarashi-productions.blogspot.com/
http://otakuencyclopedia.pbwiki.com/
cracking unit. It made shoes for orphans. Nice job breaking it, hero."
"There really was a cake."
http://subarashiproductions.deviantart.com/http://subarashi-productions.blogspot.com/
http://otakuencyclopedia.pbwiki.com/
-
- Regular
- Posts: 71
- Joined: Fri May 23, 2008 2:12 pm
- Projects: By The Lake, Seraphine
- Location: USA
- Contact:
Re: New cookbook candidate- need experienced coders' opinions
Wow, I'm impressed. I like this script/framework very much. I would happily play a game in this way. ^_^
However, I did stumble upon 2 errors, once while right clicking (accidentally, mind you):
And once while drinking a potion:
Other than that, I'll be waiting eagerly for the finished version, because I just might find a use for it!
However, I did stumble upon 2 errors, once while right clicking (accidentally, mind you):
Code: Select all
File "C:\Documents and Settings\HP_Administrator\Desktop\visual novel\renpy-6.6.2-full\renpy-6.6.2\renpy\loader.py", line 274, in load
Exception: Couldn't find file 'covertemp.jpg'.
Code: Select all
File "C:\Documents and Settings\HP_Administrator\Desktop\visual novel\renpy-6.6.2-full\renpy-6.6.2\renpy\script.py", line 464, in lookup
ScriptError: could not find label 'CheckHP'.
I have switched accounts to Aleema.
-
- Regular
- Posts: 153
- Joined: Thu Aug 23, 2007 5:34 pm
- Projects: Modus Operandi, Grim
- Contact:
Re: New cookbook candidate- need experienced coders' opinions
This is what I got. I didn't go far into the demo; just until I equipped the sword. I'm not sure if it makes a difference, but I am on windows vista. That might cause problems, or whatever. [shrug]
Code: Select all
I'm sorry, but an exception occured while executing your Ren'Py
script.
Exception: Couldn't find file 'covertemp.jpg'.
While running game code:
- script at line 41 of C:\Documents and Settings\Steven\My Documents\muriamisc\vn\dreams\renpy-6.6.2\GCDemo/game/script.rpy
- python at line 177 of renpy-6.6.2/common/00nvl_mode.rpy.
- script at line 31 of renpy-6.6.2/common/00menus.rpy
- python at line 31 of renpy-6.6.2/common/00menus.rpy.
-- Full Traceback ------------------------------------------------------------
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\bootstrap.py", line 210, in bootstrap
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\main.py", line 303, in main
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\main.py", line 92, in run
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\execution.py", line 199, in run
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\ast.py", line 343, in execute
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\exports.py", line 469, in say
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\character.py", line 535, in __call__
File "renpy-6.6.2/common/00nvl_mode.rpy", line 177, in do_display
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\character.py", line 308, in display_say
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\ui.py", line 58, in interact
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 1274, in interact
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 1709, in interact_core
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\game.py", line 272, in call_in_new_context
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\execution.py", line 199, in run
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\ast.py", line 1211, in execute
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\python.py", line 909, in py_eval
File "renpy-6.6.2/common/00menus.rpy", line 31, in <expression>
File "renpy-6.6.2/common/_layout/classic_yesno_prompt.rpym", line 52, in yesno_prompt
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\ui.py", line 58, in interact
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 1274, in interact
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 1410, in interact_core
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 241, in predict
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 215, in visit_all
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\core.py", line 241, in <lambda>
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\im.py", line 343, in predict_one
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\im.py", line 133, in get
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\display\im.py", line 372, in load
File "C:\Users\Alicia\Downloads\renpy-6.6.2\renpy\loader.py", line 274, in load
Exception: Couldn't find file 'covertemp.jpg'.
While running game code:
Ren'Py Version: Ren'Py 6.6.2b
-
- Regular
- Posts: 27
- Joined: Sun Jun 08, 2008 6:01 pm
- Contact:
Re: New cookbook candidate- need experienced coders' opinions
Argh, that was dumb of me. covertemp is a file that was suppossed to be in the .zip, but wasn't. The other problem is a function that I changed the name of midway through production and forgot to check. Sorry. Updated to correct those two.
-
- Regular
- Posts: 58
- Joined: Fri Jan 18, 2008 9:35 am
- Projects: Teo the Deciever, Shades of Grey and Junk Story(SoG and JS are fanworks)
- Contact:
Re: New cookbook candidate- need experienced coders' opinions
Don't know if this is still active or what, but while looking for someway to make the battles more random in my game, I stumbled across this topic, which was more or less what I was looking for. Now, the reason I'm typing this is because while playing around with it trying to get it to fit my needs alittle better, I ran upon an error (that only appears when I try to get the game to run using my own version of the script, so there's nothing wrong with the original) that when, during combat, instantly kills the 'hero' no matter what I do >_<;
How, here's the code, and if anyone can help me figure out what's wrong, I'd be happy.
Me, I can make no sense of it. I created this code simply by looking at the original and copying and then testing, and this error that kills the player, I can't figure out how to solve >_<; Help me, please.
How, here's the code, and if anyone can help me figure out what's wrong, I'd be happy.
Code: Select all
init:
python hide:
def CombatIn():
if CombatStatus== 'starting':
ui.fixed()
ui.at(Move((-0.3, 0.1), (0.14, 0.1), 0.5))
ui.image(HeroPortrait)
ui.at(Move((1.0, 0.1), (0.60, 0.1), 0.5))
ui.image(FoePortrait)
ui.at(FactorZoom(0.0, 1.0, 0.5, xpos=0.43, ypos=0.3, opaque=False))
ui.image(CombatVS)
ui.close()
elif CombatStatus== 'starting2':
ui.fixed()
ui.at(Move((-0.3, 0.1), (0.14, 0.1), 0.5))
ui.image(HeroPortrait2)
ui.at(Move((1.0, 0.1), (0.60, 0.1), 0.5))
ui.image(FoePortrait)
ui.at(FactorZoom(0.0, 1.0, 0.5, xpos=0.43, ypos=0.3, opaque=False))
ui.image(CombatVS)
ui.close()
config.overlay_functions.append(CombatIn)
def CombatOn():
if CombatStatus== 'on':
ui.fixed()
ui.at(Position(xpos=0.14, ypos=0.1, xanchor=0.0, yanchor=0.0))
ui.image(HeroPortrait)
ui.at(Position(xpos=0.60, ypos=0.1, xanchor=0.0, yanchor=0.0))
ui.image(FoePortrait)
ui.at(Position(xpos=0.43, ypos=0.3, xanchor=0.0, yanchor=0.0))
ui.image(CombatVS)
ui.close()
elif CombatStatus== 'on2':
ui.fixed()
ui.at(Position(xpos=0.14, ypos=0.1, xanchor=0.0, yanchor=0.0))
ui.image(HeroPortrait2)
ui.at(Position(xpos=0.60, ypos=0.1, xanchor=0.0, yanchor=0.0))
ui.image(FoePortrait)
ui.at(Position(xpos=0.43, ypos=0.3, xanchor=0.0, yanchor=0.0))
ui.image(CombatVS)
ui.close()
config.overlay_functions.append(CombatOn)
def CombatOut():
if CombatStatus== 'ending':
ui.fixed()
ui.at(Move((0.14, 0.1), (-0.3, 0.1), 0.5))
ui.image(HeroPortrait)
ui.at(Move((0.60, 0.1), (1.0, 0.1), 0.5))
ui.image(FoePortrait)
ui.at(FactorZoom(1.0, 0.0, 0.5, xpos=0.43, ypos=0.3, opaque=False))
ui.image(CombatVS)
ui.close()
elif CombatStatus== 'ending2':
ui.fixed()
ui.at(Move((0.14, 0.1), (-0.3, 0.1), 0.5))
ui.image(HeroPortrait)
ui.at(Move((0.60, 0.1), (1.0, 0.1), 0.5))
ui.image(FoePortrait)
ui.at(FactorZoom(1.0, 0.0, 0.5, xpos=0.43, ypos=0.3, opaque=False))
ui.image(CombatVS)
ui.close()
config.overlay_functions.append(CombatOut)
label BasicFight:
python:
display_charsheet = True
CombatStatus = 'starting'
FoePortrait= FoeData.pop(0)
renpy.restart_interaction()
renpy.pause(1.4)
CombatStatus = 'on'
renpy.restart_interaction()
FoeName = FoeData.pop(0)
FoeSkill = FoeData.pop(0)
FoeCurrentHP = FoeData.pop(0)
special_rules = FoeData
HeroCombatSkill = HeroSkill
CombatResolved = False
while CombatResolved == False:
CombatRatio = HeroCombatSkill - FoeSkill
if CombatRatio > 0:
CombatRatioDisplay= '+'+str(CombatRatio)
else:
CombatRatioDisplay= str(CombatRatio)
ui.fixed()
ui.vbox(xpos=0.27, ypos=0.65, xanchor=0.5, yanchor=0.0)
ui.text(HeroName)
ui.hbox()
ui.text("Power: ", size=14)
ui.text(str(HeroCombatSkill), size=14)
ui.close() ### HeroCombatSkill Line
ui.hbox()
ui.text("Stamina: ", size=14)
ui.text(str(HeroCurrentHP), size=14)
ui.close() ###HeroStamina Line
ui.close() ###Hero Column
ui.text("Advantage", size=27, xpos=0.5, ypos=0.63, xanchor=0.5, yanchor=0.0)
ui.text(CombatRatioDisplay, size=27, xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
ui.vbox(xpos=0.73, ypos=0.65, xanchor=0.5, yanchor=0.0)
ui.text(FoeName)
ui.hbox()
ui.text("Power: ", size=14)
ui.text(str(FoeSkill), size=14)
ui.close() ###FoeSkill Line
ui.hbox()
ui.text("Stamina: ", size=14)
ui.text(str(FoeCurrentHP), size=14)
ui.close() ###FoeStam Line
ui.close() ###Foe Column
ui.close() ###Stats area
ui.vbox(xpos=0.5, ypos=0.75, xanchor=0.5, yanchor=0.0)
ui.textbutton("Attack", clicked=ui.returns('attack'))
ui.textbutton("Defend", clicked=ui.returns('defend')) #added
if 'escapable' in special_rules:
ui.textbutton("Escape!", clicked=ui.returns('escape'))
if 'Strength Potion' in inven:
ui.textbutton("Drink a Strength Potion", clicked=ui.returns('SPotion'))
ui.close()
ChosenAction=ui.interact()
if ChosenAction == 'attack':
DiceInGroups= [3] #altered from 2
AttackRoll=reduce(add, rolld6(DiceInGroups, ' ', 'combat', 0.425, 0.5)) + CombatRatio
HeroHits = False
FoeHits = False
if AttackRoll <= 7: #altered from 7
FoeHits = True
if AttackRoll >= 7: #altered from 7
HeroHits= True
if HeroHits== True:
ui.text("%(HeroName)s hits %(FoeName)s for 5 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
else:
ui.text("%(HeroName)s misses!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if FoeHits == True:
ui.text("%(FoeName)s hits %(HeroName)s for 5 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
else:
ui.text("%(FoeName)s misses!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if HeroHits== True:
FoeCurrentHP -= 5
if FoeHits== True:
HeroCurrentHP -= 5
elif ChosenAction == 'defend':
FoeHits = True
ui.text("%(HeroName)s defends." % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
ui.text("%(FoeName)s hits %(HeroName)s for 1 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if FoeHits== True:
HeroCurrentHP -=1
elif ChosenAction == 'escape':
CombatResult= 'escaped'
CombatResolved= True
HeroCurrentHP -= 4
ui.text("%(HeroName)s escapes the fight!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
ui.text("But %(FoeName)s hits with a parting shot for 4 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
elif ChosenAction == 'SPotion':
inven.remove('Strength Potion')
HeroCombatSkill += 2
ui.text("%(HeroName)s ducks back out of combat and quickly gulps a Strength Potion!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
ui.text("%(HeroName)s's Skill is temporarily increased by 2!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if HeroCurrentHP <= 0:
CombatResolved= True
CombatResult = 'lose'
ui.text("%(HeroName)s is defeated!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.5)
elif FoeCurrentHP <= 0:
CombatResolved= True
CombatResult= 'win'
ui.text("%(FoeName)s is defeated!" %globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
CombatStatus = 'ending'
renpy.restart_interaction()
renpy.pause(0.8)
CombatStatus = 'off'
display_charsheet = False
renpy.restart_interaction()
return
label BasicFight2:
python:
display_charsheet = True
CombatStatus = 'starting2'
FoePortrait= FoeData.pop(0)
renpy.restart_interaction()
renpy.pause(1.4)
CombatStatus = 'on2'
renpy.restart_interaction()
FoeName = FoeData.pop(0)
FoeSkill = FoeData.pop(0)
FoeCurrentHP = FoeData.pop(0)
special_rules = FoeData
HeroCombatSkill = HeroSkill # allows the Strength Potion to work as designed.
CombatResolved = False
while CombatResolved == False:
CombatRatio = HeroCombatSkill - FoeSkill
if CombatRatio > 0:
CombatRatioDisplay= '+'+str(CombatRatio)
else:
CombatRatioDisplay= str(CombatRatio)
ui.fixed()
ui.vbox(xpos=0.27, ypos=0.65, xanchor=0.5, yanchor=0.0)
ui.text(HeroName)
ui.hbox()
ui.text("Power: ", size=14)
ui.text(str(HeroCombatSkill), size=14)
ui.close() ### HeroCombatSkill Line
ui.hbox()
ui.text("Stamina: ", size=14)
ui.text(str(HeroCurrentHP), size=14)
ui.close() ###HeroStamina Line
ui.close() ###Hero Column
ui.text("Advantage", size=27, xpos=0.5, ypos=0.63, xanchor=0.5, yanchor=0.0)
ui.text(CombatRatioDisplay, size=27, xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
ui.vbox(xpos=0.73, ypos=0.65, xanchor=0.5, yanchor=0.0)
ui.text(FoeName)
ui.hbox()
ui.text("Power: ", size=14)
ui.text(str(FoeSkill), size=14)
ui.close() ###FoeSkill Line
ui.hbox()
ui.text("Stamina: ", size=14)
ui.text(str(FoeCurrentHP), size=14)
ui.close() ###FoeStam Line
ui.close() ###Foe Column
ui.close() ###Stats area
ui.vbox(xpos=0.5, ypos=0.75, xanchor=0.5, yanchor=0.0)
ui.textbutton("Attack", clicked=ui.returns('attack'))
ui.textbutton("Defend", clicked=ui.returns('defend')) #added
ui.textbutton("Combo", clicked=ui.returns('combo')) #added
if 'escapable' in special_rules:
ui.textbutton("Escape!", clicked=ui.returns('escape'))
if 'Strength Potion' in inven:
ui.textbutton("Drink a Strength Potion", clicked=ui.returns('SPotion'))
ui.close()
ChosenAction=ui.interact()
if ChosenAction == 'attack':
DiceInGroups= [3] #altered from 2
AttackRoll=reduce(add, rolld6(DiceInGroups, ' ', 'combat', 0.425, 0.5)) + CombatRatio
HeroHits = False
FoeHits = False
if AttackRoll <= 7: #altered from 7
FoeHits = True
if AttackRoll >= 7: #altered from 7
HeroHits= True
if HeroHits== True:
ui.text("%(HeroName)s hits %(FoeName)s for 5 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
else:
ui.text("%(HeroName)s misses!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if FoeHits == True:
ui.text("%(FoeName)s hits %(HeroName)s for 5 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
else:
ui.text("%(FoeName)s misses!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if HeroHits== True:
FoeCurrentHP -= 5
if FoeHits== True:
HeroCurrentHP -= 5
elif ChosenAction == 'defend':
FoeHits = True
ui.text("%(HeroName)s defends." % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
ui.text("%(FoeName)s hits %(HeroName)s for 1 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if FoeHits== True:
HeroCurrentHP -=1
elif ChosenAction == 'combo':
DiceInGroups= [3] #altered from 2
AttackRoll=reduce(add, rolld6(DiceInGroups, ' ', 'combat', 0.425, 0.5)) + CombatRatio
HeroHits = False
FoeHits = False
if AttackRoll <= 11: #altered from 7
FoeHits = True
if AttackRoll >= 11: #altered from 7
HeroHits= True
if HeroHits== True:
ui.text("%(HeroName)s hits %(FoeName)s twice, for a total of 10 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
else:
ui.text("%(HeroName)s misses!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if FoeHits == True:
ui.text("%(FoeName)s hits %(HeroName)s for 5 damage!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
else:
ui.text("%(FoeName)s misses!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
if HeroHits== True:
FoeCurrentHP -= 10
if FoeHits== True:
HeroCurrentHP -= 5
if HeroCurrentHP <= 0:
CombatResolved= True
CombatResult = 'lose'
ui.text("%(HeroName)s is defeated!" % globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.5)
elif FoeCurrentHP <= 0:
CombatResolved= True
CombatResult= 'win'
ui.text("%(FoeName)s is defeated!" %globals(), xpos=0.5, ypos=0.68, xanchor=0.5, yanchor=0.0)
renpy.pause(0.8)
CombatStatus = 'ending2'
renpy.restart_interaction()
renpy.pause(0.8)
CombatStatus = 'off'
display_charsheet = False
renpy.restart_interaction()
return
-
- Regular
- Posts: 58
- Joined: Fri Jan 18, 2008 9:35 am
- Projects: Teo the Deciever, Shades of Grey and Junk Story(SoG and JS are fanworks)
- Contact:
Re: New cookbook candidate- need experienced coders' opinions
And yeah, I know it's shitloads of text, but for some reason, the attachment thing didn't work for me, so I had no choice but to do this ;_;
-
- Newbie
- Posts: 3
- Joined: Mon Jun 06, 2011 11:21 pm
- Completed: Medical Problems 1, Medical Problems 2 -- adventures for The Witcher
- Location: Boston area, USA
- Contact:
Re: New cookbook candidate- need experienced coders' opinion
I wanted to try this out, but the demo wouldn't even launch for me; when I tried to start it, I got this:
Is there a more recent version somewhere?
Thanks!
Is there a more recent version somewhere?
Thanks!
Middle-aged woman learns to make computer games. Film at 11.
-
- Newbie
- Posts: 1
- Joined: Sat Feb 02, 2013 11:57 pm
- Location: Canada
- Contact:
Re: New cookbook candidate- need experienced coders' opinion
I got the demo to sort of work, but when I say sort of I mean I got rid of the "jump equipsword" from script.rpy as well as removing this part of the code from inventory.rpy:
Something is wrong with those "return" and "elif" statements, but I haven't a clue as to what *is not good at coding* ^^"
Code: Select all
for key, item in enumerate(inven):
ui.button(clicked=ui.returns(key))
ui.text(item)
ui.textbutton("Return to game", clicked=ui.returns('exit'))
ui.close()
ui.close()
selectedItem = ui.interact()
if selectedItem == 'exit':
return
# selectedItem is now set to the list index of the item the
# user has clicked on. We can now search for it in the master
# item list, below.
elif inven[selectedItem] == 'Healing Potion':
renpy.call_in_new_context('UsedHealingPotion')
elif inven[selectedItem] == 'Sword':
renpy.call_in_new_context('UsedSword')
elif inven[selectedItem] == 'Strength Potion':
renpy.call_in_new_context('ExamStrengthPotion')
else:
renpy.call_in_new_context('InventoryError')
- PyTom
- Ren'Py Creator
- Posts: 16097
- 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: New cookbook candidate- need experienced coders' opinion
I don't think cookbook code should be using ui functions in 2013.
Screens are more readable and generally better, and over the next year or so I plan to accelerate screens in ways that will be hard to do for ui functions.
Screens are more readable and generally better, and over the next year or so I plan to accelerate screens in ways that will be hard to do for ui functions.
Supporting creators since 2004
(When was the last time you backed up your game?)
"Do good work." - Virgil Ivan "Gus" Grissom(When was the last time you backed up your game?)
Software > Drama • https://www.patreon.com/renpytom
-
- Newbie
- Posts: 18
- Joined: Mon Feb 04, 2013 10:01 am
- Contact:
Re: New cookbook candidate- need experienced coders' opinion
It seems to be a matter of the python code. I out-dented the code 1 level after the UI.Close and replaced it with following code (Native Ren'py?) and it now works for me. (Renpy 6.14.1, Windows 7 64bit). I only edit the Inventory.rpy code.
I was very glad to get it to work. It helps me look at inventory, randomisation and combat.
I was very glad to get it to work. It helps me look at inventory, randomisation and combat.
Code: Select all
$ selectedItem = ui.interact()
if selectedItem == 'exit':
return
# selectedItem is now set to the list index of the item the
# user has clicked on. We can now search for it in the master
# item list, below.
elif inven[selectedItem] == 'Healing Potion':
jump UsedHealingPotion
elif inven[selectedItem] == 'Sword':
jump UsedSword
elif inven[selectedItem] == 'Strength Potion':
jump ExamStrengthPotion
else:
jump InventoryError
return
Re: New cookbook candidate- need experienced coders' opinion
/game/inventory.rpy, line 39
replace return with pass
replace return with pass
Who is online
Users browsing this forum: Bing [Bot], Duhop, Google [Bot]