Aller au contenu

Photo

Shadow Thief: Crimmor


  • Veuillez vous connecter pour répondre
318 réponses à ce sujet

#76
kamal_

kamal_
  • Members
  • 5 240 messages

The Fred wrote...

Wow. What spells are you allowing as options? I've starting doing this in my module, too, but so far only for the Charm spells.

With a person you might charm, scare, curse, hold, immobilize, or even kill them to get what you want. So you need to add the whole lines of these spells. Keep in mind I'm allowing the player to cast offensive spells on people in conversation with the Hidden Theurgy ability (described above). Maybe you cast Enlarge Person on yourself for extra intimidation.

You have to try to look at creative uses for spells. For instance, you can play mumblypeg (Five Finger Fillet, the game where you knife between your outstretched fingers) in my module. There are 24 different spells you can use to cheat at mumblypeg. You can cast Premonition, allowing you to see a few seconds into the future so you can avoid sticking yourself. You can caste Expeditious Retreat (it specifically gives you a movement speed increase). My personal favorite, you can cast Remove Fear.... on your opponent....  :devil:

It depends on what you might need to do. I have a trap that's handled via conversation, I allow you to cast Premonition or Dark Foresight on yourself to bypass the trap, since these spells allow you to see the immediate future. The Identify line or Otherworldly Whispers will allow you to read foreign languages. True Strike allows you to make perfect forgeries. Mordenkainen's Disjuction will destroy a spellbook. Offensive spells can be cast on "sequencing crystals" for future effect offscreen (eg, you want to sabotage the goblin camp, so you let one capture some goody you've trapped in this manner to take back to base... BOOM!). Since these things are all being done via conversation, it's easy, just the time needed to figure out what you want to allow.

I keep the spell lists for the caster classes open in my browser, and have a copy of the spell.2da open as well (it's more complete than the text list on gamefaqs, which seems to be missing some things). Most of these spells are lower level spells, since the upper levels are focused on killing stuff.

Modifié par kamal_, 20 février 2011 - 01:15 .


#77
nicethugbert

nicethugbert
  • Members
  • 5 209 messages
NEAT!^NEAT!

#78
kamal_

kamal_
  • Members
  • 5 240 messages
Hidden Theurge is now a pseudo prc, as Master of Masks. My previous implementation only had skill prereqs, so it was far too easy to do. In Complete Scoundrel, Hidden Theurgy requires the skill prereqs, and the Hidden
Theurge skill trick [skill tricks cost two skill points and work like
minor feats].

This is a pseudo PRC with prerequisites of concentration 1, sleight of hands 5 and spellcraft 1. As a pseudo prc, you don't take actual levels in it, but can acquire a book for your library giving you access to it's abilities.

The Hidden Theurge combines the prestidigitation and misdirection of a street conman with the skills of a spellcaster. With enough misdirection, the Hidden Theurge can cast spells while talking to you, without anyone except the theurge ever being aware that they are being cast (at least until you're on the receiving end of a damage spell). Non damaging spells such as charm or fear do not alert the subject to the fact they've been cast, whether or not the subject is affected by them. This ability makes a Hidden Theurge extremely dangerous during any kind of negotiation or conversation.

Abilities: A Hidden Theuge can cast a spell during conversation by making a successful concentration, sleight of hands, and spellcraft check. The checks are as follows:
Spell level 0-3: Concentration 10, Sleight 15, Spellcraft 10
Spell level 4-6: Concentration 15, Sleight 20, Spellcraft 15
Spell level 7-9: Concentration 20, Sleight 25, Spellcraft 20
Spell level Epic: Concentration 25, Sleight 30, Spellcraft 25

Of course the Theurge must also know the spell in question. (And in NWN2 terms the builder must have thought to include a hidden theurgy check and a check for a given spell and figured out how you're going to deal with it.)

#79
The Fred

The Fred
  • Members
  • 2 516 messages
Aside from being NEAT, as NTB aptly put it, this sounds a lot like what you'd expect an Arcane Trickster to be able to do. Perhaps they ought to get access to some/all of this for free, get a bonus to checks, auto-pass on low level spells, etc or something like that? It might be magic use rather than pure rogue, but sounds very rogue-like. This is the sort of flavour I think rogues and ATs need.

#80
kamal_

kamal_
  • Members
  • 5 240 messages

The Fred wrote...

Aside from being NEAT, as NTB aptly put it, this sounds a lot like what you'd expect an Arcane Trickster to be able to do. Perhaps they ought to get access to some/all of this for free, get a bonus to checks, auto-pass on low level spells, etc or something like that? It might be magic use rather than pure rogue, but sounds very rogue-like. This is the sort of flavour I think rogues and ATs need.

AT's would be probably be a natural for it. Just like bards for the Master of Masks. But the sourcebook gives concentration and sleight of hand as a specific pre-req for the skill trick while neither is a AT pre-req, so AT's don't de-facto meet the requirements, you can be an AT with concentration 0 and sleight of hand 0. Hidden Theurge is something you'd become on top of being an AT, it's even more specialized.

Think of pseudo prcs as more like many prcs in PnP, or NWN9/SToA in the OC. You can only qualify if you meet certain conditions. In PnP for instance, one requirement of Stormlord is having survived being hit by lightning, and Palemasters have to spend a few days living in a tomb.

On the pseudo prc topic. These are easily enough to implement as long as they draw from things present in NWN2.  Just set a local int or a journal or feat, and check against that and any other pre-requisites. So Master of Masks is not so difficult, the prc is based on magic items that translate well. You wouldn't be able to make new masks or take advantage of their alignment disguise abilities in a module that didn't support it, but the existing masks would work, they're just magic headgear.

I plan to make the scripts, items and local ints required available on the vault, which will allow other builders to add these "classes", and we'll see what happens. Since the pseudo prc's work entirely via script, there are no hak compatibility issues, and since they rely on local ints, a builder could add support for them even if they don't allow you to become one.. Pseudo prcs are also unlimited in number, where real classes have a hard limit both in the number you can be as well as the number that can be available.

Hidden Theurge obviously needs more planning by the builder. And some hypothetical prc focused on flight mastery would pretty much be right out, though I suppose you could convert it roughly into mastery of movement related spells or something.

#81
kamal_

kamal_
  • Members
  • 5 240 messages
For my next trick, I have hidden weapons. (Think of that guy from Assassins Creed). These don't have new models, but scripting looks for their tags and adjust things appropriately. So you can walk around with a "hidden" dagger and people will simply not "see" it.

If you're carrying a regular weapon, people like merchants are going to refuse to talk to you. In addition, I'm going to alter the PRR pickpocket script so that if you're carrying a standard weapon while caught there will be a large rep penalty in addition to the regular ones fro pickpocket. This is because the npc will interpret the attempt as a mugging, not a pickpocket (ie they are threaten by the sword you have equipped). Hidden weapons do not trigger this extra penalty since they are not "visible".

I have some other tricks planned related to hidden weapons. If there's a confrontation and you do not have a weapon equipped but your opponent does, I hope to guarantee you lose initiative unless you have a much higher dex (since you must draw your weapon). Hidden weapons will avoid that penalty.

Hidden weapons include all weapons in the dart, shuriken, and unarmed strike category, as well as specially tagged daggers and shortswords. The Complete Scoundrel provides rules for hidden weapons like blades in your boot, and all of the weapons fall under daggers or shortswords. Regular daggers and short swords do not qualify, the weapon must be specifically designed to be hidden on the body.

-------------------------------------------------------
Sleeve Blade
Strapped to the forearm of it's wearer, a sleeve blade lies hidden under long-sleeved shirt or dress. Making a quick downward flick with the wrist triggers the mechanism, extending the blade beyond the top of the wearer's hand. Triggered, it functions as a dagger.

Special: Hidden Weapon. Weapons in the hidden category are designed to avoid detection. This isn't perfect, if there's a reason to search someone with a hidden weapon an opposed search check versus sleight of hand is made.

#82
The Fred

The Fred
  • Members
  • 2 516 messages
On the "psuedo PrCs": That sounds cool; I have, in the past, made PrCs with custom requirements by requiring a local var in the 2das and then just setting it through script when those requirements are met. They were actual classes, though.



On the hidden weapons: Those sound great. I had actually had the same idea myself, since my campaign will be set in a strict oriental society. However, I haven't gotten around to doing anything about it, yet. One thing, though - doesn't NWN2 allow you to draw a weapon pretty much instantly anyway? It would be nice if something could be done about that, since then I could give Ninjas and Samurai the swift drawing feats they're supposed to get by PnP rules, but I'm not sure how the engine works.

#83
kamal_

kamal_
  • Members
  • 5 240 messages

The Fred wrote...
On the hidden weapons: Those sound great. I had actually had the same idea myself, since my campaign will be set in a strict oriental society. However, I haven't gotten around to doing anything about it, yet. One thing, though - doesn't NWN2 allow you to draw a weapon pretty much instantly anyway? It would be nice if something could be done about that, since then I could give Ninjas and Samurai the swift drawing feats they're supposed to get by PnP rules, but I'm not sure how the engine works.

I'll be looking into initiative after finishing the weapon perception and seeing if I can redo intiative to account for whether you have a weapon equipped things as I said in my last post.

Weapon perception on pickpocketing and opening items tagged as owned by an npc is done. If you pickpocket someone or damage or unlock or open something someone opens, you get double the normal rep penalty if they see you have a weapon. This makes them almost always directly hostile. If you're "unarmed", you get the normal rep penalty of pickpocketing, and they are annoyed and will confront you, but not made automatically hostile.

I altered the PRR InventoryDisturbed script. It now also will check for the tag for "sh_hidden" anywhere in the tag for my pseudo category of specially designed hidden weapons, and if it doesn't find that it checks weapons by base item type (I categorize all darts, shuriken, torches, and unarmed as "hidden"). If the weapon's not in those categories it's returned as a visible weapon and given double the rep hit.

I'll be altering the onTalk script with weapon perception after that, and will probably make it so that friendly factions will talk to you even if you have a weapon equipped, but neutral factions will not. (I have no factions that are friendly to the pc by default, but stock defenders/commoners/merchants would be)

Modifié par kamal_, 21 février 2011 - 01:02 .


#84
kamal_

kamal_
  • Members
  • 5 240 messages
A weapon equipping speed delay is now also implemented (but not tested) for equipping non hidden weapons. This means it takes time to equip weapons, except for ones in the "hidden" category (as posted above).

The equipping delay currently set to 2.5 seconds, which means if you have a hidden weapon equipped, and the person you're talking to does not have a weapon equipped, you always strike first.

It also means no instant swapping in combat, if you're firing your crossbow and the enemy approaches, it takes you 2.5 seconds to draw your longsword, not instant (npc's take the same amount of time to switch). However, if you're firing your crossbow and the enemy approaches, it takes you zero seconds to pop out your sleeve blades.

With hidden weapons, now you can be a freakin :ph34r:

#85
nicethugbert

nicethugbert
  • Members
  • 5 209 messages
NEAT!^NEAT!NEAT!

I don't see full PrCs as useful. Pseudo PrCs work just fine.

Modifié par nicethugbert, 21 février 2011 - 04:09 .


#86
dunniteowl

dunniteowl
  • Members
  • 1 559 messages
When I grow up, I want to be as evil and devious as you, kamal. I am so looking forward to this.

dno

#87
The Fred

The Fred
  • Members
  • 2 516 messages
That sounds pretty cool (not to mention evil and devious). I like it. How are you implementing the delay, by the way?

#88
kamal_

kamal_
  • Members
  • 5 240 messages

The Fred wrote...

That sounds pretty cool (not to mention evil and devious). I like it. How are you implementing the delay, by the way?

Note: not tested ingame yet.

I'm overriding the default weapon equip scripts, eg: x2_mod_def_equ

What I do is delay the command to determine the combat round if you have a non-hideable weapon, and use the default command if you have a hideable weapon. We do this since the default is instant switch, which I only want to be for weapons in the "hidden" category. This is superior to adjusting initiative, which is hardcoded anyway, since adjusting the equip script handles both initial equipping of the weapon (initiative), and weapon switch in combat, all in one spot. I decided darts, shuriken were designed to be hidden by default, and of course unarmed doesn't require any equipping. So I made all weapons in these categories "hidden" by catching the category. I also catch any weapon with "sh_hidden" in it's tag since there's a function to search by substrings in tags.

The same basic code determines whether npc's notice the weapon, just switch out what's inside the statements for reputation adjustments and such. So this code runs in the InventoryDisturbed script as well, but adjusts reputation instead of doing the combat stuff shown here.

There could be an extra bracket at the end here, I just copied and pasted the relevant part of the equip script.

       
    /*kamal
    added to check if pc is weilding specific weapons
    used to add delay if not equipping specific weapons
    For my logic, darts, shuriken, unarmed and specially tagged weapons avoid extra rep penalty, other weapons     trigger delay.
    */


//first we check for weapons with "sh_hidden" in the tag, as these are special quickdraw hidden weapons
// FindSubString allows you to check partial tags, so you can make categories of custom weapons
// as long as they are tagged consistently


        if (GetTag(GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)) == (FindSubString(sTag, "sh_hidden")))
        {
            // hidden weapon, no delay, take standard equipping action
            SetUserDefinedItemEventNumber(X2_ITEM_EVENT_EQUIP);
            int nRet =   ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
            if (nRet == X2_EXECUTE_SCRIPT_END)
            {
               return;
            }
        }

// our custom weapons accounted for, now we check the item type of the weapon in the right hand.
// do not need to check left hand as the item types we care about can only be in the right hand
// now check equipped weapon by base item type
            else
            {
            // get item type in right hand
            int nWeildedWeapon = GetBaseItemType((GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oPC)));

            // these weapon types will be quick equipped by default
            // type 15 is torches, 31 is darts, type 59 is shuriken, 256 is invalid (to catch unarmed)
            // using reverse logic since we only have a few types we want without different rules.
            if (nWeildedWeapon != 15 || 31 || 59 || 256)
            {
                // rule for non hideable weapon
                // delay the equip by 2.5 seconds.
                DelayCommand(2.5, SetUserDefinedItemEventNumber(X2_ITEM_EVENT_EQUIP));
                int nRet =   ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
                if (nRet == X2_EXECUTE_SCRIPT_END)
                {
                   return;
                };
               
            }  
               
                // hideable by class weapons get the stock zero delay equip
                // hideable types as defined by the if statement (nWeildedWeapon != 15 || 31 || 59 || 256)
                else
                {
                SetUserDefinedItemEventNumber(X2_ITEM_EVENT_EQUIP);
                int nRet =   ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
                if (nRet == X2_EXECUTE_SCRIPT_END)
                {
                   return;
                };
                }
            }
       
       
        }

#89
kamal_

kamal_
  • Members
  • 5 240 messages
Also, I run this weapon detection code in the module's on conversation script, and use it to launch a different conversation if you have a weapon equipped.



Crimmor is a civilized city, people don't walk around weapons drawn, not like those uncivilized Neverwinterites. When they see you have a weapon, npc's don't launch their default conversation, but all run the same template conversation. Of course some npc's aren't going to care that you have a weapon drawn, they will run the regular conversation script.



In the template conversation that fires if they see a weapon, there's a bunch of random lines in there that it selects from to let you know you should put your weapon away ("Get that weapon out of my face!, Where are you from, Neverwinter?", "Gah, you must be some unwashed adventurer to walk around brandishing your weapon." and so on). This is the same way it's handled if you're caught pickpocketing.



I've set it up so you take a small reputation hit if you try to talk to someone with weapon drawn, after all people are threatened by that. And I'll be adding to it so that you can use skills to get that rep hit back, and fall back into the npc's regular conversation directly without having to exit the convo, put your weapon away, and talking to them again. I might put a link to the rep improving options in the regular conversations as well, so you can sweet talk your rep up.



This whole rep thing is based on the PRR system.

#90
kamal_

kamal_
  • Members
  • 5 240 messages
What happened to this module is I started it as a proof of doing a module where no combat was required, and I tossed something together that did that. In fact I could have released that a few weeks ago, two people have tested everything I had ingame at that point. It would have been a fine few hours tops release then. Nothing really deep but not intended to be.

But I grew to like Crimmor more and more as a location and wanted to do more and more things with it, make the city more "alive". So I grabbed quests and areas from Path of Evil that seemed rogue appropriate and mixed and matched and am re-mixing them for Crimmor. I found the article on Crimmor and names and details got converted to Crimmor names etc. Then I got interested in exploring getting in NWN2 what trickery based character types can do in PnP. Then I got a hold of the Complete Trickster book.

Path of Evil was very big, but not very deep from a scripting standpoint or detail in one spot (it had enough for it's purpose). Crimmor is smaller, but will be much deeper with things like the pseudo classes and hidden weaponry. More work is going into making one city alive than making a bunch of cities. Crimmor now has a second primary goal in addition to showcasing rogue trickery, make a city that feels both large and "alive".

#91
nicethugbert

nicethugbert
  • Members
  • 5 209 messages
Complete Trickster? I must have this for my collection!

#92
kamal_

kamal_
  • Members
  • 5 240 messages

nicethugbert wrote...

Complete Trickster? I must have this for my collection!

Err, Complete Scoundrel. You're testing things for me anyway, so you know what's in there. :happy:

#93
The Fred

The Fred
  • Members
  • 2 516 messages
This sounds pretty cool. Does that code actually delay the equip, though? It's harder to read in these posts but it looks like it might just delay the setting of the event for the tagbased script which is fired, only the script is still fired right away anyway. It's probably worth testing. Another option would be to run ClearAllActions(TRUE) on the PC, so that they trigger attacks of opportunity, or maybe give them an AC penalty or something lame but functional like that.

#94
kamal_

kamal_
  • Members
  • 5 240 messages

The Fred wrote...

This sounds pretty cool. Does that code actually delay the equip, though?

Here's the relevant part, which should delay the equip. I haven't had the chance to test yet. Line 2-3 should do the equipping, but line 1 delays things by 2.5

                DelayCommand(2.5, SetUserDefinedItemEventNumber(X2_ITEM_EVENT_EQUIP));
                int nRet =   ExecuteScriptAndReturnInt(GetUserDefinedItemEventScriptName(oItem),OBJECT_SELF);
                if (nRet == X2_EXECUTE_SCRIPT_END)

#95
The Fred

The Fred
  • Members
  • 2 516 messages
Yes, that's the bit I wasn't sure about - I thought the OnEquip script fired *after* the item was equipped, and the executing of the tagbased script was just for special items etc. etc. Of course, if it works, great (very great, in fact), but I think it's one of those things which really needs to be tried out.

I might mess around with this a bit myself, too, when I get chance, it's a nice idea.

#96
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
I really appreciate the attention to detail with modifications like the delay for weapon equipping. Little things like that make gameplay that much better. Great idea on the delay for drawing weapons.

#97
kamal_

kamal_
  • Members
  • 5 240 messages

The Fred wrote...

Yes, that's the bit I wasn't sure about -
I thought the OnEquip script fired *after* the item was equipped, and
the executing of the tagbased script was just for special items etc.
etc. Of course, if it works, great (very great, in fact), but I think
it's one of those things which really needs to be tried out.
I might mess around with this a bit myself, too, when I get chance, it's a nice idea.

The worst case that should happen when I get the chance to test it is that
while the weapon equips immediately, the character does not attempt to
use it for 2.5 seconds. While not quite as slick, it should be functionally be nearly identical (the difference would be the character gets the magical benefits of the new weapon such as stat boosting).

Modifié par kamal_, 23 février 2011 - 12:52 .


#98
kamal_

kamal_
  • Members
  • 5 240 messages
Added two new pseudo skills;

Merchant Intimidation: "I just glower at the merchant, they get scared and I get the price I want." Grak, grey orc barbarian.
    With Merchant Intimidation, if your intimidate skill is higher than your appraise skill, you use that to determine store prices. Other uses for appraise are unaffected. You can not benefit from Merchant Intimidation with all merchants. Merchants friendly to you such as your contacts, or otherwise secure such as a merchant in their guildhall, can not be intimidated.

Merchant Diplomacy: "A kind word and I will win the merchant's favor." Raelwen Maravara, human fighter.
   With Merchant Diplomacy, if your diplomacy skill is higher than your appraise skill, you use that to determine store prices. Other uses for appraise are unaffected.

If you have both, the highest of the three skills is used. Merchants that are friendly to use, such as rogue contancts, can not be intimidated.


How these work is that I rewrote the ga_store_open script, pulling the handling of the opposed appraise check that determines the discount from the include into the main script so I can work directly with it. Then I check the pc for local variables for each pseudo-skill. If they have the appropriate variable, I compare the relevant skill to appraise, and use that for checking instead of appraise.

There are now two store open scripts, one for people you can use merchant intimidation with, and one for people you can't. The one where you can't intimidate only checks for the merchant diplomacy variable. The normal one checks for both and if both exist use the highest.

Right now you get overhead text and play either the intimidate or greeting animation when you take advantage of these. Would people like to see no text instead?

Modifié par kamal_, 23 février 2011 - 02:26 .


#99
kamal_

kamal_
  • Members
  • 5 240 messages
Prestige: Dark Host

Sometimes, when talented mortals die near portals to the Lower Planes, a non-physical creature from the Lower Planes takes the opportunity to step through the portal, and reanimate the dead mortal. The mortal springs back to life through the power of the creature, and their souls become bonded together.

The Dark Host's abilities are increased as the symbiotic creature uses it's power to amplify them. Some symbiotes are able to amplify the users physical attributes such as strength, dexterity, and constitution, while others amplify the mental attributes of wisdom, intelligence, and charisma. The mortal has no say over whether the symbiote is able to amplify their physical or mental attributes, it is apparently random.

The symbiote tries to shape your consciousness to it's will. If you were good, you become neutral, if you were neutral you become evil, and evil mortals are not shifted as their alignment is already in line with the creature. No matter the level of agreement a Dark Host has with it's symbiote, the symbiote sometimes is able to take complete control of the Dark Host's body, and controlling the symbiotic creature is always a struggle.

Some mortals are able to drive the symbiote from their bodies, regaining control. This is normally done through the aid of a church or other outside force. Because the symbiote is not physical, this is not a matter of surgery.

Note: Players with the Dark Host Prestige are not able to use Hidden Theurgy, as they must maintain vigilance over the symbiotic creature. Additionally, the symbiotic creature is occaisionally able to take sufficient control to control the mortal's actions. This manifests ingame as loss of control during conversation. The creature speaks through you, and you only have a single conversation option, one that may not be what you desire. It is marked ingame when the creature is speaking through you by the tag "Dark Host" in your conversation lines. The symbiote does grant you significant boosts to your statistics, but whether you get a physical or a mental one is indeed random. The abilities from the symbiote are granted via feat.

:bandit:

#100
kamal_

kamal_
  • Members
  • 5 240 messages
Hidden weaponry. While the weapon model displays ingame, npc's simply do not "see" it when talking to you. In this case, our player avoids the extra penalty for mugging an npc (npc can see your weapon) when pickpocketing, then mugs them, then mugs them again as the third time the npc doesn't see the hidden weapon in the main hand, but does see the short sword in the off hand.

200x150http://dl.dropbox.com/u/3879894/hidden_weapon_detection.jpg[/img]

Universal Foraging. Builders assign any skills to check and their DC, animations, text and sounds to play, to any usable item. Checks the party for skills and records which party members have the highest values, they are then checked, so one party member does not have to do both checks if different party members are the highest in different skills (promoting teamwork). Also supports partial success, where party only passes a single check, giving builders three possible states, total success, partial success, and failure.

200x150http://dl.dropbox.com/u/3879894/universal_foraging.jpg[/img]

Modifié par kamal_, 02 mars 2011 - 02:10 .