Random Chitchat 2012-2016
(05-29-2013, 03:55 AM)STR_Warrior Wrote: I was wondering if it is possible to open a "virtual" chest. like you use a command and then you get a window.
I also thought that, it would be useful, players would be able to have a protected chest everywhere. And add ender chests would be nice too.
Thanks given by:
All the windows MCServer implements are tied tightly with the entities that they represent, so there's no way of separating them reasonably.

What we *could*, theoretically, do, is to make a Lua-only window class that will interact specifically with the plugins, nothing else. This could actually work. The plugin creates a cWindowLua, says that the client window type is cWindow::Anvil, for example, then it adds a few cSlotAreaLua object to handle the actual slot areas and sets their contents, and finally calls a cWindowLua:OpenForPlayer(). The window will then process the clicks and a hook function will be called for each slot manipulation, as well as window closing.

OK, guys, I challenge you. Start a new thread, write a reasonable "documentation" for the API, together with a commented plugin code sample usage. If you manage that, I promise to implement it.
I recommend looking at the source/UI/Window.h and source/UI/SlotArea.h header files, to see how windows are currently implemented in C++, that might give you an idea of how to do this.
Thanks given by:
Oh god i have absolutely no idea how to start ;O
Thanks given by:
Ugh, I'm still fighting the dropspensers / redstone interaction. I thought I had it, but still there's problems.
Let's hope rev 1525 fixed most of them. There's just an issue that a dropspenser powered by a redstone torch directly next to it won't power down when the torch is removed. I don't think I'm capable of tweaking the redstone simulator that much to actually fix that Sad

(05-29-2013, 04:36 AM)STR_Warrior Wrote: Oh god i have absolutely no idea how to start ;O

Oh come on, I've even made the first step for you - a first thought about how the plugin code should work. Start there - think about how you want to be able to work with such windows from the Lua code. From there, it'll go all by itself.
Thanks given by:
Something like this? I'm realy bad in creating such posts ;(

LuaWindow
MCServer needs a class open for lua that allows them to create custom windows. For example if you use a command that it will open a window with 9 slots or something. This is the idea i have on how to work with it in Lua but i have no idea if it is possible:
function HandleCommand( Split, Player )
	Window = cLuaWindow()
	Window:Create( 9 ) -- Create a window with 9 slots.
	Item = cItem( E_BLOCK_DEAD_BUSH, 1, 0, 0 ) -- Create a item. It\'s just an example    <--
	Window:SetSlot( 1, Item ) -- Set the first slot to the Item                          /\
	Player:OpenWindow( Window ) -- Send the window to the player and let him open it     ||
end

Then with the use of a hook, the plugin should know what item the player clicked on.
Thanks given by:
OK, start a thread with that, I'll add my comments, you'll refine the code, I'll add more comments... Just I don't want this to rot in this all-purpose threadTongue so when I actually start implementing it, I can find it easily.
Thanks given by:
Why is there the most forum activity just as I'm leaving the computer? Then I have to reply from a phone and spend the whole dance training thinking about the new stuffTongue
Thanks given by:
I sometimes have that just before a test ;P
Thanks given by:
Wow, I received an email from a person actually wanting to use ProtoProxy! I didn't write the tool just for me, there's other people out there using it! Oh Yeah! Smile
Pity that the email said it didn't work for them Sad
Thanks given by:
Inventory painting should be all done, can the testers confirm?
Thanks given by:




Users browsing this thread: 24 Guest(s)