Page 1 of 1
Making a new preference?
Posted: Fri Sep 28, 2012 1:57 pm
by Joey
I have a new preference-type thing where you can choose to enable or disable pauses after punctuation. I have something like this for the code:
Code: Select all
hotspot (853, 321, 180, 41) action SetField(persistent, "pausing", True)
hotspot (1031, 321, 180, 41) action SetField(persistent, "pausing", False)
but I realize that doesn't behave the same way a preference does i.e. when you change it in the middle of gameplay it doesn't change unless you reload. What's a way to get around this? Thanks in advance!
Re: Making a new preference?
Posted: Fri Sep 28, 2012 4:31 pm
by Levrex
Would you like to tell me how it works? I mean, "pausing after punctuation".
Because my tester seems to desire it.
And about your question - you can either use my method (
http://lemmasoft.renai.us/forums/viewto ... 15#p220059) or write your own action based on the detailed examination of 00screen.rpy - its
SetVariable,
ToggleField and
SetField portions, to be precise. By examining them and then, knowing that SetVariable... oh well, my way seems totally easier.
=======
But wait, there is something better:
http://www.renpy.org/wiki/renpy/doc/coo ... nit_blocks
Re: Making a new preference?
Posted: Sat Sep 29, 2012 1:44 pm
by Joey
Code: Select all
$ x = 0.1
$ y = 0.3
$ persistent.pausing = True
if persistent.pausing == False:
$ x = 0
$ y = 0
I put a text tag {w=[x]} or {w=[y]} after each comma and period respectively. So if persistent.pausing is set to False, there will be no pause after punctuation.
Trying to make sense of your method now but I'm still an amateur at this and it's very advanced and confusing O.O;; Any further help will be appreciated!
Re: Making a new preference?
Posted: Sat Sep 29, 2012 4:35 pm
by Levrex
If you want to use my method, well, don't do it.
You'll need to define your own action.
The following is a sketch.
Code: Select all
class Pausing(Action):
def __init__(self, object, x, y, xvalue, yvalue):
self.object = object
self.x = x
self.xvalue = xvalue
self.y = y
self.yvalue = yvalue
def __call__(self):
setattr(self.object, self.x, self.xvalue)
setattr(self.object, self.y, self.yvalue)
renpy.restart_interaction()
It takes two something in "object" (persistent is persistent and store stores simple variables) and assigns them some values. Note that you'll need to put "somethings" in quotes.
Basically it's the same as "ToggleField".
Pause will look like "
{w=[persistent.x]}".
ScreenAction will look like "
action Pausing(persistent, "x", "y", 0.0, 0.0)".