Jump to content

Karbust

Management
  • Posts

    1161
  • Joined

  • Days Won

    10
  • Feedback

    100%

Posts posted by Karbust

  1. M2 Download Center

    This is the hidden content, please
    ( Internal )

     

    252310GreenCheck.pngGitHub Repository: 

    This is the hidden content, please

                The tutorial bellow is also available on the repository.

      

    Metin2-Patcher-Electron

    A simple metin2 patcher made in Electron with React and TypeScript. The file verification is made with SHA256.

    073250X7dasOc.png

    Getting Started

    Install NodeJS: https://nodejs.org/en/download/

    Install Yarn: https://yarnpkg.com/getting-started/install

    Clone the repository:

    git clone https://github.com/Karbust/Metin2-Patcher-Electron
    

    Install the dependencies:

    yarn install
    

    Edit src/config.ts with your own values. Change resources/icon.png with your own logo (should be at least 256x256).

    Available Commands

    Command Purpose
    yarn run start Starts the React App (aka Frontend) in development mode.
    yarn run build Builds a production ready React bundle.
    yarn run electron-start Starts the Electron App.
    yarn run electron-pack Builds a production package of the app.
    yarn run lint Check for linting errors.
    yarn run lint-fix Fixing some linting errors.

    About the Patcher

    This project was made with the intend of learn more about Electron, something I wanted to do for a while.

    If the folders don't exist, they'll be created. If the files don't exist they will be downloaded.

    The patcher checks the local files and if their checksum mismatches the remote checksum, they will get downloaded.

    This patcher runs the downloads asynchronously, this means it will download multiple files at the same time.

    The entire project is made in React and Electron both with TypeScript. For CSS was used TailwindCSS.

    Deploying

    After editing everything you must use the command yarn run electron-pack to build the application.

    It will build 2 files inside the release folder:

    • Metin2 Patcher Electron-X.X.X-win.zip
    • metin2_patcher_electron.exe

    The first file is the full bundle zipped that can be extracted to the client folder (after removing the 2 unnecessary LINCENSE files). DON'T USE THIS IF YOU ALREADY HAVE THE CEF BROWSER ON THE CLIENT.

    The second file is also zipped but will be extract to a temporary folder during runtime (takes about 3 seconds to fully open) and clean after itself when it closes. This is the way if you can't perform the first option.

    Development Testing

    In case there isn't the possibility to use a local webserver (like Apache with Xampp, or Wampp) it may be necessary update the CORS on your remote server.

    For NGINX

    Go to the configuration file for the patcher host and add this line:

    add_header 'Access-Control-Allow-Origin' 'http://localhost:3000';
    

    For Apache

    Go to the configuration file for the patcher host and add this line:

    Header set Access-Control-Allow-Origin "http://localhost:3000"
    

    It may also be needed to activate the headers module:

    a2enmod headers
    

    Web Server

    Using

    This is the hidden content, please
    , you shall place the client files inside a folder called files and run the script.

    It will generate the JSON file with the names, sizes and checksum hash of the files.

    Dir1

    Dir2

     

    Issues

    If you have any issues, post here or open an issue on the repository: 

    This is the hidden content, please

    • Metin2 Dev 227
    • Eyes 5
    • Dislove 2
    • Angry 3
    • Not Good 2
    • Sad 1
    • Smile Tear 1
    • Confused 2
    • Scream 1
    • Lmao 1
    • Good 77
    • muscle 1
    • Love 11
    • Love 158
  2. I would say that in the state that it is already there's an efficient way of cleaning it without harming functional devices. The garbage is floating in space, unless they can make them enter the atmosphere to trigger vaporization on enter, there's no other solution, at least with the technology available today.

     

    Starlink is in low orbit (around 550km), there's almost no space garbage there, but when they start dying, which will happen, Elon will probably let them crash in the ocean than let them there. They intend on having almost 3000 thousand satellites up there.

  3. The errors are pretty explicit, you don't have those tables on database account, you need to create them.

     

    We don't know what structure they need to have, but you can see at least 1 field per error message.

     

    secure_ip we can see it has, at least, the field ip

    banned_hwid_list we can see it has, at least, the fields hwid and hdd_serial

    secure_pc_list we can see it has, at least, the fields hwid, login and status, which I imagine it probably has the foreign key login to login column on table account (which isn't the correct way, it should have the PK from account as FK)

  4. 1 minute ago, iRETEMAG said:

     

    NO ZEROTIER PLS 👃

     

    You'll need the tutorial I gave you on funky emu. Use the virtual machine with a Bridged NIC and set the IP either to DHCP or a static IP on your own IP range.

     

    You'll only need the INTERNAL_IP and the PROXY_IP.

     

    You'll also need to open ports on your router and maybe a good idea to use No-IP just in case you have a Dynamic IP.

    • Good 1
  5. 4 minutes ago, iRETEMAG said:

     

    Thanks for your reply and ZeroTier suggestion but I need to configure the machine like oldschool way but i'cant figure it out which settings I need to use on network adapter and bsdconfig.

    You need to create an account on ZeroTier's website, then you create a new network. You can also manage what network IP address range you want, it will use DHCP to assign an IP for each node.

     

    When you install ZeroTier on FreeBSD you use the zerotier-cli to join the network (if the network is set to private you first need to add the client node id to the network in order to be able to join).

     

    You may need to do this: https://funky-emu.net/topic/23304-c-installer-un-proxy-ip-sur-votre-game/

     

    I haven't tested without it, not sure if it works or not.

     

    You'll need to use this on the CONFIG's (change with the IP assign to your VM from ZeroTier):

     

    PUBLIC_IP: 192.168.196.123
    INTERNAL_IP: 192.168.196.123
    PROXY_IP: 192.168.196.123

     

  6. I currently have a server only for friends using ZeroTier. It can have up to 50 nodes for free (each node is a player, and one is the server) (we are only 10, but it's only for fun with my friends).

     

    ZeroTier is a VPN service like Hamachi. The server is running on a virtual machine with VMware, only needed to have either a NAT NIC or a Bridged NIC, it only needs internet to access the ZeroTier network.

     

    What is the advantage? You don't need to share your own IP or the need to open ports on the router.

    • Good 1
  7. From what I know, indexing such a big table will bring more disadvantages than advantages. Also, each row inserted needs to be indexed, which will impact performance.

     

    I don't think a log table should be indexed, only tables like accounts, players, store items (itemshop, not ingame) and stuff like that.

     

    And you still have the overhead of having to wait to create the index of an already in production table, which most servers won't probably truncate.

     

    Overall, the intention is good, but I don't think it's a good idea to make this type of index.

     

    And, time shouldn't be a HASH, the query would need to be an = or <=> Three-way comparison, which isn't ideal for a datetime column, it would probably need to use a >=, <=, > or <.

     

     

    • Metin2 Dev 1
    • Good 1
  8. 2 hours ago, Vaynz said:

    This is the hidden content, please

    Hello there is improved Intro Logo Client video. Is made on define and some parts of tutorial are missing

    You have and convertor in .zip

    
    1. 
    UserInterface.cpp - Binary source  copy 
    BandiVideoLibrary.cpp 
    BandiVideoLibrary.h 
    BandiVideoPlayer.cpp 
    BandiVideoPlayer.h 
    Open your sln Go on Userinterface -> Right click -> (Add existing item) and add all 4.
    
    Py part
    
    Don't forget to import app
    
    locale_inc.h binary source 
    #define INTRO_VIDEO

     

    I recently used my own tutorial to add on another client, there was nothing missing and worked fine.

    Also added the define though, more useful that way, and able to disable on debug build.

     

    I checked your editions, you only added the define though, what other parts of the tutorial that I miss are you referring to?

    • Metin2 Dev 3
    • Good 1
    • Love 3
  9. I just updated the website.

     

    Now it features a new look and I also added a section for Unofficial Icons, where I will keep adding new icons from posts and clients.

     

    https://m2icondb.karbust.me/

     

    A mouse click on top of the icon will copy the icon URL to the clipboard.

     

    If you have icons that you which to see on the Unofficial Icons, just send them through PM or on Discord.

    • Love 1
  10. On 12/4/2020 at 6:47 PM, Distraught said:

    in that case does anyone have this mount?

    8LtQMC8.png

     

    That mount is very similar to a NPC from Metin2Master. Maybe you can adapt it for a mount.

     

    Also a when I was trying to find pics on google I found this: 

     

     

    Maybe that one is the same as Keyto.

×
×
  • 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.