Πατουσιτσα Posted June 17, 2015 Posted June 17, 2015 public void doAttack(final L2Character target) { } i want in L2PcInstance to make a code when doAttack happens the problem is that im not sure how to get target attacker. Example if Player 1 attack Player 2 how to get Player 2 attacker? (which is player 1) target.getActingPlayer() ?
0 SweeTs Posted June 17, 2015 Posted June 17, 2015 (edited) Example if Player 1 attack Player 2 how to get Player 2 attacker? (which is player 1) Say what? Player 2 attacker? Explain it again heh :D I don't get the question. You mean, how the player 2 can get the target of player 1 who is the attacker? If that's the case, then.. Well, by default when someone attacks you, you get his target, but anyway. Something like this. final L2PcInstance targetPlayer = (L2PcInstance) getActingPlayer().getTarget(); if (targetPlayer != null) targetPlayer.setTarget(getActingPlayer()); Edited June 17, 2015 by SweeTs
0 Tryskell Posted June 17, 2015 Posted June 17, 2015 (edited) The instance itself, "this". You don't need this keyword until you make instanceof checks. So, getActingPlayer() or simply if you're on L2PcInstance, the method you want to use will refer directly to that instance. Example : get attacker karma => getKarma(), and target.getKarma() for the target. Also, getActingPlayer() will return the L2PcInstance attached (case of summon it will return the summoner) or null if not found. So assure to != null. This method can be used on L2Object level. Edited June 17, 2015 by Tryskell
0 Πατουσιτσα Posted June 17, 2015 Author Posted June 17, 2015 I wanted make make something like target.getPet().doAttack(this); <--- this refer to actor who attacked target but doAttack doesnt accept AI
0 Tryskell Posted June 18, 2015 Posted June 18, 2015 (edited) You have to use intention system, AI related. doAttack mustn't be used directly. Edited June 18, 2015 by Tryskell
0 Πατουσιτσα Posted June 18, 2015 Author Posted June 18, 2015 You have to use intention system, AI related. doAttack mustn't be used directly. and how could i write this? like the target's pet attack the attacker?
0 SweeTs Posted June 18, 2015 Posted June 18, 2015 (edited) Something like if (target.getPet() != null) target.getPet().getAI().setIntention(CtrlIntention.ATTACK, _actor); Edited June 18, 2015 by SweeTs
0 Πατουσιτσα Posted June 18, 2015 Author Posted June 18, 2015 Something like if (target.getPet() != null) target.getPet().getAI().setIntention(CtrlIntention.ATTACK, _actor); Thanks it doesnt give error when i attack but the wolf (pet) doesnt attack the attacker ... you sure that _actor refer to the attacker object? Cause maybe actor refer to the owner so wolf cant attack owner..
0 SweeTs Posted June 18, 2015 Posted June 18, 2015 you sure that _actor refer to the attacker object? Depends where you put that code.
0 Πατουσιτσα Posted June 18, 2015 Author Posted June 18, 2015 Depends where you put that code. L2j ct2.5 (freya)
0 -BloafDumLoaf Posted June 19, 2015 Posted June 19, 2015 L2j ct2.5 (freya) maybe you puted it at EnterWorld.java :X he asking on which java added this method?
0 Πατουσιτσα Posted June 19, 2015 Author Posted June 19, 2015 maybe you puted it at EnterWorld.java :X he asking on which java added this method? Seriously i said already is on L2PcInstance doAttack
Question
Πατουσιτσα
public void doAttack(final L2Character target)
{
}
i want in L2PcInstance to make a code when doAttack happens
the problem is that im not sure how to get target attacker.
Example if Player 1 attack Player 2 how to get Player 2 attacker? (which is player 1)
target.getActingPlayer() ?
12 answers to this question
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now