Project

General

Profile

Item (Data Type)

Description

This DataType includes information and performs actions that are exclusive to items

Members

  • Physical Information/Status
    • double Capacity
    • string Description
    • int GraphicID
    • bool IsRepackable
      • This returns TRUE if the item is a 'repackable' type AND if it's currently in a state to be repackaged. However, it does not make sure that the item is in a location where it CAN be repackaged (ie, your hangar).
    • string Location
      • Example: "Amadeus' Harbinger"
    • int LocationID
    • int MarketGroupID
    • int PortionSize
      • ie, "Units to Refine"
    • int Quantity
    • int RaceID
    • double Radius
    • string Slot
    • int SlotID
    • double Volume
    • double CargoCapacity
      • NOTE: This member only works for 'secure cargo container' type items (GroupID: 340)
    • double UsedCargoCapacity
      • NOTE: This member only works for 'secure cargo container' type items (GroupID: 340)
    • float MetaLevel
    • bool IsContraband [returns TRUE if the item is contraband anywhere in the universe]
    • bool IsContraband<MW_SINGLEBRACKET>FACTIONID#] [returns TRUE if the item is contraband for the given factionID#
      • (HINT: The 'interstellar' datatype has "FactionID" and "Faction" members. For example ${Universe[${Me.SolarSystemID}]}, ${Universe[${Me.ConstellationID}]}, and ${Universe[${Me.RegionID}]} are all 'interstellar' type objects.)
  • Financial
    • double BasePrice
    • bool IsInsured
      • Ships only, CAN return NULL if insurance window has not fully loaded yet
    • string InsuranceLevel
      • Basic, Standard, Bronze...Platinum, etc
When opening the insurance window, call ${...IsInsured(exists)} to verify it has loaded the insurance records before attempting to validate insurance
  • ''' Weapon Charges ''' -- Used for charges installed on a high slot on your active ship. In other words, you can use GetModules and access the information in that way, or something similar to: ${Me.Ship.Module[hislot0].Charge.MaxFlightTime}

Methods

''' Item Transport Methods '''

  • Jettison
  • MoveTo<MW_SINGLEBRACKET><ID#>, <Destination></MW_SINGLEBRACKET>
  • MoveTo<MW_SINGLEBRACKET><ID#>, <Destination>, <Quantity></MW_SINGLEBRACKET>
  • MoveTo<MW_SINGLEBRACKET><ID#>, <Destination>, <Quantity>, <FolderName></MW_SINGLEBRACKET>
NOTE: To move an item to YOUR ship using this syntax, simply use ${MyShip.ID} as the first parameter. Otherwise, use the EntityID# of the destination container.)
NOTE: "FolderName" only applies to the destinations 'CorpHangars' and 'StationCorporateHangar')
NOTE: When indicating a specific FolderName, you MUST indicate a quantity as the third parameter.)
NOTE: If you do not provide a 4th paramater, the item will be moved to the "Corporation Folder 1" folder.)

  Can be used in place of 
  1.  MyShip
  2.  MyStationHangar
  3.  MyStationCorporateHangar

  Possible Destinations:
  1.  CargoHold                (The traditional cargo hold)
  2.  DroneBay
  3.  CorpHangars              (Will work on your ship as well as the corporation hangars of a capital ship or POS)
  4.  MaintenanceBay           (Will work on your ship as well as the Maintenance Bay of a capital ship)
  5.  OreHold
  6.  FuelBay 
  7.  GasHold
  8.  MineralHold
  9.  SalvageHold
  10. IndustrialShipHold
  11. AmmoHold
  12. StationCorporateHangar   (For this destination, you can enter any positive integer for the ID#)
  13. Hangar                   (For this destination, you can enter any positive integer for the ID#)

  Possible Folder Names (for all Methods that use folder names as a possible parameter):
  1.  Corporation Folder 1
  2.  Corporation Folder 2
  3.  Corporation Folder 3
  4.  Corporation Folder 4
  5.  Corporation Folder 5
  6.  Corporation Folder 6
  7.  Corporation Folder 7

''' Drone Methods '''

  • Launch
    • Drones only.

' Ship Methods'

  • MakeActive
    • For ships in your "${Me.Station.GetHangarShips}".
  • LeaveShip
    • Leave your ship
  • Repackage
    • Scripts should accept the dialog using the Click* methods in the evewindow datatype
  • FitToActiveShip
  • AssembleShip
  • AssembleContainer
  • GetInsuranceQuotes<MW_SINGLEBRACKET>collection:float</MW_SINGLEBRACKET>
    • Ships only: Returns the insurance quotes for the relevant ship item, in a collection where key = Level, and value is Cost
See https://www.isxgames.com/EVEBot/Trunk/EVEbot/Testcases/test_Item_GetInsuranceQuotes.iss for example usage
  • Insure<MW_SINGLEBRACKET>Cost</MW_SINGLEBRACKET>

a. Ships only - Cost is one of the values from GetInsuranceQuotes b. Using other values WON'T work. c. Using other values WILL lead to server-side detection, and will NOT be filtered by isxeve. Don't be stupid.

''' Skill Methods '''

  • InjectSkill
  • TrainSkill
    • Only works for skill books...obviously

''' Uncategorized '''

  • PlaceSellOrder<MW_SINGLEBRACKET>Price#, Quantity#, Duration</MW_SINGLEBRACKET>

Duration is in DAYS
NOTE: If you place a sell order that already matches a buy order that's on the market, it will act as an 'instant' sell order'
NOTE: As of now, you may only sell items within a station (and they will sell from THAT station) with ISXEVE.
NOTE: As of now, ISXEVE does not take into account your current/maximum number of sell orders.  Your script must handle that.

  • GetCargo<MW_SINGLEBRACKET><index:item></MW_SINGLEBRACKET>
  • Open
  • Close

An example for using these 'secure cargo container' members/methods can be found at:
http://www.isxgames.com/forums/showthread.php?p=12195

  • ConsumeBooster
    • Uses a booster
  • ApplyPilotLicense
  • PluginImplant
  • GetContrabandFactions<MW_SINGLEBRACKET>index:int</MW_SINGLEBRACKET>
    • (This method populates an index:int with all the factionIDs for which this item is contraband. If the item is not a contraband item, then the index returned will contain zero nodes.)

Examples

More examples might be found here

This snippet loots everything from a container entity called "Cargo Container". You could easily modify this for looting wrecks as well as specifying particular types of things you wanted to loot (rather than looting everything.)

function main()
{
  variable string ContainerName = "Cargo Container"
  variable index:item ContainerCargo
  variable int ContainerCargoCount
  variable int i = 1
 
  ; Make sure that there is actually a cargo container there that matches the name we set
  if (!${Entity[${ContainerName}(exists)})
  {
     echo No Entities in the area that match the name you provided.
     return
  }
 
  ; If it exists, get close enough to it!
  if (${Entity${ContainerName}.Distance} > 1300)
  {
     Entity${ContainerName}:Approach
     do
     {
       wait 20
     }
     while ${Entity${ContainerName}.Distance} > 1300
  }
 
  ; Always make sure that the container's cargo is accessible.  If not, then open the cargo to populate the window
  if (!${Entity${ContainerName}.IsCargoAccessible})
  {
     Entity${ContainerName}:OpenCargo
     wait 30
     Entity${ContainerName}:CloseCargo
     wait 3
  }   
 
  ContainerCargoCount:Set${Entity[${ContainerName}].GetCargo[ContainerCargo]}
 
  do
  {
     ContainerCargo.Get${i}]:MoveTo[MyShip]
     wait 15
  }
  while ${i:Inc} <= ${ContainerCargoCount}
 
  ; After everything is looted...let's clean up our Cargo
  Me.Ship:StackAllCargo
 
  echo Script Ended
}


This particular snippet moves everything from your ship's cargo (that is of CategoryID 25: asteroid) to a cargo container. Basically, it jettisons the first cargo item that matches our search, renames the cargo container to "Amadeus", and then moves everything else in the ship's cargo to the new container.

function main()
{
  ; The name we want our container to have
  variable string ContainerName = "Amadeus"
  variable index:item MyCargo
  variable int i = 1
   
  ; Make sure that my cargo is accessible.  If not, open it to populate the window.
  if (!${Me.Ship.IsCargoAccessible})
  {
      EVE:Execute[OpenCargoHoldOfActiveShip
      wait 30
      EVE:ExecuteOpenCargoHoldOfActiveShip
      wait 3
  }     
   
  variable int MyCargoCount = ${Me.Ship.GetCargoMyCargo}
   
  ; Loop through my cargo -- I want to jettison the first thing that is of CategoryID 25 (Asteroid).
  ; Then, I want to add all of the other items that match that CategoryID to the container that was created.
  do
  {
     if (${MyCargo.Get${i}.CategoryID} == 25)
     {
        if !${Entity${ContainerName}(exists)}
        {
           MyCargo.Get${i}:Jettison
           wait 2
           do
           {
             wait 15
           }
           while !${Entity"Cargo Container"(exists)}
           wait 5
           Entity"Cargo Container"]:SetName[${ContainerName}
           wait 20      
           ; Always make sure that the container's cargo is accessible.  If not, then open the cargo to populate the window.
           ; (This is not required for this particular task; however, it's good to be in the habit.)
           if (!${Entity${ContainerName}.IsCargoAccessible})
           {
             Entity${ContainerName}:OpenCargo
             wait 30
             Entity${ContainerName}:CloseCargo
             wait 3
           }            
        }            
        else
        {
           ;echo Moving ${MyCargo.Get${i}].Name} to ${Entity[${ContainerName}.ID}
           MyCargo.Get${i}]:MoveTo[${Entity[${ContainerName}].ID}
           wait 10
        }  
     } 
  }
  while ${i:Inc} <= ${MyCargoCount}
   
  ; After everything is done ...let's clean up the stacks.
  Entity${ContainerName}]:StackAllCargo
   
  echo Script Ended
}