Profile for Niemand

Error message

Deprecated function: implode(): Passing glue string after array is deprecated. Swap the parameters in drupal_get_feeds() (line 394 of /var/www/pied-piper.ermarian.net/includes/common.inc).

Recent posts

Pages

AuthorRecent posts
messages and time in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #1
I would put a check in the START_STATE of the scenario script, when a certain date and time is reached, display a dialog box to tell the party where to go (Also set any necessary flags, etc). Then, when the party arrives in the correct town start the cutscene, say, from the INIT_STATE of that town script.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Importing Custom Graphics in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #1
In Mac OS X I have found that ResEdit tends to work somewhat irregularly, and pasting is a problem. For me it sometimes works and sometimes doesn't. If you are using OS X, my advice would be to start classic before starting ResEdit, and copy the picture from your graphics program after ResEdit is already running.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Importing Custom Graphics in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #1
In Mac OS X I have found that ResEdit tends to work somewhat irregularly, and pasting is a problem. For me it sometimes works and sometimes doesn't. If you are using OS X, my advice would be to start classic before starting ResEdit, and copy the picture from your graphics program after ResEdit is already running.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #6
Yes, originally the variable's name was 'state' and that totally messed the script up so that it wouldn't run. I have also tried changing it to 'k', and there is no difference.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #6
Yes, originally the variable's name was 'state' and that totally messed the script up so that it wouldn't run. I have also tried changing it to 'k', and there is no difference.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
2 icon high terrains on hills? in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #3
It doesn't work, because Jeff made the assumption that all floors will be contained by the correct rombus, and so his code may draw the floor tiles in any arbitrary order. With the terrain icons, which are supposed to overlap, he had to make the code be careful about the order of drawing, but with floors he didn't need to. So, if you put in a floor icon that extend outside of its rombus, other tiles may be drawn over the parts that stick out, and this is exactly what happens. Actually, the game just ignores it, htough it looks terrible.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
2 icon high terrains on hills? in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #3
It doesn't work, because Jeff made the assumption that all floors will be contained by the correct rombus, and so his code may draw the floor tiles in any arbitrary order. With the terrain icons, which are supposed to overlap, he had to make the code be careful about the order of drawing, but with floors he didn't need to. So, if you put in a floor icon that extend outside of its rombus, other tiles may be drawn over the parts that stick out, and this is exactly what happens. Actually, the game just ignores it, htough it looks terrible.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #4
However that check has also proven to make no difference. I'll take it out for sure though.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #4
However that check has also proven to make no difference. I'll take it out for sure though.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #2
I hadn't originally because the relevant portion is basically all of it, and it is a bit long and messy since I'm still trying to get it in working order. I'm going to cut out most of the actual computation since, hopefully, it isn't significant to the problem.
begincreaturescript;

variables;

short i,target,j,return,attackstate;
short fire, ice, nonelem, summon, ment, blhe;
short m, p, ltick, maxe, s;

body;

beginstate INIT_STATE;
if (get_memory_cell(0) == 2)
set_mobility(ME,0);
if (get_memory_cell(4) == 0)
set_memory_cell(4,3);
m = get_stat(ME,11);
p = get_stat(ME,12);
if((m > 0) || (p > 0))
attackstate = 5;
else
attackstate = 4;
maxe = get_stat(ME,36);
ltick = 0;
print_num(s);
print_str_color("s0",1);
if(s == 0)
s = 2;
break;

beginstate DEAD_STATE;
// Set the appropriate stuff done flag for this character being dead
if ((get_memory_cell(1) != 0) || (get_memory_cell(2) != 0))
set_flag(get_memory_cell(1),get_memory_cell(2),1);
break;

beginstate START_STATE;
print_num(s);
//s = 6;
if(s == 2){
print_str_color("s2",1);
// if I have a target for some reason, go attack it
if (target_ok()) {
if ((dist_to_char(get_target()) <= 16) && ((get_flag(299,26) == 0) || (char_in_group(get_target(),0) == 0))){
return = 3;
set_state(attackstate);
}
else
set_target(ME,-1);
}

// Look for a target, attack it if visible
if (select_target(ME,8,0)) {
if((get_flag(299,26) > 0) && (char_in_group(get_target(),0) == 1)){
select_target(ME,8,0);
if((char_in_group(get_target(),0)))
set_target(ME,-1);
else{
do_attack();
return = 3;
set_state(attackstate);
}
}
else{
do_attack();
return = 3;
set_state(attackstate);
}
}

// Have I been hit? Strike back!
if (who_hit_me() >= 0) {
set_target(ME,who_hit_me());
do_attack();
return = 3;
set_state(attackstate);
}

// Otherwise, just peacefully move around. Go back to start, if I'm too far
// from where I started.
if ((my_dist_from_start() >= 6) || ((my_dist_from_start() > 0) && (get_memory_cell(0) > 0))) {
if (get_ran(1,1,100) < 40)
return_to_start(ME,1);
}
else if (get_memory_cell(0) == 0) {
fidget(ME,25);
}

// if we're in combat and the above didn't give me anything to do, just
// stop now. Otherwise, game will keep running script, and that eats up CPU time.
if (am_i_doing_action() == FALSE)
end_combat_turn();
}
break;

beginstate 3; // attacking
print_num(s);
print_str_color("s3",1);
s = 3;
if(get_current_tick()!=ltick && get_energy(ME)<maxe){
change_char_energy(ME,1);
ltick=get_current_tick();
}
if(get_energy(ME)<2){
end_combat_turn();
}
if (target_ok() == FALSE){
//s = 2;
set_state(START_STATE);
}
do_attack_tactic(2);
break;

beginstate 4; //non magical attacking
print_num(s);
print_str_color("s4",1);
s = 4;
if (target_ok() == FALSE){
//s = 2;
set_state(START_STATE);
}
do_attack();
break;

//REQUIRES: return is the state to go to on completion
beginstate 5; //sets spells for this target
print_num(s);
print_str_color("s5",1);
s = 5;

//-Massive amounts of code were removed here-

set_state_continue(return);
break;
In states 3 and 4, the assignments to s should not be commented out, normally, but I wanted to make utterly sure that they weren't responsible.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #2
I hadn't originally because the relevant portion is basically all of it, and it is a bit long and messy since I'm still trying to get it in working order. I'm going to cut out most of the actual computation since, hopefully, it isn't significant to the problem.
begincreaturescript;

variables;

short i,target,j,return,attackstate;
short fire, ice, nonelem, summon, ment, blhe;
short m, p, ltick, maxe, s;

body;

beginstate INIT_STATE;
if (get_memory_cell(0) == 2)
set_mobility(ME,0);
if (get_memory_cell(4) == 0)
set_memory_cell(4,3);
m = get_stat(ME,11);
p = get_stat(ME,12);
if((m > 0) || (p > 0))
attackstate = 5;
else
attackstate = 4;
maxe = get_stat(ME,36);
ltick = 0;
print_num(s);
print_str_color("s0",1);
if(s == 0)
s = 2;
break;

beginstate DEAD_STATE;
// Set the appropriate stuff done flag for this character being dead
if ((get_memory_cell(1) != 0) || (get_memory_cell(2) != 0))
set_flag(get_memory_cell(1),get_memory_cell(2),1);
break;

beginstate START_STATE;
print_num(s);
//s = 6;
if(s == 2){
print_str_color("s2",1);
// if I have a target for some reason, go attack it
if (target_ok()) {
if ((dist_to_char(get_target()) <= 16) && ((get_flag(299,26) == 0) || (char_in_group(get_target(),0) == 0))){
return = 3;
set_state(attackstate);
}
else
set_target(ME,-1);
}

// Look for a target, attack it if visible
if (select_target(ME,8,0)) {
if((get_flag(299,26) > 0) && (char_in_group(get_target(),0) == 1)){
select_target(ME,8,0);
if((char_in_group(get_target(),0)))
set_target(ME,-1);
else{
do_attack();
return = 3;
set_state(attackstate);
}
}
else{
do_attack();
return = 3;
set_state(attackstate);
}
}

// Have I been hit? Strike back!
if (who_hit_me() >= 0) {
set_target(ME,who_hit_me());
do_attack();
return = 3;
set_state(attackstate);
}

// Otherwise, just peacefully move around. Go back to start, if I'm too far
// from where I started.
if ((my_dist_from_start() >= 6) || ((my_dist_from_start() > 0) && (get_memory_cell(0) > 0))) {
if (get_ran(1,1,100) < 40)
return_to_start(ME,1);
}
else if (get_memory_cell(0) == 0) {
fidget(ME,25);
}

// if we're in combat and the above didn't give me anything to do, just
// stop now. Otherwise, game will keep running script, and that eats up CPU time.
if (am_i_doing_action() == FALSE)
end_combat_turn();
}
break;

beginstate 3; // attacking
print_num(s);
print_str_color("s3",1);
s = 3;
if(get_current_tick()!=ltick && get_energy(ME)<maxe){
change_char_energy(ME,1);
ltick=get_current_tick();
}
if(get_energy(ME)<2){
end_combat_turn();
}
if (target_ok() == FALSE){
//s = 2;
set_state(START_STATE);
}
do_attack_tactic(2);
break;

beginstate 4; //non magical attacking
print_num(s);
print_str_color("s4",1);
s = 4;
if (target_ok() == FALSE){
//s = 2;
set_state(START_STATE);
}
do_attack();
break;

//REQUIRES: return is the state to go to on completion
beginstate 5; //sets spells for this target
print_num(s);
print_str_color("s5",1);
s = 5;

//-Massive amounts of code were removed here-

set_state_continue(return);
break;
In states 3 and 4, the assignments to s should not be commented out, normally, but I wanted to make utterly sure that they weren't responsible.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #0
I have encountered a very odd problem working on a script: To begin with, my script was crashing occasionally, so I wanted to look into it. It looked like there was a bug that was causing it to run sate 5 sometimes where it shouldn't have, so I started looking into which states were running when. I discovered that the script would, on seeing an enemy, correctly go from state 2 (START_STATE) to state 5, then to state 3. But before it even got to the first bad behavior I had wanted to analyze, I saw that when it was supposed to be in state 3, it would run state 2 half a dozen times, and then state 3. When I tried to use a variable to keep track of what state it was in and have state 2 only do anything if the variable was 2, state 2 kept running anyway, When I examined the values of the variable, I saw that it was switching to 2 when it reached state 2 even though the only time in the script when that variable was assigned that value was in the INIT_STATE, which was not being rerun. I'd swear that variable is changing by itself.

Has anybody else ever seen anything like this at all?

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Huh? in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #0
I have encountered a very odd problem working on a script: To begin with, my script was crashing occasionally, so I wanted to look into it. It looked like there was a bug that was causing it to run sate 5 sometimes where it shouldn't have, so I started looking into which states were running when. I discovered that the script would, on seeing an enemy, correctly go from state 2 (START_STATE) to state 5, then to state 3. But before it even got to the first bad behavior I had wanted to analyze, I saw that when it was supposed to be in state 3, it would run state 2 half a dozen times, and then state 3. When I tried to use a variable to keep track of what state it was in and have state 2 only do anything if the variable was 2, state 2 kept running anyway, When I examined the values of the variable, I saw that it was switching to 2 when it reached state 2 even though the only time in the script when that variable was assigned that value was in the INIT_STATE, which was not being rerun. I'd swear that variable is changing by itself.

Has anybody else ever seen anything like this at all?

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Where in Canopy?... in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #3
You need to collect mithril ore, take it to Dobson, and have it refined. You can then make a special request for a mithril item.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
2nd newbie question... in The Avernum Trilogy
Infiltrator
Member # 5576
Profile Homepage #4
He means that you have to press 'wait' to make it go away; you have to wait once for each unit of web, plus one, I believe.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Questions about BoA engine. in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #7
I also tested out something like this; I made a group of demons that would sneak up behind the party and poke one of the PCs, causing him or her to leap into the air. The one issue with this is that you can't really have the creature fly over anything, since raising it up requires replacing the terrain. I'm very curious to see what your finished product looks like, Omikron.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Lag in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #5
I use a fairly new 1.33GHz Powerbook, and BoA still moves very slowly on occasion. For a while I believed that the game was slower when I had the Editor open at the same time, since that seemed to be when it did it the most, but lately it just hasn't. The trouble does seem to be very erratic. I have noticed by using Activity Monitor that BoA (and the BoA Editor) are very processor intensive, and just gobble up any clock cycles that aren't being otherwise used; if only 10% of the processor time is available BoA runs just fine with that, but if 90% is available, BoA takes it even if it doesn't really need it.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
some help please in General
Infiltrator
Member # 5576
Profile Homepage #21
A few months ago at the apple store, I was in line behind a lady whose computer had a most interesting problem: It would not type the letter 'c'. It turned out to be due to a corrupted preference file of all things.

--------------------
Überraschung des Dosenöffners!
Posts: 627 | Registered: Monday, March 7 2005 08:00
what the hell is this? in General
Infiltrator
Member # 5576
Profile Homepage #10
I don't know if this is original, or if it was added in the last couple of hours, but the site says:

quote:
A few of you may know the Avernum trilogy of computer games from Spiderweb Software. The Avernum of this campaign is not the Avernum of those games. If a character from one of the worlds were to be suddenly transported to the other, he might get a strong sense of deja-vu, but he'd still be at a loss as to what the hell was going on. So if you're not familiar with the computer games, don't worry; you won't feel left out. Actually, you'll probably be better off, not having to wonder when I'll get around to throwing the stupid giant talking spiders at you.


--------------------
Überraschung des Dosenöffners!
Posts: 627 | Registered: Monday, March 7 2005 08:00
Specific spell immunity in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #11
In A2 and A3 (I haven't played A1, yet anyway), npcs can cast arcane shield, for instance. However in BoA, I really think that they can't.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Specific spell immunity in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #11
In A2 and A3 (I haven't played A1, yet anyway), npcs can cast arcane shield, for instance. However in BoA, I really think that they can't.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
what party do you use? in The Avernum Trilogy
Infiltrator
Member # 5576
Profile Homepage #12
I always use a slith pole-weapons warrior, a nephil archer, a human mage, and a human priest. I then go on to make sure that they all are reasonably good at melee and archery, train the nephil in some mage a priest skills, and develop the priest's potions skill.
I realize the massive redundancy with this party, but I'm rather paranoid, and want them all to be able to do anything they may need to.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Specific spell immunity in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #8
Monsters can't cast Simulacrum, Arcane Shield, or Repel Spirit. There are others too, but these are the ones that matter the most to combat.

[ Tuesday, September 27, 2005 14:21: Message edited by: Niemand ]

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Specific spell immunity in Blades of Avernum
Infiltrator
Member # 5576
Profile Homepage #8
Monsters can't cast Simulacrum, Arcane Shield, or Repel Spirit. There are others too, but these are the ones that matter the most to combat.

[ Tuesday, September 27, 2005 14:21: Message edited by: Niemand ]

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00
Specific spell immunity in Blades of Avernum Editor
Infiltrator
Member # 5576
Profile Homepage #5
That's true, I didn't think about charming. I would guess, though, that if this creature is to be immune to simulacrum, it is probably pretty powerful, and might just resist charming on its own. Or, to combine my idea with Thuryl's, how about a script that erases itself if friendly to the party, but not if one of its memorycells is set a certain way? You just set that memorycell for the creature that you actually place, so that it will never erase itself, but if it gets simulacrummed, the duplicate will not have the cell set and will erase itself.

--------------------
Überraschung des Dosenöffners!
"On guard, you musty sofa!"
Posts: 627 | Registered: Monday, March 7 2005 08:00

Pages