Bug #1316
PlaceSellOrder - Not working
Description
Trying this on the .NET wrapper - does not do anything, doesn't create any error codes.
Using a simple code, will post snippets
itemList = Ext.Me.GetHangarItems();
foreach (Item item in itemList )
item.PlaceSellOrder(price, item.Quantity, 90);
This use to work before (last time I can recall is before the Rhea update).
Updated by rogeruk almost 10 years ago
Sorry to keep on but I see no activity from the dev's on ISXEVE?. Any updates would be great?
Updated by Amadeus almost 10 years ago
- Assignee set to Administrators
Either Cybertech or I will look at it at some point this week. I'm available after Tuesday and will look at it if he doesn't have time before then.
Updated by Amadeus almost 10 years ago
- Status changed from New to Implemented
As you can see from the patch notes below, you'll have to completely re-do your script. Basically, instead of item:PlaceSellOrder you're going to item:AddToSellOrder for each item you want to add to the particular sell. Once at least one item is added, you'll see the "SellItemsWindow" that is new as of a few months ago.
At this point, you can see that I've provided quite a few things you can see and do with the window and the items for sale in it. Once you're used to it, it should provide the ability to create much more intelligent scripts/routines than you could before.
Here is an example of how I might sell 20 of one item for 100 isk each (pseudo-lavishscript):
item:AddToSellOrder EVEWindow[SellItems]:SetDuration[0] ; for instant sell EVEWindow[SellItems].Item[1]:SetAskPrice[100] EVEWindow[SellItems].Item[1]:SetQuantity[20] EVEWindow[SellItems]:Sell
Obviously, you'll need to wait until the window is open before doing things and closed after you're finished..and, as you can see from the patch notes, there are a lot of other things you can see about the window and each of the items in the window. Finally, please note that this new methodology WILL allow you to create sell orders with multiple quantities of the same item: you'll just need to add them to the window as seperate stacks.
I will add this new stuff to the .NET wrapper as soon as I am able.
January 22, 2015 [ISXEVE-20150113.0002] * Removed the "PlaceSellOrder" METHOD from the 'item' datatype * Datatype 'item' New Method: 1. AddToSellOrder * New Datatype: 'evesellitemsWindow' [inherits 'evewindow'] New Members: 1. Duration (int) 2. RemainingOrders (int) 3. BrokersFee (string) 4. SalesTax (string) 5. TotalAmount (string) 6. NumItems (int) 7. Item[#] (sellitem) [# is between 1 and 'NumItems'] New Methods: 1. SetDuration[#] (# is the number of days for the order. Only use one of the following: 0,1,3,7,14,30,90) 2. Sell (Note: You will need to click the box that says "Do not show me this again" for this to sell items without confirmation.) * New Datatype: 'sellitem' New Members: 1. Name (string) 2. ItemID (int64) 3. SalesTax (double) 4. Quantity (string) 5. AskPrice (string) 6. TotalAmount (double) 7. AveragePrice (double) 8. BestPrice (double) 9. BestVolumeRemaining (double) 10. BestJumps (int) New Methods: 1. SetAskPrice[#] 2. SetQuantity[#] * EVEWindow TLO: Using the argument "SellItems" will return a 'evesellitemsWindow' datatype object if the sell items window is currently open/available.
Updated by rogeruk almost 10 years ago
Very nice Amadeus! Thank you. Please let me know when the .NET wrapper is updated as this is what I use majority of the time
Updated by Amadeus almost 10 years ago
OK, the wrapper is now fully up-to-date. The additions should be pretty self-explanatory other than the addition of GetSellItemsWindow() to the EVEWindow class.
January 23, 2015 [ISXEVE-20150113.0003] * Updated the .NET ISXEVE Wrapper that is distributed with ISXEVE
Updated by rogeruk almost 10 years ago
I am trying to use the SellItemsWindow (.NET) but cannot get it to work.
I have been trying:
EVEWindow.GetSellItemsWindow().SetDuration(90);
and
EveSellItemsWindow window = EveSellItemsWindow.GetSellItemsWindow();
window.SetDuration(90);
But nothing seems to be happening.
Will this update real time on the client?. For example, if i set it to 2 weeks and then get the script to change it to 90 days, willl the dropdown box change to 3 months?
Updated by Amadeus almost 10 years ago
Does it work if you do EVEWindow[SellItems]:SetDuration[90] in the console? Do the other members/methods of the EVESellItemsWindow class work?
Updated by rogeruk almost 10 years ago
Yes the console and iss works fine. The only thing that is working is the .AddToSellOrder, doesn't seem that the window class is working at all (duration, sell etc doesnt do anything)
Updated by Amadeus almost 10 years ago
Well, the source is up on github if you want to look at it. I thought I did everything the same as the other windows (i.e., "EveRepairShopWindow"), so I'm not sure why it would work for those and not the new SellItemsWindow. But, feel free to download the source and compile it and see what you find out. Otherwise, you could ask someone like Stealthy to look over it and see if they notice a reason why it wouldn't be working.
If GetSellItemsWindow() is returning a valid object, then it seems like it should be fine. If GetSellItemsWindow() is not returning a valid object, then that would be something else to debug.
Updated by rogeruk almost 10 years ago
It seems that none of the windows work from the .NET wrapper - I have never used the windows before so did not know that the others did not work either.
EVEWindow.GetWindowByName("SellItemsWindow").Close();
EVEWindow.GetWindowByName("Market").Close();
I do not even know where to start looking to debug or fix this.
Updated by Amadeus almost 10 years ago
You can't get them necessarily by name that way. The 'name' is not the same 'caption'. If it's something that's in the caption of the window, you'd use "ByCaption".
Test these functions instead:
////// Fetch the EVE Inventory window /// ///public static IEveInvWindow GetInventoryWindow() { return new EveInvWindow(LavishScript.Objects.GetObject("EVEWindow", "Inventory")); } public static EveRepairShopWindow GetRepairShopWindow() { return new EveRepairShopWindow(LavishScript.Objects.GetObject("EVEWindow","RepairShop")); } public static EveFittingWindow GetFittingWindow() { return new EveFittingWindow(LavishScript.Objects.GetObject("EVEWindow", "Fitting")); } public static EveSellItemsWindow GetSellItemsWindow() { return new EveSellItemsWindow(LavishScript.Objects.GetObject("EVEWindow", "SellItems")); }
Updated by rogeruk almost 10 years ago
I have tried with the above and no success.
EVEWindow window = EVEWindow.GetSellItemsWindow();
window.Close();
Doesn't do anything, sell window is open (manually) and the code should simply just close the window.
Neither of these codes work
EVEWindow window = EVEWindow.GetSellItemsWindow();
window.Close();
EVEWindow.GetWindowByName("SellItemsWindow").Close();
EVEWindow.GetWindowByName("SellItems").Close();
I used this to get the window names:
function main()
{
variable index:evewindow Windows
variable iterator ThisWindow
EVE:GetEVEWindows[Windows]
Windows:GetIterator[ThisWindow]
if ${ThisWindow:First(exists)}
{
do
{
echo ${ThisWindow.Value.Name}
}
while ${ThisWindow:Next(exists)}
}
}
These work if I type them into the console and work fine in an iss script
EVEWindow[SellItems]:Close
EVEWindow[SellItemsWindow]:Close
Updated by rogeruk almost 10 years ago
I have just tried this:
List<EVEWindow> windowList;
using (new FrameLock(true))
{
windowList = Ext.EVE().GetEveWindows();
}
InnerSpace.Echo("Found " + windowList.Count + " windows");
Console shows "Found 0 windows"
Updated by Amadeus almost 10 years ago
I'll ask Cybertech and stealthy to look into it. However, for now you might consider porting your script that deals with the market into lavishscript to avoid this type of problems in the future. .NET is not a priority for me and while I'll update the wrapper given what's already there, I'm not going to test it and/or debug it or anything. So, unless someone else is willing to fix it, it will probably stay broken.
Updated by rogeruk almost 10 years ago
Yea not a problem, I have created what I need into a script just to handle that part, I use the .NET for database/xml features for the market side of things.
I would like to look at helping to fix it, but I do not understand the link between the wrapper and isxeve/innerspace. Is there any guide/references/tutorials regarding the innerspace/extension side of things?.
Updated by rogeruk over 9 years ago
Would be so great to get this working :(. Can someone poke Cybertech or Stealthy?