Now that I have the time in my hands to post fully about the origins of this suggestion:
I'm not really going far beyond laziness to a good extent. For whoever it was... i did this script for the top part of a picnic table in my tileset, slightly modified to let it be used as an example.
NPC Code:
if (playerenters) {
for (i=x;i<=x+5;i++){
showimg i*y,ostileset.png,i,y;
changeimgpart i*y,43*16,25*16,16,16;
}
}
The actual script that I would have used this on is gone now, because of a managerial change and a new plan of what is going to happen. It read values off of the string:
setstring this.port,portnumber,x,y,dir,boatx,boaty,signx,sig ny;
To explain the string:
-Consider portnumber,signx,signy irrelevant.
-The x,y,dir was to actually place the tickettaker char that used showcharacter and charprops.
-The boatx,boaty was for placing a showimg of the boat on the given coordinates.
Before I go any further, I'll explain to you how the old boat system on Classic had worked. (and also, please understand the fact that I was converting it to work on an NPC server and that it had been using like 20 putnpc scripts beforehand)
-you sit at the dock until the boat arrives
-the boat, ticket taker appear at the end of the timer.
-you go talk to the ticket taker, he warps you to a separate boat level.
-you stay in the boat level until you get at the stop you want.
-you get off the boat, warp into a new level.
I wanted to be able to control all of this through a single class. The problem was that the tickettaker char took immediate control of the setshape and I couldn't use setshape anywhere else through the NPC because of that. I don't see it as a big deal, I wouldn't care about being able to swim under the boat graphic, but if it was something where it would make more sense to block, I would appreciate being able to use a feature that set a shape using x and y values.