Jump to content
Sign in to follow this  
Callie

Alpha Testing Problems

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;

 

 

Share this post


Link to post
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).

Share this post


Link to post
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

Share this post


Link to post
Share on other sites

"but I can't physically exit the town"

Town entrances/exits can be tricky. Here, in the direction(s)you are exiting, make sure you have a gap of two squares between the town boundary and the edge of the map.

Share this post


Link to post
Share on other sites

"but I can't physically exit the town"

Town entrances/exits can be tricky. Here, in the direction(s)you are exiting, make sure you have a gap of two squares between the town boundary and the edge of the map.

Oh wow, that fixed it. Thanks!

Share this post


Link to post
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.

Share this post


Link to post
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.)

Share this post


Link to post
Share on other sites

That does the trick. I knew that some calls excepted the number of a character, but not that one. Thanks!

Share this post


Link to post
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).

Share this post


Link to post
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.

Share this post


Link to post
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.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×