Jump to content

xyxzero

Members
  • Posts

    90
  • Joined

  • Last visited

Posts posted by xyxzero

  1. what do you mean by "fix" or "config". Those cards are inside your db/pre-re/item_db.txt. 

     

    For Extremity Fist find this inside your rAthena/src/map/battle.c

    		case MO_EXTREMITYFIST:
    			skillratio += 100 * (7 + sstatus->sp / 10);
    			skillratio = min(500000,skillratio); //We stop at roughly 50k SP for overflow protection
    			break;

    for Sacrifice inside rAthena/src/map/battle.c again and find this

    		case PA_SACRIFICE:
    			skillratio += -10 + 10 * skill_lv;
    			break;
    		case PA_SACRIFICE:
    			wd.damage = sstatus->max_hp* 9/100;
    			wd.damage2 = 0;

     

  2. rAthena/src/map/battle.c

     

    find this

    		if (sc->data[SC_EDP]) {
    			switch(skill_id) {
    				case AS_SPLASHER:
    				case ASC_METEORASSAULT:
    				// Pre-Renewal only: Soul Breaker ignores EDP
    				// Renewal only: Grimtooth and Venom Knife ignore EDP
    				// Both: Venom Splasher and Meteor Assault ignore EDP [helvetica]
    #ifndef RENEWAL
    				case ASC_BREAKER:
    #else
    				case AS_GRIMTOOTH:
    				case AS_VENOMKNIFE:
    #endif
    					break; // skills above have no effect with EDP
    
    #ifdef RENEWAL
    				// renewal EDP mode requires renewal enabled as well
    				// Renewal EDP: damage gets a half modifier on top of EDP bonus for skills [helvetica]
    				// * Sonic Blow
    				// * Soul Breaker
    				// * Counter Slash
    				// * Cross Impact
    				case AS_SONICBLOW:
    				case ASC_BREAKER:
    				case GC_COUNTERSLASH:
    				case GC_CROSSIMPACT:
    					ATK_RATE(wd.weaponAtk, wd.weaponAtk2, 50);
    					ATK_RATE(wd.equipAtk, wd.equipAtk2, 50);
    				default: // fall through to apply EDP bonuses
    					// Renewal EDP formula [helvetica]
    					// weapon atk * (1 + (edp level * .8))
    					// equip atk * (1 + (edp level * .6))
    					ATK_RATE(wd.weaponAtk, wd.weaponAtk2, 100 + (sc->data[SC_EDP]->val1 * 80));
    					ATK_RATE(wd.equipAtk, wd.equipAtk2, 100 + (sc->data[SC_EDP]->val1 * 60));
    					break;
    #else
    				default:
    					ATK_ADDRATE(wd.damage, wd.damage2, sc->data[SC_EDP]->val3);

    and try this

     

    		if (sc->data[SC_EDP]) {
    			switch(skill_id) {
    				case AS_SPLASHER:
    				case ASC_METEORASSAULT:
    				// Pre-Renewal only: Soul Breaker ignores EDP
    				// Renewal only: Grimtooth and Venom Knife ignore EDP
    				// Both: Venom Splasher and Meteor Assault ignore EDP [helvetica]
    #ifndef RENEWAL
    				case ASC_BREAKER:
    #else
    				case AS_GRIMTOOTH:
    				case AS_VENOMKNIFE:
    #endif
    					break; // skills above have no effect with EDP
    
    #ifdef RENEWAL
    				// renewal EDP mode requires renewal enabled as well
    				// Renewal EDP: damage gets a half modifier on top of EDP bonus for skills [helvetica]
    				// * Sonic Blow
    				// * Soul Breaker
    				// * Counter Slash
    				// * Cross Impact
    				case AS_SONICBLOW:
    				case ASC_BREAKER:
    				case GC_COUNTERSLASH:
    				case GC_CROSSIMPACT:
    					ATK_RATE(wd.weaponAtk, wd.weaponAtk2, 50);
    					ATK_RATE(wd.equipAtk, wd.equipAtk2, 50);
    				default: // fall through to apply EDP bonuses
    					// Renewal EDP formula [helvetica]
    					// weapon atk * (1 + (edp level * .8))
    					// equip atk * (1 + (edp level * .6))
    					ATK_RATE(wd.weaponAtk, wd.weaponAtk2, 100 + (sc->data[SC_EDP]->val1 * 80));
    					ATK_RATE(wd.equipAtk, wd.equipAtk2, 100 + (sc->data[SC_EDP]->val1 * 60));
    					break;
    #else
    				default:
    					ATK_ADDRATE(wd.damage, wd.damage2, sc->data[SC_EDP]->val3);
    					aspd_rate += 200;

     

  3. inside rAthena/src/map/skill.c

    find 

    case RG_STRIPWEAPON:
    	case RG_STRIPSHIELD:
    	case RG_STRIPARMOR:
    	case RG_STRIPHELM:
    	case ST_FULLSTRIP:
    	case GC_WEAPONCRUSH:
    	case SC_STRIPACCESSARY: {
    		unsigned short location = 0;
    		int d = 0;
    
    		//Rate in percent
    		if ( skill_id == ST_FULLSTRIP ) {
    			i = 5 + 2*skill_lv + (sstatus->dex - tstatus->dex)/5;
    		} else if( skill_id == SC_STRIPACCESSARY ) {
    			i = 12 + 2 * skill_lv + (sstatus->dex - tstatus->dex)/5;
    		} else {
    			i = 5 + 5*skill_lv + (sstatus->dex - tstatus->dex)/5;
    		}
    
    		if (i < 5) i = 5; //Minimum rate 5%

    edit this part 

    } else {
    			i = 5 + 5*skill_lv + (sstatus->dex - tstatus->dex)/5;

     

  4. 1 hour ago, Psy Ops said:

    Does anyone know if Digital Ocean supports Ragnarok servers?

    If you need to have it configured/install necessary files before adding the game?

    Newbie here!

     

    Digital ocean does not support installing ragnarok files but you can do it on your own when u bought vps from digital ocean. You need to install it inside your VPS manually.

    There are many guides here in rathena to know about installation inside your vps.

    • MVP 1
  5. go to your db folder then if you're using pre-renewal or renewal depends on what your server is running then

    open pre-re or re folder go to mob_drop.txt

     

    // Structure:
    // <mobid>,<itemid>,<rate>{,<randopt_groupid>,<flag>}
    //
    // <mobid>  : Monster ID. See db/[pre-]re/mob_db.txt
    // <itemid> : Item ID.
    // <rate>   : 1 = 0.01%
    //            100 = 1%
    //            10000 = 100%
    //            Just like rate in mob_db.txt, adjusted by battle_config.
    //            To remove original drop from monster, use 0 as rate.
    // Optional:
    // <randopt_groupid> : If set, the dropped item will be modified by Random Option Group based on db/[pre-]re/item_randomopt_group.txt
    // <flag>            : 1 - The item is protected from steal.
    //                     2 - As MVP Reward
    

    for example

    you want ifrit to drop yggdrasil berry (607)

    1832,607,10000 //ifrit drops yggdrasil berry 100% when killed

     

  6. Inside skill.c find this, this is pretty self explanatory on your side regarding if you're using Renewal or Pre-Renewal.

    			/**
    			 * Renewal Heal Formula
    			 * Formula: ( [(Base Level + INT) / 5] x 30 ) x (Heal Level / 10) x (Modifiers) + MATK
    			 */
    			hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10;
    #else
    			hp = (status_get_lv(src) + status_get_int(src)) / 8 * (4 + (skill_lv * 8));
    #endif
    			if( sd && ((skill = pc_checkskill(sd, HP_MEDITATIO)) > 0) )
    				hp_bonus += skill * 2;
    			else if (src->type == BL_HOM && (skill = hom_checkskill(((TBL_HOM*)src), HLIF_BRAIN)) > 0)
    				hp_bonus += skill * 2;
    			if( sd && tsd && sd->status.partner_id == tsd->status.char_id && (sd->class_&MAPID_UPPERMASK) == MAPID_SUPER_NOVICE && sd->status.sex == 0 )
    				hp *= 2;
    			break;
    	}

     

    you can edit 

          (i believe this one is for renewal)      hp = (status_get_lv(src) + status_get_int(src)) / 5 * 30 * skill_lv / 10;

          (this one is for pre renewal)      hp = (status_get_lv(src) + status_get_int(src)) / 8 * (4 + (skill_lv * 8));

    Correct me if i'm wrong.

    pretty sure you can change the skill_lv to a specific number you want or you can change the multipliers / modifiers to your likeness. Or you can make your own formula regarding what you want to add/remove or alter in that given formula just don't remove the hp = 

     

    Make sure to recompile and try it out.
     

     

  7. 6 hours ago, AinsLord said:

    so wanna try this

    i was thinking if this script farming zone can only be access by VIP players

     

    Thnx in advance

    I reckon that by "VIP" status means that you have your set of players have another groupID right?

    correct me if i'm wrong.

    Edit your VIP level on groups.conf then try adding this inside emistry's code

    if ( getgmlevel() < group_id_of_vip ) end;

     

    • Upvote 1
  8. On 9/16/2018 at 2:46 AM, AinsLord said:

    @xyxzero those setting is not on my core.hpp im using the latest git on rathena

    You can just add it inside your core.h or like what @TARTs said. 

    It's better to put a limit inside the specific set of codes like this

    #define ADJUST_SKILL_DAMAGE
    #ifdef ADJUST_SKILL_DAMAGE
    #define MAX_SKILL_DAMAGE_RATE 100000
    #endif

    100000 = max value that you can increase the % of damage a skill inside your skill_damage.txt

  9. 10 minutes ago, Peopleperson49 said:

    The lastest rA in the git doesn't seem to have that option in core.h anymore. What do we do now to get this to work? Thanks.

    Peopleperosn49

    i think you just add

    inside trunk/src/custom/defines_pre.h

    // Copyright (c) rAthena Dev Teams - Licensed under GNU GPL
    // For more information, see LICENCE in the main folder
    
    #ifndef _CONFIG_CUSTOM_DEFINES_PRE_HPP_
    #define _CONFIG_CUSTOM_DEFINES_PRE_HPP_
    
    /**
     * rAthena configuration file (http://rathena.org)
     * For detailed guidance on these check http://rathena.org/wiki/SRC/config/
     **/
    
    
    #define ADJUST_SKILL_DAMAGE
    #ifdef ADJUST_SKILL_DAMAGE
    #define MAX_SKILL_DAMAGE_RATE 100000
    #endif
    
    
    #endif // _CONFIG_CUSTOM_DEFINES_PRE_HPP_

    OR 

    inside core .h

    trunk/src/config/core.h

    works fine for me 

     

  10. Either you edit it on skill.c and then recompile your server

    or

    edit it inside your rathena/db/skill_damage_db.txt

    but make sure to enable this first inside your src/config/core.h

    /// Uncomment to enable skills damage adjustments
    /// By enabling this, db/skill_damage.txt and the skill_damage mapflag will adjust the
    /// damage rate of specified skills.
    #define ADJUST_SKILL_DAMAGE
    
    /// The skill damage adjustment rate is capped at 100000.
    #ifdef ADJUST_SKILL_DAMAGE
    #define MAX_SKILL_DAMAGE_RATE 100000
    #endif

     

  11. if your robo eye is inside your item_trade with nondrop option, just remove it or comment it out.

    item_trade.txt

    // Item Trade Restrictions Database
    // Defines special trade rules for individual items.
    //
    // Structure of Database:
    // Item ID, TradeMask,Group Level Override
    //
    // Legend for 'TradeMask' field (bitmask):
    // 1   - item can't be dropped
    // 2   - item can't be traded (nor vended)
    // 4   - wedded partner can override restriction 2
    // 8   - item can't be sold to npcs
    // 16  - item can't be placed in the cart
    // 32  - item can't be placed in the storage
    // 64  - item can't be placed in the guild storage
    // 128 - item can't be attached to mail
    // 256 - item can't be auctioned
    
    // Example:
    5325,1,99 //(Robo Eye, Item can't be dropped, level 99 gms can bypass this action)
    <itemID>,<TradeMask>,<GroupLevelOverdrive>
    itemID = (self explanatory) 
    TradeMask = Values are stated above, you just add the values up if you want a specific restricted action. 
      for example, if you want your item to be untradeable and undroppable, 1 (cannot be dropped) + 2 (item can't be traded (nor vended)) == 3
      5325,3,99
    GroupLevelOverdrive = Level 99 gms and above are the only one who can bypass this restricted actions.

     

  12. Nvm. Fixed it

     

    PC.c

    from

    	case SP_SUBELE: // bonus2 bSubEle,e,x;
    		PC_BONUS_CHK_ELEMENT(type2,SP_SUBELE);
    		if(sd->state.lr_flag != 2)
    		sd->subele_script[type2] += val;

     

    to 

    	case SP_SUBELE: // bonus2 bSubEle,e,x;
    		PC_BONUS_CHK_ELEMENT(type2,SP_SUBELE);
    		if(sd->state.lr_flag != 2)
    			sd->subele_script[type2] = min(sd->subele[type2]+val, 70);

     

    • Upvote 1
  13. May I ask for a fix on this??

     

    Currently players having 100% resist to elements and I dont want anything like that to happen.

    // Maximum resistance to status changes. (100 = 100%)
    // NOTE: Cards and equipment can go over this limit, so it only applies to natural resist.
    pc_max_status_def: 70
    mob_max_status_def: 70

    changed this on status.conf but still they can get 100% resist to element. Any ways to get my maximum resistance to elements / properties at 70% only?

    TIA

×
×
  • Create New...