Aller au contenu

Photo

Shadow Thief: Crimmor


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

#201
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
Wow! That's a neat little detail.

#202
kamal_

kamal_
  • Members
  • 5 250 messages
Thanks, the ability to turn torches on and off wouldn't be useful if it was only cosmetic and had no game effect. And a hide penalty for being in a lit area makes sense (and should be in the dnd rules if it's not).

The next step I'd like to add is to add in ownership of torches by guards, so if they see a torch in the area they guard turned off that shouldn't be, they willl go over to it and turn it on. That should be both a very nice detail, and potentially highly useful to the player (lay trap under the light while out of guards vision, get them to come fix the light..., or just move a guard away from where you don't want them).

#203
BartjeD

BartjeD
  • Members
  • 249 messages
What circumstances does the game take into account normally for hiding? I hear from various sources that it does look at light levels so isn't this already taken into account or does turning lights off not register as a change in the light level?

#204
kamal_

kamal_
  • Members
  • 5 250 messages
Hmm, if it does it doesn't seem to get reflected in the characters skill sheet. When turning off a light you need for make a call to force recomputing of static lights. Proof either way would be useful. I looked to see if I could get the range of a light via script without storing it as a variable, and that didn't seem doable (it would have saved me the need to draw triggers for the light spheres).

#205
BartjeD

BartjeD
  • Members
  • 249 messages
I don't think it shows on the character sheet no but that's generally a sheet of lies anyway, it doesn't show a lot of things.

I think we'd have to test it with a sneaker and spot checks.

#206
kamal_

kamal_
  • Members
  • 5 250 messages
Very easy to set up a strong light source and a spotter in my test area when I get home, my test area also has control over time of day, so checking day vs night is simple as well.

#207
kamal_

kamal_
  • Members
  • 5 250 messages
Based on conversation with BrianMeyer (who should know), if it does, it's negligible. Testing didn't reveal anything obvious.

#208
Lugaid of the Red Stripes

Lugaid of the Red Stripes
  • Members
  • 955 messages
I remember that NWN(1), with its tiles, had tile-specific lighting. That could have been an easy source for light-based spot checks. The renderer, somewhere, has to know how much light is on each creature, though, so it must be possible.

I've started laying out 'exposed' triggers, that give a penalty to hide, rather than just giving hide bonuses for being somewhere dark. I think that technically the hide skill is only supposed to be useable if you actually have something to hide behind or in, anyway.

#209
kamal_

kamal_
  • Members
  • 5 250 messages
That's what my lighsphere triggers do, player has a penalty when in them and the light is on. Much easier to do that than to give a bonus when in dark conditions.

#210
kamal_

kamal_
  • Members
  • 5 250 messages
The trigger that marks the lightsphere (delineated by the mushrooms in the test area) runs code that causes the guard to notice the light is out and reactivate it. The script purposely makes the guard spend some time at the lightsource.

youtube

Here's the code of the OnEnter of the trigger. Note I reduce the player hide skill in this script, but am raising it back up it in other scripts.

//when entering the lightsphere of a light, reduce hide in shadows.

//if the light is out, a guard entering the lightsphere will move to the source of the light and turn it back on.

#include "ginc_sls2"

void main ()
{
object oEnterer = GetEnteringObject();

//detect if light is out
if (GetLocalInt(OBJECT_SELF, "is_active")!=1)
{
//if a guard detects the light is out,
if (GetLocalInt(oEnterer, "guards_lights")== 1) // the guard lights variable controls whether you want a creature to reactivate lights
{
//make sure entrant is not in combat
if (GetIsInCombat(oEnterer)!=1)
{
AssignCommand(oEnterer, ClearAllActions());

if (d100()<75) //purely for color, set up some possible things to say.
{
//detect racial type, only typical player race guards will say anything.
//bonus: you can have different races have different sayings :-)
if ((GetRacialType(oEnterer)== RACIAL_TYPE_DWARF) || (GetRacialType(oEnterer)== RACIAL_TYPE_ELF) || (GetRacialType(oEnterer)== RACIAL_TYPE_GNOME) ||
(GetRacialType(oEnterer)== RACIAL_TYPE_GRAYORC) || (GetRacialType(oEnterer)== RACIAL_TYPE_HALFELF) || (GetRacialType(oEnterer)== RACIAL_TYPE_HALFLING) ||
(GetRacialType(oEnterer)== RACIAL_TYPE_HUMAN))
{
int nInt = d4();
switch (nInt)
{
case 1:
AssignCommand(oEnterer, ActionSpeakString("Darn light!"));
case 2:
AssignCommand(oEnterer, ActionSpeakString("!"));
case 3:
//AssignCommand(oEnterer, ActionSpeakString("Darn light is out!"));
case 4:
//AssignCommand(oEnterer, ActionSpeakString("Darn light is out!"));
}
}
}


object oLightSource = GetFirstInPersistentObject(OBJECT_SELF, OBJECT_TYPE_PLACEABLE);
while (GetIsObjectValid(oLightSource))
{
//the light source will be the only object with this variable, it is always 1, all light sources must have this local variable
if (GetLocalInt(oLightSource, "usable")==1)
{
//we want to make sure another guard hasn't already turned back on, leading to a second guard immediately turning off
//so we are confirming it's not active
if (GetLocalInt(OBJECT_SELF, "is_active")!=1)
{
//move to light and turn on
AssignCommand(oEnterer, ActionMoveToObject(oLightSource,0,1.0f));
AssignCommand(oEnterer, ActionPlayAnimation(ANIMATION_LOOPING_GET_MID, 1.0f, 10.0f));
DelayCommand(10f, SLS2LightUsed(oLightSource));
DelayCommand(10f, SetLocalInt (OBJECT_SELF, "is_active",1));
break;
}
}
else //not source, continue cycling looking for source.
{
oLightSource = GetNextInPersistentObject(OBJECT_SELF, OBJECT_TYPE_PLACEABLE);
}
}//ends while loop

} //ends if not in combat

}
}

//if the light is active, reduce the hide skill of pc's entering the trigger. skill is restored when exiting or light gets turned off
//we only do this for the pc because npc ai isn't smart enough to deal with things like this.
if (GetLocalInt(OBJECT_SELF, "is_active")==1)
{
if (GetIsPC (oEnterer))
{
SetLocalInt(oEnterer, "pc_lit", 1); //tracking status is needed for when a light goes on/out while the player is in it's trigger.
effect eEffect;
eEffect = EffectSkillDecrease(SKILL_HIDE, 6);
eEffect = SupernaturalEffect(eEffect);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oEnterer);
}
}

else
{
}
}

Modifié par kamal_, 05 novembre 2011 - 01:05 .


#211
kamal_

kamal_
  • Members
  • 5 250 messages
Non damaging spells are now also accounted for. Gust of wind/darkness etc will put out a torch. Flare etc. will light one.

That should just about conclude the torches.

#212
MasterChanger

MasterChanger
  • Members
  • 686 messages
Really interesting work, Kamal_. So often the problem with playing rogue-types in cRPGs is that the full gamut of tactical options open to you, or conversely the options closed to someone without your skills, is not well-represented in the game. Because the OC & MotB were so plot-focused, for example, you were constantly running into problems that you couldn't get around by thinking outside the box, even if your character had those skills.

Don't get me wrong, I actually generally enjoy plot-centric adventures more than sandbox ones, but what you are doing is something else entirely: opening up entirely new ways of playing the game. The character's goals are different. The ways the player has to think are different. The excitement and enjoyment the player gets from the game come from different places. What you're doing is definitely worthy of applause! :wizard:

#213
kamal_

kamal_
  • Members
  • 5 250 messages
Thanks. I'm not the first I'm sure. There's been lateral thinking in other modules, Wizard's Apprentice comes to mind, where many things need to be approached in a "how would a wizard solve this" manner. It boils down to trying to think about how a pnp character might approach the problem.

edit: I've also added support for magical light sources with a script covering those, you can't put them out by damage, but you can dispel them if you have any dispel abilities, standard dispel dc's apply. Guard's wont typically turn dispelled magic lights on, since they generally don't have magical light creation ability.

Modifié par kamal_, 05 novembre 2011 - 10:38 .


#214
kamal_

kamal_
  • Members
  • 5 250 messages
I've expanded on the markshire exploding barrels system. Now they have volatility, volatile barrels explode on any fire damage (the default markshire behavior, and my default). Partially volatile barrels will explode only if it hit twice by fire (and you can reset that with cold damage, so fire, cold, fire will not explode, but fire, cold, fire, fire will). Non-volatile only explode on death.

The barrels are also trapped, disarming them renders them inert and they will not explode (they will still break, just no BOOM).

builders, you can try them out for yourself erf , these will not override the default markshire barrels if you're already using them.

Modifié par kamal_, 08 novembre 2011 - 01:54 .


#215
kamal_

kamal_
  • Members
  • 5 250 messages
600x300http://1.bp.blogspot.com/-nFmkk3NsulY/TsG1WnWI7bI/AAAAAAAABIo/811j_znk_GI/s1600/cr_breaking.jpg[/img]

#216
nicethugbert

nicethugbert
  • Members
  • 5 209 messages
NEAT!

#217
kamal_

kamal_
  • Members
  • 5 250 messages
Sometimes, I have to significantly alter a prefab.

In Crimmor.
600x300http://1.bp.blogspot.com/-cyPs9aAwFZA/TsMWr-i-cNI/AAAAAAAABI4/9gl-ZRKIAK0/s1600/cr_purse_enc.jpg[/img]

original from the Baldurs Gate areas prefab release.
600x300http://4.bp.blogspot.com/-fPmUGXFG3E0/TsMYkpPq0JI/AAAAAAAABJA/OlWb1wvK8Gc/s1600/cr_purse_enc_original.jpg[/img]

Modifié par kamal_, 16 novembre 2011 - 02:00 .


#218
Arkalezth

Arkalezth
  • Members
  • 3 189 messages
Nice, the original looks a bit empty. I like the SoZ logo on the ground.

#219
Dorateen

Dorateen
  • Members
  • 477 messages
The lighting is impressive, with the addition of the light sources, lanterns and braziers. Looks like a place one might find ancient tomes of forbidden knowledge.

Harumph!

#220
Shallina

Shallina
  • Members
  • 1 011 messages
The improved version is impressive, not the same area anymore.

#221
kamal_

kamal_
  • Members
  • 5 250 messages
The previous area, ingame. The nice shiny floors reflect things. (for the curious, paint down water at 0.01 with perfect stillness for this effect)
600x300http://2.bp.blogspot.com/-ZLN74CxW_Os/TtWM5-5NjiI/AAAAAAAABJ8/hTf5gxS_P3c/s1600/NWN2_SS_112911_202415.jpg[/img]

Our intrepid tester stops for a few seconds to ponder his next move.
600x300http://4.bp.blogspot.com/-W1KPOTbjNM4/TtWM8ablTUI/AAAAAAAABKM/X-3eWsd0DT4/s1600/NWN2_SS_112911_204754.jpg[/img]

600x300http://3.bp.blogspot.com/-xp9vW1bseLk/TtWM7dNDCYI/AAAAAAAABKE/kUkDrPyDZb0/s1600/NWN2_SS_112911_204545.jpg[/img]

Some testing showed that my redone "foraging" system was lost when I had some file corruption problems back in October, so I'll be rebuilding that at some point. I support Wyrin's foraging system, but have expanded things into a more universal system of potentially getting stuff from placeables.

Modifié par kamal_, 30 novembre 2011 - 02:05 .


#222
M. Rieder

M. Rieder
  • Members
  • 2 530 messages
What is the wall in the middle picture made of? I mean the one with the blue cave plant placeables against it? It looks really cool.

#223
kamal_

kamal_
  • Members
  • 5 250 messages

M. Rieder wrote...

What is the wall in the middle picture made of? I mean the one with the blue cave plant placeables against it? It looks really cool.

In front of the plants is a sunken ruins railing and a waterfall vfx, in back is rock faces, all rescaled.

#224
The Fred

The Fred
  • Members
  • 2 516 messages
Man, there are so many ideas here to steal... I mean, be inspired by.

#225
kamal_

kamal_
  • Members
  • 5 250 messages

The Fred wrote...

Man, there are so many ideas here to steal... I mean, be inspired by.

Like Path of Evil, I will be releasing everything as prefabs. If you visit my blog you can download things now, the links to my dropbox where I keep my backups is in one post.