Provoking NPCs

For ideas on how to make Second Age a better shard. Can it get any better? Maybe.
Forum rules
Posts in this forum are expected to be constructive, realistic and civil. Inflamatory or off topic posts will be removed.
Post Reply
User avatar
nightshark
UOSA Subscriber!
UOSA Subscriber!
Posts: 4550
Joined: Mon Apr 20, 2009 10:47 pm

Provoking NPCs

Post by nightshark »

A little testing on the demo shows provoking NPCs to be inaccurate on UOSA.

- Provoking any kind of blue NPC, such as a shopkeeper or hireling, should return the message from the NPC saying "Think not that I fail to see what thou art doing!". This happens as soon as the NPC is targeted causing you to lose karma, flag criminal and become guard whackable, but NPCs do not guard call you for it. This takes place before the skill check, there is no chance of success or fail. This takes you down to -4 karma rank.

-Failure to provoke any kind of NPC should not cause that NPC to begin attacking you. In fact, successfully provoking something should not make it angry toward you in any way. Once it kills the target, it should go back to just loitering and ignoring your existance.
<green> grats pink and co. .... the 3 of you f---ing scrubs together can blow up a bard. IMPRESSIVE

User avatar
MatronDeWinter
UOSA Donor!!
UOSA Donor!!
Posts: 7249
Joined: Wed Mar 04, 2009 3:35 am
Location: 你的錢包

Re: Provoking NPCs

Post by MatronDeWinter »

I spent many a day provoking bulls on the npcs at the delucia tailor shop. This was absolutely during T2A, so does this imply that you could provoke things onto them, but not them onto things?

Panthor the Hated
UOSA Donor!!
UOSA Donor!!
Posts: 3341
Joined: Mon Sep 14, 2009 6:12 am
Location: Palestine
Contact:

Re: Provoking NPCs

Post by Panthor the Hated »

You can provoke on any living thing...

User avatar
Quin the Wretch
UOSA Subscriber!
UOSA Subscriber!
Posts: 181
Joined: Sat Sep 18, 2010 1:20 am
Location: Brit Gy

Re: Provoking NPCs

Post by Quin the Wretch »

I recall provoking released pets onto shopkeeps np. BUT I also remember that "think not.... " message (w/o the flagging criminal part) So I bet there is something more to the mechanism than just "all npcs provokable/ unprovokable"
"I really need to increase my knowledgment" -anonymous

Kaivan
UOSA Donor!!
UOSA Donor!!
Posts: 2923
Joined: Wed Aug 13, 2008 11:07 pm

Re: Provoking NPCs

Post by Kaivan »

Actually, it is potentially possible to have guards called on you, but it operates differently in different scenarios. First, if you attempt to start your provoke with any human NPC, the following code is fired in the demo:

Code: Select all

    if(isHuman(usedon))
    {
      if(!getCompileFlag(0x01))
      {
        removeNotoriety(user, 0x64);
      }
      else
      {
        changeKarma(user, 0x00 - 0x1D4C);
      }
      bark(usedon, "Think not that I fail to see what thou art doing!");
      if(getCompileFlag(0x01))
      {
        committedCrimeAt(user, getLocation(usedon), 0x01E0);
      }
      else
      {
        criminalAct(user, usedon, 0x01, 0x19);
        callGuards(user, getLocation(user), 0x02);
      }
      return(0x00);
    }
This means that any human that you attempt to start the provoke on will trigger the committedCrimeAt piece of code, and will allow any player to call guards on you, but it will not automatically trigger any nearby NPCs to call guards.

The second possible outcome is when you provoke a non-human on to a human (or any other creature really) and fail the attempt. When that happens, this code is fired:

Code: Select all

    if(!testSkill(user, 0x16))
    {
      sfx(getLocation(user), badSound, 0x00);
      barkTo(attacker, attacker, "You hear the music and realize that the musician is trying to get you angry...!");
      barkTo(attacker, user, "Your music fails to incite enough anger.");
      if(!getCompileFlag(0x01))
      {
        callGuards(user, getLocation(user), 0x02);
      }
      if(!isInArea("city", getLocation(user), 0x00))
      {
        attack(attacker, user);
      }
      return(0x00);
    }
This means that a failed attempt to provoke will automatically cause the first provoked creature to go after the provoker while outside of town, but no other consequences will occur (due to some problems with the demo server, it doesn't actually see Ocllo as a "city" region which allows the creature to attack you inside town). If any NPC is nearby when the creature attacks the player and the player is innocent, they will call guards, but to no avail due to being outside of town.

The third piece of code that fires will go off when a player successfully provokes a non-human onto any target. The code is as follows:

Code: Select all

    if(getCompileFlag(0x01))
    {
      integer Q5RN = 0x00;
      if(!canBeFreelyAggressedBy(usedon, user))
      {
        Q5RN = 0x03E8;
      }
      if(!canBeFreelyAggressedBy(attacker, user))
      {
        committedCrimeAt(user, getLocation(usedon), 0x01E0);
        Q5RN = 0x03E8;
      }
      integer Q691 = witnessCrime(getLocation(attacker), user, usedon, getName(attacker), 0x03E8, Q5RN, 0x03);
    }
This means that if the second target of the provoke cannot be freely attacked by the provoker, or the first target of the provoking attempt cannot freely attack the first target of the provoke, then a value is set that is passed to the witnessCrime function that allows the guards to be called on you and the attacker regardless of line of sight.

So, in short, there are 3 different outcomes to provocation on the demo with respect to NPCs, but some of them lack basic checks for certain things that were likely fixed later on such as having any NPC cause you to become criminal if it is your first target.

Also, much of the verbose text for provocation was removed with this line item from 1/19/99:
  • "Provocation spam" is removed.
UOSA Historian and former staff member: August 11, 2008 - June 19, 2016

Useful links for researching T2A Mechanics

Stratics - UO Latest Updates - Newsgroup 1 - Noctalis - UO98.org

User avatar
Dead Rabbit
Posts: 21
Joined: Tue Jan 18, 2011 6:06 pm

Re: Provoking NPCs

Post by Dead Rabbit »

Do you guys have like UO 1999 installed on some old computer and you just hack into that to find all these things out??
Derrick wrote:
And thanks also to Poppy Thornapple for providing some critical insight into this.
Celebrate Rabbits!! http://www.ferryhalim.com/orisinal/g3/carrot.htm
[00:55:46] <MrLotto> I love dolls

Kaivan
UOSA Donor!!
UOSA Donor!!
Posts: 2923
Joined: Wed Aug 13, 2008 11:07 pm

Re: Provoking NPCs

Post by Kaivan »

We have access to the UO demo, which was a small stand-alone server packaged with the first release version of the T2A CD. It contains a functional snapshot of OSI server as of approximately May 1999, and with the help of the incredibly talented Batlin, we have been able to turn the demo into a powerful testing tool, and get access to the scripts used by OSI at the time as well. You can check out some of the information about the demo over at the JoinUO forums or at the wiki here.
UOSA Historian and former staff member: August 11, 2008 - June 19, 2016

Useful links for researching T2A Mechanics

Stratics - UO Latest Updates - Newsgroup 1 - Noctalis - UO98.org

User avatar
nightshark
UOSA Subscriber!
UOSA Subscriber!
Posts: 4550
Joined: Mon Apr 20, 2009 10:47 pm

Re: Provoking NPCs

Post by nightshark »

Thanks for looking into that, Kaivan.
MatronDeWinter wrote:I spent many a day provoking bulls on the npcs at the delucia tailor shop. This was absolutely during T2A, so does this imply that you could provoke things onto them, but not them onto things?
Yeah, correct. I do recall using NPCs as a way to get to -4 karma rank even after UO:R, using the same method as desribed here.
<green> grats pink and co. .... the 3 of you f---ing scrubs together can blow up a bard. IMPRESSIVE

Post Reply