Jump to content

Playtester

Developer
  • Posts

    905
  • Joined

  • Last visited

  • Days Won

    26

Everything posted by Playtester

  1. Can't really make it work for ranged, buuut... (skill.c) case MG_SAFETYWALL: #ifdef RENEWAL /** * According to data provided in RE, SW life is equal to 3 times caster's health **/ val2 = status_get_max_hp(src) * 3; #else val2 = skill_lv+1; #endif break; Here you can set how many attacks it should block.
  2. We intentionally added those columns so server owners can add their own custom drops to them. Also we wanted to have a separate drop slot for cards whereas officially the 8th slot can also contain non-cards. Which means we would need at least 9 slots anyway. I remember that back then, the only problem we had was that Steal actually could only steal items in Slot 1-7. So any items and all cards on Slot 8 couldn't actually be stolen on officials. Not sure how it is now, though.
  3. Could be because your database structure is outdated. If you know when you last updated your database, you can use these upgrade scripts to update it: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/sql-files/upgrades/ Other than that, no idea why.
  4. Playtester

    Weapons

    You can grant a skill with putting something like this in the item bonus: skill "MG_LIGHTNINGBOLT",1; However, you can't use skills that require a certain weapon to be used. If you want to change that, you will need to mess with the skill_require.db.txt: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/db/re/skill_require_db.txt
  5. You can use old eAthena revisions indeed. Sometimes a columns has changed, was added or removed. However, that's nothing a good spreadsheet program can't fix.
  6. 645,Center_Potion,Concentration Potion,2,800,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ASPDPOTION0,1800000,0; },{},{} 656,Awakening_Potion,Awakening Potion,2,1500,,150,,,,,0xFFF7FEEF,7,2,,,40,,,{ sc_start SC_ASPDPOTION1,1800000,0; },{},{} 657,Berserk_Potion,Berserk Potion,2,3000,,200,,,,,0x01E646A6,7,2,,,85,,,{ sc_start SC_ASPDPOTION2,1800000,0; },{},{} //ASPD in RE they give a fixed +4/+6/+9 ASPD 645,Center_Potion,Concentration Potion,2,800,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ sc_start SC_ASPDPOTION0,1800000,4; },{},{} 656,Awakening_Potion,Awakening Potion,2,1500,,150,,,,,0xFFF7FEEF,7,2,,,40,,,{ sc_start SC_ASPDPOTION1,1800000,6; },{},{} 657,Berserk_Potion,Berserk Potion,2,3000,,200,,,,,0x01E646A6,7,2,,,85,,,{ sc_start SC_ASPDPOTION2,1800000,9; },{},{} In pre-renewal, POTION0 gives +10% ASPD (i.e. -10% delay between attacks), POTION1 gives +15% ASPD and POTION2 gives +20% ASPD. In renewal it gives as much ASPD as specified in the parameter between the duration. If you use a renewal compile and the potions don't add any ASPD, it could be that you are using a pre-renewal item db.
  7. Number of hits is handled in the skill_db.txt: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/db/pre-re/skill_db.txt 469,9,8,1,-2,0,0,10,1:2:3:4:5:6:7:8:9:10,yes,0,0,0,magic,0, SL_SMA,Esma But damage of each hit is handled in battle.c: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/src/map/battle.c case SL_SMA: skillratio += -60 + status_get_lv(src); //Base damage is 40% + lv% break;
  8. All damage is handled in battle.c, if you want to reduce the damage of a specific skill you'd usually just search for the skill constant to find the damage formula and then modify that.
  9. Yes, the quoted source code only is for pre-renewal.
  10. val3 = -25+50*val1; Means: Level 1 - 25% more damage Level 2 - 75% more damage Level 3 - 125% more damage Level 4 - 175% more damage Level 5 - 225% more damage (3.25x normal damage) My suggestion: val3 = 25*(val1+1); Means: Level 1 - 50% more damage Level 2 - 75% more damage Level 3 - 100% more damage Level 4 - 125% more damage Level 5 - 150% more damage (2.5x normal damage)
  11. Yeah, that's why you change: #ifndef RENEWAL_EDP val3 = 50*(val1+1); //Damage increase (+50 +50*lv%) #endif To: #ifndef RENEWAL_EDP val3 = -25+50*val1; //Damage increase (-25+50*level) #endif But that's a kinda strange balance. Don't you want to half the damage increase? In that case it would be: #ifndef RENEWAL_EDP val3 = 25*(val1+1); //Damage increase (+25 +25*lv%) #endif
  12. "100,100" would be mean between 100 and 100 which is 0%. If you do not change the thing Emistry did, then you can achieve 100% success by doing this: case 1: callfunc "Func_Socket",1460,1461,0,101,200,1010,10; An easier way is to just change the if to something that is always true like "if(1)" or "if(true)" (not sure if that works in scripts, though).
  13. Check these lines: case 1: callfunc "Func_Socket",1460,1461,40,66,200,1010,10; Basically you roll a 100-sided dice and if the number is between those two numbers (excluding), it is successful. 1460 in this case is the item required and 1461 is the item you will get. If you want to increase the chance for example change it to: case 1: callfunc "Func_Socket",1460,1461,35,71,200,1010,10;
  14. That code is the correct one. "ifndef" means "if not defined".
  15. Always a different person? Anyway, here you go: http://irowiki.org/classic/ATK#Primary_Stats
  16. I can't seem to get this patcher to run, I'm using vista, but I already copied RO into my documents folder as well as run it in admin mode. It creates a patcher process but I don't see anything visible (no patcher window at all). Any idea what the problem can be?
  17. I think it depends on if you set it to pre-renewal or leave it at renewal. By default it should read from renewal (re).
  18. The damage of earthquake is the divided by the number of players hit by the skill. If there are no players hit by it, there is a division by 0. It's in trunk/src/map/battle.c (line 4157) if (skill_id == NPC_EARTHQUAKE) { //Adds atk2 to the damage, should be influenced by number of hits and skill-ratio, but not mdef reductions. [Skotlex] //Also divide the extra bonuses from atk2 based on the number in range [Kevin] if(mflag>0) ad.damage+= (sstatus->rhw.atk2*skillratio/100)/mflag; else ShowError("Zero range by %d:%s, divide per 0 avoided!\n", skill_id, skill_get_name(skill_id)); }
  19. That's a difference between renewal and pre-renewal. That the damage was multiplied was a bug that got fixed with the renewal update. As compensation they increased the damage of claymore trap on renewal, however: http://irowiki.org/wiki/Claymore_Trap
  20. Maybe that's just me personally, but I'd just modify the mob_db.txt (or rather add copies of the monsters to the mob_db2.txt) and increase the base drop rate accordingly. For example I put the drop rate for boss cards to 500x, so they will drop to 5% by default. Then I update MVPs to have a base drop rate of 0.02% instead of 0.01% and then update minibosses to have a base drop rate of 0.03%. If you want it automatically calculated you'd need to do modifications to the source code. Not sure how familiar you are with C++, but you could find the part in mob.c that reads the rates from the config and where it reads the rate from the boss card config you make an adjustment based on the type or ID range of the monster.
  21. On renewal, it's normal that your job level increases faster than your base level. On pre-renewal it's not.
  22. Playtester

    mob db

    Well first of all you need to add the monsters to your database files in the db/pre-re folder. The spawn file you can find here: npc/pre-re/mobs/dungeons/lhz_dun.txt
  23. What rates have you set it to? Keep in mind that by default a hero can only get ~100% exp per kill.
  24. Well not familiar with tools myself, but getting the correct code is fairly easy, all jobs usually looks like this: 0xFFFFFFFF,7 Now you just gotta check the file in the documentation which is here: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk/doc/item_db.txt High Wizard only (wizard+trans) would be: 0x00000200,2 Paladin only (Crusader+trans) would be: 0x00004000,2 You can also combine the classes by adding them together, for example High Wizard and Paladin would be: 0x00004200,2
  25. It would be great if you could release a converter. If you need help on how to convert each column, I can help with that. Not everything is trivial. Mode on monster for example needs to consider boss mode and race. And the skills need to consider if an MVP is casting them or not (several level 10 skills will be stronger if an MVP casts them which is reflected in rAthena by giving it a higher skill level). Also the "onspawn" file needs to be considered as those aren't actual skills on Aegis. Oh and if you convert newer G_ mobs, be careful because they have no delays at all (check G_BANASPATY), I was thinking that maybe summoned slaves do not only take over walking speed of the summoner but also attack delays? At least on official servers they don't attack with unlimited speed...
×
×
  • Create New...