Jump to content

Recommended Posts

Posted

This is the same as my other thread's autoreply, but without the bugs :)

 

Features

-auto reply for any kind of chat

-auto reply for being attacked, magic, melee, ranged

-alarms for chat

-alarms for grief

-alarms for getting attacked

-detection if the same user is bot-testing you

-multiple replys per word

-detects partial phrases

-liberty to add more then one reply per detection word

more

 

FACTS

-More powerful then L2Walker's auto-reply

-Works with any other scripts, just include it

-Smart detection to not be replying to the same person

-delay between speeches, no multiple conversations

-Alarms in case you want them

-Kickass writer.

-L2.NET compatible

 

:)

 

report bugs in this forum for faster responses,

http://insane-gamers.com/showthread.php/4472-Auto-Reply-Official-Release?highlight=auto-reply

or reply here.

 

PRINT_TEXT "Autoreply script made by mpj123, this is the STAND ALONE version v1.2"
PRINT_TEXT "Special thanks to d00d for the packet info from his Buff Awareness Script"
PRINT_TEXT "Special thanks to galozeh, and Jeapordy for ideas, beta testing and code."
PRINT_TEXT "And ofc slothmo for his hard work, making this possible :)"
PRINT_TEXT "More scripts at ltwonet.com! JOIN US NOW! Be a part of the L2.NET community!"

//Debug? 0 = off // 1 = on
DEFINE_GLOBAL INT DEBUG 1

//How many seconds before another message can be sent? Calculated in SECONDS.
//Recommended 10 to 60
DEFINE_GLOBAL INT DelayBetweenMessages 1

//Do you want to allow sound alerts for chat messages? 0 = off // 1 = on
DEFINE_GLOBAL INT ENABLESOUND 1

//Do you want to allow sound alerts when being attacked by the same person? 0 = off // 1 = on
DEFINE_GLOBAL INT ENABLESOUND2 1

//Do you want to replys to melee skills (when a player attacks you) 0 = off // 1 = on
DEFINE_GLOBAL INT MELEEREPLYTOGGLE 1

//Do you want to replys to any skills (when a player attacks you) 0 = off // 1 = on
DEFINE_GLOBAL INT SKILLREPLYTOGGLE 1

//Do you want to allow alerts for when a player attacks you
DEFINE_GLOBAL INT ENABLESOUND3 1

//Do you want to replys to ANY chat? 
//WARNING, if this is turned off, no replys will be made to ANY chat channels! 0 = off // 1 = on
DEFINE_GLOBAL INT CHATREPLYTOGGLE 1

//Which channel should be monitored... /// 1 = enable // 0 = disable
//All chat
DEFINE_GLOBAL INT CHAN0 1
//Shout
DEFINE_GLOBAL INT CHAN1 1
//Private message
DEFINE_GLOBAL INT CHAN2 1
//Party chat
DEFINE_GLOBAL INT CHAN3 0
//Clan chat
DEFINE_GLOBAL INT CHAN4 0
//GM
DEFINE_GLOBAL INT CHAN5 1
//Petition
DEFINE_GLOBAL INT CHAN6 1
//Petition2
DEFINE_GLOBAL INT CHAN7 1
//Trade
DEFINE_GLOBAL INT CHAN8 0
//Ally chat
DEFINE_GLOBAL INT CHAN9 0
//Announcement
DEFINE_GLOBAL INT CHAN10 0
//Boat chat
DEFINE_GLOBAL INT CHAN11 0
//partyroom chat
DEFINE_GLOBAL INT CHAN15 0
//PartyCommander chat
DEFINE_GLOBAL INT CHAN16 0
//Hero
DEFINE_GLOBAL INT CHAN17 0


//your nicknames.... for instance if you name is killerbeast, your nicknames could be Kill, Beast
//WARNING, names MUST BE IN lower case! KILLERBEAST would NEED to be killerbeast to work.
DEFINE_GLOBAL ARRAYLIST MyName 0
MyName.ADD "#$kill"
MyName.ADD "#$beast"
MyName.ADD "#$killbeast"
//add more if you wish

//If somebody attacks you with a skill or melee
DEFINE_GLOBAL ARRAYLIST AttackReply 0
AttackReply.ADD "#$Yo buddy"
AttackReply.ADD "#$Not nice :("
AttackReply.ADD "#$WAAAA"
//add more if you wish

//This arraylist is to define all the words you wish to reply to.
DEFINE_GLOBAL ARRAYLIST STRINGREPLY 0
STRINGREPLY.ADD "#$bot" //1
STRINGREPLY.ADD "#$noob" //2
STRINGREPLY.ADD "#$naab" //3
STRINGREPLY.ADD "#$<&CHAR_NAME&>" //4
//add more if you wish

//
//Start of replys
//

DEFINE_GLOBAL ARRAYLIST Reply1 0
Reply1.ADD "#$Nope"
Reply1.ADD "#$haha"
//add more if you wish

DEFINE_GLOBAL ARRAYLIST Reply2 0
Reply2.ADD "#$Low."
Reply2.ADD "#$I cant say  :)"
Reply2.ADD "#$No comprende BR mangs! JAJAJA"
//add more if you wish

DEFINE_GLOBAL ARRAYLIST Reply3 0
Reply3.ADD "#$Low."
Reply3.ADD "#$I cant say  :)"
Reply3.ADD "#$No comprende BR mangs! JAJAJA"
//add more if you wish

DEFINE_GLOBAL ARRAYLIST Reply4 0
Reply4.ADD "#$Am I ^^"
//add more if you wish

//
//End of replys
//

DEFINE_GLOBAL ARRAYLIST PHRASEREPLY 0

//you will need to add more Reply(number) if you added more responses.
PHRASEREPLY.ADD Reply1
PHRASEREPLY.ADD Reply2
PHRASEREPLY.ADD Reply3
PHRASEREPLY.ADD Reply4
//add more if you wish


//
//
//
//
//END OF USER-SET OPTIONS
//
//DO NOT TOUCH
//
//
//
//

//Arraylists
DEFINE_GLOBAL ARRAYLIST SAVELIST 0

//INT
DEFINE_GLOBAL INT IsItPrivate 0
DEFINE_GLOBAL INT PhraseToSay 0
DEFINE_GLOBAL INT PhraseToSay2 0
DEFINE_GLOBAL INT HowManyLines 0
DEFINE_GLOBAL INT MESSAGEVAR 0
DEFINE_GLOBAL INT MESSAGESENT 0
DEFINE_GLOBAL INT CURRENTNUMBER 0
DEFINE_GLOBAL INT TYPEMESSAGE 0
DEFINE_GLOBAL INT LASTID 0
DEFINE_GLOBAL INT GLOBALTIMER 10
DEFINE_GLOBAL INT TimeCalc 0
DEFINE_GLOBAL INT TimeCalc1 0
DEFINE_GLOBAL INT DONOTTALK 0

//STRINGS
DEFINE_GLOBAL STRING PNAME ""
DEFINE_GLOBAL STRING MESSAGELOWER ""
DEFINE_GLOBAL STRING STRCURRENT ""
DEFINE_GLOBAL STRING MESSAGEREPLY ""
DEFINE_GLOBAL STRING MESSAGEREPLY2 ""
DEFINE_GLOBAL STRING HowManyLines2 ""
DEFINE_GLOBAL STRING SelfReply "-><&Char_name&>"

IF MELEEREPLYTOGGLE == ONE
  //Melee Attack
  SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" Melee 51
ENDIF
IF SKILLREPLYTOGGLE == ONE
  //Skill User
  SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" SkillUser 72
  //Canceled skill
  SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" NOTHING 73
ENDIF

IF CHATREPLYTOGGLE == ONE
  //Chat
  SET_EVENT "<&SCRIPTEVENT_CHAT&>" "<&SYSTEM_CURRENTFILE&>" Reply
ENDIF

//Time Counter and Infinit Loop
IF DEBUG == ONE
  PRINT_TEXT "TimeCounter thread started"
ENDIF
GLOBALTIMER = DelayBetweenMessages
WHILE ZERO == ZERO
  SLEEP 1000
  GLOBALTIMER = GLOBALTIMER + ONE
     IF DEBUG == ONE
        //PRINT_TEXT "<&GLOBALTIMER&>"
  ENDIF
WEND
************************************************************************************************************
***************************************Functions**************************************************************
************************************************************************************************************
//
//FUNCTION REPLY
//

Function REPLY

IF MESSAGESENT == 1
 IF DEBUG == 1
   PRINT_TEXT "Already in message sending process, not applying reply"
 ENDIF
 RETURN VOID
ENDIF

IF SENDERNAME == SelfReply
  IF DEBUG == ONE
     PRINT_TEXT "Self testing.... ignoring second PM"
  ENDIF
  RETURN VOID
ENDIF

MESSAGELOWER = MESSAGE.TO_LOWER_INVARIANT
TYPEMESSAGE = MESSAGETYPE

IF DEBUG == ONE
  PRINT_TEXT "in REPLY function"
  PRINT_TEXT "This is the message: <&MESSAGE&>"
  PRINT_TEXT "This is the message in lower caps: <&MESSAGELOWER&>"
  PRINT_TEXT "This is a name to ignore: <&SelfReply&>"
ENDIF

IF ENABLESOUND == ONE
  FOREACH I STRING MyName
     PNAME = MyName.I
     //Print_text "<&PNAME&>"
     IF "MESSAGELOWER.CONTAINS PNAME" == TRUE
        PRINT_TEXT "PLAYING WAVE SOUND, <&SENDERNAME&> is calling us!"
        PLAYALARM
     ENDIF
  NEXTEACH
ENDIF

TimeCalc1 = GLOBALTIMER - TimeCalc
IF TimeCalc1 < DelayBetweenMessages
  IF DEBUG == ONE
     PRINT_TEXT "Can't be spamming like crazy. User set time until next message can be sent:<&DelayBetweenMessages&> and current time: <&TimeCalc1&>"
  ENDIF
  RETURN VOID
ENDIF

MESSAGESENT = 1
CALLSUB REPLYNOW
MESSAGESENT = 0
RETURN VOID

//
//Melee
//

FUNCTION Melee
IF DEBUG == ONE
  PRINT_TEXT "in Melee function"
ENDIF
DEFINE STRING TargeteeName ""
DEFINE INT p_MSU_packet_type2 0
DEFINE INT p_MSU_source_id2 0
DEFINE INT p_MSU_target_id2 0

PACKET.READ_BYTE p_MSU_packet_type2
PACKET.READ_INT32 p_MSU_source_id2
PACKET.READ_INT32 p_MSU_target_id2

CHAR_GET_NAME TargeteeName "<&p_MSU_source_id2&>"

IF DEBUG == ONE
  PRINT_TEXT "This is the name of the attacker: <&TargeteeName&>"
ENDIF

IF TargeteeName == "#$<&CHAR_NAME&>"
  IF DEBUG == ONE
     PRINT_TEXT "seems like this packet is from ourselves attacking, not replying to this"
  ENDIF
  RETURN VOID
ENDIF

IF TargeteeName == "#$-nobody-"
  IF DEBUG == ONE
     PRINT_TEXT "This is a mob attacking, no need to reply"
  ENDIF
  RETURN VOID
ENDIF

IF DEBUG == ONE
  PRINT_TEXT "attack coming from:<&p_MSU_source_id2&> Hitting: <&p_MSU_target_id2&>"
ENDIF

IF ENABLESOUND3 == ONE
  IF DEBUG == ONE
     PRINT_TEXT "Melee function alarm activated!"
  ENDIF
  PLAYALARM
ENDIF

IF LASTID == p_MSU_source_id2
  IF DEBUG == ONE
     PRINT_TEXT "Hey, thats the same person trying to get us to talk again! What a douche."
  ENDIF
  IF ENABLESOUND2 == ONE
     IF DEBUG == ONE
        PRINT_TEXT "ENABLESOUND2 is ringing!"
     ENDIF
     PLAYALARM
  ENDIF
ENDIF

IF p_MSU_target_id2 == CHAR_ID
  LASTID = p_MSU_source_id2
  TimeCalc1 = GLOBALTIMER - TimeCalc
  IF TimeCalc1 < DelayBetweenMessages
     IF DEBUG == ONE
        PRINT_TEXT "Can't be spamming like crazy. User set time until next message can be sent:<&DelayBetweenMessages&> and current time: <&TimeCalc1&>"
     ENDIF
     RETURN VOID
  ENDIF
  IF DEBUG == ONE
     PRINT_TEXT "We are getting hit with melee or ranged."
     PRINT_TEXT "Our char ID = <&CHAR_ID&>"
  ENDIF
  MESSAGESENT = 1
  CALLSUB TALKBACK
  MESSAGESENT = 0
ENDIF

RETURN VOID

//
//FUNCTION SkillUser
//

FUNCTION SkillUser
IF DEBUG == ONE
  PRINT_TEXT "in SkillUser function"
ENDIF

DEFINE INT p_MSU_packet_type 0
DEFINE INT p_MSU_source_id 0
DEFINE INT p_MSU_target_id 0
DEFINE INT p_MSU_skill_id 0
DEFINE INT p_MSU_skill_level 0
DEFINE INT p_MSU_hit_time 0
DEFINE INT p_MSU_reuse_delay 0

PACKET.READ_BYTE p_MSU_packet_type
PACKET.READ_INT32 p_MSU_source_id
PACKET.READ_INT32 p_MSU_target_id
PACKET.READ_INT32 p_MSU_skill_id
PACKET.READ_INT32 p_MSU_skill_level
PACKET.READ_INT32 p_MSU_hit_time
PACKET.READ_INT32 p_MSU_reuse_delay

DEFINE STRING TargeteeName ""
CHAR_GET_NAME TargeteeName "<&p_MSU_source_id&>"

IF DEBUG == ONE
  PRINT_TEXT "This is the name of the attacker: <&TargeteeName&>"
ENDIF

IF TargeteeName == "#$<&CHAR_NAME&>"
  IF DEBUG == ONE
     PRINT_TEXT "seems like this packet is from ourselves attacking, not replying to this"
  ENDIF
  RETURN VOID
ENDIF

IF TargeteeName == "#$-nobody-"
  IF DEBUG == ONE
     PRINT_TEXT "This is a mob attacking, no need to reply"
  ENDIF
  RETURN VOID
ENDIF

IF ENABLESOUND3 == ONE
  IF DEBUG == ONE
     PRINT_TEXT "Skill function alarm activated!"
  ENDIF
  PLAYALARM
ENDIF

IF DEBUG == ONE
  PRINT_TEXT "Who the caster is targetting: ID = <&p_MSU_target_id&>"
ENDIF

IF LASTID == p_MSU_source_id
  IF DEBUG == ONE
     PRINT_TEXT "Hey, thats the same person trying to get us to talk again! What a douche."
  ENDIF
  IF ENABLESOUND2 == ONE
     PLAYALARM
  ENDIF
ENDIF

IF p_MSU_target_id == CHAR_ID
  LASTID = p_MSU_source_id
  TimeCalc1 = GLOBALTIMER - TimeCalc
  IF TimeCalc1 < DelayBetweenMessages
     IF DEBUG == ONE
        PRINT_TEXT "Can't be spamming like crazy. User set time until next message can be sent:<&DelayBetweenMessages&> and current time: <&TimeCalc1&>"
     ENDIF
  RETURN VOID
  ENDIF
  
  IF DEBUG == ONE
     PRINT_TEXT "We are getting casted on with magic by <&p_MSU_source_id&> in <&p_MSU_hit_time&> Milliseconds"
     PRINT_TEXT "Our char ID = <&CHAR_ID&>"
  ENDIF
  MESSAGESENT = 1
  CALLSUB SKILLWATCHFORCANCEL
  MESSAGESENT = 0
ENDIF
RETURN VOID

//
//Fucntion SkillCanceled
//

FUNCTION SkillCanceled
IF DEBUG == ONE
  PRINT_TEXT "in SkillCanceled function"
ENDIF
DEFINE INT p_MSU_packet_type2 0
DEFINE INT p_MSU_source_id2 0

PACKET.READ_BYTE p_MSU_packet_type2
PACKET.READ_INT32 p_MSU_source_id2

IF DEBUG == ONE
  PRINT_TEXT "<&p_MSU_source_id2&>"
ENDIF

IF LASTID == p_MSU_source_id2
  IF DEBUG == ONE
     PRINT_TEXT "User stopped his cast! We wont say anything!"
  ENDIF
  DONOTTALK = ONE
ENDIF
RETURN VOID

FUNCTION NOTHING
IF DEBUG == ONE
  PRINT_TEXT "Function NOTHING fired up"
ENDIF
//does nothing
RETURN VOID

************************************************************************************************************
***************************************SUBS**************************************************************
************************************************************************************************************

SUB REPLYNOW

//
//Pre message-code, do not touch unless you know what your doing.
//
IF DEBUG == ONE
  PRINT_TEXT "in REPLYNOW sub"
ENDIF

SWITCH TYPEMESSAGE
   CASE #i0
       IF CHAN0 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i0
       BREAK 1
   CASE #i1
       IF CHAN1 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i1
       BREAK 1
   CASE #i2
       IF CHAN2 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i2
       BREAK 1
   CASE  #i3
       IF CHAN3 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i3
       BREAK 1
   CASE #i4
       IF CHAN4 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i4
       BREAK 1
   CASE #i5
       IF CHAN5 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i5
   BREAK 1
   CASE  #i6
       IF CHAN6 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i6
       BREAK 1
   CASE  #i7
       IF CHAN7 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i7
       BREAK 1
   CASE  #i8
       IF CHAN8 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i8
       BREAK 1
   CASE  #i9
       IF CHAN9 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i9
   BREAK 1
   CASE  #i10
       IF CHAN10 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i10
       BREAK 1
   CASE  #i11
       IF CHAN11 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i11
       BREAK 1
   CASE  #i15
       IF CHAN15 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i15
       BREAK 1
   CASE  #i16
       IF CHAN16 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i16
       BREAK 1
   CASE  #i17
       IF CHAN17 != #i1
           RETURNSUB
       ENDIF
       MESSAGEVAR = #i17
       BREAK 1
   DEFAULT
       RETURNSUB
       BREAK 1
ENDSWITCH

//
//END of pre-message code
//

FOREACH W string STRINGREPLY
STRCURRENT = "#$<&STRINGREPLY.W&>"
SAVELIST = PHRASEReply.W
HowManyLines = SAVELIST.COUNT

IF DEBUG == ONE
  PRINT_TEXT "HowManyLines = <&HowManyLines&>"
ENDIF

IF "MESSAGELOWER.CONTAINS #$<&STRCURRENT&>" == TRUE
 GET_RAND PhraseToSay 1 "<&HowManyLines&>"
 PhraseToSay = PhraseToSay - 1
 SLEEP 500
 SLEEP_HUMAN_READING "<&MESSAGE&>"
 SLEEP_HUMAN_WRITING "<&MESSAGEREPLY&>"
 TimeCalc = GLOBALTIMER
 SAY_TEXT "<&MESSAGEVAR&>" "<&SAVELIST.PhraseToSay&>" "<&SENDERNAME&>"
 RETURNSUB
ENDIF
NEXTEACH
RETURNSUB


//
//SUB SKILLWATCHFORCANCEL
//

SUB SKILLWATCHFORCANCEL
LOCK SkillUser
SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" SkillCanceled 73
SLEEP "<&p_MSU_hit_time&>"
SET_EVENT "<&SCRIPTEVENT_SERVERPACKET&>" "<&SYSTEM_CURRENTFILE&>" NOTHING 73
UNLOCK SkillUser
CALLSUB TALKBACK
RETURNSUB

//
//SUB TALKBACK
//

SUB TALKBACK
IF DONOTTALK == ZERO
   TimeCalc = GLOBALTIMER
   HowManyLines2 = "AttackReply.COUNT"
   GET_RAND PhraseToSay2 1 "<&HowManyLines2&>"
   PhraseToSay2 = PhraseToSay2 - 1
   MESSAGEREPLY2 = "#$AttackReply.PhraseToSay2"
   SLEEP 2000
   SLEEP_HUMAN_WRITING "<&MESSAGEREPLY2&>"
   SAY_TEXT "CHANNEL_ALL" "<&<&MESSAGEREPLY2&>&>"
ELSE
  IF DEBUG == ONE
     PRINT_TEXT "-beep-er canceled his skill, trying to see if were bots, not replying."
  ENDIF
ENDIF
DONOTTALK = ZERO
RETURNSUB

 

output:

9:48:26 AM :[HowManyLines = 1

9:48:26 AM :[HowManyLines = 3

9:48:26 AM :[HowManyLines = 3

9:48:26 AM :[HowManyLines = 2

9:48:26 AM :[in REPLYNOW sub

9:48:26 AM :[This is a name to ignore: ->mpj123

9:48:26 AM :[This is the message in lower caps: haha

9:48:26 AM :[This is the message: haha

9:48:26 AM :[in REPLY function

9:48:26 AM :[mpj123: haha

9:48:25 AM :[HowManyLines = 2

9:48:25 AM :[in REPLYNOW sub

9:48:25 AM :[This is a name to ignore: ->mpj123

9:48:25 AM :[This is the message in lower caps: effin bot!

9:48:25 AM :[This is the message: effin bot!

9:48:25 AM :[in REPLY function

9:48:25 AM :[asdasd: effin bot!

9:48:19 AM :[HowManyLines = 1

9:48:19 AM :[HowManyLines = 3

9:48:19 AM :[HowManyLines = 3

9:48:19 AM :[HowManyLines = 2

9:48:19 AM :[in REPLYNOW sub

9:48:19 AM :[This is a name to ignore: ->mpj123

9:48:19 AM :[This is the message in lower caps: not nice :(

9:48:19 AM :[This is the message: Not nice :(

9:48:19 AM :[in REPLY function

9:48:19 AM :[mpj123: Not nice :(

9:48:14 AM :[mpj123 has received 2 damage from asdasd.

9:48:13 AM :[Our char ID = 268504448

9:48:13 AM :[We are getting hit with melee or ranged.

9:48:13 AM :[ENABLESOUND2 is ringing!

9:48:13 AM :[Hey, thats the same person trying to get us to talk again! What a douche.

9:48:13 AM :[Melee function alarm activated!

9:48:13 AM :[attack coming from:268530598 Hitting: 268504448

9:48:13 AM :[This is the name of the attacker: asdasd

9:48:13 AM :[in Melee function

9:48:06 AM :[HowManyLines = 1

9:48:06 AM :[HowManyLines = 3

9:48:06 AM :[HowManyLines = 3

9:48:06 AM :[HowManyLines = 2

9:48:06 AM :[in REPLYNOW sub

9:48:06 AM :[This is a name to ignore: ->mpj123

9:48:06 AM :[This is the message in lower caps: haha

9:48:06 AM :[This is the message: haha

9:48:06 AM :[in REPLY function

9:48:06 AM :[->asdasd: haha

9:48:04 AM :[HowManyLines = 2

9:48:04 AM :[in REPLYNOW sub

9:48:04 AM :[This is a name to ignore: ->mpj123

9:48:04 AM :[This is the message in lower caps: i knew you were a bot!

9:48:04 AM :[This is the message: I knew you were a bot!

9:48:04 AM :[in REPLY function

9:48:04 AM :[asdasd: I knew you were a bot!

9:47:57 AM :[Can't be spamming like crazy. User set time until next message can be sent:1 and current time: 0

9:47:57 AM :[This is a name to ignore: ->mpj123

9:47:57 AM :[This is the message in lower caps: am i ^^

9:47:57 AM :[This is the message: Am I ^^

9:47:57 AM :[in REPLY function

9:47:57 AM :[->asdasd: Am I ^^

9:47:55 AM :[HowManyLines = 1

9:47:55 AM :[HowManyLines = 3

9:47:55 AM :[HowManyLines = 3

9:47:55 AM :[HowManyLines = 2

9:47:55 AM :[in REPLYNOW sub

9:47:55 AM :[This is a name to ignore: ->mpj123

9:47:55 AM :[This is the message in lower caps: mpj123 you totally are!

9:47:55 AM :[This is the message: mpj123 you totally are!

9:47:55 AM :[in REPLY function

9:47:55 AM :[asdasd: mpj123 you totally are!

9:47:39 AM :[Can't be spamming like crazy. User set time until next message can be sent:1 and current time: 0

9:47:39 AM :[This is a name to ignore: ->mpj123

9:47:39 AM :[This is the message in lower caps: nope

9:47:39 AM :[This is the message: Nope

9:47:39 AM :[in REPLY function

9:47:39 AM :[->asdasd: Nope

9:47:38 AM :[HowManyLines = 2

9:47:38 AM :[in REPLYNOW sub

9:47:38 AM :[This is a name to ignore: ->mpj123

9:47:38 AM :[This is the message in lower caps: are you a bot?

9:47:38 AM :[This is the message: are you a bot?

9:47:38 AM :[in REPLY function

9:47:38 AM :[asdasd: are you a bot?

9:47:32 AM :[HowManyLines = 1

9:47:32 AM :[HowManyLines = 3

9:47:32 AM :[HowManyLines = 3

9:47:32 AM :[HowManyLines = 2

9:47:32 AM :[in REPLYNOW sub

9:47:32 AM :[This is a name to ignore: ->mpj123

9:47:32 AM :[This is the message in lower caps: not nice :(

9:47:32 AM :[This is the message: Not nice :(

9:47:32 AM :[in REPLY function

9:47:32 AM :[mpj123: Not nice :(

9:47:27 AM :[mpj123 has received 2 damage from asdasd.

9:47:26 AM :[Our char ID = 268504448

9:47:26 AM :[We are getting hit with melee or ranged.

9:47:26 AM :[ENABLESOUND2 is ringing!

9:47:26 AM :[Hey, thats the same person trying to get us to talk again! What a douche.

9:47:26 AM :[Melee function alarm activated!

9:47:26 AM :[attack coming from:268530598 Hitting: 268504448

9:47:26 AM :[This is the name of the attacker: asdasd

9:47:26 AM :[in Melee function

9:44:44 AM :[You have acquired 0 SP.

9:44:44 AM :[mpj123 has given Guard damage of 68363.

9:44:43 AM :[seems like this packet is from ourselves attacking, not replying to this

9:44:43 AM :[This is the name of the attacker: mpj123

9:44:43 AM :[in Melee function

  • 3 weeks later...
  • 2 weeks 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

    • Thanks! Will make this happen first before going forward with 20-40 leveling!    No I didn't, I'm just focused on improving this with the time I have 😄
    • L2 Runestone Interlude C6 · 5x · Open since 10 August 2026 · No wipe, ever l2runestone.com · Discord Most servers die the same way. They sell power, the market dries up, and the people who actually play leave. This one is built not to do that, and everything below is the actual configuration rather than a wishlist.   Rates Experience 5x · Skill points 5x Party experience and SP 6x Drop 5x · Spoil 5x · Quest reward 5x Adena 7x Raid boss, Grand boss and epic jewels: 1x, untouched Special herbs 1x Adena sits above item drop on purpose, so shots stay affordable without flooding the economy. Epics are deliberately not multiplied: the strongest gear in the game should be the hardest to hold.   Enchant Safe to +3 (+4 full body). +1 per scroll, and a failed scroll destroys the item. Scrolls are not sold by any NPC.   Normal Blessed Crystal +4 96% 97% 98% +6 88% 91% 94% +8 80% 85% 90% +10 72% 79% 86% +12 64% 73% 82% +15 52% 64% 76%     Not retail 66% flat. It is gentler than retail early and harsher late, which is a choice, not an accident. Max +15 weapons and armor, +12 jewellery.   What is not here No autofarm. No command, no macro engine, nothing plays for you. Adena auto-loots; items do not. No gear above D grade from NPCs. Starter equipment is sold as it is at retail. Everything from C grade up drops, is crafted, or is traded between players. The dwarf is the heart of the economy, not a side character. Nothing that matters for sale. Power is never purchasable. Convenience and cosmetics are the only things that will ever be. No wipe. Ever. If a bug is found we fix the bug and remove what it produced, instead of resetting the world because that is easier.   Retail where it counts Pure retail class balance. Casts keep a real interrupt window, crowd control never exceeds 90% Olympiad weekly, starting 18:00, six hour competition period Sieges and epic bosses on retail mechanics Buff slots 24 · Subclass to 81 · First and second class change at NPC, third class is earned Offline trade and craft, including in peace zones, restored across restarts   Technical The client is patched by one byte to protocol 748, so a client that has not been through our launcher is refused at the door Full geodata, 163 regions, with pathfinding enabled. No walking through walls, no mobs pulled through geometry Anti-bot with an in-game check, and anti-advertising covering chat, whispers, private store titles and character names InnoDB with binary logging, verified daily backups kept in two places, and a weekly restore test that actually restores   Honest part It opened on 10 August 2026 and it is small. There is no countdown, no launch event, no fake population counter, and nobody is going to hand you gear. If you log in tonight you will find a quiet world. That is the trade: you are early, and everything you build from here stays yours.   Getting in You need a Lineage II Interlude (Chronicle 6) client already on your PC. The launcher downloads and repairs the system folder on its own and verifies every file before the game starts; it touches nothing else and will not patch Gracia or later. Launcher and account: l2runestone.com Discord: discord.gg/NJDeffApmc  
    • Although I don't know how to use it, thank you for sharing
    • Did you try run as extender to any version where Source no needed? Coz not everyone use Mobius 😃
    • Very nice progress. At some point you will need the bots to travel long distances. Geodata and A* path finding on it won't be suitable. They will exhaust budget and memory/cpu. I think the human bot was hitting this ceiling that's why it couldn't find the bridge. aCis has recently made a low granularity geo Pathfinder that can help.  One approach I did successfully and you can do is to replace geodata with 3D nav mesh for bots and use the Detour algorithm for pathfinding. This will give you very cheap long distance path finding. 
  • Topics

×
×
  • Create New...

Important Information

This community uses essential cookies to function properly. Non-essential cookies and third-party services are used only with your consent. Read our Privacy Policy and We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue..