Jump to content

Kelandon

Global Moderator
  • Content Count

    10,143
  • Joined

  • Last visited

Posts posted by Kelandon


  1. 17 minutes ago, Warrior Mage said:

    I have typed in this code into the town script but unfortunately I am getting error telling that there is an unknown command 'choice' in it. Please help me solve this.

    At the beginning of the script, you need to declare variables. Right after your begintownscript, there should be:

    variables;
    short choice;

     


  2. 2 hours ago, Ess-Eschas said:

    Yes, it’s slow going now, but you are going to be saving yourself so much time in the long run.

    I really hope so. I think that creating the main plot sequence (which I've already done) and filling in absolutely everything in Chapters 1 and 2 will clarify quite a lot for Chapters 3 and 4. There are some special areas — such as the end of Chapter 2 in the capital, and basically all of Chapter 5 — that don't work the same way, but most of Chapter 3 is really the same type of thing as Chapters 1 and 2. So the same notes, the same design process, etc., will work there.


  3. To give you some idea why this all takes forever, my plan for the rest of today was exactly what I said: fix the special spells/abilities, and keep alpha testing. But as I was fixing the special spells/abilities, I realized that some of my early choices about when you learn the special spells/abilities were irrational. They were rewards for very minor quests when there were much more major quests with altogether too modest rewards. So I sat down to document all the side quest rewards and all the places where you learn special spells/abilities (plus all the magic items that are found/earned).

     

    This doesn't sound so bad until you realize that, right now, there are 29 side quests that you can complete within Chapters 1 and 2, 16 special spells/abilities that you can learn in Chapters 1 and 2, and 24 magic items that you can obtain in Chapters 1 and 2. 

     

    Then, once I'd documented the relevant info in spreadsheets, I realized how haphazard choices I'd made so far about these things had been, and I decided to make them more logical and systematic. First, I had to figure out what I want to do (changing the spreadsheets), and then I had to go back into the scenario and implement it.

     

    So what seemed like a fairly simple, basic task ended up being a lengthy documenting process that took all day, and I didn't get to any additional alpha testing. But in the end the scenario will benefit because things will be a lot more planned and balanced, and I can go back to alpha testing when I next sit down to work on this. (It looks like the changes to the special spells/abilities worked, thank goodness.)

     

    Anyway, with regard to giving the player some indication of how much they've missed before the end of Chapter 2, there will be extensive help/walkthrough information available, so anyone who wants to know can know. Given the way the scenario is structured, it would be sort of intrusive to give the same kind of update before the end of Chapter 2 that you get at the end of Chapter 1. But it is fairly obvious at the end of Chapter 2 that you will not be able to backtrack. There is at least one "finish your other business before proceeding" warnings.


  4. I'm going through my third alpha test of Chapter 1, and it's generally in a good place, but it's making me realize that I really need to sit down and restructure the special skills/abilities that I designed way back at the beginning of the scenario creation process. Now that I know the structure of the main plot in much more detail — all the core quests have been designed at least in principle (and almost all implemented in a basic way), and all the side quests in Chapters 1 and 2 have been fully designed and implemented, save at the very end of Chapter 2 — my initial ideas for how the special spells/abilities would work don't really pan out.

     

    In particular, the skill requirements (e.g., you have to have a minimum Mage Spells of [x] before you can cast this spell) are all set wrong. A few spells were made Mage Spells that should have been Priest Spells and vice-versa. And, much more importantly, the skills/spells are being listed in the wrong order. The other two issues are just matter of tweaking my notes and two states in the scenario script, but that last issue requires moving a whole bunch of things around. It will be a mess to fix. But hopefully I can get it done today, finish the last alpha test of Chapter 1, and finally get into the first real alpha test of Chapter 2. (I tried to alpha test Chapter 2 a few weeks ago, but there were so many bugs/missing pieces I uncovered from both Chapter 1 and Chapter 2 that I didn't get very far.)

     

    A while back, I worried that I was creating a Nethergate scenario: there's a main quest line, but a lot of the cool stuff is outside the main quests. Now, much farther in, I'm pretty sure of it. There is a ton of content outside the main quest sequence, and if you're not looking for it, you can easily miss it. At the end of each chapter, you get an update on how many of the side quests you've started and completed, and Chapter 2 is structured such that you can backtrack into Chapter 1, so at least people should be aware of whether they're missing a lot of stuff or not. After Chapter 2, though, each chapter is self-contained: in Chapter 3, you can't backtrack into Chapter 2, etc.


  5. Per my investigations this morning, I have determined that I don't like the standard magically locked door mechanic and am going to change it for Homeland.

     

    I don't particularly like that the magical door script and the regular door script are two separate scripts, so I'm going to unify them. And, per my usual approach, I'm going to set good defaults but allow customization through memory cells, such that you can set magical lock strength, mechanism difficulty (for picking), and physical strength (for bashing) separately.

     

    Some doors will be only physically locked, so you need picking/bashing/a strong Unlock spell. Some doors will be only magically locked, so an Unlock spell is all you need. Some will be both, so you need an Unlock spell plus picking/bashing/a second Unlock spell. And some will be much easier to bash than to pick, or vice-versa. Obviously, in-game dialog boxes will need to give clues about the nature of each door.


  6. I was messing around with magically locked doors this morning, and I discovered that the key call — get_unlock_spell_strength() — is totally undocumented. I don't know if anybody has bothered to work out how it works before, but here's what appears to happen.

     

    The strength of an unlock spell appears to be calculated by (Unlock spell level * 2) + (Mage Spells skill / 2) + 5. Weirdly, the Mage Spells value is rounded up, even though BoA normally rounds down. I didn't check whether Magery affects it, but I assume that (as usual) Magery would be calculated as extra levels of Mage Spells. So, for example, a mage with Unlock level 2, Mage Spells 10, has an unlock strength of (2 * 2) + (10 / 5) + 5 = 14.

     

    The default magic door script has a double unlocking mechanic, where first you have to cast an Unlock spell that releases the magic and then you have to pick the lock. The lock difficulty is the same for both, which seems sort of unreasonable because the default party starts with a Tool Use of 4, while the minimum unlocking strength for a spell is 10 (and can be attained by increasing Mage Spells once from the default party). Similarly, at high levels, with an Unlock spell of, say, 3, and a Mage Spells of, say, 17, the unlock spell strength would be about 20, which probably far exceeds Tool Use at high levels.

     

    The default door script unlocks if the unlock strength is twice the lock difficulty, which means that Unlock 3 + Mage Spells 17 is equivalent to Tool Use 10. Thus, you might be able to get away with replacing a tool user with a mage in some circumstances. Except that, weirdly, the default magic door doesn't unlock this way, so if there are magically locked doors, you still need the tool user.


  7. If you want help, you really need to copy and paste the actual section of the script, not just something from memory.

     

    Also, the command reward_give() takes one short. Anything in the form reward_give(x,5) will generate an error because it has a second number.

     

    I don't know why the first version wouldn't work (assuming that the extra spaces are not the problem). You'd need to post more of the script (at a minimum, the entire node).


  8. 7 minutes ago, Warrior Mage said:

    How do you people actually deal with SDFs? I want to set those in my later towns but I have to include their result in dialogue nodes in previous towns! Should I include SDF in the code directly? One more unfortunate thing happened is I forgot to include a dialogue node way back to the first person of the town and should change memory cell values to the NPCs and edit the script from node value 1 the numbers like begintalknode 1 to 2 and so on.

    I'm not sure what you're trying to do, but yes, you'll have to include some sort of code about SDFs. I also don't understand the "unfortunate thing" at all. If you need help, could you explain further?


  9. Ess-Eschas just helped me with a bug that I was realistically never going to track down by myself, and I figure I might as well let everyone know about it.

     

    Evidently, using the set_terrain() call in the outdoors prompts weird behavior when used on the eastern end of the outdoor section, if the party is currently located in the (north-?)western end of the section. The problem manifests for x-coordinates greater than or equal to 37. There are some safe regions with x = 40 and y = an odd number greater than 26, x = 41 or 42 and y = and odd number, and x = 43 and y = and odd number less than 38, among other potential safe areas. But otherwise, using set_terrain() in the outdoors can mess up the first PC.

     

    The bug initially manifested when I had a supply cache at (41,46) and was setting it to be a found supply cache if the player had already opened it and was re-entering the outdoor section. While wandering in the northwest corner of the section, I ended up with 141 copies of whatever was in the first PC's fifth inventory slot. Moving the cache to (41,44) changed it to adding pears (item 397) to the first PC's fifth inventory slot. Moving the cache to (41,45) fixed the bug as far as I can tell.

     

    Ess-Eschas can explain why this is happening better than I can, but it's one of the weirdest bugs I've ever seen in BoA. It seems to involve memory errors not unlike the old staining technique.


  10. You don't have enough numbers in parentheses. Here's the relevant part of the docs:

    Quote

    void set_party_status(short which_status,short how_much,short give_update) - Changes status which_status for every character in the party by amount how_much. For negative statuses, character resistances apply (to force a change, use the set_char_status call). If give_update is 0, no text message about status change is given. Otherwise, it is.

    You need to specify how much of the status and whether to give an update in the text field.


  11. 7 hours ago, Warrior Mage said:

    Oh, thank you. But I really didn't think I had to do that even though I had other thoughts. Seems like I should think more stranger to design... Then, Hmm... Is mentioning personality useless? I thought it would correct the problem.

    Personality has an extremely limited effect, and not related to this. If you talk to someone with a given personality and encounter a node with the INTRO characteristic, you get text1 through text4. If you then encounter a node with the INTRO characteristic from the same personality (whether the same node/character or, I think, a different one), you get text5 through text 8. That's it.


  12. One unexpected thing about alpha testing is that I have to relearn how to play BoA. I don't really remember how to allot skill points and that kind of thing. It's fun, but it's a bit weird, like speaking a foreign language for the first time in many years.

     

    As of this test, the party ends up around level 14 at the end of Chapter 1 if you do all the side quests. That's probably not going to change much between now and the beta version.

     

    I have a list of about two dozen things that I need to fix in Chapter 1 based on this round of alpha testing. I'm now ready to go into Chapter 2 for the first time. I'm not exactly looking forward to it. Initial alpha testing is usually pretty rough. But the capital awaits.


  13. To change party state to drunk based on dialogue, include the "code" characteristic within the dialogue node, and use set_char_status() or set_party_status() as applicable.

     

    To fully revive hp and energy and move the party, use the "inn" characteristic.

     

    To partially revive hp and energy, you'll have to use "code" plus a variety of related calls, including change_char_energy() and heal_char(), as well as (probably better) march_party() or (probably worse) relocate_character(). This is sort of complicated, and I'm not sure I'd bother.

     

    To give an item as a reward, use reward_give().

     

    For further information on dialogue, look at docs section 2.14.


  14. 1) How to place an anti-magic field or a quickfire or something related to that in an area?

    Use the put_field_on_space() call.

    2) How to change a character's attitude (Friendly/Neutral) if a particular action is done?

    Use the set_attitude() call.

    3) I have seen secret passages telling that "You could not have seen this secret passage from the other side." How to make passages like that? 

    Use some combination of the block_entry() call and a flag. It depends on exactly how you want to do it, but the easiest way is to have something like the following on the space, where (1,1) is the flag that you set if you've found the passage:

    if (get_flag(1,1) == 0)
    	block_entry(1);

    And then set flag (1,1) on, say, the space before that if you're coming from the direction where you can find the secret passage, probably with a pop-up message saying that you found the passage.

     

    A slightly more complex way—which I usually use—is to have a block_entry() call dependent on both a flag and the location of the lead character. It would look something like this, where the passage is at the x-coordinate 15, you can enter from the west, and the flag is (1,1):

    if (get_flag(1,1) == 0) {
    	if (char_loc_x(first_group_member(0)) < 15) {
    		message_dialog("You find a secret passage!","");
    		set_flag(1,1,1);
    	}
    	else
    		block_entry(1);
    }

    I did something resembling this (though not exactly the same) in Bahssikava, town 19, state 12.


  15. 9 hours ago, Warrior Mage said:

    And, also I have another doubt, if I choose custom type, will I know atleast basic spells at start and I doubt if there is a teacher in the Temple of the Goddess?

    If I remember correctly, if you train a character in Mage Spells or Priest Spells at character creation, the character starts by default with some of the lower-level spells. But this is something you should just try in-game. It's an easy thing just to test for yourself so you know the answer.

×
×
  • Create New...