Habilis

[Dev's Diary] Minimal $ Ragnarok online server & comunity

45 posts in this topic

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 ....

 

 

Edited by Habilis

Share this post


Link to post
Share on other sites

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();
[email protected] = 0;
[email protected] = rand(1,30);
end;

OnTimer60000:
setnpctimer(0);
[email protected] += 1;
if ([email protected] == [email protected]) {
  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!

 

Edited by Habilis

Share this post


Link to post
Share on other sites

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

 

 

 

 

Edited by Habilis

Share this post


Link to post
Share on other sites

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:

Edited by Habilis

Share this post


Link to post
Share on other sites

This DevDiary was a nice insight into the development timeline of a server, very useful and a cool topic to read over! How stable are RPi's for server hosting? I'm currently using a dedicated server to work on my project but it's cool to see something as robust as RO running on an RPi.

Share this post


Link to post
Share on other sites

Habilis is glad that you like!

2 hours ago, Cero said:

 How stable are RPi's for server hosting?

For 1 person it's fine

I have a feeling it's fine for up to 10-20 players (will test it soon)

But so far ok.

In virtual life:

r6t7A0P.jpg

In real life:

mXbWTsx.jpg

Share this post


Link to post
Share on other sites

Very nice thing to read, I'm following this one!

Share this post


Link to post
Share on other sites

Day 14 done some more stuff...

Implemented a sprite pack from Adel that makes porings more colorful (colorful porings are really important!)

before:

Spoiler

fjakwwe.jpg

After:

Spoiler

dGs3vzu.jpg

 

Lika back in 2007 every server had a custom sprite for Asura strike Habilis decided to stick to that old tradition and make some asura sprites

before:

Spoiler

LijE0np.jpg

After:

Spoiler

TZuu1Km.jpg

 

Before:

Spoiler

jdIZNHM.jpg

 

After:

Spoiler

F8ma0YO.jpg

 

 

Finally I sorted out the old maps and cached them properly

List of maps like before : Prontera, Izlude, Morocc, Alberta

On morroc I've also removed all NPCs related to satan in morroc in one way or another

Spoiler

jGdrpkV.jpg

 

 

OJ3yXIX.jpg

and restored all warps and monsters on the Morocc fields (right of the morroc)

Also, returned Ant-hell entrance to the old place (Both of them)

Spoiler

JoalbOU.jpg

 

ioWyH8J.jpg

Habilis was ready to implement some custom costumes but this piece of gui needed a touch of personalisation

hpM9m8E.png

The challenge here is to remove 2headed chic (an object that is behind other objects I want to keep, lines and points)

Multiple years of experience in removeing copyrights from graphical content have helped Habilis to do just that.

Spoiler

39YUNpY.jpg

 

fjq1aXy.jpg

 

This is how costumes look for now

Spoiler

C1mREpJ.jpg

 

Unfortunately, since no one wanted to provide a bundle (all in one (sprite, item, collection, lub, item_db.conf)) to Habilis

Habilis had to reverse engineer stuff....default_ph34r.png

This means alot of NotePad++ regular expression search and replace

And a lot of Excel formulas to generate Item_db2.conf

Spoiler

stRn6ey.jpg

LcsOG8w.jpg

 

nxPmHkN.jpg

 

And as a result .... 500 custom headgears.

 

 

Also this is a ppreview how I want to prevent creation of 500 characters and farm of daily rewards

event versions of items will be given...(they have same properties and a list of limitations)

eg1mwLJ.jpg

 

Auras, using some custom Auras and Dastgir's plugin I finally managed to make some nice auras

on level 99, aura is not given to a player, on level 99 it have to be obtained by a quest.

some examples of available auras

Spoiler

Jg9GaEE.jpg

IA9kNck.jpg

 

NHlroNs.jpg

 

SgsoJlo.jpg

 

Oz71WIV.jpg

 

 

And finally, Habilis's favorite ones!!!!!

 

Spoiler

zVId7oy.jpg

 

It8fHZh.jpg

 

 

also took guild emblem pack (will provide it as separate download on the downloads page)

If Guild masters don't have time or don't know how to make a guild emblem, they can take one of 2k+ provided.

Spoiler

mGvcaed.jpg

 

 

 

Edited by Habilis

Share this post


Link to post
Share on other sites

Day 14 one more thing.

There is a huge skinpack of 72 skins publically available to download 

This is a nice addition to the server's client for the players wanting to showoff or to add a touch of personality to their game client

The problem is, there are few having Glyphs in client buttons and options window

Habilis Easily overcame those by using his highly sharpened (lately) search and replace skills....

 

It weights around 170mb uncompressed and 60mb compressed. So, it will be an optional download.

Here are some examples:

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

IbRXW5t.jpg

 

y4uCOOa.jpg

 

mQHEF18.jpg

 

j5p4wnx.jpg

 

4gXB89v.jpg

 

2H7i5Og.jpg

 

So that Makes 2 extra packages to add to my client downloads page.

 

1 - Set of 2k+ guild emblems (for those who don't have the time or skill to make one )

2 - Set of 72+ skins for those who wnt to add a touch of personality...

There is always something to do with public materials like:

- Fixing Glyphs in skins

- Removing Evasticas and Waffen SS emblems from guild emblems pack (Raccial hate will be forbidden on that server)

 

But they are pretty usable!

 

Share this post


Link to post
Share on other sites

Day 15 done some bootstrap stuff...

 

So Habilis was busy working on the website. Doing it with bootstrap is harsh

Bootstrap is not well suited for gaming web resources with massive graphical content, it is more suited for minimalist Hipster webapps or such.

So, those who do gaming websites with bootstrap, Habilis shake your hands you friggin awedome guys & gals!

Alrighty, enough with the chatter, So, here is what Habilis managed so far..

I'm not a designer or frontend, like AT ALL...

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

hjtnnJI.jpg

8ZE990E.jpg

B5JJnp4.jpg

 

8gf7JQz.jpg

 

p6dXCsY.jpg

 

kN0BWX6.jpg

 

DSaPiW2.jpg

 

Edited by Habilis

Share this post


Link to post
Share on other sites

I will try and play on your server when it's up :D

coz it looks cool !!

Edited by THPO

Share this post


Link to post
Share on other sites

If you manage to find it... default_ph34r.png 

Because I will not announce it, and it's not called HabilisRO default_ph34r.pngdefault_ph34r.pngdefault_ph34r.png

Share this post


Link to post
Share on other sites

Yes it will be open for public.

Just will not be anounced and will appear under a different name than HabilisRO (it's a fictional name as mentionned somewhere above...)

Share this post


Link to post
Share on other sites

Using publically available register page (In Downloads section)

Spoiler

8evcsVr.jpg

Made this register / reset password section 

(took just CSS styles from public register page (Public one is not BootStrap))

 

This one os a BootStrap form...

Spoiler

0BxIyt6.jpg

 

Edited by Habilis

Share this post


Link to post
Share on other sites

Quickie-Quickie  made an HTML email template based on tables <tr><td>  (Because we are in 2002 B38cFIv.jpg)

So that I can troll and spam palyers with all kindof verrifications and notifications

Spoiler

OYMNXK8.jpg

 

Share this post


Link to post
Share on other sites

Well Habilis really don't know what to post here anymore

LIke EVERYTHING was done....

If you have anymore ideas you are welcome to post them here

The only thing I can add is, well Security Tests and Inspections reports and grades and results

 

1 . Test SSL certificate (and sortof security) of your E-mail server

 website : http://www.emailsecuritygrader.com

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

tKvzphn.jpg

I'm using free SSL certificate from Let's Encrypt

so the information about sender looks like this

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

jzONhPs.png

 

tiny little LOCK!!!!

This is how looks a message sent from email server with not configured encryption:

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

PpDHqoC.jpg

 

2. Testing the SSL certificate on your website

Yet, Again I'm using a free SSL certificate from Let's Encrypt (SSL certificate is lika HTTPS://) encryption thingy  

looks like this when you open site in the browser...

I4OKxZH.jpg

There is a way to test the quality of the SSL setup

 website : https://www.ssllabs.com/ssltest/

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

GSU09Bl.jpg

 

3. Finally, you can test passing through capability of your E-mails.

Wether your E-mails will go to Inbox or to SPAM depends on quality of your E-mail server setup. 

In other words, badly configured email server emails are at risk of goin directly to SPAM without ever seeing the daylight of an Inbox

There fore some Webresources put this Humiliating phrase on their website

"If you didn't get an E-mail form us, check your SPAM."  ©

There is a way to test that too.

Website : https://www.mail-tester.com/

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

SDcMTln.png

 

Lost 0.3 points thwere because some E-mail carriers think that Habilis is using FREE dynamic DNS ... :B):

Well, anyways with 9.7/10 mark, Habilis is pretty sure that his E-mails will always hit Inbox.

Therefore, no need for Habilis to post the Humiliating: 

"If you didn't get an E-mail form us, check your SPAM."  ©

On his website.

 

That's all there is to it Guys and Gals!!!

Configure your servers correctly!

Always test whatever you've configured!!

And don't forget about CyberSecurity:B):

May teh Force be with YOU!!!

Share this post


Link to post
Share on other sites

Posted (edited)

After the release of the CampFire 

I decided to make a fishing game.

In the official game Client there are already nice fishes released.

So, I gathered all 19 of them.  And renamed them to English.

8DLXKEG.png

There is also a very nice NPC sprite in the official Client

B1SJd88.png

 

 

I borrowed fishing rod sprites from some other server

pnHP0Pq.jpg

The problem with official fishing rods, is that, they look surprisingly like Whips...

http://ratemyserver.net/index.php?iname=fishing+rod&page=re_item_db&quick=1&isearch=Search

 

 

I made them wearable and double handed.

anLVRnE.jpg

 

 

 

Then, I found the most interactive fishing game script.

 

 

Unfortunately, this script is written for rAthena and has major logic issues. But, I managed to make it work on Hercules.

 

cjZRNhJ.jpg

 

UViKAvm.jpg

 

 

 

 

 

Work In Progress...

 

screenLibertyRO025.jpg.a868a9761b4c3887e0b59273aa33ed3a.jpg

 

 

screenLibertyRO029.jpg.b7fffe09abe65e15cc9b89cf25a0cc4a.jpg

 

Work In Progress...

 

What is the Ide of Fishing game 

 

3 different fishing rods
obtainable by quest
Wooden, bamboo, metallic fishing rood with different properties
modifying the fish catching process
Metallic Fishing Rod can be refined (for better modificators)

pnHP0Pq.jpg

 

there is also a 1% risk of losing the Fishing Rod on failure :oops:

 

Player can catch 

  • Junk  - Common item such as Empty Bottle, Jeloppy, Fluff, etc.
  • Item  - Not common item that can be fished out of the weater;) Shoes, Boots, Old Blue Box, Etc.
  • Fish  - Very Common (One of the Fishes displayed above)
  • Mermaid - Common , WTF moment,:sexy: Mermaid will cast a Heal or buff on you and disappear.
  • Fish monster  -  Not Common, :oops:Player Fished out of the water an aggressive monster. (Marc, Swordfish)

I'm also planning to give Experience.

 

There will be diffirent fishing spots

Around prontera - Fishing spots for beginners, require the wooden fishing rod,  lake, river fish can be fished there.

Alberta / Comodo - Intermediate fishing spots, require Bamboo fishing rod, Ocean, sea fish can be fished there. (Higher chance to fish out fish monster)

Izlude Island (Turtle island) - Advanced fishing spots require Metalic fishing rod, Giant, Legendary fish can be fished there.

 

 
 
 
 
 

 

Edited by Habilis

Share this post


Link to post
Share on other sites

Posted (edited)

 

Was looking for a sprite of a big board.

found it with a girl standing in front of it...

And fixed it a little bit

K8H6sOA.jpg

 

This might be a release if there is a demand for it.

I got another Briliant idea,

 

custom FastTravel system
just like in modern games.
to be able to fast travel to a location, a player needs to discover that location first.
Come to the location and do a quest (or pay) on that location to "open it" and this location will appear in the list of locations available for fast travel.

There is a very nice NPC already.

That I'm going to call FastTravel
kWzR4T2.png

 

 

 

Edited by Habilis

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now