|
Post by FunkySwerve on May 30, 2006 17:17:02 GMT
Ok, here's what you need to do: 1) Open fky_chat_inc in the script editor. 2) Find the GetIsSkillSuccessful functions on the following lines: 1968, 1969, 1983, 1984, 2016, 2017, 2041, 2042 3) Add 'Silent' in front of each of those 8 GetIsSkillSuccessful functions, so they each look like this: SilentGetIsSkillSuccessful 4) Add the SilentGetIsSkillSuccessful function near the top of fky_chat_inc, on line 22, between the const string sSpeech_PlayerID = "SpeechPlayerID_"; and the void InitSpeech() function:
const string sSpeech_PlayerID = "SpeechPlayerID_";
int SilentGetIsSkillSuccessful(object oPC, int nSkill, int nDC)//first added line { int nRank = GetSkillRank(nSkill, oPC); int nRoll = d20(); int nReturn; if ((nRank + nRoll) < nDC) return FALSE; else return TRUE; }//last added line
void InitSpeech()
5) Save the fky_chat_inc file. Save the module, build the module to recompile all scripts, then save again.
HTH, Funky
|
|
|
Post by valas on May 30, 2006 18:53:02 GMT
Thanks, I'll give it a try and let you know.
|
|
|
Post by valas on Jun 4, 2006 17:38:20 GMT
Thanks. That worked perfectly.
|
|
|
Post by lanessar on Jun 11, 2006 14:15:50 GMT
Question from Myth Drannor:
Is there a way to disable the "dms cannot port other dms-as-player" feature? As well, the dm_rez function, I think could be lifted without too much trouble. We use the port_hell, port_jail to port players or DMs that end up in OOC start (due to a strange bug which I will quash one of these days) after a reset. As well, there are times where DMs-as-players need to porthere or portthere at times, for various reasons. Can't be done currently if the target is a DMPC.
I'd also like to note this feature is probably pretty specific to our PW, and I doubt any other users run into problems with this.
I think these are the lines to modify in some way, and I do not want to disable the "dm_kill" restrictions or "dm_ban" restrictions.
if (GetStringLowerCase(GetStringLeft(sDMText, 4)) == "port") { sDMText = GetStringRight(sDMText, GetStringLength(sDMText) - 4); nText = FindSubString("here hell jail leader there town", sDMText); switch(nText) //0 5 10 15 22 28 { case -1: FloatingTextStringOnCreature("<cþ<<>Invalid Command!</c>", oDMPC, FALSE); break; case 0: if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) AssignCommand(oDMTarget, JumpToObject(oDMPC)); break; case 5: if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) AssignCommand(oDMTarget, JumpToLocation(GetLocation(GetWaypointByTag(LOCATION_HELL)))); break; case 10: if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) AssignCommand(oDMTarget, JumpToLocation(GetLocation(GetWaypointByTag(LOCATION_JAIL)))); break; case 15: if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) AssignCommand(oDMTarget, JumpToObject(GetFactionLeader(oDMTarget))); break; case 22: AssignCommand(oDMPC, JumpToObject(oDMTarget)); break; case 28: if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget))) AssignCommand(oDMTarget, JumpToLocation(GetLocation(GetWaypointByTag(LOCATION_TOWN)))); break; }
|
|
|
Post by FunkySwerve on Jun 11, 2006 16:04:38 GMT
If they are dms they can port themselves to you (or anyone else) using the portthere command, which is not target restricted. Naturally, they can also heal themselves, so neither of those lifts is really necessary. If you still want to remove the block just remove this if clause from in front of case 0 of the section you posted:
if ((!VerifyDMKey(oDMTarget)) && (!VerifyAdminKey(oDMTarget)))
making case 0 it look like this:
case 0: AssignCommand(oDMTarget, JumpToObject(oDMPC)); break;
VerifyDMKey is just a proxy GetIsDM function that checks the cd key list rather than a field on a character, ditto VerifyAdminKey. The change for allowing dms to heal other dms would be extrememly similar. LMK if you want me to post it. Best, Funky
|
|
|
Post by lanessar on Jun 11, 2006 16:55:25 GMT
I'll take what I can get. Oftentimes, DMs will be playing, and not able to log to get rid of a bug due to the events/having summons out/etc., so I like to give other DMs the option to fix problems on DMs as players. As dumb as it may sound.
|
|
|
Post by xtrick8 on Jul 30, 2006 23:22:39 GMT
I installed this into my mod, and it seems to work fine for the languages and the player commands etc.... This is a great piece of work BTW, and I will definitely be looking forward to see how this all works. The functionality that does not seem to work for me is the DM commands while in player mode. When I am logged in, it just treats me like a player. The rest works and there are no errors in any of the logs. I am running NWNx with ODBC2 and mySQL on a windows server.
And I double and triple checked that the DM CD Keys are correct....
Please help so I can get this excellent mod working for my DM team :-)
|
|
|
Post by FunkySwerve on Jul 30, 2006 23:25:40 GMT
If it's treating you like a player, the most likely problem is that you haven't added your cd keys to the dm or admin command in the config script, per the readme instructions. If that doesn't seem to fix it, post your config script here, please. Glad you like it! Only add the cd key of each person to the dm OR admin key function, if you add someone to both categories you will get doubled messages ingame. Funky
|
|
|
Post by xtrick8 on Jul 31, 2006 0:36:47 GMT
I definitely did add the CD keys of 5 DMs and myself as admin. It didn't work for anyone. I currently have myself in both, but I will fix that and test it. But this is still not working for DMs in DMDM mode or DMPC mode, they get Invalid channel for the /v command for example. And thanks for your quick reply :-)
ADDED: I am at work right now, but I can post the config file tonight, if I still cannot get this to work....
Also I just realised that I didnt do a build. Do I need to do a build before this functionality will work ? I tend not to do builds, since it takes so long and I do all the dev work incrementally.
|
|
|
Post by FunkySwerve on Jul 31, 2006 0:53:21 GMT
Did you build the module to recompile all the scripts after making the changes, and then save again? Otherwise it's as if you hadn't added to the file at all. Funky
|
|
|
Post by xtrick8 on Jul 31, 2006 1:43:08 GMT
That is probably it then. I don't tend to do a build very often, since it takes so long to do. I tend to save each script as I go and then save the module. Does this have some dependancy on doing a build ? I guess that is probably the case. Thanks again. I am definitely giving this a 10 when I get it to work, your support is awesome. :-)
|
|
|
Post by FunkySwerve on Jul 31, 2006 6:07:09 GMT
Whenever you edit an include, for the edits to have any effect on the scripts including them, you must recompile every script that uses them. That's the purpose of checking the scripts box in the build menu - doing it manually would be very tedious at best. Funky
|
|
|
Post by xtrick8 on Jul 31, 2006 14:17:35 GMT
Ok I did that and more stuff worked. Then I realised that I have a customised version of the module onactivateitem script. So I merged the code in fky_chat_ventril with the code I have and Ventrilo worked...that is great. Thanks for your help and providing a great tool. Do you plan to have this in NWN2 ?
|
|
|
Post by FunkySwerve on Jul 31, 2006 14:28:08 GMT
Yup, it'll be in NWN2, along with some expanded features, if I can keep everything streamlined. Thanks for the compliments! Funky
|
|
|
Post by xtrick8 on Aug 1, 2006 22:25:53 GMT
One small issue I have with this is that if I type *emotives of some sort* or //ooc something, I get invalid command and it doesn't display what I type. On our server we mainly do RP, so there are a lot of emotes between * * and out of character statements as //. Is there some way to make it so that it just ignores the * and / commands that it doesnt recognise ?
Oh one other thing that seems to happen is that the Ventrilo onactivateitem seems to fire when I am using the housing certificate in our mod. They must be using the same event or something. I run the Ventrilo and other onactivateitems via the ExecuteScript"script",OBJECT_SELF); command. Is there a problem with doing that ?
|
|