Author Topic: Quick 2da Question  (Read 806 times)

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« on: November 07, 2010, 10:21:47 pm »


               Hey I did some searching on this and I can't find a definitive answer.  Can someone please link me to a source or answer the following question?

Which 2da's can you edit and put in the override on the host machine such that clients will be able to make use of the changes without also needing the 2da in their override (client side).

I ask, because I noticed that a server-side resturdation.2da works fine, but when I tried to make a spell castable on self and others via spells.2da the clients could not have it work unless they also had the override.

Cheers.
               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Quick 2da Question
« Reply #1 on: November 07, 2010, 10:38:13 pm »


               Lol. No idea how many times I've seen this asked. Simple answer is that there's no comprehensive list, or at least there wasn't last time I checked. I think most people do what I do, and test to see. If you have questions about other 2das you haven't tested, by all means, ask. Generally speaking, things related to the client's bic file are going to require a clientside hak, but that's a very nebulous guideline.

Worse, it isn't as clear cut as you seem to think, with a 2da being either strictly required by the client or not. Item properties, for example, do not require a client hak to WORK, but they do need it if they're going to be able to see anything but BADSTRREF for the property on an item that has them (generally speaking, though you can do what HG does and hack the engine not to display them - we put additional text in the descriptions to indicate the presence of the prop for those without our optional hak). Ditto with feats and spells. You can run a server that uses custom 2da feats and spells, but only those with the appropriate 2da will be able to see the feats or cast the spells. This is a great use for cep's custom hak, by the way. Other stuff is absolutely required for the client, and still more is totally serverside.

This would be a nice project for someone with free time, setting up a sticky that kept an updated list of server-client compatibilities of 2das. It requires a fair amount of testing to discover this info.

Funky
               
               

               
            

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« Reply #2 on: November 07, 2010, 10:41:14 pm »


               I don't understand, because I've seen other servers use 2da's and I did not need to download them or put them in my override folder at all to get the changes.



For example, Bastions of War ( http://www.bastionso.../resources.html ) edited their server side spells.2da: Removes the somatic components for the Amplify and War Cry spells (like the bugged version prior to patch 1.69).



I don't need the 2da to see this working on their server when I play.  So this leads me to believe there must be some way to do this.
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Quick 2da Question
« Reply #3 on: November 07, 2010, 11:17:09 pm »


               spell components, and spell targets are server-side, try search, I think I made quite big list of which 2da are server side or which of their parts, it will be somewhere in custom content
               
               

               
            

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« Reply #4 on: November 07, 2010, 11:48:25 pm »


               Yea but I made a simple change in spells.2da to make a spell targettable on self as well as creatures.  However, only clients with the 2da in their override can see the effects.  The server has the 2da in the override.  So I don't understand what I am doing wrong there.
               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Quick 2da Question
« Reply #5 on: November 08, 2010, 12:13:00 am »


               What do you mean, 'see the effects'? Do you mean only they can target at the altered ranges? If you mean new visual effects, clients definitely need files to see those - though again, you can hack default vfx into the engine for those without the required files, as acaos did for HG.



Funky
               
               

               
            

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« Reply #6 on: November 08, 2010, 12:18:39 am »


               Here let me just give a very simple example.

The goal is to make the "Harm" spell self-castable as well as castable on Creatures, Doors, & Placeables.

By default, "Harm" cannot be cast on oneself.

The place in the game files that specifies this targetting feature is a hex value in spells.2da

So I find this entry for "Harm" and change it accordingly, put the spells.2da in the override of the server machine, and then load up the module.


The server machine can cast "Harm" on self just fine, the client machines without the 2da cannot target themself.


I was told (above) that the targetting portion of the spells.2da is server-side.  If so.. how can I achieve this seemingly simple task without requiring my clients to have to download hak/override files?
               
               

               


                     Modifié par Dae-Glyth, 08 novembre 2010 - 12:19 .
                     
                  


            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
Quick 2da Question
« Reply #7 on: November 08, 2010, 12:28:10 am »


               There is an .ini setting you may need to turn off, If you are useing a modified server side spells.2da.  Here is what the bioware patch notes state:



- Added a new nwnplayer.ini setting to have the server do some spell validation for spells cast by players. Under [Server Options] set "Validate Spells=1". Note: If you are using an edited spells.2da that is only being used server side, you may want to disable this option if your players are finding that they can't cast certain spells anymore (the log file should indicated if this is happening).
               
               

               
            

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« Reply #8 on: November 08, 2010, 12:32:35 am »


               Right, I knew about this ini setting.  With it on the clients without the 2da cannot even cast the spell at all.  It will report to them that they have none prepared even if they do.  I have had this setting off and always off.



The part I am confused about is... what is "server side spells.2da" so far any change I make to a server's copy of the 2da in the server's override folder cannot be seen at all by clients.
               
               

               
            

Legacy_Lightfoot8

  • Hero Member
  • *****
  • Posts: 4797
  • Karma: +0/-0
Quick 2da Question
« Reply #9 on: November 08, 2010, 01:08:53 am »


               I have never explictly tested the targeting collumn of the 2da too see if it can be used server side only.  Since  targeting is a function of the client, there is a good chance that the client will load the value from its own resources and not request the information from the server.   If I where you I would experement with a new 2da line that does not exsist on the client side to see if the server will pass the new targeting information to the client.
               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Quick 2da Question
« Reply #10 on: November 08, 2010, 01:27:51 am »


               I think you might actually have to turn spell validation OFF in order to get this to work - not that I necessarily recommend doing that. I haven't tested this particular behavior myself, since our spell system includes new spells, for the most part. It does have a few spell.2da edits, but most of our edits are in code, and acaos handled the 2da side. I'm inclined to trust Shadow, though what he says rubs against my intuitions.

Funky
               
               

               


                     Modifié par FunkySwerve, 08 novembre 2010 - 01:30 .
                     
                  


            

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« Reply #11 on: November 08, 2010, 01:41:06 am »


               From what I've been able to do through testing, there's no way to change the targetting of a spell without having your client have the 2da in their override (or a hak pack with the 2da).  Which is most disappointing since all I want is for undead PC's to be able to self-cast harm, and requiring clients to download a file for that seems silly to me.
               
               

               
            

Legacy_Shadooow

  • Hero Member
  • *****
  • Posts: 7698
  • Karma: +0/-0
Quick 2da Question
« Reply #12 on: November 08, 2010, 01:49:50 am »


               Hmm, maybe im wrong, im not sure now, will try it on my own too then.
               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Quick 2da Question
« Reply #13 on: November 08, 2010, 02:29:16 am »


               You should be able to code around that, though it'll probably be somewhat hacktastic. For example, you could give them a chat command (or conversation, or whatever) that toggles a variable on them on/off. If the variable is on, when they cast harm, it will redirect to target them, regardless of target. Hardly ideal, given the need for a hostile target. The option that you settle on will depend heavily on your tastes, what you find immersion-breaking, etc - assuming you decide to do it at all.



Funky
               
               

               
            

Legacy_Dae-Glyth

  • Newbie
  • *
  • Posts: 28
  • Karma: +0/-0
Quick 2da Question
« Reply #14 on: November 08, 2010, 02:38:10 am »


               Well, if I were going to "hack" it like that I would probably just give them an item in their inventory that if they cast harm on the item it would instead heal themselves, and on any other target function as normal.  



Rather than the local variable & chat thing, etc.