Jump to content

Playtester

Developer
  • Posts

    818
  • Joined

  • Last visited

  • Days Won

    22

Posts posted by Playtester

  1. "ifndef" stands for "if NOT defined", so that actually means this code part is for pre-renewal only. Otherwise I wouldn't have quoted it. :-)

    200 = 20%

    val1 is the skil level

     

    Theoretically you could check for weapon type equipped and set val2 to a different value depending on that, but it will probably cause the issue that someone could equip a two-handed spear, then cast the skill and then equip a one-handed spear to still get a larger boost. Anything beyond that might be a bit more work to code so I can't do it for you with my limited time.

  2. You can define the boost of SPEARQUICKEN in status.c for pre-renewal:

    #ifndef RENEWAL_ASPD
    		case SC_SPEARQUICKEN:
    			val2 = 200+10*val1;
    			break;
    #endif

    There's no easy way to make it work differently depending on weapon type, though.

  3. If you want to limit the total bonus you could do that in pc.c:

    	case SP_SUBRACE: // bonus2 bSubRace,r,x;
    		PC_BONUS_CHK_RACE(type2,SP_SUBRACE);
    		if(sd->state.lr_flag != 2)
    			sd->subrace[type2]+=val;
    break;

    For example:

    	case SP_SUBRACE: // bonus2 bSubRace,r,x;
    		PC_BONUS_CHK_RACE(type2,SP_SUBRACE);
    		if(sd->state.lr_flag != 2) {
    			sd->subrace[type2]+=val;
    			if(sd->subrace[type2] > 90)
    				sd->subrace[type2] = 90;
    		}
    break;

     

    • Upvote 3
  4. Hmm, I think easiest would be to go to status.c, find function status_calc_matk and change:

    cap_value(matk,0,USHRT_MAX);

    To:

    cap_value(matk,0,10000);

    (It appears twice in the function and both parts need to be modified.)

    • Upvote 1
  5. Hmm, I'm not sure what trigger the small effect, it's either the icon or the option. The option however is the same as for overthrust, so I wonder how it can diffentiate the two.

    The only thing I found in status.c was this:

    		if( type == SC_SWOO )
    			opt_flag = 8;
    		else
    			opt_flag = 0;

    Maybe try to change it so that it always sets opt_flag to 0.

  6. That database is heavily messed up.

    1,2,3,4,5,6

    Someone replaced the official values with 1, 2, 3, 4, 5, 6. :P

    // ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script }
    

    The cost of the weapon is 1z, but they sell for 2z. They only weight 0.3. They give only 4 ATK. They give 5 DEF. And they have a range of 6.

    Get the official database here:

    https://raw.githubusercontent.com/rathena/rathena/master/db/pre-re/item_db.txt

  7. exp.conf
    // Use the contents of db/statpoint.txt when doing a stats reset and leveling up? (Note 1)
    // If no, an equation will be used which preserves statpoints earned/lost 
    // through external means (ie: stat point buyers/sellers)
    use_statpoint_table: yes

    https://github.com/rathena/rathena/blob/master/db/re/statpoint.txt

    Should actually be 6058 at level 255 by default? And 52 more stat points when rebirthed.

    In pre-renewal it would be 7237 stat point at level 255 when rebirthed. 7316 must be a server customization.

  8. C'mon it's a normal math formula you don't need me to write that down.

    if(sd) //Player
        hitrate += sstatus->hit - flee;
    else //Monster
        hitrate += sstatus->hit - flee/2;

     

  9. Probably easiest to just change the hit calculation or just increase the dex of monsters.

    In battle.c::is_attack_hitting you have this:

    hitrate += sstatus->hit - flee;

    You could change it into something like...

    if(sd) //Player
        hitrate += sstatus->hit - flee;
    else //Monster
        hitrate += sstatus->hit*2 - flee;

    That would for example double their hit in the calculation.

    Maybe a better idea would be to half the flee of the target instead, though.

×
×
  • Create New...