Jump to content

Tokei

Members
  • Posts

    700
  • Joined

  • Last visited

  • Days Won

    109

Posts posted by Tokei

  1. Yes, I already know that. Again, which part of the wiki guide is unclear to you? Simply saying "it's not working" is not helpful for any of us =/. It 'looks' like a headgear view id issue anyway.

     

    Just... show us everything. Show us the content of your files with the revelant lines : item_db.txt, accname.lua, accessoryid.lua, iteminfo.lua (or the lub equivalent if your server is using lubs) as well as screenshots of the location of your files. Is your server using lua or lub files?

  2. People can't magically give you the sprite out of nowhere, you're the only one who has it (and apparently you don't have it, so... you have to make it). And... have you read the link eKoh posted? http://rathena.org/wiki/Custom_Items
     
    It contains all the information you need, in details, with a full example. Here's a quick copy paste (Allocating Items on Client Side) :
     

    Step 2 (only for Headgears):
    For displaying headgear on the character there will be two additional files (sprite & act) or 4 if the sprite author intended for a separate set of files for male & female. In my example i have considered the first scenario.
    The filename for headgear sprite are now specified in accname.lua file (details of which is available in the View IDs Section) (< have you done this part?)
    lets say i used
    [ACCESSORY_IDs.HELMET] = "_Helmet",
    then we need to:
    i) Copy Helmet.spr to [RO Folder]\data\sprite\¾Ç¼¼»ç¸®\¿©\¿©_Helmet.spr (Female)
    ii) Copy Helmet.act to [RO Folder]\data\sprite\¾Ç¼¼»ç¸®\¿©\¿©_Helmet.act
    iii) Copy Helmet.spr to [RO Folder]\data\sprite\¾Ç¼¼»ç¸®\³²\³²_Helmet.spr (Male) (< Check if that sprite is actually the sprite you wanted, and not the bunny one)
    iv) Copy Helmet.act to [RO Folder]\data\sprite\¾Ç¼¼»ç¸®\³²\³²_Helmet.act
    Now it is ready to be used provided you have added entries properly to the lua files.

     

    Reread the entire wiki page and make sure you understand all the steps. Everything you want to know is in there. You just have to read carefully and follow the steps one by one. If you have trouble at one of these parts, then go ahead and ask for more help!

  3. I am using the newest version of 1.6.8+

    It seem that GRF Editor didn't generated the cps.dll file while I encryption my grf...

     

    or How to generated the cps.dll?

    Ah! There are two parts of encryption : client configuration and GRF encryption. You seem to be missing the first part; go in Tools > GRF Encryption, put your password/key, your client path name (watch out, you can't change the client name afterwards) and your cps.dll name. Press "Generate files" and your newly generated cps.dll should be selected automatically in Windows Explorer (if not, it's in %AppData%\GRF Editor\Encryption). Copy the cps.dll file and put it in your RO folder. It should work out fine now.

  4. Yup!! I also has this problem..!!

    You're most likely using an outdated version of GRF Editor. These bugs regarding the encryption are all fixed in 1.6.8+ (the most recent version is now at 1.6.8.3 - contains a bug fix for encrypted thor patching).

     

    If you still have the error, would you mind providing more information? I have manually tested every single client ranging from 2012-08-01 to 2014-02-05, and the encryption worked out fine ingame. Copy the error message (with the code, if there's one) and send me the client executable with the cps.dll file generated by GRF Editor. Any useful information that you can provide would help as well (such as the key used, etc). The encryption feature has been stable for some time now (well, except for the thor patch making, but that's been fixed now).

  5. Not sure if any more information has been found out about this file format, but would love to know more as well.

     

    Minecraft and Ragnarok Online are different games. Please read what was posted right below the post you quoted :

     

    It's not a Gravity grf.

    The only similarity is the extension, nothing else, it's not a file to store resources.

     

    Gravity -> grf mean (I guess) : Game File Resources (to store resources data - textures, images, models, world, etc.)

    MineCraft ->grf mean -> Game Rule File (so maybe to store rules, game step (mission), just guessing here.).

  6. The first part of that method sounds fishy to me (could work, I'm too lazy to try it out). The paths of the gnd and gat files are given by the rsw file's content (you would have to edit the file with a hex editor and change them). Anyway, I'd suggest to open your map with BrowEdit and use Save as... to rename it.

  7. You did the reverse of what I suggested ;x! Redirecting your sprite to ºí·çÁª½ºÅæ (blue gemstone) will work, but it doesn't help finding out where the problem really is xD. To confirm the images are the issue, you have to rename a known image, such as ºí·çÁª½ºÅæ.bmp to green_gemstone.bmp. If the image shows up ingame, then it means your own green_gemstone.bmp was indeed incorrect.

     

    But yeah, anyway! You said you edited the original files, so the image in the item folder should be ~1.6 KB, not 1008 bytes. When you save it in photoshop, select "BMP > File Format : Windows, Depth : 8 Bit, uncheck both options at the bottom", the width and height should also be 22 pixels by 22 pixels. See if you can get that image working ingame now (the image in the item folder is the one showing up in your inventory).

     

    I'm not that convinced it's your issue though, but it's worth checking anyway ;]

  8. This issue is weird...

     

    The images are in the right folder, but they don't seem to be read by the client. Check the format of the images, they must be in either Bgr24 or Indexed8 (256 colors, palette). You can try renaming an image that you know works ingame to "green_gemstone" and see if it changes anything. Judging from the file sizes though, they appear to be correct. You could also try to read the images from the data folder instead of a GRF (could be a character casing issue).

  9. Actually you can make secured thor patches. It requires some steps though...!

     

    Make a new grf with only the new files to patch in it. Use SecureGRF and encrypt it. Open that encrypted GRF in GRF Editor (requires at least a 1.6.7ish version), go in File > Save as...  and save it with the .thor extension. Select the "Container options" tab and set the patching mode to "Merge into GRF" and save it again.

     

    It is kinda annoying to go through all these steps, but if you really need to update your secure GRF without sending the whole thing everytime, this is an alternative.

    • Upvote 1
  10. When I run this program with wine, the window just flickers, could this be fixed?

     

    As far as I know, .net programs usually don't work that well with Wine. Especially not WPF applications, which aren't compatible with Mono to begin with and which rely heavily on DirectX. There isn't much I can do on my end unless I rewrote the entire program, which... would take way too much time and effort!

  11. This usually means you picked the wrong encoding while making your Thor patch! You can verify this by opening up the Thor patches in GRF Editor. If they don't show up with their proper names then the patch is indeed invalid.

     

    While making the patch, if the files have Korean characters you have to select "Unicode". Otherwise you need to select "Ascii". Example :

    CZtNKK0.png

     

    If that doesn't help, you could always make your patches directly with GRF Editor and see if you get different results (invalid encodings are automatically fixed). (File > Save as... > .thor; "Container options" > Patching mode > Merge into GRF > Target GRF : "server.grf" or leave empty).

     

    Hope this helps!

  12. ACT files have no concept of "front versus back". That setting cannot be modified within an ACT file, even less action based (L, FL, F, etc). The type of the item determines the z-index (front/back). Headgears will 'always' appear in front. The custom wings people make tend to be "away" because of that.

     

    The only way I know of to make this work the way you want is to use the garment slot + lua file editing. This guide is a good start : http://rathena.org/board/topic/72734-guidecustom-wings-at-robe-place/?hl=cskroption

    • Upvote 2
  13. You want to avoid making thor patches that way... it's not recommended! The method suggested above will replace the GRF if it exists (or create a new one). That would also be equivalent to putting a GRF inside a GRF @@. It will work at first, but you might as well want to learn how to do thor patches the way it was meant to be.

     

    With ThorGenerator

    • Select the output file.
    • Use the RO - GRF mode. Leave the box on the right blank to patch in the default GRF, which is rhro_update.grf. It will be created automatically if it doesn't exist.
    • Select Directory for the Input.
    • In the box below, select the data folder which contains your new files, such as your maps. Example : C:\Ro\Patches\data.
    • As for Ascii vs Unicode, that depends of how your files are named. Since they are maps though, the paths won't contain Unicode characters so you should choose Ascii.
    • Click Generate and you're done.

    Put the patch in your patch folder.

     

    The "File" option in ThorGenerator is meant for everything else that isn't a GRF. Such files would be System\itemInfo.lua/lub, background music (BGM), AI updates, etc.

  14. I just downloaded SprConview. When you use "Bmp to Spr", uncheck "Encode (enabled for almost all sprites)". It should work fine. If not, upload the sprite... it's much easier to locate the issue with the actual file.

     

    (... on second thought, I think I went into way too much details lol... but hey, you said you wanted the reasoning!)

    The reasoning behind this... is pretty much explained in the previous post xD. What you describe fits the following issue, which is caused by a "buffer overflow".

     

    RLE encoding is a compression used by the 0x201 sprite format. It... basically counts the number of the same pixels following each other and write this number instead of writing the pixel information multiple times. At the end of this encoding, you usually have transparent pixels and SprConview literally ignores them while compressing. This is unusual, but it's not an issue because the sprite decoder knows the amount of pixels beforehand. If it reaches the end of the compression data and there are still 200 pixels left to load in the image, it fills the image with transparent pixels. This allows greater compression.

     

    ActOR decodes the sprites differently though. It keeps reading the compression data until the amount of pixels decoded is greater or equal than the amount of pixels expected. It shouldn't though. If it reaches the end of the buffer and there are still 200 pixels left to load in the image, ActOR will keep decoding, and that is the buffer overflow. It starts reading outside the data buffer (usually on the next image). You can imagine how badly this will affect the next sprites to read (hence why the more you go, the more disturbed the images are). For the last image, there is nothing at the end of the buffer. So... it starts reading outside the file buffer (whatever's currently in the memory).

     

    Depending of the usage of the sprite ingame, this might work fine, but it's not guaranteed. The client version might change the behavior as well. It's a lot simpler to just uncheck the encoding option ;].

     

    I said this was a bug from SprConview in the previous post though, and that is because the encoder shouldn't stop if all the remaining pixels in the image are transparent. It should instead write "there are 200 transparent pixels following", and that will work properly all the time.

     

    Then again, people don't need to know this while making sprites lol xD! I just happen to have made libraries to read/write spr and act files.

    • Upvote 1
  15. I *think* I know what your issue is. You're probably using SprConview to make your sprites, which has a bug if you use the RLE encoding. That option must be unchecked. (SprConview ends the RLE compression abruptly and ActOR keeps reading when it should stop. You get 'random' pixels at the bottom of the sprite, which usually corresponds to the beginning of the next frame, or whatever's currently in the memory.)

     

    If that's not the case, please show us a screenshot and upload your act/sprite. We need more details ;]

  16. I think he wants to do this client-side only (without modifying the server files).
     
    What you're looking for is normally quite simple, except in the particular case of lhz3 bosses (and a few others). Let's start with a basic mob sprite 'edit'.
     
    To change the Pupa mob to Detale, you would do :

    • Find the real name of the mob (may have to use a database editor), in this case it's simply "pupa". This means the client will read and load the files "data\sprite\¸ó½ºÅÍ\pupa.act" and "data\sprite\¸ó½ºÅÍ\pupa.spr". You don't have to extract these.
    • Find the real name of the mob you want to replace it with, detale in this case.
    • Extract both "data\sprite\¸ó½ºÅÍ\detale.spr" and "data\sprite\¸ó½ºÅÍ\detale.act" and put these files in the directory "data\sprite\¸ó½ºÅÍ\" (I'm assuming your client reads the data folder first).
    • If the folder doesn't exist within your RO folder, simply create it yourself...
    • Rename the files to pupa.spr and pupa.act (btw, this is not a known trick, but if you select both files and rename the first one, it will rename both automatically and keep the original extension, which is quite useful and faster).

    When you go ingame, the pupa mob will appear as detale. Here's what you should get anyway : 
    A7bj1q7.png
     
     
    As for lhz3 bosses, these require more work. The regular mob uses the sprite name "SEYREN" and the boss sprite name is "B_SEYREN", which is being redirected to "SEYREN". Therefore both mobs use the same sprites.
     
    This can be changed though! You will need to edit the file "data\lua files\datainfo\jobname.lub". The location of the file depends of your client setup, it may be already decompiled too... I can't go into full details for that part. You can download the file here though : http://svn6.assembla.com/svn/ClientSide/Lua_Project/lua%20files/datainfo/jobname.lua . You may have to change the extension to .lub depending of the client setup. Search for the line [jobtbl.JT_B_SEYREN] = "SEYREN". Change "SEYREN" for whatever you want, I'd put "B_SEYREN" to be consistent. Now extract any sprite you want, such as detale.spr/.act and change the name to b_seyren.act/.spr.

    It seems complicated, but after a few times, it will be very easy ;). Hope this helps!

     

    Edit : result ingame

    FYIAsyC.png

    • Upvote 1
  17. already done that and to no avail, still didn't work..T_T

     

    It's not possible for the client to resize your sprite to its original size which means it's simply not reading your new sprite. Make sure you've added your files at the correct location (depends of your client's settings) : 

    - data folder gets read first

    - then it reads "data.ini" and follows the priority list

    - then it reads the default GRF hardcoded in the client (usually data.grf)

  18. I should have given more details I guess xD! There are multiple ways to save the settings depending on how your client reads it.

     

    If your client uses lua files, then the width and height settings will be saved in RO\savedata\OptionInfo.lua.

    If your client uses registry settings, HKLM is the default hive and the settings will be saved in the path I put in the previous post.

    If your client uses registry settings, HKCU may be an alternative path if your client has been diffed for it.

     

    In the case of registry settings, HKCU is preferred over HKLM because Windows doesn't allow global accounts' settings to be modified by anyone without administrative privileges. Most users have admin privileges, but UAC will still block you anyway.

     

    Either way, OpenSetup will allow you to set your settings properly whatever the case is.

  19. The client's size is a registry setting, I believe normal setups have trouble setting the values because of privilege issues. Have you tried using OpenSetup by Ai4rei? It should set your settings properly, or at the very least tell you that there was an issue while it was trying to do so.

     

    If nothing else works, just set the values yourself, they can be found in : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Gravity Soft\Ragnarok\ with the keys HEIGHT and WIDTH.

    (unless you diffed your client to read the HKCU hive instead of the HKLM).

×
×
  • Create New...