Jump to content

Chokboyz

Member
  • Posts

    428
  • Joined

  • Last visited

    Never

Everything posted by Chokboyz

  1. Originally Posted By: The Almighty Doer of Stuff although some testing couldn't hurt. Yup, moreso when it reveals a bug : I'll fix that. Thanks, Chokboyz Edit : it's done.
  2. Originally Posted By: The Almighty Doer of Stuff Thuryl helped out, using his extensive knowledge (far more extensive than mine, anyway) of what has been done in legacy scenarios. That seems to have been helpful in determining whether changing various behaviors would break legacy scenarios. Yup, definitely Thuryl ... Originally Posted By: The Almighty Doer of Stuff Maybe once the new scenario format is set up and stable, we can try running a publicity campaign. I tried plugging it a few times on the FSM Discussion Board, but unfortunately I seem to have been ignored. Even without the new format, i'm sure people would enjoy playing BoE (after all it's a good game and there's quality scenarios out there ... Some will have to overcome the "OMG it's 2D !!!" factor though). Once i've removed the (apparently dreadful) "Beta" flag, people will have a version to fiddle with while waiting for the big one. A game with a bunch of playable scenarios, the possibility of creating your own and running on modern OS for under 4Mo of download would certainly interest some people. Oh, did i mention it was free and open source ? Given the download counters for both Classic BoE (Beta 1 and 2) and the Mac release, at least some people seems to be interested (or there's a troll that keep on downloading the same files over and over). And we don't have a Linux release for now ... Concerning publicity, i've only found one link (and in the comments of a post) to the Google Code page, not counting Irony Central. But it don't think it's a problem for now Chokboyz
  3. Originally Posted By: Celtic Minstrel So, we just need to document it then. At a minimum, say that the experience given is adjusted based on the level. Right I've finished implementing (and testing) the timed specials queue handling procedure and it's working like a charm (even made a stairway node kicks in right after the Have a Rest node without any problem ...) So, the timer issue should now be mostly ok ... (i've modified the special_increase_age() function a bit, so that every timed special can be triggered via the queue with minimum coding effort, should the need ever arise ...) Chokboyz
  4. Originally Posted By: The Almighty Doer of Stuff Anyway, I found an actual bug, in the Character Editor. The Character Editor allows you to make Spell Points negative. I don't know about other stats. What do you mean ? Does it allows you to input negative numbers or doing negative spells points appears out of nowhere when using the Character Editor ? Originally Posted By: The Almighty Doer of Stuff I found another oddity, that was present since the original BoE. The Affect Experience node gives 150% of the experience you tell it to give, it seems. Backwards compatibility needs to be preserved, of course, but for the future perhaps the node should be made more transparent. That's because the xp given is adjusted by being multiplied by the value at index = level / 2 in the following array : xp_percent[30] = {150,120,100,90,80,70,60,50,50,50,45,40,40,40,40,35,30,25,23,20,15,15,15,15,15,15,15,15,15,15}; Also, what about your windowed vs fullscreen when clicking ok in preference bug ? Chokboyz
  5. Originally Posted By: Celtic Minstrel So really, that's a bug that affects 90% of nodes. What bug, it's an undocumented feature Chokboyz
  6. Just to be sure : the number entered is not the one read in the town text section ... In fact, if the number x is entered, the town text x + 20 is loaded (that's because the first twenty strings are reserved for town name and rectangles description). Try putting your message number - 20 in place of the message number and see if it works ... Chokboyz
  7. Excellent idea ... I assume the Mac and Windows documentation is the same, so we would need only one copy for both version (i'll make a specific copy for the last version of Classic BoE, i.e right before moving to code refactoring/changes, with compatibility switches, buggy scenarios/workarounds, etc ...). Both version will need to behave the same way though (but i'm sure they will in the end ). If i find time i'll check the current copy. Chokboyz
  8. Originally Posted By: Celtic Minstrel Okay, I think you're right. Let's do this after running the special in the queue: Code: univ.party.age = max(univ.party.age,store_time); No problem Originally Posted By: Celtic Minstrel By the way, we should use a long long for this since age is a long long now. The age is still a long type in my version of the code. Won't converting it to long long break the save format ? Chokboyz
  9. Originally Posted By: Celtic Minstrel Look at my code – you're missing about three members. I had not realized you had already such a structure, i'll complete it Originally Posted By: Celtic Minstrel Hmm, I do see what you mean. You're saying that a Change Time node should be swallowed up by the timer if it executes during it, while my version effectively extends the timer. Isn't the purpose of storing the party.age the timer is supposed to trigger, to make it behaves as a real time triggering ? Then why would it extend the party.age if the whole timed event happened during the rested time ? It doesn't happens after resting, it happens while resting ... Or am i missing something ? Of course, if the timed event length is greater then the party.age at the end of the rest, the party.age should be increased accordingly. Chokboyz
  10. Originally Posted By: Celtic Minstrel I've implemented it, Ok, so will i ... Edit : it's done. Originally Posted By: Celtic Minstrel and you've misattributed that quote. I guess that's why one shouldn't quote someone already quoted on the quoted post (yeah !) ... Chokboyz
  11. Originally Posted By: Celtic Minstrel Oh, you're saying the Have A Rest node used to trigger timers, but you changed that? Or it didn't, and you're thinking maybe it should? The second one Originally Posted By: Niemand This does make the code tied to the timer think that it wasn't delayed, by why is that a good thing? If it cares about the time at all, shouldn't it be given the actual time, not a false time in the past? Basically, if given the actual, delayed time, it's possible to write a little more code (add a few more nodes) in theory to correct for the delay, whereas doing so is impossible if the time is always reported exactly as the expected time whether or not such is true. While i agree not delaying things would be nice, it's in practice quite hard to achieve, as in the current state of the code, stacking node chains is not possible (cf the special_in_progress variable). Concerning the end of the quote, the actual time is used for the delayed node : the triggering time is stored in a member of the pending_special_type struct and the party.age is temporary rewind to the triggering time for the queued special to take place. Originally Posted By: Niemand I do agree that consolidating everything into a queue is the natural way to handle timers in general. As a matter of fact, if all timers were always in a priority queue, with the priority being how soon the timer should next fire, the entire operation of firing timers is very elegant: after advancing time, check the front of the queue to find out if the timer there fires. If so, run the associated nodes, and then repeat until the front most timer isn't ready to fire. (This may be what you were saying already, so sorry if I'm being redundant.) Unfortunately, this real-time trigger firing method would work only if the timed special doesn't happens while a node chain is running (again, the case of "Have a Rest" node). Apart from that, it's indeed a rather elegant solution To Celtic Minstrel : i've changed the special_queue from short [20] to pending_special_type [20] where the latter is a structure with two members (short queued_special; long trigger_time). I will try to implement the queue solution, but i disagree with your code : Quote: long long store_time = univ.party.age; univ.party.age = special_queue.trigger_time; // Call run_special() with the other data from special_queue (which is a pending_special_type struct) long long change_time = univ.party.age - special_queue.trigger_time; univ.party.age = store_time + change_time; For sake of simplicity, let's say party.age is 0. Suppose that the party triggers a "Have a Rest" node that makes them rest 50 (Time Units). During the rest, after 10 T.U (special_queue.trigger_time = 10), a timed trigger fires in and is placed in the queue. After the rest ends (party.age = 50 = store time ), the timed trigger is processed. Suppose now that a "Change time" or "Have a Rest" node is called by the timer node chain, and 20 T.U is waited. After the timer node chain ended, change_time = 20 (= current party.age (30) - trigger_time (10)), so party.age is set to 70, which is wrong because the timer node chains took place within the 50 T.U of the first Rest node (timer chain ended at 30 T.U). I would replace the two last lines with if(party.age < store_time) party.age = store_time; Hope i'm not mistaken, Chokboyz
  12. Originally Posted By: The Almighty Doer of Stuff Just a minor thing regarding dialogue: If you Ask About... "name", "buy", or "bye", you get the standard Don't Know response, rather than the Name message, the talk node for "purc", and ending the conversation, respectively, as they should be (or I think they should be, maybe there's a reason for this). I know that asking about "job" or "work" will bring up the Job response, and asking about "look" will bring up the Look response. There was a typo in handle_talk_event() preventing name from working (name was spelled nama), that has been fixed. I've also added the "buy" and "bye" keywords (which were not in the original BoE if i'm not mistaken). Originally Posted By: The Almighty Doer of Stuff Actually, now that I think of it, perhaps the "Ask About..." button could be replaced with plain text "Ask about..." and a text entry field, eliminating the dialog box that pops up and allowing for easier keyboard asking, like in Exile 1 and 2. I always find myself trying to ask about things that way and accidentally choosing Name by pressing N when what I want is to ask about something starting with N. Perhaps the one-letter shortcuts to the buttons could be changed to entering the one letter in the field and hitting enter instead. I think the convenience of not having to click the Ask About button would outweigh the convenience of having the standard button keyboard shortcuts, as I imagine the Ask About button is used far more often than the shortcuts (at least for me. Before I got used to the E1/E2 system, I always clicked on the buttons.) That's definitely an idea. Don't worry about the shortcuts, the keyboard input won't trigger anything if the focus is on the edit box ... Chokboyz
  13. Originally Posted By: The Almighty Doer of Stuff Also, weren't Jeff Vogel's scenarios going to be excluded from the Custom Scenarios list? They still appear to be there. Hum, no i haven't planned to do that ... Since an infinite (read depending on your available memory) number of scenario can now be listed, it doesn't matter if the original scenario are redundantly listed in the custom scenario (and the info given is not the same in the "Start Scenario" dialog and the custom one). But, if you want really want it to be implemented, it would take about 2 lines of code Chokboyz
  14. Originally Posted By: Celtic Minstrel Let's reserve this for a dedicated "Mode Check?" node. No problem. Originally Posted By: Celtic Minstrel So if no time passes, how would a timer get triggered? For now, no timers are triggered by Have a Rest nodes, for the previously mentioned reasons. I thought you were speaking about the original behavior of the Have a Rest node (by the way, Outdoor and Inn resting skips a large portion of the time actually rested in the original version). Chokboyz
  15. Originally Posted By: Celtic Minstrel At first I was against accepting stairways in combat, but after some thought I changed my mind. However, I'm now wondering if it would be better to not end combat mode in this situation (at least from the player's viewpoint; this could also be achieved by exiting combat, moving the party, and then re-entering combat). I've just finished coding (and testing) the combat mode stairway node and i've added re-entering combat. Originally Posted By: Celtic Minstrel So, the Have a Rest node actually is implemented in the same way as the Rest button outdoors and the inn? As in, it passes time for so long, then sets time? Exact, except it just set the time (no time passes) and health the party. Originally Posted By: Celtic Minstrel I believe the current code would prevent the timer from triggering, because if run_special() is called while a special is being executed, it skips it. However, I think it might be cleaner to delay the timer to trigger after the node sequence containing a Rest node terminates. There is a special queue already in the code (it's only used for entering and leaving town in the original code), and I have altered it in such a way that I think it could support this. That's an excellent idea and i will see how i can implement this Originally Posted By: The Almighty Doer of Stuff 1) The Spiderweb Software logo screen when you start BoE no longer plays the sound. The splash screen with the bald guy still plays the music, but I believe the Spidweb logo used to play the sound that plays when you enter a darkened town. Not really important, but just noticing. Readded. Originally Posted By: The Almighty Doer of Stuff 3) In the scenario editor, when you load a new town, it automatically enters the Edit Town Terrain screen. This is inconvenient if you want to edit dialogue. Changed to only loading. Chokboyz
  16. Originally Posted By: Niemand For the first, it seems to me that your suggested method of dealing with combat mode sounds like a good idea, as it would make the overall behavior more uniform, assuming that doing so doesn't involve overly great technical difficulty. I thought as much, so i've began to include the combat mode (i turned to be harder than i thought, but i should make it). I'm also thinking about putting a check on a given variable (pic/SDF_1/SDF_2) to activate combat-active Stairway nodes ... Originally Posted By: Niemand The second is much tougher, You summed up pretty good the different options available. I'm leaving that alone for the moment, as i/we need some more thinking on that before deciding ... Originally Posted By: The Almighty Doer of Stuff 1) The Spiderweb Software logo screen when you start BoE no longer plays the sound. The splash screen with the bald guy still plays the music, but I believe the Spidweb logo used to play the sound that plays when you enter a darkened town. Not really important, but just noticing. Left off on purpose, putting it back would be quite simple. Originally Posted By: The Almighty Doer of Stuff 2) When you exit the Preferences screen in the game via the OK button, it automatically reduces the window as though you had selected "Small Window (not full screen)". However, when I selected that option, hit OK (at which point it did what it should) and then went back to Preferences and selected to display the game Centered, that weird behavior stopped. That's really weird, i've been unable to reproduce that ... When does that happens ? Everytime you clicked "Ok" or only once ? Originally Posted By: The Almighty Doer of Stuff 3) In the scenario editor, when you load a new town, it automatically enters the Edit Town Terrain screen. This is inconvenient if you want to edit dialogue. It should be fairly easily to just load the town without entering. I didn't implement the town entering part, so i assume it's the legacy behavior ? Thanks, for the comments Chokboyz
  17. Two potentially compatibility breaking changes have been made (you can activate and desactivated them at will for now, the make version of the scenario will be checked in the future): Stairway nodes can now be called anytime/anywhere (if talking, the dialog ends and the party is moved), except while in combat. Should i also include combat mode (the combat ends, then the party is moved) ? That would prevent some exploit (e.g timers triggers stairway node, but the player bypass it by getting into combat mode right before the triggering) Event Timers now kicks in even while resting outdoor/in inn (that should fix broken scenario timers). The "Change Time" node is not affected (it's not about passing time, it's about setting time), but the "Have a Rest" node is a problem : if a timer kicks in while resting through such a node what should we do ? Break the first node chain ? Stack a second chain on top of the first ? Do nothing and document the feature ? Don't hesitate to comment Chokboyz
  18. Originally Posted By: The Almighty Doer of Stuff A couple things, having just poked around the Win32 CBoE Beta 2 scenario editor: Ctrl+C and Ctrl+V work oddly. Ctrl+C copied some text from the Who Wrote field, but would not copy text from the Scenario Intro Text fields. I had to use the context menu. Also, Ctrl+V did not work at all. I found out about the weird copying behavior when I tried to paste Intro Text into Notepad. For some reason, the Ctrl+C/Ctrl+V shortcuts were assigned to others functions (town editing). I've fixed that and the copy/pasting shortcuts now works. I'm glad someone is using the Scenario Editor (and reports glitches/bugs ), thanks for the comments Originally Posted By: The Almighty Doer of Stuff Also, for some reason there's a Helm of Speed, an Amber Periapt, and a Scale Necklace on the ground in the middle of Warrior's Grove. I assume those are there from when their item abilities were being tested, but perhaps they should be deleted now. Wait, did that means i didn't updated the bladbase.exs in the archive ... My bad then, i'll update it (Edit: indeed, i forgot to update it (the one in the repository is up-to-date), it's done for the next release. For the Lethe problem, we'll see what Celtic Minstrel decides, since he is the one the more qualified (new item selection method, etc ...)) Chokboyz
  19. Originally Posted By: Celtic Minstrel Oh dear, now I'll have to consult this thread when implementing changes a dozen at a time... Don't worry, i'll make a summary of changes in the main thread when the final implementation will be done Chokboyz
  20. Originally Posted By: Necrophilius ok so I'll make list of already used flags If you're using the vanilla (i.e original) scenario editor, then i think that's the only way to know what SDF is used Originally Posted By: Necrophilius 1) Can I use one flag multiple times? For example, my flag 1,0 will be "special spell" flag, and from this will depend if certain monster will cast special spells or not. And as it is basically set as 0, I would change it again to 0, after party leave town... just to have this flag for further use. ?? You can, but you had better be sure of what you're doing as mixing up SDF is pretty easy (for instance, even Jeff does that in the game code ). Worse, some SDF (those used for One-Time something) are set once and for all (any special with the same SDF will not be created in town or desactivated outdoor). Given the number of SDF, i'd recommend using separate SDF if possible ... Originally Posted By: Necrophilius 2) how many flags are possible to use? 300 * 10 = 3000 Originally Posted By: Necrophilius is there any good tutorial how those flags works and what cool things i can do with em? Maybe somewhere in the help file. The best way is to experiment and study other works, though. Hope it helps, Chokboyz Edit : i've finally corrected the resting functions so that event timers are taken into account when resting outdoor/in inn (also check the diseased item possible infection and shop changing stocks). No increased health or whatever is given, only timed specials are checked (scenario timers if outdoor, scenario/current_town timers if in town). I didn't add a check for the "Change Time" Node because i don't think it need one (it is about changing current time (party.age + or - the value), not passing time). (once again it's a compatibility switch, but will surely evolve in a scenario make version check) Unfortunately, the "Have a rest node" is a problem since it can be called in the middle of a node chain (what to do, if a timed event happens then ? break the node chain ? "stack" the events ? (not a good idea in my opinion) ). Then again, you can leave it in state and document the possible timer breaking
  21. Originally Posted By: The Almighty Doer of Stuff Also, don't use Stuff Done Flag (0,0). It's buggy. I think it's been fixed in OBoE, though it's probably best not to mess with it until there's a good, stable release of OBoE. What bug was that causing ? I don't think i've encountered something like that, so it may always be lurking there Chokboyz Edit: Ok, i've modified the Stairway node so that it can be called anytime (except combat mode, but i can implement it if needed : it would end the combat mode then move the party). If the Stairway node is called while talking, if the player select "leave" in the "Climb ?" dialog, then the strings specified in the talking node are displayed. If the player select "climb" or the node is forced (ex1b set to 1), then the talk ends and the party is moved. A compatibility switch controls the behavior for now, but in the end, i think the scenario format version will be checked
  22. Originally Posted By: Necrophilius ok, another question. How to make a room description that work only one time, and no more? I used "One-Time Text Message", but its not working ;/ Did you fill the two Stuff Done Flag fields of the "One-Time Text Message" node with some value (i.e not leaving them at -1) ? If not, that's the problem (and being familiar with SDF is a good idea to make a scenario ). Chokboyz
  23. Chokboyz

    Redo?

    Originally Posted By: Chokboyz Originally Posted By: Ishad Nha Chokboyz has the most recent versions but I don't know if he has uploaded them anywhere. Check out this page http://code.google.com/p/openexile/downloads/list The code is also there. Both platform code is there ... Chokboyz
  24. Originally Posted By: The Almighty Doer of Stuff Did Holy Scourge deliver a more powerful curse than the regular Curse spell, though? I always thought it did, but I could have been mistaken. Technical details : From the BoE source, only the calculation method differs : Originally Posted By: code // curse curse(2 + bonus); //holy scourge curse(2 + adven[current_pc].level / 2); where bonus is the value at the caster intelligence value index in the following array (21 values) : skill_bonus[21] = {-3,-3,-2,-1,0,0,1,1,1,2, 2,2,3,3,3,3,4,4,4,5,5}; plus one if has the Mag. Apt. trait, plus one if has an item with the "Intelligence" (better at spellcasting, aka Micah's gloves) ability equipped. Basically, a monster will be fully cursed (8 max value) when : the caster is level 14 and casting Holy Scourge the caster has 19 or 20 in intelligence and Mag. Apt. or "Intelligence" item equipped and casting Curse. the caster has 16-18 intelligence and Mag. Apt. and "Intelligence" item equipped and casting Curse. So Holy Scourge seems a little more powerful (no trait or item needed for max effect) and doesn't requires investing in lots of Intelligence to be potent. In the end, it's up to the caster's preference Chokboyz
  25. Originally Posted By: The Almighty Doer of Stuff Sounds need to freeze the game for the frame animation technique to work, though. No problem, the legacy behavior (freezing) has not been deleted : if the "sound to play" specified number is positive (as it was supposed to be in the legacy Scenario Editor and as it is in all legacy scenarios) the game will freeze when playing the sound (legacy behavior). What has been added : if the specified number is negative, the sound played (which is the opposite of the specified number) will be played asynchronously (for those bird chirps for example). Both options are then available for designers (and legacy scenarios are not modified). Chokboyz
×
×
  • Create New...