Jump to content

Humble_Bee

Members
  • Content Count

    73
  • Avg. Content Per Day

    0
  • Joined

  • Last visited

Community Reputation

2 Neutral

About Humble_Bee

  • Rank
    Santa Poring

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. I figured it out. I moved the skill being triggered in skill.cpp over to battle.cpp and it got rid of the delay. This thread can be closed.
  2. I have a skill that automatically triggers when I use a normal attack, but the skill is always delayed like a second after the attack hits. Is there a way to make the skill happen the same time as the weapon attack hitting? (this is a ranged weapon and the skill is coded into the source code, not scripted). Thanks!
  3. Just wondering if anyone else has switched their soft defense to a % reduction instead of a flat one? I have, and I like it a lot. I got tired of Sera's Pain Killer making the game easy from 1-100. I also got tired of flat damage reductions not currently scaling well with level, and not knowing what soft defense might do for me in any given fight. Now I see 23% and know how much my butt is getting saved quickly.
  4. A while back I finally found the spot in the code where it gives the timer for when a mob attacks a person who is trying to cast a magic attack. I increased the time, but since I was working on another project, didn't think to thoroughly test it. Now the mobs are responding so slowly that they normally get one-shot before they respond. Anyone know where this is in the code? I'm having trouble finding it again. Thanks! EDIT: This post can be deleted. After running my original copy of rAthena download files, it looks like the behavior is exactly the same. I probably just thought I changed something and didn't. Thanks all!
  5. So they get buffs and then go to a different map? Does this happen when they stay on the same map as the clown and gypsy?
  6. Is your mapserver showing any errors when you use it?
  7. I'm on my phone so might edit later but at least this might be wrong: "BaseClass==Job_Job_Alchemist" What error code is your map server popping up?
  8. I'm using an older version of rAthena. Since mine is buggy as well and I don't see any posts on fixes, this is how I got HPRegenRate to work like RegenPercent is supposed to work: bonus2 bHPRegenRate, readparam(bMaxHP)/100,10000; This regenerates one percent health every 10 seconds.
  9. This is my entry: 4294,Quve_Card,Quve Card,6,20,,10,,,,,,,,128,,,,,{ autobonus "{ bonus2 bRegenPercentHP,-1,5000; bonus2 bAddEff,Eff_Blind,900; }",50,30000,BF_WEAPON,"{ misceffect 255; soundeffect "bathory_die.wav",0;}";},{},{} The error in mapserver keeps saying it is expecting a ; after the " right before the file name for the soundeffect. Obviously the game is reading this as the end of the autobonus section, because a " is needed there too. Has anyone gotten sound effects to work with autobonus that can share what they did?
  10. So I added a couple autobonuses to some cards where they would trigger a buff (like a heal) and do a special effect so players would know that something happened. My problem is that the effects listed in rAthena->rathena->doc->effect_list are not turning off. I still have fireworks popping like ten minutes later. Does anyone know how to put a timer on these or how to get them to stop when a buff ends or an item is unequipped? Thanks if you've figured this out already!
  11. According to this code in skill.cpp, pnuema already doesn't work on land protector (iRO wiki says the same thing): switch (skill_id) { case AL_PNEUMA: //Pneuma doesn't work even if just one cell overlaps with Land Protector if(g_skill_id == SA_LANDPROTECTOR) break; If you want it to disappear on land protector, perhaps try one or more of these: Adding it to the return null list here in skill.cpp (look for the first part of the code, I've added it to the bottom): case WM_SEVERE_RAINSTORM: case SO_WATER_INSIGNIA: case SO_FIRE_INSIGNIA: case SO_WIND_INSIGNIA: case SO_EARTH_INSIGNIA: case AL_PNEUMA: if( map_getcell(src->m, x, y, CELL_CHKLANDPROTECTOR) ) return NULL; Or look for first part of this code in skill.cpp and add pneuma right before the break like I've done: switch (skill_id) { case SA_LANDPROTECTOR: if( unit->group->skill_id == SA_LANDPROTECTOR ) {//Check for offensive Land Protector to delete both. [Skotlex] (*alive) = 0; skill_delunit(unit); return 1; } //It deletes everything except traps and barriers if ((!(skill_get_inf2(unit->group->skill_id)&(INF2_TRAP)) && !(skill_get_inf3(unit->group->skill_id)&(INF3_NOLP))) || unit->group->skill_id == WZ_FIREPILLAR || unit->group->skill_id == GN_HELLS_PLANT) { if (skill_get_unit_flag(unit->group->skill_id)&UF_RANGEDSINGLEUNIT) { if (unit->val2&UF_RANGEDSINGLEUNIT) skill_delunitgroup(unit->group); } else skill_delunit(unit); return 1; } if( unit->group->skill_id == AL_PNEUMA ) { (*alive) = 0; skill_delunit(unit); return 1;} break;
  12. I'm using an older rAthena trunk, but not that old. I'm assuming they will be the same. Look for this code in skill.cpp: case UNT_GOSPEL: if (rnd() % 100 >= 50 + sg->skill_lv * 5 || ss == bl) break; if (battle_check_target(ss, bl, BCT_PARTY) > 0) { // Support Effect only on party, not guild int heal; int i = rnd() % 13; // Positive buff count int time = skill_get_time2(sg->skill_id, sg->skill_lv); //Duration switch (i) { case 0: // Heal 1000~9999 HP heal = rnd() % 9000 + 1000; clif_skill_nodamage(ss, bl, AL_HEAL, heal, 1); status_heal(bl, heal, 0, 0); break; case 1: // End all negative status status_change_clear_buffs(bl, SCCB_DEBUFFS | SCCB_REFRESH); if (tsd) clif_gospel_info(tsd, 0x15); break; case 2: // Immunity to all status sc_start(ss, bl, SC_SCRESIST, 100, 100, time); if (tsd) clif_gospel_info(tsd, 0x16); break; case 3: // MaxHP +100% sc_start(ss, bl, SC_INCMHPRATE, 100, 100, time); if (tsd) clif_gospel_info(tsd, 0x17); break; case 4: // MaxSP +100% sc_start(ss, bl, SC_INCMSPRATE, 100, 100, time); if (tsd) clif_gospel_info(tsd, 0x18); break; case 5: // All stats +20 sc_start(ss, bl, SC_INCALLSTATUS, 100, 20, time); if (tsd) clif_gospel_info(tsd, 0x19); break; case 6: // Level 10 Blessing sc_start(ss, bl, SC_BLESSING, 100, 10, skill_get_time(AL_BLESSING, 10)); break; case 7: // Level 10 Increase AGI sc_start(ss, bl, SC_INCREASEAGI, 100, 10, skill_get_time(AL_INCAGI, 10)); break; case 8: // Enchant weapon with Holy element sc_start(ss, bl, SC_ASPERSIO, 100, 1, time); if (tsd) clif_gospel_info(tsd, 0x1c); break; case 9: // Enchant armor with Holy element sc_start(ss, bl, SC_BENEDICTIO, 100, 1, time); if (tsd) clif_gospel_info(tsd, 0x1d); break; case 10: // DEF +25% sc_start(ss, bl, SC_INCDEFRATE, 100, 25, 10000); //10 seconds if (tsd) clif_gospel_info(tsd, 0x1e); break; case 11: // ATK +100% sc_start(ss, bl, SC_INCATKRATE, 100, 100, time); if (tsd) clif_gospel_info(tsd, 0x1f); break; case 12: // HIT/Flee +50 sc_start(ss, bl, SC_INCHIT, 100, 50, time); sc_start(ss, bl, SC_INCFLEE, 100, 50, time); if (tsd) clif_gospel_info(tsd, 0x20); break; Below, I've changed just a piece of it, change your piece of code in the above section like this and I think it will work just fine: // case 11: // ATK +100% // sc_start(ss, bl, SC_INCATKRATE, 100, 100, time); // if (tsd) clif_gospel_info(tsd, 0x1f); // break; case 11: // HIT/Flee +50 sc_start(ss, bl, SC_INCHIT, 100, 50, time); sc_start(ss, bl, SC_INCFLEE, 100, 50, time); if (tsd) clif_gospel_info(tsd, 0x20); break; Notice that I changed case 12 to case 11. You will need to do this so that there is not an error in the code, because you told the computer to not see the +atk bonus, which was case 11 before.
  13. I haven't tested these, but here are four ideas that might give you something to play with: case [Your Power's Name with no brackets]: status_zap(bl, status->hp/2, 0); break; case [Your Power's Name with no brackets]: status->hp = status->max_hp/2; break; case [Your Power's Name with no brackets]: int64 damage = status->hp - status->max_hp/2; status_zap(bl, damage, 0); break; case [Your Power's Name with no brackets]: int64 damage = status->max_hp / 2; if (damage >= status->hp){ clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return false;} else{ status_zap(bl, damage, 0);}; break; if status->hp doesn't work, you could try sd->battle_status.hp
  14. Anyone know where the piece of code is that says non-elemental damage should get reduced by neutral resistance?
  15. So I noticed that Magnum Break added elemental damage to standard attacks, almost making them dual-element. I want to do something similar where I reduce weapon damage for standard attacks for mobs by half, and then add that half back in in another element- Magnum Break style. I made some headway- I found where the code is that calculates elemental damage for mobs. I even coded it where the mobs can use dual-element attacks. My problem comes in in the damage calculations. When I wear armor that receives 100% damage in both elements, everything is fine. When I wear armor where one element receives 100% damage and the other element receives 50% resistance, it works fine. For example, I have Orc Zombies normally hitting me for 200 damage, even with the dual-attack (half nonelement, half undead). If I wear a poison element armor, my code correctly reduces the damage to 150 (100 nonelement stays the same, undead lowers by 50). My problem appears to come in when one element adds damage (150%) and the other reduces it (50%). The game might be taking the sign of the first element (+ or - / increase or decrease damage) and applying it to the other element as well- (150% and 50% should balance to 100%, but might be becoming 200%), though sometimes the numbers don't seem quite right. Anyone have any clues on this? My code (This is found in the "battle_calc_element_damage" section of battle.cpp): //Elemental attribute fix if(!(nk&NK_NO_ELEFIX)) { //Non-pc physical melee attacks (mob, pet, homun) are "non elemental", they deal 100% to all target elements //However the "non elemental" attacks still get reduced by "Neutral resistance" //Also non-pc units have only a defending element, but can inflict elemental attacks using skills [exneval] if(battle_config.attack_attr_none&src->type){ if(((!skill_id && !right_element) || (skill_id && (element == -1 || !right_element))) && (wd->flag&(BF_SHORT|BF_WEAPON)) == (BF_SHORT|BF_WEAPON)) wd->damage = wd->damage/2; wd->damage += battle_attr_fix(src, target, wd->damage, sstatus->def_ele, tstatus->def_ele, tstatus->ele_lv);}; Since that code isn't working and I've spent hours trying different things to get it to work, I've settled for doing a random roll where it swaps out nonelemental damage and defensive element damage half of the time each. It's not as enjoyable for me, but it will do until I figure out the actual answer: //Elemental attribute fix if(!(nk&NK_NO_ELEFIX)) { //Non-pc physical melee attacks (mob, pet, homun) are "non elemental", they deal 100% to all target elements //However the "non elemental" attacks still get reduced by "Neutral resistance" //Also non-pc units have only a defending element, but can inflict elemental attacks using skills [exneval] if(battle_config.attack_attr_none&src->type){ if(((!skill_id && !right_element) || (skill_id && (element == -1 || !right_element))) && (wd->flag&(BF_SHORT|BF_WEAPON)) == (BF_SHORT|BF_WEAPON)){ if(rnd() % 100 < 50) wd->damage = battle_attr_fix(src, target, wd->damage, sstatus->def_ele, tstatus->def_ele, tstatus->ele_lv); if(rnd() % 100 >= 50) return; }; }; Also, has anyone tested Magnum Break by changing it to Water element and seeing how it fares damage-wise against a Fire element mob? I'd be curious to see if Magnum Break would be buggy if it weren't a pure Fire attack. Thanks for any assistance!
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use and Privacy Policy.