Revolver Posted March 28, 2011 Posted March 28, 2011 Hello Devs of Maxcheaters, I've came to this topic after a long-term period of trying to solve this problem. I want when a Clan takes a Castle during siege,to be announced to all players. Using the method that i've already used to announce when Siege starts,stops & when clan registers for Attack / Defend,i've tryed to use the same code. This is the code: Announcements.getInstance().announceToAll(""+player.getClan().getName()+" has taken "+getCastle().getName()+" Castle."); This is the error: But when using the same code for the other lines,it works perfect. Any ideas? Thanks in advance, - Revo
0 Tryskell Posted March 29, 2011 Posted March 29, 2011 First you can use this code, it's just cleaner. Announcements.getInstance().announceToAll(player.getClan().getName()+" has taken "+getCastle().getName()+" Castle."); Second, your code can work only if the castle was to another clan. It can't work if the castle was to NPCs. if (getCastle().getOwnerId() > 0) means "if the castle got an owner". You surely made your test on a siege where NPCs were defenders. Your code work, but only on sieges where there is a clan owner, or if someone retake the castle during the siege period (and if only the clan was stored, i'm not even sure it works like that). if (getIsInProgress()) // Siege still in progress { // Announce Announcements.getInstance().announceToAll(player.getClan().getName()+" has taken "+getCastle().getName()+" Castle."); if (getCastle().getOwnerId() > 0) _siegeGuardManager.removeMercs(); // Remove all merc entry from db // If defender doesn't exist (Pc vs Npc) and only 1 attacker
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 Tryskell, Thanks for your reply & for your cleaner code. My point is that for the following parts of the siege,the code that i am using works successfully. Siege Start Siege End Register Attacker / Defender But when i am trying to make it work for Castle Control,it doesn't accept the code. player.getClan().getName() Seems to be invalid but i can't understand the reason. player The exact code works for all the other lines. That's what confuses me the most! Thanks in advance, - Revo
0 Matim Posted March 29, 2011 Posted March 29, 2011 Make sure there is object of L2PcInstance called player.
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 I've tryed to place an object called player, but then the whole code is wrong. Could you please help me define it?
0 Matim Posted March 29, 2011 Posted March 29, 2011 Show me a little bit more of this class, whole class (Even if its big, and i suppose it is) put it at pastebin and upload link here. You can't "just create" object of L2PcInstance, because it will return null everywhere (means nothing + NPE error in addition xD)
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 It's L2Siege.java ,Change Control During Siege Chapter. Do you still want a pastebin?
0 Intrepid Posted March 29, 2011 Posted March 29, 2011 It's L2Siege.java ,Change Control During Siege Chapter. Do you still want a pastebin? place it inside the bypass of the npc not inside the l2siege for announcing the registration itself
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 What npc should i change in order to trigger the announce when Castle Control changes? :O
0 Intrepid Posted March 29, 2011 Posted March 29, 2011 ohh w8 i see its not like that sorry for that... what you should try is to find the methods addDefender and addAttacker and inside a for loop add the announce there what i mean is: for (L2PcInstance player : L2World.getInstance().getAllPlayers().values()) announce....
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 I have already fixed the addDefender & addAttacker announce Intrepid. My problem is that when a Clan takes a Castle,i can't figure out a way to trigger an announcement. Thanks for your replies. - Rev
0 Intrepid Posted March 29, 2011 Posted March 29, 2011 I have already fixed the addDefender & addAttacker announce Intrepid. My problem is that when a Clan takes a Castle,i can't figure out a way to trigger an announcement. Thanks for your replies. - Rev ahh sorry again its late here and im slow :D than put the same loop into the endSiege method
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 I can make the following: Trigger an announcement when siege ends,which Clan controls the Castle. But this is not what i want. I want to: Trigger an announcement,as soon as the Clan gets the control of the Castle.
0 Intrepid Posted March 29, 2011 Posted March 29, 2011 I can make the following: Trigger an announcement when siege ends,which Clan controls the Castle. But this is not what i want. I want to: Trigger an announcement,as soon as the Clan gets the control of the Castle. ahh so when someone take over the artifact not when the siege actually ends right?
0 Revolver Posted March 29, 2011 Author Posted March 29, 2011 Exactly....And this code isn't working. It doesn't recognise the player part. Any way to fix this error? This is the error:
0 Intrepid Posted March 29, 2011 Posted March 29, 2011 Exactly....And this code isn't working. It doesn't recognise the player part. Any way to fix this error? This is the error: easy fix to put it in a loop like a said :)
Question
Revolver
Hello Devs of Maxcheaters,
I've came to this topic after a long-term period of trying to solve this problem.
I want when a Clan takes a Castle during siege,to be announced to all players.
Using the method that i've already used to announce when Siege starts,stops & when clan registers for Attack / Defend,i've tryed to use the same code.
This is the code:
Announcements.getInstance().announceToAll(""+player.getClan().getName()+" has taken "+getCastle().getName()+" Castle.");This is the error:
But when using the same code for the other lines,it works perfect.
Any ideas?
Thanks in advance,
- Revo
26 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