Jump to content

Isaac

Member
  • Posts

    192
  • Joined

  • Last visited

    Never

Everything posted by Isaac

  1. Ah, now it makes sense to me. You should describe it in more detail in the readme. Testing normal editor features, they didn't work! I couldn't change the floor, terrain except for walls, or height the normal way. Special tools like the paintbrush can change them, though. On the subject of the rectangle wall, I couldn't get some of the other rectangle tools to work at all. Also, the wall-drawing tool seemed to be active any time a wall had been selected, even after switching to height or floor mode. ************** I have been working on making a version of the editor. So far I have turned the zoomed-in view into a "middle zoom" view that lets you edit an 18x18 area. I'm going to have to start over anyway to let the user have normal zoomed in view. I was wondering whether you had any additional plans for BetterEditor or whether I can use it as a starting point for my version once it's not so buggy? Other features I am planning on are: A way to change number of outdoor sectors an "eyedropper" tool to select a type of floor or terrain you have already placed If I'm feeling really ambitious and can figure out how to do it, a 3D view like in the game, that can be edited. I found a function in the editor code that lets you check line of sight, so I could even have a mode where you can only "see" from the square you're centered on, as a way to test how it would really look in the game.
  2. Rectangle wall and get (x,y) location only work in zoomed out mode. Wall drawing is a good idea, but I currently can't get it to do what I want reliably. It's always putting walls in the wrong direction, not in the path I drag it. It might help if it knew that two walls facing each other, essentially in the same place but on different squares, wasn't a good thing to make. I have no idea how it's implemented, though, so I don't know what you can do with it. It also acts very strangely in zoomed out mode. Other tools don't work properly. The spraycan and paintbrush tools, for example, I used one time. Next time I clicked, nothing happened except it went back to the normal drawing cursor. But nothing worked until I selected another tool or terrain to draw.
  3. Center the screen on the space. It will tell you the coordinates in the bottom right corner. Or better, get BetterEditor - it has such a feature.
  4. Firstly, it is not a bug. Specials trigger before the character actually enters the square. That way they can, for instance, block the party from entering it. The most efficient way to get what you want is first_group_member(0). Group 0 is the party.
  5. No, it's a floor, "Solid Stone", number 255 at the bottom of the floor choosing area. Then use "Place bounding walls", on the left and third from the top in the button area. Choose a rectangle that includes all the Solid Stone floors.
  6. This is what I did: Code: int i = 0;//...while(TRUE) {i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;//... 800 of theseprint_big_str("number: ",i,"");i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;i = i + 1;//... 200 here} The last number printed was 31800. If I put the print at the end of the while loop, the last number printed (31000) is less than that, therefore it doesn't get to when i = 32000. This is because of the additional instructions used in printing and 'while'. As a theoretical reason why 32000 makes sense, it's a fairly round number close to, but within the limits of, 32767. Yes, that probably means it counts the 'while' itself and its condition both as instructions each time through the loop. I just didn't notice before that 3 * 8000 = 24000, not 32000.
  7. No, I've gotten the same error. Unknown command! The game doesn't even know what it is supposed to mean, so of course pressing those keys won't make any difference. And if it were in th wrong script, it would give a different error or none at all. For example, run_town_script produces an error something like: run_town_script can't be called from a scenario script or, move_to_new_town in a creature script does nothing and produces no error. But turn_on_debug_mode is nonsense to the game's Avernumscript interpreter, hence the error. I want turn_on_debug_mode! I've also tried pressing those keys without calling turn_on_debug_mode, and it doesn't work.
  8. Quote: Originally written by Kelandon: A couple more BoA idiosyncracies: * The overload limit on calls is 8000. After 8000 calls, BoA returns an error saying that you have an infinite loop. I produced this using the code: j = 0; k = 0; while [j < 1] {print_num[k] k = k + 1; } All parentheses are replaced with brackets, because UBB doesn't like parentheses, for some reason. I did some testing, and actually, the limit is 32000. Each instruction — [j < 1], print_num[k];, and k = k + 1; — increases the count towards overload by 1.
  9. Yes you can, in Blades of Avernum.
  10. When editing a scenario, I found that Crystal Souls are called "Soul Crystal"s. Despite the four "Soul Crystal"s near the end of Avernum 3, and the Vahnatai's explanation of the difference between Soul Crystals and Crystal Souls... Okay, it's a minor thing, but it really bugs me.
  11. Thank you, I wasn't remembering those. The circumstance is very strange. If I had needed to know who triggered it in combat and use move_to_new_town at the same time, it would require a terrain script. Apparently when there is a special rectangle, terrain script, and terrain special property script all on the same space, the trigger order is terrain script, then special rectangle, then terrain special property script. I could store who did it in a flag, during the terrain script, and use that in the special rectangle script. Luckily my circumstance didn't require that level of complexity.
  12. Quote: Originally written by Kelandon: All parentheses are replaced with brackets, because UBB doesn't like parentheses, for some reason. That's what the CODE tag is for: Code: message_dialog("The dude says, _Yo!_","")
  13. (I am using Mac version 1.1) Various experiments with removing characters from the party or adding them without using the NPCs joining party calls failed. Changing the members of group 0, the party's group, has no effect. However, I did discover an amusing thing: set_attitude(1000,10) makes the party Hostile, type A, so monsters don't attack them, but "friendly" characters do. The player can still talk to "friendlies" (assuming they have the basicnpc script), but not the normal enemies, though, and there are many other strange effects of it (you can slaughter "enemies" with impunity, if you're willing to dismiss the "do you really want to attack a non-hostile creature" dialog a lot). erase_char() on a party member: works. The party member is permanently deleted. However, that character's items will appear on the ground the next time a town is entered. If you want to use this in a town, use Advanced Item Management Calls to deal with the character's items first: take_item_char_item() to put them on the ground (or just kill_char() before erasing him/her, if you don't mind a death animation, sound, etc.) or, if you want to be really evil, use destroy_char_item(). Further testing reveals that kill_char() works with any value listed in the char_status() documentation, including 0 for erased/nonexistent, but it can have strange behavior. Using 0 causes the same problem as above about not dropping the character's items. For all other values, it displays the death animation, but only the death sound for the standard ways of dying: Dead, Dust, and Stone. Using 1, which means alive and ok, drops the char's items and displays the death animation, but no sound. That character will be in the last death animation frame until something happens to change its displayed image, such as attacking. Don't use unused values such as 6, they produce strange results.
  14. Quote: Originally written by Drakefyre: ...you can check for a person standing on each space of the rectangle. The script is triggered before the movement actually happens, so that won't work. I can't check for characters next to the rectangle either because there might be two of them and I won't know which one it is. Quote: Is there a combat block involved? Should there be? No.
  15. Is there any way I can find out, when the party is in combat and one of the party members steps on a special rectangle, which person did it?
  16. The ".txt" shouldn't be there. Instead of Code: cr_default_script = "basicnpc.txt"; it should be Code: cr_default_script = "basicnpc";
  17. Why not use a variable? They last as long as you stay in the town, and can hold values up to 32767.
  18. move_to_new_town appears to only work when the party enters one of those blue special rectangles placed in the editor. I tried using it in a terrain script and the START_STATE of a town script. In those cases that fail, it seems to block the party's movement and end the script, without taking them to the other town..
  19. I tried putting in a check for that, but it still doesn't work: Code: i = 0; while(i < 40) { j = 0; while(j < 4) { if(char_ok(j)) if(item_type_in_slot(j,i) != -1) destroy_char_item(j,i); j = j + 1; } i = i + 1; }
  20. "t1dungeon error: unknown command print_big_str_color in line 52."
  21. Quote: Originally written by Walker White: True. I was thinking that you cannot do it in unary instances such as !char_ok(x), but I guess in all those cases you just do (char_ok(x) == FALSE). So maybe that's not too bad. It would be nice, however, to have !x available for making x = 1 if 0 and 0 if anything else. Right now that requires an if-branch. No, just do what you said: (x == FALSE) You don't need to put that in an if-branch. It's equivalent to (!x), if that did what you want it to.
  22. I wouldn't do this in a normal scenario, but here's my troublesome code. It's supposed to destroy all of the party's items, equipped or in their pack. It seems to only destroy equipped items. Code: i = 0;while(i < 40) { j = 0; while(j < 4) { if(char_ok(j)) destroy_char_item(j,i); j = j + 1; } i = i + 1;}
  23. You're right. Probably I shouldn't list their relative importance. I'll edit it and take out the part about "from most to least important", and fighting monsters "all the time". However, fighting monsters is the most important part of BoA. Sure, there could be a scenario without monsters, but the engine is designed mainly for combat. Also, while plot is certainly necessary, it doesn't have to be in dialogue. You could find out everything in the enemy's lair, for example. For reference, it said: Quote: Talking is an essential part of Blades of Avernum. It serves several roles, from most to least important: 1) Shops 2) Advance the plot 3) Give the player hints 4) Add realism 5) Give the player a break from fighting monsters all the time (some people like having conversations, too) now: Quote: Talking is an essential part of Blades of Avernum. It serves several roles: • Shops • Advance the plot • Give the player hints • Add realism • Give the player a break from fighting monsters (some people like having conversations, too)
  24. Useful Dialogue Tips Talking is an essential part of Blades of Avernum. It serves several roles: • Shops • Advance the plot • Give the player hints • Add realism • Give the player a break from fighting monsters (some people like having conversations, too) Shops are essential to a BoA scenario. Most important is someone to identify your items and someone to sell stuff to. Preferably, they should be in the starting town so the player doesn't have to look around for them. Without these, the party will have their inventories full of unidentified items and items they want to sell. They can leave them lying in any town, but it will be wasted treasure. As a player, I find this very annoying. Also, shops that sell consumable items are important. Archers need javelins/arrows/bolts and non-mages need lights (candles, torches, and lamps). You never know if that kind of party might enter your scenario; don't assume they have a mage, for example. You should put in a healer somewhere, too. Other types of shops sell lights, food, tools, weapons, armor, bows/arrows, priest spells, mage spells, skills, alchemy recipes, alchemy ingredients, potions, scrolls, etc. You can even make your own random item shops using the calls get_ran and add_item_to_shop (although it is probably a better idea to decide what items you want in the shop instead of choosing randomly). Make sure the shops sell items at the right power level; in a scenario for starting parties, don't sell Iron Plate Mail. The party should be able to sell items to almost any shop that isn't a spell/recipe/skill shop. Almost all shops should have the same prices to sell to. This way the player won't have to bother going to the shop with the best prices all the time. Theoretically, it is also an economically sound decision for the merchants, at least within a single town. Using characters to advance the plot is a good decision. It gives them something interesting to say, and makes the plot feel more connected between people and monsters. The party is usually adventuring to save people from monsters. The people in danger ought to have something to say about it! They can say things relevant to the plot that have no actual effect, such as "The curse is making the crops die. People are starving." They can give quests, either side quests or part of the main plot. A quest should usually have a reward from the person who gave it. Characters can also give information. Beware, though: some players will not want to talk to everyone. Avoid putting information essential to completing the scenario in some random person's conversation. It is all right if he/she is an important person, such as Mayor Crouch in Valley of Dying Things, but you have to make sure there is a reference to lead the player to him/her. For example, in VoDT, as soon as you leave your room, you find a note telling you to see Commander Terrance, who gives you a quest to talk with Mayor Crouch. These also give decent directions to find the person — when you tell the player to find someone, make sure you give directions (for example, "Down the corridor to the south" or "In Sweetgrove"). Dialogue can be used in hostile towns either talking with prisoners, people that are hiding, or even important enemies. This is often part of the scenario's plot. The player can free prisoners for a quest, or learn about secret passages from a friend there, or perhaps do diplomacy with your enemies (or at least get to know them better). Characters can be used to give the player hints. If a certain thing is important, lots of people can say something about it. This way you can give important (non-secret) information to the player subtly. For example, everyone can talk about the monsters that appeared out of nowhere and their guesses about its origin. Or in VoDT, you can ask half the people about the School of Magery, which hints that it's important. Realism is important to keep your scenario believable. If people are farmers, they should talk about farming, and someone nearby might sell the food they produce. Also, some players like to talk. Give your characters more depth than "I sell armor." If the land is being ravaged by monsters and the towns are under attack, wouldn't people have something to say about it? Most characters in friendly towns have something to say or are at least willing to talk. Those that won't talk often have 'conversations' that are something like "I'm busy. Go away." To keep conversation interesting and realistic, give your characters varied personalities. (For more details about how to design characters' personalities, see the article Creating Compelling Characters.) Creating good dialogue can be very time-consuming. There are ways to reduce the amount you have to make. Less important people can have less to say. A crowd of people that are the same, like serfs or guards, can be very simple and all have the same dialogue in the same town. Talk to any guard in the scenarios that come with BoA to see what I mean. Don't put in more towns than you need, either, if they don't help the scenario in any way. -Isaac
  25. As an intermediate approach, Kharl in Sweetgrove starts a conversation with you, saying only that he wants you to come and talk to him. Unfortunately, since he does this every time I enter town, it's quite annoying. My approach at least takes care of that.
×
×
  • Create New...