find this line
if(bstatus->max_hp > (unsigned int)battle_config.max_hp) bstatus->max_hp = battle_config.max_hp;change into if ( pc->jobid2mapid(sd->status.class_) & (EAJL_UPPER|EAJL_THIRD) ) { // trans 3rd class if ( bstatus->max_hp > (amount) ) bstatus->max_hp = (amount); } else if ( pc->jobid2mapid(sd->status.class_) & EAJL_THIRD ) { // regular 3rd class if ( bstatus->max_hp > (amount) ) bstatus->max_hp = (amount); } else { // other jobs if ( bstatus->max_hp > (amount) ) bstatus->max_hp = (amount); }didn't test
but you are developer so should at least able to debug this crap
he didnt claimed the copyright on the images since they are just rip offs, and as he said his Client requested the design coding only and not creating of the images.
and about " Ripped Stuff & Work of others" i bet 10 USD if i buy your full Instance pack now it will contain the Maps from Syouji or other designers since they are part of your Instances. so you doing exaclty the same you sell the work of others inside your package.
Hi! i wan't to suggest to put in Hercules, the VIP System like on Official Servers, here are some informations about the VIP System in pRO ( Philippine Ragnarok Online ).
VIP System [pRO]
and here is on iRO ( International Ragnarok Online )
VIP System [iRO]
Warp Portal
*When your Premium Service time expires, you will be disconnected from the server if you are online, but you can reconnect immediately after.
*When Premium Service time runs out, you can still get items from your Kafra if you placed more than 300, but you will not be able to put any item in it if it already has 300 items or more.
*The EXP and DROP bonuses from Premium Service add to the bonus from Field Manual, Bubblegum and EXP rings.
ok another script that should deserve in the script release section
... after having countless fix in script request ...
Download: 2.3a
script
Make sure your hercules server is compile after 2015-11-15
ok what this event do ...
Run ! or you gonna DIE !
this event will keep spawning Bomb Poring and BOOM and KABOOM every player they came across
until the last player who are still alive on the map will be declare winner
this should be a simple script ...
hope you guys know how to edit by your own ...
original topic in eathena
it was just a simple script request ... however it went popular for some reason
so ... after years of showing up, then inactive, then come back, then inactive,
I come back again .... hahahaha
but I'm not very happy ...
why ?
.
because I'm in DEBT !
.
I am broke its because of this Malaysia 1MDB scandal ! (please google it)
Malaysia Currency DROP NON-STOP
.
I borrow money from my relatives, already RM3500 accumulated
which is nearly USD $900
it is a big amount .... if I don't find a method to increase my income, I'm gonna broke
.
.
so ... I have google some sites on how to earn money online ...
I almost get scam for a 'work at home' scheme
.
its here -> http://www.yyjob.net/display-job/5848/Urgent-Home-Base-Data-Entry-Typists.html?searchId=1445258816.89&page=1
I actually sent my email and my contact number for them
then they reply ....
I immediately spot 3 error
1. where is the company name & address ?
2. Data Entry job is ...
of course I already googled it
means that person gives you a shit ton of scanned documents
then you sort it out and digitize them with microsoft excel
now this is the legitimate site for freelancing, and it look like this
there are always more than 50 peoples to bid on any data entry job, no matter how small the payout it
what I read in the mail has nothing resemble to what I learn from google
wait ... ADVERTISING ? since when data entry job becomes a salesgirl?
3. it ask you to deposit RM50 to start a business ...
ok RM50 is actually small
I just have to eat white bread/plain rice with plain water for 3 days, then I can save RM50 up
but ... it just sound too good ...
something fishy already
so I keep on google until I found this site
http://asiaparttime.com/blog/asiaparttime/how-to-tell-if-a-data-entry-job-is-a-scam/
end case
there is no follow up, and don't want to talk to them anymore
so after hours and hours of thinking and searching
http://reviewopedia.com/workathome/7-ways-to-make-money-online/
of course there's more, but the #1 in particular ...
... makes me make a very tough decision
I always say that everything on the internet should be free
after all is information age nowadays everyone owns smartphones, and I own 2
but the real life get the better of me
I have resort to earn money through selling scripts
... and I hate myself for saying this crap ...
I used to argue and threaten others by reproducing their scripts and release for free
but I don't have a choice now, seems like karma has hit back on me
haiz ... so now I'm still in the middle of setting up a test server
probably can start scripting tomorrow
I think ... my current stance is
1. continue make free release in hercules script request or script release
---- if anyone wants to me to make it compatible with rathena, let's talk price
2. start making scripts over PM, of course, price negotiable
---- higher price for rathena users ... hahaha
3. if source edit is require, no longer release any patch
---- so there are less rathena users able to convert them
I would keep this stance, and view next month (1st Dec) if I'm able to cover my expenses
I just need earn about USD $300 per month to cover this debt
if convert USD $300 into MYR, is about RM1200, that should be enough
and that's also means how small malaysia currency is ... haiz
Just like the Item DB, the Mob DB has a less than optimal (read: terrible) format, that doesn't play well with Git or any other Version Control System.
For example, this is a snippet from the current file:
1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,11013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1
1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,11015,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1
Can you tell, at a glance, if any of these mobs drops a Strawberry? You certainly can't (unless you already know).
Now, after locating the Strawberry drop, what happens if we want to remove it?
1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,11013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,0,0,0,0,0,0,4029,1
1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,0,0,0,0,0,4022,11015,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1
How many Strawberry entries did I remove and from which lines? Can you tell at a glance? Certainly not.
What happens if we try to diff it? (this is the output of 'git diff' with the modified file)
@@ -16,8 +16,8 @@
1010,WILOW,Willow,Willow,4,95,0,5,4,1,9,12,5,15,1,4,8,30,9,10,10,12,1,3,22,0x81,200,1672,672,432,0,0,0,0,0,0,0,902,9000,1019,100,907,1500,516,700,1068,3500,1067,2000,1066,1000,0,0,0,0,4010,1
1011,CHONCHON,Chonchon,Chonchon,4,67,0,5,4,1,10,13,10,0,1,10,4,5,12,2,10,12,0,4,24,0x181,200,1076,576,480,0,0,0,0,0,0,0,998,50,935,6500,909,1500,1205,55,601,100,742,5,1002,150,0,0,0,0,4009,1
1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1
-1013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1
-1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1
+1013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,0,0,0,0,0,0,4029,1
+1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,0,0,0,0,0,4022,1
1015,ZOMBIE,Zombie,Zombie,15,534,0,50,33,1,67,79,0,10,1,8,7,0,15,0,10,12,1,1,29,0x3885,400,2612,912,288,0,0,0,0,0,0,0,957,9000,724,5,938,1000,958,50,727,70,0,0,0,0,0,0,0,0,4038,1
1016,ARCHER_SKELETON,Archer Skeleton,Archer Skeleton,31,3040,0,483,283,9,128,153,0,0,1,8,14,5,90,5,10,12,1,1,29,0x2085,300,2864,864,576,0,0,0,0,0,0,0,932,4500,756,70,2285,3,1708,35,1752,1000,507,1800,1701,150,0,0,0,0,4094,1
//1017,THIEF_BUG_FEMALE,Thief Bug Female,Thief Bug Female,10,170,0,35,18,1,33,40,5,5,1,15,10,5,23,5,10,12,1,4,27,0x651,200,988,288,768,0,0,0,0,0,0,0,955,3500,910,250,1108,15,928,200,507,400,716,50,1002,400,0,0,0,0,4026,1
Oh, so two lines were modified. Now, to locate the entry that was changed. By the way, you didn't notice that I purposely introduced a syntax error, did you? (hint: count the commas in the SPORE line: there's one less entry!)
Now what happens if someone else changes the file (on a nearby, but unrelated line), and you pull the change?
<<<<<<< HEAD
1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,0,0,0,0,0,0,0,0,4014,1
1013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,0,0,0,0,0,0,4029,1
1014,SPORE,Spore,Spore,16,510,0,66,108,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,0,0,0,0,0,4022,1
=======1012,RODA_FROG,Roda Frog,Roda Frog,5,133,0,6,5,1,11,14,0,5,1,5,5,5,10,5,10,12,1,5,21,0x81,200,2016,816,288,0,0,0,0,0,0,0,918,9000,908,500,511,300,721,7,713,2000,578,600,0,0,0,0,0,0,4014,1
1013,WOLF,Wolf,Wolf,25,919,0,329,199,1,37,46,0,0,1,20,28,15,32,20,10,12,1,2,22,0x1089,200,1054,504,432,0,0,0,0,0,0,0,1011,20,920,9000,2308,10,517,650,528,1050,919,5500,578,600,0,0,0,0,4029,1
1014,SPORE,Spore,Spore,16,510,0,66,106,1,24,48,0,5,1,12,12,5,19,8,10,12,1,3,21,0x81,200,1872,672,288,0,0,0,0,0,0,0,0,921,9000,507,800,510,50,743,10,2220,40,7033,5,578,600,0,0,0,0,4022,1
>>>>>>> upstream change
Well, have fun figuring out how to merge it! (hint: a Strawberry drop was added to RODA_FROG -- could you tell? And now, are you sure nothing else was changed? Doublecheck? Would you believe it if I said that SPORE's Job EXP was also decreased by two? Anything else? I'll leave that as homework.)
How do we fix it?
Once again, we're switching to a different file format. Just like last time, it'll be libconfig. We're aware there are plenty of other suitable file formats out there (who said yaml?), but unfortunately this is not the time and place to change what was already started, and we'll have to stick with libconfig for the time being. (we'll see about writing some tools that leverage the Hercules libconfig parser to lessen everyone's pain).
Some highlights:
There is no need for those annoying sequences of zeros. If a mob drops less than 10 items, only the needed entries will be there.
The mob_db2 entries can be left incomplete and set to inherit the original mob_db entry. If you want your SPORE to have higher Attack, , you can just write that in your mob_db2, and let it read the other values from the mob_db, so that if we update them, you get the update automatically
We can finally add more fields (to support new features) to the file at any time, easily and without having to edit all the lines (or force you to edit all the lines of your custom mob_db2)!
What does it look like?
Each entry follows this structure:
{
// =================== Mandatory fields ===============================
Id: ID (int)
SpriteName: "SPRITE_NAME" (string)
Name: "Mob name" (string)
// =================== Optional fields ================================
Lv: level (int, defaults to 1)
Hp: health (int, defaults to 1)
Sp: mana (int, defaults to 0)
Exp: basic experience (int, defaults to 0)
JExp: job experience (int, defaults to 0)
AttackRange: attack range (int, defaults to 1)
Attack: [attack1, attack2] (int, defaults to 0)
Def: defence (int, defaults to 0)
Mdef: magic defence (int, defaults to 0)
Stats: {
Str: strength (int, defaults to 0)
Agi: agility (int, defaults to 0)
Vit: vitality (int, defaults to 0)
Int: intelligence (int, defaults to 0)
Dex: dexterity (int, defaults to 0)
Luk: luck (int, defaults to 0)
}
ViewRange: view range (int, defaults to 1)
ChaseRange: chase range (int, defaults to 1)
Size: size (int, defaults to 1)
Race: race (int, defaults to 0)
Element: (type, level)
Mode: {
CanMove: true/false (bool)
Looter: true/false (bool)
Aggressive: true/false (bool)
Assist: true/false (bool)
CastSensorIdle:true/false (bool)
Boss: true/false (bool)
Plant: true/false (bool)
CanAttack: true/false (bool)
Detector: true/false (bool)
CastSensorChase: true/false (bool)
ChangeChase: true/false (bool)
Angry: true/false (bool)
ChangeTargetMelee: true/false (bool)
ChangeTargetChase: true/false (bool)
TargetWeak: true/false (bool)
}
MoveSpeed: move speed (int, defaults to 0)
AttackDelay: attack delay (int, defaults to 4000)
AttackMotion: attack motion (int, defaults to 2000)
DamageMotion: damage motion (int, defaults to 0)
MvpExp: mvp experience (int, defaults to 0)
MvpDrops: {
AegisName: chance (string: int)
...
}
Drops: {
AegisName: chance (string: int)
...
}
}
Here's a PORING in the old format:
1002,PORING,Poring,Poring,1,50,0,2,1,1,7,10,0,5,1,1,1,0,6,30,10,12,1,3,21,0x83,400,1872,672,480,0,0,0,0,0,0,0,909,7000,1202,100,938,400,512,1000,713,1500,512,150,619,20,0,0,0,0,4001,1
And here's the same PORING in the new format:
{
Id: 1002
SpriteName: "PORING"
Name: "Poring"
Lv: 1
Hp: 50
Sp: 0
Exp: 2
JExp: 1
AttackRange: 1
Attack: [7, 10]
Def: 0
Mdef: 5
Stats: {
Str: 1
Agi: 1
Vit: 1
Int: 0
Dex: 6
Luk: 30
}
ViewRange: 10
ChaseRange: 12
Size: 1
Race: 3
Element: (1, 1)
Mode: {
CanMove: true
Looter: true
CanAttack: true
}
MoveSpeed: 400
AttackDelay: 1872
AttackMotion: 672
DamageMotion: 480
MvpExp: 0
Drops: {
Jellopy: 7000
Knife_: 100
Sticky_Mucus: 400
Apple: 1000
Empty_Bottle: 1500
Apple: 150
Unripe_Apple: 20
Poring_Card: 1
}
},
Not convinced yet it's better?
It's true that you need to convert your item database to the new format, but we can do it for you!
Go to http://haru.ws/hercules/mobdbconverter/ and paste (or upload) your mob_db2.txt (or even your mob_db.txt if you have custom entries there), pick between renewal or pre-renewal (or upload your item_db if it's customized), press the Convert button, wait a few seconds and you're done! It's already converted for you. Easy, isn't it?
Don't trust us? No, no, we don't need your custom mobs, you can sleep safe... But if you still don't want to paste anything on a website... well, we have provided the source code of the converter script! It's in the 'tools' folder of the Hercules repository. All you need is a Python interpreter, version 2.6 or newer (and if you're running Linux or Mac OS, on either your server or your own computer, it's almost certain that you already have that). All you have to do is run it (example: python tools/mobdbconverter.py pre-re . < db/mob_db2.txt > db/mob_db2.conf), and your item database will be converted in a split second!
What if I was using SQL mob databases?
Well, you're out of luck. It was deprecated long ago and it's being removed. It'll stay available for website/control panel purposes though. An automated converter (much like the db2sql plugin for the item db) will be available soon, and even executed automatically whenever we update the mob db, to keep the sql counterpart in sync!
I have this event mob entry that came with an old script I downloaded...
No worries, you can get it converted. Use the same script (or the provided web page) you'd use to convert an entire mob database, it'll work just fine even for a mob or two!
Special thanks
To Ind, for bringing up the idea, a long time ago.
To Andrei Karas for actually doing it, after picking up this project from the bottom of our forgotten items box.
To me, for putting this at the bottom of the forgotten items box, and burying it with several other things so that it'd stay there until now (sigh)
Links
Merged pull request.
Web-based converter.
The Royal Criatura Academy is the new training area of adventurers in Rune-Midgarts. Novices must register themselves into the academy in order to take advantage of its educational benefits. The academy includes a grand hall, cafeteria, dispensary, a library, and a student lounge.
Changes
2012 Novice Grounds disabled (NPCs to help abandoned characters stuck in the area were added).
Little Porings added to prt_fild08 along with its channel maps.
Channel Warper name changed to official representation ("Channel Warp Official").
Academy script added.
Novice Skills script disabled due to First Aid and Trick Dead being implemented into the Academy script.
Fixed some AEGIS Names on a few items.
Novice start point changed to iz_int.
Why did this take so long?
Some may be asking themselves: "damn, Kisuka, you've had this for over two years, why did it take you so long?". Well, first off, I've been through two jobs in the last year so my life has been pretty crazy in that regard. Things got stable in beginning of 2015, so I started getting back to this script. The other issue of why this script took so long is due to the nature of the script itself.
In my opinion, this is one of the worst localized pieces of content in the history of Ragnarok Online. Each official server differs in how this script is implemented. The differences among official servers:
kRO: Job Teachers warp you to that classes' specific map once you decide to change to that job. iRO: They changed it to the teacher NPC just changes you to the job in Izlude. You never find out where the guild is.
iRO: Added custom NPCs around Izlude that give out free buffs.
kRO: A number of NPCs that give 'Combat Training' in the form of hunting quests. iRO: Removed / Missing them.
kRO / cRO: Cute Pet portion of the academy has misc poring NPCs to add more to the feel of the area during the dialog. iRO: Removed / Missing them.
iRO: Awful engrish translations and placeholder texts used during localization process left in-game.
euRO: Doesn't even have the script.
jRO: No idea, they block non-Japanese IPs.
Due to these differences, a large chunk of the script had to be manually translated due to iRO having stripped out those portions of dialog. I wanted to keep this content as close to kRO as possible so I chose not to remove them / not to copy iRO.
Missing Features
Due to either missing scripts / NPCs on official, no access to official script, or limitations in Hercules the following features are current missing in Criatura Academy:
A number of Quest Bubbles are disabled currently due to certain aspects not implemented yet in Hercules (min / max level, Pre-req quests, stacking).
ConsumeSpecialItem calls disabled due to lack of information / no implementation in Hercules.
A number of complimenting quest NPCs missing due to lack of them in official server (iRO).
Bugs
If you find a bug, please create a Pull Request or a New Issue.