Keucereus:
-Gracia is in a very precarious situation.
-After my father, King Paris, passed away, Gracia was engulfed in civil war. It finally ended, but the peace that followed was hardly complete. It was...a breathing space to llow the two sides to regain their strength.
-Before that happened, however, the Priests of Darkness appeared. We thought they were only legends from the ancient books. Even the worshippers of Shilen didn't think they really existed. If my father did know about them, then he obviously didn't consider them much of a threat. But the time we realized they were, it was too late...
-Seeds spawned from the world of Death sprouted throughout Gracia, spawning dangerous monsters. Except for those I saved, I doubt anyone survived the assault. Apart from those blasted pagans, of course.
-
+Keucereus:
+Gracia is in a very precarious situation.
+After my father, King Paris, passed away, Gracia was engulfed in civil war. It finally ended, but the peace that followed was hardly complete. It was...a breathing space to allow the two sides to regain their strength.
+Before that happened, however, the Priests of Darkness appeared. We thought they were only legends from the ancient books. Even the worshippers of Shilen didn't think they really existed. If my father did know about them, then he obviously didn't consider them much of a threat. But the time we realized they were, it was too late...
+Seeds spawned from the world of Death sprouted throughout Gracia, spawning dangerous monsters. Except for those I saved, I doubt anyone survived the assault. Apart from those blasted pagans, of course.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32548-2.htm b/L2J_Mobius_Test/dist/game/data/html/default/32548-2.htm
index fda08c1539..00232c8fe7 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32548-2.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32548-2.htm
@@ -1,6 +1,6 @@
-Keucereus:
-There are many things we do not understand about the Seed. What we do know is that its interior is vastly different from the continent on which we live.
-We also know that its interior changes depending on who its lord is. In discussing the Seeds of Infinity and Destruction, think of the Seed of Infinity as a land of death controlled by undead lord and the Seed of Destruction as the land of Dragonkin controlled by the lord of Dragonkin. We are still attempting to learn more about the other Seeds, but we expect the same conditions apply.
-Since they appeared, even the topography of Gracia has been altered. The land has become poisonous, making it nearly impossible to move except via airship or Aurabird. We do not know if we can ever restore this land to its former state, but our immediate goal must be to defeat the lords of the Seeds. Once they have been vanquished, we can turn our attention to reclaiming our land.
-
+Keucereus:
+There are many things we do not understand about the Seed. What we do know is that its interior is vastly different from the continent on which we live.
+We also know that its interior changes depending on who its lord is. In discussing the Seeds of Infinity and Destruction, think of the Seed of Infinity as a land of death controlled by undead lord and the Seed of Destruction as the land of Dragonkin controlled by the lord of Dragonkin. We are still attempting to learn more about the other Seeds, but we expect the same conditions apply.
+Since they appeared, even the topography of Gracia has been altered. The land has become poisonous, making it nearly impossible to move except via airship or Aura Bird. We do not know if we can ever restore this land to its former state, but our immediate goal must be to defeat the lords of the Seeds. Once they have been vanquished, we can turn our attention to reclaiming our land.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32548-3.htm b/L2J_Mobius_Test/dist/game/data/html/default/32548-3.htm
index 7ea1016c2a..181088fddd 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32548-3.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32548-3.htm
@@ -1,4 +1,4 @@
-Keucereus:
-My military commander, General Dilios, will know the occupation status of the Seed. Ask him for the details.
-
+Keucereus:
+My military commander, General Dilios, will know the occupation status of the Seed. Ask him for the details.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32548.htm b/L2J_Mobius_Test/dist/game/data/html/default/32548.htm
index b8de1c73c2..55d6b32145 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32548.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32548.htm
@@ -1,7 +1,7 @@
-Keucereus:
-Are you an adventurer from Aden? Many of your comrades have already traveled here. I am truly grateful. Despite our lands' ancient hostility towards each other, it warms my heart to see these new bonds of friendship form between us. With your help, I hope to restore Gracia to its former glory...
-
-
-
-
+Keucereus:
+Are you an adventurer from Aden? Many of your comrades have already traveled here. I am truly grateful. Despite our lands' ancient hostility towards each other, it warms my heart to see these new bonds of friendship form between us. With your help, I hope to restore Gracia to its former glory...
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32549-1.htm b/L2J_Mobius_Test/dist/game/data/html/default/32549-1.htm
index b8e3f2f549..098bbd0939 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32549-1.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32549-1.htm
@@ -1,6 +1,8 @@
-Dilios
-The Keucereus clan is currently battling the rulers of the Seeds. It will help you to know the current status of each Seed.
-Which one do you want to know first?
-
-
+General Dilios:
+The Keucereus clan is currently advancing on the Seeds. It may be wise for you to familiarize yourself with each Seed before making a move.
+Which would you like to hear about first?
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32549-2.htm b/L2J_Mobius_Test/dist/game/data/html/default/32549-2.htm
index 145b23cb76..3d6a946ddb 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32549-2.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32549-2.htm
@@ -1,7 +1,7 @@
-Dilios:
-Currently, the Mounted Troop controls the Seed of Destruction. You must go there and defeat its captain, Tiat.
-A command channel consisting of 5 parties should be established in order to attack the Seed. Then entry is possible through Sergeant Allenos, who has been dispatched there.
-There is a time limit for attacking the Seed of Destruction, however. If you cannot carry out an assault within 2 hours, you will be expelled. The interior of the Seed is blocked by various obstacles, among them a powerful barrier protected by 3 devices.
-Once you have broken through all the barriers and gates, you will reach the Fortress of Destruction. If you can then defeat Tiat and his minions, victory will be ours!
-
+General Dilios:
+Currently, the Dragonkin controls the Seed of Destruction. You must go there and defeat its captain, Tiat.
+Attacking the Seed with any less than a command channel of 5 parties would be suicide. Meet up with Sergeant Allenos and you should be able to gain access into the Seed.
+Our scouts tell us that the Seed of Destruction has a defense mechanism. Once intruders are noticed it begins charging. If you cannot complete this assault within two hours the defense system will expel you from the Seed.
+The interior of the Seed is sealed by a powerful barrier protected by 3 devices. Once you have broken through the defenses, you will reach the Fortress of Destruction. If you can defeat Tiat and his minions we will finally have a foothold in this wretched place!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32549-3.htm b/L2J_Mobius_Test/dist/game/data/html/default/32549-3.htm
index c1b022ab69..f7e1437f4c 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32549-3.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32549-3.htm
@@ -1,7 +1,6 @@
-Dilos:
-Our enemy currently controls the Seed of Infinity. Keucereus' clan cannot enter unless we first attack. We can assault either the Hall of Suffering or the Hall of Erosion.
-We must destroy the tumors of death and kill the cursed twin knights, Yehan Klodekus and Yehan Klanikus, in the Hall of Suffering. Be advised that they become stronger the further apart from each other they are.
-Destroy the tumors of death in the Hall of Erosion and kill Cohemenes and Argekunte, who share one soul through an infernal contract. They are masters of ancient Gracian magic, but there is a limit to the spells that they can cast at the same time. Keep that in mind when you carry out an assault.
-The road that leads to Ekimus will stay open as long as you defeat his followers in the two halls and his influence weakens...
-
+General Dilios:
+The Seed of Infinity is more dangerous than ever before. Previous plans won't work -- we are thinking of entering with a command channel comprised of 5 parties.
+Once we enter, we'll need to go into the Hall of Suffering, guarded by the cursed Yehan twins. Once you defeat these knights, you'll enter the Heart of Infinity, where Ekimus awaits.
+Once we take down Ekimus, Gracia will regain a measure of peace, at least for a while.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32549-4.htm b/L2J_Mobius_Test/dist/game/data/html/default/32549-4.htm
new file mode 100644
index 0000000000..006f1b68d6
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32549-4.htm
@@ -0,0 +1,4 @@
+General Dilios:
+Our forces are advancing on the Seed of Annihilation. Speak with Rumiese and see where he needs your assistance. I imagine he will want you to face Istina--if so--I wish you luck.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32549-5.htm b/L2J_Mobius_Test/dist/game/data/html/default/32549-5.htm
new file mode 100644
index 0000000000..3ab3b43548
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32549-5.htm
@@ -0,0 +1,4 @@
+General Dilios:
+The Seed of Hellfire is pressing forward. We must make haste to halt their advance.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32549.htm b/L2J_Mobius_Test/dist/game/data/html/default/32549.htm
index 2cfa4642e2..52cf963b7c 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32549.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32549.htm
@@ -1,5 +1,5 @@
-Dilios:
-Even in the darkest despair, the light of hope shines somewhere. In fact, my predecessor Phelios used to say that it is always darkest just before the dawn.
-
-
+General Dilios:
+In these dark times we must remember that no darkness can ever drown out the light. My predecessor Ferios used to say that even in darkness our eyes find the light. Soon enough we will see a ray of hope.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32550.htm b/L2J_Mobius_Test/dist/game/data/html/default/32550.htm
index 25411450f3..4d78d8713d 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32550.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32550.htm
@@ -1,6 +1,6 @@
-Special Product Broker Kirklan:
-Yes, the scenery here is always fantastic.
-I collect special items that are only found within the different seeds. If you have a special item, bring it to me and I'll exchange it for something suitable.
-
-
+Special Product Broker Kirklan:
+Yes, the scenery here is always fantastic.
+I collect special items that are only found within the different seeds. If you have a special item, bring it to me and I'll exchange it for something suitable.
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32551.htm b/L2J_Mobius_Test/dist/game/data/html/default/32551.htm
index 21c8a533bd..46ea619e5a 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32551.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32551.htm
@@ -1,5 +1,5 @@
-Soldier Noiless:
-Nothing unusual reported during this watch!
-No enemy action to be seen.
-
+Soldier Noiless:
+Nothing unusual reported during this watch!
+No enemy action to be seen.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32552.htm b/L2J_Mobius_Test/dist/game/data/html/default/32552.htm
index 2f9008d085..78af02cee0 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32552.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32552.htm
@@ -1,5 +1,5 @@
-Soldier Tomaris:
-Hmm. Well, it doesn't seem like there's any problem. Are you an adventuer?
-I heard a number of adventurers have come to Gracia from Aden to help Admiral Keucereus. I guess you're one of them, huh? Thanks for giving us a breather.
-
+Soldier Tomaris:
+Hmm. Well, it doesn't seem like there's any problem. Are you an adventurer?
+I heard a number of adventurers have come to Gracia from Aden to help Admiral Keucereus. I guess you're one of them, huh? Thanks for giving us a breather.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32553.htm b/L2J_Mobius_Test/dist/game/data/html/default/32553.htm
index 22a22f1981..34c0525d33 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32553.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32553.htm
@@ -1,5 +1,5 @@
-Soldier Jisans:
-No problem going this way!
-Although if the orb was working, we wouldn't have to just stand around here. Still, it's better than those days of constant warfare -- we weren't sure we would survive to see the next dawn then!
-
+Soldier Jisans:
+No problem going this way!
+Although if the orb was working, we wouldn't have to just stand around here. Still, it's better than those days of constant warfare -- we weren't sure we would survive to see the next dawn then!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32554.htm b/L2J_Mobius_Test/dist/game/data/html/default/32554.htm
index 2fc4701c8d..283d727c74 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32554.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32554.htm
@@ -1,6 +1,6 @@
-Soldier Moira:
-Hmm. What business do you have here? If you're asking about the current status, I haven't seen any sign of the enemy around here.
-I just don't know how much longer we have to stand guard. I signed on to fight the enemy, not to play sentry while those adventurers from Aden get all the glory...
-Bah! Forget what I said. I don't want to pick a fight with you. We're all thankful for your help. Because of your arrival, some of our soldiers can finally get some much-needed R-and-R.
-
+Soldier Moira:
+Hmm. What business do you have here? If you're asking about the current status, I haven't seen any sign of the enemy around here.
+I just don't know how much longer we have to stand guard. I signed on to fight the enemy, not to play sentry while those adventurers from Aden get all the glory...
+Bah! Forget what I said. I don't want to pick a fight with you. We're all thankful for your help. Because of your arrival, some of our soldiers can finally get some much-needed R-and-R.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32555.htm b/L2J_Mobius_Test/dist/game/data/html/default/32555.htm
index d562745aeb..6c8359ac73 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32555.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32555.htm
@@ -1,6 +1,6 @@
-Soldier Tenis:
-Huh! What, are you laughing at me? I can barely stand, and you think it's funny?
-But this isn't the end. I'm just conserving my strength so I'll be ready to fight...
-Trust me, when the time comes I'll fight for my lord and for the future of Gracia. I don't care if the enemy is the power of darkness, that fool Karneia or greedy adventurers from far-off lands!
-
+Soldier Tenis:
+Huh! What, are you laughing at me? I can barely stand, and you think it's funny?
+But this isn't the end. I'm just conserving my strength so I'll be ready to fight...
+Trust me, when the time comes I'll fight for my lord and for the future of Gracia. I don't care if the enemy is the power of darkness, that fool Karneia or greedy adventurers from far-off lands!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32556.htm b/L2J_Mobius_Test/dist/game/data/html/default/32556.htm
index 2a29bdb8b3..92a15b180f 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32556.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32556.htm
@@ -1,5 +1,5 @@
-Soldier El:
-Right now... I don't even have the energy to talk.
-Unless it's urgent...please come back later.
-
+Soldier El:
+Right now... I don't even have the energy to talk.
+Unless it's urgent...please come back later.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32558.htm b/L2J_Mobius_Test/dist/game/data/html/default/32558.htm
index 2ff022b86d..519e2dc756 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32558.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32558.htm
@@ -1,5 +1,5 @@
-Barrier Orb:
-Within the clear orb, you see the images of a fortress and many intricate figures.
-You also see figures you suspect are from the Age of the Giants.
-
+Barrier Orb:
+Within the clear orb, you see the image of a fortress and many intricate figures.
+You also see figures you suspect are from the Age of the Giants.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32559.htm b/L2J_Mobius_Test/dist/game/data/html/default/32559.htm
index 53ab6c85ba..671dcb44de 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32559.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32559.htm
@@ -1,4 +1,4 @@
-War Mage Artius:
-The Barrier Orb protects this fortress. Without it, we would have been overwhelmed by the enemy and the harsh environment long ago.
-
+War Mage Artius:
+The Barrier Orb protects this fortress. Without it, we would have been overwhelmed by the enemy and the harsh environment long ago.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32560.htm b/L2J_Mobius_Test/dist/game/data/html/default/32560.htm
index 9964a0c08a..597c4eade2 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32560.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32560.htm
@@ -1,5 +1,5 @@
-Soldier Orbyu:
-This Airship wharf is currently not in use. We do have some extra capacity right now.
-Perhaps it will again become an important stop...
-
+Soldier Orbyu:
+This Airship wharf is currently not in use. We do have some extra capacity right now.
+Perhaps it will again become an important stop...
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32561.htm b/L2J_Mobius_Test/dist/game/data/html/default/32561.htm
index 60776dab9f..44bd5502eb 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32561.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32561.htm
@@ -1,5 +1,5 @@
-Soldier Kunota:
-Behind us is a wharf for the Airships in Gracia. If you want to depart for another location in the continent, you've come to the right place.
-Of course, if you leave the Barrier that surrounds the fortress, be ready for some tough fighting!
-
+Soldier Kunota:
+Behind us is a wharf for the Airships in Gracia. If you want to depart for another location in the continent, you've come to the right place.
+Of course, if you leave the Barrier that surrounds the fortress, be ready for some tough fighting!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32562.htm b/L2J_Mobius_Test/dist/game/data/html/default/32562.htm
index b45a0a7ad2..b047d040b2 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32562.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32562.htm
@@ -1,5 +1,5 @@
-Soldier Siest:
-You can use an Airship to take you to different locations in Gracia. Board one in the wharf behind us by using the Airship Controller.
-If there is no Airship currently docked there, you'll just have to wait. Unless, of course, you're one of those Aden adventurers who can transform into a flying creature...
-
+Soldier Siest:
+You can use an Airship to take you to different locations in Gracia. Board one in the wharf behind us by using the Airship Controller.
+If there is no Airship currently docked there, you'll just have to wait. Unless, of course, you're one of those Aden adventurers who can transform into a flying creature...
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32563.htm b/L2J_Mobius_Test/dist/game/data/html/default/32563.htm
index 977441858e..1c2972fb69 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32563.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32563.htm
@@ -1,6 +1,6 @@
-Soldier Plenos:
-Welcome to Keucereus Alliance Base. We need all the soldiers we can get.
-Your missions here will be mainly in the sky. My advice is to obtain an Airship, but I see some adventurers from Aden also fight using their ability of transformation.
-Go ask Engineer Lekon about which method is best for you. If you want to know about our enemy, talk to Admiral Keucereus or General Dilios.
-
+Soldier Plenos:
+Welcome to Keucereus Alliance Base. We need all the soldiers we can get.
+Your missions here will be mainly in the sky. My advice is to obtain an Airship, but I see some adventurers from Aden also fight using their ability of transformation.
+Go ask Engineer Lekon about which method is best for you. If you want to know about our enemy, talk to Admiral Keucereus or General Dilios.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32611.htm b/L2J_Mobius_Test/dist/game/data/html/default/32611.htm
index 77bcb967c9..f03dc78760 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32611.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32611.htm
@@ -1,8 +1,8 @@
-Officer Tolonis:
-I am Officer Tolonis, and I'm in charge of delivering supplies like Energy Stones to adventurers.
-I used to be a platoon leader, but after I was injured they gave me this posting. I'm proud of what I do here, but I miss the life of battle. Oh well, I suppose somebody has to manage supplies.
-If you're interested in acquiring the collection skill, perhaps I can help.
-
-
-
+Officer Tolonis:
+I am Officer Tolonis, and it's my job to deliver supplies such as Energy Stones to adventurers.
+I used to be a platoon leader, but I was injured in action, so they gave me this posting. It's no life for a soldier, I tell you what. Oh, well, I suppose someone has to do it.
+Oh, and if you're interested in acquiring the collection skill, perhaps I can help.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32618.htm b/L2J_Mobius_Test/dist/game/data/html/default/32618.htm
index 26135f8ba6..eeb33c8901 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32618.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32618.htm
@@ -1,5 +1,5 @@
-Trader Suimi:
-All the supplies we carry here are from Aden.
-Hopefully once things settle down we'll be able to offer a wider selection, but for now we're down to the bare essentials. Still, every little bit helps the war effort, eh?
-
+Trader Thyimi:
+All the supplies we carry here are from Aden.
+Hopefully once things settle down we'll be able to offer a wider selection, but for now we're down to the bare essentials. Still, every little bit helps the war effort, eh?
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32622.htm b/L2J_Mobius_Test/dist/game/data/html/default/32622.htm
index 88f5f1884f..040a74d807 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32622.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32622.htm
@@ -1,5 +1,5 @@
-Soldier Annatol:
-It took a lot of blood, sweat and tears to create this device. But without it, it would be difficult -- if not downright impossible -- for us to secure safe drinking water.
-Now it's my duty to maintain the purification device.
-
+Soldier Anatole:
+It took a lot of blood, sweat and tears to create this device. But without it, it would be difficult -- if not downright impossible -- for us to secure safe drinking water.
+Now it's my duty to maintain the purification device.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32624.htm b/L2J_Mobius_Test/dist/game/data/html/default/32624.htm
index 5b9cb378c2..f406a0b5bc 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32624.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32624.htm
@@ -1,6 +1,6 @@
-Soldier Anbram:
-You want to know about the purification device?
-Well, it's no exaggeration to say that it's vital to the survival of this base. It not only purifies polluted air and water, but also supplies energy to the Barrier Orb. Naturally, it's a primary target for enemy attacks.
-But as long as I have anything to say about it, they won't break through without a serious fight!
-
+Soldier Anbram:
+You want to know about the purification device?
+Well, it's no exaggeration to say that it's vital to the survival of this base. It not only purifies polluted air and water, but also supplies energy to the Barrier Orb. Naturally, it's a primary target for enemy attacks.
+But as long as I have anything to say about it, they won't break through without a serious fight!
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32626.htm b/L2J_Mobius_Test/dist/game/data/html/default/32626.htm
index 3d6d68aa2f..94b287d2d1 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32626.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32626.htm
@@ -1,5 +1,5 @@
-Royal Guard:
-I won't forgive anyone who insults or injures Lord Keucereus!
-Before this catastrophe befell our land he wouldn't have stooped to dealing with some wandering adventurer...
-
+Royal Guard:
+I won't forgive anyone who insults or injures Lord Keucereus!
+Before this catastrophe befell our land he wouldn't have stooped to dealing with some wandering adventurer...
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/default/32733.htm b/L2J_Mobius_Test/dist/game/data/html/default/32733.htm
index 984b9ae04d..6d23787993 100644
--- a/L2J_Mobius_Test/dist/game/data/html/default/32733.htm
+++ b/L2J_Mobius_Test/dist/game/data/html/default/32733.htm
@@ -1,7 +1,5 @@
-
-Commander Kbaldir:
-It's been a long time since part of our fleet crashlanded into the Seed of Annihilation.
-I'm told the Seed abounds with a plethora of strange organisms that might be worthy of study if they weren't so dangerous.
-Unfortunately that's all a null point anyway because right now, our priority is to get able bodies out there to help bring back lost soldiers and repair the fleet. I came back to Kucereus' Outpost alone to recruit those that seem strong enough to make it out in there.
-
+Commander Kbaldir:
+It's been a long time since part of our fleet crash landed into the Seed of Annihilation. I'm told the Seed abounds with a plethora of strange organisms that might be worthy of study if they weren't so dangerous.
+Unfortunately that's all a null point anyway because right now, our priority is to get able bodies out there to help bring back lost soldiers and repair the fleet. I came back to Kucereus' Outpost alone to recruit those that seem strong enough to make it out in there.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30006.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30006.htm
deleted file mode 100644
index 0444592738..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30006.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30059.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30059.htm
deleted file mode 100644
index 173dba2a3d..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30059.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30080.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30080.htm
deleted file mode 100644
index 19cc62fe1d..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30080.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30134.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30134.htm
deleted file mode 100644
index 5b398c3445..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30134.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30146.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30146.htm
deleted file mode 100644
index ca5c583b6e..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30146.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30177.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30177.htm
deleted file mode 100644
index 6306f67f09..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30177.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30233.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30233.htm
deleted file mode 100644
index 368712461b..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30233.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30256.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30256.htm
deleted file mode 100644
index 64e4d96cec..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30256.htm
+++ /dev/null
@@ -1,21 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30320.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30320.htm
deleted file mode 100644
index ed0d8b168c..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30320.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30540.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30540.htm
deleted file mode 100644
index 945262e8e2..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30540.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30576.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30576.htm
deleted file mode 100644
index db15d3cc6b..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30576.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30727.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30727.htm
deleted file mode 100644
index 661a7bc650..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30727.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-&$556;
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30836.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30836.htm
deleted file mode 100644
index 0303234b01..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30836.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-&$556;
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30848.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30848.htm
deleted file mode 100644
index e414f3bd97..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30848.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30878.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30878.htm
deleted file mode 100644
index 469317ebbd..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30878.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-&$556;
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30899.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30899.htm
deleted file mode 100644
index 92ee029f73..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/30899.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31275.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31275.htm
deleted file mode 100644
index a0be945967..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31275.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31320.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31320.htm
deleted file mode 100644
index 1f2fb9f5d6..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31320.htm
+++ /dev/null
@@ -1,17 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31698.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31698.htm
deleted file mode 100644
index 6efbba9022..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31698.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-&$556;
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31964.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31964.htm
deleted file mode 100644
index a501ba33f9..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/31964.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/32163.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/32163.htm
deleted file mode 100644
index 4be0819e4f..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/32163.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/32189.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/free/32189.htm
deleted file mode 100644
index 9c93130734..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/free/32189.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-&$556;
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30006.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30006.htm
deleted file mode 100644
index fae4b69390..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30006.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30059.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30059.htm
deleted file mode 100644
index 35b7901bdb..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30059.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30080.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30080.htm
deleted file mode 100644
index bdbef7b824..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30080.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30134.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30134.htm
deleted file mode 100644
index 9e0de49536..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30134.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30146.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30146.htm
deleted file mode 100644
index 4e085e0705..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30146.htm
+++ /dev/null
@@ -1,11 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30177.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30177.htm
deleted file mode 100644
index 7d7cc8055f..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30177.htm
+++ /dev/null
@@ -1,19 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30233.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30233.htm
deleted file mode 100644
index b1298b673b..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30233.htm
+++ /dev/null
@@ -1,10 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30256.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30256.htm
deleted file mode 100644
index e0c63d2f9e..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30256.htm
+++ /dev/null
@@ -1,21 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30320.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30320.htm
deleted file mode 100644
index 28c8156d54..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30320.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30540.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30540.htm
deleted file mode 100644
index 6d790dc1d3..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30540.htm
+++ /dev/null
@@ -1,15 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30576.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30576.htm
deleted file mode 100644
index 62e771128a..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30576.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30727.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30727.htm
deleted file mode 100644
index 2cc68b1ac6..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30727.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-&$556;
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30836.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30836.htm
deleted file mode 100644
index 25f04a25de..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30836.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-&$556;
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30848.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30848.htm
deleted file mode 100644
index 7f2cd1bd12..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30848.htm
+++ /dev/null
@@ -1,24 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30878.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30878.htm
deleted file mode 100644
index bac9238287..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30878.htm
+++ /dev/null
@@ -1,4 +0,0 @@
-&$556;
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30899.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30899.htm
deleted file mode 100644
index 5694997066..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/30899.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31275.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31275.htm
deleted file mode 100644
index 5a757976da..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31275.htm
+++ /dev/null
@@ -1,16 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31320.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31320.htm
deleted file mode 100644
index 485bc465da..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31320.htm
+++ /dev/null
@@ -1,17 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31698.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31698.htm
deleted file mode 100644
index 3decf3c61d..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31698.htm
+++ /dev/null
@@ -1,3 +0,0 @@
-&$556;
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31964.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31964.htm
deleted file mode 100644
index dba9af7722..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/31964.htm
+++ /dev/null
@@ -1,18 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/32163.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/32163.htm
deleted file mode 100644
index 152a9d6a93..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/32163.htm
+++ /dev/null
@@ -1,14 +0,0 @@
-&$556;
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/32189.htm b/L2J_Mobius_Test/dist/game/data/html/teleporter/half/32189.htm
deleted file mode 100644
index 420289657e..0000000000
--- a/L2J_Mobius_Test/dist/game/data/html/teleporter/half/32189.htm
+++ /dev/null
@@ -1,5 +0,0 @@
-&$556;
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/multisell/3255001.xml b/L2J_Mobius_Test/dist/game/data/multisell/3255001.xml
deleted file mode 100644
index 8cdbcf2fde..0000000000
--- a/L2J_Mobius_Test/dist/game/data/multisell/3255001.xml
+++ /dev/null
@@ -1,768 +0,0 @@
-
-
-
- 32550
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/multisell/3261101.xml b/L2J_Mobius_Test/dist/game/data/multisell/3261101.xml
deleted file mode 100644
index 114fe7da8d..0000000000
--- a/L2J_Mobius_Test/dist/game/data/multisell/3261101.xml
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
- 32611
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/multisell/646.xml b/L2J_Mobius_Test/dist/game/data/multisell/646.xml
new file mode 100644
index 0000000000..98439e9d4b
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/multisell/646.xml
@@ -0,0 +1,482 @@
+
+
+
+ 32550
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/multisell/648.xml b/L2J_Mobius_Test/dist/game/data/multisell/648.xml
index 92197062ea..e9a37f80fe 100644
--- a/L2J_Mobius_Test/dist/game/data/multisell/648.xml
+++ b/L2J_Mobius_Test/dist/game/data/multisell/648.xml
@@ -1,48 +1,121 @@
- 32020
+ 32611
-
-
-
-
+
+
-
-
-
-
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/multisell/718.xml b/L2J_Mobius_Test/dist/game/data/multisell/718.xml
index 8ccc757c13..f73efd97f6 100644
--- a/L2J_Mobius_Test/dist/game/data/multisell/718.xml
+++ b/L2J_Mobius_Test/dist/game/data/multisell/718.xml
@@ -11,139 +11,139 @@
32196
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts.cfg b/L2J_Mobius_Test/dist/game/data/scripts.cfg
index d4770fc2f0..6afe3537aa 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts.cfg
+++ b/L2J_Mobius_Test/dist/game/data/scripts.cfg
@@ -181,13 +181,16 @@ ai/zones/Gracia/StarStones.java
ai/zones/Gracia/instances/SecretArea/SecretArea.java
ai/zones/Gracia/instances/SeedOfDestruction/Stage1.java
ai/zones/Gracia/instances/SeedOfInfinity/HallOfSuffering/HallOfSuffering.java
+ai/zones/Gracia/npcs/El.java
ai/zones/Gracia/npcs/GeneralDilios.java
ai/zones/Gracia/npcs/Lindvior.java
ai/zones/Gracia/npcs/Maguen.java
+ai/zones/Gracia/npcs/Plenos.java
ai/zones/Gracia/npcs/FortuneTelling/FortuneTelling.java
ai/zones/Gracia/npcs/Lekon/Lekon.java
ai/zones/Gracia/npcs/Nemo/Nemo.java
ai/zones/Gracia/npcs/Nottingale/Nottingale.java
+ai/zones/Gracia/npcs/SeedTeleportDevice/SeedTeleportDevice.java
ai/zones/Gracia/npcs/Seyo/Seyo.java
ai/zones/Gracia/npcs/Survivor/Survivor.java
ai/zones/Gracia/npcs/ZealotOfShilen/ZealotOfShilen.java
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/AbstractNpcAI.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/AbstractNpcAI.java
index 6854a1c634..d6115f1c99 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/AbstractNpcAI.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/AbstractNpcAI.java
@@ -16,15 +16,11 @@
*/
package ai;
-import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.holders.MinionHolder;
import com.l2jmobius.gameserver.model.quest.Quest;
-import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
-import com.l2jmobius.gameserver.util.Broadcast;
/**
* Abstract NPC AI class for datapack based AIs.
@@ -70,60 +66,6 @@ public abstract class AbstractNpcAI extends Quest
addFactionCallId(mobs);
}
- /**
- * Broadcasts NpcSay packet to all known players with custom string.
- * @param npc
- * @param type
- * @param text
- */
- protected void broadcastNpcSay(L2Npc npc, ChatType type, String text)
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), text));
- }
-
- /**
- * Broadcasts NpcSay packet to all known players with npc string id.
- * @param npc
- * @param type
- * @param stringId
- */
- protected void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId stringId)
- {
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), stringId));
- }
-
- /**
- * Broadcasts NpcSay packet to all known players with npc string id.
- * @param npc
- * @param type
- * @param stringId
- * @param parameters
- */
- protected void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId stringId, String... parameters)
- {
- final NpcSay say = new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), stringId);
- if (parameters != null)
- {
- for (String parameter : parameters)
- {
- say.addStringParameter(parameter);
- }
- }
- Broadcast.toKnownPlayers(npc, say);
- }
-
- /**
- * Broadcasts NpcSay packet to all known players with npc string id in specific radius.
- * @param npc
- * @param type
- * @param stringId
- * @param radius
- */
- protected void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId stringId, int radius)
- {
- Broadcast.toKnownPlayersInRadius(npc, new NpcSay(npc.getObjectId(), type, npc.getTemplate().getDisplayId(), stringId), radius);
- }
-
public void spawnMinions(L2Npc npc, String spawnName)
{
for (MinionHolder is : npc.getTemplate().getParameters().getMinionList(spawnName))
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java
index 9bdd4d1e6c..33399147d4 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/AdenReconstructorManager.java
@@ -51,19 +51,19 @@ public final class AdenReconstructorManager extends AbstractNpcAI
{
case "SPAM_TEXT":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_LAND_OF_ADEN_IS_IN_NEED_OF_MATERIALS_TO_REBUILD_FROM_SHILEN_S_DESTRUCTION);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_LAND_OF_ADEN_IS_IN_NEED_OF_MATERIALS_TO_REBUILD_FROM_SHILEN_S_DESTRUCTION);
startQuestTimer("SPAM_TEXT2", 1000, npc, null);
break;
}
case "SPAM_TEXT2":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.PLEASE_DONATE_ANY_UNUSED_MATERIALS_YOU_HAVE_TO_HELP_REBUILD_ADEN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.PLEASE_DONATE_ANY_UNUSED_MATERIALS_YOU_HAVE_TO_HELP_REBUILD_ADEN);
startQuestTimer("SPAM_TEXT3", 1000, npc, null);
break;
}
case "SPAM_TEXT3":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_LL_RECEIVE_A_GIFT_FOR_ANY_APPLICABLE_DONATION);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_LL_RECEIVE_A_GIFT_FOR_ANY_APPLICABLE_DONATION);
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/FeedableBeasts.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
index f068f642d5..63c4e1d037 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/FeedableBeasts.java
@@ -28,7 +28,6 @@ import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2TamedBeastInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.util.Util;
import ai.AbstractNpcAI;
@@ -430,13 +429,8 @@ public final class FeedableBeasts extends AbstractNpcAI
// also, perform a rare random chat
if (getRandom(20) == 0)
{
- final NpcStringId message = NpcStringId.getNpcStringId(getRandom(2024, 2029));
- final NpcSay packet = new NpcSay(nextNpc, ChatType.NPC_GENERAL, message);
- if (message.getParamCount() > 0) // player name, $s1
- {
- packet.addStringParameter(player.getName());
- }
- npc.broadcastPacket(packet);
+ NpcStringId message = NpcStringId.getNpcStringId(getRandom(2024, 2029));
+ npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? player.getName() : null);
}
// @formatter:off
/*
@@ -546,13 +540,8 @@ public final class FeedableBeasts extends AbstractNpcAI
// rare random talk...
if (getRandom(20) == 0)
{
- final NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)];
- final NpcSay packet = new NpcSay(npc, ChatType.NPC_GENERAL, message);
- if (message.getParamCount() > 0) // player name, $s1
- {
- packet.addStringParameter(caster.getName());
- }
- npc.broadcastPacket(packet);
+ NpcStringId message = TEXT[growthLevel][getRandom(TEXT[growthLevel].length)];
+ npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null);
}
if ((growthLevel > 0) && (FEED_INFO.get(objectId) != caster.getObjectId()))
@@ -574,13 +563,8 @@ public final class FeedableBeasts extends AbstractNpcAI
if (skillId == beast.getFoodType())
{
beast.onReceiveFood();
- final NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)];
- final NpcSay packet = new NpcSay(npc, ChatType.NPC_GENERAL, message);
- if (message.getParamCount() > 0)
- {
- packet.addStringParameter(caster.getName());
- }
- beast.broadcastPacket(packet);
+ NpcStringId message = TAMED_TEXT[getRandom(TAMED_TEXT.length)];
+ npc.broadcastSay(ChatType.NPC_GENERAL, message, message.getParamCount() > 0 ? caster.getName() : null);
}
}
return super.onSkillSee(npc, caster, skill, targets, isSummon);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/GiantsCave.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/GiantsCave.java
index 2dd40ee530..048f90be64 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/GiantsCave.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/GiantsCave.java
@@ -51,11 +51,11 @@ public final class GiantsCave extends AbstractNpcAI
{
if (npc.getId() == SCOUTS[0]) // Gamlin
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.INTRUDER_DETECTED);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.INTRUDER_DETECTED);
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.OH_GIANTS_AN_INTRUDER_HAS_BEEN_DISCOVERED);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.OH_GIANTS_AN_INTRUDER_HAS_BEEN_DISCOVERED);
}
for (L2Character characters : npc.getKnownList().getKnownCharactersInRadius(450))
@@ -93,11 +93,11 @@ public final class GiantsCave extends AbstractNpcAI
npc.setScriptValue(1);
if (getRandomBoolean())
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_GUYS_ARE_DETECTED);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_GUYS_ARE_DETECTED);
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHAT_KIND_OF_CREATURES_ARE_YOU);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHAT_KIND_OF_CREATURES_ARE_YOU);
}
startQuestTimer("ATTACK", 6000, npc, player);
startQuestTimer("CLEAR", 120000, npc, null);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/LairOfAntharas.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/LairOfAntharas.java
index 2d9ef8bf1c..b791823862 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/LairOfAntharas.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/LairOfAntharas.java
@@ -80,7 +80,7 @@ public final class LairOfAntharas extends AbstractNpcAI
{
npc.setScriptValue(1);
}
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.WHO_S_THERE_IF_YOU_DISTURB_THE_TEMPER_OF_THE_GREAT_LAND_DRAGON_ANTHARAS_I_WILL_NEVER_FORGIVE_YOU);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.WHO_S_THERE_IF_YOU_DISTURB_THE_TEMPER_OF_THE_GREAT_LAND_DRAGON_ANTHARAS_I_WILL_NEVER_FORGIVE_YOU);
}
return super.onAggroRangeEnter(npc, player, isSummon);
}
@@ -96,7 +96,7 @@ public final class LairOfAntharas extends AbstractNpcAI
{
final L2Npc newKnight = addSpawn(DRAGON_KNIGHT2, npc, false, 0, true);
npc.deleteMe();
- broadcastNpcSay(newKnight, ChatType.NPC_SHOUT, NpcStringId.THOSE_WHO_SET_FOOT_IN_THIS_PLACE_SHALL_NOT_LEAVE_ALIVE);
+ newKnight.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.THOSE_WHO_SET_FOOT_IN_THIS_PLACE_SHALL_NOT_LEAVE_ALIVE);
addAttackDesire(newKnight, killer);
}
break;
@@ -107,7 +107,7 @@ public final class LairOfAntharas extends AbstractNpcAI
{
final L2Npc eliteKnight = addSpawn(ELITE_DRAGON_KNIGHT, npc, false, 0, true);
npc.deleteMe();
- broadcastNpcSay(eliteKnight, ChatType.NPC_SHOUT, NpcStringId.IF_YOU_WISH_TO_SEE_HELL_I_WILL_GRANT_YOU_YOUR_WISH);
+ eliteKnight.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.IF_YOU_WISH_TO_SEE_HELL_I_WILL_GRANT_YOU_YOUR_WISH);
addAttackDesire(eliteKnight, killer);
}
break;
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java
index a75e31bbcc..e50c2a2868 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MinionSpawnManager.java
@@ -438,7 +438,7 @@ public final class MinionSpawnManager extends AbstractNpcAI
{
addMinion((L2MonsterInstance) npc, is.getId());
}
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, ON_ATTACK_MSG[getRandom(ON_ATTACK_MSG.length)]);
}
return super.onAttack(npc, attacker, damage, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java
index 398459448f..a43fcda3ec 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/MonasteryOfSilence.java
@@ -94,7 +94,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
if ((character.getId() == CAPTAIN) && (getRandom(100) < 10) && npc.isScriptValue(0))
{
final L2Npc captain = (L2Npc) character;
- broadcastNpcSay(captain, ChatType.NPC_GENERAL, SOLINA_KNIGHTS_MSG[getRandom(SOLINA_KNIGHTS_MSG.length)]);
+ captain.broadcastSay(ChatType.NPC_GENERAL, SOLINA_KNIGHTS_MSG[getRandom(SOLINA_KNIGHTS_MSG.length)]);
captain.setScriptValue(1);
startQuestTimer("TIMER", 10000, captain, null);
}
@@ -157,7 +157,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
npc.doCast(KNIGHT_BLESS.getSkill());
}
npc.setScriptValue(1);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.FOR_THE_GLORY_OF_SOLINA);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.FOR_THE_GLORY_OF_SOLINA);
addAttackDesire(addSpawn(KNIGHT, npc), player);
}
break;
@@ -249,7 +249,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
if (!npc.isInCombat())
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_CANNOT_CARRY_A_WEAPON_WITHOUT_AUTHORIZATION);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_CANNOT_CARRY_A_WEAPON_WITHOUT_AUTHORIZATION);
}
addAttackDesire(npc, player);
@@ -266,7 +266,7 @@ public final class MonasteryOfSilence extends AbstractNpcAI
{
if (obj.equals(npc))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, DIVINITY_MSG[getRandom(DIVINITY_MSG.length)], caster.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, DIVINITY_MSG[getRandom(DIVINITY_MSG.length)], caster.getName());
addAttackDesire(npc, caster);
break;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PlainsOfDion.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PlainsOfDion.java
index adfa46e80d..dcab5fd033 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PlainsOfDion.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PlainsOfDion.java
@@ -69,11 +69,11 @@ public final class PlainsOfDion extends AbstractNpcAI
final int i = getRandom(5);
if (i < 2)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, MONSTERS_MSG[i], player.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, MONSTERS_MSG[i], player.getName());
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, MONSTERS_MSG[i]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, MONSTERS_MSG[i]);
}
for (L2Character obj : npc.getKnownList().getKnownCharactersInRadius(npc.getTemplate().getClanHelpRange()))
@@ -82,7 +82,7 @@ public final class PlainsOfDion extends AbstractNpcAI
{
final L2Npc monster = (L2Npc) obj;
addAttackDesire(monster, player);
- broadcastNpcSay(monster, ChatType.NPC_GENERAL, MONSTERS_ASSIST_MSG[getRandom(3)]);
+ monster.broadcastSay(ChatType.NPC_GENERAL, MONSTERS_ASSIST_MSG[getRandom(3)]);
}
}
npc.setScriptValue(1);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PrisonGuards.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PrisonGuards.java
index 2127b128af..60a14c6656 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PrisonGuards.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/PrisonGuards.java
@@ -89,14 +89,14 @@ public final class PrisonGuards extends AbstractNpcAI
{
npc.setTarget(player);
npc.doCast(STONE.getSkill());
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_NOT_EASY_TO_OBTAIN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IT_S_NOT_EASY_TO_OBTAIN);
}
}
else if (!player.isAffectedBySkill(TIMER) && (npc.calculateDistance(npc.getSpawn().getLocation(), false, false) < 2000))
{
npc.setTarget(player);
npc.doCast(STONE.getSkill());
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_RE_OUT_OF_YOUR_MIND_COMING_HERE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_RE_OUT_OF_YOUR_MIND_COMING_HERE);
}
return super.onAttack(npc, player, damage, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/SilentValley.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/SilentValley.java
index a1b600d9f8..d3af305af1 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/SilentValley.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/SilentValley.java
@@ -108,7 +108,7 @@ public final class SilentValley extends AbstractNpcAI
if (!isSummon && npc.isScriptValue(0))
{
npc.setScriptValue(1);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_BE_CURSED_FOR_SEEKING_THE_TREASURE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_BE_CURSED_FOR_SEEKING_THE_TREASURE);
npc.setTarget(player);
npc.doCast(BETRAYAL.getSkill());
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/TurekOrcs.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/TurekOrcs.java
index 07b3badd34..b3d57eae2f 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/TurekOrcs.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/TurekOrcs.java
@@ -89,7 +89,7 @@ public final class TurekOrcs extends AbstractNpcAI
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.5)) && (npc.getCurrentHp() > (npc.getMaxHp() * 0.3)) && (attacker.getCurrentHp() > (attacker.getMaxHp() * 0.25)) && npc.hasAIValue("fleeX") && npc.hasAIValue("fleeY") && npc.hasAIValue("fleeZ") && (npc.getVariables().getInt("state") == 0) && (getRandom(100) < 10))
{
// Say and flee
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.getNpcStringId(getRandom(1000007, 1000027)));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.getNpcStringId(getRandom(1000007, 1000027)));
npc.disableCoreAI(true); // to avoid attacking behaviour, while flee
npc.setIsRunning(true);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(npc.getAIValue("fleeX"), npc.getAIValue("fleeY"), npc.getAIValue("fleeZ")));
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java
index 3522f3c7d0..688802e4f8 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/group_template/WarriorFishingBlock.java
@@ -88,7 +88,7 @@ public final class WarriorFishingBlock extends AbstractNpcAI
else
{
final L2PcInstance target = obj.getActingPlayer();
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_SPAWN[getRandom(NPC_STRINGS_ON_SPAWN.length)], target.getName());
addAttackDesire(npc, target);
startQuestTimer("DESPAWN", DESPAWN_TIME * 1000, npc, target);
@@ -109,7 +109,7 @@ public final class WarriorFishingBlock extends AbstractNpcAI
{
if (getRandom(100) < CHANCE_TO_SHOUT_ON_ATTACK)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_ATTACK[getRandom(NPC_STRINGS_ON_ATTACK.length)]);
}
return super.onAttack(npc, attacker, damage, isSummon);
}
@@ -117,7 +117,7 @@ public final class WarriorFishingBlock extends AbstractNpcAI
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NPC_STRINGS_ON_KILL[getRandom(NPC_STRINGS_ON_KILL.length)]);
cancelQuestTimer("DESPAWN", npc, killer);
return super.onKill(npc, killer, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Baium/Baium.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Baium/Baium.java
index fc963347fc..35398ec228 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Baium/Baium.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Baium/Baium.java
@@ -270,7 +270,7 @@ public final class Baium extends AbstractNpcAI
if ((player != null) && player.isInsideRadius(npc, 16000, true, false))
{
zone.broadcastPacket(new SocialAction(npc.getObjectId(), 1));
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HOW_DARE_YOU_WAKE_ME_NOW_YOU_SHALL_DIE, player.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HOW_DARE_YOU_WAKE_ME_NOW_YOU_SHALL_DIE, player.getName());
npc.setTarget(player);
npc.doCast(BAIUM_PRESENT.getSkill());
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Core.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Core.java
index a4a949d418..745923c8ad 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Core.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Core.java
@@ -28,7 +28,6 @@ import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2GrandBossInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
@@ -163,14 +162,14 @@ public final class Core extends AbstractNpcAI
{
if (getRandom(100) == 0)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.REMOVING_INTRUDERS));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.REMOVING_INTRUDERS);
}
}
else
{
_firstAttacked = true;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.A_NON_PERMITTED_TARGET_HAS_BEEN_DISCOVERED));
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.INTRUDER_REMOVAL_SYSTEM_INITIATED));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.A_NON_PERMITTED_TARGET_HAS_BEEN_DISCOVERED);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.INTRUDER_REMOVAL_SYSTEM_INITIATED);
}
}
return super.onAttack(npc, attacker, damage, isSummon);
@@ -181,11 +180,10 @@ public final class Core extends AbstractNpcAI
{
if (npc.getId() == CORE)
{
- final int objId = npc.getObjectId();
- npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, objId, npc.getX(), npc.getY(), npc.getZ()));
- npc.broadcastPacket(new NpcSay(objId, ChatType.NPC_GENERAL, npc.getId(), NpcStringId.A_FATAL_ERROR_HAS_OCCURRED));
- npc.broadcastPacket(new NpcSay(objId, ChatType.NPC_GENERAL, npc.getId(), NpcStringId.SYSTEM_IS_BEING_SHUT_DOWN));
- npc.broadcastPacket(new NpcSay(objId, ChatType.NPC_GENERAL, npc.getId(), NpcStringId.EMPTY));
+ npc.broadcastPacket(new PlaySound(1, "BS02_D", 1, npc.getObjectId(), npc.getX(), npc.getY(), npc.getZ()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.A_FATAL_ERROR_HAS_OCCURRED);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.SYSTEM_IS_BEING_SHUT_DOWN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.EMPTY);
_firstAttacked = false;
GrandBossManager.getInstance().setBossStatus(CORE, DEAD);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java
index c0e548bb19..01b6a463ae 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/CrimsonHatuOtis.java
@@ -83,7 +83,7 @@ public final class CrimsonHatuOtis extends AbstractNpcAI
}
else if (npc.isScriptValue(1) && (npc.getCurrentHp() < (npc.getMaxHp() * 0.3)))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_VE_HAD_IT_UP_TO_HERE_WITH_YOU_I_LL_TAKE_CARE_OF_YOU);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_VE_HAD_IT_UP_TO_HERE_WITH_YOU_I_LL_TAKE_CARE_OF_YOU);
npc.setScriptValue(2);
startQuestTimer("BUFF", 1000, npc, null);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java
index 878ea2bb85..0bd43a8eed 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/FrightenedRagnaOrc.java
@@ -62,7 +62,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
else if ((npc.getCurrentHp() < (npc.getMaxHp() * 0.2)) && npc.isScriptValue(1))
{
startQuestTimer("reward", 10000, npc, attacker);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WAIT_WAIT_STOP_SAVE_ME_AND_I_LL_GIVE_YOU_10_000_000_ADENA);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WAIT_WAIT_STOP_SAVE_ME_AND_I_LL_GIVE_YOU_10_000_000_ADENA);
npc.setScriptValue(2);
}
return super.onAttack(npc, attacker, damage, isSummon);
@@ -72,7 +72,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance player, boolean isSummon)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.UGH_A_CURSE_UPON_YOU : NpcStringId.I_REALLY_DIDN_T_WANT_TO_FIGHT;
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
+ npc.broadcastSay(ChatType.NPC_GENERAL, msg);
cancelQuestTimer("say", npc, null);
cancelQuestTimer("reward", npc, player);
return super.onKill(npc, player, isSummon);
@@ -91,7 +91,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
return null;
}
final NpcStringId msg = getRandomBoolean() ? NpcStringId.I_DON_T_WANT_TO_FIGHT : NpcStringId.IS_THIS_REALLY_NECESSARY;
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
+ npc.broadcastSay(ChatType.NPC_GENERAL, msg);
break;
}
case "reward":
@@ -101,7 +101,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
if (getRandom(100000) < CHANCE2)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.TH_THANKS_I_COULD_HAVE_BECOME_GOOD_FRIENDS_WITH_YOU : NpcStringId.I_LL_GIVE_YOU_10_000_000_ADENA_LIKE_I_PROMISED_I_MIGHT_BE_AN_ORC_WHO_KEEPS_MY_PROMISES;
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
+ npc.broadcastSay(ChatType.NPC_GENERAL, msg);
npc.setScriptValue(3);
npc.doCast(SKILL.getSkill());
for (int i = 0; i < 10; i++)
@@ -112,7 +112,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
else if (getRandom(100000) < CHANCE)
{
final NpcStringId msg = getRandomBoolean() ? NpcStringId.TH_THANKS_I_COULD_HAVE_BECOME_GOOD_FRIENDS_WITH_YOU : NpcStringId.SORRY_BUT_THIS_IS_ALL_I_HAVE_GIVE_ME_A_BREAK;
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, msg);
+ npc.broadcastSay(ChatType.NPC_GENERAL, msg);
npc.setScriptValue(3);
npc.doCast(SKILL.getSkill());
for (int i = 0; i < 10; i++)
@@ -122,7 +122,7 @@ public final class FrightenedRagnaOrc extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, getRandomBoolean() ? NpcStringId.THANKS_BUT_THAT_THING_ABOUT_10_000_000_ADENA_WAS_A_LIE_SEE_YA : NpcStringId.YOU_RE_PRETTY_DUMB_TO_BELIEVE_ME);
+ npc.broadcastSay(ChatType.NPC_GENERAL, getRandomBoolean() ? NpcStringId.THANKS_BUT_THAT_THING_ABOUT_10_000_000_ADENA_WAS_A_LIE_SEE_YA : NpcStringId.YOU_RE_PRETTY_DUMB_TO_BELIEVE_ME);
}
startQuestTimer("despawn", 1000, npc, null);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Orfen.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Orfen.java
index c0d7ef4538..ef89c35e1c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Orfen.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Orfen.java
@@ -36,7 +36,6 @@ import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.zone.type.L2BossZone;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
@@ -245,9 +244,7 @@ public final class Orfen extends AbstractNpcAI
final L2Character originalCaster = isSummon ? caster.getServitors().values().stream().findFirst().orElse(caster.getPet()) : caster;
if ((skill.getEffectPoint() > 0) && (getRandom(5) == 0) && npc.isInsideRadius(originalCaster, 1000, false, false))
{
- final NpcSay packet = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), TEXT[getRandom(4)]);
- packet.addStringParameter(caster.getName().toString());
- npc.broadcastPacket(packet);
+ npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(4)], caster.getName());
originalCaster.teleToLocation(npc.getLocation());
npc.setTarget(originalCaster);
npc.doCast(SkillData.getInstance().getSkill(4064, 1));
@@ -300,9 +297,7 @@ public final class Orfen extends AbstractNpcAI
}
else if (npc.isInsideRadius(attacker, 1000, false, false) && !npc.isInsideRadius(attacker, 300, false, false) && (getRandom(10) == 0))
{
- final NpcSay packet = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npcId, TEXT[getRandom(3)]);
- packet.addStringParameter(attacker.getName().toString());
- npc.broadcastPacket(packet);
+ npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(3)], attacker.getName());
attacker.teleToLocation(npc.getLocation());
npc.setTarget(attacker);
npc.doCast(SkillData.getInstance().getSkill(4064, 1));
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/QueenShyeed.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/QueenShyeed.java
index 79f8a89fce..fa5bdd2e73 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/QueenShyeed.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/QueenShyeed.java
@@ -71,7 +71,7 @@ public final class QueenShyeed extends AbstractNpcAI
@Override
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.SHYEED_S_CRY_IS_STEADILY_DYING_DOWN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.SHYEED_S_CRY_IS_STEADILY_DYING_DOWN);
startRespawn();
PC_BUFF_ZONE.setEnabled(true);
return super.onKill(npc, killer, isSummon);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/SinWardens.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/SinWardens.java
index fe48a96c56..f1f117eab8 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/SinWardens.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/SinWardens.java
@@ -24,7 +24,6 @@ import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2MonsterInstance;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import ai.AbstractNpcAI;
@@ -73,7 +72,7 @@ public final class SinWardens extends AbstractNpcAI
if (killedCount == 5)
{
- master.broadcastPacket(new NpcSay(master.getObjectId(), ChatType.NPC_GENERAL, master.getId(), NpcStringId.WE_MIGHT_NEED_NEW_SLAVES_I_LL_BE_BACK_SOON_SO_WAIT));
+ master.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_MIGHT_NEED_NEW_SLAVES_I_LL_BE_BACK_SOON_SO_WAIT);
master.doDie(killer);
killedMinionsCount.remove(master.getObjectId());
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Venom/Venom.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Venom/Venom.java
index 7fa17fcde7..9fa1d746da 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Venom/Venom.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/individual/Venom/Venom.java
@@ -155,7 +155,7 @@ public final class Venom extends AbstractNpcAI
if (CastleManager.getInstance().getCastleById(CASTLE).getSiege().getControlTowerCount() <= 1)
{
changeLocation(MoveTo.THRONE);
- broadcastNpcSay(_massymore, ChatType.NPC_SHOUT, NpcStringId.OH_NO_THE_DEFENSES_HAVE_FAILED_IT_IS_TOO_DANGEROUS_TO_REMAIN_INSIDE_THE_CASTLE_FLEE_EVERY_MAN_FOR_HIMSELF);
+ _massymore.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.OH_NO_THE_DEFENSES_HAVE_FAILED_IT_IS_TOO_DANGEROUS_TO_REMAIN_INSIDE_THE_CASTLE_FLEE_EVERY_MAN_FOR_HIMSELF);
cancelQuestTimer("tower_check", npc, null);
startQuestTimer("raid_check", 10000, npc, null, true);
}
@@ -284,7 +284,7 @@ public final class Venom extends AbstractNpcAI
_venom.disableSkill(VENOM_TELEPORT.getSkill(), -1);
_venom.disableSkill(RANGE_TELEPORT.getSkill(), -1);
_venom.doRevive();
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.WHO_DARES_TO_COVET_THE_THRONE_OF_OUR_CASTLE_LEAVE_IMMEDIATELY_OR_YOU_WILL_PAY_THE_PRICE_OF_YOUR_AUDACITY_WITH_YOUR_VERY_OWN_BLOOD);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.WHO_DARES_TO_COVET_THE_THRONE_OF_OUR_CASTLE_LEAVE_IMMEDIATELY_OR_YOU_WILL_PAY_THE_PRICE_OF_YOUR_AUDACITY_WITH_YOUR_VERY_OWN_BLOOD);
((L2Attackable) _venom).setCanReturnToSpawnPoint(false);
if (checkStatus() == DEAD)
{
@@ -335,7 +335,7 @@ public final class Venom extends AbstractNpcAI
public String onKill(L2Npc npc, L2PcInstance killer, boolean isSummon)
{
updateStatus(DEAD);
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.IT_S_NOT_OVER_YET_IT_WON_T_BE_OVER_LIKE_THIS_NEVER);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.IT_S_NOT_OVER_YET_IT_WON_T_BE_OVER_LIKE_THIS_NEVER);
if (!CastleManager.getInstance().getCastleById(CASTLE).getSiege().isInProgress())
{
final L2Npc cube = addSpawn(TELEPORT_CUBE, CUBE, false, 0);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Alarm/Alarm.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Alarm/Alarm.java
index 58ec8dedcf..c8b5d8f4d7 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Alarm/Alarm.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Alarm/Alarm.java
@@ -59,19 +59,19 @@ public final class Alarm extends AbstractNpcAI
case "SELF_DESTRUCT_IN_60":
{
startQuestTimer("SELF_DESTRUCT_IN_30", 30000, npc, null);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_60_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_60_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
break;
}
case "SELF_DESTRUCT_IN_30":
{
startQuestTimer("SELF_DESTRUCT_IN_10", 20000, npc, null);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_30_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_30_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
break;
}
case "SELF_DESTRUCT_IN_10":
{
startQuestTimer("RECORDER_CRUSHED", 10000, npc, null);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_10_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_ALARM_WILL_SELF_DESTRUCT_IN_10_SECONDS_ENTER_PASSCODE_TO_OVERRIDE);
break;
}
case "RECORDER_CRUSHED":
@@ -81,7 +81,7 @@ public final class Alarm extends AbstractNpcAI
npc0.getVariables().set("SPAWNED", false);
if (player0 != null)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.RECORDER_CRUSHED);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.RECORDER_CRUSHED);
if (verifyMemoState(player0, ART_OF_PERSUASION_ID, -1))
{
setMemoState(player0, ART_OF_PERSUASION_ID, 5);
@@ -225,7 +225,7 @@ public final class Alarm extends AbstractNpcAI
public String onSpawn(L2Npc npc)
{
startQuestTimer("SELF_DESTRUCT_IN_60", 60000, npc, null);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.INTRUDER_ALERT_THE_ALARM_WILL_SELF_DESTRUCT_IN_2_MINUTES);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.INTRUDER_ALERT_THE_ALARM_WILL_SELF_DESTRUCT_IN_2_MINUTES);
final L2PcInstance player = npc.getVariables().getObject("player0", L2PcInstance.class);
if (player != null)
{
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
index 48a7b7773f..ead1574ef4 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/ForgeOfTheGods/Rooney.java
@@ -94,22 +94,22 @@ public final class Rooney extends AbstractNpcAI
{
case 1:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HURRY_HURRY);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HURRY_HURRY);
break;
}
case 2:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_AM_NOT_THAT_TYPE_OF_PERSON_WHO_STAYS_IN_ONE_PLACE_FOR_A_LONG_TIME);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_AM_NOT_THAT_TYPE_OF_PERSON_WHO_STAYS_IN_ONE_PLACE_FOR_A_LONG_TIME);
break;
}
case 3:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_HARD_FOR_ME_TO_KEEP_STANDING_LIKE_THIS);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IT_S_HARD_FOR_ME_TO_KEEP_STANDING_LIKE_THIS);
break;
}
case 4:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHY_DON_T_I_GO_THAT_WAY_THIS_TIME);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHY_DON_T_I_GO_THAT_WAY_THIS_TIME);
break;
}
default:
@@ -130,7 +130,7 @@ public final class Rooney extends AbstractNpcAI
{
if (creature.isPlayer() && npc.isScriptValue(0))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WELCOME);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WELCOME);
startQuestTimer("teleport", 60000, npc, null);
npc.setScriptValue(1);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java
index e74f114195..a000ed59b3 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/LaVieEnRose/LaVieEnRose.java
@@ -85,19 +85,19 @@ public final class LaVieEnRose extends AbstractNpcAI
}
case "SPAM_TEXT":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_BEAUTY_SHOP_IS_OPEN_COME_ON_IN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_BEAUTY_SHOP_IS_OPEN_COME_ON_IN);
startQuestTimer("SPAM_TEXT2", 2500, npc, null);
break;
}
case "SPAM_TEXT2":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_LOOK_GOOD_TOO_BUDDY_COME_ON_COME_ON);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_LOOK_GOOD_TOO_BUDDY_COME_ON_COME_ON);
startQuestTimer("SPAM_TEXT3", 2500, npc, null);
break;
}
case "SPAM_TEXT3":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.EVERYONE_COME_ON_LET_S_GO_GANGNAM_STYLE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.EVERYONE_COME_ON_LET_S_GO_GANGNAM_STYLE);
break;
}
case "cancel":
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Mammons/Mammons.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Mammons/Mammons.java
index 883bf2dd5a..e793e639d3 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Mammons/Mammons.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Mammons/Mammons.java
@@ -119,7 +119,7 @@ public final class Mammons extends AbstractNpcAI
if (blacksmith != null)
{
- broadcastNpcSay(blacksmith, ChatType.NPC_GENERAL, NpcStringId.I_HAVE_SOME_EXCELLENT_WEAPONS_TO_SHOW_YOU);
+ blacksmith.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_HAVE_SOME_EXCELLENT_WEAPONS_TO_SHOW_YOU);
}
if (Config.ANNOUNCE_MAMMON_SPAWN)
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Minigame/Minigame.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
index d00bcd14aa..9bd2b17dbd 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Minigame/Minigame.java
@@ -88,7 +88,7 @@ public final class Minigame extends AbstractNpcAI
takeItems(player, UNLIT_TORCHLIGHT, 1);
giveItems(player, TORCHLIGHT, 1);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_LL_START_THE_FURNACE_MECHANISM_WATCH_FOR_THE_PATTERN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_LL_START_THE_FURNACE_MECHANISM_WATCH_FOR_THE_PATTERN);
room.getManager().setTarget(player);
room.setParticipant(player);
@@ -153,7 +153,7 @@ public final class Minigame extends AbstractNpcAI
}
else
{
- broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.NOW_LIGHT_THE_FURNACES_IN_THE_CORRECT_ORDER);
+ room.getManager().broadcastSay(ChatType.NPC_GENERAL, NpcStringId.NOW_LIGHT_THE_FURNACES_IN_THE_CORRECT_ORDER);
room.burnThemAll();
startQuestTimer("off", 2000, npc, null);
final ConsumerEventListener listener = new ConsumerEventListener(room.getParticipant(), EventType.ON_CREATURE_SKILL_USE, (OnCreatureSkillUse listenerEvent) -> onSkillUse(listenerEvent), room);
@@ -164,19 +164,19 @@ public final class Minigame extends AbstractNpcAI
}
case "hurry_up":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.ONLY_1_MINUTE_LEFT);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ONLY_1_MINUTE_LEFT);
startQuestTimer("hurry_up2", 60000, npc, null);
break;
}
case "hurry_up2":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.JUST_10_SECONDS_LEFT);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.JUST_10_SECONDS_LEFT);
startQuestTimer("expire", 10000, npc, null);
break;
}
case "expire":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TOO_LATE_THE_TORCH_HAS_RUN_OUT_MAYBE_NEXT_TIME);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.TOO_LATE_THE_TORCH_HAS_RUN_OUT_MAYBE_NEXT_TIME);
}
case "end":
{
@@ -284,7 +284,7 @@ public final class Minigame extends AbstractNpcAI
else
{
addSpawn(TREASURE_BOX, room.getParticipant().getLocation(), true, 0);
- broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.THAT_S_IT_YOU_VE_DONE_IT);
+ room.getManager().broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THAT_S_IT_YOU_VE_DONE_IT);
room.setCurrentPot(0);
room.burnThemAll();
startQuestTimer("off", 2000, room.getManager(), null);
@@ -293,7 +293,7 @@ public final class Minigame extends AbstractNpcAI
}
else if (room.getAttemptNumber() == MAX_ATTEMPTS)
{
- broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.I_VE_FAILED_ANY_FURTHER_ATTEMPTS_WOULD_BE_WASTEFUL);
+ room.getManager().broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_VE_FAILED_ANY_FURTHER_ATTEMPTS_WOULD_BE_WASTEFUL);
room.burnThemAll();
startQuestTimer("off", 2000, room.getManager(), null);
room.getParticipant().removeListenerIf(EventType.ON_CREATURE_SKILL_USE, listener -> listener.getOwner() == room);
@@ -301,7 +301,7 @@ public final class Minigame extends AbstractNpcAI
}
else if (room.getAttemptNumber() < MAX_ATTEMPTS)
{
- broadcastNpcSay(room.getManager(), ChatType.NPC_GENERAL, NpcStringId.TOO_BAD_I_WILL_NOT_GIVE_UP_ON_THIS_THOUGH);
+ room.getManager().broadcastSay(ChatType.NPC_GENERAL, NpcStringId.TOO_BAD_I_WILL_NOT_GIVE_UP_ON_THIS_THOUGH);
room.burnThemAll();
startQuestTimer("off", 2000, room.getManager(), null);
room.setAttemptNumber(room.getAttemptNumber() + 1);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
index 31ff9ac7ab..20e677f70f 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToFantasy/TeleportToFantasy.java
@@ -102,7 +102,7 @@ public final class TeleportToFantasy extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
player.teleToLocation(RUNE_TOWNSHIP);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
index 44298f3650..f13a6d6a64 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/Teleports/TeleportToRaceTrack/TeleportToRaceTrack.java
@@ -96,7 +96,7 @@ public final class TeleportToRaceTrack extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IF_YOUR_MEANS_OF_ARRIVAL_WAS_A_BIT_UNCONVENTIONAL_THEN_I_LL_BE_SENDING_YOU_BACK_TO_THE_TOWN_OF_RUNE_WHICH_IS_THE_NEAREST_TOWN);
player.teleToLocation(DION_CASTLE_TOWN);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java
index 18bbf738ce..40389363b4 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/npc/WeaverOlf/WeaverOlf.java
@@ -21,7 +21,6 @@ import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.itemcontainer.Inventory;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import ai.AbstractNpcAI;
@@ -215,7 +214,7 @@ public final class WeaverOlf extends AbstractNpcAI
}
else
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WHAT_A_PREDICAMENT_MY_ATTEMPTS_WERE_UNSUCCESSFUL));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHAT_A_PREDICAMENT_MY_ATTEMPTS_WERE_UNSUCCESSFUL);
}
}
else
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/AteliaFortress/AteliaManager/AteliaManager.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/AteliaFortress/AteliaManager/AteliaManager.java
index 849e4666fb..a13b369cd0 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/AteliaFortress/AteliaManager/AteliaManager.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/AteliaFortress/AteliaManager/AteliaManager.java
@@ -613,7 +613,7 @@ public final class AteliaManager extends AbstractNpcAI
}
else if (Util.contains(FLOOR_MOBS, npc.getId()) && (chance > 90))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, ATELIA_MSG[getRandom(1)], attacker.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, ATELIA_MSG[getRandom(1)], attacker.getName());
}
return super.onAttack(npc, attacker, damage, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/MercenaryCaptain.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/MercenaryCaptain.java
index ccedb986a5..ea27087e96 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/MercenaryCaptain.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/MercenaryCaptain.java
@@ -44,7 +44,7 @@ public final class MercenaryCaptain extends AbstractNpcAI
{
if (event.equals("BROADCAST_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_SOUTHERN_PART_OF_DRAGON_VALLEY_IS_MUCH_MORE_DANGEROUS_THAN_THE_NORTH_BE_CAREFUL, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_SOUTHERN_PART_OF_DRAGON_VALLEY_IS_MUCH_MORE_DANGEROUS_THAN_THE_NORTH_BE_CAREFUL, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Namo.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Namo.java
index 693f9e8bc9..ddd3bbb1ff 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Namo.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Namo.java
@@ -44,7 +44,7 @@ public final class Namo extends AbstractNpcAI
{
if (event.equals("BROADCAST_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THIS_PLACE_SWARMS_WITH_DRAGONS_BY_DAY_AND_UNDEAD_BY_NIGHT, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THIS_PLACE_SWARMS_WITH_DRAGONS_BY_DAY_AND_UNDEAD_BY_NIGHT, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Rakun.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Rakun.java
index 6f6a7ebfde..a7450021bf 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Rakun.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/DragonValley/Rakun.java
@@ -44,7 +44,7 @@ public final class Rakun extends AbstractNpcAI
{
if (event.equals("BROADCAST_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THIS_PLACE_SWARMS_WITH_DRAGONS_BY_DAY_AND_UNDEAD_BY_NIGHT, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THIS_PLACE_SWARMS_WITH_DRAGONS_BY_DAY_AND_UNDEAD_BY_NIGHT, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/FantasyIsle/TalentShow.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/FantasyIsle/TalentShow.java
index 9ac4f16dad..645ca87571 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/FantasyIsle/TalentShow.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/FantasyIsle/TalentShow.java
@@ -27,7 +27,6 @@ import com.l2jmobius.gameserver.model.Location;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.PlaySound;
import ai.AbstractNpcAI;
@@ -308,11 +307,6 @@ public final class TalentShow extends AbstractNpcAI
startQuestTimer("Start", diff, null, null); // first start
}
- private void autoChat(L2Npc npc, NpcStringId npcString, ChatType type)
- {
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), type, npc.getId(), npcString));
- }
-
@Override
public String onSpawn(L2Npc npc)
{
@@ -322,7 +316,7 @@ public final class TalentShow extends AbstractNpcAI
{
case 32433:
{
- autoChat(npc, MESSAGES[0], ChatType.NPC_SHOUT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, MESSAGES[0]);
startQuestTimer("1", 30000, npc, null);
break;
}
@@ -384,7 +378,7 @@ public final class TalentShow extends AbstractNpcAI
// TODO switch on event
if (event.equalsIgnoreCase("6"))
{
- autoChat(npc, MESSAGES[6], ChatType.NPC_SHOUT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, MESSAGES[6]);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(-56511, -56647, -2008, 36863));
npc.broadcastPacket(new PlaySound(1, "NS22_F", 0, 0, 0, 0, 0));
addSpawn(SINGERS[0], -56344, -56328, -2008, 32768, false, 224000);
@@ -402,7 +396,7 @@ public final class TalentShow extends AbstractNpcAI
{
case 32433:
{
- autoChat(npc, MESSAGES[7], ChatType.NPC_SHOUT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, MESSAGES[7]);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(-56698, -56430, -2008, 32768));
startQuestTimer("8", 12000, npc, null);
break;
@@ -436,7 +430,7 @@ public final class TalentShow extends AbstractNpcAI
{
case 32433:
{
- autoChat(npc, MESSAGES[11], ChatType.NPC_SHOUT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, MESSAGES[11]);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, new Location(-56698, -56430, -2008, 32768));
startQuestTimer("12", 5000, npc, null);
break;
@@ -455,7 +449,7 @@ public final class TalentShow extends AbstractNpcAI
}
else if (event.equalsIgnoreCase("17"))
{
- autoChat(npc, MESSAGES[16], ChatType.NPC_SHOUT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, MESSAGES[16]);
startQuestTimer("social1", 2000, addSpawn(INDIVIDUALS[1], -56700, -56340, -2008, 32768, false, 32000), null);
startQuestTimer("18", 9000, npc, null);
}
@@ -476,7 +470,7 @@ public final class TalentShow extends AbstractNpcAI
}
else if (event.equalsIgnoreCase("28"))
{
- autoChat(npc, MESSAGES[23], ChatType.NPC_GENERAL);
+ npc.broadcastSay(ChatType.NPC_SHOUT, MESSAGES[23]);
startQuestTimer("social1", 1, npc, null);
}
else if (event.equalsIgnoreCase("29"))
@@ -499,7 +493,7 @@ public final class TalentShow extends AbstractNpcAI
final ShoutInfo si = TALKS.get(event);
if (si != null)
{
- autoChat(npc, si.getNpcStringId(), ChatType.NPC_SHOUT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, si.getNpcStringId());
startQuestTimer(si.getNextEvent(), si.getTime(), npc, null);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/GainakUnderground/Lailly.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/GainakUnderground/Lailly.java
index 43880a8022..c25eaec7e4 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/GainakUnderground/Lailly.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/GainakUnderground/Lailly.java
@@ -43,7 +43,7 @@ public final class Lailly extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.READY_TO_LISTEN_TO_A_STORY_COME_NOW, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.READY_TO_LISTEN_TO_A_STORY_COME_NOW, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/El.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/El.java
new file mode 100644
index 0000000000..9eea26d679
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/El.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.zones.Gracia.npcs;
+
+import com.l2jmobius.gameserver.enums.ChatType;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.network.NpcStringId;
+
+import ai.AbstractNpcAI;
+
+/**
+ * El AI.
+ * @author St3eT
+ */
+public final class El extends AbstractNpcAI
+{
+ // NPCs
+ private static final int EL = 32556;
+
+ private El()
+ {
+ super(El.class.getSimpleName(), "ai/zones/Gracia/npcs");
+ addSpawnId(EL);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_USE_THE_JUMP_BOARD_TO_GET_STRAIGHT_TO_THE_2ND_FLOOR, 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 10000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new El();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/GeneralDilios.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/GeneralDilios.java
index 4d291f354f..972da25bce 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/GeneralDilios.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/GeneralDilios.java
@@ -25,7 +25,6 @@ import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import ai.AbstractNpcAI;
@@ -68,13 +67,13 @@ public final class GeneralDilios extends AbstractNpcAI
int value = Integer.parseInt(event.substring(8));
if (value < 6)
{
- _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_GENERAL, GENERAL_ID, NpcStringId.STABBING_THREE_TIMES));
+ _general.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.STABBING_THREE_TIMES);
startQuestTimer("guard_animation_0", 3400, null, null);
}
else
{
value = -1;
- _general.broadcastPacket(new NpcSay(_general.getObjectId(), ChatType.NPC_SHOUT, GENERAL_ID, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]));
+ _general.broadcastSay(ChatType.NPC_SHOUT, DILIOS_TEXT[getRandom(DILIOS_TEXT.length)]);
}
startQuestTimer("command_" + (value + 1), 60000, null, null);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-01.html b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-01.html
index 50718ed18a..9626113ef3 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-01.html
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-01.html
@@ -1,7 +1,7 @@
Engineer Lekon:
Airship, eh? If you want board an Airship, you need to first register for a Summon License. There's a switch on the Airship controls that proves your qualifications to summon and pilot it. Unless you obtain that license, you won't be allowed to fly.
-Only clan lords whose clan is level 5 or higher may earn the license. There is also a limit on the number of Airships.
+Only Clan Leaders whose clan is level 5 or above may earn the license. There is also a limit on the number of Airships.
If you meet the requirements, you can obtain a Airship Summon License in exchange for 10 Energy Star Stones.
-An Energy Star Stone can be made by assembling Star Stones found floating in the skies over Gracia. If you thinkk this is too time-consuming, you can also buy them from Officer Tolonis right over there..
-
+An Energy Star Stone can be made by assembling Star Stones found floating in the skies over Gracia. If you think this is too time-consuming, you can also buy them from Officer Tolonis right over there..
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-02.html b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-02.html
index 87d67450f9..18a54e798c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-02.html
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lekon/32557-02.html
@@ -1,3 +1,3 @@
Engineer Lekon:
-Only a clan lord whose clan is level 5 or above can be issued an Airship Summon License.
+Only a Clan Leader whose clan is level 5 or above can be issued an Airship Summon License.
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lindvior.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lindvior.java
index 7b0bf9e53d..815e75858c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lindvior.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Lindvior.java
@@ -64,17 +64,17 @@ public class Lindvior extends AbstractNpcAI
{
case "tomaris_shout1":
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.HUH_THE_SKY_LOOKS_FUNNY_WHAT_S_THAT);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.HUH_THE_SKY_LOOKS_FUNNY_WHAT_S_THAT);
break;
}
case "artius_shout":
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.A_POWERFUL_SUBORDINATE_IS_BEING_HELD_BY_THE_BARRIER_ORB_THIS_REACTION_MEANS);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.A_POWERFUL_SUBORDINATE_IS_BEING_HELD_BY_THE_BARRIER_ORB_THIS_REACTION_MEANS);
break;
}
case "tomaris_shout2":
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.BE_CAREFUL_SOMETHING_S_COMING);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.BE_CAREFUL_SOMETHING_S_COMING);
break;
}
case "lindvior_scene":
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Nottingale/32627.html b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Nottingale/32627.html
index f8c380eee5..1430c0b483 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Nottingale/32627.html
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Nottingale/32627.html
@@ -1,9 +1,9 @@
-Mage Notingale:
+Mage Nottingale:
Welcome to Gracia! I am here to guide adventures who come from Aden.
It is impossible to walk around in Gracia because of the contamination caused by the Seeds. Most move via Airship, but that is also difficult -- there simply aren't enough for everyone.
-The magicians of Aden crafted an alternative plan. It is called an Aurabird. I think it is the better solution for you.
-
-
-
+The magicians of Aden crafted an alternative plan. It is called an Aura Bird. I think it is the better solution for you.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Plenos.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Plenos.java
new file mode 100644
index 0000000000..1146a269da
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Plenos.java
@@ -0,0 +1,62 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.zones.Gracia.npcs;
+
+import com.l2jmobius.gameserver.enums.ChatType;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+import com.l2jmobius.gameserver.network.NpcStringId;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Plenos AI.
+ * @author St3eT
+ */
+public final class Plenos extends AbstractNpcAI
+{
+ // NPCs
+ private static final int PLENOS = 32563;
+
+ private Plenos()
+ {
+ super(Plenos.class.getSimpleName(), "ai/zones/Gracia/npcs");
+ addSpawnId(PLENOS);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+ if (event.equals("SPAM_TEXT") && (npc != null))
+ {
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_BE_TELEPORTED_TO_EACH_SEED_IF_YOU_VOLUNTEER_WHY_NOT_TRY, 1000);
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ @Override
+ public String onSpawn(L2Npc npc)
+ {
+ startQuestTimer("SPAM_TEXT", 10000, npc, null, true);
+ return super.onSpawn(npc);
+ }
+
+ public static void main(String[] args)
+ {
+ new Plenos();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/15929.html b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/15929.html
new file mode 100644
index 0000000000..18e8f0f7bd
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/15929.html
@@ -0,0 +1,7 @@
+Seed Teleport Device:
+Let me guide you to the Seeds.
+
+
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/SeedOfHellfire-noLv.html b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/SeedOfHellfire-noLv.html
new file mode 100644
index 0000000000..c42ca14a81
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/SeedOfHellfire-noLv.html
@@ -0,0 +1,3 @@
+Seed Teleport Device:
+You must be Lv. 97 or above to use the Seed of Teleport Device to the Seed of Hellfire.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/SeedTeleportDevice.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/SeedTeleportDevice.java
new file mode 100644
index 0000000000..ad2e8c2842
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/SeedTeleportDevice/SeedTeleportDevice.java
@@ -0,0 +1,87 @@
+/*
+ * This file is part of the L2J Mobius project.
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see .
+ */
+package ai.zones.Gracia.npcs.SeedTeleportDevice;
+
+import com.l2jmobius.gameserver.model.Location;
+import com.l2jmobius.gameserver.model.actor.L2Npc;
+import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
+
+import ai.AbstractNpcAI;
+
+/**
+ * Seed Teleport Device AI.
+ * @author St3eT
+ */
+public final class SeedTeleportDevice extends AbstractNpcAI
+{
+ // NPCs
+ private static final int SEED_TELEPORT_DEVICE = 15929;
+ // Locations
+ private static final Location SOA = new Location(-175572, 154572, 2712);
+ private static final Location SOD = new Location(-247024, 251794, 4336);
+ private static final Location SOI = new Location(-213699, 210686, 4408);
+ private static final Location SOH = new Location(-147354, 152581, -14048);
+ // Misc
+ private static final int SOH_MIN_LV = 97;
+
+ private SeedTeleportDevice()
+ {
+ super(SeedTeleportDevice.class.getSimpleName(), "ai/zones/Gracia/npcs");
+ addStartNpc(SEED_TELEPORT_DEVICE);
+ addFirstTalkId(SEED_TELEPORT_DEVICE);
+ addTalkId(SEED_TELEPORT_DEVICE);
+ }
+
+ @Override
+ public String onAdvEvent(String event, L2Npc npc, L2PcInstance player)
+ {
+
+ switch (event)
+ {
+ case "seedOfAnnihilation":
+ {
+ player.teleToLocation(SOA);
+ break;
+ }
+ case "seedOfDestruction":
+ {
+ player.teleToLocation(SOD);
+ break;
+ }
+ case "seedOfInfinity":
+ {
+ player.teleToLocation(SOI);
+ break;
+ }
+ case "seedOfHellfire":
+ {
+ if (player.getLevel() < SOH_MIN_LV)
+ {
+ return "SeedOfHellfire-noLv.html";
+ }
+ player.teleToLocation(SOH);
+ break;
+ }
+ }
+ return super.onAdvEvent(event, npc, player);
+ }
+
+ public static void main(String[] args)
+ {
+ new SeedTeleportDevice();
+ }
+}
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Seyo/Seyo.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Seyo/Seyo.java
index 6e6bc5a92d..e9d1477e2f 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Seyo/Seyo.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/npcs/Seyo/Seyo.java
@@ -66,7 +66,7 @@ public final class Seyo extends AbstractNpcAI
if (npc.isScriptValue(1))
{
npc.setScriptValue(0);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, TEXT[getRandom(TEXT.length)]);
}
break;
}
@@ -87,11 +87,11 @@ public final class Seyo extends AbstractNpcAI
if (getRandom(100) == 0)
{
giveItems(player, STONE_FRAGMENT, 100);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AMAZING_S1_TOOK_100_OF_THESE_SOUL_STONE_FRAGMENTS_WHAT_A_COMPLETE_SWINDLER, player.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.AMAZING_S1_TOOK_100_OF_THESE_SOUL_STONE_FRAGMENTS_WHAT_A_COMPLETE_SWINDLER, player.getName());
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HMM_HEY_DID_YOU_GIVE_S1_SOMETHING_BUT_IT_WAS_JUST_1_HAHA, player.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HMM_HEY_DID_YOU_GIVE_S1_SOMETHING_BUT_IT_WAS_JUST_1_HAHA, player.getName());
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}
@@ -114,18 +114,18 @@ public final class Seyo extends AbstractNpcAI
final int chance = getRandom(100);
if (chance < 20)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AHEM_S1_HAS_NO_LUCK_AT_ALL_TRY_PRAYING, player.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.AHEM_S1_HAS_NO_LUCK_AT_ALL_TRY_PRAYING, player.getName());
}
else if (chance < 80)
{
giveItems(player, STONE_FRAGMENT, 1);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_BETTER_THAN_LOSING_IT_ALL_RIGHT_OR_DOES_THIS_FEEL_WORSE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IT_S_BETTER_THAN_LOSING_IT_ALL_RIGHT_OR_DOES_THIS_FEEL_WORSE);
}
else
{
final int itemCount = getRandom(10, 16);
giveItems(player, STONE_FRAGMENT, itemCount);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.S1_PULLED_ONE_WITH_S2_DIGITS_LUCKY_NOT_BAD, player.getName(), String.valueOf(itemCount));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_PULLED_ONE_WITH_S2_DIGITS_LUCKY_NOT_BAD, player.getName(), String.valueOf(itemCount));
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}
@@ -149,17 +149,17 @@ public final class Seyo extends AbstractNpcAI
if (chance == 0)
{
giveItems(player, STONE_FRAGMENT, 10000);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AH_IT_S_OVER_WHAT_KIND_OF_GUY_IS_THAT_DAMN_FINE_YOU_S1_TAKE_IT_AND_GET_OUTTA_HERE, player.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.AH_IT_S_OVER_WHAT_KIND_OF_GUY_IS_THAT_DAMN_FINE_YOU_S1_TAKE_IT_AND_GET_OUTTA_HERE, player.getName());
}
else if (chance < 10)
{
giveItems(player, STONE_FRAGMENT, 1);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_DON_T_FEEL_BAD_RIGHT_ARE_YOU_SAD_BUT_DON_T_CRY);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_DON_T_FEEL_BAD_RIGHT_ARE_YOU_SAD_BUT_DON_T_CRY);
}
else
{
giveItems(player, STONE_FRAGMENT, getRandom(1, 100));
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.A_BIG_PIECE_IS_MADE_UP_OF_LITTLE_PIECES_SO_HERE_S_A_LITTLE_PIECE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.A_BIG_PIECE_IS_MADE_UP_OF_LITTLE_PIECES_SO_HERE_S_A_LITTLE_PIECE);
}
startQuestTimer("TRICKERY_TIMER", 5000, npc, null);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipController.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipController.java
index 1dd5b7362d..c5214dedbf 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipController.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipController.java
@@ -37,7 +37,6 @@ import com.l2jmobius.gameserver.model.zone.L2ZoneType;
import com.l2jmobius.gameserver.model.zone.type.L2ScriptZone;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public abstract class AirShipController extends Quest
@@ -101,7 +100,6 @@ public abstract class AirShipController extends Quest
private Future> _departSchedule = null;
- private NpcSay _arrivalMessage = null;
private static final int DEPART_INTERVAL = 300000; // 5 min
private static final int LICENSE = 13559;
@@ -164,12 +162,7 @@ public abstract class AirShipController extends Quest
ship.executePath(_arrivalPath);
}
- if (_arrivalMessage == null)
- {
- _arrivalMessage = new NpcSay(npc.getObjectId(), ChatType.NPC_SHOUT, npc.getId(), NpcStringId.THE_AIRSHIP_HAS_BEEN_SUMMONED_IT_WILL_AUTOMATICALLY_DEPART_IN_5_MINUTES);
- }
-
- npc.broadcastPacket(_arrivalMessage);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.THE_AIRSHIP_HAS_BEEN_SUMMONED_IT_WILL_AUTOMATICALLY_DEPART_IN_5_MINUTES);
}
else
{
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/32607.htm b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/32607.htm
index 55bf118549..0f142d19a4 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/32607.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/32607.htm
@@ -1,6 +1,5 @@
-Airship Controller:
-You see a floating piece of stone filled with a mysterious power. The green light is flashing, so there doesn't appear to be anything wrong with its function.
-Using this should allow you to board the Airship headed for the continent of Gracia.
-
-
+Flight Device:
+A floating shard of powered stone. The steady blue light appears to mean the device in functioning within normal limits.
+This device grants you control of the airship.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
index d69e3a387a..a807273360 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/AirShipGludioGracia/AirShipGludioGracia.java
@@ -29,7 +29,6 @@ import com.l2jmobius.gameserver.model.actor.instance.L2PcInstance;
import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
/**
* @author DS
@@ -129,7 +128,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable
}
if (_atcGludio != null)
{
- _atcGludio.broadcastPacket(new NpcSay(_atcGludio.getObjectId(), ChatType.NPC_SHOUT, _atcGludio.getId(), npcString));
+ _atcGludio.broadcastSay(ChatType.NPC_SHOUT, npcString);
}
}
@@ -142,7 +141,7 @@ public final class AirShipGludioGracia extends Quest implements Runnable
}
if (_atcGracia != null)
{
- _atcGracia.broadcastPacket(new NpcSay(_atcGracia.getObjectId(), ChatType.NPC_SHOUT, _atcGracia.getId(), npcStringId));
+ _atcGracia.broadcastSay(ChatType.NPC_SHOUT, npcStringId);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusNorthController/32606.htm b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusNorthController/32606.htm
index a1e7394940..7b6523736c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusNorthController/32606.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusNorthController/32606.htm
@@ -1,8 +1,9 @@
-Airship Controller:
-You see a floating piece of stone filled with a mysterious power. The green light is flashing, so there doesn't appear to be anything wrong with its function.
-By manipulating this, you should be able to control the Airship.
-
-
-
+Flight Device:
+A floating fragment of stone hovers in front of you, glowing in a pale blue light. It appears to be functioning and undamaged.
+You have gained access to the flight controls.
+You can only go to the Seed through a Seed Teleport Device.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusSouthController/32517.htm b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusSouthController/32517.htm
index f09666fb95..7070dd4d6a 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusSouthController/32517.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/Gracia/vehicles/KeucereusSouthController/32517.htm
@@ -1,8 +1,9 @@
-Airship Controller:
-You see a floating piece of stone filled with a mysterious power. The green light is flashing, so there doesn't appear to be anything wrong with its function.
-By manipulating this, you should be able to control the Airship.
-
-
-
+Flight Device:
+A floating fragment of stone hovers in front of you, glowing in a pale blue light. It appears to be functioning and undamaged.
+You have gained access to the flight controls.
+You can only go to the Seed through a Seed Teleport Device.
+
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/PrimevalIsle/PrimevalIsle.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/PrimevalIsle/PrimevalIsle.java
index 86cd2b95f3..5adb2b8a77 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/PrimevalIsle/PrimevalIsle.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/PrimevalIsle/PrimevalIsle.java
@@ -302,7 +302,7 @@ public final class PrimevalIsle extends AbstractNpcAI
if (npc.isScriptValue(0))
{
npc.setScriptValue(1);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, "?");
+ npc.broadcastSay(ChatType.NPC_GENERAL, "?");
((L2Attackable) npc).clearAggroList();
startQuestTimer("TREX_ATTACK", 6000, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumDrill.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumDrill.java
index d273aba364..0db2d26852 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumDrill.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumDrill.java
@@ -241,7 +241,7 @@ public final class SelMahumDrill extends AbstractNpcAI
{
if (getRandom(4) < 1)
{
- broadcastNpcSay(receiver, ChatType.NPC_GENERAL, SOLDIER_FSTRINGS[getRandom(2)]);
+ receiver.broadcastSay(ChatType.NPC_GENERAL, SOLDIER_FSTRINGS[getRandom(2)]);
}
if (receiver.canBeAttacked())
{
@@ -259,7 +259,7 @@ public final class SelMahumDrill extends AbstractNpcAI
{
if (Util.contains(MAHUM_CHIEFS, receiver.getId()))
{
- broadcastNpcSay(receiver, ChatType.NPC_GENERAL, CHIEF_FSTRINGS[getRandom(2)]);
+ receiver.broadcastSay(ChatType.NPC_GENERAL, CHIEF_FSTRINGS[getRandom(2)]);
}
break;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumSquad.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumSquad.java
index b03883a4a4..cc464564d0 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumSquad.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/SelMahumTrainingGrounds/SelMahumSquad.java
@@ -228,7 +228,7 @@ public final class SelMahumSquad extends AbstractNpcAI
final L2Npc stove = addSpawn(STOVE, receiver.getX(), receiver.getY(), receiver.getZ() + 100, 0, false, 0);
stove.setSummoner(receiver);
startQuestTimer("notify_dinner", 2000, receiver, null); // @SCE_DINNER_EAT
- broadcastNpcSay(sender, ChatType.NPC_GENERAL, CHEF_FSTRINGS[getRandom(2)], 1250);
+ sender.broadcastSay(ChatType.NPC_GENERAL, CHEF_FSTRINGS[getRandom(2)], 1250);
}
break;
}
@@ -273,7 +273,7 @@ public final class SelMahumSquad extends AbstractNpcAI
receiver.setIsNoRndWalk(true); // Moving to fire - i_ai0 = 1
receiver.getVariables().set("BUSY_STATE", 1); // Eating - i_ai3 = 1
receiver.setIsRunning(true);
- broadcastNpcSay(receiver, ChatType.NPC_GENERAL, (getRandom(3) < 1) ? NpcStringId.LOOKS_DELICIOUS : NpcStringId.LET_S_GO_EAT);
+ receiver.broadcastSay(ChatType.NPC_GENERAL, (getRandom(3) < 1) ? NpcStringId.LOOKS_DELICIOUS : NpcStringId.LET_S_GO_EAT);
final Location loc = sender.getPointInRange(100, 200);
loc.setHeading(receiver.getHeading());
receiver.stopMove(null);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Apprentice/Apprentice.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Apprentice/Apprentice.java
index 00e49ed3ea..37d7eb5071 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Apprentice/Apprentice.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Apprentice/Apprentice.java
@@ -55,12 +55,12 @@ public final class Apprentice extends AbstractNpcAI
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_T_RIDE_A_KUKURI_NOW);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_CAN_T_RIDE_A_KUKURI_NOW);
}
}
else if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TRY_RIDING_A_KUKURI, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.TRY_RIDING_A_KUKURI, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Banette.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Banette.java
index 51d6505546..e9cb74c836 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Banette.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Banette.java
@@ -50,7 +50,7 @@ public final class Banette extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, BANETTE_SHOUT[getRandom(3)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, BANETTE_SHOUT[getRandom(3)], 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Bink.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Bink.java
index 05a34a23db..af0b236943 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Bink.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Bink.java
@@ -43,7 +43,7 @@ public final class Bink extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.TALKING_ISLAND_VILLAGE_IS_REALLY_BEAUTIFUL, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.TALKING_ISLAND_VILLAGE_IS_REALLY_BEAUTIFUL, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Devno.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Devno.java
index c399c05d2d..a6e525a6bf 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Devno.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Devno.java
@@ -64,7 +64,7 @@ public final class Devno extends AbstractNpcAI
{
if (event.equalsIgnoreCase("npc_move") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, DEVNO_SHOUT[getRandom(3)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, DEVNO_SHOUT[getRandom(3)], 1000);
if (getRandom(100) > 40)
{
addMoveToDesire(npc, DEVNO_LOC[getRandom(10)], 0);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Eleve.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Eleve.java
index 2c11ec7ed1..dff13fa92f 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Eleve.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Eleve.java
@@ -63,7 +63,7 @@ public final class Eleve extends AbstractNpcAI
{
if (event.equalsIgnoreCase("npc_move") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELEVE_SHOUT[getRandom(2)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, ELEVE_SHOUT[getRandom(2)], 1000);
if (getRandom(100) > 40)
{
addMoveToDesire(npc, ELEVE_LOC[getRandom(10)], 0);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Gagabu.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Gagabu.java
index 41af084a9f..6168d23995 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Gagabu.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Gagabu.java
@@ -49,7 +49,7 @@ public final class Gagabu extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, GAGABU_SHOUT[getRandom(2)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, GAGABU_SHOUT[getRandom(2)], 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Heymond.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Heymond.java
index e3ce06f8d7..d402245239 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Heymond.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Heymond.java
@@ -50,7 +50,7 @@ public final class Heymond extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, HEYMOND_SHOUT[getRandom(3)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, HEYMOND_SHOUT[getRandom(3)], 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Karonf.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Karonf.java
index 766ecd84ba..5feda2b8f5 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Karonf.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Karonf.java
@@ -65,12 +65,12 @@ public final class Karonf extends AbstractNpcAI
{
if (getRandom(100) > 40)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, KARONF_SHOUT[getRandom(2)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, KARONF_SHOUT[getRandom(2)], 1000);
addMoveToDesire(npc, KARONF_LOC[getRandom(10)], 0);
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, KARONF_SHOUT[getRandom(2)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, KARONF_SHOUT[getRandom(2)]);
}
}
return null;
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Lumi.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Lumi.java
index a0f5fafa2f..5668a1405a 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Lumi.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Lumi.java
@@ -50,7 +50,7 @@ public final class Lumi extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, LUMI_SHOUT[getRandom(3)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, LUMI_SHOUT[getRandom(3)], 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mahram.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mahram.java
index b82df3da46..d04ea3670b 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mahram.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mahram.java
@@ -43,7 +43,7 @@ public final class Mahram extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.ALCHEMY_IS_A_SCIENCE_AND_AN_ART, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ALCHEMY_IS_A_SCIENCE_AND_AN_ART, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mai.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mai.java
index c50592ef36..af8b8cef6c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mai.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Mai.java
@@ -43,7 +43,7 @@ public final class Mai extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.EVERY_RACE_BUILT_A_PIECE_OF_THIS_VILLAGE, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.EVERY_RACE_BUILT_A_PIECE_OF_THIS_VILLAGE, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/MarinSmith.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/MarinSmith.java
index ad38878319..22925c508c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/MarinSmith.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/MarinSmith.java
@@ -43,7 +43,7 @@ public final class MarinSmith extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HMM_IS_THIS_STILL_A_DECENT_WEAPON, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HMM_IS_THIS_STILL_A_DECENT_WEAPON, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Milia.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Milia.java
index 469af21d75..15ad61c6fa 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Milia.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Milia.java
@@ -52,7 +52,7 @@ public final class Milia extends AbstractNpcAI
}
else if (event.equals("TEXT_SPAM") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.SPEAK_WITH_ME_ABOUT_TRAVELING_AROUND_ADEN, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.SPEAK_WITH_ME_ABOUT_TRAVELING_AROUND_ADEN, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Oris.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Oris.java
index a959d5cb3f..602344d083 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Oris.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Oris.java
@@ -43,7 +43,7 @@ public final class Oris extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_HAVEN_T_FELT_THIS_GOOD_IN_AGES, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_HAVEN_T_FELT_THIS_GOOD_IN_AGES, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Pantheon/Pantheon.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Pantheon/Pantheon.java
index e010413b50..d18231b22b 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Pantheon/Pantheon.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Pantheon/Pantheon.java
@@ -74,7 +74,7 @@ public final class Pantheon extends AbstractNpcAI
{
if (npc != null)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IS_IT_BETTER_TO_END_DESTINY_OR_START_DESTINY);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IS_IT_BETTER_TO_END_DESTINY_OR_START_DESTINY);
}
break;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Shannon.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Shannon.java
index 15f74d7439..8de8079eb2 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Shannon.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Shannon.java
@@ -43,7 +43,7 @@ public final class Shannon extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LOOK_AT_ALL_THE_NEWBIES_HA_HA_HA, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LOOK_AT_ALL_THE_NEWBIES_HA_HA_HA, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Sodian.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Sodian.java
index 93facc7695..c2c98a39da 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Sodian.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Sodian.java
@@ -49,7 +49,7 @@ public final class Sodian extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, SODIAN_SHOUT[getRandom(2)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, SODIAN_SHOUT[getRandom(2)], 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Stiller.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Stiller.java
index 7269e421e5..f124fae34a 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Stiller.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Stiller.java
@@ -49,7 +49,7 @@ public final class Stiller extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, STILLER_SHOUT[getRandom(2)], 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, STILLER_SHOUT[getRandom(2)], 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Theodore.java b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Theodore.java
index 5166ad9890..6519383f4b 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Theodore.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/ai/zones/TalkingIsland/Theodore.java
@@ -43,7 +43,7 @@ public final class Theodore extends AbstractNpcAI
{
if (event.equals("SPAM_TEXT") && (npc != null))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.AND_NOW_YOUR_JOURNEY_BEGINS, 1000);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.AND_NOW_YOUR_JOURNEY_BEGINS, 1000);
}
return super.onAdvEvent(event, npc, player);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java b/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java
index d7287e8331..55081a85a2 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/DevastatedCastle/DevastatedCastle.java
@@ -58,11 +58,11 @@ public final class DevastatedCastle extends ClanHallSiegeEngine
{
if (npc.getId() == MIKHAIL)
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.GLORY_TO_ADEN_THE_KINGDOM_OF_THE_LION_GLORY_TO_SIR_GUSTAV_OUR_IMMORTAL_LORD);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.GLORY_TO_ADEN_THE_KINGDOM_OF_THE_LION_GLORY_TO_SIR_GUSTAV_OUR_IMMORTAL_LORD);
}
else if (npc.getId() == DIETRICH)
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SOLDIERS_OF_GUSTAV_GO_FORTH_AND_DESTROY_THE_INVADERS);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SOLDIERS_OF_GUSTAV_GO_FORTH_AND_DESTROY_THE_INVADERS);
}
return null;
}
@@ -94,7 +94,7 @@ public final class DevastatedCastle extends ClanHallSiegeEngine
if ((npc.getCurrentHp() < GUSTAV_TRIGGER_HP) && (npc.getAI().getIntention() != CtrlIntention.AI_INTENTION_CAST))
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THIS_IS_UNBELIEVABLE_HAVE_I_REALLY_BEEN_DEFEATED_I_SHALL_RETURN_AND_TAKE_YOUR_HEAD);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THIS_IS_UNBELIEVABLE_HAVE_I_REALLY_BEEN_DEFEATED_I_SHALL_RETURN_AND_TAKE_YOUR_HEAD);
npc.getAI().setIntention(CtrlIntention.AI_INTENTION_CAST, SkillData.getInstance().getSkill(4235, 1), npc);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java b/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java
index 32b33c033f..cda51a4261 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/FortressOfTheDead/FortressOfTheDead.java
@@ -61,15 +61,15 @@ public final class FortressOfTheDead extends ClanHallSiegeEngine
{
if (npc.getId() == LIDIA)
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.HMM_THOSE_WHO_ARE_NOT_OF_THE_BLOODLINE_ARE_COMING_THIS_WAY_TO_TAKE_OVER_THE_CASTLE_HUMPH_THE_BITTER_GRUDGES_OF_THE_DEAD_YOU_MUST_NOT_MAKE_LIGHT_OF_THEIR_POWER);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.HMM_THOSE_WHO_ARE_NOT_OF_THE_BLOODLINE_ARE_COMING_THIS_WAY_TO_TAKE_OVER_THE_CASTLE_HUMPH_THE_BITTER_GRUDGES_OF_THE_DEAD_YOU_MUST_NOT_MAKE_LIGHT_OF_THEIR_POWER);
}
else if (npc.getId() == ALFRED)
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.HEH_HEH_I_SEE_THAT_THE_FEAST_HAS_BEGUN_BE_WARY_THE_CURSE_OF_THE_HELLMANN_FAMILY_HAS_POISONED_THIS_LAND);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.HEH_HEH_I_SEE_THAT_THE_FEAST_HAS_BEGUN_BE_WARY_THE_CURSE_OF_THE_HELLMANN_FAMILY_HAS_POISONED_THIS_LAND);
}
else if (npc.getId() == GISELLE)
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.ARISE_MY_FAITHFUL_SERVANTS_YOU_MY_PEOPLE_WHO_HAVE_INHERITED_THE_BLOOD_IT_IS_THE_CALLING_OF_MY_DAUGHTER_THE_FEAST_OF_BLOOD_WILL_NOW_BEGIN);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.ARISE_MY_FAITHFUL_SERVANTS_YOU_MY_PEOPLE_WHO_HAVE_INHERITED_THE_BLOOD_IT_IS_THE_CALLING_OF_MY_DAUGHTER_THE_FEAST_OF_BLOOD_WILL_NOW_BEGIN);
}
return null;
}
@@ -114,11 +114,11 @@ public final class FortressOfTheDead extends ClanHallSiegeEngine
if ((npcId == ALFRED) || (npcId == GISELLE))
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.AARGH_IF_I_DIE_THEN_THE_MAGIC_FORCE_FIELD_OF_BLOOD_WILL);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.AARGH_IF_I_DIE_THEN_THE_MAGIC_FORCE_FIELD_OF_BLOOD_WILL);
}
if (npcId == LIDIA)
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.GRARR_FOR_THE_NEXT_2_MINUTES_OR_SO_THE_GAME_ARENA_ARE_WILL_BE_CLEANED_THROW_ANY_ITEMS_YOU_DON_T_NEED_TO_THE_FLOOR_NOW);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.GRARR_FOR_THE_NEXT_2_MINUTES_OR_SO_THE_GAME_ARENA_ARE_WILL_BE_CLEANED_THROW_ANY_ITEMS_YOU_DON_T_NEED_TO_THE_FLOOR_NOW);
_missionAccomplished = true;
synchronized (this)
{
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java b/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
index f19c58b0e0..35291ef3ab 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/conquerablehalls/RainbowSpringsChateau/RainbowSpringsChateau.java
@@ -24,8 +24,10 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
+import java.util.Set;
import java.util.concurrent.ScheduledFuture;
import com.l2jmobius.Config;
@@ -53,7 +55,6 @@ import com.l2jmobius.gameserver.model.entity.clanhall.SiegeStatus;
import com.l2jmobius.gameserver.model.items.L2Item;
import com.l2jmobius.gameserver.model.items.instance.L2ItemInstance;
import com.l2jmobius.gameserver.model.skills.Skill;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.util.Broadcast;
import com.l2jmobius.gameserver.util.Util;
@@ -262,7 +263,7 @@ public final class RainbowSpringsChateau extends ClanHallSiegeEngine
static Map _warDecreesCount = new HashMap<>();
static List _acceptedClans = new ArrayList<>(4);
- private static Map> _usedTextPassages = new HashMap<>();
+ private static Map> _usedTextPassages = new HashMap<>();
private static Map _pendingItemToGet = new HashMap<>();
static SiegableHall _rainbow;
@@ -536,7 +537,7 @@ public final class RainbowSpringsChateau extends ClanHallSiegeEngine
if (_usedTextPassages.containsKey(passage))
{
- final ArrayList list = _usedTextPassages.get(passage);
+ Set list = _usedTextPassages.get(passage);
if (list.contains(clan))
{
@@ -790,22 +791,24 @@ public final class RainbowSpringsChateau extends ClanHallSiegeEngine
private static void shoutRandomText(L2Npc npc)
{
- final int length = _textPassages.length;
+ int length = _textPassages.length;
if (_usedTextPassages.size() >= length)
{
return;
}
- final int randomPos = getRandom(length);
- if (_usedTextPassages.containsKey(_textPassages[randomPos]))
+ int randomPos = getRandom(length);
+ String message = _textPassages[randomPos];
+
+ if (_usedTextPassages.containsKey(message))
{
shoutRandomText(npc);
}
else
{
- _usedTextPassages.put(_textPassages[randomPos], new ArrayList());
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_SHOUT, npc.getId(), _textPassages[randomPos]));
+ _usedTextPassages.put(message, new HashSet<>());
+ npc.broadcastSay(ChatType.NPC_SHOUT, message);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/custom/FactionManager/FactionManager.java b/L2J_Mobius_Test/dist/game/data/scripts/custom/FactionManager/FactionManager.java
index 1002c24b0d..76085dde72 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/custom/FactionManager/FactionManager.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/custom/FactionManager/FactionManager.java
@@ -117,7 +117,7 @@ public final class FactionManager extends AbstractNpcAI
{
if (npc != null)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, TEXTS[getRandom(TEXTS.length)]);
}
break;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java
index ff5d24b244..efd2eccd0a 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/ChambersOfDelusion/Chamber.java
@@ -39,7 +39,6 @@ import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.Earthquake;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import com.l2jmobius.gameserver.util.Util;
@@ -335,7 +334,7 @@ abstract class Chamber extends AbstractInstance
{
if (npc.getId() == ROOM_GATEKEEPER_LAST)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.MINUTES_ARE_ADDED_TO_THE_REMAINING_TIME_IN_THE_INSTANT_ZONE));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.MINUTES_ARE_ADDED_TO_THE_REMAINING_TIME_IN_THE_INSTANT_ZONE);
}
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
index 80580ce239..95845ed94f 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/DarkCloudMansion/DarkCloudMansion.java
@@ -33,7 +33,6 @@ import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
import instances.AbstractInstance;
@@ -675,11 +674,11 @@ public final class DarkCloudMansion extends AbstractInstance
FifthRoom.npcList.add(thisnpc);
if ((temp[idx] == 1) && (getRandom(100) < 95))
{
- thisnpc.npc.broadcastPacket(new NpcSay(thisnpc.npc.getObjectId(), ChatType.NPC_GENERAL, thisnpc.npc.getId(), _spawnChat[getRandom(_spawnChat.length)]));
+ thisnpc.npc.broadcastSay(ChatType.NPC_GENERAL, _spawnChat[getRandom(_spawnChat.length)]);
}
else if ((temp[idx] != 1) && (getRandom(100) < 67))
{
- thisnpc.npc.broadcastPacket(new NpcSay(thisnpc.npc.getObjectId(), ChatType.NPC_GENERAL, thisnpc.npc.getId(), _spawnChat[getRandom(_spawnChat.length)]));
+ thisnpc.npc.broadcastSay(ChatType.NPC_GENERAL, _spawnChat[getRandom(_spawnChat.length)]);
}
idx++;
}
@@ -762,14 +761,14 @@ public final class DarkCloudMansion extends AbstractInstance
mob.count = 1;
if (mob.status == 1)
{
- mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _successChat[getRandom(_successChat.length)]));
+ mob.npc.broadcastSay(ChatType.NPC_GENERAL, _successChat[getRandom(_successChat.length)]);
FifthRoom.founded += 1;
startQuestTimer("decayMe", 1500, npc, player);
}
else
{
FifthRoom.reset = 1;
- mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _faildChat[getRandom(_faildChat.length)]));
+ mob.npc.broadcastSay(ChatType.NPC_GENERAL, _faildChat[getRandom(_faildChat.length)]);
startQuestTimer("decayChatBelethSamples", 4000, npc, player);
startQuestTimer("decayBelethSamples", 4500, npc, player);
}
@@ -928,7 +927,7 @@ public final class DarkCloudMansion extends AbstractInstance
{
if (mob.status == 1)
{
- mob.npc.broadcastPacket(new NpcSay(mob.npc.getObjectId(), ChatType.NPC_GENERAL, mob.npc.getId(), _decayChat[getRandom(_decayChat.length)]));
+ mob.npc.broadcastSay(ChatType.NPC_GENERAL, _decayChat[getRandom(_decayChat.length)]);
}
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
index 1c96444041..28585ebf45 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/DisciplesNecropolisPast/DisciplesNecropolisPast.java
@@ -233,12 +233,12 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
if (caster.isScriptValue(0))
{
- caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.YOU_SUCH_A_FOOL_THE_VICTORY_OVER_THIS_WAR_BELONGS_TO_SHILEN));
+ caster.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.YOU_SUCH_A_FOOL_THE_VICTORY_OVER_THIS_WAR_BELONGS_TO_SHILEN);
caster.setScriptValue(1);
}
else if (getRandom(100) < 10)
{
- caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), LILITH_SHOUT[getRandom(3)]));
+ caster.broadcastSay(ChatType.NPC_SHOUT, LILITH_SHOUT[getRandom(3)]);
}
}
}
@@ -252,10 +252,10 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
if (caster.isScriptValue(0))
{
- caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.FOR_THE_ETERNITY_OF_EINHASAD));
+ caster.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.FOR_THE_ETERNITY_OF_EINHASAD);
if (Util.checkIfInRange(2000, caster, player, true))
{
- player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_WHISPER, caster.getId(), NpcStringId.MY_POWER_S_WEAKENING_HURRY_AND_TURN_ON_THE_SEALING_DEVICE));
+ player.sendPacket(new NpcSay(caster, ChatType.NPC_WHISPER, NpcStringId.MY_POWER_S_WEAKENING_HURRY_AND_TURN_ON_THE_SEALING_DEVICE));
}
caster.setScriptValue(1);
}
@@ -265,28 +265,28 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
case 0:
{
- caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.DEAR_SHILLIEN_S_OFFSPRINGS_YOU_ARE_NOT_CAPABLE_OF_CONFRONTING_US));
+ caster.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.DEAR_SHILLIEN_S_OFFSPRINGS_YOU_ARE_NOT_CAPABLE_OF_CONFRONTING_US);
if (Util.checkIfInRange(2000, caster, player, true))
{
- player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_WHISPER, caster.getId(), NpcStringId.ALL_4_SEALING_DEVICES_MUST_BE_TURNED_ON));
+ player.sendPacket(new NpcSay(caster, ChatType.NPC_WHISPER, NpcStringId.ALL_4_SEALING_DEVICES_MUST_BE_TURNED_ON));
}
break;
}
case 1:
{
- caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.I_LL_SHOW_YOU_THE_REAL_POWER_OF_EINHASAD));
+ caster.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.I_LL_SHOW_YOU_THE_REAL_POWER_OF_EINHASAD);
if (Util.checkIfInRange(2000, caster, player, true))
{
- player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_WHISPER, caster.getId(), NpcStringId.LILITH_ATTACK_IS_GETTING_STRONGER_GO_AHEAD_AND_TURN_IT_ON));
+ player.sendPacket(new NpcSay(caster, ChatType.NPC_WHISPER, NpcStringId.LILITH_ATTACK_IS_GETTING_STRONGER_GO_AHEAD_AND_TURN_IT_ON));
}
break;
}
case 2:
{
- caster.broadcastPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_SHOUT, caster.getId(), NpcStringId.DEAR_MILITARY_FORCE_OF_LIGHT_GO_DESTROY_THE_OFFSPRINGS_OF_SHILLIEN));
+ caster.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.DEAR_MILITARY_FORCE_OF_LIGHT_GO_DESTROY_THE_OFFSPRINGS_OF_SHILLIEN);
if (Util.checkIfInRange(2000, caster, player, true))
{
- player.sendPacket(new NpcSay(caster.getObjectId(), ChatType.NPC_WHISPER, caster.getId(), NpcStringId.DEAR_S1_GIVE_ME_MORE_STRENGTH).addStringParameter(player.getName()));
+ player.sendPacket(new NpcSay(caster, ChatType.NPC_WHISPER, NpcStringId.DEAR_S1_GIVE_ME_MORE_STRENGTH).addStringParameter(player.getName()));
}
break;
}
@@ -312,7 +312,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
if (npc.isScriptValue(0))
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THIS_PLACE_ONCE_BELONGED_TO_LORD_SHILEN));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THIS_PLACE_ONCE_BELONGED_TO_LORD_SHILEN);
npc.setScriptValue(1);
}
break;
@@ -322,7 +322,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
if (npc.isScriptValue(0))
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WHO_DARES_ENTER_THIS_PLACE));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHO_DARES_ENTER_THIS_PLACE);
npc.setScriptValue(1);
}
break;
@@ -332,7 +332,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
if (npc.isScriptValue(0))
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THOSE_WHO_ARE_AFRAID_SHOULD_GET_AWAY_AND_THOSE_WHO_ARE_BRAVE_SHOULD_FIGHT));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THOSE_WHO_ARE_AFRAID_SHOULD_GET_AWAY_AND_THOSE_WHO_ARE_BRAVE_SHOULD_FIGHT);
npc.setScriptValue(1);
}
break;
@@ -341,7 +341,7 @@ public final class DisciplesNecropolisPast extends AbstractInstance
{
if (npc.isScriptValue(0))
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.LEAVE_NOW));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LEAVE_NOW);
npc.setScriptValue(1);
}
break;
@@ -392,19 +392,19 @@ public final class DisciplesNecropolisPast extends AbstractInstance
case LILIM_MAGUS:
case LILIM_GREAT_MAGUS:
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.LORD_SHILEN_SOME_DAY_YOU_WILL_ACCOMPLISH_THIS_MISSION));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LORD_SHILEN_SOME_DAY_YOU_WILL_ACCOMPLISH_THIS_MISSION);
break;
}
case LILIM_KNIGHT_ERRANT:
case LILIM_KNIGHT:
case LILIM_GUARD_KNIGHT:
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WHY_ARE_YOU_GETTING_IN_OUR_WAY));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHY_ARE_YOU_GETTING_IN_OUR_WAY);
break;
}
case LILIM_SLAYER:
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.FOR_SHILEN));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.FOR_SHILEN);
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java
index c4a1798480..e6849906db 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/HarnakUndergroundRuins/HarnakUndergroundRuins.java
@@ -151,42 +151,42 @@ public final class HarnakUndergroundRuins extends AbstractInstance
}
case "razkan_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.COME_ATTACK_ME_IF_YOU_DARE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COME_ATTACK_ME_IF_YOU_DARE);
break;
}
case "bathus_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.IT_S_THE_END_FOR_YOU_TRAITOR);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.IT_S_THE_END_FOR_YOU_TRAITOR);
break;
}
case "bamonti_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
break;
}
case "carcass_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_WANT_TO_HEAR_YOU_CRY);
break;
}
case "khan_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOU_LL_HAVE_TO_KILL_US_FIRST);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_LL_HAVE_TO_KILL_US_FIRST);
break;
}
case "seknus_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LETS_SEE_WHAT_YOU_ARE_MADE_OF);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LETS_SEE_WHAT_YOU_ARE_MADE_OF);
break;
}
case "lotus_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.REPENT_AND_YOUR_DEATH_WILL_BE_QUICK);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.REPENT_AND_YOUR_DEATH_WILL_BE_QUICK);
break;
}
case "ele_say":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.DIE_TRAITOR);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.DIE_TRAITOR);
break;
}
case "spawn_npc1":
@@ -202,7 +202,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
{
world.currentNpc = RAKZAN;
razkan.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(razkan, ChatType.NPC_GENERAL, NpcStringId.ARE_YOU_AGAINST_THE_WILL_OF_LIGHT);
+ razkan.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ARE_YOU_AGAINST_THE_WILL_OF_LIGHT);
startQuestTimer("razkan_say", 1600, razkan, player);
}
world.setStatus(1);
@@ -399,7 +399,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
spawnedNpcs = spawnGroup("seal", world.getInstanceId());
for (L2Npc spawnedNpc : spawnedNpcs)
{
- broadcastNpcSay(spawnedNpc, ChatType.NPC_GENERAL, NpcStringId.DISABLE_DEVICE_WILL_GO_OUT_OF_CONTROL_IN_1_MINUTE);
+ spawnedNpc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.DISABLE_DEVICE_WILL_GO_OUT_OF_CONTROL_IN_1_MINUTE);
startQuestTimer("seal_say", 10000, spawnedNpc, player);
}
}
@@ -436,52 +436,52 @@ public final class HarnakUndergroundRuins extends AbstractInstance
{
case 0:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING41);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING41);
break;
}
case 1:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING42);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING42);
break;
}
case 2:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING43);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING43);
break;
}
case 3:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING44);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING44);
break;
}
case 4:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING45);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS_ARE_REMAINING45);
break;
}
case 5:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS);
break;
}
case 6:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS2);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS2);
break;
}
case 7:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS3);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS3);
break;
}
case 8:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECONDS4);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECONDS4);
break;
}
case 9:
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.SECOND);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.SECOND);
break;
}
}
@@ -512,8 +512,8 @@ public final class HarnakUndergroundRuins extends AbstractInstance
{
showOnScreenMsg(player, NpcStringId.I_HERMUNCUS_GIVE_MY_POWER_TO_THOSE_WHO_FIGHT_FOR_ME, ExShowScreenMessage.TOP_CENTER, 5000);
- broadcastNpcSay(npc, ChatType.WHISPER, NpcStringId.RECEIVE_THIS_POWER_FORM_THE_ANCIENT_GIANT);
- broadcastNpcSay(npc, ChatType.WHISPER, NpcStringId.USE_THIS_NEW_POWER_WHEN_THE_TIME_IS_RIGHT);
+ npc.broadcastSay(ChatType.WHISPER, NpcStringId.RECEIVE_THIS_POWER_FORM_THE_ANCIENT_GIANT);
+ npc.broadcastSay(ChatType.WHISPER, NpcStringId.USE_THIS_NEW_POWER_WHEN_THE_TIME_IS_RIGHT);
startQuestTimer("message4", 3000, npc, player);
}
@@ -564,7 +564,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (bathius != null)
{
bathius.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(bathius, ChatType.NPC_GENERAL, NpcStringId.ARE_YOU_PLANNING_TO_BETRAY_THE_GODS_AND_FOLLOW_A_GIANT);
+ bathius.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ARE_YOU_PLANNING_TO_BETRAY_THE_GODS_AND_FOLLOW_A_GIANT);
startQuestTimer("bathus_say", 2600, bathius, killer);
world.currentNpc = KRAKIA_BATHUS;
}
@@ -576,7 +576,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (bamonti != null)
{
bamonti.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(bamonti, ChatType.NPC_GENERAL, NpcStringId.HAHA);
+ bamonti.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HAHA);
startQuestTimer("bamonti_say", 2600, bamonti, killer);
world.currentNpc = BAMONTI;
}
@@ -588,7 +588,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (carcass != null)
{
carcass.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(carcass, ChatType.NPC_GENERAL, NpcStringId.HAHA);
+ carcass.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HAHA);
startQuestTimer("carcass_say", 2600, carcass, killer);
world.currentNpc = KRAKIA_CARCASS;
}
@@ -600,7 +600,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (khan != null)
{
khan.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(khan, ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_NOT_FREE_HERMUNCUS);
+ khan.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_NOT_FREE_HERMUNCUS);
startQuestTimer("khan_say", 2600, khan, killer);
world.currentNpc = WEISS_KHAN;
}
@@ -612,7 +612,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (seknus != null)
{
seknus.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(seknus, ChatType.NPC_GENERAL, NpcStringId.MORTAL);
+ seknus.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.MORTAL);
startQuestTimer("seknus_say", 2600, seknus, killer);
world.currentNpc = SEKNUS;
}
@@ -624,7 +624,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (lotus != null)
{
lotus.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(lotus, ChatType.NPC_GENERAL, NpcStringId.TRYING_TO_FREE_HERMUNCUS);
+ lotus.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.TRYING_TO_FREE_HERMUNCUS);
startQuestTimer("lotus_say", 2600, lotus, killer);
world.currentNpc = KRAKIA_LOTUS;
}
@@ -636,7 +636,7 @@ public final class HarnakUndergroundRuins extends AbstractInstance
if (ele != null)
{
ele.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, NPC_ROOM1_LOC);
- broadcastNpcSay(ele, ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_NEVER_BREAK_THE_SEAL);
+ ele.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_WILL_NEVER_BREAK_THE_SEAL);
startQuestTimer("ele_say", 2600, ele, killer);
world.currentNpc = WEISS_ELE;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java
index 411e48e96c..1c31da02ac 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastle/IceQueensCastle.java
@@ -100,7 +100,7 @@ public final class IceQueensCastle extends AbstractInstance
}
case "TIMER_BLIZZARD":
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.I_CAN_NO_LONGER_STAND_BY);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_CAN_NO_LONGER_STAND_BY);
npc.stopMove(null);
npc.setTarget(player);
npc.doCast(ETHERNAL_BLIZZARD.getSkill());
@@ -148,7 +148,7 @@ public final class IceQueensCastle extends AbstractInstance
startQuestTimer("ATTACK_KNIGHT", 5000, npc, null);
}
}
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.S1_MAY_THE_PROTECTION_OF_THE_GODS_BE_UPON_YOU, creature.getName());
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_MAY_THE_PROTECTION_OF_THE_GODS_BE_UPON_YOU, creature.getName());
}
return super.onSeeCreature(npc, creature, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java
index 425ca671ef..48a3815a81 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/IceQueensCastleBattle/IceQueensCastleBattle.java
@@ -686,22 +686,22 @@ public final class IceQueensCastleBattle extends AbstractInstance
{
case 0:
{
- broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.ARCHER_GIVE_YOUR_BREATH_FOR_THE_INTRUDER);
+ npc.broadcastSay(ChatType.SHOUT, NpcStringId.ARCHER_GIVE_YOUR_BREATH_FOR_THE_INTRUDER);
break;
}
case 1:
{
- broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.MY_KNIGHTS_SHOW_YOUR_LOYALTY);
+ npc.broadcastSay(ChatType.SHOUT, NpcStringId.MY_KNIGHTS_SHOW_YOUR_LOYALTY);
break;
}
case 2:
{
- broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.I_CAN_TAKE_IT_NO_LONGER);
+ npc.broadcastSay(ChatType.SHOUT, NpcStringId.I_CAN_TAKE_IT_NO_LONGER);
break;
}
case 3:
{
- broadcastNpcSay(npc, ChatType.SHOUT, NpcStringId.ARCHER_HEED_MY_CALL);
+ npc.broadcastSay(ChatType.SHOUT, NpcStringId.ARCHER_HEED_MY_CALL);
for (int i = 0; i < 3; i++)
{
final L2Attackable breath = (L2Attackable) addSpawn(BREATH, npc.getLocation(), true, 0, false, world.getInstanceId());
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/LabyrinthOfBelis/LabyrinthOfBelis.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/LabyrinthOfBelis/LabyrinthOfBelis.java
index 6b190041ac..01e95eb528 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/LabyrinthOfBelis/LabyrinthOfBelis.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/LabyrinthOfBelis/LabyrinthOfBelis.java
@@ -128,7 +128,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
if (world.getStatus() == 1)
{
showOnScreenMsg(player, NpcStringId.LET_ME_KNOW_WHEN_YOU_RE_ALL_READY, ExShowScreenMessage.TOP_CENTER, 10000);
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.LET_ME_KNOW_WHEN_YOU_RE_ALL_READY, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LET_ME_KNOW_WHEN_YOU_RE_ALL_READY, 1000);
startQuestTimer("officer_wait_1", 5000, world.terian, player);
}
break;
@@ -191,7 +191,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
{
world.terian.setHeading(world.terian.getHeading() + 32500);
world.terian.broadcastInfo();
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.HEY_YOU_RE_NOT_ALL_BAD_LET_ME_KNOW_WHEN_YOU_RE_READY, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HEY_YOU_RE_NOT_ALL_BAD_LET_ME_KNOW_WHEN_YOU_RE_READY, 1000);
world.setStatus(4);
}
break;
@@ -215,7 +215,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
{
openDoor(DOOR_5, player.getInstanceId());
world.assistPlayer = false;
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.COME_ON_ONTO_THE_NEXT_PLACE, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COME_ON_ONTO_THE_NEXT_PLACE, 1000);
startQuestTimer("officer_goto_3", 5000, world.terian, player);
return "33215-02.html";
}
@@ -250,7 +250,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
{
world.terian.setHeading(world.terian.getHeading() + 32500);
world.terian.broadcastInfo();
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.READY_LET_ME_KNOW, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.READY_LET_ME_KNOW, 1000);
world.setStatus(6);
}
break;
@@ -266,13 +266,13 @@ public final class LabyrinthOfBelis extends AbstractInstance
}
openDoor(DOOR_6, player.getInstanceId());
world.terian.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, TERIAN_ROOM_3_INSIDE);
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.DON_T_COME_BACK_HERE, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.DON_T_COME_BACK_HERE, 1000);
startQuestTimer("room_3_spawns", 10000, world.terian, player);
return null;
}
case "room_3_spawns":
{
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.DON_T_COME_BACK_HERE, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.DON_T_COME_BACK_HERE, 1000);
if (getRandomBoolean())
{
showOnScreenMsg(player, NpcStringId.BEHIND_YOU_THE_ENEMY_IS_AMBUSHING_YOU, ExShowScreenMessage.TOP_CENTER, 10000);
@@ -312,7 +312,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
}
openDoor(DOOR_7, player.getInstanceId());
showOnScreenMsg(player, NpcStringId.ELECTRONIC_DEVICE_HAS_BEEN_DESTROYED, ExShowScreenMessage.TOP_CENTER, 7000);
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.DEVICE_DESTROYED_LET_S_GO_ONTO_THE_NEXT, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.DEVICE_DESTROYED_LET_S_GO_ONTO_THE_NEXT, 1000);
startQuestTimer("officer_goto_4", 1000, world.terian, player);
}
break;
@@ -343,7 +343,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
{
world.terian.setHeading(world.terian.getHeading() + 32500);
world.terian.broadcastInfo();
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.SOMETHING_OMINOUS_IN_THERE_I_HOPE_YOU_RE_REALLY_READY_FOR_THIS_LET_ME_KNOW, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.SOMETHING_OMINOUS_IN_THERE_I_HOPE_YOU_RE_REALLY_READY_FOR_THIS_LET_ME_KNOW, 1000);
world.setStatus(13);
}
break;
@@ -474,7 +474,7 @@ public final class LabyrinthOfBelis extends AbstractInstance
{
world.assistPlayer = false;
openDoor(DOOR_3, npc.getInstanceId());
- broadcastNpcSay(world.terian, ChatType.NPC_GENERAL, NpcStringId.ALL_RIGHT_LET_S_MOVE_OUT, 1000);
+ world.terian.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ALL_RIGHT_LET_S_MOVE_OUT, 1000);
startQuestTimer("officer_goto_2", 100, world.terian, killer);
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java
index 843f0fee50..bb05f81258 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/LibraryOfSages/LibraryOfSages.java
@@ -96,7 +96,7 @@ public final class LibraryOfSages extends AbstractInstance
{
npc.setIsRunning(true);
npc.getAI().startFollow(player);
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
startQuestTimer("FOLLOW", 10000, npc, player);
break;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java
index 96c500d2a7..36b427d8b8 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/MithrilMine/MithrilMine.java
@@ -116,7 +116,7 @@ public final class MithrilMine extends AbstractInstance
kegor.setWalking();
kegor.setTarget(player);
kegor.getAI().setIntention(CtrlIntention.AI_INTENTION_FOLLOW, player);
- broadcastNpcSay(kegor, ChatType.NPC_GENERAL, NpcStringId.I_CAN_FINALLY_TAKE_A_BREATHER_BY_THE_WAY_WHO_ARE_YOU_HMM_I_THINK_I_KNOW_WHO_SENT_YOU);
+ kegor.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.I_CAN_FINALLY_TAKE_A_BREATHER_BY_THE_WAY_WHO_ARE_YOU_HMM_I_THINK_I_KNOW_WHO_SENT_YOU);
}
}
InstanceManager.getInstance().getInstance(world.getInstanceId()).setDuration(3000);
@@ -159,7 +159,7 @@ public final class MithrilMine extends AbstractInstance
if (npc.getId() == KEGOR)
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HOW_COULD_I_FALL_IN_A_PLACE_LIKE_THIS);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HOW_COULD_I_FALL_IN_A_PLACE_LIKE_THIS);
InstanceManager.getInstance().getInstance(world.getInstanceId()).setDuration(1000);
}
else
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java
index b765c2e9d4..4342f02fcd 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/MonasteryOfSilence1/MonasteryOfSilence1.java
@@ -169,13 +169,13 @@ public final class MonasteryOfSilence1 extends AbstractInstance
npc.getAI().startFollow(player);
if (player.isInCombat())
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOUR_WORK_HERE_IS_DONE_SO_RETURN_TO_THE_CENTRAL_GUARDIAN);
npc.setTarget(player);
npc.doCast(BUFFS[getRandom(BUFFS.length)].getSkill());
}
else
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
+ npc.broadcastSay(ChatType.NPC_GENERAL, ELCADIA_DIALOGS[getRandom(ELCADIA_DIALOGS.length)]);
}
startQuestTimer("FOLLOW", 10000, npc, player);
break;
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/MuseumDungeon/MuseumDungeon.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/MuseumDungeon/MuseumDungeon.java
index 988a9a182d..37ccdab8ff 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/MuseumDungeon/MuseumDungeon.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/MuseumDungeon/MuseumDungeon.java
@@ -89,7 +89,7 @@ public final class MuseumDungeon extends AbstractInstance
if (world.toyron.calculateDistance(player.getTarget(), false, false) > 50)
{
world.toyron.getAI().setIntention(CtrlIntention.AI_INTENTION_MOVE_TO, player.getTarget().getLocation());
- broadcastNpcSay(world.toyron, ChatType.NPC_GENERAL, NpcStringId.ENOUGH_OF_THIS_COME_AT_ME);
+ world.toyron.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ENOUGH_OF_THIS_COME_AT_ME);
}
else if (world.toyron.getTarget() != player.getTarget())
{
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
index ec6cdb9481..e7ff81e445 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/PailakaSongOfIceAndFire/PailakaSongOfIceAndFire.java
@@ -85,7 +85,7 @@ public final class PailakaSongOfIceAndFire extends AbstractInstance
}
case "GARGOS_LAUGH":
{
- broadcastNpcSay(npc, ChatType.NPC_SHOUT, NpcStringId.OHH_OH_OH);
+ npc.broadcastSay(ChatType.NPC_SHOUT, NpcStringId.OHH_OH_OH);
break;
}
case "TELEPORT":
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java b/L2J_Mobius_Test/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
index 6c006f5e83..726f0124d3 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/instances/SanctumOftheLordsOfDawn/SanctumOftheLordsOfDawn.java
@@ -113,17 +113,17 @@ public final class SanctumOftheLordsOfDawn extends AbstractInstance
{
case GUARDS_OF_THE_DAWN:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.INTRUDER_PROTECT_THE_PRIESTS_OF_DAWN);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.INTRUDER_PROTECT_THE_PRIESTS_OF_DAWN);
break;
}
case GUARDS_OF_THE_DAWN_2:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.HOW_DARE_YOU_INTRUDE_WITH_THAT_TRANSFORMATION_GET_LOST);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HOW_DARE_YOU_INTRUDE_WITH_THAT_TRANSFORMATION_GET_LOST);
break;
}
case GUARDS_OF_THE_DAWN_3:
{
- broadcastNpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHO_ARE_YOU_A_NEW_FACE_LIKE_YOU_CAN_T_APPROACH_THIS_PLACE);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHO_ARE_YOU_A_NEW_FACE_LIKE_YOU_CAN_T_APPROACH_THIS_PLACE);
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java
index 0aaaca9775..031159b507 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00114_ResurrectionOfAnOldManager/Q00114_ResurrectionOfAnOldManager.java
@@ -26,7 +26,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q00121_PavelTheGiant.Q00121_PavelTheGiant;
@@ -233,7 +232,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
if ((golem == null) || ((golem != null) && golem.isDead()))
{
golem = (L2Attackable) addSpawn(GUARDIAN, 96977, -110625, -3280, 0, false, 0);
- golem.broadcastPacket(new NpcSay(golem.getObjectId(), ChatType.NPC_GENERAL, golem.getId(), NpcStringId.YOU_S1_YOU_ATTACKED_WENDY_PREPARE_TO_DIE).addStringParameter(player.getName()));
+ golem.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_S1_YOU_ATTACKED_WENDY_PREPARE_TO_DIE, player.getName());
addAttackDesire(golem, player);
qs.set("spawned", "1");
startQuestTimer("golem_despawn", 300000, null, player);
@@ -327,7 +326,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
case "golem_despawn":
{
qs.unset("spawned");
- golem.broadcastPacket(new NpcSay(golem.getObjectId(), ChatType.NPC_GENERAL, golem.getId(), NpcStringId.S1_YOUR_ENEMY_WAS_DRIVEN_OUT_I_WILL_NOW_WITHDRAW_AND_AWAIT_YOUR_NEXT_COMMAND).addStringParameter(player.getName()));
+ golem.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_YOUR_ENEMY_WAS_DRIVEN_OUT_I_WILL_NOW_WITHDRAW_AND_AWAIT_YOUR_NEXT_COMMAND, player.getName());
golem.deleteMe();
golem = null;
htmltext = null;
@@ -393,7 +392,7 @@ public class Q00114_ResurrectionOfAnOldManager extends Quest
if ((qs != null) && qs.isCond(10) && (qs.getInt("spawned") == 1))
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THIS_ENEMY_IS_FAR_TOO_POWERFUL_FOR_ME_TO_FIGHT_I_MUST_WITHDRAW));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THIS_ENEMY_IS_FAR_TOO_POWERFUL_FOR_ME_TO_FIGHT_I_MUST_WITHDRAW);
qs.setCond(11, true);
qs.unset("spawned");
cancelQuestTimers("golem_despawn");
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00193_SevenSignsDyingMessage/Q00193_SevenSignsDyingMessage.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00193_SevenSignsDyingMessage/Q00193_SevenSignsDyingMessage.java
index 1ab7cb8a3b..a4c1b84417 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00193_SevenSignsDyingMessage/Q00193_SevenSignsDyingMessage.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00193_SevenSignsDyingMessage/Q00193_SevenSignsDyingMessage.java
@@ -26,7 +26,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q00192_SevenSignsSeriesOfDoubt.Q00192_SevenSignsSeriesOfDoubt;
@@ -69,7 +68,7 @@ public final class Q00193_SevenSignsDyingMessage extends Quest
if (!npc.isDead())
{
isBusy = false;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE);
npc.deleteMe();
}
return super.onAdvEvent(event, npc, player);
@@ -157,12 +156,10 @@ public final class Q00193_SevenSignsDyingMessage extends Quest
if (qs.isCond(4))
{
isBusy = true;
- final NpcSay ns = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP);
- ns.addStringParameter(player.getName());
- npc.broadcastPacket(ns);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP, player.getName());
startQuestTimer("heal", 30000 - getRandom(20000), npc, player);
final L2MonsterInstance monster = (L2MonsterInstance) addSpawn(SHILENS_EVIL_THOUGHTS, 82425, 47232, -3216, 0, false, 0, false);
- monster.broadcastPacket(new NpcSay(monster.getObjectId(), ChatType.NPC_GENERAL, monster.getId(), NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM));
+ monster.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM);
addAttackDesire(monster, player);
startQuestTimer("despawn", 300000, monster, null);
}
@@ -172,9 +169,7 @@ public final class Q00193_SevenSignsDyingMessage extends Quest
{
if (!npc.isInsideRadius(player, 600, true, false))
{
- final NpcSay ns = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.LOOK_HERE_S1_DON_T_FALL_TOO_FAR_BEHIND);
- ns.addStringParameter(player.getName());
- npc.broadcastPacket(ns);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LOOK_HERE_S1_DON_T_FALL_TOO_FAR_BEHIND, player.getName());
}
else if (!player.isDead())
{
@@ -225,7 +220,7 @@ public final class Q00193_SevenSignsDyingMessage extends Quest
isBusy = false;
cancelQuestTimers("despawn");
cancelQuestTimers("heal");
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU).addStringParameter(partyMember.getName()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU, partyMember.getName());
return super.onKill(npc, player, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00196_SevenSignsSealOfTheEmperor/Q00196_SevenSignsSealOfTheEmperor.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00196_SevenSignsSealOfTheEmperor/Q00196_SevenSignsSealOfTheEmperor.java
index a728b63965..670cca8c45 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00196_SevenSignsSealOfTheEmperor/Q00196_SevenSignsSealOfTheEmperor.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00196_SevenSignsSealOfTheEmperor/Q00196_SevenSignsSealOfTheEmperor.java
@@ -24,7 +24,6 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q00195_SevenSignsSecretRitualOfThePriests.Q00195_SevenSignsSecretRitualOfThePriests;
@@ -64,7 +63,7 @@ public final class Q00196_SevenSignsSealOfTheEmperor extends Quest
if ((npc.getId() == MERCHANT_OF_MAMMON) && "DESPAWN".equals(event))
{
isBusy = false;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.THE_ANCIENT_PROMISE_TO_THE_EMPEROR_HAS_BEEN_FULFILLED));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_ANCIENT_PROMISE_TO_THE_EMPEROR_HAS_BEEN_FULFILLED);
npc.deleteMe();
return super.onAdvEvent(event, npc, player);
}
@@ -100,7 +99,7 @@ public final class Q00196_SevenSignsSealOfTheEmperor extends Quest
isBusy = true;
npc.setScriptValue(1);
final L2Npc merchant = addSpawn(MERCHANT_OF_MAMMON, 109743, 219975, -3512, 0, false, 0, false);
- merchant.broadcastPacket(new NpcSay(merchant.getObjectId(), ChatType.NPC_GENERAL, merchant.getId(), NpcStringId.WHO_DARES_SUMMON_THE_MERCHANT_OF_MAMMON));
+ merchant.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHO_DARES_SUMMON_THE_MERCHANT_OF_MAMMON);
htmltext = "30969-06.html";
startQuestTimer("DESPAWN", 120000, merchant, null);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00197_SevenSignsTheSacredBookOfSeal/Q00197_SevenSignsTheSacredBookOfSeal.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00197_SevenSignsTheSacredBookOfSeal/Q00197_SevenSignsTheSacredBookOfSeal.java
index acb551f68a..e682a271ef 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00197_SevenSignsTheSacredBookOfSeal/Q00197_SevenSignsTheSacredBookOfSeal.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00197_SevenSignsTheSacredBookOfSeal/Q00197_SevenSignsTheSacredBookOfSeal.java
@@ -25,7 +25,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q00196_SevenSignsSealOfTheEmperor.Q00196_SevenSignsSealOfTheEmperor;
@@ -66,7 +65,7 @@ public final class Q00197_SevenSignsTheSacredBookOfSeal extends Quest
if (!npc.isDead())
{
isBusy = false;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE);
npc.deleteMe();
}
return super.onAdvEvent(event, npc, player);
@@ -167,9 +166,9 @@ public final class Q00197_SevenSignsTheSacredBookOfSeal extends Quest
if (qs.isCond(3))
{
isBusy = true;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP).addStringParameter(player.getName()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP, player.getName());
final L2MonsterInstance monster = (L2MonsterInstance) addSpawn(SHILENS_EVIL_THOUGHTS, 152520, -57502, -3408, 0, false, 0, false);
- monster.broadcastPacket(new NpcSay(monster.getObjectId(), ChatType.NPC_GENERAL, monster.getId(), NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM));
+ monster.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM);
addAttackDesire(monster, player);
startQuestTimer("despawn", 300000, monster, null);
}
@@ -236,7 +235,7 @@ public final class Q00197_SevenSignsTheSacredBookOfSeal extends Quest
isBusy = false;
cancelQuestTimers("despawn");
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU).addStringParameter(partyMember.getName()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU, partyMember.getName());
return super.onKill(npc, player, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java
index 34717866a7..78bddd8bc2 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00198_SevenSignsEmbryo/Q00198_SevenSignsEmbryo.java
@@ -26,7 +26,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q00197_SevenSignsTheSacredBookOfSeal.Q00197_SevenSignsTheSacredBookOfSeal;
@@ -68,7 +67,7 @@ public final class Q00198_SevenSignsEmbryo extends Quest
if (!npc.isDead())
{
isBusy = false;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.NEXT_TIME_YOU_WILL_NOT_ESCAPE);
npc.deleteMe();
}
return super.onAdvEvent(event, npc, player);
@@ -105,10 +104,10 @@ public final class Q00198_SevenSignsEmbryo extends Quest
if (qs.isCond(1))
{
isBusy = true;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP).addStringParameter(player.getName()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_THAT_STRANGER_MUST_BE_DEFEATED_HERE_IS_THE_ULTIMATE_HELP, player.getName());
startQuestTimer("heal", 30000 - getRandom(20000), npc, player);
- final L2MonsterInstance monster = (L2MonsterInstance) addSpawn(SHILENS_EVIL_THOUGHTS, -23734, -9184, -5384, 0, false, 0, false, npc.getInstanceId());
- monster.broadcastPacket(new NpcSay(monster.getObjectId(), ChatType.NPC_GENERAL, monster.getId(), NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM));
+ L2MonsterInstance monster = (L2MonsterInstance) addSpawn(SHILENS_EVIL_THOUGHTS, -23734, -9184, -5384, 0, false, 0, false, npc.getInstanceId());
+ monster.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_ARE_NOT_THE_OWNER_OF_THAT_ITEM);
addAttackDesire(monster, player);
startQuestTimer("despawn", 300000, monster, null);
}
@@ -118,9 +117,7 @@ public final class Q00198_SevenSignsEmbryo extends Quest
{
if (!npc.isInsideRadius(player, 600, true, false))
{
- final NpcSay ns = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.LOOK_HERE_S1_DON_T_FALL_TOO_FAR_BEHIND);
- ns.addStringParameter(player.getName());
- npc.broadcastPacket(ns);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LOOK_HERE_S1_DON_T_FALL_TOO_FAR_BEHIND, player.getName());
}
else if (!player.isDead())
{
@@ -147,7 +144,7 @@ public final class Q00198_SevenSignsEmbryo extends Quest
takeItems(player, SCULPTURE_OF_DOUBT, -1);
qs.setCond(3, true);
htmltext = event;
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.WE_WILL_BE_WITH_YOU_ALWAYS));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WE_WILL_BE_WITH_YOU_ALWAYS);
}
break;
}
@@ -185,7 +182,7 @@ public final class Q00198_SevenSignsEmbryo extends Quest
isBusy = false;
cancelQuestTimers("despawn");
cancelQuestTimers("heal");
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU).addStringParameter(partyMember.getName()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_YOU_MAY_HAVE_WON_THIS_TIME_BUT_NEXT_TIME_I_WILL_SURELY_CAPTURE_YOU, partyMember.getName());
npc.deleteMe();
partyMember.showQuestMovie(14);
return super.onKill(npc, player, isSummon);
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java
index 14ba8c7a15..b876276728 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00420_LittleWing/Q00420_LittleWing.java
@@ -29,7 +29,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
/**
* Little Wing (420)
@@ -422,7 +421,7 @@ public final class Q00420_LittleWing extends Quest
{
takeItems(attacker, DELUXE_FAIRY_STONE, -1);
playSound(attacker, QuestSound.ITEMSOUND_QUEST_MIDDLE);
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.THE_STONE_THE_ELVEN_STONE_BROKE));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THE_STONE_THE_ELVEN_STONE_BROKE);
}
return super.onAttack(npc, attacker, damage, isSummon);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
index 165b87018a..655e9fe102 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00421_LittleWingsBigAdventure/Q00421_LittleWingsBigAdventure.java
@@ -31,7 +31,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.util.Util;
/**
@@ -398,7 +397,7 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
}
else if ((getRandom(100) < 2) && hasQuestItems(attacker, FAIRY_LEAF))
{
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.GIVE_ME_A_FAIRY_LEAF));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.GIVE_ME_A_FAIRY_LEAF);
takeItems(attacker, FAIRY_LEAF, 1);
qs.setMemoState(qs.getMemoState() + data.memoStateValue);
qs.unset("hits");
@@ -415,13 +414,13 @@ public final class Q00421_LittleWingsBigAdventure extends Quest
switch (getRandom(3))
{
case 0:
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.WHY_DO_YOU_BOTHER_ME_AGAIN));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WHY_DO_YOU_BOTHER_ME_AGAIN);
break;
case 1:
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, data.message));
+ npc.broadcastSay(ChatType.NPC_GENERAL, data.message);
break;
case 2:
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.LEAVE_NOW_BEFORE_YOU_INCUR_THE_WRATH_OF_THE_GUARDIAN_GHOST));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.LEAVE_NOW_BEFORE_YOU_INCUR_THE_WRATH_OF_THE_GUARDIAN_GHOST);
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java
index a83735a445..57fee326ea 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00450_GraveRobberRescue/Q00450_GraveRobberRescue.java
@@ -28,7 +28,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
/**
* Grave Robber Rescue (450)
@@ -166,11 +165,11 @@ public class Q00450_GraveRobberRescue extends Quest
{
if (getRandom(100) < 50)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.GRUNT_OH));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.GRUNT_OH);
}
else
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.GRUNT_WHAT_S_WRONG_WITH_ME));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.GRUNT_WHAT_S_WRONG_WITH_ME);
}
npc.deleteMe();
htmltext = null;
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java
index 851924c172..2843d35385 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00456_DontKnowDontCare/Q00456_DontKnowDontCare.java
@@ -35,7 +35,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.util.Util;
/**
@@ -351,9 +350,6 @@ public final class Q00456_DontKnowDontCare extends Quest
giveItems(player, reward, count);
final L2Item item = ItemTable.getInstance().getTemplate(reward);
- final NpcSay packet = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.S1_RECEIVED_A_S2_ITEM_AS_A_REWARD_FROM_THE_SEPARATED_SOUL);
- packet.addStringParameter(player.getName());
- packet.addStringParameter(item.getName());
- npc.broadcastPacket(packet);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.S1_RECEIVED_A_S2_ITEM_AS_A_REWARD_FROM_THE_SEPARATED_SOUL, player.getName(), item.getName());
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java
index 253eec4455..63c25111be 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00463_IMustBeaGenius/Q00463_IMustBeaGenius.java
@@ -28,7 +28,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
/**
* I Must Be a Genius (463)
@@ -189,11 +188,7 @@ public class Q00463_IMustBeaGenius extends Quest
if (msg)
{
- final NpcSay ns = new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getId(), NpcStringId.ATT_ATTACK_S1_RO_ROGUE_S2);
- ns.addStringParameter(player.getName());
- ns.addStringParameter(String.valueOf(number));
- npc.broadcastPacket(ns);
-
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.ATT_ATTACK_S1_RO_ROGUE_S2, player.getName(), String.valueOf(number));
playSound(player, QuestSound.ITEMSOUND_QUEST_ITEMGET);
if (getQuestItemsCount(player, CORPSE_LOG) == qs.getInt("number"))
{
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
index e773944ea9..2bcdcbae2a 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q00501_ProofOfClanAlliance/Q00501_ProofOfClanAlliance.java
@@ -33,7 +33,6 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.model.skills.AbnormalType;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.util.Util;
/**
@@ -287,27 +286,30 @@ public final class Q00501_ProofOfClanAlliance extends Quest
if ((lqs.getInt("flag") == 3) && arthea.isScriptValue(15))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.BINGO);
}
else if ((lqs.getInt("flag") == 2) && arthea.isScriptValue(14))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.BINGO);
}
else if ((lqs.getInt("flag") == 1) && arthea.isScriptValue(13))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.BINGO);
}
else if ((lqs.getInt("flag") == 0) && arthea.isScriptValue(12))
{
lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.BINGO);
}
- else if ((lqs.getInt("flag") < 4) && (getRandom(4) == 0))
+ else if (lqs.getInt("flag") < 4)
{
- lqs.set("flag", lqs.getInt("flag") + 1);
- npc.broadcastPacket(new NpcSay(npc, ChatType.NPC_GENERAL, NpcStringId.BINGO));
+ if (getRandom(4) == 0)
+ {
+ lqs.set("flag", lqs.getInt("flag") + 1);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.BINGO);
+ }
}
arthea.setScriptValue(arthea.getScriptValue() + 1);
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-00.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-00.htm
index 3800dc2e91..66d0bf2a99 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-00.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-00.htm
@@ -1,4 +1,4 @@
-Commander Kbaldir:
-I'm afraid you're a 'no go' for launch. Judging from my experience and what I've seen of the Seed of Annihilation, you just wouldn't cut it there. My daddy always said you need the right tool for the job. You aren't the right tool. At least not yet.
-(Only characters level 84 and above can take this quest.)
+Commander Kbaldir:
+I'm afraid you're a 'no go' for launch. Judging from my experience and what I've seen of the Seed of Annihilation, you just wouldn't cut it there. My daddy always said you need the right tool for the job. You aren't the right tool. At least not yet.
+(Only characters level 85 and above can take this quest.)
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-01.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-01.htm
index 1231fe0730..161d85993c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-01.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-01.htm
@@ -1,5 +1,5 @@
-Commander Kbaldir:
-You definitely have the look of a seasoned warrior. I can tell, you and I have seen our share of battles, haven't we? Hehe, one of these days we'll have to share a few pints.
-But matters of state come first. I have a favor to ask if you're willing.
-
+Commander Kbaldir:
+You definitely have the look of a seasoned warrior. I can tell, you and I have seen our share of battles, haven't we? Hehe, one of these days we'll have to share a few pints.
+But matters of state come first. I have a favor to ask if you're willing.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-02.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-02.htm
index 3fd4160333..3ec1032ad3 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-02.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-02.htm
@@ -1,6 +1,6 @@
-Commander Kbaldir:
-I need this order from the Kucereus' outpost sent to the Seed of Annihilation. That is priority one.
-The thing is, you need to know how to get to the Seed. Do you?
-
-
+Commander Kbaldir:
+I need this order from the Kucereus' outpost sent to the Seed of Annihilation. That is priority one.
+The thing is, you need to know how to get to the Seed. Do you?
+
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-03.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-03.htm
index 632425edce..3392bbbfbe 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-03.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-03.htm
@@ -1,4 +1,4 @@
-Commander Kbaldir:
-Alright good. Keep in mind, the Seed of Annihilation is farther north than the Seeds of Destruction and Infinity. Just need to be able to fly there.
-
+Commander Kbaldir:
+Alright good. Keep in mind, the Seed of Annihilation is farther north than the Seeds of Destruction and Infinity. Just need to be able to fly there.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-04.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-04.htm
index 76945a6c11..4556635e12 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-04.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-04.htm
@@ -1,4 +1,4 @@
-Commander Kbaldir:
-Alright, I just need to confirm once more. Will you do this for me? Know that the threat there is significant; it is not a place for the feint of heart.
-
+Commander Kbaldir:
+Alright, I just need to confirm once more. Will you do this for me? Know that the threat there is significant; it is not a place for the feint of heart.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-05.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-05.htm
index 036caa5abc..8e519bef77 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-05.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-05.htm
@@ -1,5 +1,5 @@
-Commander Kbaldir:
-Like the other Seeds that have floated into Gracia, the easiest, and right now, only way to get to the Seed of Annihilation is by flight. You either need access to an airship or know the Aura Bird Transformation.
-If you don't have an airship, the Dwarf they call Engineer Lekon below is who you should talk to. Officer Tolonis might also sell you one. As for the Aura Bird Transformation, I couldn't tell you how to learn it, I honestly don't know.
-
+Commander Kbaldir:
+Like the other Seeds that have floated into Gracia, the easiest, and right now, only way to get to the Seed of Annihilation is by flight. You either need access to an airship or know the Aura Bird Transformation.
+If you don't have an airship, the Dwarf they call Engineer Lekon below is who you should talk to. Officer Tolonis might also sell you one. As for the Aura Bird Transformation, I couldn't tell you how to learn it, I honestly don't know.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-06.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-06.htm
index 2b64403eeb..792939b05e 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-06.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32733-06.htm
@@ -1,4 +1,4 @@
-Commander Kbaldir:
-Once you have some method of flight, head to the Seed of Annihilation. It's farther north than the Seed of Destruction and Seed of Infinity.
-
+Commander Kbaldir:
+Once you have some method of flight, head to the Seed of Annihilation. It's farther north than the Seed of Destruction and Seed of Infinity.
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32734-01.htm b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32734-01.htm
index a5cea40a90..66e9f41cc8 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32734-01.htm
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/32734-01.htm
@@ -1,4 +1,4 @@
-Officer Klemis:
-Let me see that order you have... ah, you've been sent by Commander Kbaldir of Keucereus Alliance Base?
-
+Officer Klemis:
+Let me see that order you have... ah, you've been sent by Commander Kbaldir of Keucereus Alliance Base?
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/Q10282_ToTheSeedOfAnnihilation.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/Q10282_ToTheSeedOfAnnihilation.java
index b9858a13e8..039796819d 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/Q10282_ToTheSeedOfAnnihilation.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10282_ToTheSeedOfAnnihilation/Q10282_ToTheSeedOfAnnihilation.java
@@ -23,17 +23,19 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
/**
- * To the Seed of Destruction (10269)
- * Original Jython script by Gnacik 2010-08-13 Based on Freya PTS.
+ * To the Seed of Destruction (10269)
* @author nonom
*/
-public class Q10282_ToTheSeedOfAnnihilation extends Quest
+public final class Q10282_ToTheSeedOfAnnihilation extends Quest
{
// NPCs
private static final int KBALDIR = 32733;
private static final int KLEMIS = 32734;
// Item
private static final int SOA_ORDERS = 15512;
+ private static final int EAR = 17527; // Scroll: Enchant Armor (R-grade)
+ // Misc
+ private static final int MIN_LV = 85;
public Q10282_ToTheSeedOfAnnihilation()
{
@@ -41,6 +43,7 @@ public class Q10282_ToTheSeedOfAnnihilation extends Quest
addStartNpc(KBALDIR);
addTalkId(KBALDIR, KLEMIS);
registerQuestItems(SOA_ORDERS);
+ addCondMinLevel(MIN_LV, "32733-00.htm");
}
@Override
@@ -63,7 +66,9 @@ public class Q10282_ToTheSeedOfAnnihilation extends Quest
}
case "32734-02.htm":
{
- addExpAndSp(player, 1148480, 99110);
+ giveAdena(player, 212182, true);
+ giveItems(player, EAR, 5);
+ addExpAndSp(player, 1148480, 275);
qs.exitQuest(false);
break;
}
@@ -98,7 +103,7 @@ public class Q10282_ToTheSeedOfAnnihilation extends Quest
}
case State.CREATED:
{
- htmltext = (player.getLevel() < 84) ? "32733-00.htm" : "32733-01.htm";
+ htmltext = "32733-01.htm";
break;
}
case State.STARTED:
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10285_MeetingSirra/Q10285_MeetingSirra.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10285_MeetingSirra/Q10285_MeetingSirra.java
index 37aeb7b201..2861e5f3d8 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10285_MeetingSirra/Q10285_MeetingSirra.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10285_MeetingSirra/Q10285_MeetingSirra.java
@@ -26,7 +26,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q10284_AcquisitionOfDivineSword.Q10284_AcquisitionOfDivineSword;
@@ -103,7 +102,7 @@ public final class Q10285_MeetingSirra extends Quest
if (qs.isMemoState(1) && (qs.getInt("ex") == 2))
{
final L2Npc sirra = addSpawn(SIRRA, -23905, -8790, -5384, 56238, false, 0, false, npc.getInstanceId());
- sirra.broadcastPacket(new NpcSay(sirra.getObjectId(), ChatType.NPC_GENERAL, sirra.getId(), NpcStringId.THERE_S_NOTHING_YOU_CAN_T_SAY_I_CAN_T_LISTEN_TO_YOU_ANYMORE));
+ sirra.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_NOTHING_YOU_CAN_T_SAY_I_CAN_T_LISTEN_TO_YOU_ANYMORE);
qs.set("ex", 3);
qs.setCond(5, true);
htmltext = event;
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10286_ReunionWithSirra/Q10286_ReunionWithSirra.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10286_ReunionWithSirra/Q10286_ReunionWithSirra.java
index cde2f0c1fb..3a1c84ba52 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10286_ReunionWithSirra/Q10286_ReunionWithSirra.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10286_ReunionWithSirra/Q10286_ReunionWithSirra.java
@@ -26,7 +26,6 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import quests.Q10285_MeetingSirra.Q10285_MeetingSirra;
@@ -91,7 +90,7 @@ public final class Q10286_ReunionWithSirra extends Quest
if (qs.isMemoState(1))
{
final L2Npc sirra = addSpawn(SIRRA, -23905, -8790, -5384, 56238, false, 0, false, npc.getInstanceId());
- sirra.broadcastPacket(new NpcSay(sirra.getObjectId(), ChatType.NPC_GENERAL, sirra.getId(), NpcStringId.YOU_ADVANCED_BRAVELY_BUT_GOT_SUCH_A_TINY_RESULT_HOHOHO));
+ sirra.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.YOU_ADVANCED_BRAVELY_BUT_GOT_SUCH_A_TINY_RESULT_HOHOHO);
qs.set("ex", 1);
qs.setCond(3, true);
htmltext = event;
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10320_LetsGoToTheCentralSquare/Q10320_LetsGoToTheCentralSquare.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10320_LetsGoToTheCentralSquare/Q10320_LetsGoToTheCentralSquare.java
index 0ef877ab46..41ac04c3f3 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10320_LetsGoToTheCentralSquare/Q10320_LetsGoToTheCentralSquare.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10320_LetsGoToTheCentralSquare/Q10320_LetsGoToTheCentralSquare.java
@@ -31,9 +31,7 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.model.zone.L2ZoneType;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
-import com.l2jmobius.gameserver.util.Broadcast;
/**
* Let's Go To The Central Square (10320)
@@ -92,11 +90,14 @@ public final class Q10320_LetsGoToTheCentralSquare extends Quest
}
case "32975-02.html":
{
- giveAdena(player, 30, true);
- addExpAndSp(player, 30, 5);
- qs.exitQuest(false, true);
- htmltext = event;
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.WAIT_WAIT_A_MINUTE_I_STILL_HAVE_TIME));
+ if (qs.isStarted())
+ {
+ giveAdena(player, 30, true);
+ addExpAndSp(player, 30, 5);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.WAIT_WAIT_A_MINUTE_I_STILL_HAVE_TIME);
+ }
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10321_QualificationsOfTheSeeker/Q10321_QualificationsOfTheSeeker.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10321_QualificationsOfTheSeeker/Q10321_QualificationsOfTheSeeker.java
index 9bcd82fc80..5e5b245fe5 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10321_QualificationsOfTheSeeker/Q10321_QualificationsOfTheSeeker.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10321_QualificationsOfTheSeeker/Q10321_QualificationsOfTheSeeker.java
@@ -23,9 +23,7 @@ import com.l2jmobius.gameserver.model.quest.Quest;
import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
-import com.l2jmobius.gameserver.util.Broadcast;
import quests.Q10320_LetsGoToTheCentralSquare.Q10320_LetsGoToTheCentralSquare;
@@ -78,11 +76,14 @@ public final class Q10321_QualificationsOfTheSeeker extends Quest
}
case "32974-02.html":
{
- giveAdena(player, 50, true);
- addExpAndSp(player, 40, 5);
- qs.exitQuest(false, true);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.HM_DON_T_JUST_GO_I_STILL_HAVE_TONS_TO_TEACH_YOU));
- htmltext = event;
+ if (qs.isStarted())
+ {
+ giveAdena(player, 50, true);
+ addExpAndSp(player, 40, 5);
+ qs.exitQuest(false, true);
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.HM_DON_T_JUST_GO_I_STILL_HAVE_TONS_TO_TEACH_YOU);
+ htmltext = event;
+ }
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10322_SearchingForTheMysteriousPower/Q10322_SearchingForTheMysteriousPower.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10322_SearchingForTheMysteriousPower/Q10322_SearchingForTheMysteriousPower.java
index 2db49e899f..d085b49347 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10322_SearchingForTheMysteriousPower/Q10322_SearchingForTheMysteriousPower.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10322_SearchingForTheMysteriousPower/Q10322_SearchingForTheMysteriousPower.java
@@ -25,9 +25,7 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.TutorialShowHtml;
-import com.l2jmobius.gameserver.util.Broadcast;
import com.l2jmobius.gameserver.util.Util;
import quests.Q10321_QualificationsOfTheSeeker.Q10321_QualificationsOfTheSeeker;
@@ -250,7 +248,7 @@ public final class Q10322_SearchingForTheMysteriousPower extends Quest
giveItems(player, APPRENTICE_ADVENTURERS_BOW, 1);
giveItems(player, APPRENTICE_ADVENTURERS_LONG_SWORD, 1);
addExpAndSp(player, 300, 5);
- Broadcast.toKnownPlayers(npc, new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.THERE_S_THE_NEXT_TRAINING_STEP));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.THERE_S_THE_NEXT_TRAINING_STEP);
qs.exitQuest(false, true);
break;
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10324_FindingMagisterGallint/Q10324_FindingMagisterGallint.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10324_FindingMagisterGallint/Q10324_FindingMagisterGallint.java
index 017abed4d2..1bbaa4e4be 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10324_FindingMagisterGallint/Q10324_FindingMagisterGallint.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10324_FindingMagisterGallint/Q10324_FindingMagisterGallint.java
@@ -71,11 +71,14 @@ public final class Q10324_FindingMagisterGallint extends Quest
}
case "32980-02.html":
{
- player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW));
- giveAdena(player, 110, true);
- addExpAndSp(player, 3100, 5);
- qs.exitQuest(false, true);
- htmltext = event;
+ if (qs.isStarted())
+ {
+ player.sendPacket(new TutorialShowHtml(npc.getObjectId(), "..\\L2Text\\QT_004_skill_01.htm", TutorialShowHtml.LARGE_WINDOW));
+ giveAdena(player, 110, true);
+ addExpAndSp(player, 3100, 5);
+ qs.exitQuest(false, true);
+ htmltext = event;
+ }
break;
}
}
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10326_RespectYourElders/Q10326_RespectYourElders.java b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10326_RespectYourElders/Q10326_RespectYourElders.java
index 8c56522229..f04dd0b1fa 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10326_RespectYourElders/Q10326_RespectYourElders.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/quests/Q10326_RespectYourElders/Q10326_RespectYourElders.java
@@ -25,7 +25,6 @@ import com.l2jmobius.gameserver.model.quest.QuestState;
import com.l2jmobius.gameserver.model.quest.State;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.serverpackets.ExRotation;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.util.Util;
import quests.Q10325_SearchingForNewPower.Q10325_SearchingForNewPower;
@@ -116,7 +115,7 @@ public class Q10326_RespectYourElders extends Quest
{
if (loc_index == 9)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.GO_GO_GO_CREEK));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.GO_GO_GO_CREEK);
startQuestTimer("DELETE_NPC", 2000, npc, owner);
break;
}
@@ -139,7 +138,7 @@ public class Q10326_RespectYourElders extends Quest
if (getRandom(100) < 10)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.COME_ON_CREEK));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COME_ON_CREEK);
}
}
}
@@ -171,7 +170,7 @@ public class Q10326_RespectYourElders extends Quest
@Override
public void onMoveFinished(L2Npc npc)
{
- npc.broadcastPacket(new NpcSay(npc.getObjectId(), ChatType.NPC_GENERAL, npc.getTemplate().getDisplayId(), NpcStringId.COME_ON_CREEK));
+ npc.broadcastSay(ChatType.NPC_GENERAL, NpcStringId.COME_ON_CREEK);
final L2PcInstance owner = npc.getVariables().getObject("OWNER", L2PcInstance.class);
if (owner != null)
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30155-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30155-noitem.html
new file mode 100644
index 0000000000..beceac4999
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30155-noitem.html
@@ -0,0 +1,4 @@
+Grand Master Elenia:
+You've already exchanged everything.
+(You don't have any exchangeable Certificates of Justice.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30158-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30158-noitem.html
new file mode 100644
index 0000000000..ae682a5d60
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30158-noitem.html
@@ -0,0 +1,4 @@
+Grand Magister Esrandell:
+It looks like you have already exchanged everything!
+(You don't have any exchangeable Certificate of Justice.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30288-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30288-noitem.html
new file mode 100644
index 0000000000..35361c5894
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30288-noitem.html
@@ -0,0 +1,4 @@
+Grand Master Rains:
+It looks like you have already exchanged everything!
+(You don't have any exchangeable Certificate of Justice.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30289-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30289-noitem.html
new file mode 100644
index 0000000000..3403d38065
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30289-noitem.html
@@ -0,0 +1,4 @@
+High Priest Raymond:
+Looks like you've exchanged them all.
+(You don't have any exchangeable Certificates of Justice.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30297-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30297-noitem.html
new file mode 100644
index 0000000000..92e821c50a
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30297-noitem.html
@@ -0,0 +1,4 @@
+Grand Master Tobias:
+You have already exchanged them all!
+(You don't have any exchangeable Certificate of Justice.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30504-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30504-noitem.html
new file mode 100644
index 0000000000..62fefd9f01
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30504-noitem.html
@@ -0,0 +1,4 @@
+Head Blacksmith Mendio:
+Greedy, greedy! You've already exchanged everything.
+(There is no Certificate of Justice for exchange.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30505-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30505-noitem.html
new file mode 100644
index 0000000000..e7af1e8e6b
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/30505-noitem.html
@@ -0,0 +1,4 @@
+High Prefect Drikus:
+You have already exchanged everything. Did you forget?
+(There is no Certificate of Justice for exchange.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/32196-noitem.html b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/32196-noitem.html
new file mode 100644
index 0000000000..54dc039eba
--- /dev/null
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/32196-noitem.html
@@ -0,0 +1,4 @@
+Grand Master Gershwin
+You have nothing to exchange.
+(You don't have any exchangeable Certificates of Justice.)
+
\ No newline at end of file
diff --git a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/ProofOfJustice.java b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/ProofOfJustice.java
index fa1400eb22..21e3af977c 100644
--- a/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/ProofOfJustice.java
+++ b/L2J_Mobius_Test/dist/game/data/scripts/village_master/ProofOfJustice/ProofOfJustice.java
@@ -34,6 +34,8 @@ import ai.AbstractNpcAI;
*/
public final class ProofOfJustice extends AbstractNpcAI
{
+ // Items
+ private static final int JUSTICE = 17822; // Proof of Justice
// Misc
private static final Map> CLASSLIST = new HashMap<>();
static
@@ -56,18 +58,22 @@ public final class ProofOfJustice extends AbstractNpcAI
}
@Override
- public String onTalk(L2Npc npc, L2PcInstance talker)
+ public String onTalk(L2Npc npc, L2PcInstance player)
{
- if (talker.getClassId().level() < 2)
+ if (player.getClassId().level() < 2)
{
return npc.getId() + "-noclass.html";
}
- if (!CLASSLIST.get(npc.getId()).contains(talker.getClassId()))
+ else if (!hasAtLeastOneQuestItem(player, JUSTICE))
+ {
+ return npc.getId() + "-noitem.html";
+ }
+ else if (!CLASSLIST.get(npc.getId()).contains(player.getClassId()))
{
return npc.getId() + "-no.html";
}
- MultisellData.getInstance().separateAndSend(718, talker, npc, false);
- return super.onTalk(npc, talker);
+ MultisellData.getInstance().separateAndSend(718, player, npc, false);
+ return super.onTalk(npc, player);
}
public static void main(String[] args)
diff --git a/L2J_Mobius_Test/dist/game/data/stats/npcs/32500-32599.xml b/L2J_Mobius_Test/dist/game/data/stats/npcs/32500-32599.xml
index 8653218c6a..8e472ccaea 100644
--- a/L2J_Mobius_Test/dist/game/data/stats/npcs/32500-32599.xml
+++ b/L2J_Mobius_Test/dist/game/data/stats/npcs/32500-32599.xml
@@ -2115,6 +2115,7 @@
ELFMALE
+
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortManager.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortManager.java
index 41db13a24a..5a3b865593 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortManager.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortManager.java
@@ -172,7 +172,7 @@ public final class FortManager implements InstanceListManager
_log.info(getClass().getSimpleName() + ": Loaded: " + _forts.size() + " fortress");
for (Fort fort : _forts)
{
- fort.getSiege().getSiegeGuardManager().loadSiegeGuard();
+ fort.getSiege().loadSiegeGuard();
}
}
catch (Exception e)
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortSiegeGuardManager.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortSiegeGuardManager.java
deleted file mode 100644
index f986c28b69..0000000000
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/FortSiegeGuardManager.java
+++ /dev/null
@@ -1,146 +0,0 @@
-/*
- * This file is part of the L2J Mobius project.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jmobius.gameserver.instancemanager;
-
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-import com.l2jmobius.commons.database.DatabaseFactory;
-import com.l2jmobius.gameserver.model.L2Spawn;
-import com.l2jmobius.gameserver.model.entity.Fort;
-
-public final class FortSiegeGuardManager
-{
- private static final Logger _log = Logger.getLogger(FortSiegeGuardManager.class.getName());
-
- private final Fort _fort;
- private final Map> _siegeGuards = new HashMap<>();
-
- public FortSiegeGuardManager(Fort fort)
- {
- _fort = fort;
- }
-
- /**
- * Spawn guards.
- */
- public void spawnSiegeGuard()
- {
- try
- {
- final List monsterList = _siegeGuards.get(getFort().getResidenceId());
- if (monsterList != null)
- {
- for (L2Spawn spawnDat : monsterList)
- {
- spawnDat.doSpawn();
- if (spawnDat.getRespawnDelay() == 0)
- {
- spawnDat.stopRespawn();
- }
- else
- {
- spawnDat.startRespawn();
- }
- }
- }
- }
- catch (Exception e)
- {
- _log.log(Level.WARNING, "Error spawning siege guards for fort " + getFort().getName() + ":" + e.getMessage(), e);
- }
- }
-
- /**
- * Unspawn guards.
- */
- public void unspawnSiegeGuard()
- {
- try
- {
- final List monsterList = _siegeGuards.get(getFort().getResidenceId());
- if (monsterList != null)
- {
- for (L2Spawn spawnDat : monsterList)
- {
- spawnDat.stopRespawn();
- if (spawnDat.getLastSpawn() != null)
- {
- spawnDat.getLastSpawn().doDie(spawnDat.getLastSpawn());
- }
- }
- }
- }
- catch (Exception e)
- {
- _log.log(Level.WARNING, "Error unspawning siege guards for fort " + getFort().getName() + ":" + e.getMessage(), e);
- }
- }
-
- /**
- * Load guards.
- */
- void loadSiegeGuard()
- {
- _siegeGuards.clear();
- try (Connection con = DatabaseFactory.getInstance().getConnection();
- PreparedStatement ps = con.prepareStatement("SELECT npcId, x, y, z, heading, respawnDelay FROM fort_siege_guards WHERE fortId = ?"))
- {
- final int fortId = getFort().getResidenceId();
- ps.setInt(1, fortId);
- try (ResultSet rs = ps.executeQuery())
- {
- final List siegeGuardSpawns = new ArrayList<>();
- while (rs.next())
- {
- final L2Spawn spawn = new L2Spawn(rs.getInt("npcId"));
- spawn.setAmount(1);
- spawn.setX(rs.getInt("x"));
- spawn.setY(rs.getInt("y"));
- spawn.setZ(rs.getInt("z"));
- spawn.setHeading(rs.getInt("heading"));
- spawn.setRespawnDelay(rs.getInt("respawnDelay"));
- spawn.setLocationId(0);
-
- siegeGuardSpawns.add(spawn);
- }
- _siegeGuards.put(fortId, siegeGuardSpawns);
- }
- }
- catch (Exception e)
- {
- _log.log(Level.WARNING, "Error loading siege guard for fort " + getFort().getName() + ": " + e.getMessage(), e);
- }
- }
-
- public final Fort getFort()
- {
- return _fort;
- }
-
- public final Map> getSiegeGuardSpawn()
- {
- return _siegeGuards;
- }
-}
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/WalkingManager.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/WalkingManager.java
index df80794453..2b072374f6 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/WalkingManager.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/instancemanager/WalkingManager.java
@@ -40,8 +40,6 @@ import com.l2jmobius.gameserver.model.events.EventDispatcher;
import com.l2jmobius.gameserver.model.events.impl.character.npc.OnNpcMoveNodeArrived;
import com.l2jmobius.gameserver.model.holders.NpcRoutesHolder;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
-import com.l2jmobius.gameserver.util.Broadcast;
import com.l2jmobius.util.data.xml.IXmlReader;
/**
@@ -413,11 +411,11 @@ public final class WalkingManager implements IXmlReader
if (node.getNpcString() != null)
{
- Broadcast.toKnownPlayers(npc, new NpcSay(npc, ChatType.NPC_GENERAL, node.getNpcString()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, node.getNpcString());
}
else if (!node.getChatText().isEmpty())
{
- Broadcast.toKnownPlayers(npc, new NpcSay(npc, ChatType.NPC_GENERAL, node.getChatText()));
+ npc.broadcastSay(ChatType.NPC_GENERAL, node.getChatText());
}
if (npc.isDebug())
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/L2Party.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/L2Party.java
index a72e167ff1..b4ea6e2553 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/L2Party.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/L2Party.java
@@ -94,6 +94,14 @@ public class L2Party extends AbstractPlayerGroup
protected PartyMemberPosition _positionPacket;
private boolean _disbanding = false;
private static Map _tacticalSigns = null;
+ private static final int[] TACTICAL_SYS_STRINGS =
+ {
+ 0,
+ 2664,
+ 2665,
+ 2666,
+ 2667
+ };
/**
* The message type send to the party members.
@@ -402,7 +410,7 @@ public class L2Party extends AbstractPlayerGroup
_tacticalSigns.entrySet().forEach(entry -> player.sendPacket(new ExTacticalSign(entry.getValue(), remove ? 0 : entry.getKey())));
}
- public void addTacticalSign(int tacticalSignId, L2Character target)
+ public void addTacticalSign(L2PcInstance activeChar, int tacticalSignId, L2Character target)
{
final L2Character tacticalTarget = getTacticalSigns().get(tacticalSignId);
@@ -413,17 +421,42 @@ public class L2Party extends AbstractPlayerGroup
// Add the new sign
_tacticalSigns.put(tacticalSignId, target);
+
+ final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_USED_S3_ON_C2);
+ sm.addPcName(activeChar);
+ sm.addCharName(target);
+ sm.addSystemString(TACTICAL_SYS_STRINGS[tacticalSignId]);
+
+ getMembers().forEach(m ->
+ {
+ m.sendPacket(new ExTacticalSign(target, tacticalSignId));
+ m.sendPacket(sm);
+ });
}
else if (tacticalTarget == target)
{
+ // Sign already assigned
+ // If the sign is applied on the same target, remove it
_tacticalSigns.remove(tacticalSignId);
+ getMembers().forEach(m -> m.sendPacket(new ExTacticalSign(tacticalTarget, 0)));
}
else
{
// Otherwise, delete the old sign, and apply it to the new target
_tacticalSigns.replace(tacticalSignId, target);
+
+ final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.C1_USED_S3_ON_C2);
+ sm.addPcName(activeChar);
+ sm.addCharName(target);
+ sm.addSystemString(TACTICAL_SYS_STRINGS[tacticalSignId]);
+
+ getMembers().forEach(m ->
+ {
+ m.sendPacket(new ExTacticalSign(tacticalTarget, 0));
+ m.sendPacket(new ExTacticalSign(target, tacticalSignId));
+ m.sendPacket(sm);
+ });
}
- getMembers().forEach(m -> m.sendPacket(new ExTacticalSign(target, tacticalSignId)));
}
public void setTargetBasedOnTacticalSignId(L2PcInstance player, int tacticalSignId)
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/L2Npc.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/L2Npc.java
index 335a18efcc..7ff1f3de95 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/L2Npc.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/L2Npc.java
@@ -34,6 +34,7 @@ import com.l2jmobius.gameserver.datatables.ItemTable;
import com.l2jmobius.gameserver.datatables.NpcPersonalAIData;
import com.l2jmobius.gameserver.enums.AISkillScope;
import com.l2jmobius.gameserver.enums.AIType;
+import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.enums.InstanceType;
import com.l2jmobius.gameserver.enums.PrivateStoreType;
import com.l2jmobius.gameserver.enums.Race;
@@ -82,6 +83,7 @@ import com.l2jmobius.gameserver.model.olympiad.Olympiad;
import com.l2jmobius.gameserver.model.skills.Skill;
import com.l2jmobius.gameserver.model.variables.NpcVariables;
import com.l2jmobius.gameserver.model.zone.type.L2TownZone;
+import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
import com.l2jmobius.gameserver.network.serverpackets.ActionFailed;
import com.l2jmobius.gameserver.network.serverpackets.ExChangeNpcState;
@@ -89,6 +91,7 @@ import com.l2jmobius.gameserver.network.serverpackets.MagicSkillUse;
import com.l2jmobius.gameserver.network.serverpackets.NpcHtmlMessage;
import com.l2jmobius.gameserver.network.serverpackets.NpcInfo;
import com.l2jmobius.gameserver.network.serverpackets.NpcInfoAbnormalVisualEffect;
+import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.ServerObjectInfo;
import com.l2jmobius.gameserver.network.serverpackets.SocialAction;
import com.l2jmobius.gameserver.taskmanager.DecayTaskManager;
@@ -1740,6 +1743,60 @@ public class L2Npc extends L2Character
}
}
+ /**
+ * Broadcasts NpcSay packet to all known players.
+ * @param chatType the chat type
+ * @param text the text
+ */
+ public void broadcastSay(ChatType chatType, String text)
+ {
+ Broadcast.toKnownPlayers(this, new NpcSay(this, chatType, text));
+ }
+
+ /**
+ * Broadcasts NpcSay packet to all known players with NPC string id.
+ * @param chatType the chat type
+ * @param npcStringId the NPC string id
+ * @param parameters the NPC string id parameters
+ */
+ public void broadcastSay(ChatType chatType, NpcStringId npcStringId, String... parameters)
+ {
+ final NpcSay npcSay = new NpcSay(this, chatType, npcStringId);
+ if (parameters != null)
+ {
+ for (String parameter : parameters)
+ {
+ if (parameter != null)
+ {
+ npcSay.addStringParameter(parameter);
+ }
+ }
+ }
+ Broadcast.toKnownPlayers(this, npcSay);
+ }
+
+ /**
+ * Broadcasts NpcSay packet to all known players with custom string in specific radius.
+ * @param chatType the chat type
+ * @param text the text
+ * @param radius the radius
+ */
+ public void broadcastSay(ChatType chatType, String text, int radius)
+ {
+ Broadcast.toKnownPlayersInRadius(this, new NpcSay(this, chatType, text), radius);
+ }
+
+ /**
+ * Broadcasts NpcSay packet to all known players with NPC string id in specific radius.
+ * @param chatType the chat type
+ * @param npcStringId the NPC string id
+ * @param radius the radius
+ */
+ public void broadcastSay(ChatType chatType, NpcStringId npcStringId, int radius)
+ {
+ Broadcast.toKnownPlayersInRadius(this, new NpcSay(this, chatType, npcStringId), radius);
+ }
+
@Override
public int getMinShopDistance()
{
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/instance/L2TeleporterInstance.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/instance/L2TeleporterInstance.java
index 57caf7aea0..ab1363e0ea 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/instance/L2TeleporterInstance.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/actor/instance/L2TeleporterInstance.java
@@ -25,7 +25,6 @@ import java.util.logging.Level;
import java.util.stream.Stream;
import com.l2jmobius.Config;
-import com.l2jmobius.gameserver.cache.HtmCache;
import com.l2jmobius.gameserver.data.sql.impl.TeleportLocationTable;
import com.l2jmobius.gameserver.data.xml.impl.MultisellData;
import com.l2jmobius.gameserver.data.xml.impl.TeleportersData;
@@ -390,7 +389,6 @@ public final class L2TeleporterInstance extends L2Npc
}
else if (command.startsWith("Chat"))
{
- final Calendar cal = Calendar.getInstance();
int val = 0;
try
{
@@ -402,17 +400,6 @@ public final class L2TeleporterInstance extends L2Npc
catch (NumberFormatException nfe)
{
}
-
- if ((val == 1) && (player.getLevel() < 41))
- {
- showNewbieHtml(player);
- return;
- }
- if ((val == 1) && (cal.get(Calendar.HOUR_OF_DAY) >= 20) && (cal.get(Calendar.HOUR_OF_DAY) <= 23) && ((cal.get(Calendar.DAY_OF_WEEK) == 1) || (cal.get(Calendar.DAY_OF_WEEK) == 7)))
- {
- showHalfPriceHtml(player);
- return;
- }
showChatWindow(player, val);
}
super.onBypassFeedback(player, command);
@@ -424,43 +411,6 @@ public final class L2TeleporterInstance extends L2Npc
return "html/teleporter/" + (val == 0 ? "" + npcId : npcId + "-" + val) + ".htm";
}
- private void showNewbieHtml(L2PcInstance player)
- {
- if (player == null)
- {
- return;
- }
-
- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-
- String filename = "html/teleporter/free/" + getTemplate().getId() + ".htm";
- if (!HtmCache.getInstance().isLoadable(filename))
- {
- filename = "html/teleporter/" + getTemplate().getId() + "-1.htm";
- }
-
- html.setFile(player.getHtmlPrefix(), filename);
- html.replace("%objectId%", String.valueOf(getObjectId()));
- html.replace("%npcname%", getName());
- player.sendPacket(html);
- }
-
- private void showHalfPriceHtml(L2PcInstance player)
- {
- if (player == null)
- {
- return;
- }
-
- final NpcHtmlMessage html = new NpcHtmlMessage(getObjectId());
-
- final String filename = !HtmCache.getInstance().isLoadable("html/teleporter/half/" + getId() + ".htm") ? "html/teleporter/" + getId() + "-1.htm" : "html/teleporter/half/" + getId() + ".htm";
- html.setFile(player.getHtmlPrefix(), filename);
- html.replace("%objectId%", String.valueOf(getObjectId()));
- html.replace("%npcname%", getName());
- player.sendPacket(html);
- }
-
@Override
public void showChatWindow(L2PcInstance player)
{
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/FortSiege.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/FortSiege.java
index f2fad0396e..261bf46740 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/FortSiege.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/FortSiege.java
@@ -20,9 +20,11 @@ import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.Calendar;
+import java.util.Collection;
import java.util.LinkedList;
import java.util.List;
-import java.util.concurrent.CopyOnWriteArrayList;
+import java.util.Set;
+import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ScheduledFuture;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -35,7 +37,6 @@ import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.enums.FortTeleportWhoType;
import com.l2jmobius.gameserver.enums.SiegeClanType;
import com.l2jmobius.gameserver.instancemanager.FortManager;
-import com.l2jmobius.gameserver.instancemanager.FortSiegeGuardManager;
import com.l2jmobius.gameserver.instancemanager.FortSiegeManager;
import com.l2jmobius.gameserver.model.CombatFlag;
import com.l2jmobius.gameserver.model.FortSiegeSpawn;
@@ -54,7 +55,6 @@ import com.l2jmobius.gameserver.model.events.impl.sieges.fort.OnFortSiegeFinish;
import com.l2jmobius.gameserver.model.events.impl.sieges.fort.OnFortSiegeStart;
import com.l2jmobius.gameserver.network.NpcStringId;
import com.l2jmobius.gameserver.network.SystemMessageId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
import com.l2jmobius.gameserver.network.serverpackets.SystemMessage;
public class FortSiege implements Siegable
@@ -223,13 +223,13 @@ public class FortSiege implements Siegable
}
}
- private final List _attackerClans = new CopyOnWriteArrayList<>();
+ private final Set _attackerClans = ConcurrentHashMap.newKeySet();
// Fort setting
- protected List _commanders = new CopyOnWriteArrayList<>();
+ protected Set _commanders = ConcurrentHashMap.newKeySet();
protected final Fort _fort;
private boolean _isInProgress = false;
- private FortSiegeGuardManager _siegeGuardManager;
+ private final Collection _siegeGuards = new LinkedList<>();
ScheduledFuture> _siegeEnd = null;
ScheduledFuture> _siegeRestore = null;
ScheduledFuture> _siegeStartTask = null;
@@ -248,54 +248,56 @@ public class FortSiege implements Siegable
@Override
public void endSiege()
{
- if (!isInProgress())
+ if (isInProgress())
{
- return;
+ _isInProgress = false; // Flag so that siege instance can be started
+ removeFlags(); // Removes all flags. Note: Remove flag before teleporting players
+ unSpawnFlags();
+
+ updatePlayerSiegeStateFlags(true);
+
+ int ownerId = -1;
+ if (getFort().getOwnerClan() != null)
+ {
+ ownerId = getFort().getOwnerClan().getId();
+ }
+ getFort().getZone().banishForeigners(ownerId);
+ getFort().getZone().setIsActive(false);
+ getFort().getZone().updateZoneStatusForCharactersInside();
+ getFort().getZone().setSiegeInstance(null);
+
+ saveFortSiege(); // Save fort specific data
+ clearSiegeClan(); // Clear siege clan from db
+ removeCommanders(); // Remove commander from this fort
+
+ getFort().spawnNpcCommanders(); // Spawn NPC commanders
+ unspawnSiegeGuard(); // Remove all spawned siege guard from this fort
+ getFort().resetDoors(); // Respawn door to fort
+
+ ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleSuspiciousMerchantSpawn(), FortSiegeManager.getInstance().getSuspiciousMerchantRespawnDelay() * 60 * 1000L); // Prepare 3hr task for suspicious merchant respawn
+ setSiegeDateTime(true); // store suspicious merchant spawn in DB
+
+ if (_siegeEnd != null)
+ {
+ _siegeEnd.cancel(true);
+ _siegeEnd = null;
+ }
+ if (_siegeRestore != null)
+ {
+ _siegeRestore.cancel(true);
+ _siegeRestore = null;
+ }
+
+ if ((getFort().getOwnerClan() != null) && (getFort().getFlagPole().getMeshIndex() == 0))
+ {
+ getFort().setVisibleFlag(true);
+ }
+
+ _log.info("Siege of " + getFort().getName() + " fort finished.");
+
+ // Notify to scripts.
+ EventDispatcher.getInstance().notifyEventAsync(new OnFortSiegeFinish(this), getFort());
}
-
- _isInProgress = false; // Flag so that siege instance can be started
- removeFlags(); // Removes all flags. Note: Remove flag before teleporting players
- unSpawnFlags();
-
- updatePlayerSiegeStateFlags(true);
-
- final int ownerId = getFort().getOwnerClan() != null ? getFort().getOwnerClan().getId() : -1;
- getFort().getZone().banishForeigners(ownerId);
- getFort().getZone().setIsActive(false);
- getFort().getZone().updateZoneStatusForCharactersInside();
- getFort().getZone().setSiegeInstance(null);
-
- saveFortSiege(); // Save fort specific data
- clearSiegeClan(); // Clear siege clan from db
- removeCommanders(); // Remove commander from this fort
-
- getFort().spawnNpcCommanders(); // Spawn NPC commanders
- getSiegeGuardManager().unspawnSiegeGuard(); // Remove all spawned siege guard from this fort
- getFort().resetDoors(); // Respawn door to fort
-
- ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleSuspiciousMerchantSpawn(), FortSiegeManager.getInstance().getSuspiciousMerchantRespawnDelay() * 60 * 1000L); // Prepare 3hr task for suspicious merchant respawn
- setSiegeDateTime(true); // store suspicious merchant spawn in DB
-
- if (_siegeEnd != null)
- {
- _siegeEnd.cancel(true);
- _siegeEnd = null;
- }
- if (_siegeRestore != null)
- {
- _siegeRestore.cancel(true);
- _siegeRestore = null;
- }
-
- if ((getFort().getOwnerClan() != null) && (getFort().getFlagPole().getMeshIndex() == 0))
- {
- getFort().setVisibleFlag(true);
- }
-
- _log.info("Siege of " + getFort().getName() + " fort finished.");
-
- // Notify to scripts.
- EventDispatcher.getInstance().notifyEventAsync(new OnFortSiegeFinish(this), getFort());
}
/**
@@ -304,50 +306,48 @@ public class FortSiege implements Siegable
@Override
public void startSiege()
{
- if (isInProgress())
+ if (!isInProgress())
{
- return;
+ if (_siegeStartTask != null) // used admin command "admin_startfortsiege"
+ {
+ _siegeStartTask.cancel(true);
+ getFort().despawnSuspiciousMerchant();
+ }
+ _siegeStartTask = null;
+
+ if (getAttackerClans().isEmpty())
+ {
+ return;
+ }
+
+ _isInProgress = true; // Flag so that same siege instance cannot be started again
+
+ loadSiegeClan(); // Load siege clan from db
+ updatePlayerSiegeStateFlags(false);
+ teleportPlayer(FortTeleportWhoType.Attacker, TeleportWhereType.TOWN); // Teleport to the closest town
+
+ getFort().despawnNpcCommanders(); // Despawn NPC commanders
+ spawnCommanders(); // Spawn commanders
+ getFort().resetDoors(); // Spawn door
+ spawnSiegeGuard(); // Spawn siege guard
+ getFort().setVisibleFlag(false);
+ getFort().getZone().setSiegeInstance(this);
+ getFort().getZone().setIsActive(true);
+ getFort().getZone().updateZoneStatusForCharactersInside();
+
+ // Schedule a task to prepare auto siege end
+ _siegeEnd = ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleEndSiegeTask(), FortSiegeManager.getInstance().getSiegeLength() * 60 * 1000L); // Prepare auto end task
+
+ final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_FORTRESS_BATTLE_S1_HAS_BEGUN);
+ sm.addCastleId(getFort().getResidenceId());
+ announceToPlayer(sm);
+ saveFortSiege();
+
+ _log.info("Siege of " + getFort().getName() + " fort started.");
+
+ // Notify to scripts.
+ EventDispatcher.getInstance().notifyEventAsync(new OnFortSiegeStart(this), getFort());
}
-
- if (_siegeStartTask != null) // used admin command "admin_startfortsiege"
- {
- _siegeStartTask.cancel(true);
- getFort().despawnSuspiciousMerchant();
- }
- _siegeStartTask = null;
-
- if (getAttackerClans().isEmpty())
- {
- return;
- }
-
- _isInProgress = true; // Flag so that same siege instance cannot be started again
-
- loadSiegeClan(); // Load siege clan from db
- updatePlayerSiegeStateFlags(false);
- teleportPlayer(FortTeleportWhoType.Attacker, TeleportWhereType.TOWN); // Teleport to the closest town
-
- getFort().despawnNpcCommanders(); // Despawn NPC commanders
- spawnCommanders(); // Spawn commanders
- getFort().resetDoors(); // Spawn door
- spawnSiegeGuard(); // Spawn siege guard
- getFort().setVisibleFlag(false);
- getFort().getZone().setSiegeInstance(this);
- getFort().getZone().setIsActive(true);
- getFort().getZone().updateZoneStatusForCharactersInside();
-
- // Schedule a task to prepare auto siege end
- _siegeEnd = ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleEndSiegeTask(), FortSiegeManager.getInstance().getSiegeLength() * 60 * 1000L); // Prepare auto end task
-
- final SystemMessage sm = SystemMessage.getSystemMessage(SystemMessageId.THE_FORTRESS_BATTLE_S1_HAS_BEGUN);
- sm.addCastleId(getFort().getResidenceId());
- announceToPlayer(sm);
- saveFortSiege();
-
- _log.info("Siege of " + getFort().getName() + " fort started.");
-
- // Notify to scripts.
- EventDispatcher.getInstance().notifyEventAsync(new OnFortSiegeStart(this), getFort());
}
/**
@@ -363,19 +363,21 @@ public class FortSiege implements Siegable
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
for (L2PcInstance member : clan.getOnlineMembers(0))
{
- member.sendPacket(sm);
+ if (member != null)
+ {
+ member.sendPacket(sm);
+ }
}
}
- if (getFort().getOwnerClan() == null)
+ if (getFort().getOwnerClan() != null)
{
- return;
- }
- clan = ClanTable.getInstance().getClan(getFort().getOwnerClan().getId());
- for (L2PcInstance member : clan.getOnlineMembers(0))
- {
- if (member != null)
+ clan = ClanTable.getInstance().getClan(getFort().getOwnerClan().getId());
+ for (L2PcInstance member : clan.getOnlineMembers(0))
{
- member.sendPacket(sm);
+ if (member != null)
+ {
+ member.sendPacket(sm);
+ }
}
}
}
@@ -394,6 +396,11 @@ public class FortSiege implements Siegable
clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
for (L2PcInstance member : clan.getOnlineMembers(0))
{
+ if (member == null)
+ {
+ continue;
+ }
+
if (clear)
{
member.setSiegeState((byte) 0);
@@ -414,36 +421,35 @@ public class FortSiege implements Siegable
member.broadcastUserInfo();
}
}
- if (getFort().getOwnerClan() == null)
+ if (getFort().getOwnerClan() != null)
{
- return;
- }
- clan = ClanTable.getInstance().getClan(getFort().getOwnerClan().getId());
- for (L2PcInstance member : clan.getOnlineMembers(0))
- {
- if (member == null)
+ clan = ClanTable.getInstance().getClan(getFort().getOwnerClan().getId());
+ for (L2PcInstance member : clan.getOnlineMembers(0))
{
- continue;
- }
-
- if (clear)
- {
- member.setSiegeState((byte) 0);
- member.setSiegeSide(0);
- member.setIsInSiege(false);
- member.stopFameTask();
- }
- else
- {
- member.setSiegeState((byte) 2);
- member.setSiegeSide(getFort().getResidenceId());
- if (checkIfInZone(member))
+ if (member == null)
{
- member.setIsInSiege(true);
- member.startFameTask(Config.FORTRESS_ZONE_FAME_TASK_FREQUENCY * 1000, Config.FORTRESS_ZONE_FAME_AQUIRE_POINTS);
+ continue;
}
+
+ if (clear)
+ {
+ member.setSiegeState((byte) 0);
+ member.setSiegeSide(0);
+ member.setIsInSiege(false);
+ member.stopFameTask();
+ }
+ else
+ {
+ member.setSiegeState((byte) 2);
+ member.setSiegeSide(getFort().getResidenceId());
+ if (checkIfInZone(member))
+ {
+ member.setIsInSiege(true);
+ member.startFameTask(Config.FORTRESS_ZONE_FAME_TASK_FREQUENCY * 1000, Config.FORTRESS_ZONE_FAME_AQUIRE_POINTS);
+ }
+ }
+ member.broadcastUserInfo();
}
- member.broadcastUserInfo();
}
}
@@ -464,7 +470,7 @@ public class FortSiege implements Siegable
*/
public boolean checkIfInZone(int x, int y, int z)
{
- return isInProgress() && getFort().checkIfInZone(x, y, z); // Fort zone during siege
+ return (isInProgress() && (getFort().checkIfInZone(x, y, z))); // Fort zone during siege
}
/**
@@ -474,7 +480,7 @@ public class FortSiege implements Siegable
@Override
public boolean checkIsAttacker(L2Clan clan)
{
- return getAttackerClan(clan) != null;
+ return (getAttackerClan(clan) != null);
}
/**
@@ -484,7 +490,12 @@ public class FortSiege implements Siegable
@Override
public boolean checkIsDefender(L2Clan clan)
{
- return (clan != null) && (getFort().getOwnerClan() == clan);
+ if ((clan != null) && (getFort().getOwnerClan() == clan))
+ {
+ return true;
+ }
+
+ return false;
}
/** Clear all registered siege clans from database for fort */
@@ -541,8 +552,14 @@ public class FortSiege implements Siegable
final List players = new LinkedList<>();
for (L2SiegeClan siegeclan : getAttackerClans())
{
- for (L2PcInstance player : ClanTable.getInstance().getClan(siegeclan.getClanId()).getOnlineMembers(0))
+ final L2Clan clan = ClanTable.getInstance().getClan(siegeclan.getClanId());
+ for (L2PcInstance player : clan.getOnlineMembers(0))
{
+ if (player == null)
+ {
+ continue;
+ }
+
if (player.isInSiege())
{
players.add(player);
@@ -576,6 +593,11 @@ public class FortSiege implements Siegable
for (L2PcInstance player : clan.getOnlineMembers(0))
{
+ if (player == null)
+ {
+ continue;
+ }
+
if (player.isInSiege())
{
players.add(player);
@@ -592,85 +614,76 @@ public class FortSiege implements Siegable
*/
public void killedCommander(L2FortCommanderInstance instance)
{
- if (_commanders.isEmpty() || (getFort() == null))
+ if ((getFort() != null) && (!_commanders.isEmpty()))
{
- return;
- }
-
- final L2Spawn spawn = instance.getSpawn();
- if (spawn != null)
- {
- final List commanders = FortSiegeManager.getInstance().getCommanderSpawnList(getFort().getResidenceId());
- for (FortSiegeSpawn spawn2 : commanders)
+ L2Spawn spawn = instance.getSpawn();
+ if (spawn != null)
{
- if (spawn2.getId() == spawn.getId())
+ for (FortSiegeSpawn spawn2 : FortSiegeManager.getInstance().getCommanderSpawnList(getFort().getResidenceId()))
{
- NpcStringId npcString = null;
- switch (spawn2.getMessageId())
+ if (spawn2.getId() == spawn.getId())
{
- case 1:
+ NpcStringId npcString = null;
+ switch (spawn2.getMessageId())
{
- npcString = NpcStringId.YOU_MAY_HAVE_BROKEN_OUR_ARROWS_BUT_YOU_WILL_NEVER_BREAK_OUR_WILL_ARCHERS_RETREAT;
- break;
+ case 1:
+ npcString = NpcStringId.YOU_MAY_HAVE_BROKEN_OUR_ARROWS_BUT_YOU_WILL_NEVER_BREAK_OUR_WILL_ARCHERS_RETREAT;
+ break;
+ case 2:
+ npcString = NpcStringId.AIIEEEE_COMMAND_CENTER_THIS_IS_GUARD_UNIT_WE_NEED_BACKUP_RIGHT_AWAY;
+ break;
+ case 3:
+ npcString = NpcStringId.AT_LAST_THE_MAGIC_CIRCLE_THAT_PROTECTS_THE_FORTRESS_HAS_WEAKENED_VOLUNTEERS_STAND_BACK;
+ break;
+ case 4:
+ npcString = NpcStringId.I_FEEL_SO_MUCH_GRIEF_THAT_I_CAN_T_EVEN_TAKE_CARE_OF_MYSELF_THERE_ISN_T_ANY_REASON_FOR_ME_TO_STAY_HERE_ANY_LONGER;
+ break;
}
- case 2:
+ if (npcString != null)
{
- npcString = NpcStringId.AIIEEEE_COMMAND_CENTER_THIS_IS_GUARD_UNIT_WE_NEED_BACKUP_RIGHT_AWAY;
- break;
- }
- case 3:
- {
- npcString = NpcStringId.AT_LAST_THE_MAGIC_CIRCLE_THAT_PROTECTS_THE_FORTRESS_HAS_WEAKENED_VOLUNTEERS_STAND_BACK;
- break;
- }
- case 4:
- {
- npcString = NpcStringId.I_FEEL_SO_MUCH_GRIEF_THAT_I_CAN_T_EVEN_TAKE_CARE_OF_MYSELF_THERE_ISN_T_ANY_REASON_FOR_ME_TO_STAY_HERE_ANY_LONGER;
- break;
+ instance.broadcastSay(ChatType.NPC_SHOUT, npcString);
}
}
- if (npcString != null)
- {
- instance.broadcastPacket(new NpcSay(instance.getObjectId(), ChatType.NPC_SHOUT, instance.getId(), npcString));
- }
}
- }
- _commanders.remove(spawn);
- if (_commanders.isEmpty())
- {
- // spawn fort flags
- spawnFlag(getFort().getResidenceId());
- // cancel door/commanders respawn
- if (_siegeRestore != null)
+ _commanders.remove(spawn);
+ if (_commanders.isEmpty())
{
- _siegeRestore.cancel(true);
- }
- // open doors in main building
- for (L2DoorInstance door : getFort().getDoors())
- {
- if (door.getIsShowHp())
+ // spawn fort flags
+ spawnFlag(getFort().getResidenceId());
+ // cancel door/commanders respawn
+ if (_siegeRestore != null)
{
- continue;
+ _siegeRestore.cancel(true);
}
-
- // TODO this also opens control room door at big fort
- door.openMe();
+ // open doors in main building
+ for (L2DoorInstance door : getFort().getDoors())
+ {
+ if (door.getIsShowHp())
+ {
+ continue;
+ }
+
+ // TODO this also opens control room door at big fort
+ door.openMe();
+ }
+ getFort().getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.ALL_BARRACKS_ARE_OCCUPIED));
+ }
+ // schedule restoring doors/commanders respawn
+ else if (_siegeRestore == null)
+ {
+ getFort().getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.THE_BARRACKS_HAVE_BEEN_SEIZED));
+ _siegeRestore = ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleSiegeRestore(), FortSiegeManager.getInstance().getCountDownLength() * 60 * 1000L);
+ }
+ else
+ {
+ getFort().getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.THE_BARRACKS_HAVE_BEEN_SEIZED));
}
- getFort().getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.ALL_BARRACKS_ARE_OCCUPIED));
}
else
{
- getFort().getSiege().announceToPlayer(SystemMessage.getSystemMessage(SystemMessageId.THE_BARRACKS_HAVE_BEEN_SEIZED));
- if (_siegeRestore == null)
- {
- _siegeRestore = ThreadPoolManager.getInstance().scheduleGeneral(new ScheduleSiegeRestore(), FortSiegeManager.getInstance().getCountDownLength() * 60 * 1000L);
- }
+ _log.warning("FortSiege.killedCommander(): killed commander, but commander not registered for fortress. NpcId: " + instance.getId() + " FortId: " + getFort().getResidenceId());
}
}
- else
- {
- _log.warning("FortSiege.killedCommander(): killed commander, but commander not registered for fortress. NpcId: " + instance.getId() + " FortId: " + getFort().getResidenceId());
- }
}
/**
@@ -720,7 +733,12 @@ public class FortSiege implements Siegable
for (Fort fort : FortManager.getInstance().getForts())
{
- if ((fort.getSiege().getAttackerClan(player.getClanId()) != null) || ((fort.getOwnerClan() == player.getClan()) && (fort.getSiege().isInProgress() || (fort.getSiege()._siegeStartTask != null))))
+ if (fort.getSiege().getAttackerClan(player.getClanId()) != null)
+ {
+ return 3; // Players clan is already registered to siege
+ }
+
+ if ((fort.getOwnerClan() == player.getClan()) && (fort.getSiege().isInProgress() || (fort.getSiege()._siegeStartTask != null)))
{
return 3; // Players clan is already registered to siege
}
@@ -760,14 +778,14 @@ public class FortSiege implements Siegable
{
final String query = (clanId != 0) ? DELETE_FORT_SIEGECLANS_BY_CLAN_ID : DELETE_FORT_SIEGECLANS;
try (Connection con = DatabaseFactory.getInstance().getConnection();
- PreparedStatement ps = con.prepareStatement(query))
+ PreparedStatement statement = con.prepareStatement(query))
{
- ps.setInt(1, getFort().getResidenceId());
+ statement.setInt(1, getFort().getResidenceId());
if (clanId != 0)
{
- ps.setInt(2, clanId);
+ statement.setInt(2, clanId);
}
- ps.execute();
+ statement.execute();
loadSiegeClan();
if (getAttackerClans().isEmpty())
@@ -890,19 +908,13 @@ public class FortSiege implements Siegable
switch (teleportWho)
{
case Owner:
- {
players = getOwnersInZone();
break;
- }
case Attacker:
- {
players = getAttackersInZone();
break;
- }
default:
- {
players = getPlayersInZone();
- }
}
for (L2PcInstance player : players)
@@ -938,9 +950,16 @@ public class FortSiege implements Siegable
continue;
}
- if ((siege.getSiegeDate().get(Calendar.DAY_OF_WEEK) == getSiegeDate().get(Calendar.DAY_OF_WEEK)) && (siege.checkIsAttacker(clan) || siege.checkIsDefender(clan)))
+ if (siege.getSiegeDate().get(Calendar.DAY_OF_WEEK) == getSiegeDate().get(Calendar.DAY_OF_WEEK))
{
- return true;
+ if (siege.checkIsAttacker(clan))
+ {
+ return true;
+ }
+ if (siege.checkIsDefender(clan))
+ {
+ return true;
+ }
}
}
@@ -949,7 +968,7 @@ public class FortSiege implements Siegable
private void setSiegeDateTime(boolean merchant)
{
- final Calendar newDate = Calendar.getInstance();
+ Calendar newDate = Calendar.getInstance();
if (merchant)
{
newDate.add(Calendar.MINUTE, FortSiegeManager.getInstance().getSuspiciousMerchantRespawnDelay());
@@ -987,10 +1006,6 @@ public class FortSiege implements Siegable
/** Remove commanders. */
private void removeCommanders()
{
- if ((_commanders == null) || _commanders.isEmpty())
- {
- return;
- }
// Remove all instance of commanders for this fort
for (L2Spawn spawn : _commanders)
{
@@ -1053,11 +1068,11 @@ public class FortSiege implements Siegable
}
try (Connection con = DatabaseFactory.getInstance().getConnection();
- PreparedStatement ps = con.prepareStatement("INSERT INTO fortsiege_clans (clan_id,fort_id) values (?,?)"))
+ PreparedStatement statement = con.prepareStatement("INSERT INTO fortsiege_clans (clan_id,fort_id) values (?,?)"))
{
- ps.setInt(1, clan.getId());
- ps.setInt(2, getFort().getResidenceId());
- ps.execute();
+ statement.setInt(1, clan.getId());
+ statement.setInt(2, getFort().getResidenceId());
+ statement.execute();
addAttacker(clan.getId());
}
@@ -1116,18 +1131,91 @@ public class FortSiege implements Siegable
}
}
+ public void loadSiegeGuard()
+ {
+ _siegeGuards.clear();
+ try (Connection con = DatabaseFactory.getInstance().getConnection();
+ PreparedStatement ps = con.prepareStatement("SELECT npcId, x, y, z, heading, respawnDelay FROM fort_siege_guards WHERE fortId = ?"))
+ {
+ final int fortId = getFort().getResidenceId();
+ ps.setInt(1, fortId);
+ try (ResultSet rs = ps.executeQuery())
+ {
+ while (rs.next())
+ {
+ final L2Spawn spawn = new L2Spawn(rs.getInt("npcId"));
+ spawn.setAmount(1);
+ spawn.setX(rs.getInt("x"));
+ spawn.setY(rs.getInt("y"));
+ spawn.setZ(rs.getInt("z"));
+ spawn.setHeading(rs.getInt("heading"));
+ spawn.setRespawnDelay(rs.getInt("respawnDelay"));
+ spawn.setLocationId(0);
+
+ _siegeGuards.add(spawn);
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ _log.log(Level.WARNING, "Error loading siege guard for fort " + getFort().getName() + ": " + e.getMessage(), e);
+ }
+ }
+
/**
* Spawn siege guard.
*/
private void spawnSiegeGuard()
{
- getSiegeGuardManager().spawnSiegeGuard();
+ try
+ {
+ for (L2Spawn spawnDat : _siegeGuards)
+ {
+ spawnDat.doSpawn();
+ if (spawnDat.getRespawnDelay() == 0)
+ {
+ spawnDat.stopRespawn();
+ }
+ else
+ {
+ spawnDat.startRespawn();
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ _log.log(Level.WARNING, "Error spawning siege guards for fort " + getFort().getName() + ":" + e.getMessage(), e);
+ }
+ }
+
+ private void unspawnSiegeGuard()
+ {
+ try
+ {
+ for (L2Spawn spawnDat : _siegeGuards)
+ {
+ spawnDat.stopRespawn();
+ if (spawnDat.getLastSpawn() != null)
+ {
+ spawnDat.getLastSpawn().doDie(spawnDat.getLastSpawn());
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ _log.log(Level.WARNING, "Error unspawning siege guards for fort " + getFort().getName() + ":" + e.getMessage(), e);
+ }
}
@Override
public final L2SiegeClan getAttackerClan(L2Clan clan)
{
- return clan == null ? null : getAttackerClan(clan.getId());
+ if (clan == null)
+ {
+ return null;
+ }
+
+ return getAttackerClan(clan.getId());
}
@Override
@@ -1145,7 +1233,7 @@ public class FortSiege implements Siegable
}
@Override
- public final List getAttackerClans()
+ public final Collection getAttackerClans()
{
return _attackerClans;
}
@@ -1171,7 +1259,7 @@ public class FortSiege implements Siegable
{
if (clan != null)
{
- final L2SiegeClan sc = getAttackerClan(clan);
+ L2SiegeClan sc = getAttackerClan(clan);
if (sc != null)
{
return sc.getFlag();
@@ -1181,16 +1269,6 @@ public class FortSiege implements Siegable
return null;
}
- public final FortSiegeGuardManager getSiegeGuardManager()
- {
- if (_siegeGuardManager == null)
- {
- _siegeGuardManager = new FortSiegeGuardManager(getFort());
- }
-
- return _siegeGuardManager;
- }
-
public void resetSiege()
{
// reload commanders and repair doors
@@ -1199,7 +1277,7 @@ public class FortSiege implements Siegable
getFort().resetDoors();
}
- public List getCommanders()
+ public Set getCommanders()
{
return _commanders;
}
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/clanhall/ClanHallSiegeEngine.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/clanhall/ClanHallSiegeEngine.java
index 7ce597d056..d7ae1cf742 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/clanhall/ClanHallSiegeEngine.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/entity/clanhall/ClanHallSiegeEngine.java
@@ -448,7 +448,7 @@ public abstract class ClanHallSiegeEngine extends Quest implements Siegable
public final void broadcastNpcSay(L2Npc npc, ChatType type, NpcStringId messageId)
{
- final NpcSay npcSay = new NpcSay(npc.getObjectId(), type, npc.getId(), messageId);
+ final NpcSay npcSay = new NpcSay(npc, type, messageId);
final int sourceRegion = MapRegionManager.getInstance().getMapRegionLocId(npc);
for (L2PcInstance pc : L2World.getInstance().getPlayers())
{
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/olympiad/OlympiadAnnouncer.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/olympiad/OlympiadAnnouncer.java
index 1792568213..ca7415b681 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/olympiad/OlympiadAnnouncer.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/olympiad/OlympiadAnnouncer.java
@@ -23,7 +23,6 @@ import com.l2jmobius.gameserver.enums.ChatType;
import com.l2jmobius.gameserver.model.L2Spawn;
import com.l2jmobius.gameserver.model.actor.L2Npc;
import com.l2jmobius.gameserver.network.NpcStringId;
-import com.l2jmobius.gameserver.network.serverpackets.NpcSay;
/**
* @author DS
@@ -78,16 +77,12 @@ public final class OlympiadAnnouncer implements Runnable
}
}
- L2Npc manager;
- NpcSay packet;
for (L2Spawn spawn : _managers)
{
- manager = spawn.getLastSpawn();
+ final L2Npc manager = spawn.getLastSpawn();
if (manager != null)
{
- packet = new NpcSay(manager.getObjectId(), ChatType.NPC_SHOUT, manager.getId(), npcString);
- packet.addStringParameter(arenaId);
- manager.broadcastPacket(packet);
+ manager.broadcastSay(ChatType.NPC_SHOUT, npcString, arenaId);
}
}
break;
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/quest/QuestState.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/quest/QuestState.java
index d5d6384b59..e45924f3a7 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/quest/QuestState.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/model/quest/QuestState.java
@@ -1040,7 +1040,7 @@ public final class QuestState
public boolean isNowAvailable()
{
final String val = get("restartTime");
- return (val == null) || !Util.isDigit(val) || (Long.parseLong(val) <= System.currentTimeMillis());
+ return (val != null) && (!Util.isDigit(val) || (Long.parseLong(val) <= System.currentTimeMillis()));
}
/**
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/network/clientpackets/RequestActionUse.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/network/clientpackets/RequestActionUse.java
index 3747561276..ec35a7bfc1 100644
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/network/clientpackets/RequestActionUse.java
+++ b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/network/clientpackets/RequestActionUse.java
@@ -465,7 +465,7 @@ public final class RequestActionUse extends L2GameClientPacket
{
if ((activeChar.getParty() != null) && (activeChar.getTarget() != null) && activeChar.getTarget().isCharacter())
{
- activeChar.getParty().addTacticalSign(_actionId - 77, (L2Character) activeChar.getTarget());
+ activeChar.getParty().addTacticalSign(activeChar, _actionId - 77, (L2Character) activeChar.getTarget());
}
else
{
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/IntList.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/IntList.java
deleted file mode 100644
index 317648b775..0000000000
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/IntList.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- * This file is part of the L2J Mobius project.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jmobius.gameserver.script;
-
-/**
- * @author Luis Arias
- */
-public class IntList
-{
- public static int[] parse(String range)
- {
- if (range.contains("-"))
- {
- return getIntegerRange(range.split("-"));
- }
- else if (range.contains(","))
- {
- return getIntegerList(range.split(","));
- }
-
- final int[] list =
- {
- getInt(range)
- };
- return list;
- }
-
- private static int getInt(String number)
- {
- return Integer.parseInt(number);
- }
-
- private static int[] getIntegerList(String[] numbers)
- {
- final int[] list = new int[numbers.length];
- for (int i = 0; i < list.length; i++)
- {
- list[i] = getInt(numbers[i]);
- }
- return list;
- }
-
- private static int[] getIntegerRange(String[] numbers)
- {
- final int min = getInt(numbers[0]);
- final int max = getInt(numbers[1]);
- final int[] list = new int[(max - min) + 1];
- for (int i = 0; i < list.length; i++)
- {
- list[i] = min + i;
- }
- return list;
- }
-}
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/ScriptPackage.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/ScriptPackage.java
deleted file mode 100644
index 2ce617e743..0000000000
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/ScriptPackage.java
+++ /dev/null
@@ -1,130 +0,0 @@
-/*
- * This file is part of the L2J Mobius project.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jmobius.gameserver.script;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Enumeration;
-import java.util.List;
-import java.util.logging.Logger;
-import java.util.zip.ZipEntry;
-import java.util.zip.ZipFile;
-
-import com.l2jmobius.Config;
-
-/**
- * @author Luis Arias
- */
-public class ScriptPackage
-{
- private static final Logger _log = Logger.getLogger(ScriptPackage.class.getName());
-
- private final List _scriptFiles = new ArrayList<>();
- private final List _otherFiles = new ArrayList<>();
- private final String _name;
-
- public ScriptPackage(ZipFile pack)
- {
- _name = pack.getName();
- addFiles(pack);
- }
-
- /**
- * @return Returns the otherFiles.
- */
- public List getOtherFiles()
- {
- return _otherFiles;
- }
-
- /**
- * @return Returns the scriptFiles.
- */
- public List getScriptFiles()
- {
- return _scriptFiles;
- }
-
- /**
- * @param pack
- */
- private void addFiles(ZipFile pack)
- {
- for (Enumeration extends ZipEntry> e = pack.entries(); e.hasMoreElements();)
- {
- final ZipEntry entry = e.nextElement();
- if (entry.getName().endsWith(".xml"))
- {
- try
- {
- _scriptFiles.add(new ScriptDocument(entry.getName(), pack.getInputStream(entry)));
- }
- catch (IOException io)
- {
- _log.warning(getClass().getSimpleName() + ": " + io.getMessage());
- }
- }
- else if (!entry.isDirectory())
- {
- _otherFiles.add(entry.getName());
- }
- }
- }
-
- /**
- * @return Returns the name.
- */
- public String getName()
- {
- return _name;
- }
-
- @Override
- public String toString()
- {
- if (getScriptFiles().isEmpty() && getOtherFiles().isEmpty())
- {
- return "Empty Package.";
- }
-
- final StringBuilder out = new StringBuilder();
- out.append("Package Name: ");
- out.append(getName());
- out.append(Config.EOL);
-
- if (!getScriptFiles().isEmpty())
- {
- out.append("Xml Script Files..." + Config.EOL);
- for (ScriptDocument script : getScriptFiles())
- {
- out.append(script.getName());
- out.append(Config.EOL);
- }
- }
-
- if (!getOtherFiles().isEmpty())
- {
- out.append("Other Files..." + Config.EOL);
- for (String fileName : getOtherFiles())
- {
- out.append(fileName);
- out.append(Config.EOL);
- }
- }
- return out.toString();
- }
-}
diff --git a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/ShortList.java b/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/ShortList.java
deleted file mode 100644
index 8e7d2c27f8..0000000000
--- a/L2J_Mobius_Test/java/com/l2jmobius/gameserver/script/ShortList.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * This file is part of the L2J Mobius project.
- *
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program. If not, see .
- */
-package com.l2jmobius.gameserver.script;
-
-/**
- * @author -Nemesiss-
- */
-public class ShortList
-{
- public static short[] parse(String range)
- {
- if (range.contains("-"))
- {
- return getShortList(range.split("-"));
- }
- else if (range.contains(","))
- {
- return getShortList(range.split(","));
- }
-
- final short[] list =
- {
- getShort(range)
- };
- return list;
- }
-
- private static short getShort(String number)
- {
- return Short.parseShort(number);
- }
-
- private static short[] getShortList(String[] numbers)
- {
- final short[] list = new short[numbers.length];
- for (int i = 0; i < list.length; i++)
- {
- list[i] = getShort(numbers[i]);
- }
- return list;
- }
-}