Jump to content

Alpha Testing Problems


Callie

Recommended Posts

I've run into a few problems while alpha testing my small scenario. I've spent several hours trying to fix them, but to no avail. Thanks for looking this over!

 

1. Ellipses… For some reason, the game turns many ellipses into either a "É" or a "A"; however, they work fine in one town, but not others. I am using both AScript and TextEdit for my scripts. I've tried simply retyping the ellipses, but that doesn't fix the problem. I don't want to remove them, because the ellipses are important to one of the main character's dialog.

 

2. Boats: I have a boat the party can use in the main town, but I can't physically exit the town. I've tried resizing the outdoor town limits so that the borders are further into the water, but that doesn't solve the problem. I've also tried using a state that uses the call change_outdoor_location but that does nothing. This prevents the party from physically reaching some parts of the scenario.

 

3. I have a puzzle in which flipping levers changes the terrain height of certain tiles. The party cannot finish the scenario without finishing this puzzle. It partially worked at first, but there were several infinite loops and unmatched parenthesis that Alint did not catch and I had to fix. Once I fixed the issues, the levers no longer did anything. I've made sure that the states match up; here is the script:

 

 

 

 

beginstate 15;
//Lever A
flip_terrain(5,10);
run_animation_sound(76);
pause(8);

if (get_flag(4,2) == 0) {
i = 5;
while (i < 10) {
set_height(9,i,5);
i = i + 1;
}
while (i < 9) {
set_height(11,i,5);
i = i + 1;
}
set_height(10,5,6);
set_height(10,11,6);
set_height(11,11,6);
set_height(12,11,6);
set_height(10,12,5);
set_height(11,12,5);
set_height(12,12,5);
set_flag(4,2,1);
}
if (get_flag(4,2) == 1) {
i = 5;
while (i < 10) {
set_height(9,i,6);
i = i + 1;
}
while (i < 9) {
set_height(11,i,6);
i = i + 1;
}
set_height(10,5,5);
set_height(10,11,5);
set_height(11,11,5);
set_height(12,11,5);
set_height(10,12,6);
set_height(11,12,6);
set_height(12,12,6);
set_flag(4,2,0);
}
run_animation_sound(45);
break;
beginstate 16;
//Lever B
flip_terrain(5,9);
run_animation_sound(76);
pause(8);
if (get_flag(4,3) == 0) {
i = 7;
while (i < 14) {
set_height(i,7,5);
i = i + 1;
}
i = 15;
while (i < 2) {
set_height(i,8,6);
i = i + 1;
}
set_height(14,3,5);
set_height(14,4,6);
set_height(14,5,6);
set_height(14,6,6);
set_height(14,7,5);
set_height(14,8,6);
set_height(14,9,5);
set_height(14,10,6);
set_height(14,11,6);
set_height(14,12,6);
set_height(14,13,6);
set_height(19,7,6);
set_flag(4,3,1);
}
if (get_flag(4,3) == 1) {
i = 7;
while (i < 14) {
set_height(i,7,6);
i = i + 1;
}
i = 15;
while (i < 2) {
set_height(i,8,5);
i = i + 1;
}
set_height(14,3,6);
set_height(14,4,5);
set_height(14,5,5);
set_height(14,6,5);
set_height(14,7,6);
set_height(14,8,5);
set_height(14,9,6);
set_height(14,10,5);
set_height(14,11,5);
set_height(14,12,5);
set_height(14,13,5);
set_height(19,7,5);
set_flag(4,3,0);
}
run_animation_sound(45);
break;
beginstate 17;
//Lever C
flip_terrain(5,8);
run_animation_sound(76);
pause(8);
if (get_flag(4,4) == 0) {
set_height(8,4,6);
set_height(8,5,6);
set_height(8,6,5);
set_height(8,7,6);
set_height(8,8,6);
set_height(8,9,6);
set_height(9,4,5);
set_height(10,4,6);
set_height(11,4,5);
set_height(15,3,5);
set_height(16,3,5);
set_height(16,4,6);
set_height(16,5,6);
set_height(16,6,6);
set_height(17,6,6);
set_height(18,6,5);
set_height(19,6,6);
set_flag(4,4,1);
}
if (get_flag(4,4) == 1) {
set_height(8,4,5);
set_height(8,5,5);
set_height(8,6,6);
set_height(8,7,5);
set_height(8,8,5);
set_height(8,9,5);
set_height(9,4,6);
set_height(10,4,5);
set_height(11,4,6);
set_height(15,3,6);
set_height(16,3,6);
set_height(16,4,5);
set_height(16,5,5);
set_height(16,6,5);
set_height(17,6,5);
set_height(18,6,6);
set_height(19,6,5);
set_flag(4,4,0);
}
run_animation_sound(45);
break;
beginstate 18;
//Lever D
flip_terrain(5,7);
run_animation_sound(76);
pause(8);
if (get_flag(4,5) == 0) {
i = 3;
while (i < 10) {
set_height(13,i,5);
i = i + 1;
}
set_height(13,11,5);
set_height(13,12,5);
set_height(13,13,5);
set_height(12,13,6);
set_height(11,13,6);
set_height(10,13,6);
set_height(9,13,6);
set_height(9,12,5);
set_height(9,11,6);
set_flag(4,5,1);
}
if (get_flag(4,5) == 1) {
i = 3;
while (i < 10) {
set_height(13,i,6);
i = i + 1;
}
set_height(13,11,6);
set_height(13,12,6);
set_height(13,13,6);
set_height(12,13,5);
set_height(11,13,5);
set_height(10,13,5);
set_height(9,13,5);
set_height(9,12,6);
set_height(9,11,5);
set_flag(4,5,0);
}
run_animation_sound(45);
break;
beginstate 19;
//Lever E
flip_terrain(5,6);
run_animation_sound(76);
pause(8);
if (get_flag(4,6) == 0) {
set_height(7,11,5);
set_height(7,12,5);
set_height(7,13,5);
set_height(8,11,6);
set_height(8,12,5);
set_height(8,13,6);
set_height(10,6,6);
set_height(10,7,5);
set_height(10,8,6);
set_height(10,9,6);
set_height(11,9,5);
set_height(12,9,6);
set_height(12,8,6);
set_height(12,7,6);
set_height(12,6,6);
set_flag(4,6,1);
}
if (get_flag(4,6) == 1) {
set_height(7,11,6);
set_height(7,12,6);
set_height(7,13,6);
set_height(8,11,5);
set_height(8,12,6);
set_height(8,13,5);
set_height(10,6,5);
set_height(10,7,6);
set_height(10,8,5);
set_height(10,9,5);
set_height(11,9,6);
set_height(12,9,5);
set_height(12,8,5);
set_height(12,7,5);
set_height(12,6,5);
set_flag(4,6,0);
}
run_animation_sound(45);
break;
beginstate 20;
//Lever F
flip_terrain(5,5);
run_animation_sound(76);
pause(8);

if (get_flag(4,7) == 0) {
i = 3;
while (i < 10) {
set_height(7,i,5);
i = i + 1;
}
i = 8;
while (i < 13) {
set_height(i,3,5);
i = i + 1;
}
i = 4;
while (i < 8) {
set_height(15,i,5);
i = i + 1;
}
i = 16;
while (i < 19) {
set_height(i,7,5);
i = i + 1;
}
set_flag(4,7,1);
}
if (get_flag(4,7) == 1) {
i = 3;
while (i < 10) {
set_height(7,i,6);
i = i + 1;
}
i = 8;
while (i < 13) {
set_height(i,3,6);
i = i + 1;
}
i = 4;
while (i < 8) {
set_height(15,i,6);
i = i + 1;
}
i = 16;
while (i < 19) {
set_height(i,7,6);
i = i + 1;
}
set_flag(4,7,0);
}
run_animation_sound(45);
break;
beginstate 21;
//Reset Lever
flip_terrain(5,4);
run_animation_sound(76);
pause(8);
i = 3;
while (i < 14) {
set_height(7,i,6);
i = i + 1;
}
i = 8;
while (i < 17) {
set_height(i,3,6);
i = i +1;
}
i = 4;
while (i < 14) {
set_height(13,i,6);
i = i + 1;
}
i = 8;
while (i < 13) {
set_height(i,10,6);
i = i + 1;
}
i = 8;
while (i < 13) {
set_height(i,11,5);
i = i + 1;
}
i = 8;
while (i < 13) {
set_height(i,12,6);
i = i + 1;
}
i = 8;
while (i < 13) {
set_height(i,13,5);
i = i + 1;
}
i = 14;
while (i < 19) {
set_height(i,7,6);
i = i + 1;
}
i = 14;
while (i < 20) {
set_height(i,8,5);
i = i + 1;
}
set_height(8,4,5);
set_height(9,4,6);
set_height(10,4,5);
set_height(11,4,6);
set_height(12,4,5);
set_height(8,5,5);
set_height(9,5,6);
set_height(10,5,5);
set_height(11,5,6);
set_height(12,5,6);
set_height(8,6,6);
set_height(9,6,6);
set_height(10,6,5);
set_height(11,6,6);
set_height(12,6,5);
set_height(8,7,5);
set_height(9,7,6);
set_height(10,7,6);
set_height(11,7,6);
set_height(12,7,5);
set_height(8,8,5);
set_height(9,8,6);
set_height(10,8,5);
set_height(11,8,6);
set_height(12,8,5);
set_height(8,9,5);
set_height(9,9,6);
set_height(10,9,5);
set_height(11,9,6);
set_height(12,9,5);
set_height(14,4,5);
set_height(15,4,6);
set_height(16,4,5);
set_height(14,5,5);
set_height(15,5,6);
set_height(16,5,5);
set_height(14,6,5);
set_height(15,6,6);
set_height(16,6,5);
set_height(17,6,5);
set_height(18,6,6);
set_height(19,6,5);
set_height(19,7,5);
set_height(19,8,5);
run_animation_sound(45);
break;

 

 

Link to comment
Share on other sites

The ellipses issue is due to your text editor turning three periods '...' into U+2026 '…', a special glyph which represents an ellipsis as one character. The reason it appears malformed is because BoA and your text editor aren't using the same character set. OSX uses UTF-8 iirc, so your text editor should by default as well. BoA, on the other hand, almost certainly does not.

 

The solution is to just disable this 'helpful' feature provided by your text editor (or possibly by your OS?

 

Also, just to play on the safe side, make sure your text editor is saving files as UTF-8 without a BOM (this may also be called ANSI as UTF-8).

Link to comment
Share on other sites

I know I already told you, Excalibur, but I'll stick it here too in case other people miss it. After getting your lever to do what it wants, you need to use the call end(); to kill the script. Otherwise, once you've set the sdf, the script will just continue and undo all the changes it just made. :p

Link to comment
Share on other sites

I've run into another problem: I can't get the call set_attitude to work properly. Creature 1300 is initially neutral, but dialog choices make it hostile. I have the dialog call a state in the town script; I know it's doing this because the rest of the state is working. I've tried using the make_town_hostile call to no avail. Here is the code:

 

 

 

beginstate 14;

set_attitude(1300,10);

i = 0;

while (i < 4) {

put_boom_on_char(i,4,0);

i = i + 1;

}

run_animation();

run_animation_sound(54);

i = 0;

while (i < 4) {

damage_char(i,10,3);

i = i + 1;

}

break;

 

 

(On another note, the set_char_dialogue_pic call isn't working for this creature)

 

Edit: I've figured out how to force the attitude change by using the call in the corresponding creature script.

Link to comment
Share on other sites

"set_attitude(1300,10);"

I figure the first number is meant to be between 4 and 119:

 

void set_attitude(short which_char_or_group,short which_attitude) - Sets the attitude of the character/group:

3 - friendly to party

4 - neutral

10 - hostile A

11 - hostile B

 

which_char - Many calls expect to be given a value for which_char. This expects the number of a character, which will be from 0 to 119. (Note that you are not entering the character’s Character ID or the personality. To find the number of a character, in the editor, select the character and look at the number in the first description line.) If you use such a call in a creature script, if you enter a value of -1 for which_char, the function will act on the creature whose script is running. In such a case, you can also enter ME for which_char. This does the same thing.

 

which_char_or_group - When a call expects a value for which_char_or_group, it wants the number of a character or group. This is exactly like which_char, except for one difference: the call can also act on every member of a group. If you want to have the call act on group x, give which_char_or_group a value of 1000 + x. (And remember that group 0 is always the party.)

Link to comment
Share on other sites

New issue: I thought this was an issue with my copy of BoA, but my beta testers are having the same problem. I have two towns in which BoA puts the party on the wrong side of the map. i.e. One town has the west entrance on the west side, and the north, south, and east entrances on the east side. When the party enters the town, it will end up on the west side, regardless of the direction it entered from (The party can only physically enter from the east and west).

Link to comment
Share on other sites

I had some trouble with this in Discord (though I was doing something slightly different). Make sure there's enough space around the town entry point for a party of 4/6(?) characters.

 

I guess it could also be something to do with the way BoA decides which direction you enter town from from the outdoors? Might be worth looking at Chapter 1.7 of your docs.

Link to comment
Share on other sites

This was a problem in A Large Rebellion as I recall. It could come from issues with impassable terrain inside the town, near the town entry points. There could be a problem with impassable terrain in the outdoors, near the town entrance. Alternately the size/shape of the town entrance rectangle could be a problem.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...