Jump to content

Bringer

Members
  • Posts

    677
  • Joined

  • Last visited

7 Followers

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

3,791 profile views

Bringer's Achievements

  1. https://github.com/rathena/rathena/blob/master/conf/battle/misc.conf#L19
  2. change to MF_BATTLEGROUND
  3. just update your data.grf
  4. try this https://github.com/rathena/rathena/pull/5055/commits/f0af1e2067420823bcdf2c8f0bdd952fb951ee33
  5. i dont know if i post on right section Left Image is Double Space mes on Right Image is 1 Space Mes closer look of the fonts space any idea how to change it ? even the font
  6. //rodatazone says that Overrefined bonuses are part of baseatk //Here we also apply the weapon_atk_rate bonus so it is correctly applied on left/right hands. if(sd) { if (type == EQI_HAND_L) { if(sd->left_weapon.overrefine) damage += rnd()%sd->left_weapon.overrefine+1; if (sd->weapon_atk_rate[sd->weapontype2]) damage += damage * sd->weapon_atk_rate[sd->weapontype2] / 100; } else { //Right hand if(sd->right_weapon.overrefine) damage += rnd()%sd->right_weapon.overrefine+1; if (sd->weapon_atk_rate[sd->weapontype1]) damage += damage * sd->weapon_atk_rate[sd->weapontype1] / 100; } } return damage; } on hercules there will be int64 battle_calc_base_damage2 / int64 battle_calc_base_damage2 on rathena i saw this code static int64 battle_calc_base_damage(struct block_list *src, struct status_data *status, struct weapon_atk *wa, struct status_change *sc, unsigned short t_size, int flag) No Static int64 battle_calc_base_damage2 and i saw this code /** Calculates overrefine damage bonus and weapon related bonuses (unofficial) * @param sd Player * @param damage Current damage * @param lr_type EQI_HAND_L:left-hand weapon, EQI_HAND_R:right-hand weapon */ static void battle_add_weapon_damage(struct map_session_data *sd, int64 *damage, int lr_type) { if (!sd) return; //rodatazone says that Overrefine bonuses are part of baseatk //Here we also apply the weapon_damage_rate bonus so it is correctly applied on left/right hands. if (lr_type == EQI_HAND_L) { if (sd->left_weapon.overrefine) (*damage) = (*damage) + rnd() % sd->left_weapon.overrefine + 1; if (sd->weapon_damage_rate[sd->weapontype2]) (*damage) += (*damage) * sd->weapon_damage_rate[sd->weapontype2] / 100; } else if (lr_type == EQI_HAND_R) { if (sd->right_weapon.overrefine) (*damage) = (*damage) + rnd() % sd->right_weapon.overrefine + 1; if (sd->weapon_damage_rate[sd->weapontype1]) (*damage) += (*damage) * sd->weapon_damage_rate[sd->weapontype1] / 100; } } can anyone help me to convert this to latest rathena
  7. do you mind post the link of the following sprite
  8. mmo.hpp //These mark the ID of the jobs, as expected by the client. [Skotlex] enum e_job { JOB_STAR_EMPEROR, JOB_SOUL_REAPER, JOB_BABY_STAR_EMPEROR, JOB_BABY_SOUL_REAPER, JOB_STAR_EMPEROR2, JOB_BABY_STAR_EMPEROR2, JOB_PADAWAN = 4230, JOB_JEDI = 4231, JOB_SITH = 4232, JOB_MAX, }; map.hpp //First Jobs //Note the oddity of the novice: //Super Novices are considered the 2-1 version of the novice! Novices are considered a first class type, too... enum e_mapid : uint64{ //Baby 3-2 Jobs MAPID_BABY_ROYAL_GUARD = JOBL_THIRD|MAPID_BABY_CRUSADER, MAPID_BABY_SORCERER, MAPID_BABY_MINSTRELWANDERER, MAPID_BABY_SURA, MAPID_BABY_GENETIC, MAPID_BABY_SHADOW_CHASER, MAPID_BABY_SOUL_REAPER, //Star Wars Job MAPID_PADAWAN, MAPID_JEDI = JOBL_2_1 | MAPID_PADAWAN, MAPID_SITH = JOBL_2_2 | MAPID_PADAWAN, // Additional constants MAPID_ALL = UINT64_MAX }; pc.cpp /*========================================== * Convert's from the client's lame Job ID system * to the map server's 'makes sense' system. [Skotlex] *------------------------------------------*/ int pc_jobid2mapid(unsigned short b_class) //Baby 3-2 Jobs case JOB_BABY_ROYAL_GUARD: return MAPID_BABY_ROYAL_GUARD; case JOB_BABY_SORCERER: return MAPID_BABY_SORCERER; case JOB_BABY_MINSTREL: case JOB_BABY_WANDERER: return MAPID_BABY_MINSTRELWANDERER; case JOB_BABY_SURA: return MAPID_BABY_SURA; case JOB_BABY_GENETIC: return MAPID_BABY_GENETIC; case JOB_BABY_SHADOW_CHASER: return MAPID_BABY_SHADOW_CHASER; case JOB_BABY_SOUL_REAPER: return MAPID_BABY_SOUL_REAPER; //Doram Jobs case JOB_SUMMONER: return MAPID_SUMMONER; //Custom Jobs case JOB_PADAWAN: return MAPID_PADAWAN; case JOB_JEDI: return MAPID_JEDI; case JOB_SITH: return MAPID_SITH; default: return -1; } } //Reverts the map-style class id to the client-style one. int pc_mapid2jobid(unsigned short class_, int sex) { //Baby 3-2 Jobs case MAPID_BABY_ROYAL_GUARD: return JOB_BABY_ROYAL_GUARD; case MAPID_BABY_SORCERER: return JOB_BABY_SORCERER; case MAPID_BABY_MINSTRELWANDERER: return sex?JOB_BABY_MINSTREL:JOB_BABY_WANDERER; case MAPID_BABY_SURA: return JOB_BABY_SURA; case MAPID_BABY_GENETIC: return JOB_BABY_GENETIC; case MAPID_BABY_SHADOW_CHASER: return JOB_BABY_SHADOW_CHASER; case MAPID_BABY_SOUL_REAPER: return JOB_BABY_SOUL_REAPER; //Doram Jobs case MAPID_SUMMONER: return JOB_SUMMONER; //Custom Jobs case MAPID_PADAWAN: return JOB_PADAWAN; case MAPID_JEDI: return JOB_JEDI; case MAPID_SITH: return JOB_SITH; default: return -1; } /*==================================================== * This function return the name of the job (by [Yor]) *----------------------------------------------------*/ const char* job_name(int class_) { case JOB_STAR_EMPEROR: case JOB_SOUL_REAPER: case JOB_BABY_STAR_EMPEROR: case JOB_BABY_SOUL_REAPER: return msg_txt(NULL,782 - JOB_STAR_EMPEROR + class_); case JOB_STAR_EMPEROR2: return msg_txt(NULL,782); case JOB_BABY_STAR_EMPEROR2: return msg_txt(NULL,784); case JOB_PADAWAN: // Custom Jobs case JOB_JEDI: case JOB_SITH: return msg_txt(NULL,790 - JOB_PADAWAN + class_); default: return msg_txt(NULL,655); } } script_constants.hpp export_constant(JOB_STAR_EMPEROR); export_constant(JOB_SOUL_REAPER); export_constant(JOB_BABY_STAR_EMPEROR); export_constant(JOB_BABY_SOUL_REAPER); export_constant(JOB_STAR_EMPEROR2); export_constant(JOB_BABY_STAR_EMPEROR2); export_constant(JOB_PADAWAN); export_constant(JOB_JEDI); export_constant(JOB_SITH); export_constant2("EAJ_SUPER_NOVICE",MAPID_SUPER_NOVICE); export_constant2("EAJ_SUPERNOVICE",MAPID_SUPER_NOVICE); export_constant2("EAJ_SUPER_BABY",MAPID_SUPER_BABY); export_constant2("EAJ_SUPER_NOVICE_E",MAPID_SUPER_NOVICE_E); export_constant2("EAJ_SUPER_BABY_E",MAPID_SUPER_BABY_E); export_constant2("EAJ_SUMMONER",MAPID_SUMMONER); export_constant2("EAJ_PADAWAN", MAPID_PADAWAN); export_constant2("EAJ_JEDI", MAPID_JEDI); export_constant2("EAJ_SITH", MAPID_SITH); inter.cpp /* from pc.cpp due to @accinfo. any ideas to replace this crap are more than welcome. */ const char* job_name(int class_) { case JOB_PADAWAN: case JOB_JEDI: case JOB_SITH: return msg_txt(790 - JOB_PADAWAN + class_); default: return msg_txt(199); } } anyone can tell what is missing ?
  9. Post your weapontable.lub iteminfo itemdb
  10. use this https://github.com/zackdreaver/ROenglishRE/blob/master/Ragnarok/data/luafiles514/lua files/skillinfoz/skilltreeview 20180621.lub
  11. just duplicate the mvp boss you like then remove the drop cards put on your mob_branch.txt
  12. unlike flora / // Whether or not Marine Spheres and Floras summoned by Alchemist drop items? // This setting has three available values: // 0: Nothing drops. // 1: Only marine spheres drop items. // 2: All alchemist summons drop items. alchemist_summon_reward: 1 easy to way just make duplicate of that monster with no drops or make new condition for this skill mob.cpp if( !(type&1) && !map_getmapflag(m, MF_NOMOBLOOT) && !md->state.rebirth && ( !md->special_state.ai || //Non special mob battle_config.alchemist_summon_reward == 2 || //All summoned give drops (md->special_state.ai==AI_SPHERE && battle_config.alchemist_summon_reward == 1) //Marine Sphere Drops items. ) ) // Plant Cultivation [Celest] case CR_CULTIVATION: if (sd) { if( map_count_oncell(src->m,x,y,BL_CHAR,0) > 0 ) { clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); return 1; } clif_skill_poseffect(src,skill_id,skill_lv,x,y,tick); if (rnd()%100 < 50) { clif_skill_fail(sd,skill_id,USESKILL_FAIL_LEVEL,0); } else { TBL_MOB* md = NULL; int t, mob_id; if (skill_lv == 1) mob_id = MOBID_BLACK_MUSHROOM + rnd() % 2; else { int rand_val = rnd() % 100; if (rand_val < 30) mob_id = MOBID_GREEN_PLANT; else if (rand_val < 55) mob_id = MOBID_RED_PLANT; else if (rand_val < 80) mob_id = MOBID_YELLOW_PLANT; else if (rand_val < 90) mob_id = MOBID_WHITE_PLANT; else if (rand_val < 98) mob_id = MOBID_BLUE_PLANT; else mob_id = MOBID_SHINING_PLANT; } md = mob_once_spawn_sub(src, src->m, x, y, "--ja--", mob_id, "", SZ_SMALL, AI_NONE); if (!md) break; if ((t = skill_get_time(skill_id, skill_lv)) > 0) { if( md->deletetimer != INVALID_TIMER ) delete_timer(md->deletetimer, mob_timer_delete); md->deletetimer = add_timer (tick + t, mob_timer_delete, md->bl.id, 0); } mob_spawn(md); } } break;
  13. @AnnieRuru another version for boss card to boss card
×
×
  • Create New...

Important Information

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