Page 1 of 1

Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 12:15 am
by Sexy Smithy
I know on OSI/EA servers you used to be able access vendors on the second floor from outside on the ground so long as you could see them to 2x click them. I am not sure what era it was that they introduced that. Does anyone here know? As it is right now, you cannot purchase items from a vendor a floor up from you even if they are visible and you have line of sight.

I'm referring to player vendors in player housing, like say the front of a keep on the second floor balcony.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 10:50 am
by Faust
That is how the regular vendors work but player vendors missed the modification. However, regular vendors definitely shouldn't be functioning in this fashion since it was proven to be inaccurate on the demo. This was probably possible for player vendors though even in this era. This would have to be verified on there too.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 11:02 am
by BobDobbs
Does that mean I would be able to stock vendors from my home?

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 11:56 am
by Pirul
BobDobbs wrote:Does that mean I would be able to stock vendors from my home?
Yes, as you can also do now on any type of house. You'd just have to keep the keep ( :P ) public.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 12:19 pm
by BobDobbs
Pirul wrote:
BobDobbs wrote:Does that mean I would be able to stock vendors from my home?
Yes, as you can also do now on any type of house. You'd just have to keep the keep ( :P ) public.
My vendor house is in front of the house I actually live in, so I was wondering if I could stock my vendors as well as check their inventory (which I can do now, just can't stock).

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 1:51 pm
by Faust
Most likely this only falls under the 'buying' mechanism that probably neglects line of sight much like the current inaccuracy for regular vendors that exist. Restocking a vendor still probably requires line of sight and range. The buying mechanism more than likely just required range without a line of sight check. However, looking at a player vendors contents could be done pretty far away. The majority of these mechanics simply need to be verified on the demo for certainty though.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 1:56 pm
by Mikel123
BobDobbs wrote:My vendor house is in front of the house I actually live in, so I was wondering if I could stock my vendors as well as check their inventory (which I can do now, just can't stock).
I dunno, wouldn't it have to be at least 5 tiles away? Maybe 4 if you're talking a vendor on the front steps...

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 6:55 pm
by Derrick
There's a possibility that this may be addressed soon in a natural manner as there is currently some active research pertaining to OSI's line of sight algorithm.

I don't think there were player vendors in June '98, so the demo will not help us on this issue. Once LOS is corrected, we can check to make sure the range is the same, and then hopfully everything that should work will work.

There are of course obvious concerns regarding any LOS changes, especially in the potential change of what items are and are not reachable from a distance. A high regard will be paid to this before any changes are made.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Tue Sep 07, 2010 9:43 pm
by Faust
Player vendors definitely existed in '98 and even '97 when they were first introduced Derrick. :wink:
12/16/97 - http://wiki.uosecondage.com/?title=1997_Patch_Notes wrote: Vendors (you can now hire NPCs to run your shop)
Tavernkeepers now sell "a contract for employment."
Use this contract near a house you own to create a vendor.
Vendors must be paid: they cost 100 coins per day, plus 1% of the value of everything they've got. This is withdrawn from they gold they hold for their employer.
If a vendor runs out of gold, he will destroy the gold he's holding and kill himself, leaving all the goods he's got on the corpse.
Vendors answer to their name, "vendor" and "shopkeeper"
Employers can give items to their vendors, and are prompted for an asking price and a description.
Employers and customers alike can open up the containers in a vendor.
Employers can freely take items from a vendor.
Employers can give containers full of items to vendors, and set a price on the container as a whole.
Customers can buy items from a vendor using gold they have on their person or in the bank.
Customers can use appraise and identify on items a vendor sells.
Customers can open items in a vendor's inventory if they are for sale.
You can shove through vendors.
You cannot steal from a vendor.
Vendors have the gold given to them from purchases, and employers may of course collect it (though they shouldn't collecy all of it, as noted above)

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Wed Sep 08, 2010 12:20 am
by Derrick
Thanks, didn't see them in demo, likely due to the dated templates, but also I may just not have noticed.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Wed Sep 08, 2010 8:19 am
by Faust
Will be nice to see the original algorithm used for line of sight though.

Re: Vendor Accessibility on 2nd Floor From Ground

Posted: Wed Sep 08, 2010 8:29 am
by roguan
From Tavernkeeper Template:

Code: Select all

<eq             vendor_deed_template 0 0 1 SELLABLE>
<eq             vendor_deed_template 0 0 1 BUYABLE>
From the vendordeed script:

Code: Select all

  setObjVar(vendor, "owner", user);
  setObjVar(vendor, "multi", house);
 [b] attachScript(vendor, "vendor");[/b]
  disableBehaviors(vendor);
  Q4WQ(house, vendor);
  deleteObject(this);
I assume this is the line of site check from the vendor script:

Code: Select all

ONEVENT( speech , "*" )(object speaker, string arg)
{
  i[b]f(!isFreelyViewable(this, speaker))[/b]
  {
    return(0x01);
  }
...
More to come.