Jump to content

iMer

Inactive Member
  • Posts

    23
  • Joined

  • Last visited

  • Days Won

    3
  • Feedback

    0%

Posts posted by iMer

  1. Dif to kill the function for 2089M (to allow for a transition period)

    game_2089M
    0010F5C3: 31 90
    0010F5C4: C0 90
    0010F5C5: 8B 90
    0010F5C6: 03 90
    0010F5C7: 8B 90
    0010F5C8: 50 90
    0010F5C9: F4 90
    0010F5CA: 85 90
    0010F5CB: D2 90
    0010F5CC: 75 90
    0010F5CD: 22 90

     

    • Love 1
  2. I am looking for an experienced C++ developer to help me debug memory corruption (mainly by reviewing code to see if you can spot any errors). /please/ do not contact me if you dont know what you're doing Related SO question: http://stackoverflow.com/questions/24328193/debugging-lambda-memory-corruption-automatically-watch-object-pointer-in-gdb We can talk about payment privately, I will only pay you if you find the issue though. Reasoning behind this is to prevent people wasting my time and money, I can do that perfectly fine on my own ;)

     

    I'd prefer if you'd poke me on skype so we can talk about this easier, pm is fine too though

  3.  

    0617 15:22:00028 :: NameError
    0617 15:22:00028 :: : 
    0617 15:22:00028 :: name '__COMMAND_LINE__' is not defined
    0617 15:22:00028 ::

    Got your error right there ;p

     

    I also strongly recommend nobody uses this atm.

    It still has some serious bugs (crashes)

  4. M2 Download Center

    This is the hidden content, please
    ( Internal )

    I asked in the shoutbox and people were apparently interested in helping me test this thing.

     

    THIS IS AN ALPHA BUILD.

    THERE ARE BOUND TO BE BUGS.

    I DO NOT RECOMMEND USING THIS IN A PRODUCTION ENVIRONMENT

     

    That said, some information:

    I rewrote the complete network layer so far. Nicer packet handling, more modular stuff.

    It uses libevent so in theory, I could also release FreeBSD, windows and other builds in the future.

    I might even OSS the whole project, not now though. I am not actively looking for coding help, so please dont ask me to get access to the source. I will either post publicly if I'm looking for people to help me or talk to you directly.

    The whole project is based on the 34083 source, doesnt have the dragonsoul system or any of the other stuff.

    Features (incomplete list, offtop of my head):

    - Gold is using 8 bytes*, new limit is 10.000.000.000.000.000 (yes, that is 10 quadrillion)

    - Level is using 2 bytes*

    - usual fixes, syncpos, war, number_ex and such

    - Some additional quest functions, not all of the ones in my lib, but some of them

     

    TODO:

    - Click me

    - Enable optimization

    - ..and more

     

    That said, you need to switch out your client and game/db binary, the rest /should/ be compatibly.

     

    *there are still some minor things to do like gold in the log isnt 8bytes yet

     

    Additional thanks for their help to:

    tim

    pompex

     

    Download:

    This is the hidden content, please

    Please report bugs in here or on the bugtracker.

    Include PROPER describtions as to what you did and what doesnt work.

    Logs are usually useful too (keep in mind there's a lot of debug stuff being logged in this release)

    • Metin2 Dev 18
    • Good 6
    • Love 3
    • Love 34
  5. M2 Download Center

    This is the hidden content, please
    ( Internal )

    This is the hidden content, please
    ( GitHub )

    Since I have no use for this anymore whatsoever, I changed the repo to be public.

    Porting it to the source code should be fairly easy as most of the functions and such are the same (yay for LibM2)

     

    It includes:

    • SyncPos fix with automatic ban
    • /war fix
    • number_ex fix
    • HorseVnum and Bonus on Mount via Questflag (horse_summon.horse_vnum, horse_summon.apply_type, horse_summon.apply_value)
    • Damage bonuses (devil, undead) are each calculated seperately.
    • CHARACTER::DropGold just returns
    • GiveExp was rewritten to prevent xp boosts and glitches
    • 6th and 7th bonus cant be put on costumes anymore
    • More quest functions:
    •     item2.equip
    •     item2.get_attr
    •     item2.get_wearflag
    •     item2.is_wearflag
    •     item2.set_attr
    •     npc2.get_level
    •     npc2.get_pc_pid
    •     npc2.get_pc_vid
    •     npc2.select
    •     pc2.give_or_drop_item_and_select
    •     pc2.send_effect
    •     pc2.set_level
    • You may still donate XP to guilds when the guild is max. level
    • You'll always get status points
    • max. priv_empire is modifiable via config
    • change_attr time is in seconds and modifiable via config
    • you can add new/modify existing bonuses via config

     

     

    And some other changes I cant think of right now, just snoop through the source.

     

     

    iMer

    PS: Check the license. If you use any of that source and publish it (even in binary form) you must credit me.

    • Metin2 Dev 23
    • Eyes 1
    • Not Good 1
    • Cry 1
    • Confused 1
    • Good 11
    • Love 44
  6. The checkpointing thing is a check to see if the process didnt tick (do a full cycle) in x seconds

    So its basically a check if it got stuck somewhere

    This can have a multitude of reasons

    The one I've seen happening is something related to lua and its garbage collector - nothing specific though.

    Due to the nature of the issue it's hard to pinpoint where exactly its getting stuck.

    • Love 4
  7. So I'm currently looking through the source and finding things which arent immediately clear - mostly the network bit.

     

    CPacketInfo

    It's purpose is to do two things

    1. Profile/Log incoming packets, how long processing them (the analyze call) took.

    2. It stores information regarding to packets, f.e. if there are Sequence bytes at the end of that packet.

     

    Packets

    A packet always consists of:

    1 byte Header

    x byte Data

    optional 1 byte Sequence

     

    Db packets always consist of

    1 byte Header

    4 byte Handle

    4 byte Size

    x byte Data

     

    Sequence Bytes

    The sequence bytes/sequence table are a static array of a set size.

    For each DESC (network connection basically) it stores the current position in the sequence table DESC::m_iCurrentSequence and the last 10 elements it recieved (those are for logging purposes only and can be safely removed) DESC::m_seq_vector

    The sequence byte will always be at the end of a packet.

    What packet has sequence bytes is set in CPacketInfo.

    Sequence bytess are only used for packets from client to game.

     

     

    I thought this would be neat for anyone who's interested in this kind of thing

    I'll add more stuff as I find out about it or think of it.

     

    • Love 14
  8. How much would you pay for a fast patch server with plenty of bandwidth?

     

    Let me throw my research for that in here

     

    OVH just changed their VPS offers

    The cheapest one has 10TB @ 100mbit guaranteed for 2.40€ (germany)

    So, ~24€ for 100TB @ 1GBit (can use OVHs load balancing ip with those)

    Probably would want to set up a cache on these and just have a global "distribution" server if the files exceed the available storage

    If you were to want to go really crazy just grab one of these for the backend

     

    Then there's Leaseweb:

    http://www.leaseweb.com/en/dedicated-servers/100-tb-traffic-servers

    Downside it's not as cheap and has no DDoS protection

     

    Thats the cheapest in terms of (good quality) bandwidth I've found

  9. So, this isnt exactly related to Metin2.

    But within this day I had two seperate attacks on two unrelated Metin2 Homepages.

    People are using WordPress websites to relay requests.

    access.log looks something like this:

    173.236.144.96 - - [22/Feb/2014:00:57:34 +0100] "GET /?2554596=7542239 HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://www.graphicdesignblender.com"
    195.154.120.142 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.6.1; http://delicesetdecadence.blog.lemonde.fr"
    8.14.117.89 - - [22/Feb/2014:00:57:34 +0100] "GET /?2852111=9681641 HTTP/1.0" 403 162 "-" "WordPress/3.7.1; http://www.garancedore.fr"
    65.98.60.98 - - [22/Feb/2014:00:57:34 +0100] "GET /?8331124=3589667 HTTP/1.0" 403 162 "-" "WordPress/3.4.1; http://www.cpcstrategy.com/blog"
    69.163.171.127 - - [22/Feb/2014:00:57:34 +0100] "GET /?8798433=9569671 HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://www.bmeasure.com"
    67.205.2.183 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://unconferenz.com"
    109.168.123.104 - - [22/Feb/2014:00:57:34 +0100] "GET /?2400804=4166790 HTTP/1.0" 403 162 "-" "WordPress/3.5.1; http://www.cluster.eu"
    97.74.144.211 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.4.2; http://thenewprosperity.org"
    216.92.131.44 - - [22/Feb/2014:00:57:34 +0100] "GET / HTTP/1.0" 403 162 "-" "WordPress/3.8; http://www.triplepundit.com"
    89.151.73.40 - - [22/Feb/2014:00:57:34 +0100] "GET /?9155553=5259788 HTTP/1.0" 403 162 "-" "WordPress/3.8.1; http://es.blog.eu.playstation.com"
    
    

    You can prevent them from overloading your server by simply blocking the WordPress useragent.

    You do this on nginx via:

    if ($http_user_agent ~* wordpress){
            return 403;
    }
    

    Google also pointed me to this, which has a tutorial for Apache

     

     

     

    iMer

    • Love 5
×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / 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.