Leaderboard
Popular Content
Showing content with the highest reputation on 10/04/19 in Posts
-
Updated GRF Editor to version 1.8.3.4: Added support for RSM2 files and the new RSW format. You are missing .net 3.5 and 4.0, most likely.3 points
-
You are trying to open the file as a GRF, that will cause you errors. You have to open an already existing GRF or make a new one, then add the iteminfo and click on it to decompile it. It's a GRF tool, it's able to read and decompile lub files as a preview feature, but it's not its main purpose.2 points
-
Introduction The objective of this guide is to create a full client that can run on every platform and where you have complete control over the source code of it, meaning you can add new windows, style every part of the game and adapt it to suit your server need. To do so we'll rely on a stack made of node-js with electron framework and express combined with RoBrowser from KeyWorld. Setup Text Editor Get a good text editor, my personal choice for this will be atom : https://atom.io/ RoBrowser Download RoBrowser from here : https://www.robrowser.com/ Follow the instructions present here to set it up : https://www.robrowser.com/getting-started You'll need a webserver for the first setup, if you're on Linux use Apache with PHP other wise you can get a nice wamp stack here : http://www.easyphp.org/ This is the basic result you should at least get to before continuing this tutorial : Electron Download NodeJS from here : https://nodejs.org/en/ Install it and restart your computer. Open a terminal / Windows Command Line and type the following : npm install -g electron-forge Creating a new project In the terminal, go to your working folder : cd c:\projects For the sake of this tutorial, we'll call our project "sakexe". Now you'll initialize your project : electron-forge init sakexe A new folder named after the project was created, we'll move into this folder : cd sakexe We'll now install express : npm install express --save Open your project with atom : Now we'll edit index.html to the following (replace ROConfig contents with whatever your configuration is) : <!DOCTYPE html> <html> <head> <title>SakExe : FullClient</title> <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> <script type="text/javascript" src="./api.js"></script> <script type="text/javascript"> function initialize() { var ROConfig = { target: document.getElementById("robrowser"), type: ROBrowser.TYPE.FRAME, application: ROBrowser.APP.ONLINE, remoteClient: "http://127.0.0.1:5737/client/", development: false, servers: [{ display: "Demo Server", desc: "roBrowser's demo server", address: "5.135.190.4", port: 7000, version: 25, langtype: 12, packetver: 20131223, packetKeys: true, socketProxy: "ws://5.135.190.4:443/", adminList: [2000000] }], skipServerList: true, skipIntro: true, }; var RO = new ROBrowser(ROConfig); RO.start(); } window.addEventListener("load", initialize, false); </script> <style> html, body, iframe, #robrowser { height:100%; width:100%; margin:0; padding:0; overflow: hidden; min-width: 800px; min-height: 600px; } </style> </head> <body> <div id="robrowser">Initializing roBrowser...</div> </body> </html> Edit index.js to the following : import { app, BrowserWindow } from 'electron'; const express = require('express'); const server = express(); // Handle server requests to serve static files server.use('/', express.static((__dirname))); // Handle creating/removing shortcuts on Windows when installing/uninstalling. if (require('electron-squirrel-startup')) { // eslint-disable-line global-require app.quit(); } // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. let mainWindow; const createWindow = () => { // Start listening to port 5737 server.listen(5737, function() {}); // Create the browser window. mainWindow = new BrowserWindow({ width: 800, height: 600, }); // and load the index.html of the app. mainWindow.loadURL(`http://127.0.0.1:5737`); // Disabling the webtools mainWindow.webContents.on("devtools-opened", () => { mainWindow.webContents.closeDevTools(); }); // Disabling the mainmenu mainWindow.setMenu(null); // Emitted when the window is closed. mainWindow.on('closed', () => { // Dereference the window object, usually you would store windows // in an array if your app supports multi windows, this is the time // when you should delete the corresponding element. mainWindow = null; }); }; // This method will be called when Electron has finished // initialization and is ready to create browser windows. // Some APIs can only be used after this event occurs. app.on('ready', createWindow); // Quit when all windows are closed. app.on('window-all-closed', () => { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q if (process.platform !== 'darwin') { app.quit(); } }); app.on('activate', () => { // On OS X it's common to re-create a window in the app when the // dock icon is clicked and there are no other windows open. if (mainWindow === null) { createWindow(); } }); // In this file you can include the rest of your app's specific main process // code. You can also put them in separate files and import them here. It's time to copy contents from your RoBrowser folder into your Sakexe folder so your file structure looks like this : Now you can try your project by typing the following : electron-forge start Here's the expected result : Compiling Your can now compile your project for your current platform by using : electron-forge make You can find more details about compilation and packaging at the following link : https://github.com/electron-userland/electron-forge Branding You can set an icon for your executable by following these instructions here : https://stackoverflow.com/questions/44122559/how-to-set-the-app-icon-using-electron-forge-package-on-mac Thanks for reading ? Changelog 2018-04-02 : Fixed a mistake in parameters sent to RoBrowser that'd try to load the client from RoBrowser repository instead of the local custom client. I plan to edit this guide later on to implement a websocket proxy directly into the electron framework to avoid having to set on up with RoBrowser.1 point
-
Hello everyone, I present to you a modified tip box which has been completely translated to English. Tested on: 2018-04-04c RagexeRE and worked like a charm. In your System folder in Client side, replace your tipbox.lub with my translated tipbox i have attached below: tipbox.lub Then, Patch your client with whatever settings you want and then open the patched client in hexeditor ( I used XV132 for this) IMPORTANT NOTE : Make sure you hex a "patched" client. DO NOT do it on an unpatched client or else NEMO will show errors for random "recommended patches" that you select while patching it. Find the following and replace with hex for english translation : for checkbox: BD C3 C0 DB C7 D2 20 B6 A7 20 BF AD B1 E2 English translation: 53 61 76 65 20 54 69 70 3F 20 20 20 20 20 for close button : B4 DD B1 E2 English translation : 44 6F 6E 65 (korean translation of close has only 4 strings so I had to replace it with "Done" to match the string size -_-) OR go to your NEMO folder/patches/TranslateClient.txt and add this at the end of it then patch your clients: (Thanks to @Asheraf for telling me about this xD) M: Translate Tip box ------------------------------ F: BD C3 C0 DB C7 D2 20 B6 A7 20 BF AD B1 E2 R: 'Save Tip?' F: B4 DD B1 E2 R: 'Done' Old tip box: New translated tipbox: -- On a funny Note, I had no clue what the korean translation for the Check box was LOL so I just randomly translated it to "Save tip?" instead cuz it was a logical solution LMAO1 point
-
If you run grf editor you should be able to just drag an drop the iteminfo into grf editor. But here is a decompiled version of the iteminfo you are asking for. iteminfo_sak.lua1 point
-
1 point
-
August Digest 2019 The following digest covers the month of August 2019. Staff Changes: None. Development Highlights: CORE: Fixed dropall counter (beb6b579) Fixed item removal in Rodex (4664e88b) Corrected Joint Beat damage formula (63c4c9c3) Added multi-hit critical damage display support (08d160aa) Cleaned up left handed checks (81c5dc9a) Corrected Fame Points for level 3 weapons (78b2f109) Fixed Escape not working with bNoKnockback (e3fd7a6f) DATABASE: Updated duration for Purring (8dfdac32) Corrected pet bonuses (479cc28a) Removed obsolete Novice Rod bonus (5fb6dd7e) Added new achievements (bbca9efd) SCRIPT: Corrected position of Shrimp Trader (c1112c28) Corrected Dandelion Request script (ddb9e814) Corrected custom Job Changer quest item reward (3126bd8a) Updated Young Man position (ce42168b) Corrected Brasilis Sign Post location (0d1eb994) Added items for Advanced Potions NPC (62fa1b86) Portals correction - yuno_in03 (752d3143) OTHERS: None September Digest 2019 The following digest covers the month of September 2019 Staff Changes: None Development Highlights: CORE: Removed the option ID requirement for countitem3, rentitem3, getitem3, makeitem3, delitem3 (378e44d8) Dropped ragsrvinfo functionality (bc15f5ce) Small isequippedcnt script command update (786186f7) Reduced list field length in ipbanlist table from 255 to 15 (8431410a) Corrected pet bonuses not applying (aa63c855) Empty message in announce script command (be1194e4) DATABASE: Minor item_db fix (df930fdb) Fixed Old Money Pocket being unusable (ebc61dfb) Synced Geffen Magic Tournament mob_skill_db name with mob_db name (1658067f) Item Database Update - Lava set and Glast Heim Castle F3 weapon (7d3d952f) Corrected Tornado Axe equip level (8b4306e6) SCRIPT: Fixed typo in item 5330's script (9f4e40d4) Updated Euphy's WoE controller using the new mail script command (a83e9f34) Updated instance_warpall script side (b7f38cf8) Added quest checks for Geffen Magic Tournament (9b11301f) Corrected Clock Tower Gatekeeper dialog (6db35cd6) Old Driver band Yellow script fix (3fa8da13) OTHERS: Make appveyor use the tools/ci/sql.bat batch script (76698145) Fixed typos channel.hpp comments (152bdb0e) Show your support to rAthena by submitting your Issue or Pull Requests! 1 point
-
New update for Extended Vending 2.0 (still pending approval): - Updated to GitHash: df6385 - Fixed character stuck at cancel skill. - Fixed wrong skill failure. - Currency is saved properly when server is restarted. - Fixed compiling warning.1 point
-
Interesting. So the rune skill that casts Refresh removes a little more then what we knew.1 point
-
Depends on what trap. For ankle snare for example you can simply add a check for the skill in skill_block_check in skill.c, just like it already blocks teleport: switch (type) { case SC_ANKLE: if (skill_id == AL_TELEPORT) return 1; break; For Statis, Kagehumi and Bite, there are already INF3 values in the skill_db, so you can just edit those there. For anything else you have to take a look at status_check_skilluse in status.c, which also calls skill_block_check: if (!flag && ( // Blocked only from using the skill (stuff like autospell may still go through sc->cant.cast || (sc->data[SC_BASILICA] && (sc->data[SC_BASILICA]->val4 != src->id || skill_id != HP_BASILICA)) || // Only Basilica caster that can cast, and only Basilica to cancel it (sc->data[SC_MARIONETTE] && skill_id != CG_MARIONETTE) || // Only skill you can use is marionette again to cancel it (sc->data[SC_MARIONETTE2] && skill_id == CG_MARIONETTE) || // Cannot use marionette if you are being buffed by another (sc->data[SC_ANKLE] && skill_block_check(src, SC_ANKLE, skill_id)) || (sc->data[SC_STASIS] && skill_block_check(src, SC_STASIS, skill_id)) || (sc->data[SC_BITE] && skill_block_check(src, SC_BITE, skill_id)) || (sc->data[SC_KAGEHUMI] && skill_block_check(src, SC_KAGEHUMI, skill_id)) )) return false; // Skill blocking. if ( (sc->data[SC_VOLCANO] && skill_id == WZ_ICEWALL) || (sc->data[SC_ROKISWEIL] && skill_id != BD_ADAPTATION) || (sc->data[SC_HERMODE] && skill_get_inf(skill_id) & INF_SUPPORT_SKILL) || (sc->data[SC_NOCHAT] && sc->data[SC_NOCHAT]->val1&MANNER_NOSKILL) ) return false; The structure right now is pretty horrible and I really would like to improve in the future so it's easier to expand, but right now you have to add your checks here.1 point
-
1 point