-
Posts
298 -
Joined
-
Last visited
Content Type
Profiles
Forums
Downloads
Jobs Available
Server Database
Third-Party Services
Top Guides
Store
Crowdfunding
Everything posted by Jhedzkie
-
First, you need an updated / compatible server files. Navigate to https://github.com/rathena/rathena/pull/2494 Click the Files Changed tab. Manually modify your files one-by-one based on the changes as shown in the Files Changed tab. Recompile. Those steps worked for me and I am now experimenting with the new refine UI. TIP: It is good practice to have a working copy of your server files on your PC so you can test stuff first before you commit/upload it to your working server. This always worked for me and might work for you as well.
-
Release: ALL monster drop item with Random Option
Jhedzkie replied to nutminemz's topic in Source Releases
How did you figure that out? Did you try on all droppable armor and weapon? -
[Suggestion/Request] Random Option Database
Jhedzkie replied to llchrisll's question in Source Requests
Yep. That's really a problem when you do it via scripting. That's why this proposal is more geared towards modifying the source. I have successfully implemented it with my trunk but I am currently getting issues when using @reloaditemdb and it crashes the map server. Other than that, the way the item is being dropped by mobs with random options based on what I have explained above, works; Including the randomized values. It's following the structure below. // <randopt_groupid>,<rate>,<randopt_id1>,<randopt_value_min1>,<randopt_value_max1>,{<randopt_id2>,<randopt_value_min2>,<randopt_value_max2>,...} I am still looking for that hitch that crashes the map server everytime I @reloaditemdb. -
For a number of times this question has been asked. How do you implement the new cart sprites in pre-renewal mode. Modified said values to be > 90. Tried everything, even resorted to removing the checks for NEW_CARTS just to be really sure. Recompiled countless times. And still nothing happens. Can somebody answer this question once and for all? Thanks. EDIT: As I am experimenting, I tried to change my setup from 99/70 to 255/120 by changing MAX_LEVEL values. And as I tried it out, new carts became available And please, dont tell me I forgot or I do not know how to recompile. I wouldn't be able to set MAX_LEVEL to 255 without recompiling. Alright? . . . So. Is there anywhere else I have to edit to remove the level requirements for NEW_CARTS? Or does this have something to do with the client itself? Please enlighten me. Thanks. EDIT 2: Yep. Can Confirm. I settled with this and just modified job_exp.txt to limit level to 99 while supporting up to 255. With the piece of code above, it still just shows up to 5 carts at level 99. I already did a clean and build (deleting also other build stuff .pdb/.ilk in the trunk folder before doing the compile. It still does nothing. Makes me believe that it has something to do with the client itself. I am using 2015-11-04aRagexe.exe. I am not 100% sure about this but since source should be working without a hitch, it does not. I am ultimately out of options now. Any help would be appreciated.
-
[Suggestion/Request] Random Option Database
Jhedzkie replied to llchrisll's question in Source Requests
Well, that was exactly what I am talking about. Having to have 3 separate files for combinations just for a specific slot is totally inefficient. And taking note of what Nitrous said on one post... The structure of your database should be something like... // <randopt_groupid>,<slot>,<rate>,<randopt_id1>,<randopt_value_min1>,<randopt_value_max1>,{<randopt_id2>,<randopt_value_min2>,<randopt_value_max2>,...} I intentionally removed the <param> field as to have a cleaner implementation, while taking note of the need to have said field in the structure. Thus making your whole file just one line each group. Slot 1 RDMOPTG_ViciousMind_Weapon,1,1,RDMOPT_VAR_STRAMOUNT,1,10,RDMOPT_VAR_AGIAMOUNT,1,10,RDMOPT_VAR_VITAMOUNT,1,10,RDMOPT_VAR_INTAMOUNT,1,10,RDMOPT_VAR_DEXAMOUNT,1,10,RDMOPT_VAR_LUKAMOUNT,1,10,RDMOPT_VAR_ATTPOWER,4,47,RDMOPT_VAR_CRITICALSUCCESSVALUE,10,19,RDMOPT_DAMAGE_CRI_TARGET,1,20,RDMOPT_VAR_PLUSASPDPERCENT,1,5,RDMOPT_DEC_SPELL_CAST_TIME,1,20,RDMOPT_DEC_SPELL_DELAY_TIME,5,20 RDMOPTG_ViciousMind_MWeapon,1,1,RDMOPT_VAR_STRAMOUNT,1,10,RDMOPT_VAR_AGIAMOUNT,1,10,RDMOPT_VAR_VITAMOUNT,1,10,RDMOPT_VAR_INTAMOUNT,1,10,RDMOPT_VAR_DEXAMOUNT,1,10,RDMOPT_VAR_LUKAMOUNT,1,10,RDMOPT_VAR_ATTMPOWER,4,47,RDMOPT_DEC_SPELL_CAST_TIME,1,20,RDMOPT_DEC_SPELL_DELAY_TIME,5,20 Slot 2 RDMOPTG_ViciousMind_Weapon,2,1,RDMOPT_VAR_STRAMOUNT,1,10,RDMOPT_VAR_AGIAMOUNT,1,10,RDMOPT_VAR_VITAMOUNT,1,10,RDMOPT_VAR_INTAMOUNT,1,10,RDMOPT_VAR_DEXAMOUNT,1,10,RDMOPT_VAR_LUKAMOUNT,1,10,RDMOPT_VAR_ATTPOWER,4,47,RDMOPT_VAR_CRITICALSUCCESSVALUE,10,19,RDMOPT_DAMAGE_CRI_TARGET,1,20,RDMOPT_VAR_PLUSASPDPERCENT,1,5,RDMOPT_DEC_SPELL_CAST_TIME,1,20,RDMOPT_DEC_SPELL_DELAY_TIME,5,20 RDMOPTG_ViciousMind_MWeapon,2,1,RDMOPT_VAR_STRAMOUNT,1,10,RDMOPT_VAR_AGIAMOUNT,1,10,RDMOPT_VAR_VITAMOUNT,1,10,RDMOPT_VAR_INTAMOUNT,1,10,RDMOPT_VAR_DEXAMOUNT,1,10,RDMOPT_VAR_LUKAMOUNT,1,10,RDMOPT_VAR_ATTMPOWER,4,47,RDMOPT_DEC_SPELL_CAST_TIME,1,20,RDMOPT_DEC_SPELL_DELAY_TIME,5,20 ....and so on. While this is not really to my taste as I have my own implementation of this randomoption feature, I have tried and tested this structure and I have no problems so far. I think the devs wouldn't mind looking at this solution and come up with a more robust way for us to define random options moving forward. -
Sorry sa bump pero para sa kaalaman lang ng mga taropa naten jan. Login ka lang sa default gateway mo 192.168.1.1 tapos go to this link. http://192.168.1.1/application/port_forwarding.asp Since alam mo na yong term, assume ko na lang na marunong ka na sa part na to. Good luck.
-
[Suggestion/Request] Random Option Database
Jhedzkie replied to llchrisll's question in Source Requests
Why is that? Wouldn't adding specific random option group per slot take a lot more lines to cover for all items you want to have random options? I am currently using my own implementation based on the existing item_random_option_group db file and this is how it looks like. It still follows the same structure,but the point is that it does not define what will be the random options available to that certain type of item, instead, it defines what are the available random options that item type can have. // <randopt_groupid>,<rate>,<randopt_id1>,<randopt_value1>,<randopt_param1>{,<randopt_id2>,<randopt_value2>,<randopt_param2>,<randopt_id3>,<randopt_value3>,<randopt_param3>,<randopt_id4>,<randopt_value4>,<randopt_param4>,<randopt_id5>,<randopt_value5>,<randopt_param5>} and so on and so forth. just how many do you like this line to have. lmfao. See I only had up to line 196 and i covered all of the equip types dagger to 2-h staves and armor to accessories each with different set of random options. and in my case, I only made small changes to the source so that the group that will be randomized will not reflect as is/whereis, instead, will just randomly pick which number of options (1-5) will reflect to the equip. For example, a Clip[1]. Using my random option group for accessory. RDMOPTG_ACCESSORY,25,RDMOPT_VAR_STRAMOUNT, 5,0,RDMOPT_VAR_AGIAMOUNT, 5,0,RDMOPT_VAR_VITAMOUNT, 5,0,RDMOPT_VAR_INTAMOUNT, 5,0,RDMOPT_VAR_DEXAMOUNT, 5,0,RDMOPT_VAR_LUKAMOUNT, 5,0,RDMOPT_VAR_HPACCELERATION, 5,0,RDMOPT_VAR_SPACCELERATION, 5,0,RDMOPT_VAR_PLUSASPD,1,0,RDMOPT_VAR_PLUSASPDPERCENT, 5,0,RDMOPT_VAR_CRITICALSUCCESSVALUE, 2,0,RDMOPT_HEAL_VALUE, 2,0,RDMOPT_HEAL_MODIFY_PERCENT, 2,0,RDMOPT_DEC_SPELL_CAST_TIME, 2,0,RDMOPT_DEC_SPELL_DELAY_TIME, 2,0 RDMOPTG_ACCESSORY,20,RDMOPT_VAR_STRAMOUNT, 8,0,RDMOPT_VAR_AGIAMOUNT, 8,0,RDMOPT_VAR_VITAMOUNT, 8,0,RDMOPT_VAR_INTAMOUNT, 8,0,RDMOPT_VAR_DEXAMOUNT, 8,0,RDMOPT_VAR_LUKAMOUNT, 8,0,RDMOPT_VAR_HPACCELERATION, 8,0,RDMOPT_VAR_SPACCELERATION, 8,0,RDMOPT_VAR_PLUSASPD,2,0,RDMOPT_VAR_PLUSASPDPERCENT, 8,0,RDMOPT_VAR_CRITICALSUCCESSVALUE, 4,0,RDMOPT_HEAL_VALUE, 4,0,RDMOPT_HEAL_MODIFY_PERCENT, 4,0,RDMOPT_DEC_SPELL_CAST_TIME, 5,0,RDMOPT_DEC_SPELL_DELAY_TIME, 5,0 RDMOPTG_ACCESSORY,10,RDMOPT_VAR_STRAMOUNT,12,0,RDMOPT_VAR_AGIAMOUNT,12,0,RDMOPT_VAR_VITAMOUNT,12,0,RDMOPT_VAR_INTAMOUNT,12,0,RDMOPT_VAR_DEXAMOUNT,12,0,RDMOPT_VAR_LUKAMOUNT,12,0,RDMOPT_VAR_HPACCELERATION,12,0,RDMOPT_VAR_SPACCELERATION,12,0,RDMOPT_VAR_PLUSASPD,3,0,RDMOPT_VAR_PLUSASPDPERCENT,12,0,RDMOPT_VAR_CRITICALSUCCESSVALUE, 7,0,RDMOPT_HEAL_VALUE, 7,0,RDMOPT_HEAL_MODIFY_PERCENT, 7,0,RDMOPT_DEC_SPELL_CAST_TIME,10,0,RDMOPT_DEC_SPELL_DELAY_TIME,10,0 RDMOPTG_ACCESSORY, 5,RDMOPT_VAR_STRAMOUNT,15,0,RDMOPT_VAR_AGIAMOUNT,15,0,RDMOPT_VAR_VITAMOUNT,15,0,RDMOPT_VAR_INTAMOUNT,15,0,RDMOPT_VAR_DEXAMOUNT,15,0,RDMOPT_VAR_LUKAMOUNT,15,0,RDMOPT_VAR_HPACCELERATION,15,0,RDMOPT_VAR_SPACCELERATION,15,0,RDMOPT_VAR_PLUSASPD,4,0,RDMOPT_VAR_PLUSASPDPERCENT,15,0,RDMOPT_VAR_CRITICALSUCCESSVALUE,10,0,RDMOPT_HEAL_VALUE,10,0,RDMOPT_HEAL_MODIFY_PERCENT,10,0,RDMOPT_DEC_SPELL_CAST_TIME,15,0,RDMOPT_DEC_SPELL_DELAY_TIME,15,0 RDMOPTG_ACCESSORY, 2,RDMOPT_VAR_STRAMOUNT,18,0,RDMOPT_VAR_AGIAMOUNT,18,0,RDMOPT_VAR_VITAMOUNT,18,0,RDMOPT_VAR_INTAMOUNT,18,0,RDMOPT_VAR_DEXAMOUNT,18,0,RDMOPT_VAR_LUKAMOUNT,18,0,RDMOPT_VAR_HPACCELERATION,18,0,RDMOPT_VAR_SPACCELERATION,18,0,RDMOPT_VAR_PLUSASPD,5,0,RDMOPT_VAR_PLUSASPDPERCENT,18,0,RDMOPT_VAR_CRITICALSUCCESSVALUE,12,0,RDMOPT_HEAL_VALUE,12,0,RDMOPT_HEAL_MODIFY_PERCENT,12,0,RDMOPT_DEC_SPELL_CAST_TIME,20,0,RDMOPT_DEC_SPELL_DELAY_TIME,20,0 RDMOPTG_ACCESSORY, 1,RDMOPT_VAR_STRAMOUNT,25,0,RDMOPT_VAR_AGIAMOUNT,25,0,RDMOPT_VAR_VITAMOUNT,25,0,RDMOPT_VAR_INTAMOUNT,25,0,RDMOPT_VAR_DEXAMOUNT,25,0,RDMOPT_VAR_LUKAMOUNT,25,0,RDMOPT_VAR_HPACCELERATION,25,0,RDMOPT_VAR_SPACCELERATION,25,0,RDMOPT_VAR_PLUSASPD,7,0,RDMOPT_VAR_PLUSASPDPERCENT,25,0,RDMOPT_VAR_CRITICALSUCCESSVALUE,15,0,RDMOPT_HEAL_VALUE,15,0,RDMOPT_HEAL_MODIFY_PERCENT,15,0,RDMOPT_DEC_SPELL_CAST_TIME,25,0,RDMOPT_DEC_SPELL_DELAY_TIME,25,0 So it has, STR, AGI, VIT, INT, DEX, LUK, HP Regen, SP Regen, ASPD, ASPDRate, CritRate, Healing, HealingRate, Reduce Cast, Reduce Delay So the rate is based on the 2nd value in the group definition right? So saying that you got the 25% so you got the first line. From there, my code is to randomize how many slots or how many random options will be awarded to the item. Lets say, it randomized to 3. It will then lookup the rest of the line and randomly pick which 3 would reflect to the item. For example, it randomed INT, SP Acceleration, and Healing Rate. It will then reflect to the Clip[1] INT+5, Increase SP Regen by 5%, and Healing Power +2%. Well, if you really want to modify the current db structure, the best way to go is to just add min and max value so that it can be randomed source side. make the structure like // <randopt_groupid>,<rate>,<randopt_id1>,<randopt_value_min1>,<randopt_value_max1>,<randopt_param1>{,<randopt_id2>,<randopt_value_min2>,<randopt_value_max2>,...} That should solve your problem, right? I don't know if I understood it well, but this is just my take on it. -
Does it need special nemo patch or something? I saw the part in mmo.h that can change the max zeny in bank but it broke everything. Am just wondering if it can be done in the source alone, and if so, is there anything else that needs to be updated other than the one value in mmo.h. Thanks.
-
Whitesmith Weapon Refine + Armor Refine
Jhedzkie replied to FutureServer's question in Source Requests
Easiest logical solution here is on skill.cpp Find if(item->nameid > 0 && ditem->type == IT_WEAPON) { and replace with if(item->nameid > 0 && (ditem->type == IT_WEAPON || ditem->type == IT_ARMOR)) { Will test and update later when I get back from office. -
Release: ALL monster drop item with Random Option
Jhedzkie replied to nutminemz's topic in Source Releases
I currently have my own implementation but its too dirty of a code. looking forward for your release. -
i understand that src is being moved from c to cpp. am just curious about the difference between having c and having cpp source.
-
Hi rA. How to I download a specific commit (old one) from github? Thanks.
-
obtain a copy of eAthena svn and try looking there?
-
You do not want to get MVP item after killing MVP? Just remove MVP Item in mob_db.txt then.
-
mostly it doesn't work on array as array initializer requires constant value.
-
Any chance to make the CArt termination as an aoe damage
Jhedzkie replied to louigui0224's question in Source Requests
check your skill_db.txt and find cart termination skill and modify the 6th field with the flag 0x02 or 0x06 if you want to splash and divide the damage to the affected targets. -
clean and build lagi. wag rebuild.
-
@NakedWolf do you have an untouched pre-renewal itemInfo.lua?
-
I want to modify my server to allow creating weapons with slot when no element or no star crumbs included. How can I do this?
-
Magnificat Skill Modification Adds % MaxHP
Jhedzkie replied to dubstep's question in Source Requests
find in status.c static unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp) and after int rate = 100; add this code below. int myrate = 20; // 100 = 100% if (sc->data[SC_MAGNIFICAT]) maxhp += maxhp * myrate / 100; so that your code would look like /** * Calculates a max HP based on status changes * Values can either be percentages or fixed, based on how equations are formulated * @param bl: Object's block_list data * @param maxhp: Object's current max HP * @return modified maxhp */ static unsigned int status_calc_maxhp(struct block_list *bl, uint64 maxhp) { int rate = 100; int myrate = 20; // 100 = 100% if (sc->data[SC_MAGNIFICAT]) maxhp += maxhp * myrate / 100; maxhp += status_get_hpbonus(bl,STATUS_BONUS_FIX); if ((rate += status_get_hpbonus(bl,STATUS_BONUS_RATE)) != 100) maxhp = maxhp * rate / 100; return (unsigned int)cap_value(maxhp,1,UINT_MAX); } Recompile. Edit: This is un-tested code but should probably work. Please provide feedback if anything fails. -
script_constants did the trick. thanks a bunch.
-
I created a custom status but its not being recognized. I am not sure what I am doing wrong. The general idea is that I want to create a custom status that is permanent Like OW50, OW90, Pushcart, Riding, etc. Simple. Defined SC in status.h Added to permanent effects in sc_start. And recompiled. Created an NPC to check if status is active. Tried to display ID but says 0. It comes after SC_ARMOR_ELEMENT_WIND so I assumed its 672. Seems like its not. And yeah, I did tried to index it manually and set it to 1001 earlier in status.h. Still doesn't work. I am using a consumable item as trigger and script is pretty basic, 21005,StatusScroll,Scroll of Status Update,2,100,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start 672,1,0; },{},{} Pretty much did what I can. What could I be doing wrong?
-
Patulong naman po. Mejo madaming katanungan :D
Jhedzkie replied to jjulian's topic in Dito mag request ng Script at Database
totally a newbie? i suggest to try learn scripting first. it's pointless to explain how to modify stuff unless you know the very basics. and to answer your question how to change the NPC sprite, it's the last digit of the script header, before the opening braces. rate? the actual rate is the %s right? max levels can be modified on db\<re/pre-re>\job_exp.txt GM Suit? check your client folder. clientinfo.xml. make sure your account id is included in the <admin></admin> tag. -
I want to display Random Options not only on Equips but also on Usable and ETC items. Like Red Potion with +10% Healing Power or a Jellopy with +10 STR. I don't need for the random option script to work, I just want it to be displayed for all items. I am looking around clif.c for some clues or checks that prevents it from being displayed on usables and etc but am unable to find. Can somebody point me to the right direction? Thanks.
-
I would like to ask how can I create a monster/mob npc that kills nearby monsters? I would really appreciate any help. Thanks.