Need help to start :-)

stephan

Member
Hi guys,

i just bought a subscription for isxeve and inner space and im trying now to execute and run my first script.

As im total new to this topic i have some questions. I follwed the installation and setup steps described at http://www.isxgames.com/isxeve/Acquisition_Step1.html and everything seems to work so far.

Where i'm stuck now is to run just a simple test script. I must admit i have no knowledge yet about the programming language used (coming from the java area). I assume its .net / c# ?

So my questions are:

- Where can i find a test script to check whether my environment works?
What i did so far is i copied the script http://www.isxgames.com/forums/showpost.php?p=11944&postcount=2 into a new text file and saved it in my eve folder (i choosed .txt as extension).
Then tried to load it with
DotNet <filename>
After i got a message like OuterException System.BadImageFormatException Could not load file or assembly <File location> or one of it dependencies
Anybody an idea what im doing wrong?

- Next question is if there is any howto for writing these scripts. I found the wiki but couldnt find something like first steps. Are these first steps maybe just to know the objects listed in the wiki and .net skills?
If so, can anybody recommend a howto for .net? As i wrote im a java programmer, means im not totally new to programming :)
 

stealthy

ISX Specialist
You're doing it waaaaay wrong.

'dotnet' is used to launch compiled .NET assemblies, in format 'dotnet <domain> <path/to/assembly> <args>'.

Scripts are written using LavishScript (file extension .iss) and are launched using "run path/to/script"
 

stephan

Member
uuuups :dazed: Thx stealthy

ok...i copied now this script:
http://www.isxgames.com/forums/showpost.php?p=11945&postcount=3
saved it as *.iss in the Scripts folder.

After executing it with the run command it looks like it works but i get only NULL as values back.
This is the output i get:
Code:
EVE Extension for Innerspace (By Amadeus) *LOADED*
Updating/Fetching My Orders...
Populating Orders List:: 0 items total
Issued: NULL at NULL (NULL-day order)
ID: NULL
TypeID: NULL (NULL)
Price: NULL
InitialQty: NULL - QtyRemaining: NULL - MinQtyToBuy: NULL
Station: NULL (NULL)
SolarSystem: NULL (NULL)
Region: NULL (NULL)
Order Range: NULL jumps
IsCorp: NULL
IsContraband: NULL
==================
Script finished.
Can it be connected with the administrator account? That the enironment has no access to get the data or something like this?

Forgot to say i have 1 active sell order and about 10 buy orders.
 

stephan

Member
Thanks Zamu, thats what i found out so far. Some scripts work and others dont work.

I found a script in the market section what works for me after making some custom changes (searching all my buy and sell order for a named item in the script and modify the price). At least i can say now my environment works :toast:

I recognized that especially older scripts are not working anymore because objects doesnt exist anymore or their name maybe changed (at least that is what i think).

Just as an example. This script:
http://www.isxgames.com/forums/showpost.php?p=11944&postcount=2

throws following error when i execute it:
Code:
Updating/Fetching Market Orders...
[B]Error:No such 'eve' method 'UpdateMarketOrders_A' [/B]@EVE:UpdateMarketOrders_A[3347]
Error parsing data sequence ''
Dumping script stack
--------------------
-->C:/Program Files/InnerSpace/Scripts/market2.iss:9 main() EVE:UpdateMarketOrders_A[3347]
Is there a up to date API somewhere? In the wiki its written its not up to date.
Guess the ISXEVEChanges*.txt files are the most up to date information sources, arent they?
 

stephan

Member
Ok, found the problem/solution...

Some changes is this area were made. They are documented in the ISXEVEChanges.txt (December 3, 2009) :)
 

stephan

Member
Hi guys...after scripting some days i have some more questions. Hope somebody can help :)

- I was looking for ages to find a way how i can pass a collection to a function but couldnt find any so far...
The collection is of type index:marketorder. I want to pass this to a function and as parameter i tried stuff like function test(collection paraName) or function test(index:marketorder paraName) but it doesnt work. The first way brings an error and with the second i got only NULL's within the function when i try to echo the parameter.
The only thing i saw in the wiki was stuff how it works with arrays (... ParaNames). In my case i have map and now clue how this would work. I was thinking about a global variable but wanted first to ask here.

- Is there a possibility to resize the ingame console where i let run my scripts? Viewable are about 15 rows but sometimes i would prefer to have more rows visible, especially when im trying to debug with some echo's.
 

LRonSmith

Active Member
- Is there a possibility to resize the ingame console where i let run my scripts? Viewable are about 15 rows but sometimes i would prefer to have more rows visible, especially when im trying to debug with some echo's.
In the Innerspace/Interface directory you can create a copy of the the DefaultUI.xml, edit the console height on line 112, and then load the new file "ui -reload DebugUI.xml"

Some related info is here:
http://www.lavishsoft.com/wiki/index.php/IS:Configuration#User_Interface
 

CyberTech

Second-in-Command
Staff member
- Is there a possibility to resize the ingame console where i let run my scripts? Viewable are about 15 rows but sometimes i would prefer to have more rows visible, especially when im trying to debug with some echo's.
Grab the window edge and drag it down to make it bigger. the window is resizable.
 
"Error:No such 'eve' method 'UpdateMarketOrders_A' @EVE:UpdateMarketOrders_A[3347]"
How did you solve this issue, or if some one else knows what I need to do feel free to share.
 

Amadeus

The Maestro
Staff member
Your script is old and needs to be updated. You should always read the "ISXEVEChanges.txt" file that is included with isxeve every time that it is updated.


Code:
[SIZE=2]December 3, 2009
[ISXEVE-20091201.0274]
* Added new MEMBER to the 'login' datatype:
1. ServerMOTD (string type)
* Removed the following METHODS from the 'eve' datatype:
1. UpdateMarketOrders_A
2. UpdateMarketOrders_B
* Added new METHOD to the 'eve' datatype:
1. FetchMarketOrders[#] (# is the TypeID of the item for which you are searching)
***
*** The "FetchMarketOrders" method will either fetch an initial set of orders or update the orders you may have already fetched. In both
*** cases, it does take a few moments to update the orders, so your script will have to handle this. The example below works well for getting
*** an initial set of orders; however, if one were UPDATING orders, one would need to 'hard code' a long wait time to make sure they were 
*** updated (since "DoGetMarketOrders" retrieves whatever is saved in the cache.) I may be adding something soon that will be more efficient
*** than this system; however, for now, this solution should make it fairly easy to adjust scripts written before the Dominion expansion.
********
******** Example (getting orders for "Amarr Titan" skillbooks):
******** variable int i = 1
******** variable index:marketorder Orders
******** 
******** echo "Updating/Fetching Market Orders..."
******** ; 3347 = Amarr Titan (skill book)
******** EVE:FetchMarketOrders[3347]
******** wait 20
******** 
******** EVE:DoGetMarketOrders[Orders]
******** if (${Orders.Used} == 0)
******** {
******** do 
******** {
******** echo "..."
******** TimeOut:Inc
******** EVE:FetchMarketOrders[3347]
******** wait 20
******** 
******** EVE:DoGetMarketOrders[Orders]
******** if (${Orders.Used} != 0)
******** break
******** 
******** if (${TimeOut} > 3)
******** {
******** echo "Error: Timeout while attempting to get market orders."
******** return
******** }
******** }
******** while (${Orders.Used} == 0)
******** }
******** ;;;
******** ;;; Then you would iterate through your your "Orders" index...
******** ;;;
[/SIZE]
 
Top Bottom