-
Posts
2,138 -
Joined
-
Last visited
Content Type
Profiles
Forums
Blogs
Everything posted by Niemand
-
Quote: Is there a nest limit? No, not explicitly, although with every level of nesting costs you nodes and execution speed, though not as much of the latter as if it's helping to short circuit a long calculation. Fun fact: Every time the interpreter hits a right bracket, it scans backward through the script to find the matching left bracket, so that it can find out whether it's just finished a while loop body and needs to jump back to evaluate the condition. If in fact the bracket belonged to an if or else, the exercise is a waste of time.* Quote: Of course, one could also give property 6 to all appropriate floors and terrains and make is_blocked actually useful. Now that's a clever idea. Where you would really gain by doing this would be on the terrains, since there are more of them to begin with and the passable, and impassable groups are more jumbled. *This analysis comes with the usual disclaimer that it depends on the actual game interpreter being roughly equivalent to the partial interpreter found in the editor code.
-
Quote: Suddenly, there were shouts from the direction of the lab, followed by an explosion. Bringing the building/game/reality down around your ears is how you know you're on the track to something really useful!
-
Quote: Also, did I miss some is_REALLY_ blocked call? My placement detection usually works, but it can still teleport the creature behind a window, on water, etc. Need I really use some huge get_floor/terrain conditional to make sure? No and yes, unfortunately, respectively. 'blocked' in the context of change_blocked(), is_blocked(), and terrain or floor special property 6 actually means 'blocked to NPCs'. Checking for this is a good thing to do, but as you've discovered, it is necessary without being sufficient. As for finding out whether a space is passable because of floors and terrains, you're basically on your own; the game knows, obviously, but it isn't telling. In theory this can be figured out from either the relevant floor and terrain definition, or more concisely from the blockage array the game keeps track of, but neither of these is available from a script. Probably the best you can do is to make a few floor and terrain checks, and then conservatively assume that otherwise the space isn't passable, accepting that your AI will then have a few odd behaviors like perhaps an aversion to rugs. I'd consider the following a reasonable approximation (for a space being passable): floor < 23 floor > 36 and floor < 57 floor != 87 and floor != 88 and floor != 255 terrain < 125 terrain > 168 and terrain < 200 terrain > 222 and terrain < 229 terrain > 288 and terrain 297 The disadvantage is that not only is it tedious to type and maintain, but it will also execute slowly due to the lack of short-circuit evaluation.
-
It's highly dependent on how excited I am about an assignment and how clear a mental picture I have of what I'll do to carry it out. Boring work gets deferred until the last minute, even if it's more important than the other things I work on in the meantime, indeed, this is one of my preferred techniques: pretend that I have no knowledge of actual priorities and delay boring work by spending time on more interesting but less important work. I can't be simply criticized for laziness since I am working on something that must be done. Clarity of a project can be tricky. I often do no (if it's a hobby project of my own) or very little (if it's a project actually required for work or school) work on a project if I either don't know how to proceed or I don't know of a way that I consider elegant enough. There has to be a bit of a challenge, though, or the assignment's interest value falls drastically, and it may be covered under the 'boring work' rule above. Quote: If no one answers then I will have a very strong answer. I assume you mean that you would then assume that we procrastinate a great deal, and so never got around to answering? This wouldn't really be a correct conclusion, as it would be based on the assumption that we intended to answer at all. In addition, the fact that I am answering fairly promptly (as soon as I saw the question) is actually indicative of procrastination, because it means I'm not preparing my presentation for tomorrow afternoon. Perhaps this latter interpretation is what you meant, and so a lack of responses would indicate that we, the potential respondents, procrastinate relatively little, and were all off doing more important things than posting on an internet forum.
-
Quote: Brute-forcing random numbers in hopes of a match is frankly a bit horrible (yet still better than what I did in my first version.) There was some discussion of this during testing. It turns out that it actually works passably assuming that the random number generator results are fairly well distributed; being capped at 60 iterations it will try at most 60 times, rather than the optimal 8, and has a probability of .9997 (= 1-(7/8)^60) of finding a solution in the case where there is only one free space. The method I proposed for this was: Code: ready = 0;i = 0;offset = get_ran(1,0,8); //or whatever other variable you have handy at that pointwhile(i<9 && ready==0){ if(i!=4){ x_to_place = char_loc_x(a)+(((i+offset)%9)%3)-1; y_to_place = char_loc_x(a)+(((i+offset)%9)/3)-1; if (char_on_loc(x_to_place,y_to_place) <= -1) ready = 1; } i = i + 1;} This is basically the same idea as you propose, arranged differently. (Although I don't see why you loop would execute 8 times in the worst case, it looks like it would be 9 times, since i is allowed to be in the range [0,8].)
-
To your first question: sure, assuming that you were able to upload one of the formats I used before, and if so, which? Possibly alternatively: I'd be perfectly happy to toss things in a subdirectory on my site for you, or just give you an account and sub-domain of your own, if you wanted. (That latter would assist me in catching up with Aran and Tyran at empire-building. )
-
You know what: Enraged Slith, give this file or this one a try. If your host allows you to upload one of them then things are taken care of. (And I'll make a new one for you if you want, after the bug Nioca cites above is fixed, and such other changes as need making are made.) Originally Posted By: Lilith You should probably use The Unarchiver as your unarchiver. It handles almost anything and is bloat-free. I just tried it, and it also failed. This implies that either the format or the archive is likely to blame, as suspected. (The frequent production of cmg files of late has caused me to re-examine one of my old ideas. It looks doable, although there are a couple of points I still don't know necessary details about, and I have no clue how to make a GUI program on Windows. I might start out CLI only, though, or this might be a good excuse to give Cocotron a whirl. )
-
As best I can tell, no one will be able to unless you can work with something other than RAR format. Creating RAR archives isn't very practical since Mac OS X (like, I suspect, every other OS ever made) doesn't ship with tools for handling them, and the best I could find clicking around on the internet was a limited-uses trial version of an archiver to create that format. Worse, when I tried that, either the archiver or unarchiver (A pretty recent version of Stuffit Expander) failed to preserve the resource fork on the graphics file, rendering the whole exercise pointless. Would it be possible for you to work with some other archive format like tgz or tbz, which people already have software to handle?
-
Beta received, I'll test when I'm home from work (or possibly when I get too bored at work). The cmg file didn't come through intact, so you may want to check whether it was originally.
-
It's true that you can work around it fairly simply; it just irks me that you have to waste some of your script's string constants on this when the game already maintains a set.
-
I'm not sure you've saved enough of anything here for it to be worthwhile; with 14 types of mind crystals, giving each its own state wouldn't be all that prohibitive, and if each crystal began with its own state, where it set variables for its unique data (skill name, skill number, item type), and then jumped to a common state which actually implemented the use logic, you would use only 15 states and and still have the advantage of coalescing duplicate strings and code. Then you wouldn't have the bizarre problem of not be able to allow a character to use one mind crystal while holding another. Aside: Another script call that's missing: One to write the name of a skill, specified by number, into the text buffer. The game already has a table of skill names for its own use, but there's no way provided for a script to make use of it.
-
I would be happy to help out (Mac OS). niemandcw@gmail.com
-
To go with put_boom_on_char() you'll want run_animation() rather than force_instant_terrain_redraw(), I think. You're getting funny behavior because the latter doesn't know about the subsequent frames of the animation. When the creature manages to land a blow the game engine runs the animation mechanism, so your leftover animations are getting noticed and taken care of then. Quote: On a slightly unrelated note, is there a way to determine the direction a character faces? There is a cutscene call to set the direction but nothing that returns it. There is no officially sanctioned way to do this. It is. . . possible, but not pretty, and not portable.
-
The basic idea of the script looks sound to me. I'll do some tests later to see what I can figure out. At a glance, Id suggest adding else's to the conditional tree in the section labeled '//check terrain around target' so that if you find a clear space you don't waste time checking the other possibilities, but that's a minor detail. Haste only adds a few extra AP (two right?), so I assume you're also using the bonus_ap setting in the creature definition. If I recall correctly, the Divinely Touched status also confers extra AP, so maybe that would help. do_attack() can be frustrating because it contains all of its own logic, which you'll have noticed includes a lot more than just attacking; for this purpose it might be easier to just inflict damage directly, but it seems like you've set up a situation in which do_attack() ought to get the idea of what you expect it to do. I doubt that aggression and courage are a problem since they default to 100 anyway and you're not using the built-in target selection logic, which is about the only place aggression matters.
-
Quote: Alright, I sent off a reply. Basically, the problem originates with killing someone with a missile weapon. No idea why that'd conflict with a dialogue script popping up, but it apparently does. Dang, that must be how I tricked myself into believing the problem was fixed. The first several times I tested, I killed Keria with arrows, but on the final test I used melee.
-
It's not an unreasonable thing to do; he needed to manipulate some data and he had a base of code that was already able to work with similar data. As he notes, he realizes that it was something that only he needed, and likely only need to use once, so he doesn't expect anyone else to want the modified code.
-
For submission to the CSR: yes, I think that what you describe should be correct. As far as making the scenario itself available goes, you could submit it to Spiderweb, as that is technically the official repository, but that's very slow and few designers bother. You can put it up on the Blades Forge if you don't have your own web space. The Shadow Vale Database and the TrueSite for Blades are two privately/individually operated scenario repositories, where your scenario will almost certainly be mirrored (unless you object strenuously) after you upload it somewhere else, and you could probably contact Jewels or Tyrannicus directly to ask one of them to put it up for you.
-
What exactly do you mean by 'taking prescription drugs'? Obviously the literal meaning of the phrase is having ever taken a drug which was prescribed by a doctor, but I get the impression here that the intended meaning includes 'for extended periods of time'. On a couple of occasions that I can remember when I was a child I became sick enough that my parents took me to a doctor and I was given a prescription for antibiotics for a short period of time. Whether my lifestyle is altogether healthy or particularly active is debatable. I try to eat in a sensible manner, and I'm certainly not overweight (the WHO puts me in the category of 'severe thinness', although it was funnier when they had a chart that put me in a category that was something like 'chronically undernourished'). On the other hand, I don't get a whole lot of exercise. I walk a couple of miles most days of the week, often carrying a fairly heavy backpack, but I avoid most deliberate exercise for the reasons that it is 1) mind numbingly boring and 2) unpleasantly painful.
-
All caps. Horrible accent. I conclude that Slarty is possessed by the Demon of Good Taste.
-
It's included in the official editor download from Spiderweb. (Bizarrely, the current download includes it in both pdf and MS Word format. I'd have sworn that the latter used to not be there.) In the documentation for the condition property itself Jeff gives the impression that it is mandatory, even though his own earlier examples don't include it. It also looks like he put it in for every node in his scenarios, a style mimicked by some designers, but not others; Kelandon does, but TM doesn't.
-
Your problem is, I think, that you have a couple of nodes defined twice, and in the latter definition is overwriting the earlier. Nodes 9, 51, and 57 may be affected, according to alint. EDIT: It may be worth noting that you should be able to entirely omit the condition lines for nodes which you don't want to make conditional.
-
I use a Mac and will be happy to test for you, and do graphics conversion. Email: niemandcw(at)gmail(dot)com I would second the suggestion of having at least one tester on each platform, particularly as it's just good to have several people out to spot problems. It helps that different people often have different playing styles, and may try out things that otherwise go unnoticed.
-
You are too busy to think for yourself! THAT IS WHY YOU NEED TO BUY OUR PRODUCT!
-
In the Avernum games, {1,2,3,BoA}, I tend to use the keyboard almost exclusively: arrow keys for motion, letters for rapid spell casting, and numbers for interacting with dialogs. The last wouldn't be bad to handle on a touch screen, while the first two I don't think I would like having to do without a keyboard at all. I only use the mouse/trackpad for handling items, and I loathe having to do so, although this might be an area in which a touchscreen would preform better than the alternatives. It seems to me that reworking the interface to the games to work passably well would be no simple task for Jeff to undertake.
-
Quote: I trust Life. Don't. Some element of it will figure out, or already has, how to eat you.
