X me description with clothing...

XanMag
Just when I was ready to make some serious progress I get this stupid problem...

Pretty simple. I find some clothes and put them on. All I want is that my 'x me' description changes from what it would have been earlier in the game and returns after the clothes are removed. I've tried setting the flags on the character (Xanadu) and the clothes (keffiyeh and disdasha1), but I continue to get the same response. It shouldn't be difficult... I've got a more complex changing clothes set up in my secondary game and everything is fine, but I do not have a 'first time/otherwise' script in that one, so I'm guessing it's in there somewhere. I'm sure I'm missing something simple. Thanks in advance...

Below is my code.

if (game.pov = Xanadu) {
firsttime {
if (not GetBoolean(keffiyeh dishdasha1, "worn")) {
msg ("You are Xanadu Magoo. When you first started this journey (back in Part I), you lacked considerably in the departments of strength and good looks. Now, though, after narrowly surviving the first chapter, you are only lacking in those departments mildly. Your weighty 101 IQ and clever problem solving skills got you out of the desert and into...<br/><br/>well... into this nasty predicament you find yourself now. I know it doesn't sound like much, but trust me, it's better than being stuck out in the desert.")
}
else if (GetBoolean(keffiyeh dishdasha1, "worn")) {
msg ("Xanadu Magoo<br/><br/><b><u>Age</b></u>: 32<br/><b><u>Weight</b></u>: 105<br/><b><u>Hair</b></u>: Mousy Brown<br/><b><u>IQ</b></u>: 101")
}
else {
msg ("Still mousy, still thirty-two, still ever-so-slightly above IQ, but now you are dressed in traditional Beduoin clothing. To take off the robe and hat, simply say 'remove robe and hat'.")
}
}
otherwise {
if (GetBoolean(keffiyeh dishdasha1, "worn")) {
msg ("Still mousy, still thirty-two, still ever-so-slightly above IQ, but now you are dressed in traditional Beduoin clothing. To take off the robe and hat, simply say 'remove robe and hat'.")
}
else {
msg ("Xanadu Magoo<br/><br/><b><u>Age</b></u>: 32<br/><b><u>Weight</b></u>: 105<br/><b><u>Hair</b></u>: Mousy Brown<br/><b><u>IQ</b></u>: 101")
}
}
}
else {
msg ("Bigger me is sleepy. Drool on chin. Totally passed out. Hope he is safe there.")


and here is my code for the wear verb:

msg ("You struggle to put on the hat and robe.  After a few awkward moments, you are now dressed just like one of your enemies.")
SetObjectFlagOn (keffiyeh dishdasha1, "worn")


Thanks!

Marzipan
Not at home to test this out just now but have you tried putting an if statement in the player description? That's how I handle changing descriptions on objects anyway.

{if player.outfit=WHATEVER:Description of the outfit goes here.}

XanMag
I put an if statement on the player. Something like if (xanadu has flag robed), then msg (description), but it doesn't register there either. The flag name was changed properly, too.

And I KNOW you are not home. You are parked outside my house like a creepy stalker...

Pertex
I am not sure if I understand your problem (which response is missing?) but it could be a problem with
if (not GetBoolean(keffiyeh dishdasha1, "worn")) {

This if is executed, if the worn attribute does not exists or if it is false. So your
else {
msg ("Still mousy, still thirty-two, still ever-so-slightly above IQ, but now you are dressed in traditional Beduoin clothing. To take off the robe and hat, simply say 'remove robe and hat'.")
}

will never be executed.

Marzipan
I got tired of standing with my face pressed to XanMag's bedroom window so I came on back home. Give me a little time to figure this out and I'll upload a file... it's something that's going to be relevant to my own game as well.

XanMag
SOLVED!! Evidently the problem was in the player attributes. I changed the look at me option in the GUI but, for whatever reason, it did not change it under the player attributes tab under 'look_pov'. Once I changed it in both places, the script worked as desired. Is this a GUI glitch or is this supposed to not change automatically unless I go in and change it manually? You can ignore the rest if you wish, but I figured I'd leave it there in case some other soul stumbled on to this thread. Thanks to all again!!! Eventually, my questions will be fewer and farther in between!! :D

@Pertex: I don't understand. If the hat is not worn (flag down), it should print the normal 'x me command'. If I type 'wear hat..." the flag for worn goes up. If it's up, then the else statement should print, right? I don't know why I don't understand this...

I changed this else if to: else if (not GetBoolean(keffiyeh dishdasha1, "worn")) { thinking that might be it, but I still get the same message. I ALWAYS get this message: msg ("Xanadu Magoo<br/><br/><b><u>Age</b></u>: 32<br/><b><u>Weight</b></u>: 105<br/><b><u>Hair</b></u>: Mousy Brown<br/><b><u>IQ</b></u>: 101")

And.... wow... I must be really goofing this up... I just deleted all the 'look at me' script and started over from scratch, and I'm still getting that response?!? Where the hell is it coming from!?? I tried looking through my game scripts and can't find it anywhere else. lol

Ok... I surfed through all of my code in code view in GUI. Where is this on my GUI screen? I can't seem to find it...?

<look type="script">
</look>
<attr name="pov_look" type="script"><![CDATA[
firsttime {
msg ("You are Xanadu Magoo. When you first started this journey (back in Part I), you lacked considerably in the departments of strength and good looks. Now, though, after narrowly surviving the first chapter, you are only lacking in those departments mildly. Your weighty 101 IQ and clever problem solving skills got you out of the desert and into...<br/><br/>well... into this nasty predicament you find yourself now. I know it doesn't sound like much, but trust me, it's better than being stuck out in the desert.")
}
otherwise {
msg ("Xanadu Magoo<br/><br/><b><u>Age</b></u>: 32<br/><b><u>Weight</b></u>: 105<br/><b><u>Hair</b></u>: Mousy Brown<br/><b><u>IQ</b></u>: 101")
}
]]></attr>

HegemonKhan
Not sure if this will help your case, but remember that there are two locations for your 'look~lookat' me description text box if you got a Player Object.

I think the 2nd from left, or just the leftmost, Tab (whatever it is called), has the normal (non-player controlled) 'look~lookat' description text box, and I think the ~ 'player' Tab has the 'look~lookat' description textbox for when you're controlling the Player Object.

XanMag
Ha! Just figured that out HK (see above). Thanks!

HegemonKhan
It's not a glitch, the Player Objects has two different 'look' (GUI:Tabs and their text boxes, or in CODE: 'look' and 'pov_look' attributes) locations, one 'look' for when you're controlling the Player Object, and one for when you're not controlling it. This is confusing and hard to remember, sighs.

XanMag
So... I have a huge part of my game where the player can become another object. This won't cause problems with that, right?

HegemonKhan
if you're just talking about dialogue~conversation and etc-like scriptings (if they're character neutral anyways ~ if you want their responses~actions to change based on who is your currently controlled Player Object, well, that'll require complex 'if' scripting anyways), then just replace your 'player.Attribute_name OPERATOR Value_or_Expression' with 'game.pov.Attribute_name OPERATOR Value_or_Expression'.

using 'game.pov' refers to whatever Player Object you're currently controlling, whereas using 'player' obviously refers specifically to the default new game 'player' Player Object.

the only real+main conflict~problem with using the 'game.pov' is when you want to keep each individual Player Object's Attributes sepearate from other Player Objects, such as with 'stat' Attributes (level, experience, strength, endurance, etc).

If I got a Barbarian Character with 50 strength and a Knight Character with 25 strength, and I level up the Barbarian Character, adding +5 strength to his strength (50+5=55), I don't want my Knight having his strength changing to 55, nor along with him increasing in his 'level' Attribute too.

------------

player1.strength = 25
player2.strength = 75

player1.strength = player1.strength + 5
// player1.strength = 30

player2.strength = player2.strength + 5
// player2.strength = 80

-------

but if you use:

game.pov.strength = game.pov.strength + 5

// if you're currently controlling 'player1', then:
// player1.strength = 30

// if you're currently controlling 'player2', then:
// player2.strength = 80

... however, what if you want this (see below)?

player1.strength = player1.strength + 10
player2.strength = player2.strength + 5

... then you can't use:

game.pov.strength = game.pov.strength + 5

... nor can you use:

game.pov.strength = game.pov.strength + 10

-----------------

if you use:

game.pov.strength = 100

// if you're currently controlling 'player1', then:
// player1.strength = 100

// if you're currently controlling 'player2', then:
// player2.strength = 100

so, if you don't want every character to have their strength changed to 100, then you can't use 'game.pov'

--------

so, you got to be careful if you use 'game.pov', making sure that everywhere (in all scriptings), you're doing what you want it to be doing.

This topic is now closed. Topics are closed after 60 days of inactivity.

Support

Forums