Jump to content

Habilis

Members
  • Content Count

    225
  • Joined

  • Last visited

  • Days Won

    20

Reputation Activity

  1. Like
    Habilis got a reaction from IndieRO in [AutoEvent] Trivia   
    Hello, as promised here is a Trivia auto event.
    This script is originally way back from eA, it was adjusted on rA. (All credits in the header)
    And now, I decided to Enhance it.

    - An enhanced version of facts auto event. The Event is announced. The NPC asks 10 random 
    - questions from a question bank. Players have to write the answer to the main chat.
    - Players don't need to worry about CAPITAL letters.
    - 1) Question is asked by the NPC.

    - 2) If there is no answer after 15 seconds NPC will give a hint.

    - 3) IF there is still no answer after a hint, the question is skipped.

    - 4) If the right answer is given, the player is announced and the reward is given

     
    Side notes:
    1) Control
    If you have some kind of AutoEbent Controller, I've included the event control methods
    OnEventStart:
    OnStop:
    OnEventTimeOut:
     
    If you don't have a controller and just want to test this event, just setup the timers, when this event will run ex:
    OnMinute33:
     
    2) Rewards
    I have special Event points, that I'm giving to the winners.
    If you like to give Items or Zeny, I Included the examples in the code
    // Winner gets reward in Zeny //Zeny += 1000000; // Alotta bax ;)  
    3) Questions definition
    To define more questions you need to follow this pattern
    DefineQuestion("<question>", "<answer>", "<hint>");  
    4) Cheating
    I'm aware that this event can be cheated/Automated by players.
    Therefore only a modest reward is given 
     


  2. Upvote
    Habilis got a reaction from jholphoda in Campfire to regenerate HP/SP   
    Yesterday, after rambles on Discord with Dastgir and Asheraf,
    I've got another Brilliant Idea for a Release from Habilis!
     
    The Idea:
    Camp Fire to restore / regenerate HP & SP.
    When you sit by the Camp fire, you start feeling the warmth and the comfort, so your HP & SP begin to regenerate.

     
     
    There is a nice contribution from Meko on that subject 
    Menhir (Big rock that possesses magical powers and able to restore Health and Energy of Seekers)
    Thanks Meko!
    So, I thought to myself, well, that is wonderful, but why not make it portable?
     
    Because, conveniently, there is this NPC sprite :

    4_BONFIRE
    ID: 10252 (0x280C)
     
    Even more conveniently, there is this item:
     Matchstick    Item ID# 7035 (Matchstick)

    A phosphorus tipped stick that can be used to start a fire.
    http://ratemyserver.net/index.php?page=item_db&item_id=7035
     
    Dastgir, suggested using this plugin to make this possible:
    https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/npc-duplicate.c
     
     
    Mechanics : 
    When you use the item   Matchstick   in your inventory, it will spawn a duplicate of the NPC called Camp Fire.
    So that when you are in the field, farming, grinding you could rest.

    - You need to sit close to the Camp Fire  (3 cells ) to feel the warmth.
    - Anyone can sit by your Camp Fire and rest.
    - Camp Fire lasts 2-3 minutes.
    - Need to sit for at least 3 seconds to begin feeling the warmth and comfort.
    - you cannot start a fire within 5 cells of another Camp Fire.
    - If you use a match one more time, old Camp Fire disappears and a new one appears.
     
    I think it will add an element of roleplay and romanticism to the gameplay.
    (Habilis is a soft, sensitive and romantic type ).
     
    Expect the Release sometime soon...
     
     
     
     
     
     
  3. Like
    Habilis got a reaction from jholphoda in [NPC] Campfire to regenerate HP/SP   
    View File [NPC] Campfire to regenerate HP/SP
    Originally:
    There is a nice contribution from meko on that subject,
    Menhir (Big rock that possesses magical powers and able to restore Health and Energy of Seekers resting/meditating nearby)
    Thanks, meko!
    But, I thought to myself, well, that is wonderful, but why not make it portable?
    The Idea:
    An element of role play, a way to add functionality 
    to the item 7035 - Matchstick, To light a Campfire.
    A Campfire is a portable temporary regeneration NPC.
    OW, and it is configurable ;).

    Campfire to restore / regenerate HP & SP.
    When you sit by the Campfire, you start feeling the warmth and the comfort, thus your HP & SP begin to regenerate.
     
    Mechanics : 

    A phosphorus tipped stick that can be used to start a fire. (Now Indeed )
    When you use the item Matchstick in your inventory, it will spawn a duplicate of the NPC called Campfire.
    This will help you when you are in the field, farming, grinding, starting a Campfire will help you rest.

    - You need to sit close to the Campfire (3 cells ) to feel the warmth.
    - Anyone can sit by your Campfire and rest.
    - Campfire lasts 2-3 minutes.
    - Need to sit for at least some time to begin feeling the warmth and comfort.
    - you cannot start a fire within 5 cells of another NPC
    - If you use a match one more time, old Campfire disappears and a new one appears.
     
    I think it will add an element of roleplay and romanticism to the gameplay.
     
     
    Installation : 
    To be able to use this script you need a plugin npc-duplicate.c
    https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/npc-duplicate.c
    Install & enable this plugin This script uses a relatively new NPC sprite at the moment of writing this release.
    4_BONFIRE
    Therefore, you may have to edit the Hercules source to allow for this new NPC
    To the /db/constants.conf
    add this line: 4_BONFIRE: 10252 In the /src/map/npc.h
    change this line: #define MAX_NPC_CLASS2_END 10800 This will allow for way more NPCs
    Save and recompile Hercules. In the client, you may not have this NPC
    But luckily for you, I've included with this release a data.zip archive containing the NPC sprite
    and the sound of striking a matchstick.
    Just add it to your GRF or data folder if you use data folder. In the client, Lua Files make sure you have this NPC sprite

    LuaFiles514/Lua Files/Datainfo/NPCIdentity.lub JT_4_BONFIRE = 10252,
    LuaFiles514/Lua Files/Datainfo/jobName.lub
      [jobtbl.JT_4_BONFIRE] = "4_bonfire", In the /db/re/item_db.conf or /db/pre-re/item_db.conf
    find Id: 7035
    and add these 3 attributes Type: 2 Delay: 3000 Script: <" callfunc("F_CreateCFDup"); ">  
    Configuration: 
    It is a configurable script
    All of the parameters are explicitly commented for a better understanding of the rules
    .refillHP_rate = 15; // number of HP to give every refill .refillSP_rate = 5; // number of SP to give every refill .refill_distance = 3; // max distance from fire HP/SP regeneration will work .camp_fire_delay = 5; // Skip how many ticks before feel warm ;) .refill_timer = 300; // wait rand(X) ms before refil Feel free to adjust to your server needs
    .@nofire_distance = 5; // How far from other NPCs allowed to make fire. .@fire_duration = 1000 * 60 * 3;// 3 minutes (How long will the Campfire last, in ms)  
    Submitter Habilis Submitted 06/22/18 Category Utility  
  4. Like
    Habilis got a reaction from ajoope in [NPC] Campfire to regenerate HP/SP   
    View File [NPC] Campfire to regenerate HP/SP
    Originally:
    There is a nice contribution from meko on that subject,
    Menhir (Big rock that possesses magical powers and able to restore Health and Energy of Seekers resting/meditating nearby)
    Thanks, meko!
    But, I thought to myself, well, that is wonderful, but why not make it portable?
    The Idea:
    An element of role play, a way to add functionality 
    to the item 7035 - Matchstick, To light a Campfire.
    A Campfire is a portable temporary regeneration NPC.
    OW, and it is configurable ;).

    Campfire to restore / regenerate HP & SP.
    When you sit by the Campfire, you start feeling the warmth and the comfort, thus your HP & SP begin to regenerate.
     
    Mechanics : 

    A phosphorus tipped stick that can be used to start a fire. (Now Indeed )
    When you use the item Matchstick in your inventory, it will spawn a duplicate of the NPC called Campfire.
    This will help you when you are in the field, farming, grinding, starting a Campfire will help you rest.

    - You need to sit close to the Campfire (3 cells ) to feel the warmth.
    - Anyone can sit by your Campfire and rest.
    - Campfire lasts 2-3 minutes.
    - Need to sit for at least some time to begin feeling the warmth and comfort.
    - you cannot start a fire within 5 cells of another NPC
    - If you use a match one more time, old Campfire disappears and a new one appears.
     
    I think it will add an element of roleplay and romanticism to the gameplay.
     
     
    Installation : 
    To be able to use this script you need a plugin npc-duplicate.c
    https://github.com/dastgirp/HPM-Plugins/blob/master/src/plugins/npc-duplicate.c
    Install & enable this plugin This script uses a relatively new NPC sprite at the moment of writing this release.
    4_BONFIRE
    Therefore, you may have to edit the Hercules source to allow for this new NPC
    To the /db/constants.conf
    add this line: 4_BONFIRE: 10252 In the /src/map/npc.h
    change this line: #define MAX_NPC_CLASS2_END 10800 This will allow for way more NPCs
    Save and recompile Hercules. In the client, you may not have this NPC
    But luckily for you, I've included with this release a data.zip archive containing the NPC sprite
    and the sound of striking a matchstick.
    Just add it to your GRF or data folder if you use data folder. In the client, Lua Files make sure you have this NPC sprite

    LuaFiles514/Lua Files/Datainfo/NPCIdentity.lub JT_4_BONFIRE = 10252,
    LuaFiles514/Lua Files/Datainfo/jobName.lub
      [jobtbl.JT_4_BONFIRE] = "4_bonfire", In the /db/re/item_db.conf or /db/pre-re/item_db.conf
    find Id: 7035
    and add these 3 attributes Type: 2 Delay: 3000 Script: <" callfunc("F_CreateCFDup"); ">  
    Configuration: 
    It is a configurable script
    All of the parameters are explicitly commented for a better understanding of the rules
    .refillHP_rate = 15; // number of HP to give every refill .refillSP_rate = 5; // number of SP to give every refill .refill_distance = 3; // max distance from fire HP/SP regeneration will work .camp_fire_delay = 5; // Skip how many ticks before feel warm ;) .refill_timer = 300; // wait rand(X) ms before refil Feel free to adjust to your server needs
    .@nofire_distance = 5; // How far from other NPCs allowed to make fire. .@fire_duration = 1000 * 60 * 3;// 3 minutes (How long will the Campfire last, in ms)  
    Submitter Habilis Submitted 06/22/18 Category Utility  
  5. Upvote
    Habilis got a reaction from banhelba2019 in How to keep emulator updated   
    I don't offer any paid services (That's how you know it's me. If I suddenly request money, it's an imposter report him!)
    My parents give me enough money for lunch at my school and for chewing gum. I don't need your money
     
     
     
    2
    3
     
  6. Upvote
    Habilis got a reaction from banhelba2019 in What else could Habilis do with his Raspberry Pi ?   
    yes!
     

  7. Upvote
    Habilis got a reaction from Quazi in [Event] Wheel of fortune   
    I've recently got a brilliant idea.
    Why not make my own version of a paid script, sold on rAthena
    and release it to Hercules for free!?

    (Not because I'm banned on rAthena )
     
    I need a peer review before releasing the whole package.
     
    @Myriad Did a nice Peer review of my terribel kode...
    If anyone else would like to contribute, feel free.
    Otherwise, it is soon to be released
     
     
    UPD : I reDrew the cutins, they don't look like stolen from rAthena

     

     
     
     
    1) configuration
    there are 2 arrays
        setarray .prize_id[1],-1,31024,31026,31008,31020,31017,31010,31016,0,31009;
        setarray .prize_qty[1],2,1,1,1,3,3,1,3,0,3;
     
    in prize_id
    if id is > 0, the prize is an item
    if id = 0 , the prize is NOTHING!
    if id = -1, the prizer is free spin (number of free spins set in qty array)
    in array  .prize_qty you setup the quantity won
     
     
    //===== Hercules Script ====================================== //= Wheel of Fortune //===== By =================================================== //= Habilis //= Edited by Myriad //===== Description ========================================== //= Wheel of fortune something. //============================================================ - script Wheel_of_Fortune FAKE_NPC ,{ OnInit: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); .EventName$ = "[Wheel Of Fortune]"; end; OnMinute39: OnStart: query_sql("DELETE FROM `acc_reg_num_db` WHERE `key`='#freewheelfortunespin';"); announce(sprintf("%s : The event will begin in 1 minute, near the center of Prontera.", .EventName$), bc_blue | bc_all); initnpctimer(); end; OnTimer60000: // 1 min enablenpc("Wheel of Fortune#Main"); enablenpc("Hussein#WOF"); announce(sprintf("%s : Come to Prontera and test your luck, everyone got some free spins!", .EventName$), bc_blue | bc_all); end; OnTimer1800000: // 30 mins announce(sprintf("%s : One more minute, do your last spin!", .EventName$), bc_blue | bc_all); end; OnTimer1860000: // 31 mins OnStop: disablenpc("Wheel of Fortune#Main"); disablenpc("Hussein#WOF"); end; } prontera,159,178,3 script Hussein#WOF 1_M_MERCHANT,{ doevent("Wheel of Fortune#Main::OnTalk"); end; } prontera,155,176,3 script Wheel of Fortune#Main 2_SLOT_MACHINE,{ OnTalk: if (#freewheelfortunespin == 0) #freewheelfortunespin = .Free_Spins; if (getd(.Event_Points_Variable$) < .Points_Cost && #freewheelfortunespin < 0) { mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("You are out of points"); mes("and have no more free"); mes("spins! Come back next"); mes("time for more."); close(); } .@mes$ = (#freewheelfortunespin > 0) ? sprintf(", but you, my friend, have %d free spin%s!", #freewheelfortunespin, (#freewheelfortunespin == 1) ? "" : "s") : "."; cutin("aca_salim02", 2); addtimer(1, sprintf("%s::OnEnd", strnpcinfo(NPC_NAME))); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Do you want to spin the wheel?"); mesf("It costs ^FF0000%d Event points^000000 to play%s", .Points_Cost, .@mes$); next(); callsub(S_Loop); S_Loop: .@val = getd(.Event_Points_Variable$); if (.@val < .Points_Cost && #freewheelfortunespin < 0) callsub(S_End); switch (select( (#freewheelfortunespin > 0) ? sprintf("Yes! Use free spin! (%d left)", #freewheelfortunespin) : "", (.@val > 0) ? sprintf("Yes! Use Event Points. (%d remaining)", .@val) : "", "No (Leave)" )) { case 1: callsub(S_Pay, 0); case 2: callsub(S_Pay, 1); default: callsub(S_End); } S_Pay: switch (getarg(0)) { // pay with free spin case 0: if (#freewheelfortunespin > 0) { if ((#freewheelfortunespin -= 1) < 1) #freewheelfortunespin = -1; callsub(S_Gamble); } else callsub(S_End); // Pay with points case 1: default: if ((.@val = getd(.Event_Points_Variable$)) >= .Points_Cost) { setd(.Event_Points_Variable$, (.@val -= .Points_Cost)); dispbottom(sprintf("%s : You now have %d event points.", .ServerName$, .@val)); callsub(S_Gamble); } else { cutin("aca_salim02", 2); mesf("[^0055FF ::: %s ::: ^000000]", .EventName$); mes("Awww, you don't have enough to gamble..."); mes(" "); mes("Have you ever heard?"); mes("'Money isn't all that matters' Got it?"); mes("Byeeeeeeeeeeeeee ;)"); callsub(S_End); } } S_Gamble: // Actual Gambling .@sector = rand(.Sector[0], .Sector[1]); .@displayCutin = (.@sector * 2) - 1; .@Speed = .Spin_Speed; for (.@i = 0; .@i < .nbTurns; .@i++) { .@b = .Cutin[0]; while (.@b <= .Cutin[1]) { cutin(sprintf("%s%d", .cutin$, .@b), 4); sleep2(.@Speed); .@b++; .@Speed++; } } .@b = .Cutin[0]; while (.@b < .@displayCutin) { cutin(sprintf("%s%d", .cutin$, .@b), 4); sleep2(.@Speed); .@b++; } cutin(sprintf("%s%d", .cutin$, .@b), 4); if (.prize_id[.@sector] == -1) { // Free spin if (.Sound_Effects) soundeffect("wheel_jackpot.wav", 0); announce(sprintf("[%s] : Wow, %d more Free spins!!!", .EventName$, .prize_qty[.@sector]), bc_blue | bc_self); #freewheelfortunespin = #freewheelfortunespin == -1 ? .prize_qty[.@sector] : #freewheelfortunespin + .prize_qty[.@sector]; } else if (.prize_id[.@sector] == 0) { // nothing if (.Sound_Effects) soundeffect("wheel_lost.wav", 0); announce(sprintf("[%s] : Awwww, No luck in gamble, more luck in love...", .EventName$), bc_blue | bc_self); } else { // item if (.Sound_Effects) soundeffect("wheel_won.wav", 0); announce(sprintf("[%s] : Enjoy your prize!!!", .EventName$), bc_blue | bc_self); getitem(.prize_id[.@sector], .prize_qty[.@sector]); } sleep2(1000); callsub(S_Loop); end; S_End: close2(); OnEnd: cutin("", 255); end; OnInit: .ServerName$ = "[Your boring server]"; .EventName$ = "Wheel Of Fortune"; .cutin$ = "WheelOfFortune_"; .Event_Points_Variable$ = "#LROEVENTPOINTS"; // The name of your event points variable setarray(.Sector, 1, 10); // Sector range setarray(.Cutin, 0, 19); // Cutin range .Spin_Speed = 50; // What is the base spin speed? (ms) .nbTurns = 2; .Points_Cost = 100; // How many 'points' does it cost for a spin? .Free_Spins = 1; // How many free spins does a player get? .Sound_Effects = true; // Enable sound effects? (true/false) setarray(.prize_id[1], -1, 31024, 31026, 31008, 31020, 31017, 31010, 31016, 0, 31009); setarray(.prize_qty[1], 2, 1, 1, 1, 3, 3, 1, 3, 0, 3); end; }  
  8. Upvote
    Habilis reacted to Daifuku in Chocolate Chapeau - Valentines Headgear   
    View File Chocolate Chapeau - Valentines Headgear
    __________***PLEASE READ***__________
    I'm working together with some people to bring sprites from different games into Ragnarok for free or very low cost depending on the amount of work.
    These sprites are not thoroughly tested and do not come with a custom drew collection image. If there are any issues, kindly report them.
    Use parts of it or fully, use them as a base or else - but please follow these rules:
    _______________________________________________

    Rules:
    Do not sell these sprites to anyone. Do not ask me to fix, adjust or change something unless you're willing to pay for it. If you upload them somewhere for others to download, please credit me and/or link back to herc.ws's download section. Contains:
    Chocolate Chapeau - Valentines Headgear Credits: 
    Special thanks to Shourei and Normynator.
    Without you guys, this free-sprite project would not be possible.
    @Daifuku @Shourei @Normynator Submitter Daifuku Submitted 02/12/19 Category Sprites & Palettes  
  9. Upvote
    Habilis reacted to AnnieRuru in How to setup OFFLINE server for personal development use   
    Make your (offline) RO server in more than 5 hours - pun intended
    Hercules Link
    This Guide is intended for
    - Windows users
    windows sux, but 90% of the community still using windows, so I am targeting the majority of the members here
    - You want to contribute something back to the community
    if you just want to have fun by yourself, of course it's fine to use that 5 minute instant noodle guide
    BUT if you want to contribute to the community, you have to use LATEST server and software available
    ... which makes this guide outdated very fast
     
    Prelude: Determine your Windows Operating System type
    a. Windows Key -> Right Click on My Computer -> Select Properties
    https://github.com/AnnieRuru/customs/blob/master/server setup/prelude-1.png

    b. Determine your Operating System type
    I'm using Windows 7 Ultimate 64-bit system
    https://github.com/AnnieRuru/customs/blob/master/server setup/prelude-2.png
     
    Step 1: Download and Install TortoiseGit

    1a. Download TortoiseGit
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1a.png
     
    1b. Installation
    next... next... next.. next... next.. next.. Install !!!
     
    1c. Create 2 new folders
    1 for Hercules, 1 for rAthena
    Right-click -> TortoiseGit -> Clone
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1c.png
     
    1d. Download git 2.20.1
    you'll get this warning message
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1d.png
    Open Git for Windows Website, Download it
    next... next... next.. next... next.. next.. Install !!!
     
    1e. Reposition git.exe
    This time go to TortoiseGit -> Settings
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1e.png
    General tab -> Git.exe path
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1e2.png
    C:\Program Files\Git\bin  
    1f. Download Hercules and rAthena
    Right Click on the folder, TortoiseGit -> Clone
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 1f.png
    https://github.com/HerculesWS/Hercules https://github.com/rathena/rathena  
    Problems might encounter during Step 1c,
    when it ask for a git.exe, you have to go to that git for windows site, and download that thing
    Problems might encounter during Step 1e,
    sometimes even though you have already install git2.20.1.exe, but it still couldn't find the git.exe file
    to solve it, Right-click -> TortoiseGit -> Settings, you get a warning, Click Ignore, then follow Step 1e
     
    Step 2: Download and Install Microsoft Visual Studio 2017
    Step 2a. Download Microsoft Visual Studio
    https://visualstudio.microsoft.com/downloads/
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2a.png
     
    Step 2b. Downloading ...
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2b.png
     
    Step 2c. Click Install Visual Studio Community 2017
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2c.png
     
    Step 2d. Load Hercules Project
    Double click Hercules-15.sln
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2d.png
    it says missing Windows 10 SDK 10.0.15063 ...
     
    Step 2e. Install individual component
    you can either let Visual Studio do its magic, or ...
    manually go to visual studio downloader ... click modify
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2e.png
    then select the component to install manually
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2e2.png
     
    Step 2f. Load rAthena Project
    Do the same thing by double clicking rAthena.sln,
    but this time rAthena project needs Windows 8.1 SDK and Windows Universal CRT SDK
     
    Both emulator has been compiled
     
    Problems might encounter during Step 2c
    if using Windows 7/8, after the download is complete, it install a windows update that might crash all the programs in your operating system
    this Parasite MUST be remove !!
    To do this, go to Control Panel -> Program and Features
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2g.png
    Click View Install Update tab
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2g1.png
    then find KB2882822 and remove this parasite from your computer immediately before restarting your computer
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2g2.png
    IF you are the unlucky soul and you can't start any .exe file .... there's still a fix
    Restart the computer in Safe Mode ...
    many answer around the Internet tells you to press F8 when Windows Logo shows up, but this doesn't work for me, I have USB keyboard
    so I found another method ... run System Configuration
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2h.png
    Select the [Boot] tab, then select Safe Mode.
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2h2.png
    this will make your windows always restart in safe mode until you turn it off
    then follow the above process, uninstall that windows update, deselect safe mode, restart computer again, now it should be back to normal
     
    Problems might encounter during Step 2f
    During compiling, if you see this in your Visual Studio
    fatal error C1083: Cannot open include file: 'corecrt.h': No such file or directory this means you are missing a component Windows Universal CRT SDK
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 2f.png
     
    Step 3: Download and Install MySQL 8.0
    Step 3a: Download MySQL 8.0
    https://dev.mysql.com/downloads/mysql/
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3a.png
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3a2.png
    actually, you can just click this -> https://dev.mysql.com/downloads/file/?id=480824
    I have 64-bit operating system, but this 32-bit installer works fine for me
     
    Step 3b. Install MySQL 8.0
    Select Custom
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b1.png
    We only need 2 products, MySQL 8.0 and MySQL Workbench
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b2.png
    Ready to Install
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b3.png
    next... next.. Execute !! next.. next.. next..
    Account and Roles, type "1234" as password
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3b4.png
    click [Check]... next... next.. next... DONE !!
     
    Step 3c. Run MySQL Workbench
    Welcome to MySQL Workbench
    Double click the icon -> Click Connect
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3c.png
     
    Step 3d. Create a Schema
    Right click at the left side of the window
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3d.png
    and create a Database call Hercules. Remember change charset/collation to utf8
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3d2.png
     
    Step 3e. Install SQL Script for Hercules
    Set Hercules as default Schema
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3e.png
    load hercules/sql-files/main.sql file
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3e2.png
    copy into Query field, then Press Execute button
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 3e3.png
    repeat the same process again for log.sql file
     
    Step 3f. Install SQL Script for rAthena
    Set rAthena as default Schema
    install rAthena/sql-files/main.sql and the log.sql
     
    Problems might encounter during Step 3e.
    If you got a warning message that `ipbanlist` table creation failed, this has been reported -> hercules & rAthena
    that's why now we can only use utf8 charset
     
    Step 4: Connect MySQL to Hercules and rAthena
    Step 4a. Connect Hercules to MySQL
    Copy paste the import-tmpl folder, and rename it into import
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4a.png
    then open each individual files and modify each one of them
    conf/import/char_server.conf
    char_configuration: { // Server name, use alternative character such as ASCII 160 for spaces. // NOTE: Do not use spaces or any of these characters which are not allowed in // Windows filenames \/:*?"<>| // ... or else guild emblems won't work client-side! server_name: "Hercules" // Information related to inter-server behavior inter: { // Server Communication username and password. userid: "qwer" passwd: "asdf" // Login Server IP // The character server connects to the login server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. login_ip: "127.0.0.1" // Character Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. char_ip: "127.0.0.1" } pincode: { enabled: false } } conf/import/map-server.conf
    map_configuration: { // Information related to inter-server behavior inter: { // Interserver communication passwords, set in the login server database userid: "qwer" passwd: "asdf" // Map Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. map_ip: "127.0.0.1" // Character Server IP // The map server connects to the character server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. char_ip: "127.0.0.1" } } conf/global/sql_connections.conf
    sql_connection: { // [INTER] You can specify the codepage to use in your mySQL tables here. // (Note that this feature requires MySQL 4.1+) //default_codepage: "" // [LOGIN] Is `userid` in account_db case sensitive? //case_sensitive: false // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1. // Under windows, you want to use 127.0.0.1. If you see a message like // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)" // and you have localhost, switch it to 127.0.0.1 db_hostname: "127.0.0.1" db_port: 3306 db_username: "root" db_password: "1234" db_database: "hercules" //codepage:"" }  
    Step 4b. Change s1/p1 inter server connection password
    since hercules server hates you for using s1/p1, I change it into qwer/asdf then
    Here's how to do it ... Open MySQL Workbench, double click your current running MySQL connection
    Type "SELECT * FROM `login`;" , edit the field s1/p1, then click [Apply]
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4b2.png
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4b3.png
     
    Step 4c. connect rAthena to MySQL
    Copy paste the import-tmpl folder, and rename it into import
    then open each individual files and modify each one of them
    conf/import/char-conf.txt
    // Server name, use alternative character such as ASCII 160 for spaces. // NOTE: Do not use spaces or any of these characters which are not allowed in // Windows filenames \/:*?"<>| // ... or else guild emblems won't work client-side! server_name: rAthena // Login Server IP // The character server connects to the login server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. login_ip: 127.0.0.1 // The character server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. bind_ip: 127.0.0.1 // Character Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. char_ip: 127.0.0.1 // NOTE: Requires client 2011-03-09aragexeRE or newer. // A window is opened before you can select your character and you will have to enter a pincode by using only your mouse. // Default: yes pincode_enabled: no conf/import/inter-conf.txt
    // MySQL Login server login_server_ip: 127.0.0.1 login_server_port: 3306 login_server_id: root login_server_pw: 1234 login_server_db: rathena login_codepage: login_case_sensitive: no ipban_db_ip: 127.0.0.1 ipban_db_port: 3306 ipban_db_id: root ipban_db_pw: 1234 ipban_db_db: rathena ipban_codepage: // MySQL Character server char_server_ip: 127.0.0.1 char_server_port: 3306 char_server_id: root char_server_pw: 1234 char_server_db: rathena // MySQL Map Server map_server_ip: 127.0.0.1 map_server_port: 3306 map_server_id: root map_server_pw: 1234 map_server_db: rathena // MySQL Log Database log_db_ip: 127.0.0.1 log_db_port: 3306 log_db_id: root log_db_pw: 1234 log_db_db: rathena log_codepage: log_login_db: loginlog conf/import/login_conf.txt
    // The login server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. bind_ip: 127.0.0.1 conf/import/map_conf.txt
    // Character Server IP // The map server connects to the character server using this IP address. // NOTE: This is useful when you are running behind a firewall or are on // a machine with multiple interfaces. char_ip: 127.0.0.1 // The map server listens on the interface with this IP address. // NOTE: This allows you to run multiple servers on multiple interfaces // while using the same ports for each server. bind_ip: 127.0.0.1 // Map Server IP // The IP address which clients will use to connect. // Set this to what your server's public IP address is. map_ip: 127.0.0.1  
    Note: you can do the same for rAthena, change s1/p1 into qwer/asdf. rAthena doesn't *BEEP* when you use s1/p1 though
    simply add this line in both conf/import/char-conf.txt and conf/import/map_conf.txt then change it in MySQL Workbench
    // Server Communication username and password. userid: s1 passwd: p1  
    Read Also: What is Import folder, just scroll down to the bottom and read it
     
     
    Before going into next step, I want to stress enough and make sure you can get your server to connect to MySQL
    so try running run-server.bat to connect your hercules --OR-- rathena server to MySQL
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4.5.png
    if you can't do it right, Open a New Topic in General Server Support
     
     
    problem might encounter during this step
    [SQL]: Client does not support authentication protocol requested by server; consider upgrading MySQL client This happens if you have previous version of MySQL installed on your computer, and upgrade into MySQL 8.0
    to fix this issue, run MySQL command line Client from start menu
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4.5a.png
    then run these 2 commands seperately
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234'; FLUSH PRIVILEGES; https://github.com/AnnieRuru/customs/blob/master/server setup/Step 4.5b.png
     
    5. Download latest KRO Client and client translation files
    Step 5a. Download latest KRO from
    http://herc.ws/board/topic/15592-collection-official-full-clients-latest-kro/
    https://rathena.org/board/topic/106413-kro-full-client-2018-08-13-includes-bgm-rsu/ <-- I pick this
     
    // ========== THIS PART IS CONTROVERSIAL ===== BUT IT WORKS FOR ME ========
    Step 5b. Create another 2 folders
    let's name it Asheraf and zackdreaver ... the author of making client translation
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5b.png
    then download their translation files by git clone them
    https://github.com/Asheraf/Translation https://github.com/zackdreaver/ROenglishRE  
    Step 5c. Download GRF Editor
    http://www.mediafire.com/file/aflylbhblrzpz0h/GRF+Editor+v1.8.2.7.zip <-- author forgot to update in that topic, mediafire link is latest one
     
    Step 5d. Compile GRF Editor
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5d.png
    double click GRFEditor.sln
     
    Step 5e. Open GRF Editor file
    Navigate to the directory  \GRF Editor Sources v1.8.2.7\GRF Editor\GRFEditor\bin\Release and open GRF Editor.exe
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5e.png
    I also wondering why the author makes the execution files hide so deep inside
     
    Step 5f. Drag the data folder from Asheraf client translation to new.grf
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5f.png
    then save it as Asheraf.grf
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5f2.png
     
    Step 5g. Repeat the process for zackdreaver translation
    Close Grf. New -> Grf, Drag the data folder from zackdreaver/Ragnarok/data to new.grf, then save it as zackdreaver.grf
     
    Now you have learn how to pack your own grf. You should have 2 new grf in client folder
     
    Step 5h. open data.ini in your ragnarok client and edit DATA.INI
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5h.png
    [Data] 1=Asheraf.grf 2=zackdreaver.grf 3=rdata.grf 4=data.grf  
    Step 5i. Replace Asheraf/system folder into client/system folder
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 5i.png
     
    // ========== CONTROVERSIAL PART ENDS HERE ===== I'm sure many client experts having your doubts why I do like this ========
     
    A lot of problems can appear in this step, these problems also recent and changes with every client
     
    6. Create your own patch client
    Step 6a. Download latest nemo
    create another folder name nemo
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6a.png
    then git clone from this site
    https://gitlab.com/4144/Nemo  
    Step 6b. Find a suitable client patches
    http://nemo.herc.ws/downloads/
    Since I download KRO 20180813, I chose 2018-06-20eRagexeRe
     
    Step 6c. Open nemo.exe
    Click Browse to select your downloaded client patch, then select Load Client
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6c.png
     
    Step 6d. Use Recommend Settings
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d.png
    1. forget the "Always call SelectKoreaClientInfo" error
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d1.png
    2. DATA.INI
    3. system/itemInfo_Sak.lub <--- note: the Capital letter of Info_Sak ... nemo doesn't auto-detect capital letters
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d3.png
    4. Always Load Korea ExternalSetting lua files
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d4.png
    5. Read Data Folder first
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6d5.png
    6. Apply Selected
    Step 6e. Copy 2018-06-20eRagexeRE_patched.exe to the KRO client folder
     
     
    By this step, you should be able to load your own hexed client without throwing any error
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 6.5.png
    if you having problem in this Step 5 & 6, Open a New Topic in Client Support
     
    FINAL STEP - change PACKEVER
    #define PACKETVER 20180620  
    Hercules -> src\common\mmo.h
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 7a.png
     
    rAthena ->
    src\config\packets.hpp <--- original directory, don't edit here
    src\custom\defines_pre.hpp
    https://github.com/AnnieRuru/customs/blob/master/server setup/Step 7b.png
     
    Then Compile for a Final time
     
     
    After thought, there are still some minor annoyance and adjustment
    client/data/msgstringtable.txt (unpack it or just put at client/data/ folder)
    line 3262 Smooth# line 3458 There was an error when loading the data account settings. (Please restart to retry.)# change them into just a #
     
    Frequently Asked Question:
    Change Renewal into Pre-Renewal
    Hercules -> src/config/renewal.h
    rAthena -> src/config/renewal.hpp
     
    This guide will be feature and pin only for a few months ... while it last .... I guess
  10. Upvote
    Habilis got a reaction from meko in Hacktoberfest 2018   
    HukktoberFest This year was a BLAST, I've learned alotta things about GIT & GitHub!
  11. Upvote
    Habilis reacted to meko in Hacktoberfest 2018   
    Thank you!
    Hercules would like to thank everyone who contributed for hukktoberfest 2018
    linton-dawson (newcomer) (first-time contributor) akshat157 (newcomer) (first-time contributor) @Emistry (staff) @KirieZ @Dastgir (staff) IpshitaC (newcomer) (first-time contributor) @Asheraf (staff) @Kubix (first-time contributor) @Habilis (first-time contributor) 🦄 shouxian92 (first-time contributor) jvastbinder (first-time contributor) @4144 (staff) @Myriad j-chad (newcomer) (first-time contributor) MohanSha (newcomer) (first-time contributor) BinaryCrochet (newcomer) (first-time contributor) @kisuka (staff) 🐺 VictoriaLa (newcomer) (first-time contributor) List of pull requests: https://git.io/fxpL5
     
    We hope to see you again next year! ✨🎉
  12. Upvote
    Habilis reacted to meko in Hacktoberfest 2018   
    Since Hercules now uses LGTM, If you fix code quality issues during the month of October, Semmle (the company behind LGTM) will donate $3 to the World Wildlife Fund (WWF) to protect endangered species for every point you obtain. You can also win nice prizes, such as a free ticket to GitHub Universe 2018 (including travel and accommodation), a Holy Stone HS160 Shadow FPV camera drone, or a Raspberry PI 3 B+ Starter Kit development board.
     
    Points will only be awarded for fixes that reach the main branch of a project’s repository (i.e. for Pull Requests that are merged), and will be awarded as follows:
    1 point per recommendation, 3 points per warning, and 5 points per error fixed. Since Hercules has automatic code review enabled, then points awarded for fixes will be 3x the normal amount. This means 3 points, 9 points, and 15 points. So for example, if a participant fixes 3 errors, they will be awarded 45 points ((3 * 5) * 3), and Semmle will donate $135 to WWF.
     
    >>>> Register on https://competitions.lgtm.com/ghu-2018
  13. Upvote
    Habilis reacted to bWolfie in Hacktoberfest 2018   
    @Habilis i will be the first to get the t-shirt.
  14. Upvote
    Habilis reacted to meko in Hacktoberfest 2018   
    Contribute to open source and get a free limited-edition T-shirt
     
    What's Hacktoberfest?
    Hacktoberfest — brought to you by DigitalOcean in partnership with GitHub and Twilio — is a month-long celebration of open source software. Maintainers are invited to guide would-be contributors towards issues that will help move the project forward, and contributors get the opportunity to give back to both projects they like, and ones they've just discovered. No contribution is too small—bug fixes and documentation updates are valid ways of participating.
     
    From October 1 to October 31, contribute to any open source project (Hercules included) on GitHub to get a free T-shirt!
    5 pull requests are required. (Pull requests do not have to be merged and accepted; as long as they've been opened between the very start of October 1 and the very end of October 31, they count towards a free T-shirt.)
    We will be marking easy-to-tackle issues with the Hacktoberfest tag so that first time contributors can more easily find them.
     
    >> Register on hacktoberfest.digitalocean.com

    Resources
    GitHub Learning Lab How to create a Pull Request on GitHub Understanding the GitHub Flow Open source 101 Hercules documentation Hercules wiki  
     
    FAQ
    It is free to participate? Yes!  
    Is shipping included? Yes. DigitalOcean offers free worldwide shipping.  
    What shirt sizes are available for Hacktoberfest 2018? DigitalOcean have not yet made public the size chart for 2018, but we know they at least offer S to 4XL sizes, for both male and female.  
    What's included in the package? A thank you letter. A T-Shirt. A bunch of cool stickers.  
    Do I need to register for Hacktoberfest before starting to open Pull Requests? No. You may register at any time during the month of October and DigitalOcean will count your pull requests retroactively from October 1 onwards.  
    Do all of my Pull Requests have to be sent to the same repository? No. You may send PRs to any number of repositories you like, and as long as they are public and have an OSI-approved license they will count towards the 5+ PRs objective.  
    Do I have to wait for the start of October to open Pull Requests? You may contribute all year long, but only PRs that are opened during the month of October will be counted.
  15. Upvote
    Habilis got a reaction from bWolfie in BlackoutRO - Super High Rate   
    Server very n00b, admin very n00d 
    Good luck! And alotta success bruhh 

  16. Upvote
    Habilis reacted to bWolfie in BlackoutRO - Super High Rate   
    About BlackoutRO

    Oh, hey, what's up? long time no chat u gm.
    BlackoutRO is a very old server. It first opened in 2006. After 10 years of service, in 2015, it closed due to the neglect of development. In 2016, the server was rebuilt from scratch and went through a long testing phase. August 2018 saw the full relaunch of the server. Read more about the history of BlackoutRO: [Click here]
    Why should you invest time in BlackoutRO?
    Here at Blackout, we are all about fast-paced BG, PvP and WoE. Do the words "skill spam" send tingles down your spine? They should. Free-flowing battles is what we all crave. How about "competitive War of Emperium"? We boast the most consistently competitive private server WoE scene. Since 2010, players have attended Wars with open arms, ready to be torn to shreds and to repeat it week after week.
    As of August 2018, "Pay to Win" elements have been removed from the server. To become a serious player, you'll need to actually play the game. Good? Bad? You decide! We, the Staff Team, are all about making ethical decisions in the best interest of the server. The server always comes before one's own interests. These values, along with our strong connection to our community, will be what drive us forward, and is why you should feel comforted in investing time into BlackoutRO.
    Join our community. It'll be the time of your RO life.
    www.blackout-ro.net

    Server Information

    Server Opened: August 16, 2018. The current database has been live since September 2016 - all items and zeny from before then were lost due to the server being rebuilt from scratch. Accounts, characters and guilds were retained.
    Server Location: California, USA
    Mode: Pre-Renewal
    Maximum Base / Job Levels: 500 / 120
    Base / Job Experience Rates: 10001x / 10001x
    Drop rates: 100% (most common items and MvP drops), 30% (most equipment), 10% (cards)
    Maximum Stat Value: 450
    Maximum Attack Speed: 197
    Instant Cast: 170 DEX
    Status Immunity: 300 LUK




  17. Upvote
    Habilis got a reaction from Arduino in How to create server status script for website php (non flux cp)   
    Habilis is all about CyberSecurity
    SO, here is an answer of a Hukker
    Create a SQLView in teh Database 
    https://www.w3schools.com/sql/sql_view.asp
    example 
    CREATE VIEW vw_ServerStats AS SELECT   ... FROM users WHERE ... LEFT JOIN ...   ON ... 2 - Create a SQL user  herc_Viewer
    With the grant to select ONLY on vw_ServerStats
    That way if an Evil Hukker such as Habilis uploads a WebShell to your shitkoded super sophisticated website
    and sees your connections string for user herc_Viewer and his password. 
    Habilis will not be able (CREATE, EDIT, DELETE) users
    Habilis will not be able to CREATE mvp cards and sell them for real money (Habilis's favorite)
    Habilis will not be able to SELECT user info such as Emails and passwords
    Only thing Habilis will be able to do is to SELECT info already publically available on your website.
     
    Beware of Hukkers, and don't forget to download your internet anonymity!
     
     
  18. Upvote
    Habilis reacted to bWolfie in [Showcase] Four Battle Books   
    very nice not noob like @Habilis
  19. Upvote
    Habilis reacted to meko in Duplicate NPCs use the same variable   
    Duplicate npcs do share variables but this is legacy code that we can't change without breaking backward-compatibility. What we could do however is add a config flag so you can manually choose the desired behaviour.
    The problem is that in npc_duplicate_script_sub the function does npc->script = source->script, so it creates a pointer to the parent script_code struct instead of creating its own and variables are stored in this struct. The Evol plugin fixes this by creating its own struct but since I see other people want this change I will move it to Hercules directly instead.
  20. Upvote
    Habilis got a reaction from luizragna in Duplicate NPCs use the same variable   
    I had this issue with campfires and stuff
    When you dupe you gottta create a unique NPC name
    ex from my CampFire NPC
    sprintf("Campfire#CF_%d", getcharid(CHAR_ID_CHAR)) then you can do 
    setd and getd of 
    setd(sprintf(".@MegaVariable_%d", [unique identifier]))  
  21. Upvote
    Habilis got a reaction from evolutionbr in [Event] Wheel of fortune   
    No, sry, this may not be compatible with rAthena.
    As this script was developed and released for Hercules community.
  22. Upvote
    Habilis got a reaction from Begin in [Event] Wheel of fortune   
    It is an item so these functions be of help to you
    if(countitem(.RequiredItem_id) >= .RequiredItem_qty) and
    delitem(.RequiredItem_id, .RequiredItem_qty);  
  23. Upvote
    Habilis got a reaction from grimmm in adding custom maps   
    Linux   i. Make sure mapcache in plugins in src/plugins/makefile.in ii. Make sure that in conf/plugins.conf  "HPMHooking", - is not commented (remove // before) iii. Make plugins   0. Define datafolder  in conf/grf-files.txt  ex :  data_dir: /home/hercuser/Hercules/conf/client_data 1. Add ".gat", ".gnd", ".rsw" files to clients data folder AND  /home/hercuser/Hercules/conf/client_data.
    2. Edit "mapnametable.txt" and "resnametable.txt" files in clients data folder AND  /home/hercuser/Hercules/conf/client_data.
    3. Edit "map_index.txt" in db folder.
    4. Edit conf/map/maps.conf 
    5. cache maps ex: ./map-server --load-plugin mapcache --map prontera
    6. Add flags/warps/monsters to the map as a script in npc folder
     
    For more information you can read a guide written by Myriad
     
  24. Upvote
    Habilis got a reaction from Begin in adding custom maps   
    Linux   i. Make sure mapcache in plugins in src/plugins/makefile.in ii. Make sure that in conf/plugins.conf  "HPMHooking", - is not commented (remove // before) iii. Make plugins   0. Define datafolder  in conf/grf-files.txt  ex :  data_dir: /home/hercuser/Hercules/conf/client_data 1. Add ".gat", ".gnd", ".rsw" files to clients data folder AND  /home/hercuser/Hercules/conf/client_data.
    2. Edit "mapnametable.txt" and "resnametable.txt" files in clients data folder AND  /home/hercuser/Hercules/conf/client_data.
    3. Edit "map_index.txt" in db folder.
    4. Edit conf/map/maps.conf 
    5. cache maps ex: ./map-server --load-plugin mapcache --map prontera
    6. Add flags/warps/monsters to the map as a script in npc folder
     
    For more information you can read a guide written by Myriad
     
  25. Upvote
    Habilis reacted to luizragna in Custom Unit HP Bar System   
    Yes, the illust folder don't like subfolders
    I improved the topic to avoid problems
×
×
  • Create New...

Important Information

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