Project

General

Profile

Bug #1316

PlaceSellOrder - Not working

Added by rogeruk over 9 years ago. Updated almost 9 years ago.

Status:
Implemented
Priority:
Normal
Assignee:
Administrators
Category:
-
vbulletin_issue_id:

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).

 
#1

Updated by Ramzeth over 9 years ago

I confirm this issue.

#2

Updated by rogeruk over 9 years ago

 
 

Any word on this?.  Not working as a ISS script either.

 
#3

Updated by rogeruk over 9 years ago

 
 

Sorry to keep on but I see no activity from the dev's on ISXEVE?.  Any updates would be great?

 
#4

Updated by Amadeus over 9 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.

#5

Updated by rogeruk over 9 years ago

 
 

Thanks, let me know if you need to test anything

 
#6

Updated by Amadeus about 9 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.
#7

Updated by rogeruk about 9 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

 
#8

Updated by Amadeus about 9 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
#9

Updated by rogeruk about 9 years ago

 
 

Thanks!.   Now time to re-write my bot :D

 
#10

Updated by rogeruk about 9 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?

 
#11

Updated by Amadeus about 9 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?

#12

Updated by rogeruk about 9 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)

 
#13

Updated by Amadeus about 9 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.

#14

Updated by rogeruk about 9 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.

 
#15

Updated by Amadeus about 9 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"));
		}
#16

Updated by rogeruk about 9 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

 
#17

Updated by rogeruk about 9 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"

 
#18

Updated by Amadeus about 9 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.

#19

Updated by rogeruk about 9 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?. 

 
#20

Updated by rogeruk about 9 years ago

Any word from Cybertech or Stealthy?. 

#21

Updated by rogeruk almost 9 years ago

Would be so great to get this working :(.  Can someone poke Cybertech or Stealthy?

Also available in: Atom PDF