BoA Editor Suggestions

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).

Pages

AuthorTopic: BoA Editor Suggestions
Infiltrator
Member # 148
Profile #75
quote:
Originally written by *i:

If the player wants to cheat, they will find a way. If the only reason for deny_spell() is really to ensure against that, then there is no reason for it. If players want to cheat, let them. It's their loss.
How about this:

deny_spell(what_spell, what_char_group, is_items, how_long)

What spell is what spell#
What_char_group means it can be any char, or a group. -1 means all chars
is_items, 0 or 1. 0 = Not for items, 1 = items too.
how_long gives a time limit. -1 means forever, 0 disables.

And yes, the whole point is to disable spells.

--------------------
My ego is bigger than yours.
Posts: 480 | Registered: Thursday, October 11 2001 07:00
The Establishment
Member # 6
Profile #76
I'm still not convinced that it is even doable without major engine modification, let alone necessary.

This seems like a MAJOR modification for such a little gain. What will significantly be improved by it? All I see now are periferal things that could be done other ways. Keeping the list reasonable is the only way we have of this being considered.

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
BANNED
Member # 4
Profile Homepage #77
Just keep track of the party's spell levels via SDFs, and call a node in the scenario's start script to axe that spell level- change it by -99 levels or summat- so that they can use it for, um... ...one turn at maximum, I suppose.

--------------------
*
Posts: 6936 | Registered: Tuesday, September 18 2001 07:00
Agent
Member # 2820
Profile #78
Whoops, I misinterpreted the deny_spell() suggestion. I thought its only purpose was to turn off ranges of spells like bolt of fire from creature casters.

Can't you do a spawn_creature(my_number()) in the DEAD_STATE to accomplish this?

--------------------
Thuryl: I mean, most of us don't go around consuming our own bodily fluids, no matter how delicious they are.
====
Alorael: War and violence would end if we all had each other's babies!
====
Drakefyre: Those are hideous mangos.
Posts: 1415 | Registered: Thursday, March 27 2003 08:00
Infiltrator
Member # 148
Profile #79
And for non-party members?

--------------------
My ego is bigger than yours.
Posts: 480 | Registered: Thursday, October 11 2001 07:00
The Establishment
Member # 6
Profile #80
You could always do something like:

i = 6;
while (i <= 60) {
change_spell_level();
i = i + 1;
}
I can't recall the exact call that changes spell level right now, so I could be wrong on that. Put this in the entry state with each spell you want to omit and you should be fine. Just make sure summoned creatures cannot be casters or place it to run periodically in the START_STATE.

But seriously, the real problem with deny_spell() is it requires engine modification to the coded spellcasting AI. This is very unlikely to happen as it will create version problems among the games.

[ Wednesday, August 18, 2004 03:50: Message edited by: *i ]

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
The Establishment
Member # 6
Profile #81
More suggestions:

Data storage and Manipulation

vector v1(n)
matrix m1(m,n)


Placed in the variables section. Creates either: a vector array of size (1xn) or a matrix array of size (mxn) to store data. If full matrices are too much, vectors would be fine.

v1(i)
m1(i,j)


Returns the ith component of vector v1 and the i,jth component of matrix m1 respectively.

General Calls

run_imported_state(file_name, state_number);
run_imported_state_continue(file_name, state_number);


Runs state state_number out of file file_name. The former call ends the current call whereas the latter finishes the given call. See set_state() and set_state_continue.

Improved Spellcasting Calls

If we want to suggest something that can modify the way creatures cast spells, why not make it a bit more streamlined.

cr_spell_lib(file_name)
import_spell_lib(file_name)


Placed either in scenario data script for the former and in the INIT_STATE of creature script for the latter. Gives a range or library of acceptable spells to be cast which is stored in a text file like a script. If call is not given, defaults to some default spell library. Use of this call in a creature script clears the current creature's spell library.

add_spell_to_lib(mage_or_priest, which_spell, spell_level, spell_frequency);

Adds spell (mage spell for mage_or_priest = 0, priest spell for mage_or_priest = 1) which_spell at spell level spell_level to the library text file. Monster casts the spell seldomly for spell_frequency = 0, uncommonly for spell_frequency = 1, and commomly otherwise.

I'm not sure if these are implementable or not, but it should be a good way of modulating what spells creatures can cast.

[ Wednesday, August 18, 2004 04:12: Message edited by: *i ]

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
Agent
Member # 2820
Profile #82
That is an EXTREME engine modification, although arrays and matrices would be ever so helpful. Or, in the style of C:

short v1[size]

Now that I think of it, in the custom object scripts, how come the arrays aren't enclosed in brackets?

The spell library idea is a great one, and I think it could be implemented with little creative work from Jeff. But the frequency thing might be a little too much to ask for, since the basic AI for all creatures is pretty much consistent and hard coded throughout. I would imagine the file would be like this:

beginspelllib;

ORIGINAL_MAGE; // The original stuff must be manually typed in by you
// FORMAT: spell_number = spell_level
// clear; clears all spells in block
clear;
5 = 5;
19 = 1;

ORIGINAL_PRIEST;
0 = 11;
10 = 4;

CURRENT_MAGE;
//BLAH BLAH BLAH
CURRENT_PRIEST;
EDIT: When are you going to update the front post and send this to JZ?

[ Wednesday, August 18, 2004 06:18: Message edited by: Garrison ]

--------------------
Thuryl: I mean, most of us don't go around consuming our own bodily fluids, no matter how delicious they are.
====
Alorael: War and violence would end if we all had each other's babies!
====
Drakefyre: Those are hideous mangos.
Posts: 1415 | Registered: Thursday, March 27 2003 08:00
Infiltrator
Member # 148
Profile #83
If there is no way to calculate the weight of a party/individual, then a function to do so would be nice.

--------------------
My ego is bigger than yours.
Posts: 480 | Registered: Thursday, October 11 2001 07:00
Off With Their Heads
Member # 4045
Profile Homepage #84
Um, why the hell do you need spell libraries? You can do this already with change_spell_level, as you pointed out.

I've been maintaining the organized list here. Since it's so long at this point, we probably ought to prioritize and pick out the best ones once we're done brainstorming. That could very well be another thread.

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00
Agent
Member # 2820
Profile #85
Spell libraries would be nice, but this form of it wouldn't be necessary if he defined an #include <thingus.txt> statement.

I'm going to look through this and sift out what seems reasonable. You can start the refinement topic, if you wish, Kel.

And this:

short waypoint_x(short which_wayp) - Returns the x coordinate of waypoint which_wayp.

short waypoint_y(short which_wayp) - Returns the y coordinate of waypoint which_wayp.

EDIT: There are also several issues/bugs to resolve with the current engine. I have a list of them somewhere on my computer since I listed them as I saw them.

[ Thursday, August 19, 2004 11:05: Message edited by: Garrison ]

--------------------
Thuryl: I mean, most of us don't go around consuming our own bodily fluids, no matter how delicious they are.
====
Alorael: War and violence would end if we all had each other's babies!
====
Drakefyre: Those are hideous mangos.
Posts: 1415 | Registered: Thursday, March 27 2003 08:00
The Establishment
Member # 6
Profile #86
Spell libraries wouldn't be necessary, but just serve as a way to tell which spells we want a certain monster to use. Of course, this is probably not implementable anyway, so I would put priority as quite low. I suggested it as an alternative to the deny_spell() command which seemed limited.

Kel, think you can modify the set_immunity call such that it reads:

set_immunity(immunity_type, value);

[ Thursday, August 19, 2004 11:28: Message edited by: *i ]

--------------------
Your flower power is no match for my glower power!
Posts: 3726 | Registered: Tuesday, September 18 2001 07:00
Off With Their Heads
Member # 4045
Profile Homepage #87
Okay, there's a new thread for prioritizing our list. Stop by and explain which calls you think would be most useful and why.

--------------------
Arancaytar: Every time you ask people to compare TM and Kel, you endanger the poor, fluffy kittens.
Smoo: Get ready to face the walls!
Ephesos: In conclusion, yarr.

Kelandon's Pink and Pretty Page!!: the authorized location for all things by me
The Archive of all released BoE scenarios ever
Posts: 7968 | Registered: Saturday, February 28 2004 08:00

Pages