Page 1 of 1

Star Trek Online

Posted: Sun Jul 06, 2014 9:32 pm
by lisa
Not really going to make anything full on for this game, at the moment just doing some work for mining.

CE file with current addresses and pointers, 32bit windows.
GameClient.CT
(4.78 KiB) Downloaded 378 times

Have MM using mine.lua in background. Start the mine game and once it starts press ctrl + T for max score or ctrl + Y for 735 score.
Addresses and pointers are only for 32bit at this stage and may still vary, I may look at making an updater but it's beena long time since I did anything like that.
mine.lua
(4.13 KiB) Downloaded 337 times

Code: Select all

Press the (F6) key to stop/pause the script.
You can resume with the (F5) key.
Score: 1320
Score: 1270
Score: 1320
Score: 1270
Score: 1320
Score: 1370
Score: 735
Score: 735
Score: 735
Score: 735
Score: 735
Score: 735
Again probably not going to do to much on this but this topic will be a place keeper for the ongoing work I do.

Re: Star Trek Online

Posted: Sun Jul 06, 2014 9:41 pm
by lisa
Player (not ship) direction is simple enough.
Float at (GameClient.exe+2468100)
approx -3.2 to 3.2
negative is east, 0 is north.

Coords of player or ship is simple too.
Float at
Height = GameClient.exe+2459F00
1 axis = GameClient.exe+2459F04
other axis = GameClient.exe+2459efc

--==Public Mine ==--
So should be able to map out the "public" mine and do up a simple script for it as the hot spots seem to always be in same place, just spawn point is random but that is no issue.
A score above 900 seems to get better "bonus" loot but dil ore is always 200 above 700.


--== Fleet Mine ==--
Fleet mine is another story, hot spots are random and also some can only be reached by jumping up and 1 can only be reached by using the waypoint and "floating" skill.
No bonus loot and again 200 dil ore if score over 700.


Canceling mine game when score is above 700 will save 15-20 seconds and you still get the 200 dil ore.

Re: Star Trek Online

Posted: Sun Jul 06, 2014 10:03 pm
by Administrator
lisa wrote:Player (not ship) direction is simple enough.
Float at (GameClient.exe+2468100)
approx -3.2 to 3.2
negative is east, 0 is north.
Probably -Pi to +Pi? Seems like the direction would be stored in radians then, as 2Pi radians makes a circle.

Re: Star Trek Online

Posted: Sun Jul 06, 2014 11:02 pm
by lisa
yeah that would be right, soulds like what we did in another game, hmm can't remember which though. I'll see if I have the code still then I won't need to work out all that radian stuff again, might have even been GW2.

Yeah GW2 had this, which is similar in the way it uses 2 Pi for a full circle, I think lol

Code: Select all

-- self.Angle: 0 (2*Pi) = West, 1,57 (Pi/2) = South, 3,14(Pi) = East, 4,71 (Pi+Pi/2) = North
function Player:facedirection(x, z, _angle, dist)
	self.curtime = getTime()
	coordsupdate()
	x = x or 0;
	z = z or 0;
	_angle = _angle or 0.1
	-- Check our angle to the waypoint.
	local angle = math.atan2(z - self.Z, x - self.X) + math.pi;
	local angleDif = angleDifference(angle, self.Angle);

	if( angleDif > _angle ) then
		-- Attempt to face it
		if angleDif > angleDifference(angle, self.Angle+ 0.01) then
			-- Rotate left
			logger:log('debug-moving','at Player:facedirection: move left angleDif: %.2f > _angle: %.2f', angleDif, _angle);
			self:move("left", dist)
		else
			-- Rotate right
			logger:log('debug-moving','at Player:facedirection: move right angleDif %.2f > _angle: %.2f', angleDif, _angle);
			self:move("right",dist)
		end
	else
		logger:log('debug-moving','at Player:facedirection: facing ok, angleDif: %.2f < _angle: %.2f', angleDif, _angle);
		self:stopTurning()		-- no turning after looking in right direction 
		return true
	end
end

Re: Star Trek Online

Posted: Mon Jul 07, 2014 12:19 am
by lisa
Doing keypresses in game for movement is proving difficult (attached).

If I attach to window.
The turn key (A) does nothing.
If I have chat open so any keypresses go to a text space then the "a" gets pressed once.
If I have chat open and use keyboardHold it does 1 single "a" in text spot but manually holding "a" key does repeated "a" in text spot.

So I decided that movement via keypresses won't work unless game has focus, which it will need to be able to do mining game anyway as the arrow keys don't work unless they have focus.
Anyway I started to play around with movement via memory.
I found 2 address that change from 0 to 1 when turning left, if I just change these values to 1 via CE nothing happens.
I found a value that changes from 0 to 1 when right click mouse is held, if I first change this to 1 and then change 1 of the other addresses to 1 it then does side stepping to the left, as you would expect with holding right click down. If I then change the right click address to 0 it turns left and stays turning left.

So it is possible to move around without having game as focus, something to keep in mind though is that when game isn't focus it tends to be very laggy with video card and FPS.

End decision:
i will just build the movement around the game needing focus, so will use keypresses without being attached and not worry about doing it via memory.

Re: Star Trek Online

Posted: Mon Jul 07, 2014 1:21 am
by rock5
Thanks. This reminded me that I did something similar with Aion. The problem I'm having with my new game (which is Tera) is keypresses don't seem to work for movement but it looks like they do for other things. So like you, I found a memory address that can be changed to make the character move. Now I can continue.

Re: Star Trek Online

Posted: Mon Jul 07, 2014 2:17 am
by lisa
rock5 wrote:Thanks. This reminded me that I did something similar with Aion.
Happy to help ;)

With much testing I can confirm that I can instantly change character direction via memory, the only issue is to make it stick I need to do a mouse hold and slight move in game, just clicking isn't enough, which is proving difficult to do =(

Re: Star Trek Online

Posted: Mon Jul 07, 2014 2:56 am
by rock5
Oh well. Reminds me of my RoM house class. To open chest in the house I have to hover the mouse over the chest and move it a bit before it will open the chest. That's before I found another way to do it.

Re: Star Trek Online

Posted: Mon Jul 07, 2014 3:25 am
by lisa
i can't help but feel the mouse clicks aren't being clicked into the game.
So with keyboard making game focus made the key presses work but even with game as focus mouse clicks aren't doing what I want or more specifically mouse hold. Need to hold left click for around 800ms.


*cheers*
I needed a little rest between first clicking window and then holding mouse click, which wouldn't have been an issue if I was testing using MM1 but I was testing with MM2 and the initial click was making game focus.

this worked, yay I have instant turning ;)

Code: Select all

mouse.setPosition(450,400) mouse.press(key.VK_LMOUSE) system.rest(1000) mouse.hold(key.VK_LMOUSE) system.rest(1000) mouse.release(key.VK_LMOUSE)
In the end it was reading the wiki that made me realise the mistake
This will send the input to whichever window has input focus at the time.
so game wasn't focus and so the mouse hold wasn't being done on the game, as such.

Re: Star Trek Online

Posted: Mon Jul 07, 2014 5:08 am
by rock5
So virtual mouse clicks didn't work I take it?

Re: Star Trek Online

Posted: Mon Jul 07, 2014 5:56 am
by lisa
well what I needed was for the gaame to believe I was using mouse to change view (holding down mouse click) I will test tomorrow with virtual now that I know it works being focus but like I said it needs focus to do the mining game anyway, so no real need to put alot of effort into making it work without being focus.