Page 1 of 1

Unable to refill water jugs as of 3.7

Posted: Thu Sep 21, 2006 5:16 pm
by stranf
I thought I posted this, but I can't find my post, apperently it was deleted.

Bug #1: As of 3.7 I am unable to fill an empty water jar with water. I double click on the jar and it says, "you are unable to use this item."

Bug #2: This could be a JS scripting bug, so I might look at it myself if the above bug gets fixed so I can test.

When water jugs were working you could use water to turn flour into dough; however this uses 1 charge of the water. When you use the water jug again, it says "there is not enough water in the jar." when you use the jar on the water source, it would say, "you can't pour water into that."

So the only trick was to use the water jug to make dough, pour the water on a patch of grass (emptying the jug) and filling up the water jar again.

It would be nice to be able to fill up a jug of water and use it 3 to 5 times before refilling it again. I believe this could be a .js issue, but since jugs are not working at all it is hard to test.

Thanks!

Posted: Fri Sep 22, 2006 2:18 am
by Maarc
I'd suspect this is a JS issue, yes. I'm not used to the whole thing, so I'll see if I can't look at it today, but no guarantees.

Posted: Fri Sep 22, 2006 4:53 am
by Xuri
Since I made the script which handles pitchers, bottles, etc., I'm 100% certain it's a JS issue ;P

I made the script add custom tags to all the liquid-containers (including pitchers) that are used, to determine what's in them, and how much. That allows for moving liquid about from any container to any other container. You can fill a bottle of ale with wine, for instance, and it will read "a bottle of wine" instead.

Anyway, the problem is that the dough-making script doesn't know about those custom tags, and only changes the ID of the water pitcher when it's combined with the dough. So when you next double-click the water pitcher (which looks empty), the pitchers-script still thinks it holds liquid and asks you where to pour it.

Got a fix in the workings, though.

For a quick fix, stranf, add the following highlighted lines to the dough.js script under js/skill/cooking/:

Code: Select all

...
		if( targSerial.id == 0x0FF8 || targSerial.id == 0x1f9e)
			targSerial.id = 0x0FF7;
		if( targSerial.id == 0x0ff9 || targSerial.id == 0x1f9d )
			targSerial.id = 0x0FF6;
		[color=red]targSerial.SetTag( "ContentsType", 1 );
		targSerial.SetTag( "EmptyGlass", 3 );
		targSerial.SetTag( "UsesLeft", 0 );
		targSerial.SetTag( "ContentsName", "nothing" );[/color]

		var itemMade = CreateBlankItem( pUser.socket, pUser, 1, "#", 0x103D, 0x0, "ITEM", true ); // makes a dough
		pUser.SysMessage( "You make some dough." );
	}
	else // Target is a static item
		pUser.SysMessage( "You cannot use that for making dough." );
}
Also, further up in the script, you might want to apply the following code to make the script use the correct flour-resource from your backpack when making the dough:

Code: Select all

					if( iMakeResource < 1 )
					{
						pUser.SysMessage( "There is not enough flour in your pack!" );
						return;
					}
[color=red]					else[/color]
						var iID = 0x103a;
				}
[color=red]				else[/color]
					var iID = 0x1039;
			}
[color=red]			else[/color]
				var iID = 0x1046;[/color]
		}

Posted: Fri Sep 22, 2006 4:57 am
by Maarc
Good work Xu, I'd have had no idea where to start looking :)

Posted: Fri Sep 22, 2006 7:06 pm
by stranf
Thanks, I'll try to add that temporary fix this weekend.

And speaking of pouring water, I have fluid mechanics homework to do now!