Ask Mootie - Question & Answer Thread

Page 1 of 6 123456 LastLast
Results 1 to 25 of 146
  1. #1
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Ask Mootie - Question & Answer Thread

    Here you may ask questions(that fall into the categories below), and I will answer to the best of my vast knowledge of Flyff Private Servers.

    Question Categories(Development):
    • C++/lua Flyff Development - Intermediate/advanced only, I won't answer questions regarding anything too small/specific, but I will answer questions regarding large custom changes
    • Anti-Hack Development - Server-sided and Client-sided, don't ask how to block specific exploits
    • Performance Improvements - I specialize in improving performance of the server and client while maintaining core server-sided security


    Question Categories(Administration):
    • Windows Server Administration - Firewalls, user permissions, remote management, disk partitioning, bottlenecks, etc
    • DDoS Mitigation - Mitigation of any type/volume of flooding
    • Network Security - Some examples: Internal/External Network Firewalls, SSL or any other network encryption, remote administration permissions, etc
    • Webserver Administration - I have experience with: Litespeed(nix), Lighttpd(nix), Apache(nix), and IIS(windows)
    • MSSQL DBA - Permissions, linux-mssql connections, advanced logging & backups



    What not to ask about:
    • How to make/setup a pserver, windows server, mssql database... pretty much any setup questions I won't answer.
    • How to fix specific crashes
    • Upgrading to vs2010(I've posted enough info about this already)
    • Things you could figure out yourself by googling for 30minutes


    I'll improve this post when I get the chance.
    Last edited by Mootie; 22-03-13 at 03:39 AM.


  2. #2
    Grand Master 404 is offline
    Grand MasterRank
    Jul 2007 Join Date
    3,140Posts

    Re: Ask Lethal - Question & Answer Thread

    This topic will be highly moderated by me personally.

    Questions similar to "PLS HALP! Y SERVER NO WORK" will be removed.

  3. #3
    igunz.net Dawson is offline
    LegendRank
    Feb 2010 Join Date
    ::1 (Canada BC)Location
    2,579Posts

    Re: Ask Lethal - Question & Answer Thread

    I've actually got one for you that I'd like opinions on the httpd section, the endless battle of litespeed versus apache.

    In the moderate traffic that (Keep in mind possibly higher loads due to sub-par coding) which would you recommend and why if you were to run your own httpd on a server (Because honestly, who is serious about their project and uses shared?) I know in larger implementations Apache is supposed to win out, but I mean no private server is going to be large enough for the statics that you get when googling this shit. Does this make litespeed more efficient or am I lacking info about apache

  4. #4
    Game Developer MisterKid is offline
    Grand MasterRank
    Jun 2009 Join Date
    1,585Posts

    Re: Ask Lethal - Question & Answer Thread

    @ Anti-Hack Development

    How can i make sure you can't replace a fake dll :)?
    And how is it possible to block address scanning?
    I googled and failed for this

  5. #5
    Flyff Developer ShadowDragon is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,915Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by MisterKid View Post
    @ Anti-Hack Development

    How can i make sure you can't replace a fake dll :)?
    I know the ANSWER to that, but the process I have no idea about though.
    Calculate a CRC value of the .dll using an external program and set the result as a variable in Neuz. Then, after Neuz opens the .dll, calculate a new one and compare it against the one you made. That's the process, I don't know how to actually accomplish that though.

    edit: slight security issue I realized after typing that, a client side variable could be modded. You'd have to make it a server side variable which gets requested when Neuz starts. Similar to how MSG_VER works.

  6. #6
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by Dawson View Post
    I've actually got one for you that I'd like opinions on the httpd section, the endless battle of litespeed versus apache.

    In the moderate traffic that (Keep in mind possibly higher loads due to sub-par coding) which would you recommend and why if you were to run your own httpd on a server (Because honestly, who is serious about their project and uses shared?) I know in larger implementations Apache is supposed to win out, but I mean no private server is going to be large enough for the statics that you get when googling this shit. Does this make litespeed more efficient or am I lacking info about apache
    Well, I've used both Apache and Litespeed in the past and can definitely say that without modifying Apache's configuration heavily, Litespeed is much more efficient in terms of resource usage as a HTTPD. However, I'm sure that Apache would be a lot better at resource management with source modifications for performance... I just wouldn't recommend Apache for any mid-sized sites that don't wish to make heavy modifications to its configuration and code.

    The main issue with Litespeed is the security issues I've seen with it. There have been a few 0day exploits and they've all been extremely dangerous(source code exposure). This is surprising as Litespeed is closed source, which makes me worry more about the possible exploits that are still unknown. However, most sites wouldn't have to worry about these issues as long as they stay up-to-date. Litespeed's administration panel is VERY easy to use and makes configuring/log viewing a lot more user-friendly than editing Apache config files.

    Quote Originally Posted by MisterKid View Post
    @ Anti-Hack Development

    How can i make sure you can't replace a fake dll :)?
    And how is it possible to block address scanning?
    I googled and failed for this
    Well I don't recommend this, but you can provide most of the required DLLs in the client folder and checksum them. However, you probably should do a heuristic scan of the client itself for any strange windows API calls or critical function modification. Themida has a decent method with its xBundler plugin which can check for DLL modification on startup, but that wouldn't stop modification of kernel DLLs that vary based on operating system version. For these I recommend just checking for standard methods of detouring on apis such as WSASend/Recv(for Flyff).

  7. #7
    0xC0FFEE spikensbror is offline
    Grand MasterRank
    Dec 2006 Join Date
    SwedenLocation
    1,855Posts

    Re: Ask Lethal - Question & Answer Thread

    If you really need an user-level clientside antihack, compile it into the binary. (using a lib)

  8. #8
    Flyff Developer ShadowDragon is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,915Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by spikensbror View Post
    If you really need an user-level clientside antihack, compile it into the binary. (using a lib)
    That's what I was thinking should be done, although with my limited programming experience I wasn't sure how effective it would be, mainly concerning whether or not it's easily bypassed.

  9. #9
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by spikensbror View Post
    If you really need an user-level clientside antihack, compile it into the binary. (using a lib)
    This is what should usually be done, the reason XorGuard is a dll is because, as of v3, it implemented a global hook. Also, my comment was regarding fake 3rd party DLLs such as a fake directx DLL.

  10. #10
    Flyff Developer ShadowDragon is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,915Posts

    Re: Ask Lethal - Question & Answer Thread

    Here's one thing I've been wondering: Is there a good reason for splitting the server into so many programs? My guess is performance, but I'm not entirely sure.

    Also, could you possibly explain the general purpose/job of each of them? Including the lesser known ones (ie. Collection server, monitor, etc.)? I'm currently only using the basic 7, but I was wondering if adding the others would be useful or not.

  11. #11
    Sorcerer Supreme .dark. is offline
    Member +Rank
    Jun 2006 Join Date
    %WINDIR%\sys32\Location
    382Posts

    Re: Ask Lethal - Question & Answer Thread

    I have one question lol

    Have you figured out a way to change masquerpet's stats dynamically? In the sense of changing them when they're already spawned to make a determinate individual monster stronger on the fly.
    Last edited by .dark.; 22-11-11 at 10:52 AM.

  12. #12
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by .dark. View Post
    I have one question lol

    Have you figured out a way to change masquerpet's stats dynamically? In the sense of changing them when they're already spawned to make a determinate individual monster stronger on the fly.
    The CMover class just contains the monster's prop ID and the properties are pulled from memory, so modifying them would modify all monsters of that property. The easiest way would be to just create an extra struct or variable(s) that can be modified to change the monster attack rate, HP, etc. This wouldn't be hard either, I'm sure you could figure it out from there.

    If not, take a look at CMover::GetHitMinMax.


    Quote Originally Posted by ShadowDragon42 View Post
    Here's one thing I've been wondering: Is there a good reason for splitting the server into so many programs? My guess is performance, but I'm not entirely sure.

    Also, could you possibly explain the general purpose/job of each of them? Including the lesser known ones (ie. Collection server, monitor, etc.)? I'm currently only using the basic 7, but I was wondering if adding the others would be useful or not.
    It's not entirely performance, but also organization and scalability.

    AccountServer - Serves as a "controller" type server for the entire login process. It doesn't handle any user requests itself, but it does tell other servers such as certifier how to. Also used for some things such as Adbill.

    Certifier - Certifies the username/password and allows or denies access to login.

    Trans Server(DatabaseServer) - Handles most game-related database transactions. Also caches some things such as guilds and passes to core.

    Core Server - This "Unifies" the individual WorldServers on each cluster. It also passes some data to the WorldServers on startup.

    Login Server - Handles the channel selection, character selection, and 2nd password authorization

    Cache Server - It should be named Proxy Server because that's what it is. The WorldServer holds all the cache while the cache server is what the users connect to.

    World Server - I'm pretty sure you can figure this out.

    The Collection server was meant to be an anti-piracy method, but it didn't work too well since the source was leaked lol. It's pretty useless now especially for a pserver. Monitor server is mainly for administration purposes and it's quite an annoying program tbh due to it's restarting methods. I recommend writing your own if you have time.
    Last edited by Mootie; 22-11-11 at 11:59 AM.

  13. #13
    Flyff Developer Intelligence is offline
    Grand MasterRank
    Oct 2011 Join Date
    United KingdomLocation
    1,401Posts

    Re: Ask Lethal - Question & Answer Thread

    Hi xLethal, I saw these thread that you made for Q&A (yesterday) and mm trying to figure out about China Flyff Stuffs because one of my cousin's friend (GaIa Member) told us that all the 7 servers running in China Flyff (Account/Database/Login/World/Cache/ETC..) are combined in 1 or 2 stuffs when the server is running.

    In a clear way (I mean), China Flyff run 1 or 2 server only (idk, what are they) that can run the server without (7 servers stuffs). So my question is "is it possible to make all the 7 servers to 1 or 2 as well same as China Flyff?"

    Hope you to answer this question, clear and understandable..

    Thanks,
    inteL

  14. #14
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by ll inteL ll View Post
    Hi xLethal, I saw these thread that you made for Q&A (yesterday) and mm trying to figure out about China Flyff Stuffs because one of my cousin's friend (GaIa Member) told us that all the 7 servers running in China Flyff (Account/Database/Login/World/Cache/ETC..) are combined in 1 or 2 stuffs when the server is running.

    In a clear way (I mean), China Flyff run 1 or 2 server only (idk, what are they) that can run the server without (7 servers stuffs). So my question is "is it possible to make all the 7 servers to 1 or 2 as well same as China Flyff?"

    Hope you to answer this question, clear and understandable..

    Thanks,
    inteL
    It's possible, but it would be hard to expand it into a cluster system like eFlyff has.

  15. #15
    Goddess Madison is offline
    Super ModRank
    Jan 2007 Join Date
    12,005Posts

    Re: Ask Lethal - Question & Answer Thread

    Why don't you just answer help threads?

    I think doing a massive question and answer thread like this is a big unorganized mess and not very friendly to the forums search functionality that we are trying to encourage people to use.

    Quote Originally Posted by Error 404 View Post
    This topic will be highly moderated by me personally.

    Questions similar to "PLS HALP! Y SERVER NO WORK" will be removed.
    And you aren't going to watch others?

  16. #16
    Flyff Developer ShadowDragon is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,915Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by Madison View Post
    Why don't you just answer help threads?

    I think doing a massive question and answer thread like this is a big unorganized mess and not very friendly to the forums search functionality that we are trying to encourage people to use.


    And you aren't going to watch others?
    I can answer this. He only wants to give assistance to people with more advanced questions. I've seen him reply to a few topics. One was related to converting the source from VS2003 to VS2010 (which is quite advanced for most of the people here). The other had to do with finding a good dedicated server company and he gave specific reasons for why to use the one he posted.

    90% of the help topics in this forum are something like:
    "i want to create a server please help" or
    "i did this, and this, and this and this happened *posts crash dump*" or
    "how do i do this on my server? (a question that could be easily found by searching the forums)"

  17. #17
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by Madison View Post
    Why don't you just answer help threads?

    I think doing a massive question and answer thread like this is a big unorganized mess and not very friendly to the forums search functionality that we are trying to encourage people to use.


    And you aren't going to watch others?
    I'm not looking to fix people's issues with setup or coding. I'm looking to give my opinionated answers of conceptual questions rather than quick fixes or solutions. As the owner AND head developer of the currently largest Flyff private server, I'm sure I could answer complex questions in a more detailed fashion than others.

    Ask yourself this: How would a user search for the questions I have answered so far in this thread? The search feature helps for common and specific issues, not unique and conceptual questions.

  18. #18
    Sorcerer Supreme .dark. is offline
    Member +Rank
    Jun 2006 Join Date
    %WINDIR%\sys32\Location
    382Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by xLethal View Post
    The CMover class just contains the monster's prop ID and the properties are pulled from memory, so modifying them would modify all monsters of that property. The easiest way would be to just create an extra struct or variable(s) that can be modified to change the monster attack rate, HP, etc. This wouldn't be hard either, I'm sure you could figure it out from there.
    Oh lol I was thinking that monster movers were treated the same way as player ones are, but instead appearently they dont have individual stats... Silly me :3
    Thanks man.

  19. #19
    ~FlyFF DeV~ Jomex is offline
    Grand MasterRank
    Mar 2009 Join Date
    PolandLocation
    588Posts

    Re: Ask Lethal - Question & Answer Thread

    I have questions:
    -Why server connects to mssql via ODBC which slows everything(my dad said it does) instead of connecting directly to database with 50 stable connections?
    -Which database server is the best for game servers?

  20. #20
    Sorcerer Supreme anth0ny989 is offline
    Member +Rank
    Jan 2011 Join Date
    PhilippinesLocation
    262Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by Jomex View Post
    I have questions:
    -Why server connects to mssql via ODBC which slows everything(my dad said it does) instead of connecting directly to database with 50 stable connections?
    -Which database server is the best for game servers?
    no reply to this question? it's kinda interesting

  21. #21
    ~FlyFF DeV~ Jomex is offline
    Grand MasterRank
    Mar 2009 Join Date
    PolandLocation
    588Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by anth0ny989 View Post
    no reply to this question? it's kinda interesting
    You should know it as Lethal isn't very active for almost 2 weeks if I'm right.

  22. #22
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by Jomex View Post
    I have questions:
    -Why server connects to mssql via ODBC which slows everything(my dad said it does) instead of connecting directly to database with 50 stable connections?
    -Which database server is the best for game servers?
    Using ODBC with Microsoft SQL Server

    The communication between the game server app and SQL Server is not usually a performance issue, considering one thread should be much more than enough to handle this task. Even if there were 10s of thousands of queries, the bigger issue would be the actual query execution and possibly data transfer from sql server -> game app rather than the actual query relay itself. ODBC using the Microsoft SQL Server ODBC driver should be no slower than a direct MSSQL connection. The overall query load could maybe be sped up with more connections, I currently use 16 threads/connections for update queries per production game cluster. I believe this should be more than enough for 2k players per cluster, you should not see any issues with database connections at that point.

    -- Offtopic --
    I was gone for about a week due to medical issues, I didn't notice there were respones on this thread.

  23. #23
    Sorcerer Supreme NickHough is offline
    Member +Rank
    Nov 2009 Join Date
    United KingdomLocation
    397Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by xLethal View Post
    Using ODBC with Microsoft SQL Server

    The communication between the game server app and SQL Server is not usually a performance issue, considering one thread should be much more than enough to handle this task. Even if there were 10s of thousands of queries, the bigger issue would be the actual query execution and possibly data transfer from sql server -> game app rather than the actual query relay itself. ODBC using the Microsoft SQL Server ODBC driver should be no slower than a direct MSSQL connection. The overall query load could maybe be sped up with more connections, I currently use 16 threads/connections for update queries per production game cluster. I believe this should be more than enough for 2k players per cluster, you should not see any issues with database connections at that point.

    -- Offtopic --
    I was gone for about a week due to medical issues, I didn't notice there were respones on this thread.
    How do you boost the amount of threads/connection for update queries per production then?

  24. #24
    Not working on UnitedFlyf Mootie is offline
    Grand MasterRank
    Apr 2009 Join Date
    1,589Posts

    Re: Ask Lethal - Question & Answer Thread

    Quote Originally Posted by NickHough View Post
    How do you boost the amount of threads/connection for update queries per production then?
    There are constants for this, you should take a look at the database server code yourself before asking.

  25. #25
    Sorcerer Supreme NickHough is offline
    Member +Rank
    Nov 2009 Join Date
    United KingdomLocation
    397Posts

    Re: Ask Lethal - Question & Answer Thread

    I recently added new items to my in-game shops, and now my channels are experiencing buffer overflows what could be the main cause for this problem, a miss connection between the items and their files, or is it something internal in the programming code?

    When they get the buffer overflow it gets a Trans and Core is not alive error, i have checked the reasons for these in the source for both of the executables but i couldn't find any reasons why it would be happening



Page 1 of 6 123456 LastLast

Advertisement