Is it possible to make NPC's refuse to buy a certain type of

Post » Wed May 02, 2012 1:15 pm

Yeah u heard me, is it possible? I would like to put this script on DB armor. Why in the heck would anyone buy a armor that could connect you to assassins?

I also wanted to see if it was possible to make npc's dislike you, if wearing a special type of armor.
User avatar
Poetic Vice
 
Posts: 3440
Joined: Wed Oct 31, 2007 8:19 pm

Post » Wed May 02, 2012 1:05 pm

You could probably make the NPC not buy a type of armor in the "service refusal" part of dialogue, but it might get complicated for all those armor parts...

you can make NPC's dislike you in dialogue as well using the "item" function and moddisposition. But again, it would get complicated for all the armor pieces
User avatar
CHangohh BOyy
 
Posts: 3462
Joined: Mon Aug 20, 2007 12:12 pm

Post » Thu May 03, 2012 2:58 am

Both tasks would be the most practical to realize through dialog, in my opinion. Service refusal is accessible in the dialog window, under the persuasion tab. Looking through the entries there should give you a good enough idea about how it works.

As for NPCs disliking the PC when wearing DB armor, I would do this by adding a script to DB armor that sets a global variable to 1 when DB armor is worn and 0 otherwise. You can then add a new greeting that with the condition that the variable is set to 1 (and whatever other conditions you'd like to add), and in the results box I would add a line of script that lowers the speaker's disposition by some amount.
User avatar
Shae Munro
 
Posts: 3443
Joined: Fri Feb 23, 2007 11:32 am

Post » Wed May 02, 2012 6:08 pm

Yeah u heard me, is it possible? I would like to put this script on DB armor. Why in the heck would anyone buy a armor that could connect you to assassins?
Simple, profit. It's an outfit that took a lot of work to make and it's durable and light weight. Some merchants will have morals but I don't think a lot of them would mind. It's just armor any ways; more pocket money. And plus, the merchant can claim he killed an assassin who was attacking an innocent person and that's how he got it. That's my lore view on it.
Skooma I can understand because it has been made officially illegal by the Empire. But Dark Brotherhood outfits aren't illegal; they just make people wonder where you got it from is all.
User avatar
Trista Jim
 
Posts: 3308
Joined: Sat Aug 25, 2007 10:39 pm

Post » Wed May 02, 2012 3:16 pm

Hm ok. I can't do any scripting, so that's why I asked. I'd need some help with that.

As for this line "I also wanted to see if it was possible to make npc's dislike you, if wearing a special type of armor. " does not apply to the DB armor, it's another custom armor I had in mind.

Anyhow, so these both are through dialogue? I thought it could be something similar like the ordinators attacking you on sight when wearing indoril, but you get lower disp instead.
User avatar
Vickytoria Vasquez
 
Posts: 3456
Joined: Thu Aug 31, 2006 7:06 pm

Post » Wed May 02, 2012 11:08 pm

Assuming tm88mr is your modder+mod prefix here (e. g. mine would be ab01wl for water life)
I'd try something like this
begin tm88mrgArmoCheckScript; global script running on load; short global tm88mrDbArmorOn to use for greeting filtering (for example see greeting 0, class guard, faction temple, filtered for wearingOrdinatorUni global short); short global tm88mrCustomArmor to use for service refusal persuasion filtering; assuming tm88mrCustomArmorId01 .. 07 as custom armor pieces ids if ( MenuMode )	returnendiffloat delayif ( delay < 3 )	set delay to ( delay + GetSecondsPassed )	returnendifset delay to Random 10001set delay to ( delay * 0.00005 )	; 2.5 <= delay <= 3if ( player->GetItemCount "tm88mrCustomArmorId01" > 0 )	set tm88mrCustomArmor to 1elseif ( player->GetItemCount "tm88mrCustomArmorId02" > 0 )	set tm88mrCustomArmor to 1elseif ( player->GetItemCount "tm88mrCustomArmorId03" > 0 )	set tm88mrCustomArmor to 1elseif ( player->GetItemCount "tm88mrCustomArmorId04" > 0 )	set tm88mrCustomArmor to 1elseif ( player->GetItemCount "tm88mrCustomArmorId05" > 0 )	set tm88mrCustomArmor to 1elseif ( player->GetItemCount "tm88mrCustomArmorId06" > 0 )	set tm88mrCustomArmor to 1elseif ( player->GetItemCount "tm88mrCustomArmorId07" > 0 )	set tm88mrCustomArmor to 1else	set tm88mrCustomArmor to 0endifif ( player->HasItemEquipped "DarkBrotherhood Boots" )	set tm88mrDbArmorOn to 1	returnelseif ( player->HasItemEquipped "DarkBrotherhood Cuirass" )	set tm88mrDbArmorOn to 1	returnelseif ( player->HasItemEquipped "DarkBrotherhood gauntlet_L" )	set tm88mrDbArmorOn to 1	returnelseif ( player->HasItemEquipped "DarkBrotherhood gauntlet_R" )	set tm88mrDbArmorOn to 1	returnelseif ( player->HasItemEquipped "DarkBrotherhood greaves" )	set tm88mrDbArmorOn to 1	returnelseif ( player->HasItemEquipped "DarkBrotherhood pauldron_L" )	set tm88mrDbArmorOn to 1	returnelseif ( player->HasItemEquipped "DarkBrotherhood pauldron_R" )	set tm88mrDbArmorOn to 1	returnelse	set tm88mrDbArmorOn to 0endifend
[EDIT]extra return and wrong assignment fixed
User avatar
lauraa
 
Posts: 3362
Joined: Tue Aug 22, 2006 2:20 pm

Post » Thu May 03, 2012 5:15 am

I'm not sure what you mean by custom armor in the script?

I may not have been clear enough but here's the deal

Dark Brotherhood Armor - traders won't buy any part of this set.

that should be right with this section

endif

if ( player->HasItemEquipped "DarkBrotherhood Boots" )
set tm88mrDbArmorOn to 1
return
elseif ( player->HasItemEquipped "DarkBrotherhood Cuirass" )
set tm88mrDbArmorOn to 1
return
elseif ( player->HasItemEquipped "DarkBrotherhood gauntlet_L" )
set tm88mrDbArmorOn to 1
return
elseif ( player->HasItemEquipped "DarkBrotherhood gauntlet_R" )
set tm88mrDbArmorOn to 1
return
elseif ( player->HasItemEquipped "DarkBrotherhood greaves" )
set tm88mrDbArmorOn to 1
return
elseif ( player->HasItemEquipped "DarkBrotherhood pauldron_L" )
set tm88mrDbArmorOn to 1
return
elseif ( player->HasItemEquipped "DarkBrotherhood pauldron_R" )
set tm88mrDbArmorOn to 1
return
else
set tm88mrDbArmorOn to 0
endif

end


Now what I can't understand is the "customarmor" part.

The custom armor I'm making are supposed to have another script making ppl get lower disp if you talk to em′.

So to sum it up it's two diffrent things I want to achive! Unreleated to eachother, but I didn't want to make two separate threads :)

Hope it clears things up.
User avatar
Dylan Markese
 
Posts: 3513
Joined: Sat Dec 01, 2007 11:58 am

Post » Wed May 02, 2012 2:13 pm

The custom armor I'm making are supposed to have another script making ppl get lower disp if you talk to em′.
Why another one? It is simpler and probably more efficient to have a single script running. Just replace tm88mrCustomArmorId01 .. 07 with your custom armor ids and filter service refusal, greetings or any other dialog response as you like using global short tm88mrCustomArmor set to 1 by the script when player has one piece of custom armor in inventory
e. g.
greeting 7 , condition tm88mrCustomArmor = 1,
"eek! the armor of doom!
dialog result:
ModDisposition -10
[EDIT]fixed a extra return and wrong assignment in the script
User avatar
megan gleeson
 
Posts: 3493
Joined: Wed Feb 07, 2007 2:01 pm


Return to III - Morrowind