Jump to content

JulioCF

Int'l Portuguese Moderators
  • Content Count

    791
  • Joined

  • Days Won

    10

Reputation Activity

  1. Upvote
    JulioCF reacted to Ind in Introducing Hercules' Stress Test Server   
    Introducing Hercules' Stress Test Server
    Hello~!
     
    The "Stress" Part
    Over 1.000 IndAI units (equivalent to +1k online players) will be in the server playing 24/7, farming, going to pvp, doing woe, playing battlegrounds, doing anything a player does, this will create a perfect scenario for us to debug and test Hercules.
     
    The Development Benefits
    We'll be able to keep track of performance usage 24/7, making us able to detect whenever a update increases a server's usage, allowing us to further optimise said update in order to take the processing down. With the AI characters doing stuff non-stop 24/7 we'll be able to identify and fix any crashes existent. Hercules will gain a super stability boost thanks to this. How to connect / Moving in and out
    This is the fun part.
    No new clients, and no sclient/clientinfo/blablabla edits will be required. get to the test server by typing '@hercules warp', test whatever you like, and go back to your server with '@hercules leave'. This technology *might* also be employed in the future by us to create hercules-hosted inter-server events.
     
    Entirely Secure
    The only data your server will pass to our test server upon warp is the name of the character (and maybe hairstyle vals).
    The test server is unable to modify (or even access) any data on your server, it is entirely secure and damage-free.
     
    Unique to Hercules
    The ability to connect through your ordinary client will be made possible by our custom server hosted over at herc.ws, the code won't be made public.
     
    Coming
    I felt inspired to write about this feature, which is why this announce is out before the feature itself.
    This is one of the features to be powered by our Hercules Plugin Manager and will be made public once the HPM implementation reaches the level capable of sustaining it.

    FAQ
    what if i dont want my players to go to the test server?@hercules is a command like any other, you can restrict access by groups.conf (by default only gms will be able to use it) what if i dont have a test server to use as a gateway to the hercules stress test server?we will also provide clients for those who don't have/want to use a server as the gateway
  2. Upvote
    JulioCF reacted to keough in [Showcase] Royale Town   
    Hello Hercules, i think i was the first one who will post a map showcase here in this thread! so yeah!   I would like to show you my latest map creation Royale Town! it is a wonderful and a beautiful map i've done with so much effort to it!   Just rate em up and comment! thank you!   Video of the Map   Screenshots in-game             Hope you like it!
  3. Upvote
    JulioCF reacted to Mystery in March Digest 2013   
    We'll be starting our Monthly Digests so that we can keep our community informed on whats going on with Hercules!
     
     
    March Digest 2013
    The following digest covers the month of March 1st - March 31st 2013.
     
    Team Addition
    [*]Wolf has joined as a Portuguese Moderator.

    Development Highlights
    [*]Hercules' Channel System (7ec1e8f) [*]Re-Introduction of ERS Report (646f978) [*]Garment Costume System (9aded8a) [*]Slot Change Feature (889a866) [*]Hercules' Map Zone Database (90f117f) [*]Re-introduction of Console Input (3b89a13) [*]Dropping of StatusChangeStateTable (70a3d73) [*]Hercules' Renewal Pincode System (d2d734c) [*]Follow Up: 84e8f18, f214021, 5b1fee9
    [*]Introduction of Account-Dependent Character Slot Count (0241d01) [*]On-Going process of Hercules Renewal (Topic)


    Command Additions / Updates
    [*]Added 'itemeffect' script command (c58f741) [*]AccountInfo command updated to work with Pincode (9b5ec24)

    Statistics
    [*]During the period there were 62 commits. [*]Of these 62 commits 15 included bug-fixes. [*]1 Commit from Pull Request [*]In this month, there were 21,330 Additions and 16,692 Deletions. [*]February's Statistics: [*]- 112 Total Commits (merges not included) [*]- 29 Bug Fixes [*]- 21 Commits from Pull Requests



  4. Upvote
    JulioCF reacted to Ind in Introducing Hercules Channel System   
    Introducing Hercules' Channel System
    Hello~! - What?!
    1st, it is a replacement for the old @main 2nd, it is a super ultra mega improvement compared to the functionality @main provided. 3rd, whops. there is no 3rd. channels.conf format
        /* default channels (available on boot) */     default_channels: {         /* channel_name : channel_messages_color */          main: "Orange" /* available as #main */         support: "Blue" /* available as #support */         trade: "Red" /* available as #trade */         offtopic: "Cyan" /* available as #offtopic */         /* as many channels as you like */     }     /* colors available */     colors: {         Default: "0xffffff" /* custom channels will use the first in the list unless a font is selected thru @channel */         Red: "0xff0000"         Blue: "0x83cfe9"         Orange: "0xe57c00"         Cyan: "0x00b89d"         Yellow: "0xffff90"         Green: "0x28bf00"         Normal: "0x00ff00"         /* as many colors as you like */     }     /* allow users to create their own (private) channels through @channels command? */     /* (must also allow players to use @channels in groups.conf) */     allow_user_channel_creation: true     /* "map_local_channel" is a instanced channel unique to each map */     map_local_channel: true     map_local_channel_name: "map" /* available as #map */     map_local_channel_color: "Yellow"     map_local_channel_autojoin: true /* can disable autojoin in specific maps through mapflag or zone: nomapchannelautojoin */     /* "ally_channel" is a channel shared by all your guild allies */     ally_channel_enabled: true     ally_channel_name: "ally" /* available as #ally */     ally_channel_color: "Green"     ally_channel_autojoin: true Notes on the format/configuration
    default_channels is the list of reboot-persistent channels, you can setup as many as you like and each can have its own color for chat, which you can specify in colors (again, you can setup as many as you like) map_local_channel is a feature that grants each map its own instanced channel (available, by default as #map -- which can be changed as per map_local_channel_name) map_local_channel_autojoin whether users will autojoin the local channel when they load a map with it enabled map_local_channel_autojoin can be disabled on selected maps (e.g. if you dont want it on gvg maps) through a mapflag (with a horribly long name D:) '<map name><tab>mapflag<tab>nomapchannelautojoin' ally_channel_enabled is a feature that grants a instanced channel for each guild's allies (as well as their own members), available by default as #ally -- which can be changed as per map_local_channel_name ally_channel_autojoin whether users will autojoin their respective ally chats upon login. New Commands Explained
    @join Simple: @join <#channel_name>or, for password-protected rooms: @join <#channel_name> <password> @channel Does a number of things. Create a new channel (option available as long as allow_user_channel_creation is enabled) @channel create <#channel_name> <password> List public channels (groups with hchsys_admin can view private channels as well) @channel list Change a channel's color (requires to be owner of said channel or be in a group with hchsys_admin permission) @channel setcolor Samples available colors and displays their keys/names @channel list colors Leaves a specific channel @channel leave <#channel_name> Binds your global chat to a specific channel, making everything you type that'd normally be displayed to nearby characters be redirected to that channel instead @channel bindto <#channel_name> Unbinds your global chat from the current (if any) binded channel @channel unbind Bans a specific character from a channel @channel ban <#channel name> <character name> Lists all banned characters from a channel (groups with channel system admin permission can also see their account id) @channel banlist <#channel name> Unbans a specific character from a channel @channel unban <#channel name> <character name> Changes a channel's options (for now, channel message delay and announce-when-someone-joins) @channel setopt <#channel name> <option name> <option value> How to speak in a #channel
    You can either bind a channel to your global chat (see @channel bindto above) or PM the channel you want to speak to, if you attempt to send a pm to a non-password protected channel that you have not joined, you'll autojoin. Other stuff
    as I coded this feature I also improved overall guild processing/lookup, extremely, extremely faster (did I already say its ridiculously faster? WoE overhead probably more than halved with this). over a hundred lookups were replaced by a cached guild state that takes only 4~8 bytes per player. The commit also fixed a "wearing-garment-removed-costume-garment-look" bug - special thanks to jTynne for letting me know~! Groups with channel admin permission can bypass the channel message delay Special Thanks
    to Streusel for proposing an idea that'd end up as the @channel bindto feature. to Frost for proposing the per-channel message delay limitation to Fatalis for proposing what'd end up as the @channel ban, @channel unban and @channel unbanall to Zopokx for proposing an improvement to how the map/local channels function Links~!
    Commit Commit (update)
  5. Upvote
    JulioCF reacted to Nameless2you in 03/27/2013 kRO Maintenance   
    kRo breaking boundaries 160->175:
     

     

    New mob stats with 100% HP.
     
    Credits to Ziu, if anyone can/wants to translate or read it, enjoy.
     
     
    PS: Piano at level 140 has +18m HP (was damaged already), damn, more than Satan Morroc or Wounded Morroc..
  6. Upvote
    JulioCF reacted to Ind in Introducing Hercules' Map Zone Database   
    Introducing Hercules' Map Zone Database
    Hello~! - What?!
    1st, it is a merge from item_noequip.txt and skill_nocast_db.txt functionality. 2nd, it is a major improvement on what these features did in both performance and usability. map_zone_db.txt format sample
    {     name: "My Zone"     inherit: ( "My Other Zone" )     disabled_skills: {         AL_HEAL: "PLAYER | MONSTER | ELEMENTAL"         AL_TELEPORT: "MONSTER"         MG_FIREBOLT: "NONE"         //MG_NAPALMBEAT: "PLAYER"         //ID11: "PLAYER"     }     disabled_items: {         Assumptio_5_Scroll: false         //Apple: true         //ID501: true     }     mapflags: (         "adjust_skill_damage    MG_FIREBOLT    250",         "adjust_unit_duration    PR_SANCTUARY    50"     )     /* "command:min-group-lv-to-override" e.g. "heal: 70" */     disabled_commands: {         //Example Below makes @heal be used in maps within this zone only by those group lv 70 and above         //heal: 70     }     skill_damage_cap: {         //Exemple Below caps firebolt damage in maps within this zone to a maximum 50 damage,         // (depends on HMAP_ZONE_DAMAGE_CAP_TYPE in src/config/core.h)         // when cast vs players and monsters.         //MG_COLDBOLT: (50,"PLAYER | MONSTER")     } } Notes on the format
    In disabled_skills the var following the name (: "PLAYER | MONSTER | HOMUN | MERCENARY | ELEMENTAL | PET | CLONE | MOB_BOSS") is what allows a zone to know what unit types should have this skill disabled. In the sample above, for example, in My Zone, player, monster and elemental unit types are unable to cast heal, while only monsters are unable to cast teleport. this variable may also be used to ignore skills from inheritance, for example if My Other Zone disabled a number of skills, including MG_FIREBOLT, in My Zone all of them will be disabled as well, except for MG_FIREBOLT since it is set as NONE. In disabled_items the var following the name (: true or : false) is what allows a zone to override what it inherited, for example if My Other Zone disables a number of items, including Assumptio_5_Scroll, in My Zone all of them will be disabled as well, except Assumptio_5_Scroll since it is as false. A zone may enforce an unlimited number of mapflags on all its maps, by using this sample all maps under My Zone will have Fire Bolt damage increased by 2.5x and Sanctuary will have its duration halved. A unlimited number of maps may be linked to a specific zone through a mapflag '<map name><tab>mapflag<tab>zone<tab><zone name>' Changes The mf_restrict (restrict) was dropped. item_noequip.txt and skill_nocast_db.txt were dropped, replaced by map_zone_db.txt. setmapflag script command was modified to support the new zones. @mapinfo was modified to support the new zones, also modified the formatting and made it include the amount of vendings. Improvements As opposed to item_noequip.txt and skill_nocast_db.txt, map_zone_db.txt supports an unlimited number of zones. map_zone_db.txt implementation surpasses the ones from item_noequip.txt and skill_nocast_db.txt, making item equipping (pc_useitem/status_calc_pc) and skill using (previously skillnotok, now status_check_skilluse) processing much faster and efficient. @mapinfo performance was improved (was doing chat room dbmap lookups without even checking if player was on the map in question) Special Thanks to Muad_Dib <3. to lighta for discussing the feature with me and helping design the unit-based restrictions on skills to Bahmut and Emistry for ideas on how to format the file. to kyeme for feature ideas. Links~! Commit Commit 2 (update) Map Zone Database File
  7. Upvote
    JulioCF reacted to Nameless2you in 03/27/2013 kRO Maintenance   
  8. Upvote
    JulioCF reacted to Feefty in Feefty's FluxCP Addons Release   
    Vote for Points - Version 1.2
     
     
     
    Freebies - Version 1.2.2
     
     

    Support Tickets - Version 1.2.1 
     

    Github: http://github.com/Feefty
    Email: [email protected]
    rAthena: Feefty
    Hercules: Feefty
    PM me for suggestions.
    Buy me a coffee
    voteforpoints-1.2.rar
    freebies-1.2.2.rar
    support-1.rar
    support-1.2.1.rar
  9. Upvote
    JulioCF reacted to Judas in 2013 Ragexe Area   
    Thanks to k3dt for upacking the clients, we have access to 2013-03 where new skills were added. RagexeRE are compiled differently so at the moment, it can't be used unless someone finds a way.
     
    Anyway, this topic is mainly for support in trying to get ragexe working since it seems that it will prove more useful than RagexeRE.
     
    Shows new skill effects ingame:
    View Video
     
     
    2013-03-20 Packet lengths:
    http://pastebin.com/7Qpw31Mk
     
    2013-03-20 Packet DB:
    http://pastebin.com/1hxk83YD (Updated Link as of 04/08/13)
    *Added itemselectwindow that Malufett helped provide
     
     
    2013-03-20 Client w/ Skip Packet Obfuscation Applied:
    Notes ~ Haven't got a chance to disable hshield yet, but everything is laid out (Bare Minimum) for you if you want to test and contribute.
    http://www.sendspace.com/file/2xtqkr
     
    I don't have the translations/translated lub files that rytech has, but here is the 2 new skills in the skill list.
     

     
     
    Problems faced so far:
    ALT+W (For Cart) won't work anymore. I tried last time on RagexeRE, and I assume the same problem on Ragexe. It says prohibit to use in area. (Packet related?)

     
    Method to log in:
    Note: This process is only for testing for now, since the client still needs to be diffed with the necessary patches.
    ragexe.exe -1rag1 /account:sci.xml -t:blah blah server
    (In bat file) where sci.xml is in the data folder
      In mysql, create a new account with no ID/Pass, and set the group_id to 99 to get a gm account
    Reason for this is due to the xml settings and the client isn't fully patched
    You may see in your console, accept account ID(blank) with password(blank)
      When you login, you can login with the blank account and log in with your character
    I had to manually create a character in mysql though, I got "Not Available" in my char select screen
      Once done, login, and you see your character you made. Toggle right and back to your character to login to the account. If you don't, then enter won't do anything.

     
    Over the few days, if no one has done it yet, I'll keep applying some patches to the client so it'll be easier to test
     
    data/sci.xml:
     

    2013-03-20 Hex Strings
    Notes: For me, if you diff with ShinsdiffPatcher the client will no longer work.
    So I think until someone updates it, we just have to manually find/replace.
    Below are the strings that was auto found by the client. [Experimental]
    *Please post a working client with these applied if possible
     
    *Credits for diff strings: k3dt, Ai4rei, GreenGox, Shinyro, diff team
    For Finding hex-strings: Shakto, MStream
      2013_03_20_J: http://supportmii.com/ro1/Clients/2013_03_20_J.7z Contains:
    bat file to login (Since we still need restore login window) Client patched with the above hex strings (Haven't w/ 30k ID or Remove Quake Animation Yet) Empty data folder with sci.xml inside to connect with   In bat file: 2013_03_20_J -1rag1 /account:sci.xml -t:Leon Leon server -> Replace Leon Leon with Yourpassword Yourusername   MStream Diff (Used with WeeDiff Patcher) WIPv1

  10. Upvote
    JulioCF reacted to Mystery in Midgard-Community   
    Hey everyone!
     
    I decided to create a quick simple Search Box for our Database located right inside out Boards. Why? Well, whatever you search in that search box will give you a list of results in our actual database provided through Google. But why Google? With using Google as the search engine allows Google's Crawl Bot to consistently crawl our Boards while providing hits to our site.

    However, keep in mind that whatever you're searching in our Search Box will only redirect you to findings within our database. For example, if you search 'Poring', you will only be redirected to several pages in our database the contains the word 'Poring'. In other words, the search results will only be from our database and not from the entire web.
  11. Upvote
    JulioCF reacted to Judas in Cash shop button   
    I've made some progress, though I'll be a while, since I'm been extremely busy. I forget which client this is, but this uses another interface, maybe older?
    Nevermind here's more info about it:
    http://ro-projectrevolution.blogspot.com/2009/07/quick-cash-shop-button_1656.html
    http://forum.mmosite.com/thread/2/128/20071115/How_to_change_Credits_to_Rok_Points_pRO-4da843de832587213-1.html
     

  12. Upvote
    JulioCF reacted to Nameless2you in 2013/03/06 kRO Maintenance   
    Newly introduced mob(s) in Episode 14.3 Part 2:














    New NPC's:
    4_f_runain
    4_f_shalosh
    4_m_roel
    4_energy_black
    4_energy_blue
    4_energy_red
    4_energy_white
    4_energy_yellow




    New BGM:
    http://telefonica.net/web2/ziu/descargas/160.mp3 (Jittering Nightmare (160))



    New Instance map(s):




    Below are things that have been implemented prior to March 6th 2013. (06-03-2013)
    Previous newly introduced mob(s) to Sakray:









    New Skill icon(s):


    Name by order from left to right Dark Crow, Frigg Song, Full Throttle, King's Grace, Offertorium, Rebound, Telekinesis Intense & Unlimit.



    Initial skill translations:
    (These may be very, very wrong, google tends to do that)
    Guillotine Cross

    Dark Crow
    Prereq: Dark Illusion 5
    Max Levels: 5
    Type: Active/damage - Special
    Give an enemy a painful wound for 5 seconds, causing short ranged attacks to deal greater damage to the target.

    [Level 1]: 100% Damage / Melee damage received +30%
    [Level 2]: 200% Damage / Melee damage received +60%
    [Level 3]: 300% Damage / Melee damage received +90%
    [Level 4]: 400% Damage / Melee damage received +120%
    [Level 5]: 500% Damage / Melee damage received +150%

    Ranger

    No Limits
    Prereq: Fear Breeze 5
    Type: Active Buff (Self)
    Tap into the power of the god of hunting and archery to increase the explosive power of ranged attacks for a short time.

    [Level 1]: 1 minute / Increase ranged physical damage by 1.5
    [Level 2]: 1 minute / Increase ranged physical damage by 2
    [Level 3]: 1 minute / Increase ranged physical damage by 2.5
    [Level 4]: 1 minute / Increase ranged physical damage by 3
    [Level 5]: 1 minute / Increase ranged physical damage by 3.5

    Royal Guard

    King's Grace
    Prereq: Reflect Damage 5
    Type: Active Buff
    Bestow royal blessings to the caster and allies around the caster to recover HP and protect against status effects.
    Protects against (or removes?) the following statuses: Poison, Blindness , Frozen, Stone Curse, Stern (?), Sleep , External Bleeding, Curse, Confusion/Chaos, Hallucination, Silence, Burning, Cold-Slower, Crystalize, DeepS leep, Fear, Mandragora Howling

    [Level 1]: Every 5 seconds HP recovered 4%
    [Level 2]: Every 5 seconds HP recovered 5%
    [Level 3]: Every 5 seconds HP recovered 6%
    [Level 4]: Every 5 seconds HP recovered 7%
    [Level 5]: Every 5 seconds HP recovered 8%


    Credits to Ziu, Rytech & Jayed
  13. Upvote
    JulioCF reacted to Ind in Reserved slot system   
    Added support in https://github.com/HerculesWS/Hercules/commit/0241d0195558b7e57d2181f2f097cf774a1ef463
  14. Upvote
    JulioCF reacted to Mystery in Ragnarok Renders   
    Ragnarok Renders 
    What is a render?
    A render is basically an image where an object in the image has a transparent background. Think of transparency as something invisible. In this case the object(s) are monsters, characters, items, etc.


    How do I make a render?
    Well there are several ways, my easy solution is just to use the magic eraser tool in Photoshop CS5. You use that and click the background, the more solid the outline of the object the easier it is to render. Some objects you may have to trace the lines so that way the eraser doesn't erase a part of the image its not supposed to. This takes much trial and error, and don't worry, as long as you don't mess up on the tracing, you can't tell its been traced.


    What does the packages contain?
    NPC cutins, official wallpapers, and fankit images. There are also login screens that have been put together, as well as loading screens. It will also have all the original images for people who want to help out or just to see what the render came from; however, wallpapers are not included because it makes the package too large.


    What format are the images in?
    The images are saved in .PNG format.
     
    Disclaimer: Not every file is in .png format (Renders Package).

    ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    Downloads
    Renders Package (Renders [10-2-2010])
    https://github.com/Mysteries/Mysterious-Project/tree/master/Graphics/Renders [10-2-2010]
    Updated: Added blank card templates, as well as blank flags.

    Card Images
    https://github.com/Mysteries/Mysterious-Project/tree/master/Graphics/Card Images
    Comment: I don't know if this will be useful to anyone, but I figured why not. From the data.grf.

    NPC Cutins
    https://github.com/Mysteries/Mysterious-Project/tree/master/Graphics/NPC Cutins
    Info: The NPC images without a transparent background. Also from the data.grf.

    jRO NPC Cutins (2012)
    http://mysterious-project.googlecode.com/svn/trunk/Renders/jRO Cutins.rar
    Info: Thanks to Bahamut for supplying them. I made them into Renders.
     
    Rebellion (Friday October 18th 2013)
    https://github.com/Mysteries/Mysterious-Project/tree/master/Graphics/Rebellion
    Info: Trying to find some Rebellion images… in this folder there will be a mix of .jpgs and .pngs
     
    Kagerou & Oboro (Friday October 18th 2013)
    https://github.com/Mysteries/Mysterious-Project/tree/master/Graphics/Oboro&Kagerou
    Info: Trying to find some Oboro & Kagerou images


    February 1st 2014 Update~ 
     
    Did some drastic changes with my Graphic folder that houses render images:
    - Reorganized my folders
    - Renamed a bunch of files
    - Fixed Oboro and Kagerou to proper .png formats (Renders)
    - Added a new folder ‘February2014_Renders’ with additional renders I am currently working on
    - Updated Kagerou and Oboro Renders
     
    Commit link
     
    Sadly, the changes I've done were long for GitHub and won't display the diff.
  15. Upvote
    JulioCF reacted to latheesan in NPC Script Editor   
    Hi,
     
    NPC Script Editor is an easy to use & feature packed NPC Script Editor for ROemulator(s).
     
    Download Latest Version
     
    NPC Script Editor r600
     
    Features
    NPC Script Syntax Highlighting Standard functionalities you'd expect of a editor (file, open, print etc...) Fully implemented Find & Replace (Ctrl + F / Ctrl + H) with Go To (Ctrl + G) functions Quick Find & Highlight Tabbed Editor Tab Docking Open-Source & Easy To Use Plugin System - sample "Hello World" project in "Plugins" folder (VS2012 C# .NET) Auto-Suggest/Complete Code Folding Markers / Bookmarks NPC Script Commands Bible - Free Plugin Text Translator - Free Plugin Snippets - coming soon
     

    Hotkeys
     
    Ctrl + W = Close Current Tab
    Ctrl + Tab = Next Tab (Cycle Forward)
    Ctrl + Shift + Tab = Prev Tab (Cycle Back)
    Ctrl + N (1 ~ 9) = Opens Nth Opened Tab (e.g. Ctrl + 2 will open 2nd open tab)
    Ctrl + Space = Show auto-suggest/complete for the script command you are typing
    F1 = Select text in editor and press F1 to open NPC Script Command Bible plugin
    F2 = Select text in editor and press F2 to open Text Translator plugin
     
    What's New in Version v1.0.0.600 [*]Fixed bug with plugin service which initialized the plugin twice (slowed the app launch, now it's much better) [*]Updated plugin interface - the Initialize() method must take a string parameter (SelectionQuery) [*]Sample "Hello World" sample plugin (VS2012 C# .NET) now comes shipped with each new release - check "Plugins" folder [*]The NSE will now remember your last window position, size and monitor number (Resets with each new release) [*]Now you can open npc script file by dragging & dropping them into editor [*]NPC Script Command Bible Plugin will load custom
    "script_commands.txt" file (if it's found in "Plugins" dir) - otherwise
    it defaults to built-in resource file on the DLL. [*]Ctrl + W = Close Current Tab [*]Ctrl + Tab = Next Tab (Cycle Forward) [*]Ctrl + Shift + Tab = Prev Tab (Cycle Back) [*]Ctrl + N (1 ~ 9) = Opens Nth Opened Tab (e.g. Ctrl + 2 will open 2nd open tab) [*]Ctrl + Space = Show auto-suggest/complete for the script command you are typing [*]F1 = Select text in editor and press F1 to open NPC Script Command Bible plugin [*]F2 = Select text in editor and press F2 to open Text Translator plugin [*]Implemented F6 Hotkey = Parse Current NPC Script To Output Window and shows any syntax / coding errors [*]OutputWindow cannot be closed, and it starts hidden now [*]Improved OutputWindow handling code [*]OutputWindow now launches in hidden mode, and reveals itself on F6 keypress (if hidden) [*]Fixed Tab Order/Stop in Core Plugins [*]NPCScriptCommandsBible Plugin no longer uses internal script_commands.txt [*]script_commands.txt is converted to Windows EOL automatically before parsing - no need to manually convert it now [*]Re-Written NPCScriptCommandsBible Plugin's script_commands.txt Parser [*]Plugin Code Optimized [*]Fixed unnecessary trailing space with command info parsing - NPCScriptCommandsBible [*]Enabled word wrap and forced vertical scroll bar - NPCScriptCommandsBible [*]F1 hotkey now guesses the word at caret position (if a selection wasn't there) [*]New script file(s) that are opened now automatically converted to CRLF (EOL) [*]Fixed minor bug with F1 Guess Word At Caret function [*]Fully Implemented "Open Recent" (History) Feature [*]U.I Improvement - If the same file is already opened, that tab window is shown instead of opening the same file twice (or more) [*]Enabled brace matching [*]Fixed Minor Bug With Start-Up Sequence [*]Fixed crash bug with opening files with the editor [*]Removed Global Hotkey and replaced with application level hotkey feature

     
    Demo
     

     

     

     

     

     
    Thanks for trying my editor.
    Any comments and feedback would be much appreciated.
    NPC Script Editor r314.zip
  16. Upvote
    JulioCF reacted to Senos in Script Intermediário! - (Aula 7)   
    Script Intermediário! - 7
    Lista de Aulas:
    Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/
    Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/   Bom, nesta aula ensinarei a utilizar as operações matemáticas, comparações, e condições (Baseado na linguagem C). Segue abaixo os tópicos que ensinaremos: 1.0 Operador de igualdade 2.0 Operadores aritméticos 3.0 Operadores lógicos 4.0 Operadores condicionais

     
    1.0 Operador de igualdade
     
    É um operador super comum em todas as linguagens de programação, esse operador (=) faz a variável da esquerda assumir o valor da variável da direita, ou expressão (caso for string), porém, no script nós NÃO utilizamos esse tipo de operador, e fazemos uma soma direto, utilizando a vírgula, vide o exemplo:
    set @var, @var + 2; // O conteúdo de @var é aumentado em 2!  
    Simples, não? O operador de igualdade em C ficaria assim:
    var = var + 2; // O conteúdo de var é aumentado em 2!  
     
    2.0 Operadores aritméticos
     
    Bom, são os operadores mais usados simplesmente na linguagem de script, tabela:

     
    Exemplo com variável:
    set @variavel, 2;if (@variavel >= 3) { // Isso aqui nunca aparecerá pois @variavel que é igual a 2, nunca será // maior ou igual a 3, logo essa parte aqui se torna falsa, e pulará o if. mes "Essa condição é falsa!"; close;}mes "A condição acima é falsa!";close;  
    Outros exemplos agora sem variável:
    if (2 >= 3) { mes "Isso nunca aparecerá (pois não é verdadeiro) porque 3 não é maior ou igual que 2."; close;} mes "O valor é falso!";close;  
    Agora vai da sua lógica saber utilizar os comandos da maneira como quiser e como necessitar em seu script!
     
     
    3.0 Operadores lógicos
     
    As vezes são usados normalmente com expressões booleanas (acho que o Dubugras explicou isso uma vez no Cronus), isto é, expressões que retornam verdadeiro ou falso (1 ou 0 por exemplo), para fins de testes em declarações condições.   && (E lógico)   Retorna verdadeiro se todos os operadores forem verdadeiros e falsos nos demais casos, por exemplo: if (1 < 2 && 2 > 1);  // 1 é menor que 2, e 2 é maior que 1.  
    || (OU lógico)
     
    Retorna verdadeiro se todos os operadores forem verdadeiros e falsos nos demais casos, por exemplo: if (1 < 2 || 2 > 1);  // 1 é menor que 2, ou 2 é maior que 1.  
     
    ! (NÃO lógico)   Retorna verdadeiro se ele é falso e vice-versa, por exemplo: set @variavel, 1;if (!@variavel); // A variável NÃO é igual a 1.   Em C, se fizemos só isso bastaria:  if (!var); // Ou até mesmo:if (var == 0); // Daria no mesmo!  
     
    4.0 Operadores condicionais
     
    Temos uma forma genérica, por exemplo. <variável>, (expressao 1) ? (expressao 2) : (expressao 3);  
    Em if poderiamos fazer simplesmente: if (var == 0) { set varx, 2;} else { set varx = 3;}  
    Agora poderiamos otimizar da seguinte maneira: if ((var == 0) ? 2 : 3));  
    Com certeza depois de almejar mais scripts, de fazer modificações ou até mesmo elaborar seus própios scripts, verão que são coisas extremamente simples de entender e até mesmo praticar!

    _____________________________________________________________   Fim do tutorial, criado por Wolf!
  17. Upvote
    JulioCF reacted to Senos in Simple editing in Board.   
    Remove option Show 'Edit by' line in any board.
     
    But because Wolf?
    - For administrators and moderators have control of members' posts. In case of disputes, discussions, prevent members to edit their posts, not that it will happen, but if it happens.
     
     
    I think only creators of topics in the areas of tutorials should have this option, to edit/update/modify your tutorials.
  18. Upvote
    JulioCF reacted to Ind in Hercules Renewal   
    Starting today we'll be going throughout all of our source code to modify how functions are called. so what?
    Benefit
    With this new implementation chances to have custom source modifications conflict when you update hercules will be drastically reduced. How? Instead of modifying existing functions users will be able to create a new version of them elsewhere, e.g. in a custom file, and have it replace the original one. How? very simple.
    battle->check_target = my_new_check_target_function; PluginsThis change opens the possibility for a new plugin implementation in the future.
    Project Vision
    We understand this move will conflict with some points in our project vision, we'll be modifying it soon.
    More
    We want Hercules to stand out, with that in mind we've been planning features exclusive to Hercules, features other projects won't be able to merge. And how is that even possible? features that will integrate with our forum is one example of them. For example a feature capable of automatically looking for new updates in scripts/modifications downloaded from our upcoming downloads section.
  19. Upvote
    JulioCF reacted to Mystery in First Website Design   
    Haha, yeah it is my first .
     
    I've updated my pages.


  20. Upvote
    JulioCF reacted to Ind in Expanding: Int'l Communities   
    We at Hercules want to provide our users with as many international communities as we can, however in order to create a international community we first need someone to oversee it.
    Do you speak a language other than English that we don't have a community for?
    Be the first, join our team
    Do you speak a language other than English that we have a community for?
    Help us moderate it, join our team
     
    Notice however that our guidelines for wannabe moderators applies
  21. Upvote
    JulioCF reacted to Senos in Queries SQL (Aula 6)   
    Script Intermediário! - 6
    Lista de Aulas:
    Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/
    Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/   Bom galera, depois de aprendermos loops, arrays, menus dinâmicos e suas teorias, setd e getd, attachrid e detachrid, partiremos então para o Banco de Dados e aprenderemos então a maniuplar as Queries SQL, que é de suma importância para quem gosta de seus scripts mais seguros e com suas respectivas tabelas.   Assunto da aula: - Queries SQL
      Como de costume, começarei mostrando a sintaxe do comando, e em cima dela, trabalharemos: query_sql "sua query de MySQL", <variável> {,<variável>, ...};  
    Sua Query_SQL: Você colocará a query que você quer executar, você aprenderá neste tutorial como escrever sua query da maneira que quer. Variável: Nem sempre é preciso específicar a variável, depende do comando que você utilizará. Você quando for atualizar (update) ou deletar (delete) algo de seu Banco de Dados ou sua respectiva tabela, você não precisará utilizar, agora caso for pegar alguma informação (select), você precisará sim da variável, lembrando que ser for texto ou palavars, precisará da var. string ($) caso contrário for números, não precisará.  
    Bom, então começaremos a explicar os comandos, comando SELECT:
    SELECT <informacão> FROM <tabela>  
    informacão: Como podemos perceber no Banco de Dados, uma tabela é formada por vários campos, neste campo, você indica o nome do campo que você deseja ler. Você pode específicar vários campos para serem lidos, exemplo: SELECT <informacão>,<informação>,<informação> FROM <tabela>   Mas lembrando que teremos que específicar uma variável para cada campo no final da escrita da Querie, você pode substituir o nome dos campos por um (*), assim retornará todos os campos da tabela, sem precisar específicar um por um.
     
    tabela: Nome da tabela dentro do Banco de Dados que você gostaria de pegar a informação. 

    Agora vejamos um exemplo utilizando o comando SQL em uma sintaxe Querie: 
    query_sql ("SELECT `user_id` FROM `login`",@nome_do_usuario$);  
    No caso essa variável @nome_do_usuario$ se tornará uma array, pois não será apenas 1 valor, e sim vários valores pois serão retornados todos os nomes de usuários de jogadores do seu servidor. No caso ficará assim:
    @nome_do_usuario$[0]: Usuario 1@nome_do_usuario$[1]: Usuario 2// Ficará sempre assim, só mudando a index da array, [2], [3], [4], etc...
    Aproveitarei com o comando SELECT, para explicar o comando WHERE, iremos pegar o nome de usuário de um jogador com o ID 1 no Banco de Dados, faremos assim no caso:
    query_sql ("SELECT `user_id` FROM `login` WHERE `account_id`=1",@nome_do_usuario$);  
    Assim buscaremos uma conta específica e não todas as contas do jogo, simples, não?!

    Temos um conjunto de dois comandos chamados AND e OR, é utilizado junto com o WHERE, vejamos: query_sql ("SELECT `user_id` FROM `login` WHERE `level`=99 AND `sex`='M'",@nome_do_usuario$);
    Nesse caso só pegariamos o nome dos usuários dos jogadores que forem level 99 e (AND) do Sexo Masculino. Exemplo com o comando OR:
    query_sql ("SELECT `user_id` FROM `login` WHERE `level`=99 OR `sex`='F'",@nome_do_usuario$);  
    Agora só pegariamos o nome dos usuários dos jogadores que forem level 99 ou (OR) do Sexo Feminino. Os dois comandos são super simples! 
     
    Temos também o comando ASC (Ascendente) e DESC (Descendente), vejamos: query_sql ("SELECT `user_id` FROM `login` ASC"); // Retornaria a lista de nomes de usuários do servidor em ordem alfabética de A para o Z.query_sql ("SELECT `user_id` FROM `login` DESC"); // Retornaria a lista de nomes de usuários do servidor em ordem alfabética de Z para o A.  
    Comando INSERT INTO: Este comando é para que você possa criar uma nova linha de dados dentro de uma tabela, criando uma nova informação na sua tabela desejada, vejamos:
    INSERT INTO <tabela> (<campos>) VALUES (<valores>);  
    Vejamos um exemplo:
    query_sql ("INSERT INTO `login` (`account_id`, `user_id`, `user_pass`, `sex`, `email`) VALUES ('2000000', 'test', '12345', 'M','[email protected]')");  
    Nesta caso, estamos criando uma conta com o account_id 2000000, o nome de usuário test, a senha 12345, sexo masculino, e e-mail [email protected].

    Partiremos então pro comando UPDATE, sintaxe:
    UPDATE `<tabela>` SET `<campo1>`='<valor1>',`<campo2>`='<valor2>';  
    Não é um comando complicado, com o exemplo passará de complexo para super simples, vejamos: query_sql ("UPDATE `login` SET `level`=99 WHERE `user_id`='Wolf'");  
    Esta queria irá mudar o Nível de GM da conta Wolf para 99, preste atenção, pois caso você não específicasse com o comando WHERE, todas as contas do servidor poderiam ser mudadas para 99, causando um transtorno enorme.
     
    Comando DELETE: Simplesmente faz oque diz, deleta uma informação da tabela, sintaxe: DELETE FROM `<tabela>`   Se fizermos simplesmente DELETE FROM `login`, todas as informações da tabela login seriam deletadas, por isso iremos específicar, por exemplo: query_sql ("DELETE FROM `login` WHERE `userid`='Wolf'");  
    Neste caso a conta Wolf será deletada da tabela login do Banco de Dados. Porém não é recomendável deletar a conta desta maneira, pois as informações de chars, itens, e pets ainda ficariam ocupando espaços no Banco de Dados, no caso você teria que deletar tudo manualmente, porém serviu de exemplo.   Comando DROP: Deleta a tabela inteira, sintaxe: DROP TABLE `<tabela>`   Exemplo: query_sql ("DROP TABLE `login`");  
    Destrói a tabela login, ninguém mais consegue logar no servidor, e poderá arrecadar muitos problemas. Existe DROP DATABASE também, no caso você deletará uma Database, se você fizer DROP DATABASE `ragnarok`, acabará com o Banco de Dados ragnarok ò_ó.   _____________________________________________________________   Fim do tutorial, posteriormente irei editar esse tópico e adicionar uns exemplos utilizando Querie, mas talvez, pois adicionei diversos exemplos no tutorial. Abraços!!
  22. Upvote
    JulioCF reacted to Ind in Obtaining Hercules   
    Git Troubleshooting
    Please, commit your changes or stash them before you can merge.Aborting.Git doesn't update modified files even if they don't conflict unless they're properly "committed" in your local working copy, to do so is simple and advantageous (it will keep a log of your changes for yourself; so you can always go back and check what was changed and when)
    - On Unixgit commit -am "your log message, anything at all" - On Windows
    1. Right click your folder -> Git Commit -> "master"
    2. (optional) type the log message
    3. Hit 'OK'
  23. Upvote
    JulioCF reacted to Ind in Obtaining Hercules   
    Obtaining Hercules through Git on Windows
    Downloads
    Download and Install MSysGit Download the latest TortoiseGit

      Installation
    Alright, first go through MSysGit installer and just set it up (its used as a base for TortoiseGit). then once you install MSysGit, launch the installer you just downloaded for TortoiseGit, you'll be prompted by a window similar to the following


    The next window is "Choose SSH Client", select "TortoisePLink", hit Next.


    The next window is "Custom Setup", do not change anything unless you know what you're doing, hit Next.


    We're done with the installation, that was easy, wasn't it?


    Obtaining Hercules
    Go to the folder where you want Hercules to be placed, right click and select "Git Clone..."


    in the URL field, type the following:
    https://github.com/HerculesWS/Hercules.git ensure the 'Directory' field is as desired, and hit 'OK'


    Now Hercules is being downloaded


    Just wait for it to complete the download of your working copy and you'll be good to go.

    Updating Hercules
    Right-Click the folder where you downloaded your working copy and within the TortoiseGit menu, select "Pull..." as shown below


    On the following window just hit 'OK', and your working copy will update.


  24. Upvote
    JulioCF reacted to Ind in Obtaining Hercules   
    Obtaining Hercules
    Hercules is available through GitHub, a web-based hosting service for software development projects that use the Git revision control system.
    Obtaining Hercules through Git on Windows Obtaining Hercules through Git on Linux Git Troubleshooting

      Support
    Looking for assistance on getting Git to work? Post here

    Alternatively...
    GitHub also provides a SVN Mirror. We won't officially work to support many branches or repository-features in SVN, but it should remain in-sync with the latest stable release, based on master branch in git.
    Windows
    You need to download TortoiseGit The address is http://github.com/HerculesWS/Hercules  
    Linux
    Typing the following creates a working copy of hercules at your home directory svn checkout http://github.com/HerculesWS/Hercules ~/Hercules  
     
     
  25. Upvote
    JulioCF reacted to Senos in Script Intermediário (Aula 5)   
    Script Intermediário! - 5
    Lista de Aulas:
    Aula 1: http://herc.ws/board/topic/199-script-intermedi%C3%A1rio-aula-1/
    Aula 2: http://herc.ws/board/topic/200-script-intermedi%C3%A1rio-aula-2/ Aula 3: http://herc.ws/board/topic/201-script-intermedi%C3%A1rio-aula-3/ Aula 4: http://herc.ws/board/topic/203-script-intermedi%C3%A1rio-aula-4/ Aula 5: http://herc.ws/board/topic/213-script-intermedi%C3%A1rio-aula-5/ Aula 6: http://herc.ws/board/topic/228-queries-sql-aula-6/ Aula 7: http://herc.ws/board/topic/239-script-intermedi%C3%A1rio-aula-7/   Bom, nesta aula estarei ensinando sobre o comando attachrid e detachrid, são comandos mais complexos, porém entendíveis para aqueles que tem atenção na aula e uma boa noção já de script, que já manipulam suas lógicas para fazer da maneira que acha melhor e correto. Irei iniciar então o assunto da aula, e nela criar exemplos, explicações, e explicar a sintaxe do comando.

    Primeiro assunto da aula:
    - Attachrid

    Sintaxe do comando:attachrid(<ID Da Conta>);  
    A função básica desta sintaxe é anexar o RID do jogador ao NPC (script), ou seja, você pode forçar o jogador a executar as funções do npc.

    Vejamos um exemplo:
    - script Olá -1,{ OnOla: attachrid(2000001); mes "Olá"; mes "Você foi forçado a ver o olá do script! ^~"; close;}
    Agora caso aplicarmos desta forma, teremos um problema. O jogador pode estar offline, então poderá gerar aquele erro no map-server "Player not attached (Jogador não atachado, não encontrado)". Para resolvermos esse problema, teremos que fazer uma verificação, veja:
    - script Olá -1,{ OnOla: if (!attachrid(getcharid(3,"Nick_do_Jogador")) { // O jogador está offline, logo já evitaremos o erro // do player not attached. end; } //Caso o jogador esteja online: mes "Olá"; mes "Você foi forçado a ver o olá do script! ^~"; close;}  
    O comando attachrid retorna 0 se o jogador estiver offline e 1 para online. Pegamos no snippet feito, o account_id do jogador pelo nome/nick dele.

    Esse comando é de grande utilidade pois podemos criar sistemas com tempos, no qual podemos anexar o jogador ao tempo com seu limite. Podemos criar loops em função do attachrid para anúncios, verificar se o jogador está online não, tudo isso ligado a apenas um jogador (o jogador anexado). Pegar o nome de quem matou ou morreu, aplicar um comando neste unico jogador, etc...

    Alguns exemplos com attachrid:
     
    1. Primeiro exemplo:
    OnPCDieEvent: set .BaseLevel, BaseLevel; attachrid(killedrid); // Verifica todos os jogadores que matou o outro [Killerdrid = variável pronta para jogadores que matam]. set .exp, (100*.BaseLevel/BaseLevel); // No caso isso dará um bônus baseado no BaseLevel do cara multiplicado 100x. getexp .exp, .exp;end;  
    Dará experiência a um jogador que matou o outro.
     
    2. Segundo exemplo:
    mes "Gostaria de participar do evento?"; if (select("Sim:Não")==2) close; next; set $@rids_salvos[.i], getcharid(3); set .i, .i +1; warp "",0,0; end;  
    Isso salvará o rid do jogador no script, para que possa utilizar posteriormente, caso queira limpar o rid salvo, só fazer:
    OnPcLogouEvent: set $@rids_salvos[.i], 0;end;  
    Bom, aí no caso quando o jogador deslogar a variável $@rids_salvos será zerada, e não terá mais valor. Mas aí vai de acordo como você quiser, eu coloquei para quando o jogador deslogar, você bota opcionalmente como você quiser, foi apenas um exemplo.
     
     
    Segundo assunto:
    - Detachrid
     
    Detachrid faz o contrário do attachrid, esse dexanexa o jogador do script. Então comandos para jogadores que necessitam de attachs, não passam mais a funcionar. Como forçar o jogador a falar com o script, ou por exemplo você atachar ele ao script, e no final desanexá-lo, você terá que anexá-lo denovo para usar funções que anexam ele ao script, caso queira criar funções dos exemplos que eu fiz.
      Não tenho muito oque dizer sobre este comando, é básicamente isso, e sintaxe dele é simplesmente: detachrid;  
    Bom, é simplesmente isso, um abraço!
    Wolf.
×
×
  • Create New...

Important Information

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