Aller au contenu

Photo

Annoying dwarf in West Harbor


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

#1
WRFan

WRFan
  • Members
  • 114 messages
There's a small bug in West Harbor at the beginning of the game, however, extremely annoying. There's a dwarf who's positioned too closely to Georg and his men, he notices them and runs through the entire village to attack them. And since Georg and his men can't hit anything until the player party engages in a fight with the bridge dwarves, this particular dwarf will kill both of Georg's guards if the player isn't quick enough. Shouldn't happen. This dwarf is tagged "fight11" in the toolset and his editor location should be a little further away from Georg. I didn't bother with the area though, instead changed the area OnLoad script, applied the CutsceneParalyze effect to him to prevent him from running to Georg. The effect is removed when the player gets close to him. Anyone's interested in fixing this, check out

1100_client_en.NSS ->add paralysis
11_tr_allowfight.NSS ->remove paralysis

as well as 1100_west_harbor.GIT (1100_West_Harbor.mod) if you want to change his editor location

object oAnnoyingDwarf=GetObjectByTag("fight11");
effect eParalyze = EffectCutsceneParalyze(); 
SetPlotFlag(oAnnoyingDwarf, FALSE);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eParalyze, oAnnoyingDwarf);
 SetPlotFlag(oAnnoyingDwarf, TRUE);  

Modifié par WRFan, 03 août 2010 - 05:05 .


#2
WRFan

WRFan
  • Members
  • 114 messages
I noticed some additional bugs during the initial siege of West Harbor:



-Tarmas never reaches his wheat field location after the spiders are killed, because the pathfinding AI in this game is as bad as in ME2 and DAO. To fix, re-apply a delayed (DelayCommand) ActionForceMoveToObject or ActionForceMoveToLocation every 0.5 seconds until he reaches the destination (may take 50 commands!) or simply ActionJump him ToObject (ActionJumpToObject):



11_cs_tarmas.NSS:



AssignCommand(oTarmas, ActionJumpToObject(GetWaypointByTag("11_wp_tarmas_farm")));



-As far as I understand, Tarmas is not supposed to re-generate his spells every round after the fight with the Githyanki mage:



11_b_tarmas_hb.NSS, changed like this:



if(!GetLocalInt(OBJECT_SELF, "bInCutscene"))
{
//if (GetLocalInt(GetModule(),"11_shield_on")==1)
if (GetLocalInt(OBJECT_SELF,"bSpidersDead")!=1)
{
ForceRest(OBJECT_SELF);
}
}



-Tarmas's Magic Missile deals absolutely no damage against the enemies in the wheat field. I have no idea why. Big Mystery! If anybody understands what the hell is going on, please let me know



-Tarmas is distracted when going to the wheat field after the spiders are dead. He stops to fight every single enemy in the village. But since his spells don't deal any damage and since the enemies are set as immortal and undamageable until the AllowFight triggers are triggered, he simply gets stuck. Faction problem. Check out the original script (11_cs_tarmas.NSS):



case 5:	//tarmas goes to the farm
//he goes neutral so as not to get distracted
//	ChangeToStandardFaction(oTarmas,STANDARD_FACTION_DEFENDER);
ChangeFaction(oTarmas, oPig);



"STANDARD_FACTION_DEFENDER" is worth **** in this context! So I changed him to Lewi's dead pig faction (neutral faction). Is changed to "STANDARD_FACTION_DEFENDER" in 11_tr_charge.NSS anyway when the first wave of wheat field enemies appears. If you simply actionjump him to the wheat field after the spiders are dead, he'll teleport there instantly and bypass the enemies in the village anyway.



- Spelling bug in 11_a_georg_lv.nss:



object oGirl = GetObjectByTag("11_figher1");



It's "11_fighter1", not "11_figher1".



-The militia girl in green ("11_militia2") bumps into another guy when taking position in the wheat field and gets stuck on the way there. Add additional delayed movement command, 11_a_georg_lv.NSS:



DelayCommand(1.0f,AssignCommand(GetObjectByTag("11_militia2"), ActionForceMoveToLocation(GetLocation(GetWaypointByTag("11_farm_stop2")), TRUE)));	



Others bump into world objects and each other as well and get stuck too. Fix through 11_tr_charge.NSS



//just as a precaution, cause pathfinding is once again an issue!						
AssignCommand(GetObjectByTag("npc_tarmas"), ActionJumpToObject(GetWaypointByTag("11_wp_tarmas_farm")));
AssignCommand(GetObjectByTag("11_militia2"), ActionJumpToObject(GetWaypointByTag("11_farm_stop2")));



etc etc - do this for everybody

#3
WRFan

WRFan
  • Members
  • 114 messages
ok, I found out why Tarmas's Magic Missile deals no damage. The developers erroneously gave him "special ability Magic Missile" instead of the spell. So when he casts the spell, it's like he was casting it from a Wand of Missiles, only it's even worse, cause the effective SpellCasterLevel for this ability is 0. So let's look how the magic missile script calculates the number of magic missiles that are shot at the target:

nw_s0_magmiss.nss:

nCasterLvl = GetCasterLevel(OBJECT_SELF);
int nMissiles = (nCasterLvl + 1)/2;

this means Tarmas can't shoot even a single missile!

So how to fix? Well, the best way would be to remove this crap from his SpecAbility list and give it to him as a standard spell, but I don't know how to access the special abilities through scripting. I don't even think this is possible. So I changed the magic missile script instead and told it to use Tarmas's overall wizard level if he's the caster:

int nCasterLvl;
nCasterLvl = GetCasterLevel(OBJECT_SELF);
if (nCasterLvl<1)
{
if(GetTag(OBJECT_SELF)=="npc_tarmas")
{
nCasterLvl = GetTotalLevels(OBJECT_SELF, TRUE);
}
}
int nMissiles = (nCasterLvl + 1)/2;

Now he shoots 3 missiles, cause he's lvl 6.

Besides, the developers didn't give Tarmas any spells at all, apart from this crappy Magic Missile ability. The spells he casts during the fight with the Githyanki Mage are just for show, he doesn't actually have them in his spellbook. It's best to completely relevel him during/after the cutscene in which Amie dies:

11_cs_tarmas.NSS (1100_West_Harbor.mod):

ResetCreatureLevelForXP( oTarmas, 15000, TRUE ); //he's lvl 6
ForceRest(oTarmas);

this will re-level Tarmas based on his class package (he's wizard generalist, lvl 6). So now he gets Fireball and stuff, he can use it against the enemies in the wheat field, cool. Check this out - Tarmas casts a fireball on the enemies:

http://i467.photobuc...0410_150544.jpg

This of course means less XP for me, unfair!

Modifié par WRFan, 04 août 2010 - 01:13 .


#4
hauksdottir

hauksdottir
  • Members
  • 36 messages
I didn't know that he got stuck... since I've seen him in the wheat field throwing spells. (patched to 1.13) If the spells don't do anything but look showy, that is more xp (that does sound evil), but I thought he did kill spiders.



Tarmas ought to at least have the spells he gave and taught to Amie. If he is a retired adventurer, he would have had a few offensive spells and something for defense or distraction. Mirror Image is preferable to Mage Armor. Would he have to be a generalist?

#5
WRFan

WRFan
  • Members
  • 114 messages

I didn't know that he got stuck... since I've seen him in the wheat field throwing spells.


I am patched to 1.23, but he got stuck but good and never fought any enemies until I fixed the scripts, cause he couldn't see them (stuck too far away from the wheat field)

but I thought he did kill spiders

he just hits them with his quarterstaff (and misses all the time, lol)

Would he have to be a generalist?


well, he's defined as such in the toolset, so yes

Modifié par WRFan, 04 août 2010 - 01:18 .


#6
kamalpoe

kamalpoe
  • Members
  • 711 messages
Doesn't giving Tarnas real spells cause problems with his spellcombat fight?

#7
WRFan

WRFan
  • Members
  • 114 messages

Doesn't giving Tarnas real spells cause problems with his spellcombat fight




I didn't have any probs.



Noticed yet another bug. When you return from the swamp with the shard, Daeghun talks to you, there's a wisdom check in there ("there's something you are not telling me"), but the game erroneously checks for the player's charisma stat (>=12). If you are interested in fixing, dlg file is 11_daeghun in 1100_West_Harbor.mod