Jump to content

Recommended Posts

Posted

Hi guys!

 

With this script you can send announces in-game via web.

 

You need configure your telnet.properties in config folder of you gameserver

 

Example

 

EnableTelnet = True

# This is the port L2J should listen to for incoming telnet
# requests.
# Default: 12345
StatusPort = 12345

# If the following is not set, a random password is generated on server startup.
# Usage: StatusPW = somePass
StatusPW = PASSWORD

# This list can contain IPs or Hosts of clients you wish to allow. Hostnames must be resolvable to an IP.
# Example: 0.0.0.0,host,0.0.0.1,host2,host3,host4,0.0.0.3
# Default: 127.0.0.1,localhost
ListOfHosts = 127.0.0.1,localhost

 

 

 

Remember your php files must stay in allowed host.

 

 

announce.php (or index, or what you like)

 

<html>
<head>
<title>Announce</title>
<style type="text/css">
<!--

.formname { width: 700px; 
font-size: 12px;
font-family: tahoma,helvetica;
color: #222222;
background-color: #F1F1F1;
border:2px solid #444444;
border-top-width : 2px;
border-right-width : 2px;
border-bottom-width : 2px;
border-left-width : 2px;
text-indent : 2px;

}

.form { width: 100px; 
font-size: 12px;
font-family: tahoma,helvetica;
color: #202020;
border:2px solid #000000;
text-indent : 2px;
}



body,td,th {
font-family: Verdana, Arial, Helvetica, sans-serif;
font-size: 12px;
color: #cccccc;
background-color: #333333;
}

-->
</style>

</head>
<body>
<?php
echo "
	<br><br><table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">
	<tr>
	<td class=\"noborderback\"><form action=\"makeannounce.php\"><input name=\"sendchat\" maxlength=\"140\" size=\"50\" type=\"text\" value=\"\" class=\"formname\"></td></tr>
	<tr><td align=\"right\"><input value=\"Send Announcement\" onclick=\"submit\" height=\"9\" type=\"submit\" class=\"form\">
	</form></td>
	</tr></table>
";
?>
</body>
</html>

 

 

makeannounce.php

 

<?php
$usetelnet = fsockopen("HOST OR IP", "TELNET PORT", $errno, $errstr, 30);
if($usetelnet) {

$sendchat = $_REQUEST['sendchat'];
$give_string = 'announce ' . $sendchat; // Don't touch... but... "announce" is the Telnet command, maybe you can "discover" other commands.

fputs($usetelnet, "PASSWORD"); //this is password of telnet in telnet.properties you can change it
fputs($usetelnet, "\r\n"); // Don't touch xD
fputs($usetelnet, $give_string); // Don't touch xD
fputs($usetelnet, "\r\n"); // Don't touch xD
fputs($usetelnet, "exit\r\n"); // Don't touch... mmmmm... Exit (?)
}
?>

<!-- This retunr to the "index", in this case, announce.php after sending the announcement.  -->
<meta http-equiv="refresh" content="0.1; URL=announce.php">

 

 

And...

 

All telnet commands:

 

status - displays basic server statistics.

performance - shows server performance statistics.

forcegc - forced garbage collection.

purge - removes finished threads from thread pools.

memusage - displays memory amounts in JVM.

announce <text> - announces <text> in game.

msg <nick> <text> - Sends a whisper to char <nick> with <text>.

gmchat <text> - Sends a message to all GMs with <text>.

gmlist - lists all gms online.

kick - kick player <name> from server.

shutdown <time> - shuts down server in <time> seconds.

restart <time> - restarts down server in <time> seconds.

abort - aborts shutdown/restart.

give <player> <itemid> <amount>

enchant <player> <itemType> <enchant> (itemType: 1 - Helmet, 2 - Chest, 3 - Gloves, 4 - Feet, 5 - Legs, 6 - Right Hand, 7 - Left Hand, 8 - Left Ear, 9 - Right Ear , 10 - Left Finger, 11 - Right Finger, 12- Necklace, 13 - Underwear, 14 - Back, 15 - Belt, 0 - No Enchant)

extlist - list all loaded extension classes

extreload <name> - reload and initializes the named extension or all if used without argument

extinit <name> - initilizes the named extension or all if used without argument

extunload <name> - unload the named extension or all if used without argument

debug <cmd> - executes the debug command (see 'help debug').

jail <player> [time]

unjail <player>

 

 

PS: Commands that expect an answer not serve this purpose because there is no console.

However you can use several like (announce, msg, gmchat, kick, shutdown, restart, give (only if char is online), enchat.... etc..)

 

 

Hope you like this  ;)  (credits to me)

Posted

Good, it is really great.

But I will pass because I don't have a serv. ... :)

But still, thx for this :)

It is really great.. I think ;D

Posted

Good Share, can you put credits? Or maybe its yours.

 

Credits to me ;)

 

But I take "All telnet commands list" from l2j forum.

  • 2 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now


  • Posts

    • Hey everyone, I was wondering if anyone knows where the client loads all the .dat files. Is there some kind of manifest or list you can specify which dat files the client loads?
    • 🔥 Welcome to Lineage 2 Haruna x3 – True Classic Interlude Experience 🔥 At Haruna x3, we’re bringing back the true essence of Interlude – slow, meaningful progression where every level matters, every item has value, and PvP is real. We’re not about fast servers, pay-to-win advantages, or fake populations. Our goal is simple: create a fair, stable, and long-term server where players can enjoy real competition, strategic clan warfare, and the thrill of open-world PvP. 💎 What Makes Haruna x3 Special? x3 Rates – Perfect for steady, rewarding progression Classic Interlude Mechanics – Relive the nostalgia of Interlude Stable & Lag-Free Gameplay – Optimized for thousands of players online Fair & Balanced – No pay-to-win, every victory is earned PvP & Clan Warfare Focused – Every battle counts 🌟 Quality of Life Features to Enhance Your Experience We keep the classic feel while adding features that make the game more convenient and enjoyable, including: Shift + Click to view monster droplists Free item mail and buy/sell via Adena Daily login rewards & Stream Rewards ALT+K Skill Panel & Alt+Click buffs removal Offline shop system Captcha for security Donate Coins currency (cannot be traded, dropped, or destroyed) Classic P110 client – no custom interface 🏰 Our Philosophy We believe Lineage 2 is about the journey, not just the destination. Haruna x3 is designed for months and years of growth, not weeks. We provide a community-driven environment where honest gameplay, fair competition, and strategic teamwork are at the forefront. 🌍 Join Our Community Whether you’re a veteran of Interlude or a returning player seeking a true classic experience, Haruna x3 offers a place to fight, trade, and grow alongside dedicated players. Step into the world of Haruna x3 – where every decision matters, every fight counts, and every victory is yours to earn. Discord: https://discord.gg/7DDC9Dsxnh Website : www.l2haruna.com
    • No, the real purpose is cheating and custom  development for games.  I'm building a custom AI moderator specially for checking illegal activity and flag current topica.
    • Hello trying to edit Armorgrp_Classic.dat using L2ClientDat Editor - l2jmobius edition I can normally open a file but can't save, even can't save "clean" version of file (just open and then click save) Other files i can normally open, edit and save. but there is problem with Armorgrp_Classic.dat Anyone find solution, or other Editor for protocol 166 ?   [25/12 15:10:11] --------------------------------------- [25/12 15:10:11] Open file: Armorgrp_Classic.dat [25/12 15:10:11] File Armorgrp_Classic.dat encrypted. Lineage2Ver413 decrypt ... [25/12 15:10:11] Decrypt Armorgrp_Classic.dat file successfully by v413_encdec decrypter. [25/12 15:10:11] Read the file structure ... [25/12 15:10:11] Unpacking [L2GameDataName.dat] [25/12 15:10:11] GameDataName: Load 97534 count. [25/12 15:10:11] Completed. [25/12 15:11:32] Wrong param count for wrapper: fertheia_mesh_add, paramIndex: 1, params: {{{[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11;[none]};{{109;114};{0;-1};{109;114};{0;-1};{109;114}}};{[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None]};[None]} -node: fertheia_mesh_add[WRAPPER][null][null] param: {{{[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11;[none]};{{109;114};{0;-1};{109;114};{0;-1};{109;114}}};{[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None]};[None]} org.l2jmobius.xml.exceptions.PackDataException: Wrong param count for wrapper: fertheia_mesh_add, paramIndex: 1, params: {{{[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11;[none]};{{109;114};{0;-1};{109;114};{0;-1};{109;114}}};{[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None]};[None]} -node: fertheia_mesh_add[WRAPPER][null][null] param: {{{[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11];[None];[LineageAccessory3.fertheia_pvp_Hrm_ad11;[none]};{{109;114};{0;-1};{109;114};{0;-1};{109;114}}};{[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None];[Mantleguild.kingdom.E_elmd_1_t00];[None]};[None]} at org.l2jmobius.xml.DescriptorWriter.packData(DescriptorWriter.java:275) at org.l2jmobius.xml.DescriptorWriter.packData(DescriptorWriter.java:184) at org.l2jmobius.xml.DescriptorWriter.parseData(DescriptorWriter.java:100) at org.l2jmobius.actions.SaveDat.action(SaveDat.java:70) at org.l2jmobius.actions.ActionTask.doInBackground(ActionTask.java:48) at org.l2jmobius.actions.ActionTask.doInBackground(ActionTask.java:27) at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:303) at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328) at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:340) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1095) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:619) at java.base/java.lang.Thread.run(Thread.java:1447) [25/12 15:11:32] buff == null.  
  • Topics

×
×
  • Create New...

AdBlock Extension Detected!

Our website is made possible by displaying online advertisements to our members.

Please disable AdBlock browser extension first, to be able to use our community.

I've Disabled AdBlock