Jump to content
  • 0

Get current player & actions


Question

Posted

Hi, all!
I'm interesting in getting some answers to questions:

 

 

  • 1. How to properly get current player instance (variable).
  • 2. How to get current player actions/events (ex. mouse clicks, left+right mouse click)
  • 3. Is it possible to make character running (Run + Point view), when (both / LEFT + RIGHT) mouse is clicked?

    Lineage 2 Interlude / Java server


Thank you!

11 answers to this question

Recommended Posts

  • 1
Posted

Add listeners to all incoming packets like MoveBackToLocation, RequestActionUse, RequestMagicSkillUse, RequestBypassToServer and etc. Or one global network handler listener. And after you can processing all character's actions for any your wishes.

  • Like 1
  • 1
Posted (edited)
55 minutes ago, BrabusLV said:

 

I'm looking for user.ini, but i have no idea, how to get both pressed

Maybe you know where to send me closer to my answer? :D 

 

And yes, about Instance... Maybe it is class but the fact, if i want to get current player nick, what i should write?


LeftMouse=PlayerPawnMoveTo 
RightMouse=CameraRotationModeOn | CameraRotationModeOff | FixedDefaultCamera OnRelease MaxPressedTime=200.0 
;RightMouse=CameraRotationModeOn | CameraRotationModeOff 
;MiddleMouse=CameraRotationModeOn | CameraRotationModeOff 
;MiddleMouse=FixedDefaultCamera
;End=FixedDefaultCamera
MiddleMouse=

I'm not into client things . You could create a topic in client section in order to get all the things you need from people who are working on client.

 

About the nick, depends where you want to get the name. If for example you want just to send a message in player when he enter in the world, you have to code in EnterWorld.java . There you can see from other lines that already exists a variable that control the player . for example in my sources this variable is called 'player'. So the only thing you have to code is -> player.sendMessage("hi");.

'player' could be named as activeChar or 'client'. 

Then, since you got the 'player' instance, you can get the name from the methods of this class. Usually the method is getName() but idk what you are using. so -> player.getName(); should return the name of the player.

Edited by Creamy G Colin
  • Like 1
  • 1
Posted
6 hours ago, BrabusLV said:

Ok thank you, last question, does in lineage 2 interlude works command MoveForward?

RightMouse=MoveForward

Can i do something like this?

Not sure what is this but, considering to that name i think somewhere should be located all the opcodes of the packets that have to send in server side. so MoveForward have an opcode. (Client side is not l2.ini. do a deep search :P)

 

And again, a client dev can help you more than us.

  • 0
Posted

1) not sure what you need. By instance you mean the class?

2) you can only get the location where the player wants to go. not the mouse click action itself.

3) maybe , its clearly client thing

 

You should define what you want to do . Maybe there are other ways to do them

  • 0
Posted (edited)

Ok thank you guys ;)

I wanted to create choice for player: to run in client while left+right mouse pressed (like in World of Warcraft)

Edited by BrabusLV
selected properly word :)
  • 0
Posted (edited)
5 minutes ago, BrabusLV said:

Ok thank you guys ;)

I wanted to create choice for player: to run in client while left+right mouse clicked (like in World of Warcraft)

Its definitely client thing. you should handle both mouse actions . When the keys pressed together, you should send the action to server and if one of them will release then stop the action .

 

Edit: You can take a look how the 'arrows' are working 

Edited by Creamy G Colin
  • 0
Posted (edited)
10 minutes ago, Creamy G Colin said:

Its definitely client thing. you should handle both mouse actions . When the keys pressed together, you should send the action to server and if one of them will release then stop the action 

 

I'm looking for user.ini, but i have no idea, how to get both pressed

Maybe you know where to send me closer to my answer? :D 

 

And yes, about Instance... Maybe it is class but the fact, if i want to get current player nick, what i should write?

LeftMouse=PlayerPawnMoveTo 
RightMouse=CameraRotationModeOn | CameraRotationModeOff | FixedDefaultCamera OnRelease MaxPressedTime=200.0 
;RightMouse=CameraRotationModeOn | CameraRotationModeOff 
;MiddleMouse=CameraRotationModeOn | CameraRotationModeOff 
;MiddleMouse=FixedDefaultCamera
;End=FixedDefaultCamera
MiddleMouse=
Edited by BrabusLV
  • 0
Posted

You not need get character nick cause incoming packet have Client instance and for client instance attached unique Player instance. Just get player nick from server side like:

final String nickname = getClient().getActingPlayer().getName();

All what you need - it's catch necessary action from client. server side already have all properties about owner character and target object.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...