Jump to content

Evil

Members
  • Posts

    25
  • Joined

  • Last visited

Posts posted by Evil

  1. http://svn.code.sf.net/p/rathena/svn/trunk/src/map/status.c

    #ifdef RENEWAL // Renewal formulas
    	if (bl->type == BL_MOB) {
    		//Hit
    		stat = status->hit;
    		stat += level + status->dex + 175;
    		status->hit = cap_value(stat,1,SHRT_MAX);
    		//Flee
    		stat = status->flee;
    		stat += level + status->agi + 100;
    		status->flee = cap_value(stat,1,SHRT_MAX);
    	} else if (bl->type == BL_HOM) {
    		status->hit = cap_value(level + status->dex + 150,1,SHRT_MAX); // base level + dex + 150
    		status->flee = cap_value(level + status->agi + level/10,1,SHRT_MAX); // base level + agi + base level/10
    	} else {
    		//Hit
    		stat = status->hit;
    		stat += level + status->dex + status->luk/3 + 175; // base level + ( every 1 dex = +1 hit ) + (every 3 luk = +1 hit) + 175
    		status->hit = cap_value(stat,1,SHRT_MAX);
    		//Flee
    		stat = status->flee;
    		stat += level + status->agi + status->luk/5 + 100; // base level + ( every 1 agi = +1 flee ) + (every 5 luk = +1 flee) + 100
    		status->flee = cap_value(stat,1,SHRT_MAX);
    	}
    	status->matk_min = status->matk_max = status_base_matk(status, level);
    	//Def2
    	stat = status->def2;
    	stat += (int)(((float)level + status->vit)/2 + ((float)status->agi/5)); // base level + (every 2 vit = +1 def) + (every 5 agi = +1 def)
    	status->def2 = cap_value(stat,0,SHRT_MAX);
    	//MDef2
    	stat = status->mdef2;
    	stat += (int)(status->int_ + ((float)level/4) + ((float)status->dex/5) + ((float)status->vit/5)); // (every 4 base level = +1 mdef) + (every 1 int = +1 mdef) + (every 5 dex = +1 mdef) + (every 5 vit = +1 mdef)
    	status->mdef2 = cap_value(stat,0,SHRT_MAX);
    #else
    	status->matk_min = status_base_matk_min(status);
    	status->matk_max = status_base_matk_max(status);
    	//Hit
    	stat = status->hit;
    	stat += level + status->dex;
    	status->hit = cap_value(stat,1,SHRT_MAX);
    	//Flee
    	stat = status->flee;
    	stat += level + status->agi;
    	status->flee = cap_value(stat,1,SHRT_MAX);
    	//Def2
    	stat = status->def2;
    	stat += status->vit;
    	status->def2 = cap_value(stat,0,SHRT_MAX);
    	//MDef2
    	stat = status->mdef2;
    	stat += status->int_ + (status->vit>>1);
    	status->mdef2 = cap_value(stat,0,SHRT_MAX);
    #endif
    
  2. http://svn.code.sf.net/p/rathena/svn/trunk/src/map/battle.c

            else if(is_attack_right_handed(src, skill_id) && is_attack_left_handed(src, skill_id)) {    //Dual-wield
                if (wd.damage) {
                    if( (sd->class_&MAPID_BASEMASK) == MAPID_THIEF ) {
                        skill = pc_checkskill(sd,AS_RIGHT);
                        ATK_RATER(wd.damage, 50 + (skill * 10))
                    }
                    else if(sd->class_ == MAPID_KAGEROUOBORO) {
                        skill = pc_checkskill(sd,KO_RIGHT);
                        ATK_RATER(wd.damage, 70 + (skill * 10))
                    }
                    if(wd.damage < 1) wd.damage = 1;
                }
                if (wd.damage2) {
                    if( (sd->class_&MAPID_BASEMASK) == MAPID_THIEF) {
                        skill = pc_checkskill(sd,AS_LEFT);
                        ATK_RATEL(wd.damage2, 30 + (skill * 10))
                    }
                    else if(sd->class_ == MAPID_KAGEROUOBORO) {
                        skill = pc_checkskill(sd,KO_LEFT);
                        ATK_RATEL(wd.damage2, 50 + (skill * 10))
                    }
                    if(wd.damage2 < 1) wd.damage2 = 1;
                }
            }
    

    change:

    ATK_RATER(wd.damage, 50 + (skill * 10))
    

    and:

    ATK_RATEL(wd.damage2, 30 + (skill * 10))
    
  3.  

    like this..?
     
    bonus3 bHPDrainRatio,n,x,y; y/10% chance to drain x% current HP of the enemy of race n, and absorb it as health
     
    bonus3 bSPDrainRatio,n,x,y; y/10% chance to drain x% current SP of the enemy of race n, and absorb it as SP
     
    n:  0=Formless, 1=Undead, 2=Brute, 3=Plant, 4=Insect,
    5=Fish, 6=Demon, 7=Demi-Human, 8=Angel, 9=Dragon, 
    10=Boss monster, 11=Other than (normal monster) boss monster

     

     

    RC_BOSS and RC_NONBOSS = all race monsters

    bonus3 bSPDrainRatio,RC_BOSS,1,1000; bonus3 bSPDrainRatio,RC_NONBOSS,1,1000;
  4. http://svn.code.sf.net/p/rathena/svn/trunk/src/map/status.c

    	// Basic ASPD value
    	i = status_base_amotion_pc(sd,status);
    	status->amotion = cap_value(i,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
    

    edit to:

    	// Basic ASPD value
    	i = status_base_amotion_pc(sd,status);
    	status->amotion = cap_value(i-50,((sd->class_&JOBL_THIRD) ? battle_config.max_third_aspd : battle_config.max_aspd),2000);
    
    

    please tested and say result.

  5. may be conf\battle\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
    
  6. http://svn.code.sf.net/p/rathena/svn/trunk/db/re/skill_cast_db.txt

    // Skill Times Database
    //
    // Structure of Database:
    // SkillID,CastingTime,AfterCastActDelay,AfterCastWalkDelay,Duration1,Duration2,Cool Down,Fixed Casting Time
    //== Explained:
    // CastingTime : time to cast this skill, in miliseconds
    // AfterCastActDelay : "normal" delay, character cannot use skills, in miliseconds
    // AfterCastWalkDleay : amount of time before character can move again, in miliseconds
    // Duration1 / Duration2 : usually the durations used by the skill, at special cases it is used to hold special data
    // Cool Down : amount of time until character can re-use this skill, in miliseconds
    // Fixed Casting Time: the skills fixed casting time (when 0, uses 20% of cast time and less than 0 means no fixed cast time)
    //== Extra
    // On all fields you can use ':' as a delimiter to level-specific values,
    // - Example using SM_PROVOKE
    // - Original:6,0,0,0,30000,0,1000
    // - ModifiedTo:6,0,0,0,30000,0,1000:2500:3000:etc
    // - Makes lvl 1 have 1000 (1s) cool down, lvl 2 2500 (2.5s), lvl 3 3000, and so on.
    //==========================================
    
  7. Traps:

    http://svn.code.sf.net/p/rathena/svn/trunk/conf/battle/skill.conf

    // Should traps (hunter traps + quagmire) change their target to "all" inside gvg/pvp grounds? (Note 3)
    // Default on official servers: 1 (for players)
    gvg_traps_target_all: 1
    

    Frost Joke:

    http://svn.code.sf.net/p/rathena/svn/trunk/src/map/skill.c

    int skill_frostjoke_scream (struct block_list *bl, va_list ap)
    {
    	struct block_list *src;
    	uint16 skill_id,skill_lv;
    	unsigned int tick;
    
    	nullpo_ret(bl);
    	nullpo_ret(src=va_arg(ap,struct block_list*));
    
    	skill_id=va_arg(ap,int);
    	skill_lv=va_arg(ap,int);
    	if(!skill_lv) return 0;
    	tick=va_arg(ap,unsigned int);
    
    	if (src == bl || status_isdead(bl))
    		return 0;
    	if (bl->type == BL_PC) {
    		struct map_session_data *sd = (struct map_session_data *)bl;
    		if ( sd && sd->sc.option&(OPTION_INVISIBLE|OPTION_MADOGEAR) )
    			return 0;//Frost Joke / Scream cannot target invisible or MADO Gear characters [Ind]
    	}
    	//It has been reported that Scream/Joke works the same regardless of woe-setting. [Skotlex]
    	if(battle_check_target(src,bl,BCT_ENEMY) > 0)
    		skill_additional_effect(src,bl,skill_id,skill_lv,BF_MISC,ATK_DEF,tick);
    	else if(battle_check_target(src,bl,BCT_PARTY) > 0 && rnd()%100 < 10)
    		skill_additional_effect(src,bl,skill_id,skill_lv,BF_MISC,ATK_DEF,tick);
    
    	return 0;
    }
    
    

    del code:

    	else if(battle_check_target(src,bl,BCT_PARTY) > 0 && rnd()%100 < 10)
    		skill_additional_effect(src,bl,skill_id,skill_lv,BF_MISC,ATK_DEF,tick);
    
    • Upvote 1
  8. *getequipid(<equipment slot>)
    
    This function returns the item ID of the item equipped in the equipment slot 
    specified on the invoking character. If nothing is equipped there, it returns -1. 
    Valid equipment slots are:
    
    EQI_HEAD_TOP (1)          - Upper Headear
    EQI_ARMOR (2)             - Armor (jackets, robes)
    EQI_HAND_L (3)            - Left hand (weapons, shields)
    EQI_HAND_R (4)            - Right hand (weapons)
    EQI_GARMENT (5)           - Garment (mufflers, hoods, manteaus)
    EQI_SHOES (6)             - Footgear (shoes, boots)
    EQI_ACC_L (7)             - Accessory 1
    EQI_ACC_R (8)             - Accessory 2
    EQI_HEAD_MID (9)          - Middle Headgear (masks, glasses)
    EQI_HEAD_LOW (10)         - Lower Headgear (beards, some masks)
    EQI_COSTUME_HEAD_LOW (11) - Lower Costume Headgear
    EQI_COSTUME_HEAD_MID (12) - Middle Costume Headgear
    EQI_COSTUME_HEAD_TOP (13) - Upper Costume Headgear
    EQI_COSTUME_GARMENT (14)  - Costume Garment
    EQI_AMMO (15)    		  - Arrow/Ammunition
    EQI_SHADOW_ARMOR (16)     - Shadow Armor
    EQI_SHADOW_WEAPON (17)    - Shadow Weapon
    EQI_SHADOW_SHIELD (18)    - Shadow Shield
    EQI_SHADOW_SHOES (19)     - Shadow Shoes
    EQI_SHADOW_ACC_R (20)     - Shadow Accessory 2
    EQI_SHADOW_ACC_L (21)     - Shadow Accessory 1
    

    getequipid(1) change to 11-14

  9. add code to file /src/map/atcommand.c in commands ACMD_FUNC(duel), ACMD_FUNC(invite) and ACMD_FUNC(accept)

        if(sd->class_&MAPID_UPPERMASK == MAPID_BARDDANCER) {
            clif_displaymessage(fd, "command not use job Bard and Dancer");
            return 0;
        }

    not tested.

     

     

    P.S. i bad speak English.

  10. rathena / npc / mapflag / restricted.txt

    //Towns
    alberta        mapflag        restricted        7
    aldebaran        mapflag        restricted        7
    amatsu        mapflag        restricted        7
    ayothaya        mapflag        restricted        7
    brasilis        mapflag        restricted        7
    comodo        mapflag        restricted        7
    einbroch        mapflag        restricted        7
    einbech        mapflag        restricted        7
    geffen        mapflag        restricted        7
    gonryun        mapflag        restricted        7
    izlude        mapflag        restricted        7
    jawaii        mapflag        restricted        7
    hugel        mapflag        restricted        7
    lighthalzen        mapflag        restricted        7
    louyang        mapflag        restricted        7
    manuk        mapflag        restricted        7
    mid_camp        mapflag        restricted        7
    moc_ruins        mapflag        restricted        7
    morocc        mapflag        restricted        7
    moscovia        mapflag        restricted        7
    niflheim        mapflag        restricted        7
    prontera        mapflag        restricted        7
    payon        mapflag        restricted        7
    pay_arche        mapflag        restricted        7
    rachel        mapflag        restricted        7
    splendide        mapflag        restricted        7
    umbala        mapflag        restricted        7
    veins        mapflag        restricted        7
    xmas        mapflag        restricted        7
    yuno        mapflag        restricted        7
    

    add you zone and skills to rathena / db / re / skill_nocast_db.txt

  11. 1. add item to file: db/pre-re/item_trade.txt 

    2. item bound:

    *getitembound <item id>,<amount>,<bound type>{,<account ID>};
    *getitembound "<item name>",<amount>,<bound type>{,<account ID>};
    
    This command behaves identically to 'getitem', but the items created will be
    bound to the target character as specified by the bound type. All items created
    in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in
    some cases cannot be traded or stored.
    
    Valid bound types are:
     1 - Account Bound
     2 - Guild Bound
     3 - Party Bound
     4 - Character Bound
    
    ---------------------------------------
    
    *getitembound2 <item id>,<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>{,<account ID>};
    *getitembound2 "<item name>",<amount>,<identify>,<refine>,<attribute>,<card1>,<card2>,<card3>,<card4>,<bound type>{,<account ID>};
    
    This command behaves identically to 'getitem2', but the items created will be
    bound to the target character as specified by the bound type. All items created
    in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in
    some cases cannot be traded or stored.
    
    For a list of bound types see 'getitembound'.
    
×
×
  • Create New...