Here's a patch adding a bunch of new commands. With this patch, I'll no longer need the non-canonical parameters for read enemy data, so you can proceed with your crazy plan.
Functions added: +527,enemyelementalresistasint,2,-1,0 # percentage damage taken from an element rounded to an int (enemy, element) +528,readattacktargetclass,1,0 #returns the target class (ally, enemy, etc.) of the given attack +529,readattacktargetsetting,1,0 #returns the target setting (focused, spread, etc.) of the given attack +530,readattackdamageequation,1,0 #returns the damage equation (normal, sharp, etc.) of the given attack +531,readattackextradamage,1,0 #returns the extra damage modifier of the given attack +532,readattackitem,2,0,0 #returns item ID+1 of the given attack's nth item cost (attack, n [0..2]) +533,readattackitemquantity,2,0,0 #returns item quantity of the given attack's nth item cost (attack, n [0..2]) +534,readattackchain,2,0,0 #returns attack ID+1 of the given attack's chain (attack) +535,readattackchainrate,2,0,0 #returns chain rate of the given attack's chain (attack) +536,readattackelsechain,2,0,0 #returns attack ID+1 of the given attack's else chain (attack) +537,readattackelsechainrate,2,0,0#returns chain rate of the given attack's else chain (attack) +538,readattackinsteadchain,2,0,0 #returns attack ID+1 of the given attack's chain (attack) +539,readattackinsteadchainrate,2,0,0 #returns chain rate of the given attack's chain (attack) +540,readenemynormalattack,2,0,0 #returns the nth attack ID+1 of given enemy's normal attack set (id, n [0..4]) +541,readenemyaloneattack,2,0,0 #returns the nth attack ID+1 of given enemy's alone attack set (id, n [0..4]) +542,readenemydesperationattack,2,0,0 #returns the nth attack ID+1 of given enemy's desperation attack set (id, n [0..4]) It's a lot bigger and yet much more straightforward than yesterday's patch. On Fri, Sep 30, 2011 at 1:15 PM, Adam Perry <[email protected]> wrote: > > On Fri, Sep 30, 2011 at 1:11 PM, Mike Caron <[email protected]> wrote: > > On 30/09/2011 4:05 PM, James Paige wrote: > >> > >> On Fri, Sep 30, 2011 at 12:46:49PM -0700, Adam Perry wrote: > >>> > >>> Oh shooooooot, I was thinking that "read attack data" was an actual thing > >>> :( > >> > >> Nope, I was confused if I said it was. Read enemy data exists, but was a > >> bad idea. > >> > >>> Can it be an actual thing? Please? I will implement it all by myself. > >> > >> No. a "read anything data" command of any kind is a bad idea, and I > >> deeply regret any existing command that works that way. > >> > >> A command that loads a specific piece of data is tolerable, because the > >> underlying data format can change without requiring the plotscripting > >> command to do unfortunate backcompat mumbo-jumbo. > > > > Adam, just to clarify, the "read enemy data" command is the moral equivalent > > of doing something like this: > > > > void* theEnemy = ...; > > int enemyHP = *(((int*)theEnemy) + 23); //I know the HP is 23 * > > sizeof(int) bytes in, and assume it will never change > > > > I think it seemed like a good idea at the time, but we all know that > > hindsight is 20:20. > > > > To maintain compatability in the future, the command will have to change to > > something like: > > > > IF index = 23 THEN > > RETURN enemy.HP > > ELSE IF index = 12 THEN > > RETURN enemy.sprite > > ELSE ... > > We juggle live grenades here. It is what we do. > > >>> Anyway, the only actual "read enemy data" I am using is the command > >>> list. > >> > >> The command list? > >> Oh, the attacks that an enemy can do? > >> > >> Hrmm... That is going to change massively when I do > >> http://rpg.hamsterrepublic.com/ohrrpgce/Plan_for_enemy_AI_improvements > >> > >>> I will expose enemy elemental resists via a separate command > >>> altogether. > >> > >> Yeah, if it is a separate command it should be okay :) > >> > >> --- > >> James > >> > >>> On Fri, Sep 30, 2011 at 11:39 AM, Adam Perry<[email protected]> wrote: > >>>> > >>>> Semi-relatedly, I'm also planning to add a command to expose elemental > >>>> resistances for enemies. I'm trying to use > >>>> http://hamsterrepublic.com/ohrrpgce/nightly/ohrrpgce-source-nightly.zip, > >>>> though, and it doesn't actually have yesterday's changes. (I'd use SVN > >>>> directly, but I'm running into proxy issues.) > >>>> > >>>> More relatedly, are there plans to change the inner workings of read > >>>> enemy data? This doesn't matter too much for a potential "enemy > >>>> elemental resist as int" implementation, which can be changed if the > >>>> other is, but it might affect my plans for the script I'm working on. > >>>> > >>>> > >>>> On Fri, Sep 30, 2011 at 9:23 AM, Adam Perry<[email protected]> wrote: > >>>>> > >>>>> On Fri, Sep 30, 2011 at 8:53 AM, James Paige<[email protected]> > >>>>> wrote: > >>>>>> > >>>>>> On Thu, Sep 29, 2011 at 08:13:10PM -0700, Adam Perry wrote: > >>>>>>> > >>>>>>> On Thu, Sep 29, 2011 at 7:56 PM, Ralph Versteegen<[email protected]> > >>>>>>> wrote: > >>>>>>>> > >>>>>>>> On 30 September 2011 08:34, James Paige<[email protected]> > >>>>>>>> wrote: > >>>>>>>>> > >>>>>>>>> On Thu, Sep 29, 2011 at 11:55:26AM -0700, Adam Perry wrote: > >>>>>>>>>> > >>>>>>>>>> On Thu, Sep 29, 2011 at 11:26 AM, Adam Perry<[email protected]> > >>>>>>>>>> wrote: > >>>>>>>>>>> > >>>>>>>>>>> I'd like to add in a few more plotscripting commands, but I'm not > >>>>>>>>>>> sure > >>>>>>>>>>> what files need to be changed. The obvious one is plotscr.hsd, > >>>>>>>>>>> and I'm > >>>>>>>>>>> sure I can figure out what to do there, but what other files are > >>>>>>>>>>> involved? > >>>>>>>>>>> > >>>>>>>>>>> I'm not looking to do anything complicated; just getters/setters > >>>>>>>>>>> for > >>>>>>>>>>> things like door position and enemy attacks. > >>>>>>>>>>> > >>>>>>>>>> > >>>>>>>>>> Actually, some research shows that enemy attacks are already > >>>>>>>>>> exposed > >>>>>>>>>> (albeit via the arcane "read enemy data" command). So that's one > >>>>>>>>>> down. > >>>>>>>>> > >>>>>>>>> Yes, the "read enemy data" commands are unfortunately arcane, and > >>>>>>>>> will > >>>>>>>>> be a backcompat pain in the future. > >>>>>>>> > >>>>>>>> I had been thinking recently: let's not support read/writeenemydata > >>>>>>>> for anything other than the provided constants. If you haven't used > >>>>>>>> them, and I haven't used them, and Mogri hasn't used them, then we > >>>>>>>> can > >>>>>>>> be nearly sure that noone has. > >>>>>>>> > >>>>>>> But I just wrote a script using them extensively... > >>>>>> > >>>>>> Did you use any data index numbers other than the 11 documented in > >>>>>> > >>>>>> http://hamsterrepublic.com/ohrrpgce/docs/plotdict.xml#about-readenemydata > >>>>>> ? > >>>>> > >>>>> Here's the list of undocumented things I'm using so far: > >>>>> 3, attackdata:target class > >>>>> 4, attackdata:target setting > >>>>> 12, attackdata:chain > >>>>> 13, attackdata:chain rate > >>>>> I am also likely to use several more since I'm essentially pulling in > >>>>> attack data to use in a custom battle system. > >>>>> > >>>>> I'm okay rewriting this part if you have a somewhat immediate plan for > >>>>> exposing attack data. > >>>>> > >>>> > >>> _______________________________________________ > >>> Ohrrpgce mailing list > >>> [email protected] > >>> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org > >>> > >> _______________________________________________ > >> Ohrrpgce mailing list > >> [email protected] > >> http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org > > > > > > -- > > - Mike Caron > > _______________________________________________ > > Ohrrpgce mailing list > > [email protected] > > http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org > >
morecommands.patch
Description: Binary data
_______________________________________________ Ohrrpgce mailing list [email protected] http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
