Chokboyz
Member-
Posts
428 -
Joined
-
Last visited
Never
Content Type
Profiles
Forums
Blogs
Everything posted by Chokboyz
-
Originally Posted By: Celtic Minstrel ...Well, yes we can set them for already existing scenarios, when we convert them to the newer format. That's true ... I think i've not wrote any convertion code besides checking the scenario make version, so it can't implement it right now. Originally Posted By: Celtic Minstrel I think it's fine – if the designer misses a place where an infinite loop could occur, you don't want to be forced to kill the program just because you forgot to (or could not, in the case of beta testers) enter debug mode. And I display a warning message when you do it, indicating that it's probably a bad idea to continue without reloading. Ok, that's fine with me, i'll implement it. Players will take their responsabilities Edit : Implemented. Just a thoughn do you check for 'C' instead of 'c' in your 'Ctrl-C' checking ? Originally Posted By: Celtic Minstrel Uh... "if" is not a loop, and hence break does not affect it. A break statement only affects loops (for, while, do) and switch statements. Of course ... Given i've used that numerous times in the code, i really don't know what i was thinking ... Originally Posted By: Celtic Minstrel I can't do this until the Windows version uses pngs which match those of the Mac version (currently it uses BMPs, some of which don't match). I'll make some PNG for you (if i found all the graphics), but that not top priority for now. Quote: I neglected to tell you, but these were added to pixpats.png quite a while ago. I also added the ones for blue cave floor from Exile 3. Which I did... though, didn't those ones also have a 6x6 version in the grid with all the other map squares? I found them a while ago and implemented them. Originally Posted By: Celtic Minstrel Okay, so if Leave is clicked the encounter now ends? Exactly. Originally Posted By: Miramor Something I just noticed - the Mindduel issue isn't resolved in Beta 1, i.e. mindduels are still weighted very heavily in monsters' favor, even with rings of will. Ideally, I would say that a level 40 monster with level 7 mage spells should be roughly equal to a level 50 mage with 20 intelligence. As it is, the monster will win every time. You know what ? A level 40 monster (mage spells level doesn't intervente) is exactly equivalent to a level 50 mage with 20 intelligence and a Ring of WIll equipped. Pretty good guess, here In fact i didn't noticed a bracket, a level 40 monster is exactly equivalent to a level 100 mage with 20 intelligence and a Ring of Will equipped. (for information, max experience is 15000, so max level should be 130-150 depending of what traits you took). To make the balance shift in your favor, cast a few dumbfounds on the monsters before engaging in mindduel. Note that each time you win a round, the following rounds will be easier for you to win (a mindduel fight is 10 rounds). (i've just noticed that Magically Apt. doesn't give an advantage in mindduel, maybe that should be added ?) Chokboyz
-
Originally Posted By: Celtic Minstrel This really doesn't matter; new fields that we add will be initialized with a default value on loading. They won't be initialized with the value of some existing field. Yup, unfortunately there no way to set them for already existing scenarios (except by opening them and saving them with an updated editor). I thought that choosing a value we know the value would be better (some other flags were used for password encrypting so they have scenario specific values). Originally Posted By: Celtic Minstrel ...sorry, you're unsure of what? of whether we should give the player the ability to break node chains. Maybe if the debug mode is activate, but then again, since it's unprotected ... Originally Posted By: Celtic Minstrel I put a break at the end of that if block to fix that. It probably was never caught because the documentation says you shouldn't allow the party to reach a Split Party node when they're already split. (At least I think it does.) I also added a break to the preceding if statement that checked for combat mode. Are you sure it won't break out of the if loop ? Chokboyz
-
Originally Posted By: Celtic Minstrel What else besides hit points is affected? Monsters damages can be multiplied by 3/2 or 2, depending on the pc vs. difficulty level difference. I suggest we use flag_i since it was not used in the original code as well (meaning its value is 0 for all legacy scenarios). Originally Posted By: Celtic Minstrel Okay, so I went in to incorporate the changes to the Affect PC nodes (making them affect only the active PC when the party is split), and ended up doing cleanup of the code. One odd thing I noticed is that when drinking a potion, the "swallow" sound is played only if the graphic 50, 51, or 52. I've removed this check, so the sound will be played no matter what the graphic (but only if the variety is POTION). Originally Posted By: Celtic Minstrel Another odd thing in this function is in case 120 (ITEM_SPELL_MASS_SUMMONING), in the for-loop. The end condition for the for-loop is "i < get_ran(1,3,5)", which I think means a new random value is used each time the loop executes! It will work just fine as-is, but it seems pointless. I suggest removing the get_ran call to just before the loop and storing it in a variable. Originally Posted By: Celtic Minstrel In use_space, when checking for "TER_SPEC_CALL_SPECIAL_WHEN_USED", there's no return statement. Because of this, the message "Nothing to use" is printed even though something was used. I added a "return true" to the end of the if clause to fix this. Fixed. Originally Posted By: Celtic Minstrel In adj_town_look, when checking for blockage, the "Search: You find something!" messages were commented out. I uncommented them... though we need to check those if statements, because I think it's checking a Stuff Done Flag that it shouldn't check. Those lines are absent of the Windows code (seems pretty redundant, so i won't add them). SDF checks in this code are definitely to be removed. Originally Posted By: Celtic Minstrel Also in that function, there's a switch statement that prints "(Use this space ...)" if the terrain type is 22 or 23... that is, Mountains. I've removed the switch statement altogether, since it had only one case, and moved the default case directly into the else statement. The original case is still present, but now checking the terrain ability to see if it's one of the two usable types. Done. Did you change the variable terrain type to unsigned char so that it works for terrain with number > 127 ? Originally Posted By: Celtic Minstrel Additions to the list of constants Will add them shortly. Originally Posted By: Celtic Minstrel Okay, I've removed the 50 node limit. That's fine with me, but i'm not really sure about the escape key (outside of debug mode that is). Whatever the case, if such an escape key is to be implemented, it will surely be "Ctrl+C". Originally Posted By: Celtic Minstrel Isn't that more efficient? Notice that I've made a special exception for Kill/Raise Dead – it always affects current_pc_picked_in_spec_enc. Indeed. Adopted. Chokboyz Edit : in the townmode_spec() function, in the Split Party node case (193) the check if (party.stuff_done[304][0] > 0) doesn't include a return or is not followed by an else. The code so continue to run and the party can (disastrously) be split a second time.
-
Originally Posted By: Celtic Minstrel I like to begin my names with a lowercase letter. I've been using underscore-separated names mainly because the game already does so, so if you want to use an underscore-separated name that's fine by me. I used "camel case" in the dialog engine, though. Ok, so are we using adjust_difficulty ? adjust_hp (despite hp not being the only affected thing) ? Any name following that format is ok for me Originally Posted By: Celtic Minstrel I will head back to page 12 and start incorporating various fixes and small changes that are already in the Windows code. Ok, so i will slow down those fix/changes until you catch up. Maybe it's a good time to make a release ... I've noticed something odd : when resting/waiting, if a timed special happens, the rest/wait is not interrupted. Does this need to be changed ? (only monsters in sight and health diminution presently interrupt the rest/wait). Maybe it would be better to make it a preference switch ? Also, will fixing the event timer break some legacy scenarios ? (the problem is that not all the time rested (waiting is not affected) is actually checked for events ... in fact, merely the 50 first moves are checked). Chokboyz
-
Originally Posted By: Celtic Minstrel Nice and descriptive, though a little long. (I also prefer thisTypeOfName, but that's beside the point.) How about simply adjust_hp? Note that hp is not the only adjusted thing, monsters' damages are too, but adjust_hp (or AdjustHp or AdjustHP)is okay for me Originally Posted By: Celtic Minstrel Well, I was thinking something more like BoA's "add_pc_name" or whatever it's called. I'm not familiar with BoA, but i assume it's a function that insert the pc name in a string ? Originally Posted By: Celtic Minstrel Your suggestion would work, of course, but it's a C solution; I'd prefer a C++ solution. Indeed, that's obviously C thinking ... There's should be a way to do so in C++ (given that you're converting the code to it), but i'm not skilled in C++ enough to know more than that. Originally Posted By: Celtic Minstrel It would likely involve using a lot more than just 0-3. Perhaps the following breakdown of PSD[304][???] would work: Did I miss anything? Seems fine to me. And there're unused too. I think there's also a variable called active_pc that may need to be checked (it's the same as when a pc is soloing). Chokboyz
-
Originally Posted By: Celtic Minstrel I was thinking more along the lines of how the field would be used, actually. Click to reveal.. (code) short difficulty_adjust() { short i, j = 0; short to_return = 1; [color:#339999 if(scenario.variable == 0) return 1; for (i = 0; i < 6; i++) if (adven.isAlive()) j += adven.level; if ((scenario.difficulty <= 0) && (j >= 60)) to_return++; if ((scenario.difficulty <= 1) && (j >= 130)) to_return++; if ((scenario.difficulty <= 2) && (j >= 210)) to_return++; return to_return; } [/color] Variable would be set in the Scenario Editor, in the Scenario Details. Originally Posted By: Celtic Minstrel I was thinking something logarithmic, actually. I've been thinking using logarithmic too, but my goal was to let the low values alone and only tweak the high ones. Both approaches are valids, only results differs. If the community find the prices really ridiculous (I think Thuryl was saying something like that) then your approach may be better ... Originally Posted By: Celtic Minstrel It sounds rather confusing, but perhaps it works; I'll give it some thought. It's rather simple : do as usual until 1400 is reached, then augment the price much slower (and linearly). Originally Posted By: Celtic Minstrel Actually, we don't really. We only need to agree on the name of the variable. Wow ... I don't know ... apply_difficulty_adjust ? Originally Posted By: Celtic Minstrel Assuming health is a signed variable, I think that check will always be true. I don't know what type the compiler/program use to make the test but it works (i'd bet it use an int) ... Maybe i should add a unsigned short, just to be sure ? Originally Posted By: Celtic Minstrel Good one. Hard to do though. It would be pretty easy to do a Display Small Message node which uses a player's name, though; maybe that's what you meant. A possible way would be to check if the character '<' is read then to copy all following characters, until '>' is reached, into an array. Then string compare the array and insert the corresponding string. Very inelegant, but should works Originally Posted By: Celtic Minstrel Part two is planned (I intend to make a way for an NPC to join the party as a PC). Part 1 was not really considered, but it's a good idea – more complex party splitting could be useful. I'll think about how that might be done without changing too much about the party-splitting mechanism. Splitting would involve tweaking the PSD[304][0-3] and some rewritting (active_pc maybe ?), changing the adventurers main status may already more or less work if i'm not mistaken. Making an NPC join the party sounds like filling a PC structure (that is if a slot is available) Chokboyz
-
Originally Posted By: The Almighty Doer of Stuff I think you miscalculated the potential max HP. It's actually 2500 * 4 (because if you're at Very High level in a Low Level scenario, it's multiplied by 4, right?) * 3 (for Guard) = 30000, plus Absorb Spells and Draining Touch, right? Damn, and to think i was the one that mentioned the four times multiplier ... Ok, i'll make a safety check for Absorb Spells. By the way, the Draining Touch ability (despite saying "Drains life !") only drains XP. Originally Posted By: The Almighty Doer of Stuff It's necessary to allow a switch because it wreaks havoc with game balance in ways that designers can't account for. Many scenarios, including At The Gallows and others I believe, set the difficulty to Very High even though they're meant for beginner-level parties, just so the HP won't multiply and make the game extremely difficult to impossible. No problem, we only need to agree on what variable to use. Chokboyz Edit : safety check for Absorb Spell done. Tested and work. Originally Posted By: Example of code if (((dam_type == 1) || (dam_type == 3) || (dam_type == 5)) && (victim->m_d.spec_skill == 26)) { if((victim->m_d.health + how_much) < 32767) victim->m_d.health += how_much; ASB(" Magic absorbed."); return FALSE; } (note that there's two occurences of the Absorb Spells check in the code) Edit 2 : Err, seems like the Protection from Acid check is done with the wrong ability number (hasAbilEquip(122) - Spell : Stinking Cloud), should be replaced by 36. There's also a check for a non-existing 67 object in the handle_disease() function. I think it should read 62 (Protection from Disease).
-
Originally Posted By: Celtic Minstrel This could be complicated. Currently, HP doubling occurs when the party level is greater than the difficulty level's range of party levels, right? So, what's the reason for trying to evade HP doubling by raising the difficulty level? It's a little more complicated : HP can be tripled or multiplied by four and the damage roll of the monster is also affected (see difficulty_adjust() in the code). Originally Posted By: Celtic Minstrel We should do something about that – for example, check to be sure that the health is < 65535 before doing anything. Then, check that the health to gain is < 65535 - health, and if it isn't, just set the health to 65535. Should we bother ? The maximum health a monster can have is 15000 (2500 * 2 *3), that leave 32 767 - 15000 = 17767 hp. (health is signed because you die when your health is less than 0). Let's say your maximum damaging spell does 200 damage (good roll on kill) then you would have to cast it 17767/200 ~ 88 times to overflow the variable. Then again, it's a simple check to implement, so why not ... Originally Posted By: Celtic Minstrel Designer switch, but how? We need to decide that first. For legacy scenario, one of the now unused variable, set by a led in the Scenario Editor. For future scenario, maybe a field in the scenario structure ? Originally Posted By: Celtic Minstrel No no no no no. Don't just reuse an unused variable without changing its name! Who said i wasn't changing the name ? Originally Posted By: Celtic Minstrel Sorry, what bug? None. I've made changes in description rectangles to make the (0,0) a legit rectangle (all deleted rectangles were previously put there, giving a Rectangle X description in the game if accessed; deleted rectangles now have coordinates ((-1,-1),(-1,-1))). A side effect is that already present rectangles (i.e in legacy scenarios) are now drawn in the Scenario Editor. These changes are documented in the changelog. ADoS was pesting against those who don't read the README file and I was agreeing with him by saying that if some people doesn't read documentation, we'll surely have some report of "Rectangles wrongly appearing in corner of the town/outdoors when loading legacy scenarios" Chokboyz Edit : Here's a (very) simple proposition of a corrected augment weapon calculation formula : Originally Posted By: Code if(adven[pc_num].items[item_num].value <=1400) val_to_place = max(aug_cost[shop_identify_cost] * 100,adven[pc_num].items[item_num].value * (5 + aug_cost[shop_identify_cost]));//original behavior else val_to_place = 1400 * (5 + aug_cost[shop_identify_cost]) + (30000 - 1400 * (5 + aug_cost[shop_identify_cost]))* (adven[pc_num].items[item_num].value - 1400)/8600;//really smoothen the price curve The (really simple) idea used here is to let the program calculate the price as usual for the 1400 first gold pieces then to the add a fraction of the remaining (30000 - 1400 * multiplier) gold pieces depending of how "far" the item value is from the max value (10000). The value 1400 is used because the highest multiplier is 20 (and 1500*20 = 30000, so let's use 1400). Weapons with prices more than 1400 are few (Steel Greatsword, Steel Great Mace, Steel Halberd, ...), but this calculation method will give them about the same price of enchantement. Example : Steel Halberd => flaming : 28139, +1 : 13813 Value : 2000 Steel Greatsword => flaming : 28093, +1 : 13409 Value : 1800 Steel Great Mace => flaming : 28069, +1 : 13206 Value : 1700 If the maximum value (10000) is reached, then the enchantement cost 30000.
-
Originally Posted By: The Almighty Doer of Stuff I think implementing a designer switch would probably be best. We can use a (now unused) flag_x variable to give the designer the option to do so. That until the new scenario format is achieved, implemented and functional (and even, that can always be used for legacy scenario, if a player gets fed up with the difficulty adjustment). Originally Posted By: The Almighty Doer of Stuff usually those who don't read the READ ME!!!!!11!111argh files, but I won't go into that again right now Agreed, readme should be read. That or we'll hear about a "description rectangle bug" in the next release of Classic BoE. Quote: The Almighty Doer of StuffWhile we're on that subject, though, are there plans to redo the scenario difficulty labels BoA-style Which is ? Level X-Y + Rating ? I'm not very familiar with Blades of Avernum ... Chokboyz
-
Originally Posted By: The Almighty Doer of Stuff I think we should leave Flaming Weapon with unblockable damage for compatibility reasons, but weren't we going to allow the designer to choose the bonus damage type anyway? Ok, i thing we'll leave it in state until choosing the bonus damage is implemented. Originally Posted By: The Almighty Doer of Stuff Another thing I thought of: Have we increased the maximum stats designers can give monsters yet? I don't know if this is an issue, but I just think we should be sure that bugs won't occur when HP doubles due to party level or increases due to Guard and absorbing abilities. If we're sure, that's great. If not, we should become sure. That's an excellent question. As far as i know, we've not increased maximum stats a designer can give to a monster. There's can't be an overflow with the current max value (2500 max base, *2 for level adjustment, *3 for guard property = 15000) except if you spend your day casting kill or whatever hits hard on a magic absorbant monster (which will end up killing it, his health becoming negative). Originally Posted By: The Almighty Doer of Stuff Speaking of the HP doubling: I don't know if this has already been done, but designers should be able to disable HP doubling if they want, or perhaps set the doubling to occur only at levels set by the designer. I don't know why you'd want to set HP doubling, since it's pretty much one of the most hated "features" of BoE by designers and players alike, but at least it should be possible to disable it. The two things affected by the Difficulty level are : health * 2, as you mentioned. But the health can also be multiplied by 3 or 4, depending on the sum of alive pc level and the scenario difficulty). monsters damage roll * (3/2) or * 2 (depending on the sum of alive pc level and the scenario difficulty) It is extremely easy to remove that "feature", but how should we do it ? Do a game switch (user controlled) ? Do a designer switch ? Or simply remove it ? (legacy compatibility ?) Or we can leave it alone. Chokboyz
-
Originally Posted By: Celtic Minstrel Hmm, will this have the same effect apart from damage type? In particular, would it differ from Exile 3? No, it will behaves like in Exile 3, minus the two fireball shots (there's only one). The damages may be higher, though (if i remember correctly, the exploding arrows were pretty weak in Exile 3). Originally Posted By: Celtic Minstrel Multiply by 10 instead of 20, maybe? That would put your Magic Halberd at 40000, more than currently possible to carry but still within the bounds of an unsigned short. Of course, a weapons with a value of 10000 would still have a problem. In fact, any weapon with a value over about 6000 would have a problem. So we could multiply by 5 instead. That would involve modifying all the other multipliers (short aug_cost[10] = {4,7,10,8, 15,15,10, 0,0,0};) as well. So, ... Originally Posted By: Celtic Minstrel Or we could come up with something different such that the enchantment cost increases non-linearly with the weapon value. I think i'll take this approach : virtually leaving the first prices untounched and asymptotically (for value -> 10000) converge towards 30000 (or whatever). Originally Posted By: Celtic Minstrel That should be changed, maybe? Listed as a bug, but is it ? Nonetheless, that would change the balance of the game, so we need more opinions before changing anything Chokboyz
-
Originally Posted By: Ahbleza It seems to me the ability to bypass the parameters of the Editor is a function of the Author, not re-programming. True, but that doesn't solve the augment weapon problem : for the program the only gold available is the one right under the party screen. I agree with you though, the amount of gold party can carry seems right at 30000. Chokboyz
-
Originally Posted By: Celtic Minstrel As for Exploding Missile, I think it should be fire damage. The idea of Exploding missile is, I think, that it creates a fireball at its target. (Or, we could allow the designer to specify the type of damage using an extra field.) Yup, so i'm fixing the bladbase file (i'd put a 5 ability strength). Originally Posted By: Celtic Minstrel I think I've already unsigned the gold variable. So do I. The signed variable used in the calculation is a local one. Originally Posted By: Celtic Minstrel I'm not sure about having a maximum price though.[...] We could double the maximum gold (30000 -> 60000) if it helps. Simplyfing a little, the enchantment cost is 20 times the weapon value. So enchanting a Magic Halberd (value 4000) is already costing 80000 (which is too much for an unsigned short) and value goes from 0 to 10000 ... So, either we have a maximum price (let's say 30000, the maximum gold the party can have) or we prevent the player from enchanting some weapons. Originally Posted By: Celtic Minstrel Would it be a major problem to simply redo the calculation of enchantment costs so that it never exceeds the maximum price? Originally Posted By: Thuryl This would be a major game balance change, although admittedly enchantment costs were pretty ridiculous to begin with. Yeah, that would be quite a change ... That would bypass the previous maximum price problem, though. What would the new prices be, i've no idea ... Originally Posted By: Thuryl The Flaming Weapon enchantment in particular adds about 10-15 points of unblockable damage to each hit (in the Mac version, at least; I think it might be fire damage in the Windows version, but I'm not sure) I'm pretty sure it's unblockable in the Windows version too. Chokboyz
-
"No More Text Slots" even though I have room
Chokboyz replied to lampshade's topic in Blades of Exile
Originally Posted By: lampshade Yeah, leaves a * (which I remove) Removing the "*" set a new message. Just leave it in the state it is after right-clicking on it. Chokboyz -
"No More Text Slots" even though I have room
Chokboyz replied to lampshade's topic in Blades of Exile
Does that happens in a town ? Outdoor ? Called via a special node ? (which one ?) Did you right-click (or Ctrl-Click) the slots you want to delete ? Chokboyz -
Some progress log : I've made various corrections to the Scenario Editor info text (switched teleport/electricity SFX value, Cleanse Rectangle sd1, etc) and changed the force place monster function to preferably flush a summoned monster in case flushing a monster is needed. I'm actually on two things that i need the community opinion on : Quote: Depending on the ability strength of a missile with the exploding ability, it will do different damage types. This is very strange. True. Trivial, but does that need fixing ? What to make the default behavior ? Edit : Seems like the problem is that the default value for the exploding arrow is 25 in the bladbase.exs. When the ability strength is between 0 and 10, the damage is fire type. So only the bladbase would need to be fixed. Quote: To enhance a steel wave blade with the flaming weapon ability, it will cost 10000 gold, but with the steel halberd (Which is worth a lot more) itonly costs 1500 gold! Worst then that, the val_to_place variable being signed, the game display -25xxx as a price and effectively give the player 25xxx gold for having the halberd enchanted. The maximum money is 30000, so unsigning the variable may suffice, but a maximum price to pay (i.e if greater than X, then X is the price) is another option. (given that the item value is used in the calculation formula, having a max price is a good idea nonetheless, for magic halberg value is 4000 ...). Chokboyz
-
Originally Posted By: Celtic Minstrel ...Okay, this is odd. Apparently when I initialize an istringstream, an unrelated variable from an outer scope gets set to a seemingly random value. I'm not familiar with the whole istringstream class but that sounds like a memory overflow ... How do you initialize your stream ? Chokboyz
-
Originally Posted By: Miramor Chokboyz: Sure thing. Well, that was one hell of a bug (and back luck) : for some reasons TM decides that when dying the third form calls a node that destroy it (actually freeing its monster slot (10)), then the following node force place the blue form. All of that is called by the kill_monsters() funciton. What the force_place() function do is to ensure that a free spot is availaible to place the monster or make one (nice infinite loop glitch here : try putting 60 monsters with life flags in a large town and force place a monster ... ), the previous monster slot being free the function then proceed to effectively place the monster ... Here is the trick, the third pink form slot being free, if there's enough monsters (Disco Joe will mass summoning enough for it to happens) to fill the gap left by the previous dying form, the first availaible slot will be 10, the one the Destroy Monster Node just had freed. Unfortunately, that means that the new monster structure will be copied over the old one; given that the kill_monster() function is still not finished that's asking for trouble. And in fact, the thing that is checked right after the Special on Death nodes chain is if a global scenario node is to be called ... The monster 10 now being the blue form, it indeed has one (255) : the "Unfortunately you die !" sequence ... That's really improbable, but that's what happens This can also happens in the original BoE. There's no fix for that, because the Destroy Monster node shouldn't be called at all (don't hesitate to tell me, if i'm mistaken) : it's a scenario bug ... Possible Workarounds : - Refrain from summoning (and pray that Disco Joe keeps on tossing Firestorms and Divine Thuds) - Kill the two and third forms in the same round (i've seen NPC do that, especially when hasted ) - Have some NPC killed - Open the scenario in the Scenario Editor, go to town 28 and change the town special 54 to No Special (or whatever that does nothing), save and redo the encounter (if you're already in the Nuclear Bomb town, that you won't work). - Persist on trying, one moment or another the free slot won't be 10 (the thing is not to summon anything after the second pink is dead. Note that if Disco Joe cast Major Haste, then it will likely be ok, given that Bladesman Wasazore will have 24 AP that is often enough to single-hand two pink forms). Hope it helps, Chokboyz
-
Originally Posted By: Celtic Minstrel Why not just zero the array before populating it? For the moment, a simple memset would handle that quite well; in fact, my monster class doesn't have any virtual methods, so it would probably be safe even with that. The array is populate each time a non-saved town is entered (only the four last towns are recorded in the savefile) and if the monster number x is of type 0 (empty) in the entered town, the corresponding index structure is left alone except for the fields mentioned. Resetting the whole struct to a "blank" one (0 for most field, -1 for some) can be done, but that has to be done each time a new town is entered. I think we can left it the way it is, because the 0 type assure that the monster won't be accessed by the game (the only forgotten case was Place Town Encounter). Also, i've updated the Scenario Editor "Delete Monster" function so that the fields checked in the game are cleaned (previously the town limit could be hit even without having the max monsters because, for example, spec_enc_code or life_flag were not set to 0 (-1 for the latter).) That should ensure that any future town creatures array is clean. Chokboyz Edit : Changed the way the town room/outdoor info rectangles were handled by the Scenario Editor ; the 16 rectangles are now initialized to coordinates((-1,-1),(-1,-1)), freeing the 0 coordinate and fixing the rectangle X description appearing at (0,0). Note that, for legacy scenario, the rectangles being saved in the scenario file, the "Rectangle X" description will always appears at (0,0) because the rectangles are saved at (0,0) (can be fixed by opening the scenario and deleting the rectangles via the menus). A really trivial enhancement, but it's done
-
Originally Posted By: The Almighty Doer of Stuff I used Place Town Encounter. I started the scenario over after the bug occurred and lost the original, unfortunately, so it can't be used for testing purposes. EDIT: However, I can say that I created the original idol, set its town encounter number, set up the node that placed it, and then moved the whole thing over to the left and then deleted the original. It occurred somewhere in that process, but I've been unable to replicate it. Ok, sounds like it was exactly the previous situation happening (deleted monsters, but memory not cleaned, and called Place Town Encounter). Nonetheless, I've been able to test the fix with my own made scenario and it works ... (and i have been able to reproduce empties appearing in Turtle Whipper's General Store in the Inn of Blades scenario that you mentionned : begin the scenario, goes to the docks, exit and goes to the marketplace, goes to Mage Xavier and make the demon appears (take the wand), goes to Turtle Whipper's General Shop ... wait, what's those ?!?) Originally Posted By: Miramor Nope, in my case it was triggered when the second to last form was killed. The final blue form was never killed, and I was definitely not in debug mode. Unfortunately, i haven't been able to reproduce that. Leaving the NPC do the dirty work, i've been able to finish the encounter several times. Just to be safe : note that there's only two forms : the red one that is summoned three times (after killing it two times) and the blue/red mix that is the invulnerable one. And you have only 100 moves to kill the three first "pink ultimate weapon" and escape before the bomb goes off. If the behavior persist Ok, i've been able to experience it, so can you send me a copy of your savefile ? (from preliminary inspection, don't let an NPC deal the killing blow to the third pink form to avoid the glitch) Update : i've been able to experience the glitch with the original version of BoE ... (i think it's the mix of a node destroying the very same monster that has died and the fact that an NPC was in the middle of hitting it when it died that provokes the glitch, but i need some more testing). Chokboyz
-
Originally Posted By: The Almighty Doer of Stuff I agree. While this will "break" TM's scenarios, it will probably break them in a good way. I may have done the same thing in Terror From The Park, but I'm not sure. Even if I did, it's not a problem if the behavior is removed. Ok, it's fixed ... I've also found (one of the reason, i think) why empties appears. When entering in a town that is not in memory, the program populate the c_town.monst.dudes array : if the monster number is 0 (i.e no monster), the time_flag, number, active and m_loc.x field are the only one to be set to 0 (80 for m_loc.x). Unfortunately, that leaves a lot of field in the previous state they were in the memory; amongst others monst_start.spec_enc_code. So, for example, if you visited a town with monster 3 appearing on event 1 and you enter a new town with monster 3 being 0 (no monster); if the event 1 happens in the new town, an empty will appear (at the first monster start location coordinates). Setting spec_enc_code to 0 when loading town in memory fix the problem. I've also updated the scenario editor to set time_flag and spec_enc_code to 0 when deleting a monster, effectively cleaning the memory a bit. Chokboyz Edit : for information, did you use Town Encounters or Place Monster for the idol in the Killing Cave, ADoS (when the problem appears) ?
-
Originally Posted By: Miramor Huh... Anyone know what causes the "Unfortunately you die!" special node to be wrongly triggered in Bandits 2? If anyone can tell me what is going on there, that will be my first bug report... [...] It went off when the Ultimate Weapon's first form died - when Katothen opened up a way out of Deacon's lair and the invulnerable blue second form appeared. One of my PCs was wearing Lenin's pendant, so I'm pretty sure this wasn't supposed to happen. In your case, the "Unfortunately you die!" (and again ... and again ...) is triggered if the blue form of the Ultimate Weapon is killed. Being Invulnerable and having 2500 HP, 50 armor and 40 skill/level, i'd say the only possible way to kill it is either to use the Debug Kill command or cast a Wound spell on it while being in debug mode ... If you did either that's the cause of the problem (i.e TM not wanting people to play his scenario in debug mode, killing everything on sight ). (note that using the Debug Kill command to kill the first three red forms may as well kill the blue form depending on how the special chain is done) As far as i can tell, the Lenin's Pendant is only used to bypass the barriers right after the stairs at the beginning of the Lair of the Red Star. I was able to play the encounter and escape without any problem. On another note, it is actually possible to kill the party (with Kill nodes) then to End the Scenario in the same encounter, giving the player the possibility to save the party before giving the quit/restart/reload screen. I think that should be fixed (don't end the scenario if the party is dead, only give the quit/restart/reload screen). Chokboyz
-
My Scenario: Contents of Pandora's Box. Preview thread
Chokboyz replied to lampshade's topic in Blades of Exile
Originally Posted By: lampshade Chokboyz your binaries are A++ quality Wow ... Thanks (but don't forget Ormus and Ishad Nha) I've implemented some important changes in the current version of the code (mainly porting the file IO functions of the scenario editor to 32 bits, meaning the scenario editor should behaves better with newer Windows OS, and changing the way graphic, are drawn to remove the use of a storage sheet, meaning a faster game, on-the-fly mac/windows graphic switching, no more graphical limitation, possible graphic corruption fixed). I've uploaded an updated Scenario Editor executable in the repository if anyone wants to test it further (mainly file IO functions : load, save, new scenario, ...). I'm actually testing the new drawing method : if i can complete the scenario i'm in (Emulation) without any graphical glitch appearing and if no critical bug appears in the Scenario Editor, i'll release Classic BoE beta 1.1. That said, i'll stop hijacking your scenario thread Chokboyz -
My Scenario: Contents of Pandora's Box. Preview thread
Chokboyz replied to lampshade's topic in Blades of Exile
Originally Posted By: Celtic Minstrel Hmm, is this a case of "speaking someone's name summons them"? I haven't seen Chokboyz for days, and then I mention his name and BOOM! there he is. *Appears out of nowhere* Who calls my name ? It's simpler than that : i check the board everyday, but log only when i've something to post To lampshade : i've found this old post of yours : http://www.ironycentral.com/forum/ubbthr...true#Post114792, which, i think, pretty describe the problem you were having with the scenario editor. I've so far, never seen this problem happens (even when following your step-by-step "crash-course"). From the error numbers you had in the old post, the crash occured while opening the scenario file (error num 12 at the very beginning of the save function, so the scenario file was, somehow, already wacky ... probably from a previous faulty save) and while copying the dummy scenario file to the scenario file (it's the way the scenario is saved : first in a dummy then copied into the scenario file). So, in both case, the scenario file was in bad shape when the save function was called (and yes, the editor could be the culprit ). If you (or anyone) ever have some time to spare, could you test the current version of the scenario editor (i've uploaded it in the download section of the repository) to see if such things happens again (no luck on my side). On a larger scale, if anyone feels like doing some beta-testing, i will happily upload the current build of the game executable (graphic drawing functions changed, need testing from other people). Report any bug in the compiled suggestion list thread or directly to the issue pages of the repository. Thanks, Chokboyz -
My Scenario: Contents of Pandora's Box. Preview thread
Chokboyz replied to lampshade's topic in Blades of Exile
Originally Posted By: lampshade Chokboyz I'll use your stuff when it goes official; I don't feel like risking my precious scenario. I can understand losing your work is quite scaring Just so you know, the "beta" status is a purely arbitrary flag i've given to the current release, as it's nothing more than a bug-fixed original BoE executable (ok, it's also adapted to work on modern 32 bits Windows version). Apart from that, feel free to give Classic BoE a try (put it on a separate folder) and report any bug found here ... Feedback is always appreciated Chokboyz
