Jump to content

xJhay

Members
  • Content Count

    22
  • Joined

  • Last visited


Reputation Activity

  1. Upvote
    xJhay reacted to Kuya Jeo in MVP Respawn on server restart   
    Its possible for script by killing all the mobs in the map something like killallmonsterall "prontera"; but you need to put it all in the MVP Maps.
     
    Sample : this will kill all mobs after restart and reloadscript
     
    - script MVPKILLRESTART FAKE_NPC,{ OnInit: killmonsterall "prt_maze03"; // Kill Baphomet and all monster in the map cleanmap "prt_maze03"; // Clean all drops in the map end; }  
  2. Like
    xJhay reacted to raymedium in Need NoView Plugin Support   
    how would I disable character own hat too, not just only other player
  3. Like
    xJhay reacted to Daraen in Do you plan to develop or implement a plugin like @ping and also show in-game fps?   
    Hi all,
    I know the discussion is redundant and I apologize if it tires people.
    Nowadays, all games are capable of showing the fps and ping that you get in games. Here are some examples came from my computer :
     



    Do you plan to do the same on Ragnarok Online?
    If the answer is no, I saw that on geforce experience, Ragnarok Online is taken into account, this software already offers an fps and ping counter, unfortunately the executables available on nemo are not considered as Ragnarok Online.
    I'm launching the topic, maybe other people will be interested.
    If my topic is tiring and redundant, delete it!
    Have a nice day / evening everyone
  4. Upvote
    xJhay reacted to Kuya Jeo in Regarding Cash Foods   
    Adding Delay on the item is the best way to used it one at a time

    example is something like this

    Before :
     
    { Id: 12041 AegisName: "Str_Dish01" Name: "Fried Grasshopper Legs" Type: "IT_HEALING" Buy: 2000 Weight: 60 BuyingStore: true Script: <" sc_start SC_FOOD_STR,1200000,1; percentheal 5,0; "> }, After :
    { Id: 12041 AegisName: "Str_Dish01" Name: "Fried Grasshopper Legs" Type: "IT_HEALING" Buy: 2000 Delay: 1800000 Weight: 60 BuyingStore: true Script: <" sc_start SC_FOOD_STR,1200000,1; percentheal 5,0; "> }, Item Delay : 30 minutes
  5. Upvote
    xJhay got a reaction from Kuroyama in Sharpshooting Bug   
    I saw it now, skill is bugging because of this:
    Mine is good now. Thanks everyone.
  6. Like
    xJhay reacted to Ridley in Behold, 2021 is coming   
    The New Year is the perfect occasion to appreciate all the good things that the past year has given you and all the good things that are yet to come. In the past 365 days you have experienced beautiful moments in spite of any hard times in 2020, and they wouldn’t have been quite the same without all of the special people in your life.
    Convey your warmest New Year wishes and show your friends and family you put some extra thought into wishing them the happiest of New Years with the perfect sentiment. Cheers to successes. Cheers to failures. And cheers to those who helped you make your year what it was.
     
    We always overestimate the change that will occur in the next two years and underestimate the change that will occur in the next ten.
    -Bill Gates
  7. Upvote
    xJhay reacted to astralprojection in Disable/dispell certain skill buff in certain map   
    try OnPCLoadMapEvent:
     
    - script OnPCLoadMapEvent HIDDEN_NPC,{ end; OnPCLoadMapEvent: if ( strcharinfo(PC_MAP) == "new_1-1" ) if(getstatus(SC_BLESSING)) sc_end SC_BLESSING; end; Oninit: setmapflag "new_1-1", mf_loadevent; end; }  
  8. Like
    xJhay reacted to Daraen in Punching Bag   
    Doing it like this, they work perfectly.
     
  9. Upvote
    xJhay reacted to Neo-Mind in WARP - A successor to NEMO   
    Happy Thanksgiving everyone. Since I couldn't get the turkey, I thought I would bring this instead. 
    Without further ado, Let me introduce...

    WARP (Windows Application Revamp Package)
    Why this name?
    Because I like using acronyms and this name sounded apt. Plus it's the function & features that matter more.
    And no, I am not gonna change the name.
      Why not just fix up NEMO?
    The codebase for NEMO is pretty much ancient at this point. So rather than fixing it up, I decided to go the route of creating it fresh from scratch. The end result is a far superior product. 
      OK, but what if you end up AFRO (Away From RO)again?
    Well, I can't promise that I will be around forever. However, this time around, I am releasing the source code for the tool as well.
      So, exactly what has changed?
    Well, quite a few things. Let's start off with how the GUI looks now.

      As you can see, the GUI is much more modern and aesthetically pleasing thanks to @Haziel & @Hadrias.
      The package comes with 3 tools - Console version (for simple patching), Main GUI, and Tester GUI (for batch testing).
      A big salute to @4144  for keeping NEMO alive while I was AFRO 😄.
    Ok, jokes aside, I discussed with him about the changes he made and I have incorporated almost all of them but with some differences. 
      Language & Styles are now on the bottom as you can see. All the remaining menus have now been shifted to drawers (moving side panels). To reveal them you can either swipe from the respective edge or click the button at the top. 
      The right side drawer houses all the Extensions (Used to be called 'Addons' in NEMO).
    They are now loaded independently of the client. This avoids unnecessary redefinitions and now you can also use Extensions for activities that don't need a loaded client.
      All the common functions have been added to the 'Quick Actions' group and all the remaining ones are in the left drawer, which is not many. If you have suggestions for more features let me know.

    Moving on to the Back end (This is of no use to the regular user. So you can skip this part if you want)
      It was high time for us to have a proper input file format. Enter YAML. Love it or hate it but it's here to stay.
    Frankly, I like it more than libconfig and INI. You would be seeing YAML being used for almost every file in WARP.
    This includes input files for Patches & Extensions, Files defining those two, Session files, etc.
      Writing patches is far more flexible now. Say goodbye to PTYPE_HEX and \xAB. Now we can do wild card searches with the actual wild cards inside hex codes. Of course, we still need to have some well-defined characters for that.
    Currently, we have 2 forms of wildcards - Nibble wise - For e.g. => A?, ??, ?3 Bit wise - For e.g. => [1.0...01] 
      If you have any suggestions about it let me know.
      Speaking of writing hex code, I have provided functions looking almost identical to Assembly instructions for generating their equivalent hex code. This helps in making the hex code more human-readable and adds a little more flexibility.
      User inputs have a few more types and little more flexibility in specifying constraints now. 
      Scripts have proper segregation now. Please follow them when adding your own.
    Only the scripts inside the 'Init' folder gets reloaded each time the client is loaded. This avoids unnecessary reloads.
      exe has now become 'Exe'.  But in addition to this, you get 2 more objects - System (for filesystem activities) & Warp (whatever is outside the scope of the other two)
      Many of the functions used for retrieving some constant information in the 'Exe' have become properties now. For e.g. PEoffset, ImageBase, BuildDate, etc.

      During patching, the Diff section is only added if you have inserted any code using one of the 'Add' functions. Also, the Diff section now grows dynamically as per requirement (in increments of Section Alignment of course).
      In addition to the Patched Exe, The tool also generates an (Extra Patch Info) file with the suffix '.epi'. It holds just enough info for the tool to recognize existing patches in an exe from a previous patch session. 
    So how is it useful? Let's say you have a patched client and its EPI file. But you don't have the original anymore.
    Now you can remove 1 or 2 patches and keep the rest OR even restore the original from the patched exe.
      Last, but not least, I am providing documentation about everything including the API. But bear with me for a bit, as I am still working on the documentation part.
      I probably forgot more points to add here, but I think this pretty much covers the important stuff. Anyway, the documentation would be pretty comprehensive.
      Is it ready to be used now? The tool is definitely ready. I have added most of the patches but not all just yet.
      But I was not able to test all the patches in-game. So please don't attack me if something failed.
    I would appreciate a Bug Request in Github instead.
      Also note, that some patches are still failing for new clients, and some failing for old ones. However, I saw the same behavior in NEMO, so that would be part of the next stage of operations - Updating Patch scripts.
      So, where do I get it from?
    https://github.com/Neo-Mind/WARP
      How to use it?
    There is a User Guide in the git repo (best viewed from Github itself). Everyone is used to NEMO by now, so it shouldn't be difficult to use this even without the guide. Plus the Github wiki is pretty detailed. 
      Any last words before we close this?
    Just like in the case of NEMO, my intention with WARP is to create a common tool for patching without being restricted to RO or which OS you use it in. For this reason, you will be seeing multiple branches in the Git repo.

    If you are planning to use WARP for patching some other application, Create a branch using the 'win32' branch as a starting point.


    That's about it from me for now.

     
  10. Upvote
    xJhay reacted to astralprojection in Server closing after exiting putty   
    use screen. 
    $ cd yourROFolder
    $ screen -S login  (this will create screen named "login")
    $ ./login-server
    $  ctrl+a+d to exit screen.
     
    To restore screen, use
    $ screen -r login
     
  11. Like
    xJhay reacted to 4144 in Duplicate Mob   
    this error said what you have same constant TONATOS with different values. here i think it's id.
    dont use same SpriteName in different mobs. for your custom mob use for example SpriteName with value TONATOS2
     
  12. Like
    xJhay reacted to AnnieRuru in @packetfilter   
    I found this in src\map\packet_struct.h
    struct PACKET_ZC_USE_ITEM_ACK { int16 packetType; int16 index; #if PACKETVER_MAIN_NUM >= 20181121 || PACKETVER_RE_NUM >= 20180704 || PACKETVER_ZERO_NUM >= 20181114 uint32 itemId; uint32 AID; #elif PACKETVER >= 3 uint16 itemId; uint32 AID; #endif int16 amount; uint8 result; } __attribute__((packed)); so client version 20181121 below uses `RBUFL(buf, 6)`, anything above use `RBUFL(buf, 8)`
     
    1.0 - plugin
    - introduce type [D], direction packet, and existing Dance/songs move to type `[M]usic`
    - no longer use nested IF-ELSE, use switch statement on the packet header for faster read speed
    - fix [I.]tem type throw nullpo error on 2018 client
    - add Caution as a warning that certain packet filter wont work correctly
     
    and I guess this is finally over
    time to mention everyone that has PM me about this project
    @raPalooza~
    @Azhura
    @freezing1
    @xJhay
    @Kuroyama
    @fiction
    @Skyzone
    @cusco ? <-- from discord
     
  13. Like
    xJhay reacted to AnnieRuru in @packetfilter   
    0.5 - plugin
    - fix linux compile warning `type` not being use
    - change useItemAckType into 0x1c8 ... hopefully no more nullpo ?
    - allow blocking casting animation, save more bandwidth
    - implement [T], [G], [D] type respectively
     
    also, I split the original Land Protector and bard/dancer song out
    Land Protector is under [G] type, Apple of Idun is under [D] type
    Basilica is under [B.] type
     
    type [S.] still has some bug, if being cast directly in front of the player, it doesn't block correctly
    .. very close to finish
     
    @Kuroyama, try again
  14. Like
    xJhay reacted to freezing1 in @packetfilter   
    thank you for your dedication and for helping us, Annie. 
  15. Like
    xJhay got a reaction from anacondaq in Help on getting back to starting an RO server   
    Everything you may need is here <3
  16. Like
    xJhay reacted to AnnieRuru in @packetfilter   
    PLEASE GIVE ME YOUR COMPILER
    I want my visual studio 2019 also display error like yours
    btw I'm guessing that's CentOS, this happened before on my OnPCUseSkillEvent
     
    0.3 - plugin
    - add missing FILTER_CLAN flag
    - implement block_item type 'I' flag
    - fix FILTER_OTHER not working properly when the player doesn't have a party or guild
    - fix [C]hat type shouldn't able to filter self, since the client always shows you are talking anyway
    - and attempt to fix the above stupid error that doesn't show on Visual Studio
  17. Upvote
    xJhay got a reaction from AnnieRuru in @packetfilter   
    Hi mam, once again error won't show up in windows compiler but showing in another compiler.
    Here it is, already tried the 0.2:

  18. Like
    xJhay reacted to AnnieRuru in @packetfilter   
    0.2 - plugin
    - add sub-type flags (Self/Party/Guild/Bg/Other/Homun/Mob)
    - add emotion filter
    - fix compiler warning that doesn't display on visual studio
     
    actually there are a lot of people interested in this topic...
    @xJhay
     
    let me just copy paste from a PM
     

     
    the reason I started this topic because I received the `@packetfilter` for rathena use, and asked me to convert into plugin
    and upon reading it I found its very inconvenient and thus I want to rewrite it
    that version I receive is block based on skill ID
     
    but my plan is to block based on flags, not every skill ID entry
    if block by skill type listed in skill_db,conf will make the plugin future proof
    SkillType: { (bool, defaults to "Passive") Passive: true/false (boolean, defaults to false) Enemy: true/false (boolean, defaults to false) Place: true/false (boolean, defaults to false) Self: true/false (boolean, defaults to false) Friend: true/false (boolean, defaults to false) Trap: true/false (boolean, defaults to false) } SkillInfo: { (bool, defaults to "None") Quest: true/false (boolean, defaults to false) NPC: true/false (boolean, defaults to false) Wedding: true/false (boolean, defaults to false) Spirit: true/false (boolean, defaults to false) Guild: true/false (boolean, defaults to false) Song: true/false (boolean, defaults to false) Ensemble: true/false (boolean, defaults to false)  
    PS: just like card seller A-Z, before I made that script every member posted on the board manually insert each card ID into each npc,
    until I made that SQL version which rip from SQL database, that old script still works today, make it future proof
     

     
    another thing to note about that version is because it block base on skill ID only, it doesn't make use of the flag of each packet
     
    on the battlefield, or I mean during woe, there are a lot of packets being sent even if its unnecessary information
    for example, your guild and another guild A attacking defending guild B,
    and your guild and guild A are not on good terms and rushing to destroy the emperium
    my point is, guild A attacking guild B are unnecessary in my opinion, and I don't need those packet informations
    but I still need to know my party/guild are under attack
     
    /// 02e1 <src ID>.L <dst ID>.L <server tick>.L <src speed>.L <dst speed>.L <damage>.L <div>.W <type>.B <damage2>.L (ZC_NOTIFY_ACT2) and I can use <src ID> and <dst ID> and check are they the same guild ? then send packet
    is <dst ID> my guild mates ? then send packet
    the rest are not important
     
    that version simply block by skill ID and from my understanding, I wouldn't know who is actually healing me when enable `@packetfilter`
    there are some healer who are good in healing others and some just standing there acting like a doll waiting to get hit
     
    my idea is make additional field so only filter out unneeded information
    when playing as crusader, my job is to defend my party, and I want all information packets send that are threatening my party
    when playing as assassin, I don't have to take care of guild member, I only want to assassinate the healer or dd who are actively killing the most of my guildmates etc
    yeah, make it highly configurable
     

     
    anyway read the additional information I already made this part a reality,
    but so far only chat and emotions are implement, skills has to do ... maybe tomorrow ...
  19. Upvote
    xJhay got a reaction from AnnieRuru in @packetfilter   
    warning for latest svn.
  20. Like
    xJhay reacted to AnnieRuru in Random Time Summon   
    needs to do some calculation
     
    on official repo is OnTimer7200000: means 2 hours
    btw OnTimer28800000: is 8 hours, not 4 hours
     
    so let's leave it at OnTimer28800000: then
    if you want 2 hours then setnpctimer 28800000 - 2*60*60*1000; startnpctimer;
    if you want 3 hours then setnpctimer 28800000 - 3*60*60*1000; startnpctimer;
    if you want 4 hours then setnpctimer 28800000 - 4*60*60*1000; startnpctimer;
     
    so it should look like this
    OnTimer36000: OnTimer37000: mapwarp "thana_boss","tha_t12",130,52; stopnpctimer; setnpctimer 28800000 - F_Rand(2,3,4)*60*60*1000; startnpctimer; end; OnTimer28800000: $@thana_summon = 0; $@thana_summon2 = 0; donpcevent "Memory Seal#tt1::OnEnable"; donpcevent "Memory Seal#tt2::OnEnable"; donpcevent "Memory Seal#tt3::OnEnable"; donpcevent "Memory Seal#tt4::OnEnable"; donpcevent "#thanatos_seal::OnEnable"; stopnpctimer; end; didn't hard to test ... hopefully you don't say its bug
     
     
  21. Like
    xJhay reacted to AnnieRuru in Create a dummy character/player to clone   
    mob avail ... many members has been claiming the new mob avail format isn't really working
    let's see ...
     
    { Id: 3001 SpriteName: "AnnieRuru" Name: "AnnieRuru" Lv: 120 Hp: 1000000 Sp: 1 Exp: 1 JExp: 1 AttackRange: 1 Attack: [100, 200] Def: 99 Mdef: 99 Stats: { Str: 99 Agi: 99 Vit: 99 Int: 99 Dex: 99 Luk: 99 } ViewRange: 14 ChaseRange: 1 Size: "Size_Medium" Race: "RC_Human" Element: ("Ele_Neutral", 1) Mode: { CanMove: true CanAttack: true Aggressive: true } MoveSpeed: 150 AttackDelay: 1000 AttackMotion: 1000 DamageMotion: 1000 ViewData: { SpriteId: 4063 WeaponId: 1501 HeadTopId: 167 HeadMidId: 169 // HeadLowId: HairStyleId: 3 BodyStyleId: 1 HairColorId: 8 BodyColorId: 2 RobeId: 1 Gender: "SEX_FEMALE" } }, who said not working ???

     
    so just add skills
    AnnieRuru: { AL_HEAL: { SkillState: "MSS_ANY" SkillLevel: 10 Rate: 9000 Delay: 2000 Cancelable: true SkillTarget: "MST_MASTER" CastCondition: "MSC_MASTERHPLTMAXRATE" ConditionData: 99 } AL_BLESSING: { SkillState: "MSS_IDLE" SkillLevel: 10 Rate: 10000 Delay: 60000 Cancelable: true SkillTarget: "MST_MASTER" CastCondition: "MSC_ALWAYS" } AL_INCAGI: { SkillState: "MSS_IDLE" SkillLevel: 10 Rate: 10000 CastTime: 1000 Delay: 60000 SkillTarget: "MST_MASTER" CastCondition: "MSC_ALWAYS" } AL_HEAL: { SkillState: "MSS_ANY" SkillLevel: 10 Rate: 9000 Delay: 2000 Cancelable: true SkillTarget: "MST_SELF" CastCondition: "MSC_MYHPLTMAXRATE" ConditionData: 99 } AL_HEAL: { SkillState: "MSS_ANY" SkillLevel: 10 Rate: 9000 Delay: 2000 Cancelable: true SkillTarget: "MST_FRIEND" CastCondition: "MSC_FRIENDHPLTMAXRATE" ConditionData: 99 } }  
    and add `@summon` and done
    https://github.com/HerculesWS/Hercules/pull/2888
    with this patch, tested it works
  22. Like
    xJhay got a reaction from zect00 in Help on getting back to starting an RO server   
    Everything you may need is here <3
  23. Like
    xJhay reacted to AnnieRuru in cell_pvp   
    NO - I am perfectionist
     
    1.5 - plugin
    - fix unused struct error happens on certain compiler
     
    actually its ok to ignore, this error didn't even show up on my visual studio hahaha
  24. Like
    xJhay got a reaction from AnnieRuru in custom statue NPC   
    Hi Maam Annie! I'm trying this wonderful script right now and I'm receiving this error:
     

     
    Is this normal? The poring changes to a players sprite but whenever I talk to the NPC, it gives me that error notif.
  25. Like
    xJhay reacted to evilpuncker in custom statue NPC   
    this will be really really useful, specially to make players feel more rewarded by an event! thanks annie
     
    hope it can support offline players soon 😁
     
    btw wouldn't it make more sense to have this as a function instead of an npc? (just a thought 😜)
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.