Jump to content

Kelandon

Global Moderator
  • Posts

    10,261
  • Joined

  • Last visited

Everything posted by Kelandon

  1. Radio, actually. Give me a moment to track it down. And yeah, until I heard this, I thought it was three syllables, too. EDIT: The Gamesome Mac interview. (April 05 is the one with JV.)
  2. I'll go check this right now. I've never used this call before. EDIT: Nope, can't get it to work. I tried a couple of things, including print_num(town_status(current_town())), which really ought to return a non-zero value pretty much no matter what, and it printed zero. I tried making the town hostile by attacking a friendly character, and it was still zero. I tried setting the town status with set_town_status(current_town(),2), and nothing happened -- the town didn't even become hostile like it was supposed to. I think town_status and set_town_status are both broken.
  3. *i, it might be helpful to group the requested new calls by category. I think the groups fall roughly along these lines: Advanced Dialog Box Calls * void add_dialog_pic(short which_pic) - Puts a dialog picture in the upper-left corner of the dialog. Animation and SFX Functions * void put_missile_animation(short source_x,short source_y,short dest_x,short dest_y,short which_sfx) - Missile animations. Terrain Script and Creature Calls * short get_creature_memory_cell(short which_char,short which_cell) - Returns the value of memory cell which_cell of creature which_char. * short get_terrain_memory_cell(short which_script,short which_cell) - Returns the value of memory cell which_cell of terrain script which_script. * cast_spell(mage_or_priest, which_spell, spell_level, is_forced) - For creature AI scripts only. Causes the creature to cast spell which_spell at spell_level depending on mage_or_priest regardless of mage or priest spell ability. If is_forced is 0, the spell is only cast if the creature has enough spell points, otherwise the spell is always cast. Shop Calls (a new category) * short shop_item_quantity(short which_shop,short which_item) - Returns the quantity of which_item still left in the shop that can be bought with enough gold, 0 if the item is not there. * void add_item_to_shop() - Allow negative values for modifying shops. * void change_shop_money(short which_shop,short how_much) - Changes (as in increment and decrement) the amount of money a shop can have for buying the players items. Similar to Geneforge. I'm not exactly sure how the 'unlimited money' switch should work, so here is just a simple suggestion. If the shop ends up having equal to or greater than 30000, the shop has unlimited money, but it can only be given that much with this call. Shops default to having unlimited money. * short shop_money(short which_shop) - Returns how much money which_shop has to buy the player's items. Returns 30000 if the shop has unlimited money. * void shop_selling_options(short which_shop,short selective_sell_category,short cant_sell_this_category,short can_resell) - Changes whether or not a shop will purchase certain kinds of goods, like in Exile. selective_sell_category is the variety of the item that is affected. The varieties are exactly the same as they are in the custom item scripts (like 1-handed,pants,ring,etc...). If cant_sell_this_category is 0, a shop may purchase items of the defined variety from the player. If 1, not. If can_resell is 0, the shop won't list the bought item back on its inventory for sale. This means that a shop can buy an item, but not resell it. All of the varieties default to being sellable by the player when possible, and can be resold by the merchant. The Passage of Time Calls * void calculate_ticks_forward(short num_ticks) - Makes the game calculate num_ticks forward, and of course will act upon these calculations. * void set_day(which_day) - Changes the day to which_day. * void set_year(which_year) - Changes the year of the scenario to year which_year. * void set_day_size(ticks_per_day) - Changes the length of the day. * void set_daylight(short how_much_light - I assume that the engine has 'levels' of daylight as the day progresses to determine how much to darken terrain and such. This call sets the amount of daylight to how_much_light. * short get_daylight() - Returns the current level or amount of daylight. * void stop_daylight_progress(short stop) - Starts or stops the progression of daylight throughout the scenario. If stop is 1, then the daylight will stay the exact same as it is when this call is used. Daylight will change if stop is 0. Advanced Item Management Calls * void identify_item(int item_type) - Identifies all items of item_type currently in the party's possession. * void identify_item_with_class(int item_special_class) - Identifies all items with item_special_class in the party's possession. * void identify_item(short which_char_or_group,short which_slot) - Identifies the item on which_slot of which_char. which_slot of -1 implies all items on that specific character or group becomes identified. Should probably only be used on party members. * short item_loc_x(short which_item) - Returns the x of the location of item which_item. which_item refers to the items ID in the scenario editor. If the item has either been picked up or non-existent, call returns -1. * short item_loc_y(short which_item) - Returns the y of the location of item which_item. which_item refers to the items ID in the scenario editor. If the item has either been picked up or non-existent, call returns -1. Basic Character Calls * void set_char_presence_status(short which_char,short which_status) - Sets the status checked in char_status (whether the character is dead, not present, etc), as opposed to the status checked in get_char_status (whether the character is blessed, hasted, etc) which is already settable. * short char_weight(short which_char) - Returns the weight of the character which_char. * get_immunity(short which_char, short immunity_type) - Returns a value from 0 to 100 depending on the assigned immunity value. * set_immunity(short which_char, short immunity_type, value) - Sets a value from 0 to 100 to the immunity_type. * void set_hp_regen(short which_char, short what_percentage) - Gets what percentage of which_char's maximum health is regained every tick. * void set_hp_regen(short which_char_or_group, short what_percentage) - Sets what percentage of which_char_or_group's maximum health is regained every tick. * short get_sp_regen(short which_char, short what_percentage) - Returns what percentage of which_char's maximum spell points are regained every tick. * short get_sp_regen(short which_char_or_group, short what_percentage) - Returns what percentage of which_char_or_group's maximum spell points are regained every tick. * void deduct_ap_from(short which_char, short how_much) - Counterpart to deduct_ap(), but you can affect other character's ap. Probably more useful in terrain scripts and custom abilities. The affected character's ap is reduced by how_much, which can be negative to add ap. Town Calls * void change_lighting(which_type) - Allows us to make the dungeon totally dark, fully lit, etc. * void add_light(what_amount) - Gives ability to change the light level (as from torches or Light spells). Can be negative. * short get_light(), returns the current light level (number of turns of light the party has left). * void set_up_lights() - Has the game refresh the lighting of a dungeon. * void put_party_outdoors(short what_section_x,short what_section_y,short loc_in_sector_x, short loc_in_sector_y) - Puts the party outdoors. It can only be used in a town script. * void set_town_status(short which_town,short new_status) - This call does not appear to do anything in the current version of BoA. * short town_status(short which_town) - Right now always returns 0, even if the town status is not 0. It should return 0, 1, 2, or 3. Grouping Calls * short group_member(short which_group,short which_member) - Returns the creature number that is in the which_member slot of which_group. So if which_member was 1 and which_group was 2, the call would return the first creature in group 2. Basic Script and IO Calls * short request_target() - Returns the number of a visible creature of the player's choice (like targeting a spell or a wand). Cannot be used outdoors. * run_imported_state(file_name, state_number) run_imported_state_continue(file_name, state_number) - Runs state state_number out of file file_name. The former call ends the current call whereas the latter finishes the given call. See set_state() and set_state_continue. Terrain Checking and Modification * short space_blocked(short loc x, short loc y) - Returns 1 if the space is blocked and 0 otherwise. This does check if the floor or terrain type is blocked (fl_blocked = 1 or te_full_move_block = 1), as well as if the floor was made blocked in the editor. Data storage and Manipulation (a new category) * vector v1(n) - Placed in the variables section. Creates a vector array of size (1xn). * matrix m1(m,n) - Placed in the variables section. Creates a matrix array of size (mxn) to store data. If full matrices are too much, vectors would be fine. * v1(i) - Returns the ith component of vector v1. * m1(i,j) - Returns the i,jth component of matrix m1. Miscellaneous Special Calls * short check_path_between_locs(short loc_x1, short loc_y1, short loc_x2, short loc_y2) - Has the pathing engine calculate whether or not a character at location {loc_x1,loc_y1} could reach location {loc_x2,loc_y2}. Returns 1 if a path is found, 0 if there is definitely no path, -1 if there was no path found because the pathing engine stopped before exhausting all possible nodes. Location and Distance Calls * short waypoint_x(short which_wayp) - Returns the x coordinate of waypoint which_wayp. * short waypoint_y(short which_wayp) - Returns the y coordinate of waypoint which_wayp.
  4. Kelandon

    BoA...

    This error most likely means that you have the editor in the wrong place. If you have a Mac, the editor belongs in the Blades of Avernum Files folder. If you have a PC, the editor belongs in the Blades of Avernum Data folder, I think. If moving the editor to one of those places doesn't fix the problem, post the exact error message, when it occurs, and what your operating system is. Porting really is that hard. You have to debug all of the specials over again -- which is no small task in itself -- and rewrite much of the dialogue, as well as (obviously) redoing all of the custom graphics. Also, spaces after your punctuation would be much appreciated.
  5. To the best of my knowledge, the way to fake this is to use floor 71, "Pit," and then to stick a bridge on top of that. Or, um, you could try mucking about with te_icon_offset_y and fl_floor_height_pixels, which may be able to do something like this.
  6. Oops. Demi for Erika. I think Linda's still open. Go for it, Andraste.
  7. Kelandon

    BoA...

    Well, yes, but what exactly are you doing? What is causing the crash? Are you using the Import Blades of Exile Scenario command in the Blades of Avernum Scenario Editor, which hardly seems like "copying files"? And if you are, why? Do you know that porting scenarios into something playable is a lot of work? What does the editor do when it crashes? Are you aware that at least four scenarios have been ported already, so it's definitely possible to port? In short, what on Earth are you talking about?
  8. Depends. Do you look like Demi Moore?
  9. EDIT 2: Darnit, this should be in the BoA board, not the Editor board. Can someone move it, please? Sigh. It appears that when the shop setup function is called twice, the shops get all screwed up. This means that if you go into the Shopping Area at any point, leave, change levels significantly, and then go back into the Shopping Area, the shops will have more items in them than they should. Thank you to Morgan for reporting this. There doesn't seem to be a particularly good way to fix this with the calls that we have now. Since there is no short to check the number of items in a shop, and since there is no way to reduce the number of items in a shop, the only way to fix the shops would be to go back to the earliest form of the shop setup function, one from a pre-release version that increments as each level plateau is reached, which I would have to re-make from scratch, as I threw it out some time back. It also looks horrible: the items in the shops rearrange themselves every time new items are added, which throws the organization of the shops to hell. It would be possible to fix this by resetting the shops at the beginning of the function if the add_item_to_shop call actually worked as advertised ("Note that, in all cases, you will want to put a number above 0 for how_many. If you don't, the item will disappear from the store," specifically -- meaning that add_item_to_shop(1,200,0) would make item 200 disappear from shop 1), but the call doesn't actually do this. The call doesn't make items disappear if they are already there; it just doesn't add any more. Thus, there's not much I can do. This adds a certain urgency in my mind to the requests we made over in the BoA Editor Suggestions thread, specifically the improved functionality for the shops. I'm e-mailing Jeff to let him know about this, but I'm not sure what he's going to do or how soon it's going to happen. At any rate, I will continue to release occasional updates to the HLPM, and if we actually get those new calls -- a way to reduce the number of items in shops would be really nice, or a way to zero the shops as the docs claim -- then I will fix this. But with the calls we have right now, there just isn't a good way to go about changing this, at least that I can think of. For the time being, don't go into the Shopping Area, change levels, and then go back into the Shopping Area again. If you must, leave the scenario and come back into it in order to do this. EDIT: For the record, this is the e-mail that I sent to Jeff: Hey Jeff and co., I noticed that one call doesn't quite work the way that the docs say. About add_item_to_shop, the docs say: "Note that, in all cases, you will want to put a number above 0 for how_many. If you don't, the item will disappear from the store." That seems to indicate that add_item_to_shop(1,200,0) will make item 200 disappear from shop 1, for example. However, it doesn't do this. It just doesn't add the item to the shop. But if the item was already there, then the call won't do anything, rather than making the item disappear. I bring this up because I have a bug in the HLPM right now (documented here: http://www.ironycentral.com/cgi-bin/ubb/ultimatebb.cgi?ubb=get_topic&f=18&t=000445 ) that I can't seem to fix with the calls that are currently available. (It could in theory be fixed, but it would require a workaround so lengthy that I might run over the script size limit, which I'm already pushing, and it would make the shops ugly as all heck, too.) If add_item_to_shop worked the way that the docs say, I could fix this easily -- or better, if you added some of the calls that we requested in this thread: http://www.ironycentral.com/cgi-bin/ubb/ubb/ultimatebb.php?ubb=get_topic;f=18;t=000423 . Either way, making the call work as advertised or adding additional calls that make all of this easier, would be great. Just thought I'd let you know. Looking forward to future updates! -- Kelandon
  10. I was thinking you could use flags as digits in a base-256 system (ie increment a flag until it got to 255, then increment the other flag by one and reset the first flag to 0), which would get you something like 64 million ticks with two flags. How *i came up with 3125, I don't know, though. EDIT: Ach, too many zeros. Keep's right: 2^16 is about 64 thousand, not million.
  11. Er, dark in the sense of night dark, not dark in the sense of making town dark so you need to cast the Light spell in order to see more than a square away dark. It's annoying that we can't mess with outdoor terrain details nearly as much as we can with town details. I hadn't noticed that (because I've hardly touched outdoor terrains yet).
  12. You could tick off the box that it's taking place in the caves, which are dark, and put surface terrain anyway. I think this would accomplish the same thing, although I haven't tried it.
  13. From what I can tell, line numbers work fine with BBEdit Lite and TextWrangler for the Mac and EditPad Pro and Crimson Editor for the PC, as long as you're using the "Special Scenario Development Application" ( from the Scenario Workshop ). You can still screw them up a little bit (missing ending quotes, missing ending parentheses, etc.), but they are much, much closer this way. Er, node 26 has a rather odd character right in front of text1. This is probably the source of your "Invalid character" error. EDIT: Er, yes, what Kahless25 said. But it's a weird backwards quote, an un-caps tilde.
  14. Woo, that just reminded me of something. The big battle outside the ziggurat in A2, the one where the vahnatai help you break through Empire battle lines -- it would be really cool to have a big battle along those lines in a Geneforge. I don't recall any, offhand. Drayks and drakons and glaahks and stuf battling, with you caught in the crossfire. That'd be pretty neat.
  15. I think it's best to start with A1 if you want to understand the plot without having to catch up from being a bit behind. The others are kind of stand-alone, but A1 actually has an explanation of the basic plot concepts of the trilogy. Start with A2 if you don't care about catching up and like plot the best. A2 had probably the best overall plot (although each one individually had decent sub-plots, too). Start with A3 if you want the most bang for your buck. A3 is a LARGE game, almost the size of A1 and A2 put together. It has probably the worst overall plotline, but to be honest, I didn't even notice that until people at these boards mentioned it and I thought about it for a while. A3 is fun, and its predecessor (E3) was Spiderweb's best-selling game. Blades of Avernum will be an even better buy than A3 in about two or three years, but you'll have to wait a while for it to mature. Basically, Blades gives us (the community) the opportunity to make and play 3rd-party scenarios with a VERY powerful scripting engine. Since we already have devoted BoE designers who are by and large making the switch, this will be a great game in a little while, but it's so new that not much is out yet. And that's my rather verbose answer.
  16. Indeed, and especially since in A1 the sliths of Gnass say that they've been exiled for 100 years and the sliths of Lost Bahssikava say they've been exiled for 200 years, it seems rather unlikely that the same Sss-Thsss could've been responsible for their exile and still alive to be killed by the heroes of A1. And peculiarly, the message right before the steel doors in Bahssikava Deeps refers to him just as Thsss -- perhaps Sss is a prefix added on as a title or something? The rumor is that the sliths were exiled for worshipping Grah-Hoth, but that seems to be unsubstantiated. It does seem rather clear that Sss-Thsss had connections to the demon lord, though.
  17. You could just try setting an SDF. For debugging, usually I add a print_str to a state to make sure that it's being called when I think it's being called. Your syntax looks fine, and if you're not getting an error message, that's probably not the problem.
  18. Nothing, until you revived a deceased, pointless topic.
  19. What about them? Treat them exactly the same as any other Spiderweb graphics. You can use them, and mention in the readme that you got them from VoDT or whatever. To reiterate: you can use ANY graphics from ANY Spiderweb game.
  20. I am pretty sure you cannot have a custom graphic for a missile animation. If you could, you'd have to include it in your custom graphics, in the .cmg file for a Mac or in the bmp's for a PC, and you'd have to fit them into the same sort of palette as the included ones. You can try it, but I don't think it will work.
  21. Talk to the sliths of Gnass in A1 and A2, and the sliths of Lost Bahssikava in A1. Fort Avernum, Silvar, and Fort Duvno in A1 are your best sources for an outsider's perspective, because they're explaining the basic details to a group of adventurers who have never seen sliths before. That pretty much tells you everything you need to know. A quick summary: sliths are reptilian men, lizard men of some kind. They are exiles, just like everyone else in Avernum, but they are NOT exiles from the surface like the nephils and humans. They came from the slith homeland, which is somewhere in a deeper cave of Avernum. They came through Lost Bahssikava, whose location was not known to the sliths of Gnass -- hence "Lost." Sliths made their way to the surface by the time of A3 (see mining tunnels in, er, southeast Valorim), although they were still very uncommon. Sliths come in two varieties: Darklings and friendly ones. Darklings are barbarians, often at war with humans, devastated in Avernum by the death of Sss-Thsss in A1 and the arrival of the Empire in their lands shortly before the beginning of A2, but according to ZKR, they retreated into the deeper caves and spent time training and becoming stronger before they came out and fought a new war. Friendly sliths, on the other hand, can be found in two places: Gnass and Lost Bahssikava. Lost Bahssikava has ceased to exist by A2, for whatever reason; I suspect the Empire or the nearby giants came through and killed them in the intervening time, personally. In Gnass, many sliths are born "without intelligence": for whatever reason, they don't speak very well and they are not fit for much more than farming (check out the northeast corner). Sliths need water to breed and to survive, and their towns often either are surrounded by water or have a river running through the middle of them. Sliths are very religious, and they build big temples to their various slithy gods. No gods are named in the Avernum Trilogy. Sliths in Avernum learned architecture from humans, but ancient Bahssikavans knew architecture already (see Bahssikava Deeps as evidence of this). I have more info; my notes that I posted on my web site have a lot of information on sliths. I figure that's enough to start off with, though.
  22. Bah, that was the other thing I was going to say, Alec.
  23. To be more specific, this is the relevant part of the e-mail: "Third, I was wondering if it is legal to use dialog pics and other graphics from the other Avernum games in our own scenarios (for example, resource 5082 in Avernum 2 Art, among others). If so, to whom should I credit them? Go for it. You can use our graphcis in BoA scenarios, no special credit necessary." The first part was quoted from an e-mail that I sent, and the second part was Jeff's response.
  24. Imban's definition of fundamentalism is much more on-target, really. I find them rather frustrating because the whole philosophy makes little sense if you know anything about state of textual scholarship of the Bible (which was charitably described in an introduction as being in a state of "flux"), but I try to let them have their views as I have mine. Also their literal interpretations are literal based on what the Bible says in English, which is obviously problematic in itself, and discussion is rather useless, because they tend just to say "The Bible says so," rather than "[x chapter and y verse] says so." Intolerance is intolerance, regardless of whether it is based in a traditional religion or in atheism. I try not to judge each fundie that I meet by every other fundie that I've ever met, but it becomes hard after meeting a lot that all behave the same way. Still, I try to keep an open mind. Creator, I find you much more tolerable than most people with as strong religious beliefs as you because you don't try to call down the hellfire and damnation as soon as you enter a discussion. Fundies have been known to shout things like "YOU ARE DOING THE DEVIL'S WORK! YOU ARE GOING TO HELL!" when they are refused a donation -- they are rather irritating around campus here, for sure. You actually seem genuinely relieved to discuss issues without anger, which is why I would care to have a real discussion with you, which I wouldn't with most religious people. Er, there was some point to this, but it was lost somewhere along the line.
×
×
  • Create New...