Jump to content

Kelandon

Global Moderator
  • Posts

    10,261
  • Joined

  • Last visited

Everything posted by Kelandon

  1. I do some really freaky things to check the party composition in the HLPM. From state 12 in t0Party Build.txt: Code: // Figure out who's in the party. The first character becomes i, the second // j, and the third k. If there are four, ignore this madness. i = 0; while (char_ok(i) == 0) {i = i + 1; } if (party_size() == 2) {if (char_ok(i + 3)) j = i + 3; if (char_ok(i + 2)) j = i + 2; if (char_ok(i + 1)) j = i + 1; } if (party_size() == 3) {if (char_ok(i + 3) == 0) {j = i + 1; k = i + 2; } if (char_ok(i + 2) == 0) {j = i + 1; k = i + 3; } if (char_ok(i + 1) == 0) {j = i + 2; k = i + 3; } } And then if (party_size() == 4), just deal with 0,1,2, and 3 as normal. It gets rather more complicated if you have joined NPCs, though. EDIT: Basically, you can use some combination of party_size and char_ok to figure this out. Also that first bit i = 0; while (char_ok(i) == 0) {i = i + 1; } will figure out the leading character. Unfortunately, first_group_member(0) doesn't seem to do this reliably, and it would be the most obvious answer if it worked.
  2. Try it and tell us what happens! That was the point of this topic, originally.
  3. It's not. This is an error in the docs. The point is to put parentheses around EVERYTHING, rather than relying on normal Order of Ops to save you. 9 - (3 - 3) = 9 (9 - 3) - 3 = 3 9 - 3 - 3 = ???? I haven't tried the last one, but it really doesn't matter. Don't leave numbers naked. Use parentheses. That's all it's trying to say.
  4. For effects, you want run_animation, not force_instant_terrain_redraw. EDIT: And you could combine this with play_sound using run_animation_sound. I wrote an article on this that you may find useful.
  5. I like Imban's system a bit better, but I'd say "High" shouldn't start until level 25 or 30 and "Very High" until level 40 at least.
  6. If it's supposed to happen at a specific time or place, you could just throw in a begin_talk_mode in a town state and then call that state at the specified time. Following NPCs have their own scripts, too, so you can do the same thing but have it in the character's script -- which may be better, because then it will have the "Done" button that it wouldn't have otherwise.
  7. I have no idea about a, but I believe you can fix b with a block_entry call. Since the state is called before the party actually steps into the space, what's happening is that it's playing the cut scene and then stepping into the space from before. I think just sticking block_entry(1) at the beginning of this state will fix that.
  8. There was a point in my scenario where I had the party mention the Empire, and then a character (who was from the utter depths of Avernum) said, "I have never heard of this 'Empire.' " It was supposed to be a text bubble. That's why I tried to have quotes in a text bubble. For the record, te_anim_steps does work. Dahak is just wrong.
  9. I'm guessing this is a height problem. What height is your in-town area set at, and what does the other side of the town (at the west exit) look like? EDIT: Or, more pressingly, does it NOT look like this when you play it in the game itself?
  10. For the record, I can't reproduce this, but I have noticed that the dark tiles outside the town's borders sometimes conform to what's on the edge of the town and sometimes don't (and if they don't, they just stay black). Sometimes I will see grass outside town and sometimes I won't -- and because BoA actually does this in the game, I think it may be an accurate representation of what the town will look like when you enter it. I have no idea if this is related to what you're talking about, though. Isaac, have you gotten any sort of response about hosting? I have a bunch of open web space, so if you need someone else to host it, I can do it.
  11. Coming soon to an Olympia board near you: the Anama contest!
  12. If you tested it and it does in fact work, then I take that back. I don't understand how it could possibly work -- creatures are not supposed to stay in TALKING_STATE after you've talked to them, nor are they supposed to enter it without you talking to them -- but if it does, then clearly there's something here that I don't understand. Oh. Wait. It is in the START_STATE, too. Never mind. My apologies. The clutter in the TALKING_STATE is unnecessary, but the code in the START_STATE will work.
  13. I believe Keep's script won't do what you want, too. The TALKING_STATE is only called when you actively talk to the character. Keep's script will look really bloody weird. The character will take one step every time you attempt to talk to it. Khoth's script is the way to go.
  14. Yes. Either action = END_TALK; or code = // whatever end(); break;
  15. As far as making-Avernum-in-BoA and making-Exile-in-BoE ideas go, this one is considerably more loathsome than most. Not only is it of dubious merit in the first place, as all such ideas are, but it is probably impossible to do, and it is certainly not worth the effort even if it is possible. And to make matters worse, this is an IDEA for a scenario, not a statement of intent to make a scenario, which is usually part that redeems most such posts. You're not even stating your intent to make this; you're saying that you want SOMEONE ELSE to make it. Congratulations. I think you may have managed to combine every single bad idea that frequently comes up on these boards into one hideous post. EDIT: There's even "lol" in the topic title. This is a piece of art.
  16. Do this with the condition and action parts of the dialogue script. It would look something like this: Code: begintalknode 1;state = 1;personality = 1;nextstate = 2;condition = get_flag(0,0) == 0;question = "Person name";text1 = "Yes or no?";begintalknode 2;state = 2;personality = 1;nextstate = 1;question = "Yes.";text1 = "You just said yes.";action = SET_SDF 0 0 1;begintalknode 3;state = 2;personality = 1;nextstate = 1;question = "No.";text1 = "You just said no.";action = SET_SDF 0 0 2;
  17. A completely strange thought: depending on what you're doing, you may want a terrain script for this, because those are the only things that are called every time a character moves in combat. (That is, if you want the anti-party to mirror the party *instantly* even in combat mode, the ONLY way to do that is using a terrain script's START_STATE.)
  18. You may be able to use erase_char to some effect here, but I've never tried it with the party. If I'm not mistaken, it would take care of the item issue. It is rather odd that we can't edit character status (by which I mean the status as found in char_status, not the normal kind). If BoA works like A3, NPCs may pick up items that are just lying on the ground, although I've never seen this behavior in BoA and it's not obvious in basicnpc. Otherwise items will stay put where they were dropped. EDIT: Ah, yes, Isaac tried something like this . It may be possible to use kill_char to edit a character's status into being split up, alive but not present, although I haven't tried it, and by the sound of it, Isaac didn't either. EDIT 2: I just played with this a little. kill_char(0,1,0) looks really cool. kill_char(0,11,0) does in fact edit the character's status to being split up, dropping the char's items, but reunite_party doesn't bring that character back, and kill_char doesn't work on someone that's not present. You could probably use split_off_one_char to work around this (basically, instead of reuniting the party directly, split off a character and then reunite the party), but it this would be tricky.
  19. You can also find the purified essence in Phariton's Hall, and the other two places where you can get Create Drayk are in Rising and Zhass-Uss Outskirts. I'm getting this out of the hint book, though, so I have no idea where in those locations one gets these things, though.
  20. Man, it would be nice to get our hands on that program... and since I know he LURKS around here, what do you say, Jeff? What is the program, and can we have it?
  21. I'm guessing those were the priests from the Temple of the Divine Lucre. If so, you screwed up nothing critical by attacking them, and I think you didn't screw up anything at all. EDIT: Oh, by the way: hi, and welcome to Spiderweb! Leave your sanity at the door! And stuf.
  22. The idea of the "while" is to check the distance of every single possible living monster and keep track of which one is the lowest. An "if" wouldn't really do that. Although, looking at it again, I realize that the "i = i + 1" part is misplaced. It should be inside the "while," or else the thing will loop infinitely.
  23. What I meant was that I thought I hadn't changed the page at all since I first uploaded it, which would indicate that the links had ALWAYS been broken and no one could get to the scripts. Evidently I screwed up the links more recently than that, though. Whatever. It doesn't really matter. They're fixed now.
  24. That won't get you a character's name, GIFTS.
  25. If you use REAL blackness (floor 255) and not just a pit (floor 71), it will look fine, even using Far Sight. I don't know why you would "Clog the blackness with walls of T sections," because this will look weird. Blackness by itself is sufficient.
×
×
  • Create New...