schwierig
Members-
Content Count
11 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Downloads
Staff Applications
Calendar
Everything posted by schwierig
-
Look at this line in skill.c if( rnd() % 100 > skill_lv * 8 || (dstmd && ((dstmd->guardian_data && dstmd->class_ == MOBID_EMPERIUM) || mob_is_battleground(dstmd))) ) There the fail chance is being evaluated, in this case a percent chance of skill_lv*8 and a random. Change it to your needs
-
You have a packet_db? Hercules doesn't actually have a packet_db file.
-
[Request] Compiled Hercules
schwierig replied to Archeus Honour's question in General Server Support
Ever searched for yourself? http://herc.ws/board/files/category/6-server-resources/ -
What packet version are you using for your client and what packet version is defined in your mmo.h?
-
The EXP rate shouldn't be changed to setup your server. Can you post your "conf/battle/exp.conf" ?
-
How to add items in Cash shop In game
schwierig replied to Legendary's question in General Server Support
Why aren't you just reading the thread? ITEM_ID:PRICEGrape:100 -
Simple modification for Priest. I am using the Shield Reflect Statuschange from the Crusader and add it as an additional status on the Priest when the SL is cast. Though I can't make it reflect exactly 30% with that method, since it is using this table: http://ratemyserver.net/index.php?sk_name=Reflect+Shield&page=skill_db&sk_search=Search I could make a switch for the status effect itself, but I think that's a bit overkill considering on level 7 the difference is only 1%. In skill.c search for: if (skill_id == SL_SUPERNOVICE && dstsd && dstsd->die_counter && !(rnd()%100)) { //Erase death count 1% of the casts dstsd->die_counter = 0; pc_setglobalreg(dstsd,"PC_DIE_COUNTER", 0); clif->specialeffect(bl, 0x152, AREA); //SC_SOULLINK invokes status_calc_pc for us. } and place this after that: if (skill_id == SL_PRIEST) { clif->skill_nodamage(src,bl,skill_id,skill_lv, sc_start4(bl,SC_REFLECTSHIELD,100,7,skill_id,0,0,skill->get_time(skill_id,skill_lv)));} I have no idea how the others work. I don't even know if the HP modification is possible. Though I will take a look into the Knight issue. Everything else I can't help you with at this point.
-
It's not that much of a difference if you got the variables in SQL or in your code. I would even say SQL is way better since you can reuse everything. Though an official map database would be the best option. I read about this being developed on rA but I have no idea if there is something similiar going on in Hercules.
-
Nice! Would be so much easier with all maps in the SQL tables though :/
-
The very easy ones: 2.Alchemist - Acid Terror Damage + 100% (I guess you want to double the damage here) search (battle.c): case AM_ACIDTERROR: skillratio += 40 * skill_lv; break; replace with: case AM_ACIDTERROR: skillratio += 40 * skill_lv; if (sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_ALCHEMIST) skillratio *= 2; break; 5.Crusader - Shield-Chain damage by 200% (I guess you want to tripple the damage?) search (battle.c): case PA_SHIELDCHAIN: skillratio += 30 * skill_lv; break; replace with: case PA_SHIELDCHAIN: skillratio += 30 * skill_lv; if (sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_CRUSADER) skillratio *= 3; break; 8.Rogue - You can use Single Strip through Full Chemical Protection by consumin Glistening Coat(Working only when the target has FCP or Full Chemical Protection), Increase Double Strafe damage by 150% - Strip: http://rathena.org/board/topic/87197-single-strip-bypass/ - DS Not sure if this works (no time to try) search (battle.c): case AC_DOUBLE:case MA_DOUBLE: skillratio += 10 * (skill_lv-1); break; replace with: case AC_DOUBLE:case MA_DOUBLE: skillratio += 10 * (skill_lv-1); if (sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_ROGUE) skillratio *= 1.5; break; 9.Hunter - It gives 15% Chance of auto casting Falcon Assault when attacking. search (skill.c): // Automatic trigger of Blitz Beat if (pc_isfalcon(sd) && sd->status.weapon == W_BOW && (temp=pc->checkskill(sd,HT_BLITZBEAT))>0 && rnd()%1000 <= sstatus->luk*3 ) { rate = sd->status.job_level / 10 + 1; skill->castend_damage_id(src,bl,HT_BLITZBEAT,(temp<rate)?temp:rate,tick,SD_LEVEL); } place after that: if(pc_isfalcon(sd) && sd->status.weapon == W_BOW && sc && sc->data[SC_SOULLINK] && sc->data[SC_SOULLINK]->val2 == SL_HUNTER) { skill->castend_damage_id(src,bl,SN_FALCONASSAULT,temp,tick,0); } Looking up the other ones and will edit later I guess.
-
Fetching before pulling is always a good idea. So people won't get confused when they use "git status" and get a message "Your branch is in front of origin master by 3 commits"