Jump to content

Celtic Minstrel

Global Moderator
  • Posts

    4,121
  • Joined

  • Last visited

Posts posted by Celtic Minstrel

  1. Quote:
    Originally written by Calphrexo:
    The "east" line is missing a semicolon.
    Whoa – how'd I miss that?

    Quote:
    Originally written by Calphrexo:
    Maybe an SDF could be used to chart whether a belt has moved a player yet, with one for each player (6). Set them to a number after moving a player, and reset them every turn. If you want the belt to stop you can set all the SDFs to the inactive value.

    Will monsters also need to walk on the belt?
    Actually, for the characters I'm going to check each character in turn to see if they are on a belt, so that monsters/NPCs can be affected by them - provided they aren't blocked.

    Quote:
    Originally written by Ishad Nha:
    Edit: as it so happens the Blazing Blades produced good conveyor belt graphics.
    I've seen the graphic you mean (based on the original Exile graphics), but I had already made my own at that time. However, I will likely switch at some point as mine is really bad.

    Quote:
    Originally written by Niemand:
    The maximum is 120 creatures, I think, and something like 144 items, but move_item_on_spot is probably your best bet for items.
    Originally written by Niemand:
    80 placed creatures + 34 summoned + 6 party members = 120 charcters in the town.
    Thanks. I was assuming 250, but clearly I was wrong.

    Now I just have to figure out a way to ensure a specific pile of items is only pushed once per turn... The easiest way would be to work backwards along the chain, but that would require different code for each town that uses conveyors. I'll do it if I can't think of a better way, though... I have a suspicion that this is actually the only way it could work.

    Edit: Well, it's improved, but now for some reason it moves about ten spaces at a time, and I can't figure out why. Here's the functional code:
    Code:
    i = 0;//print_str("Checking conveyors...");while(i<120){ // What's the maximum number of creatures in a town?    xTarget = char_loc_x(i);    yTarget = char_loc_y(i);    if(i == 0){        print_named_str(i,"considered");        print_nums(xTarget,yTarget,get_terrain(xTarget, yTarget));    }    if ((get_terrain(xTarget, yTarget) == north && north > 0) ||         (get_terrain(xTarget, yTarget) == ne && ne > 0) ||        (get_terrain(xTarget, yTarget) == nw && nw > 0))            yTarget = yTarget - 1;    else if ((get_terrain(xTarget, yTarget) == south && south > 0) ||        (get_terrain(xTarget, yTarget) == se && se > 0) ||        (get_terrain(xTarget, yTarget) == sw && sw > 0))            yTarget = yTarget + 1;    if ((get_terrain(xTarget, yTarget) == east && east > 0) ||        (get_terrain(xTarget, yTarget) == ne && ne > 0) ||        (get_terrain(xTarget, yTarget) == se && se > 0))            xTarget = xTarget + 1;    else if ((get_terrain(xTarget, yTarget) == west && west > 0) ||        (get_terrain(xTarget, yTarget) == sw && sw > 0) ||        (get_terrain(xTarget, yTarget) == nw && nw > 0))            xTarget = xTarget - 1;    if(i == 0)print_nums(xTarget,yTarget,0);    if (xTarget != char_loc_x(i) || yTarget != char_loc_y(i)){        willPush = 1;        // If hasted, the character may not be pushed.        if (get_char_status(i,3) > get_ran(1,1,100)) willPush = 0;        // If flying or hovering feet, the character will not be pushed.        if (get_char_status(i,25) > 0 || get_char_status(i,27) > 0) willPush = 0;        if (willPush == 1) {            print_named_str(i," is pushed!");            relocate_character(i,xTarget,yTarget);            force_instant_terrain_redraw();        }    }    i = i + 1;}
    The debug commands are only run (displayed) once for character 0, yet he moves about ten spaces at a time.
  2. Or I could use my original method - the SDF - if I simply wanted to disable all belts in the town.

     

    By the way, what's the maximum number of creatures in a town? And the max num of items?

     

    Edit: There's no way to iterate through all items in the town like you can do with creatures, is there? frown

     

    Edit: It's telling me there is "syntax error [statement" (ALint) or "Bad term in expression" (Avernum) on line 39. That's the "south" line in the INIT_STATE:

    Code:
    variables;short xTarget,yTarget,willPush,i,j;// Constantsshort north,east,south,west,nw,ne,se,sw;body;beginstate INIT_STATE;  // Set the constants  nw = 0;  ne = 0;  se = 0;  sw = 0;  north = 474;  east = 476  south = 477;  west = 475;  set_ter_script_mode(ME,3);break;
    This makes no sense at all.
  3. smirk I can't quite seem to figure out how those paths work. At least, "\p::Resources:bladesofexile.rsrc" fails even though the file exists in the Resources folder within the bundle. It fails with one or three trailing colons, too.

     

    Anyway, I increased the maximum number of scenarios listed in the Choose Scenario dialog to 50, as well as omitting the default three from said listing. The hardest part was finding where to apply the changes. :rolleyes:

     

    Edit: I also put this number into a constant (kMaxScenarios) to make it easier to change.

     

    Edit: If I obtained the source using "darcs get", can I also use darcs to add my changes?

  4. Quote:
    Originally written by novaalpha:
    Your contribution will be much appreciated. smile
    Thanks, but actually my contribution won't really help you much since I use a Mac and you use Windows. I'm not quite sure who would port the Windows character editor – maybe Ormus or Ishad Nha? Only, Ormus has vanished. smirk

    P.S. Way too many emoticons.
  5. Well... I never thought of this. Only one minor problem – I wanted to be able to set an SDF to turn it off (so it stops pushing). However it's fairly unlikely I'll have two completely separate conveyor networks in the same town, so that shouldn't be a significant problem.

     

    I actually made the terrain script be set automatically, but I still had to go through and set the direction appropriately.

     

    I wonder... could I make this work outdoors?

  6. I'm trying to create a terrain script which makes a space act like a conveyor belt. It works, but there's one problem: when several conveyor spaces are chained together, you are taken instantly to the end of the chain rather than being pushed a single space. Is there any way to fix this? I thought of setting an SDF which is reset in, say, the scenario start state, but then only one belt space would operate per turn.

     

    My code:

    Code:
      if (char_on_me() == -1) end();  willPush = 1;  // If hasted, the character may not be pushed.  if (get_char_status(char_on_me(),3) > get_ran(1,1,100)) willPush = 0;  // If flying or hovering feet, the character will not be pushed.  if (get_char_status(char_on_me(),25) > 0 || get_char_status(char_on_me(),27) > 0) willPush = 0;  if (willPush == 1) {    print_named_str(char_on_me()," is pushed!");    relocate_character(char_on_me(),xTarget,yTarget);    force_instant_terrain_redraw();  }
    (It's in the START_STATE.)
  7. Thanks, it was that the resource files were not where they were expected to be.

     

    Now, can someone explain this:

     

    "\p::::bladesofexile.rsrc"

     

    I know \p is the length byte, but why are there so many colons?

     

    Edit: Oh, I'm using Khoth's source. Not the OBoE source, just the BoE source. And thanks, Niemand, for the tip.

  8. Okay, I'm trying to compile the BoE source code on a Mac. It compiles*, links, and runs, but instantly exits with status 1. (One time it was status 5.) There isn't even a chance to debug to find where the problem is. It's almost like it has an error before it even gets to main(). Does anyone know how I can get it to run?

     

    *Except the scenario editor, which is missing a constant. This should be easy to fix.

     

    Also, is there any simple way to get rid of the tons of "deprecated" warnings? Or is the only solution to hunt through the documentation? Or... is it simply because Carbon is being phased out? (At least I thought it was...)

  9. Quote:
    Originally written by novaalpha:
    So you're current maintainer of this treasure? I was hoping that Spiderweb Software is interested in opensource version of it's best game ever... Now I see that chances are slim.
    No... no, I wouldn't call myself "maintainer" of the project. If anyone could have been considered "maintainer", it would have been Stareye, but he's been gone from the BoE board for quite some time. I do, however, have some coding experience, and since my exams are now over I think I would like to try working on some stuff. Carbonizing the character editor, in particular.

    On the other hand, I may just play through my Avernum games now that I have both the time and the full versions. laugh

    (Incidentally, does anyone know why it would compile, run, and then quit without doing anything? It exited with status 5, whatever that means...)
  10. If you want to learn coding without risk of crashes (or at least greatly reduced risk), try something like Python, Logo (especially if you want to draw pictures), Perl (never tried it myself) etc. Generally speaking, these higher level programming languages have better error handling than, say, C or C++ or Pascal, and hence will be less likely to crash your computer.

     

    You could also try a scripting language, if it is not too specialized (AvernumScript is too specialized). For example, a HyperCard clone.

     

    Of course, none of that would help you contribute to BoE in the short run. wink But it could help you learn principles of programming which could later be applied to a lower level language like C++.

     

    My first "programming" was done in UCB Logo and HyperCard, and when I moved on to C++ and Python I found that I already understood some of the concepts, such as recursion. Next I have to learn Objective C or Java so I can use the Cocoa APIs... laugh

  11. Quote:
    Originally written by Niemand:
    Although Windows and Macintosh text-editor usually use different newline characters, the game is prepared for this, and converts them all to a single type as it reads them.
    Ah, I thought it might. It can handle all three newline types? (CR, LF, CRLF)
    Quote:
    Originally written by Niemand:
    Sadly, GA does not run under classic OS.
    No surprises here.
    Quote:
    Originally written by Niemand:
    I am kicking around some ideas for creating a zip file on WIndows that would decompress as a usable cmg file, the trouble is that the I would have to figure out both how to write the data for a resource map manually, without the help of the library functions that normally do it, and I would then have to compress that data into a zip file so that it looks like it was in a resource fork.
    You would probably also need a firm understanding of the HFS+ file system, wouldn't you?
  12. Quote:
    Originally written by Ishad Nha:
    I imagine that the scripts are plain text and should be okay in either format,
    I think they are, but I just thought - Windows and Macintosh use different newlines. Does the game automatically detect the type of newline used and adjust accordingly, or must you make sure to use the correct one?
    Quote:
    Originally written by Ishad Nha:
    which leaves the bas files and custom graphics.
    The bas files are platform independent. To convert custom graphics from Mac to Windows or Windows to Mac, you need to use a resource editor (which is time-consuming) or GraphicAdjuster (by Niemand). If you use Windows, you have to get a Mac OSX user to do the conversion for you. (I doubt GA works on OS9).
    Quote:
    Originally written by Ishad Nha:
    Then the thing has to be put into sit/stuffit or zip format.
    Unless you use Mac Classic, you should probably compress with zip since this is just a simple right-click (or control-click) and select "Compress". (This is available in Tiger, but I'm not quite sure if it's available in earlier versions.) Mac OS9 comes with DropStuff, which can create sit files. I don't think there's a time limit on its use, but I'm not sure. On Windows I think it may be similarly easy to create a zip file, at least in XP.

    Really, porting the graphics is the only issue. I wonder if someone who uses Windows could create a utility that collects the bmp files and creates a zip file which will decompress into a valid cmg? It's probably possible, but I bet it'd also be quite difficult...
  13. Well, Stareye was working on it at one point, and then disappeared. If I had time and could get it to compile and run, I might try to do some of it. (It currently compiles, but when I run it nothing happens.) In particular I was hoping to Carbonize the character editor. That will only help if you use a Mac - I will absolutely not do anything for the Windows version. Khoth carbonized the Mac version, and Ormus ported from Win16 to Win32, but they've disappeared too.

     

    Perhaps I'll look at it over the holidays...

  14. It means it will run natively on Mac OSX Intel; however, if you are able to run the demo character editor, you're clearly not using Mac OSX Intel (since that is the only platform it won't run on).

     

    So I guess it's irrelevant. You could start a similar one for Win32 though, if you use Windows.

     

    Edit: It seems the purpose of that thread may have been inadvertently expanded to include Windows...

×
×
  • Create New...