upload version 1.1
https://drive.google.com/file/d/0B2BM920mmHQganoxY0hTUktkUzQ/view
please make do with the google drive, because I accidentally upload the paste without log in
- added Charm_Stack: true flag, credit to Litro and Kong for the idea
- however it always run the status_calc_pc even if the player still having the item in the inventory
and I'm going to watch star wars on the theater now
one of my customer sent me Euphy's Event Manager script
and asked me to write -> join the event simply using bindatcmd @joinevent
means, yeah, all 7 events in that script, use 1 command @joinevent will warp you to the map that event is on
Add -> there is also a command @eventlist to tell which event going to have next, since the time is configure by GMs
now that the script is in my hand, (of course I can't distribute it, but I can always reproduce it)
I have to say that idea is very well made
but I'm not satisfy to just limit to 7 events, I want to integrate ALL event scripts across eAthena/rAthena/Hercules forums so everyone help me search out ALL event script you can find, and post in this topic
oh and, of course this is a free release
I always thinking of some ways to pull rathena member to use hercules
this project should be enough to attract some of them enough, I guess ?
since most of the scripts I write will be hercules only script commands
1.1
- fix the bug mentioned above
- change all stuffs that I can find into constants
- fix a rare bug that if player brings in a slave monster, the monster get killed whenever the emperium spawn/dead
- add a plugin this time
yeah confirm, I use priest to cast lex aeterna on poring, no effect shown
the problem is inside 'status_change_start_postAura' function
https://github.com/HerculesWS/Hercules/blob/master/src/map/status.c#L6888
return 0 means no effect applied
return 1 means successfully applied
but this auraset has a code here
if (bl->type != BL_PC){ return 0; }which even if the pet/homun/monster/elementals should have shown an effect, but this function forcefully return 0
I believe this function should replaced with 'status_change_start_preAura'
and if (bl->type == BL_PC), and detected hidden status, hookStop()
There is already a Emulator for Tree of Savior , open source : https://github.com/r1emu/R1EMU
Tutorial: http://www.r1emu.net/index.php?threads/windows-how-to-set-up-r1emu.14/
Let's check my latest creation : Little Jump in Ragnarok !
Check it now :
In this version you only can jump with Inser on the keyboard (usually used for sitting), that's why I don't release this now. I dream that one day I can put it on space or another one keyboard button.
Can I get some review?
Another feature to bring to RO some fresh air (and to looks like more like an actual mmorpg).
We are all accustomed to play some characters with no voices but what if they can now shouting when dying, attacking, receiving damage and even shouting some skill's names?
I called it "Voices Mod by Vykimo", take a look at this video demo :
Feel free to express your feeling about this very very unusual thing in Ragnarok.
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.
Here a Compiliation of basic customs Hairs from Ragnarok Online, This include the 29 oficial heads. All of these heads aren't made be me, with exception of #68, #69, #70 and #71 male heads and female #70 and #71 heads, this pack cames from internet and a bit of search, the authors put the credit on Spr files... But who diferent on that pack? - Repeated Heads Removed; - Missaligned Heads Fixed; (like #48 and #61) - 6 Unique Heads.
- Now this pack is mixed with smokim pack (from cronus)
- No Female Heads in Male pack, with exception of classic #43
I'm Still Working On this Pack to change female heads into male heads (like #43, #55, #56 etc - Male Hairstyles), to make all heads in Oficial Collors (1~7 to work with them), To Increase this into 100 Hairstyles Pack. Preview:
Hello Community, I am feeling like, there's many plugin on forum, but not been actively used, due to out-of-date plugin
I have updated Shikazu's Plugin first(as it was requested on the thread from 25th April), maybe Shikazu busy on his rl. Also I have included My Plugins there.
I would like to add more plugins there(which are not updated on hercules forum <- please suggest if you find some outdated plugin and want me to update it )
List of Plugins and Owners:
https://github.com/dastgir/HPM-Plugins/blob/master/README.md
Repository: https://github.com/dastgir/HPM-Plugins
Hi @@Dastgir, I have a suggestion for @market is it possible for the message (when you double click the pub) to appear or become a private message instead of 'dispbottom' type of message? So that a player who tries to enter the pub will instead get a private message from the player and can easily reply to it instead of typing the name of the player
Hello Hercules
im Realeasing a Full Client Package for the 2014-02-05 Ragexe_Full_Client.rar
This Package Contains:
- Up to Date KRO Client ( updated till 2014-02-05 ) Can be found in Client Folder
Contains: Latest Translation Files, Working AI Folders , YourRO.grf with all importan Files , and a prediffed YourRO.exe . This exe is for testing . you can start the client whitout a error and ingame all is tranlated.
Data Folder contains a clientinfo.xml setted to localhost . but best is to repack the YourRO.grf with your custom clientinfo.
All files inside this YourRO.grf are in a seperate folder called YourRO.grf Data Stuff
- Tools Folder what contains all Importan files/Tools to create a Client.
contains: ( Latest xDiffPatcher, Latest Nemo Patcher SVN , unbollox , ResHack , Mapcache Maker, grfbuilder , Undiffed Exe + Diffpatch)
- YourRO.grf Data Stuff Folder , where all importan Client files are in , Rdy to use lubs and translation ( All you need to get this client to work)
- I added a Profile for the Nemo patcher with the name YourRO.log , this profile contains all important diffs to get this exe running. How to use ? , just open Nemo patcher Load the exe and click on "Load Patches" , after that just click on "Load Profile" and select the YourRO.log file inside the Nemo folder , and he will select all importan DIffs for you.
Known BUG
the pre diffed exe inside the package is pre hexed from me , this mean it got some weird stuff.
just download this exe and rediff the exe with NEMO
Hoping it does not crash now .
New version added v1.4a
Tested several method, and doesn't crash for me
Tested methods:
1) having status with/without hide
2) warping with/without hide
3) changing auras with/without hide and having/not having statuses.