Jump to content

Pyrulen

Member
  • Posts

    65
  • Joined

  • Last visited

    Never

Everything posted by Pyrulen

  1. I think that a 'test' option which immediately loaded your scenario using the default party at a designated location would be useful. Presumably, to return to the editor you could press escape. I often find it a chore to reload the game or re-enter the town every time I want to study the effect of a small modification.
  2. Ok, it's a bit rough around the edges, but the files have been sent out.
  3. Hello. I've almost completed coding a chess program which works within a BoA scenario. It allows two people to play a head to head game (sorry, I'm not yet brave enough to attempt an AI opponent) by entering in coordinates to select pieces and their targets. It's not an ideal setting for a chess program, but I did it mainly for the challenge and to see if it could be done. The pieces themselves are BoA characters, and currently I have a team of Humans vs Vahnatai, although other creature types could be used as long as the creature numbers remain the same. The final version will include a full compliment of different attack types including spells and bows (ranged attacks work best as the pieces may not always attack adjacent enemies). An example of play: Anyway, to get to the point, I need help to finish this before the contest deadline, and have run into a few scripting problems associated with maneuvers to get out of check. I'll go into details with testers. Basically, I'm stumped and running out of free time. To all who apply: this is no simple beta test - I need people to test it and experience the bugs, then look at the code and propose/code solutions. On the bright side, you'll get credit for collaboration. Just post your email address and I'll send you the scenario file.
  4. If it's not too late, I'd love to try it out as well. This would be a major help to all Windows users and I'd like to help the development. My email address is jackmilner@gmail.com .
  5. Kelandon, you would want to use 'i = i - 1' in place of 'i = i + 1', since you are counting down from the original value of i. The code as it is would create an unending loop, not that it particularly matters. EDIT: typos
  6. I considered using SDFs, but then if the first character doubles back in a multi character party, switching places with another who is already standing on the special encounter, it will not trigger it a second time. This can lead to a failure to turn the SDF off, resulting in the ability to dig anywhere. EDIT: It is possible to use special encounters and SDFs, as long as the 'on' and 'off' switch special encounters are far enough apart (i.e. four spaces). In my case there wasn't enough space for this. Concerning the question about digging anywhere, the response "You can't dig here!" is just an action for the purposes of testing. It could easily be changed to "You dig here, but find nothing." in the future. Then again, you would then want to consider on which floor tiles would this be realistic, but that is beside the point. Thuryl, I should have thought of that before, thank you for waking me up.
  7. While playtesting a small part of my scenario today I got this error message, leading me to wonder why there should be a limit to the length of expressions. It may be an excessively cumbersome piece of script, but it was necessary because I had to cover a specific piece of ground (in case you're wondering, it's for a shovel ability). Code: beginstate 11; if(((char_on_loc(7,16) >= 0) && (char_on_loc(7,16) < 4)) || ((char_on_loc(7,15) >= 0) && (char_on_loc(7,15) < 4)) || ((char_on_loc(7,14) >= 0) && (char_on_loc(7,14) < 4)) || ((char_on_loc(7,13) >= 0) && (char_on_loc(7,13) < 4)) || ((char_on_loc(7,12) >= 0) && (char_on_loc(7,12) < 4)) || ((char_on_loc(6,17) >= 0) && (char_on_loc(6,17) < 4)) || ((char_on_loc(6,16) >= 0) && (char_on_loc(6,16) < 4)) || ((char_on_loc(6,15) >= 0) && (char_on_loc(6,15) < 4)) || ((char_on_loc(6,14) >= 0) && (char_on_loc(6,14) < 4)) || ((char_on_loc(6,13) >= 0) && (char_on_loc(6,13) < 4)) || ((char_on_loc(6,12) >= 0) && (char_on_loc(6,12) < 4)) || ((char_on_loc(6,11) >= 0) && (char_on_loc(6,11) < 4)) || ((char_on_loc(5,15) >= 0) && (char_on_loc(5,15) < 4)) || ((char_on_loc(5,14) >= 0) && (char_on_loc(5,14) < 4)) || ((char_on_loc(5,13) >= 0) && (char_on_loc(5,13) < 4)) || ((char_on_loc(5,12) >= 0) && (char_on_loc(5,12) < 4))) message_dialog("You can dig here!",""); else message_dialog("You can't dig here!","");break; Now it seems that I'll have to simplify it in some way, but I'm out of ideas. Is there any way I can get around this error?
  8. Instead of having a single graphic occupying the space you want the character to occupy, it might be easier to design the cage in terms of walls on the squares north, south, east and west of the character occupied square. Of course, this doesn't really help if you want anything other than a square cage, but it would be easier than fiddling around with te_second_icon commands. Another advantage is that the cage can be made as big as you want. As for walking through cages, it would be a relatively simple step from there to create a cage door graphic (or alternatively, allow characters to slip through the bars).
  9. It works, give or take a missed bracket. Nicely done. Not that this problem can really be helped, but the hours of darkness seem too short (since when has the sun risen at 1:00 AM outside of the arctic circle?).
  10. I must confess I didn't know about the % function, and now that I do it makes things simpler. However, your code in the form that it is does not work. All values are bizzarely set to 0, and I think 'totalminutes = daytick * 36 / 125;' may be the problem. While mathematically correct, avernumscript doesn't seem to cope with it. Neither does it help in any way to simply take an approximate value of 3.472 and multiply both sides by 1000 to give whole numbers - we then get negative numbers appearing for no apparent reason.
  11. Recently I thought about creating a clock by calculating the time in hours and minutes with a number from 0 to 5000 (dayticks). Eventually, I intend to create an item (e.g. a watch or magic item) with a custom ability which displays the time. From there, I can create quests with time limits. Here is my attempt so far in the scenario script: Code: beginstate START_STATE;dayticks = get_current_tick() - (what_day_of_scenario() * 5000);//Total minutes elapsed todaymins1 = (dayticks * 1000) / 3472;//Minutes to be displayedmins2 = mins1 - (hours * 60);//Hours to be displayedhours = mins1 / 60;//These are just here to help me test the thing.print_big_str("dayticks = ",dayticks,"");print_big_str("mins1 = ",mins1,"");print_big_str("mins2 = ",mins2,"");print_big_str("hours = ",hours,"");break; We know that there are 1440 minutes in a day (24*60). 3.472 (recurring) comes from 5000/1440. However, avernumscript doesn't like the decimal point sign and seems to want to round down variables which are not whole numbers. This means that there are about 27 hours in the day! '(dayticks * 1000) / 3472' shows my attempt to get around the decimal problem, which failed (setting all values to 0). Is there any way around this problem? Have others before me tried to do this? EDIT: I've reached the meaning of life!
  12. The hardest part for me is spending hours making detailed towns and dungeons, then finding that my plot is abysmal and unoriginal. As far as making up storylines go, I'm terrible. I suppose at first I wanted a framework around which I could learn how to code. Actually doing the scenario can be boring, but it's certainly easier.
  13. Quote: This means that the call te_can_look_at doesn't do a lot. I noticed this as well. It means that all of my custom terrains are searchable and I cannot change this by setting te_can_look_at = 0.
  14. After some tweaking it did work, but not before I had to create another new terrain specifically for terrain 495 to change into. Hopefully when this comes out it will be one of the most puzzle orientated dungeons around. In fact, I might even do a mine cart ride if that isn't too cliched...
  15. Bartering in Nethergate enabled you to sell items for more than you bought them for, so if you were really bored you could make money that way.
  16. Bartering in Nethergate enabled you to sell items for more than you bought them for, so if you were really bored you could make money that way.
  17. Sorry, you're right. I do mean NE, SE etc. Thinking about this problem for too long has caused me to lose track of the basics. Anyway, here is the room in which I need the effect to take place (ignore the character sprite): So much for the surprise when it's released... The red blocks and the gravel floor all have the same terrain script, which is: Code: beginterrainscript;variables;int mylocx,mylocy,charlocx,charlocy,diffx,diffy,newlocx,newlocy;body;beginstate INIT_STATE; set_script_mode(2); break;beginstate START_STATE; if(terrain_in_this_spot() == 496){ mylocx = my_loc_x(); mylocy = my_loc_y(); charlocx = char_loc_x(char_who_activated_script()); charlocy = char_loc_y(char_who_activated_script()); diffx = mylocx - charlocx; diffy = mylocy - charlocy; newlocx = mylocx + diffx; newlocy = mylocy + diffy; }break;beginstate BLOCK_MOVE_STATE; if((terrain_in_this_spot() == 496) && (get_terrain(newlocx,newlocy) == 495) && (char_on_loc(newlocx,newlocy) == -1) && (diffx + diffy != 2) && (diffx + diffy != -2) && (diffx + diffy != 0)){ print_str_color("The block moves!",2); play_sound(-45); set_terrain(newlocx,newlocy,496); set_terrain(mylocx,mylocy,495); force_instant_terrain_redraw(); } else{ if(get_terrain(newlocx,newlocy) != 495){ play_sound(41); print_str_color("The friction is too great.",2); } if(char_on_loc(newlocx,newlocy) != -1) print_str_color("Someone is in the way.",2); if((diffx + diffy == 2) || (diffx + diffy == -2) || (diffx + diffy == 0)) print_str_color("You can't push it diagonally.",2); }break;beginstate STEP_INTO_SPOT_STATE;//Possibly something could be done here...break; How it works:Terrain 495 uses the gravel graphic, terrain 496 uses the red blocks. It first checks whether the terrain_in_this_spot is 496, and if so, looks at my_loc(x and y values) and character location, then finding the diff(erence), 'myloc - charloc'. The new location of the block is simply the opposite side from which it is pushed, 'myloc + diff'. Imagine a grid of 3x3 spaces, with the terrain script in the centre. It should check the location of the first character in the party every tick. I thought that it would be possible to check whether a character is crossing from say, the south to the east side of the grid and create your blocked terrain at the destination, then turning it off again at some point, like the beginning of the next tick. Unfortunately, the start state seems to want to run multiple times whenever I use a call in it to check the character location, so when I walked into the space, it went haywire. Since it got just a little complicated, I gave up on that method. Your idea seems interesting, I'll try it out and hope that the start state runs once each tick... EDIT: I have found a few flaws, apart from your misinterpretation over direction which is entirely my fault. It relies on the fact that you will never traverse any terrain other than terrain 0. In response I'm changing it to also accommodate terrain 495.
  18. Has anyone come up with a way of blocking only diagonal movement? I'm currently working on a puzzle which would be quite easy to beat if diagonal (i.e. directly northeast, southeast etc.) movement was possible. Any suggestions would be welcome. EDIT: Direction confusion sorted out.
  19. Since this project won't be particuarly ambitious, I have a realistic chance of getting it finished by November. I've put in a lot of hours already and learnt how to do most things, so I wouldn't want to waste all that effort by failing to release it. Despite that, I have a tendency to veer off course of the plot and write large amounts of dialogue or put in some custom graphics (I also spent a large amount of time scripting the behaviour of a dog!). As a result, the files are unsystematic at the moment, e.g. you probably won't find my towns to be in chronological order if you check them on the editor.
  20. Wow, that's far better than anything I could do. The earth terrain graphics are perfect, and I might even nab a windmill or two. EDIT: Nice roof graphics. I liked them so much that I'm doing a rooftop chase scene above one of my towns. The only problem is retaining the same level of detail of the walls on the ground on what are now cliffs... By the way, the pictures loaded fine for me, so maybe you should check your internet settings. Mab, does your site rely on Java or Cookies? PS. What are 'Scads of Gold'?!
  21. Well, if people are ok with it, maybe it doesn't need changing. I suppose that it wouldn't be particularly important in terms of general enjoyment, although there will always be perfectionists. I'll go on to finish my cutscene then...
  22. One slight problem remains - the modified terrain still looks different, somehow smoother... Any ideas?
  23. Good ideas, the reason that I don't want to use terrain 41 and its counterparts is that they are too bright and not suited to my dungeon.
  24. As a big favor, could anyone create some slope terrain graphics of the same look as floors 73 to 74? Sadly I neither have a good graphics program nor would I know how to use it if I did, but I don't think it would take long for anyone initiated in the ways of photoshop, just a colour alteration would do. Basically, it would involve taking the dirt sloped terrains and modifying them to be a deeper brown. EDIT: Other than that, my scenario is coming along nicely, if a bit linear plot-wise so far.
  25. It seems to work now. As a test I put in an error on one line and it gives me two warnings, neither of which refer to the correct line, but are closer than the in-game error messages.
×
×
  • Create New...