Jump to content

Habilis

Members
  • Content Count

    225
  • Joined

  • Last visited

  • Days Won

    20

Posts posted by Habilis


  1. Hello and Welcome !!!

    Me too, I write on many languages.

    (Seriously any...If I'm interested or paid to do it)

     

    You can check a guide in my signature on how to setup Herc server

    There is also a link to Trouble shooting/Frequently Asked Questions Annex to my guide

     

    And for personal experiences... Well, you can read my 

    Homeless/Vagabond Developer's diary

     

    Enjoy your day with Hercules!!


  2. Homeless (Vagabond) Server developer's diary

    Day 12 : Doing Stuff....

     

    Browsing publically available content, I found a command 

    @identifyall - Identifying all items (Provided by AnnieRuRu, if I'm not mistaken...)

    The problem is that the script doesn't use Magnifiers to Identify your items.

    Because????... F* you! B38cFIv.jpg©

    I don't know if something similar already exist. It was faster to adjust the one I found than continue looking.

    And I decided to share it (Costs Habilis nothing, but could make some of you happy)

    -	script	IdentifyAll#Util	-1,{
    OnInit:	
    	.identifyItemId = 611; //Magnifier
    	.identifyItemName$ = getitemname(.identifyItemId);
    	bindatcmd "identifyall", strnpcinfo(0)+"::OnIdentifyAll",0,99;	
    end;
    
    OnIdentifyAll:	
    	
    	if(countitem(.identifyItemId) < 1) {
    		dispbottom "To do that, you need at least 1 "+.identifyItemName$+".";	
    		end;
    	}
    	
    	getinventorylist;
    	
    	for ( .@i = 0; .@i < @inventorylist_count; .@i++ ) {		
    		
    		if(countitem(.identifyItemId) < 1) {
    			
    			dispbottom "You are out of "+.identifyItemName$+"s, "+.@c +" items identified.";	
    			end;
    		}
    		
    		if ( !@inventorylist_identify[.@i] ) {			
    			delitem2 @inventorylist_id[.@i], 1,0,0,0,0,0,0,0;			
    			getitem @inventorylist_id[.@i], 1;
    			delitem .identifyItemId,1;
    			.@c++;		
    		}	
    	}	
    	dispbottom .@c +" items identified.";	
    	end;
    }

    Basically it's an utility @Command script that could make clicking less agressive... when have a lot unidentified items.

    How it works

    When you don't have any magnifiers it says:

    Скрытый текст

    q13Gjc8.jpg

    When you have less magnifiers than Unidentified items, It identifies as much items as possible...

    Скрытый текст

    nupMYM8.jpg

    When you have enough magnifiers it just identifies all using your magnifiers

    And says You don't have anymore MAgnifiers, X items where identified using few that you had.

    Скрытый текст

    zN9ryhH.jpg

     

    Pretty simple stuff, but could make somoene's life easier...

    Also, changed vending zone to one that is publically available in Downloads section (It comes with script of vending spots!)

    Spoiler

    WjfEFc0.jpg

    But, blue squares (Where vending is supposed to be permitted) have flag no_vending,1 (Vending forbidden),

    Because????... F* you! B38cFIv.jpg©

    How Habilis fixed that?

    Disabling vending on entire map and changing these flags to no_vending, 0 (0 means no_vending is canceled).

    Is not an option, because when entire map vending is disabled, Hercules doesn't even look on individual cells....

    And doing bunch of /where to create propper flags, is not an option timewise! B38cFIv.jpg

    So, Habilis did it lika that, Created 1 flag for no_vending,1 0 0 200 200 (all cells of the map)

    And then rename each flag where vending is supposed to be permitted to no_vending, 0

    Also that map came without minimap.... not Habilis problem....(made a minimap):

    Скрытый текст

    VwQQpCy.jpg

    Like they say where Habilis come from : "Prepare winter event in the summer!" ©

    Скрытый текст

    ChYLuEB.jpg

     

    jsiV8Xc.jpg

     

    I found that winter texture pack I was looking for, it was uploaded to some 3d party file cloud... as it wrights about 80mb but it totally worth it!!!

    (Just winter not holiday)

    Скрытый текст

    uwJhrvt.jpg

     

    Qwyue3s.jpg

    As it covers almost all Cities and fields!!! so 80mb is worth it!!

    Скрытый текст

    EgT93jR.jpg

     

    Also Installed my favorite chatime plugin from dastgir GitHub 

    EgnqKzg.jpg

    Also changed some buttons in my 2013 client  to be like sortof newer clients

    Скрытый текст

    0PSE5XX.jpg

    New buttons

    Скрытый текст

    7LusKpg.jpg

     

    QsXlg5s.jpg

    These buttons not only for aesthetics, they also resolve another problem that you don't need to know about... :ph34r::ph34r::ph34r:


  3. Day 11: Done some more NPC work..

    - added Vampire bal  (From downloadfs section) event to My AutoEvent Controller

    Spoiler

    kfofrSJ.jpg

    JZjduFx.jpg

     

    don't joke around with lady vampire...

    0K6ysay.jpg

     

    basicallyically as described in the downloads section.. (A pvp event)

    w89dBA6.jpg

     

     
    2

     

    - added Poring Catcher event from the Downloads section

    Spoiler

    6LU9GlT.jpg

     

    5Ltpdwu.jpg

     
     

     

    Since it is a hardcore LowRate server x8.....

    And Novices appear in the outskirts of Prontera with no money and no clothes (Just Like Habilis when he goes to Las Vegas....) 

    I've decided to make a Welcomer NPC

    Spoiler

    aweyaWR.jpg

    Basically an NPC that is going couple newcomers brain with some information about the game (Most of it is ported with slight modification form Renewal tutorial...)

     

    MEgYZke.jpg

     

    vkWbYi0.jpg

     

    IVEGwT8.jpg

     

    A48rbH8.jpg

     

     

    eS82fkS.jpg

     

     

    zi9Fx6w.jpg

     

     

    gJdXmNM.jpg

     

     

    Y3J8Hbj.jpg

     

     

     

    I also made a simple PVP arena, with this cute assassin girl NPC

    I had do do the CUTIN myself...

    Spoiler

    GfvOUXe.jpg

     

    The official one is not as... erotic...

    Curious fact : the original Assassin girl on cutin is wearing a Creator or LordKnight skirt ? bYjKUBP.png (Censored?)

    job_black_hucke01.gif

     

    Part 2 : Plugin work

    Implemented my favourite @commands (So much appreciated by Russian RO comunity)

    I even turned them into Hercules plugins and released here:

     

    I also integrated all of the Dastgir's plugins, Thank you very much!!

     

    @aura is awesome!

    I disabled aura at max levels...

    Spoiler

    When character of 1 or 2 or trans reaches max level, Aura is obtained through quest from him

    seU8YRG.jpg

     

    But good thing you can choose your aura...

    e30WnLL.jpg

     

     

     

     


  4. hmmm... ok...

    1 thing, when you say 

    Quote

    chmod +x ./configure (worked fine)

    make clean (worked fine)

    make sql (error message below)

    you ran chmod +x ./configure (worked fine)

    but did you ran ?

    ./configure

     

    2 thing you can always do 

    chmod +x config.status

    ...


  5. Day 10 : Scripting marathon continues..

     

    I went to download section and downloaded some more scripts of events to integrate them with this server.

    And then I though why not fully automate them?

    So I asked aroud about randomizing things...

    So, Big Special THANKS to @Z3R0 and @Dastgir for giving me this code

    OnClock1800:
    initnpctimer();
    .@currentMinute = 0;
    .@startMinute = rand(1,30);
    end;
    
    OnTimer60000:
    setnpctimer(0);
    .@currentMinute += 1;
    if (.@startMinute == .@currentMinute) {
      stopnpctimer();
      doevent;
    }

    What I wanted to do Is create an AutomaticEventController

    A controller that would automatically and randomly start and end events over a day.

    and to have the starting time randomly picked within 30 minutes from planned time

    (I wanted this to frustrate my players even more! *trollface*)

    So far, I have 4 automatic events (available here in download section)

    I'm not the author of this scripts, each script has an author. You may find their authors by browsing in Downloads section. However, there is a big thanks from me for releasing wonderful scripts!

    - Treasure hunt (pry open treasure chests, some of them are empty to find those containing a treasure) 

    Spoiler

    XN0KLN4.jpg

    vsftTqm.jpg

    - Goblin Invasion (need to defeat X number invaders and then invader Leader spawns)

    Spoiler

    wrrnWpI.jpg

     

    wcmqUEI.jpg

     

    9DWTo2h.jpg

     

    - Poring Count event (just count porings in the fence)

    Spoiler

    Bg7EENv.jpg

    - Slot Machine (With free spins.. 

    Spoiler

    uJw3aCC.jpg

    2 free spins,

    U06DeWj.jpg

    after out of free spins need to pay...)

    2uxaiM0.jpg

    How it works:

    - AutomaticEventsController at specified time runs a version of code given to me by @Z3R0 and @Dastgir

    to determine a real random time of event, It checks for WOE, no auto events on WOE...

    - AutomaticEventsController Picks randomly an event script name from Array of string and calls OnEventStart on that script

    - Every Automatic event script "Implements" an Imaginary Interface AutomaticEvent with 2 methods OnEventStart OnEventTimeOut (OOP stuff.....)

    (basically every Automatic event MUST have those 2 methods Because Controller calls on them)

    The rest of implementation is up to the event class script...

     

    So far,  I have 4, but I actively browse downloads section for more scripts to integrate to my Automatic events!

     


  6. Day 9.5 : Scripting challenge....

    Now it is time to script some...

    So, I wrote a daily rewards script and integrated everything and here is how it looks like in game:

     

    Spoiler

    B9wU79G.jpg

    Sorry about blur, there is the real name of the server, didn't want to waste time and create 28 cutins with HabilisRO on them....

    Anyways, some people may say these are crappy prizes. Well, tell you what... This server is considered a low rate server. Besides, all a player have to do to get them, is just login.....

    Even Habilis can do that!

    Took adv. Stylist npc from Downloads and modified it to be sort of a quest ... 

    Spoiler

    pczsumA.jpg

     

    Also added a healer (just heal with 60 sec delay) <- classic

    One more thing, took this pretty map 

     

    and created a vending zone

    Spoiler

    OBRy0zr.jpg

    xd9F6BM.jpg

    So, this is basically a vending zone, to assemble all vendors in one area

    I'm not expecting many players, so this should be big enough.

    Continuing the work ....

     

     


  7. Day 9 : Didn't want to come back to BeyondCompare....

    So, I don't want to come back to BeyondCompare and configuring 1000 of files to the episode 11.1, I was desperateley browsing downloads section for at least something more exciting to do!!

    Anything... As I've done pretty much everything....

    And one more thing cought my eye. DailyRewards!!! 

    Well my server already have that, but very basic one. Why not make it golden?

    so I took this and a few of similar releases

    and did this

    day1

    Spoiler

    xjhwI3h.jpg

    day 2

    Spoiler

    v9Pm0SN.jpg

    well you get the idea...

    Spoiler

    QrEYCtE.jpg

     

    And, Yes you rad it correctly "A little something to make a player's day with us even better"

    And no, it is not an invitation to create 500 characters and farm daily rewards B38cFIv.jpg

    As these items are not actually real items

    But an Event version (same features but....)

    - Not Kafra/Guild storable

    - Not Tradable / Vendable / NPC sellable

    - Not droppable

     

    Basically an item given to one character to make his/her day even more fun...

    Applying Only Best Practices since 2017...  (C)


  8. Day 8 :  Patcher (Still bored from comparing bunch of configs)

    I decided to do a patching system

    First I took the graphical content provided at downloads section

    HCtMYGX.jpg

     

    And created 5 accounts on FreeWeb hosting

    This free web hosting has these features:

    - No ads

    - 1Gb storage space (To store updates)

    - 100Gb traffic per month

     

    So I have this .com domain name rigged to a free private DNS service (Just like DynDNS pro but free...)

    In the DNS I created a CNAME record like so (upd.myserver.com -> tttaaass123.freehosting.com)

    So that pretty domain points to domain given by free web hosting

    What I found cool is that DNS records updated within an hour!!

    (This means upd.myserver.com was pointing to tttaaass123.freehosting.com, yes changing DNS records can take some time. But 1 hour is amazing!)

    In the patcher config, I put upd.myserver.com/patch as a directory to get patches from.

     

    Now I will explain why 5 free accounts :

    Free Webhosting are really picky, Finnicky and useless people that like to ban and limit things...

    So If I get banned, I can switch to the next free account within an hour.

    Or, if I see the traffic reaches limit, I switch to the next free account.

     

    How this mobility is achieved:

    The index.php which is called by the patcher to display news does quite some more work than just display news.

    It writes the JSON object if not exists or outdated

    JSON object that is written into webroot directory looks like this

    {
        lastupdate : datetime,
        news : [{picture, publishdatem, body}]
    }

    Index.php checks lastupdate

    - if 1 hour didn't pass, it renders JSON object with news to HTML and sends it.

    - if past 1 hour, it does a CURL or WGET call to myserver.com/api/news to get a fresh JSON object. and writes NOW() to the lastupdate.

     

    index.php also sends another CURL or WGET call to 4 other free webhosting accounts with a specific parameter  ?sync=1 

    (Obviously, there is some validation going on so that some smarty couldn't botch my patching....)

    4 other free accounts copy the JSON with news and compare patchlist.ini (file that lists updates) to their own file

    and the get the updates they don't have and update their patchlist.ini .

     

    So, the news are written on the main site, and patches are uploaded to only 1 place and spread through my network by themselves.

    That way, I can maintain high mobility.

    In the case of a ban or approaching traffic limit, I can switch to the next free webhosting account within 1 hour. The main server internet channel is not busy with patches download traffic.

    Players don't need extra lags on the server, right?

     

     


  9. I've been downgrading file mob_skill_db.txt

    to episode 11.1 and I noticed something weird

    in pre-re/mob_skill_db.txt

    https://github.com/HerculesWS/Hercules/blob/master/db/pre-re/mob_skill_db.txt

    the skill level at the position #5 for some skills is above 10

     

    for example Doppelganger Decrese Agi  48 lvl?

    MobID,Dummy value (info only),State,SkillID,SkillLv,Rate,CastTime,Delay,Cancelable,Target,Condition type,Condition value,val1,val2,val3,val4,val5,Emotion,Chat
    1046,Doppelganger@AL_DECAGI,attack,30,48,500,0,20000,no,target,always,0,,,,,,5,
    1046,Doppelganger@AL_DECAGI,chase,30,48,500,0,20000,no,target,always,0,,,,,,5,

    Can someone tell me why is that?

    Will it make this monster weaker if i decrease those skills to 10 lv like in older emulators?


  10. Day 7 : Was sooooo boored running BeyondCompares

     

    Today been running beyond compares during one hour.

    Got fed up and decided to address a client issue that been bugging me for a long time 2013 client that I'm using has a rather special quest window

    with multiple tabs.... like WHY?! why would i need this many tabs!!!?

    Anyways worse of all is the last tab.... it says episode 14.1 Bifrost.... Hell no!!!

    q69goTw.jpg

    At first, I wanted to remove all unwanted tabs. But knowledgeable people have told me that it could only be done by hexing the client and applying hexes at soooo many places.

    So, I decided to let go that idea of removing useless tabs...

     

     

    However, I did this: (Well white text will have to do for now.... I was running short on time and my parents started to yell at me "Go do your homework!!" well, you got the picture....)

     cY7r9GF.jpg

     

    There you go, I fixed it!

    That doesn't bug me anymore!

     

    Quote

    That's right, current episode is matching the year 2007. Episode 11.1 Rachel.
    Did you ever wonder hos fast time fly by? What were you doing in 2007?
    Can you believe it was 10 years ago? 
    We bet you can still feel it like if it was just yesturday.
    Well, this is an attempt to dive into the nostalgia with enhanced experience.

    And other minor improvements providing authentic gameplay. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here. And some more romantic gibberish here.

     


  11. Day 6 : Paaaiiiin & Booooredom

     

    For past week every day when I'm back from school, right before doing homework, I dedicate 1 hour of my time to 

    run BeyondCompare sessions on files between Latest Hercules and eAthena revision of 2007 before Satan in Morroc (roughly Episode 11.1 : Rachel )

    I compare and see the difference

    For instance, this is the screenshot of me working on mob_skill_db.txt

    On the left side Osiris Has some new skills in the Latest Hercules. (See the date under file path 2017-07-04)

    On the Right side Osiris doesn't have some recent skills as It is old eAthena revision (See the date under file path 2007-02-06)

    MUqwmEK.jpg

    I also write notes as  I go with this process. Otherwise, it is really easy to loose my mind in that process of Pain & Boredom....

    HwRVRyy.jpg

     

    Wish me luck and not to loose my mind to boredom.

    Doing homework seems so much fun after that!!!!!!


  12. 9 hours ago, lucasavilez said:

    Thanks @hemagx & @Habilis, it will be a looong journey.

     

    There's a lot more information now, buuut i can't find how mobs changes over runemidgard, i'll find.

     

    But there is.. Like I said get yourself an old eAthena revision

     

    I like this one (It is just before they started to integrate Satan in Morroc)

    http://rathena.svn.sourceforge.net/viewvc/rathena/trunk/?pathrev=13414

     

    According to this post

    it is 2007.04.10: Episode 11.3 : Nameless Island

     

    Now, download latest Hercules and download this old revision.

    Then, run manual BeyondCompare sessions on:

    - monster db

    - Item db

    - npc

    and whatever else you want to turn to that episode.

    Like I said before, I estimated it to 4-5 months of work.

    Unfortunately, I don't have that much time, I need to go to school and do my homework.

     


  13. I wanted to do this

    But I don't have time, as I estimated it to 4 months work...

    The only usable information I could find is

    http://rode.doddlercon.com/db/

    section 

    but there is no more information about previous episodes.

    Looking at the eAthena archives of that time and running manual compare

    in BeyonCompare or similar software.

    But like I said I can't spare 4-5 Months on this...

     

    Therefore, I don't think anyone would like to share their server configuration if they have it configured to these episodes.

     


  14. I never did it in windows, but my guess is uhhh......

    Hercules-14 requires VisualStudio 2014 ????????????

    you are trying to open it in VS 2010

     

    Hercules ships with solution and project files for Visual Studio from 2012 onwards.

    source :  http://herc.ws/wiki/Compiling

    Quote

    Using Visual Studio

    Compile_hercules.PNG
    magnify-clip.png
    MS Visual Studio 2012: Compile configuration (red) and solution (blue) with it's child projects.

    Hercules ships with solution and project files for Visual Studio from 2012 onwards.

    • Download the latest version of Visual Studio (at the time of writing, MS Visual Studio 2015 Community Edition) and install it, if you do not have Visual Studio already installed.
    • Open Hercules-14.sln in your Hercules folder if you use Visual Studio 2015, for Visual Studio 2013, you need to open Hercules-12.sln, for Visual Studio 2012, you need to open Hercules-11.sln instead.
    • Select the desired compile configuration (marked red). Use Release when you compile the server, where players will be playing on. Debug compiles the server without optimizations and with debugging information.
    • Right-click the solution node (marked blue) and select Build solution. If you have compiled the server before, it is recommended to use Rebuild solution, as it forces the compiling of all components, not just those, which seem to have changed since last compile.
    • If the compilation was successful, the resulting executables are in the same folder as the solution named login-server.exe, char-server.exe, map-server.exe and mapcache.exe.
    5
    5

     

×
×
  • Create New...

Important Information

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