Recent Forum Posts

    v381

    Check http://l2net.insane-gamers.com for the download links

    ---

    Slothmo:

    updated process encryption
    tweaked locks on SmartTimers to resolve potential deadlocks
    refactor of ColorListBoxes to resolve deadlocks
    refactor of ChatBox locks and tweaks to performance
    added jingjing command UDP_IP_SEND
    added jingjing command UDP_IP_SENDBB

    ---

    Line Count: 75846

    ---

    This version should fix several lingering crashes/lock-ups.

    The new UDP packets are the same as the non IP version, except an IP goes at the start of the function call:

    UDP_IP_SEND [STRING IP] [STRING] [VINT] [VINT] [VINT] [VINT]
    UDP_IP_SEND "10.0.0.1" "stuffzzzz" CHAR_X CHAR_Y CHAR_Z NULL

    UDP_IP_SENDBB [STRING IP] [VBYTEBUFFER]
    UDP_IP_SENDBB "10.0.0.1" mybytebuffer
    This article was originally published in forum thread: v381 started by slothmo View original post
    Comments 28 Comments
    1. SeipSau's Avatar
      Great! Thanks slothmo!
    1. Inxile's Avatar
      xD
    1. Jeapordy's Avatar
      Quote Originally Posted by slothmo View Post
      Check http://l2net.insane-gamers.com for the download links
      added jingjing command UDP_SEND_IP
      added jingjing command UDP_SENDBB_IP
      If this is what I think it is d00d is gonna need some tissues.
    1. Inxile's Avatar
      haha
    1. culinko's Avatar
      great work for fixing all the crashes hope you have time for this little tweaks for the next version...

      - been getting these errors every few mins without doing anything, don't know if it's my fault or not.. 7:15:06 :[ERROR: Packet Error: 6A Previous Packet: : V rozhraní GDI+ došlo k obecné chybě.

      - error on both l2 net windows when confirming trade with second client, getting same error when cancelling trade. only happens when doing it with 2 l2 clients. now when i got succesfull trade with 2 l2net windows, got no more errors when trading with l2 windows!!!

      - trade and clan invite windows stay in l2net after completing the action (don't happen with party invite and ress), not tested with summon friend

      - checkbox "hide message boxes" not working at all, tested with trade, clan invite, party invite, ress and when died

      i know those things are not that important, but i will be glad if you could fix them, thanks
    1. Inxile's Avatar
      what chronicle, oddi will prolly need to know for checking the trade crashes

      packet errors might be a server specific custom thing
    1. culinko's Avatar
      was trying it on rpg club (gracia final), didn't have the packet errors before with v380 few days ago afaik
    1. slipdot's Avatar
      you are the best =D
    1. texas84's Avatar
      7h+ v381 run time ^^ no crash so far nice.
      Can you post any example of use new jingjing commands:
      UDP_SEND_IP
      UDP_SENDBB_IP

      thx
    1. slothmo's Avatar
      Oops.. typo on the command names. Fixed the patch notes to match.

      The commands are the same as the non IP version... except an IP goes at the start of the function call.

      UDP_IP_SEND [STRING IP] [STRING] [VINT] [VINT] [VINT] [VINT]
      UDP_IP_SEND "10.0.0.1" "stuffzzzz" CHAR_X CHAR_Y CHAR_Z NULL

      UDP_IP_SENDBB [STRING IP] [VBYTEBUFFER]
      UDP_IP_SENDBB "10.0.0.1" mybytebuffer
    1. Infant's Avatar
      OMG this morning i was thinking about using UDP with other ppl not only LAN and now TADAM! Thank you very much slothmo
    1. silence420's Avatar
      Nice Nice
    1. Leo.e.Dani's Avatar
      Nice
    1. d00d's Avatar
      Quote Originally Posted by slothmo View Post
      Oops.. typo on the command names. Fixed the patch notes to match.

      The commands are the same as the non IP version... except an IP goes at the start of the function call.

      UDP_IP_SEND [STRING IP] [STRING] [VINT] [VINT] [VINT] [VINT]
      UDP_IP_SEND "10.0.0.1" "stuffzzzz" CHAR_X CHAR_Y CHAR_Z NULL

      UDP_IP_SENDBB [STRING IP] [VBYTEBUFFER]
      UDP_IP_SENDBB "10.0.0.1" mybytebuffer

      Slothmo, thats great but you need to update the SCRIPTEVENT_UDPRECEIVE/BB to pass the source ip address so we can respond to the client, otherwise its still just broadcast lan stuff.

    1. zdev's Avatar
      I've gotten crashes two nights in a row running v381. I didn't get anything meaningful out of the first crash but the second one last night said a "System.OutOfMemoryException" was thrown and sure enough, task manager shows L2Net using over 1.5GB. Do we have a leak? Note that I am using the new UDP functions.
    1. zdev's Avatar
      Note the memory usage seems to be going up even without using the new UDP functions. I'm seeing growth of about 50MB every half hour. This client is running a jingjing script and no standard bot functions. I have a client running on another box that is using the standard bot functions without scripts and it is not experiencing memory growth. So it "seems" to be related to the scripting engine but can't be sure yet.
    1. slothmo's Avatar
      I just tested printing 10 million lines to each chat box and memory only flucated by 30 MB at max before dumping the cache to disk and freeing the memory. I'm confident the problem is not my changes to the chat box.

      How are you pathing? Using the L2.Net built in targeter stuff or your own script with MOVE_TO commands?
    1. zdev's Avatar
      I'm using MOVE_TO commands in my own script. I am not using any features inside the bot options window.

      I just stopped the script and within a few minutes the over memory usage disappeared -- I'm assuming it was garbage collected.

      So the 50MB/30min growth I was seeing this morning was probably? just normal and just objects waiting to be garbage collected? Almost all of the variables in my script are local defines within functions (STRINGs/INTs/ARRAYLISTs). I have a set of global ARRAYLISTs but those contain initial configuration (ie. party lists, buff lists, etc) that are not appended to / modified during the normal execution of the script after initialization.

      I'm just wondering how it got all the way up to 1.5GB of memory last night (it was on for about 8 hours). I'm trying various things to try and repro.
    1. zdev's Avatar
      So I found an issue with one of my scripts. I had made a change a few days back where I forgot to put a SLEEP in one path through the code which caused one loop to run way too quickly when my toon was idle. I fixed this and now I'm definitely not seeing the massive growth from this morning. That loop was mainly calling GET_NPCS and doing a DISTANCE check on each mob (between player and mob). I tried putting a test script together that just runs those calls in a tight loop and although I see the expected CPU load, I can't repro the memory increase.... any chance the CPU load caused the garbage collector not to run?
    1. slothmo's Avatar
      Quote Originally Posted by zdev View Post
      I can't repro the memory increase.... any chance the CPU load caused the garbage collector not to run?
      This is possible... especially if you aren't on a dual core.

      There used to be an event in c# you could create for that system out of memory or a system low memory... but it was removed from .Net 2.0 so I had to remove the handler I had (which forced a garbage collect).