Hey All, We (Me and one other person) are planning to create a new plugin where users can auto choose stats and Pokemon moves from Smogon's strategy guide (http://www.smogon.com/bw/pokemon/) within Pokemon online, allowing players to easily build commonly seen Pokemon teams for battle. This will be a plugin feature, built on-top of the current Pokemon online application. We have looked through the QRCode Plugin and figured out how plugins in Pokemon Online work. We think that the MainEngineInterface that client plugins use does not have any method to access which Pokemon is currently selected in Teambuilder by the user. We were wondering if there was any good way to getting this data. Thanks.
Hi, the plugins have been created mostly on-demand, and the interface required has been developed side-by-side. Currently src/Teambuilder/Teambuilder/teamholderinterface.h exposes a read-only (const) interface but your plugin would most likely need a read-write interface. Either teamholder could be edited into read-write, or MainEngineInterface (src/Teambuilder/engineinterface.h) could include some functions which allow this. Regardless of which way you go, it would be best to not break the current plugins by changing the interfaces so that they won't be compactible with the current one anymore. What ideas you have? Do you need some help adding the required plugin interface?
Hi Lamprei, Thanks for the response. I purposely didn't reply for some time since I was still understanding the underlying structure of teamholderinterface. I understand now what you mean when you say that the interface needs to be read-write. Right now our idea is that our plugin will open a window, allow a user to choose a build for the pokemon on his/her team from Smogon. When the plugin is closed, the UI and underlying model should update with the changes made in the plugin. For example if the user has Infernape in the team, the user can use the plugin to select the Nasty Plot build on this page (http://www.smogon.com/dp/pokemon/infernape). When the window is closed, the values listed on smogon should be reflected in the UI. Right now I am not sure what the best way to expose needed features is. Any input in this regard would really help.
Since your plugin would be a "teambuilder" plugin (it would only be usable in the teambuilder right?), you can copy what's already been done with the client scripts plugin. The plugin manager basically stores one instance of an "OnlineClientPlugin" for each client open: Code (c++): void PluginManager::launchClient(ClientInterface *c) { clients.insert(c); foreach(ClientPlugin *pl, plugins) { OnlineClientPlugin *o = pl->getOnlinePlugin(c); if (o) { c->addPlugin(o); clientPlugins[c].insert(pl, o); } } } void PluginManager::quitClient(ClientInterface *c) { foreach(OnlineClientPlugin *o, clientPlugins.value(c)) { delete o; } clientPlugins.remove(c); clients.remove(c); } When a client is open, each plugin is asked whether or not it wants to create an OnlineClientPlugin, and if so, the OnlineClientPlugin is stored. When the client is closed, the OnlineClientPlugins for that client are removed. Basically you need to put in place the same system for TeamBuilder (use Ctrl+Shift+U on launchClient and quitClient of the plugin manager to see where to introduce the teambuilder functions in the teambuilder code). You would give your TeamBuilderPlugin a TeamBuilderInterface* parameter, which can be used to update the teambuilder based on the change of the team.
All, thank you for all the help here - I really appreciate it. Me and a friend have finished developing our first version of SmogonPlugin. SmogonPlugin is a plugin where users can auto choose stats and Pokemon moves from Smogon's strategy guide (http://www.smogon.com/bw/pokemon/) within Pokemon online, allowing players to easily build commonly seen Pokemon teams for battle. How it works: [video=youtube;isDXGqwXPqw]http://www.youtube.com/watch?v=isDXGqwXPqw[/video] Currently we have implemented a simple interface for viewing builds. The user can modify the build if it has options. The user can save build to the default team directory as the name specified before entering teambuilder In the future we plan on: - Modifying the main TeamBuilder UI dynamically when the user changes build or options in the plugin. - Have a save dialog appear when you hit the save button in after you have made the choices. - Currently the move hidden power is ported to PO correctly for gens 3-5, gen 2 does not work at the moment because of a difference in style between gen 2 and the other gens. - Check if a move was entered twice There is a lot of testing and work to be done here, and it would be great to hear the communities feedback for the next release! Link to source: https://github.com/dgurjar/pokemon-online/tree/master/src/SmogonPlugin
Alright, I've added it to the PO repo and tested it! It's pretty impressive you seem to know so much about Qt already, and using network instead of local storage for smogon sets. Though, I have a question, do you want to wait and improve it before it's included in the next PO release, or is it ok like it is now?
Hey, Thanks! It's fine as is for now, I am busy for this month, but afterwords do plan on releasing an improved version. Would love for the PO community to give it a try and report any bugs they find.
I've tried it out, and so far a love the idea, but I am completely unable to save any of the sets onto the pokemon (mac version). I've followed all of the steps from the video, but when I click "save" nothing saves.
Hey, I just downloaded the current OS X version 2.0.05 and found that it didn't have the plugin included. Did you build it yourself? From our end, we never tested our plugin on OS X, only Windows and Linux. Out of curiosity did you name your team before using our plugin? Currently we save your team based on the name provided. In the video, the team was named smogonBuild. A blank name for the team could potentially be a problem in OS X. Also just for reference, what version of OS X are you running?
The current version of mac is actually 2.0.07, and Lamperi packaged the plugin on that version. I'm running Mountain Lion, 10.8.2. I put in a name, though I try out some other things and report back if I can fix it.
2 things: 1) It crashes every time I use it :( 2) I'm not sure about other pokes but Qwilfish only uses 504 EVs on its set
Hey, I tried out the plugin in 2.0.07 on mountain lion, and it seemed to work fine for me. Posted a video of it working: http://www.youtube.com/watch?v=AaR4X6crA-w Please let me know if you are still having any troubles.
Hey can you tell me which OS you are using and the exact nature of the crash? Also all Pokemon use EVs specified according to Smogon. Smogon uses 504 for Qwilfish and mostly all the pokes I've seen. Not sure why this is the case... However since the plugin is meant to be as close to Smogon as possible, we expect you guys to manually tweak your pokes as needed.
^ 1:24, as soon as you save it (Also sorry about all the posts guys) EDIT @Coyo I tried that, no change Thanks anyway
Hey, when I tried it on Windows 7 (Fresh install) it gave me a popup error when trying to save saying that PO couldn't save to the specified directory. I found the following workaround: Simply create the directory if that doesn't work, try I forget which one it is. After creating that directory, it seemed to save fine. This is something that will be fixed in the next update. Let me know if this fixes it for you.
I crash too when clicking save. Win 7 64 Bit. I added the folder(s) specified above and still nothing. I have this if it helps though Spoiler [/HIDE] I tried running it through the debugger after I crashed :x
Fixed (i think) Code didn't check if tab->getPokeTeam() was NULL or not (in frame 1 of the debug stack in the screenshot)
Quick thing, I can't actually access that file to replace the data (My laptop can't run java :( ) (Btw if it matters, I run 32-bit windows)
I'm having trouble using this on my macbook OS X Snow Leopard 10.6.8. I downloaded the zip file, but the plugin manager didn't detect it. I tried individually testing each file to see if the manager read it to no avail.
The alpha version of this plugin is included on Mac download 2.0.07. You should not need to do any other downloading.
Wasn't aware of that until I located and downloaded 2.0.07 (which you should probably link in the main site's download page,) and I then had those same crashing problems. It apparently crashes if you don't put a moveset in every pokemon on the team before saving. However, if Smogon didn't make a set for a certain pokemon on my team, I just copied the other sets manually and added some random set on that unknown pokemon, making sure I don't save in the plugin box so I don't crash the client.
Hi, when i click on "save", it says, "can't create file". And when i start PO as admin, and click "save", it crashes :l (I mean the save-button in the plugin)
Is there any way to change the database of the plugin? I mean changing any of the movesets or adding more EV Spreads to the Pokémon or it's impossible?
go to the plugins on the nav bar at the top, click add plugin and there are many there, but be sure not to use Smogon yet because of the crashes it has on your PO
Link's been updated for gen 6 analyses, which smogon still doesn't have. Once they put it up, it will work. You can still get gen 5 sets by setting your gen to BW2.