[XP] Blizz-ABS

Started by Blizzard, January 09, 2008, 08:21:56 am

Previous topic - Next topic

memyselforwho

Quote from: Aqua on April 24, 2008, 11:07:24 am
Um... well...
Here's her demo with everything included XD


At this point your probably expecting me to add another problem to the list.

But however i don't have anymore, sorry.

Thanks a lot for all your help, it works just about flawlessly.

Aqua

Quote from: memyselforwho on April 24, 2008, 11:21:23 am
Quote from: Aqua on April 24, 2008, 11:07:24 am
Um... well...
Here's her demo with everything included XD


At this point your probably expecting me to add another problem to the list.

But however i don't have anymore, sorry.

Thanks a lot for all your help, it works just about flawlessly.


Hehe glad I was able to help.

memyselforwho

Quote from: Aqua on April 24, 2008, 11:22:17 am
Quote from: memyselforwho on April 24, 2008, 11:21:23 am
Quote from: Aqua on April 24, 2008, 11:07:24 am
Um... well...
Here's her demo with everything included XD


At this point your probably expecting me to add another problem to the list.

But however i don't have anymore, sorry.

Thanks a lot for all your help, it works just about flawlessly.


Hehe glad I was able to help.


Since you use this script as well, i was wondering if you could tell me how to do something that I'm sure is simple... Its not really a problem at all, its just that i dont know how to make enemies around my map, and fight them in the way that this script intends...

Sorry for bugging you haha.

Aqua

Creating enemies is mentioned in section 3.1. of the Manual.

3.1. Creating Enemies: ShowHide
Quote
Creating an enemy is divided into three simple steps from which you most probably already
know two.
3.1.1. Create your Enemy
Go into the database and select the Enemies tab.
Now choose an enemy slot and just make one.
3.1.2. Put your Enemy on the Map
The next step is to create an event on your map and name it correctly. You can name your
event however you want, just be sure to include this syntax in its name:
\e[ID]
ID is the database ID of the enemy. In the example below it would be the Ghost with ID 1.
You have additional options for creating enemies, such as AI setup. You have following
additional syntaxes:
\a[X] - AI attribute setup (read 4.1. for more information)
\h - hides health bar for this enemy if using "2.4.5. Enemy Health Bars"
\m - disables enemy movement
Enemies on the map have a standard behavior which they will always follow. This behavior
can be modified with 8 different attributes. The attributes are in following order:
1 - passive
2 - actions
3 - observe
4 - defensive
5 - leader
6 - call for help
7 - healer
8 - full power
When you set up the attributes, you MUST set all 8 bits, otherwise you can experience
bugs! When you use 0 for a bit, the attribute is turned off. When you use 1, the attribute is
turned on. The numbers of the attributes are the positions from left to right.
examples:
\a[01101000] - actions, observe and leader are active
\a[10000000] - passive is active
\a[00100001] - observe and full power are active
\a[00100110] - observe, call for help and healer are active
\a[11111111] - all attributes are active
Any enemy who does not have a configuration of those attributes in his name will use the
default behavior which can be specified in the Blizz-ABS module with the option Default
Enemy AI Setup (2.5.1.).
The created enemy in the example below would be an enemy with ID 3 in the database that
has all possible attributes active except the passive attribute.
3.1.3. Spriteset Choice
You can choose an appropriate spriteset for your enemy event, but you don't have to...
You have the possibility to "cloak" your enemies if you want. You can even create an
invisible enemy. In this case be sure to check whether you have ABSEAL Autokill (2.3.2.)
turned on, since you will have to use an empty 8 × 4 pixel-sized dummy spriteset, because
ABSEAL Autokill doesn't update enemies without spriteset.
You could also create an item that allows the player to see ghosts. Create a parallel
process that turns on a switch whether the player is in possession of that specific item.
Create a normal enemy without spriteset on page one and the same enemy with the
appropriate spriteset on page two with the switch mentioned before as condition. If the
player is in possession of the item, he will see enemies with a normal spriteset, otherwise
they will be invisible to him and makes it harder to hit them. Note that the destruction
engine animates enemy deaths by their ID, not by their spriteset. That means an enemy will
die the same way whichever spriteset he is using.

memyselforwho

Quote from: Aqua on April 24, 2008, 11:52:14 am
Creating enemies is mentioned in section 3.1. of the Manual.

3.1. Creating Enemies: ShowHide
Quote
Creating an enemy is divided into three simple steps from which you most probably already
know two.
3.1.1. Create your Enemy
Go into the database and select the Enemies tab.
Now choose an enemy slot and just make one.
3.1.2. Put your Enemy on the Map
The next step is to create an event on your map and name it correctly. You can name your
event however you want, just be sure to include this syntax in its name:
\e[ID]
ID is the database ID of the enemy. In the example below it would be the Ghost with ID 1.
You have additional options for creating enemies, such as AI setup. You have following
additional syntaxes:
\a[X] - AI attribute setup (read 4.1. for more information)
\h - hides health bar for this enemy if using "2.4.5. Enemy Health Bars"
\m - disables enemy movement
Enemies on the map have a standard behavior which they will always follow. This behavior
can be modified with 8 different attributes. The attributes are in following order:
1 - passive
2 - actions
3 - observe
4 - defensive
5 - leader
6 - call for help
7 - healer
8 - full power
When you set up the attributes, you MUST set all 8 bits, otherwise you can experience
bugs! When you use 0 for a bit, the attribute is turned off. When you use 1, the attribute is
turned on. The numbers of the attributes are the positions from left to right.
examples:
\a[01101000] - actions, observe and leader are active
\a[10000000] - passive is active
\a[00100001] - observe and full power are active
\a[00100110] - observe, call for help and healer are active
\a[11111111] - all attributes are active
Any enemy who does not have a configuration of those attributes in his name will use the
default behavior which can be specified in the Blizz-ABS module with the option Default
Enemy AI Setup (2.5.1.).
The created enemy in the example below would be an enemy with ID 3 in the database that
has all possible attributes active except the passive attribute.
3.1.3. Spriteset Choice
You can choose an appropriate spriteset for your enemy event, but you don't have to...
You have the possibility to "cloak" your enemies if you want. You can even create an
invisible enemy. In this case be sure to check whether you have ABSEAL Autokill (2.3.2.)
turned on, since you will have to use an empty 8 × 4 pixel-sized dummy spriteset, because
ABSEAL Autokill doesn't update enemies without spriteset.
You could also create an item that allows the player to see ghosts. Create a parallel
process that turns on a switch whether the player is in possession of that specific item.
Create a normal enemy without spriteset on page one and the same enemy with the
appropriate spriteset on page two with the switch mentioned before as condition. If the
player is in possession of the item, he will see enemies with a normal spriteset, otherwise
they will be invisible to him and makes it harder to hit them. Note that the destruction
engine animates enemy deaths by their ID, not by their spriteset. That means an enemy will
die the same way whichever spriteset he is using.



Ahhh I have one more quick question, this time about the UMS messaging system...

Ok, where do I add the fit to box text code, in a separate event in every map?
And how come the text won't go over the players head, but will with other charectors?

if you can help I'd appreciate it, if not thats ok.


Aqua

Fit to text:
Have an event (doesn't matter which but maybe a cutscene event) have a script command:
$game_system.ums_mode = 
FIT_WINDOW_TO_TEXT


Text over player:
Add \e[0] to the text

memyselforwho

Quote from: Aqua on April 24, 2008, 06:01:23 pm
Fit to text:
Have an event (doesn't matter which but maybe a cutscene event) have a script command:
$game_system.ums_mode = 
FIT_WINDOW_TO_TEXT


Text over player:
Add \e[0] to the text


Thanks a lot ; ) You rule!

Mr.Happy

Encountered an error using the script.

"Script line 6019: SystemStackError occurred/

stack level too deep"


That appears less than a second after i click the new game button.

Aqua

Quote from: Mr.Happy on April 25, 2008, 02:09:56 am
Encountered an error using the script.

"Script line 6019: SystemStackError occurred/

stack level too deep"


That appears less than a second after i click the new game button.


Um... did you put the script in the database as 3 different parts one under the other as Part 1, 2, then 3?

If not... you're gonna have to wait for Blizz XD

Mr.Happy

Quote from: Aqua on April 25, 2008, 09:55:20 am
Quote from: Mr.Happy on April 25, 2008, 02:09:56 am
Encountered an error using the script.

"Script line 6019: SystemStackError occurred/

stack level too deep"


That appears less than a second after i click the new game button.


Um... did you put the script in the database as 3 different parts one under the other as Part 1, 2, then 3?

If not... you're gonna have to wait for Blizz XD


Yeah I did, I'm pretty sure the problem is that 2 of my creatures have leader chosen...

Juan

from what I can tell might of copyed the script twice by mistake or your scripts might be in the wrong script order. Check
http://chaos-project.com/cpforum/index.php?topic=23.0
Dropbox Who need luck when you can make your own.
3ds Friend code: ShowHide
 4468 1422  6617

Blizzard

If I'm not wrong this is a bug from an earlier version. An earlier version really did cause a "Stack level too deep" error when making enemies leaders. Are you using the most recent version (1.98)? If not, simply go to the first post of this topic, there's a download link.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Mr.Happy

Quote from: Blizzard on April 25, 2008, 12:00:27 pm
If I'm not wrong this is a bug from an earlier version. An earlier version really did cause a "Stack level too deep" error when making enemies leaders. Are you using the most recent version (1.98)? If not, simply go to the first post of this topic, there's a download link.


Yeah I'm using the newest version. I managed to create one leader without the crash... Any more than one and it crashes though.

It's not a big deal, everything else works great and runs smoothly.



Sort of a noobish question, The "Player" Doesn't die when he is killed by enemies, instead he becomes invisible and can't attack, I'm sure I just forgot to set something...

Blizzard

Hm... Usually game over sets in when all party members are dead. Could be my mistake as well.

And that bug IS a serious issue. >.> Everything that causes a crash is a serious issue to me. I think I know what the problem is. The bug in the earlier version happened when two enemies got within range and could see each other. If 2 leaders have that problem, I know what the cause is.
You see, the technical detail here is that each leader has an array of minions and each other enemy can have a leader assigned. The problem most probably happens when a leader tries to add the other leader to his minion array. Then he calls the same method for the other leader. Now, when the other leader adds the first leader to his array and calls his method again, there is a "Stack level too deep" error as RGSS Ruby doesn't allow recursion. Even if it would, this would end up freezing the game as there is no "exit condition" of this recursion. I'll be sure to fix this. I don't use leaders yet and even if I do, I use only one when testing Blizz-ABS, so I wasn't likely to find that bug myself.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Mr.Happy

Quote from: Blizzard on April 25, 2008, 01:22:16 pm
Hm... Usually game over sets in when all party members are dead. Could be my mistake as well.

And that bug IS a serious issue. >.> Everything that causes a crash is a serious issue to me. I think I know what the problem is. The bug in the earlier version happened when two enemies got within range and could see each other. If 2 leaders have that problem, I know what the cause is.
You see, the technical detail here is that each leader has an array of minions and each other enemy can have a leader assigned. The problem most probably happens when a leader tries to add the other leader to his minion array. Then he calls the same method for the other leader. Now, when the other leader adds the first leader to his array and calls his method again, there is a "Stack level too deep" error as RGSS Ruby doesn't allow recursion. Even if it would, this would end up freezing the game as there is no "exit condition" of this recursion. I'll be sure to fix this. I don't use leaders yet and even if I do, I use only one when testing Blizz-ABS, so I wasn't likely to find that bug myself.



Thanks for explaining. Will you fix this in the next version? And yeah, I don't often use leaders, I just decided to test the whole leader thing out.


Blizzard

Of course I will fix that. :) Just gimme a bit of time, I have exams the next two weeks. I might throw in v1.99 in the meantime, though.
Check out Daygames and our games:

King of Booze 2      King of Booze: Never Ever
Drinking Game for Android      Never have I ever for Android
Drinking Game for iOS      Never have I ever for iOS


Quote from: winkioI do not speak to bricks, either as individuals or in wall form.

Quote from: Barney StinsonWhen I get sad, I stop being sad and be awesome instead. True story.

Mr.Happy

Quote from: Blizzard on April 25, 2008, 04:02:00 pm
Of course I will fix that. :) Just gimme a bit of time, I have exams the next two weeks. I might throw in v1.99 in the meantime, though.


Sounds great, thanks a lot for this awesome script (by the way).

diablosbud

Well Blizzard I did what you said exactly but with a compatible script it's just I was wondering if there was a call script to stop the player from opening the HUD and it closes the HUD (what the Z key does, but it disables the Z key until the cutscene ends, that way I can still have battles, and movement in cutscenes).

Aqua

Quote from: diablosbud on April 26, 2008, 03:42:46 pm
Well Blizzard I did what you said exactly but with a compatible script it's just I was wondering if there was a call script to stop the player from opening the HUD and it closes the HUD (what the Z key does, but it disables the Z key until the cutscene ends, that way I can still have battles, and movement in cutscenes).



Quote from: From the Manual XD
3.2.7. Blizz-ABS Controls Manipulation
If you need to disable Blizz-ABS controls during the game for some special occasions, you
can call an event "Call script" command and use following syntax to change this value even
during the game:
$game_system.blizzabs = POSSIBLE_VALUE
POSSIBLE_VALUE is either "true", "false" or "nil" (without the double quotes). This
command will completely override Disable ABS (2.1.5.). If you set it to "true", Blizz-ABS
controls will be available whatever occasion might be (i.e. during the execution of an
event). If you set this option to "false" Blizz-ABS controls will be disabled whatever
occasion might be (i.e. a map full of enemies). If you set it to "nil", the Blizz-ABS itself will
take over the availability of the controls again. This option is initially "nil".
You can also disable only specific buttons. Use an event "Call script" command and use
following syntax to change the availability of one of the buttons during the game:
$game_system.attack_button = POSSIBLE_VALUE
$game_system.defend_button = POSSIBLE_VALUE
$game_system.skill_button = POSSIBLE_VALUE
$game_system.item_button = POSSIBLE_VALUE
$game_system.select_button = POSSIBLE_VALUE
$game_system.hud_button = POSSIBLE_VALUE
$game_system.hotkey_button = POSSIBLE_VALUE
$game_system.minimap_button = POSSIBLE_VALUE
$game_system.turn_button = POSSIBLE_VALUE
$game_system.running_button = POSSIBLE_VALUE
$game_system.sneaking_button = POSSIBLE_VALUE
$game_system.jumping_button = POSSIBLE_VALUE
POSSIBLE_VALUE is either "true" or "false" (without the double quotes). If you don't use
running, sneaking or jumping, it is recommended that you don't ever turn those buttons on.


I think that's what you're asking, right?

diablosbud

Yea, thanks Aqua, now I only need one more thing done please and sorry. I need it so I can use a call script to disable the full HUD and then it checks if it was on before the cutscene and if it was enables the pieces that were running before. That is not needed but the full HUD disabling is needed, could someone please help me do this?