Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 07/11/22 in Posts

  1. Thank you for reporting this. Looks like the mirror was missing the file. It will be fixed within reasonable time. Edit: The mirror server has been updated. Also a bug was found in the way RO Patcher Lite handles failing mirror servers. Edit: Updated to 4.1.6, fixes mirror server fallback from a different mirror server not working correctly. Updated to 4.2.0, now processes updates of the official patcher immediately, so that the RO client does not have to restart for that. It also fixes two minor issues and updates to zlib 1.2.13.
    1 point
  2. Okay, here we go: Open skill.cpp and search: case ST_PRESERVE: And comment this line. (adding //) Then search: case TK_DODGE: And add below case ST_PRESERVE: case TK_DODGE: case ST_PRESERVE: Open status.cpp and search: /* Permanent effects */ And add below case SC_PRESERVE: /* Permanent effects */ case SC_PRESERVE: Then search: switch (i) { // Type 0: PC killed -> Place here statuses that do not dispel on death. case SC_ELEMENTALCHANGE: // Only when its Holy or Dark that it doesn't dispell on death if( sc->data[i]->val2 != ELE_HOLY && sc->data[i]->val2 != ELE_DARK ) break; And add below case SC_PRESERVE: switch (i) { // Type 0: PC killed -> Place here statuses that do not dispel on death. case SC_ELEMENTALCHANGE: // Only when its Holy or Dark that it doesn't dispell on death if( sc->data[i]->val2 != ELE_HOLY && sc->data[i]->val2 != ELE_DARK ) break; case SC_PRESERVE: Open map.cpp and search: status_change_end(&sd->bl, SC_PRESERVE, INVALID_TIMER); Comment this line adding //. Now you done. Don't forget to recompile your emulator.
    1 point
  3. try this maybe src/map/skill.c | 10 ++++++++++ src/map/skill.h | 1 + 2 files changed, 11 insertions(+) diff --git a/src/map/skill.c b/src/map/skill.c index db8cc49..23c3a4c 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -13500,6 +13500,7 @@ int skill_unit_onplace_timer(struct skill_unit *unit, struct block_list *bl, uns sg->limit=DIFF_TICK(tick,sg->tick)+1500; //Target will be stopped for 3 seconds sc_start(ss,bl,SC_STOP,100,0,skill_get_time2(sg->skill_id,sg->skill_lv)); + skill_someoneStepOnMyTrap(ss, bl); } break; @@ -21184,6 +21185,15 @@ static void skill_db_destroy(void) { skill_db = NULL; } +void skill_someoneStepOnMyTrap(struct block_list *src, struct block_list *bl) { + if (!bl || !src) + return; + if (src == bl || src->type != BL_PC || src->m != bl->m) + return; + /* clif_viewpoint need id, and it's bad! */ + clif_viewpoint(BL_CAST(BL_PC, src), src->id, 0, bl->x, bl-> y, rnd()%255, 0xFF0000); +} + /*=============================== * DB reading. * skill_db.txt diff --git a/src/map/skill.h b/src/map/skill.h index a5df73b..df669d8 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -2135,6 +2135,7 @@ void skill_combo_toogle_inf(struct block_list* bl, uint16 skill_id, int inf); void skill_combo(struct block_list* src,struct block_list *dsrc, struct block_list *bl, uint16 skill_id, uint16 skill_lv, int tick); void skill_reveal_trap_inarea(struct block_list *src, int range, int x, int y); +void skill_someoneStepOnMyTrap(struct block_list *src, struct block_list *bl); #ifdef ADJUST_SKILL_DAMAGE /// Skill Damage target
    1 point
  4. Go to your trunk/src/map/status.c and look for: //Bonus by SC if (sc) { if(sc->data[SC_INCMHP]) bonus += sc->data[SC_INCMHP]->val1; if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 2) bonus += 500; //Bonus Effect for Wizard & Sage Link if(sc->data[SC_SPIRIT] && (sc->data[SC_SPIRIT]->val2 == SL_WIZARD || sc->data[SC_SPIRIT]->val2 == SL_SAGE)) bonus += ((TBL_PC*)bl)->status.base_level * 200;
    1 point
  5. open atcommand.c and find recallall replace this ACMD_FUNC(recallall) { struct map_session_data* pl_sd; struct s_mapiterator* iter; int count; nullpo_retr(-1, sd); memset(atcmd_output, '\0', sizeof(atcmd_output)); if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) { clif_displaymessage(fd, msg_txt(sd,1032)); // You are not authorized to warp someone to your current map. return -1; } count = 0; iter = mapit_getallusers(); for( pl_sd = (TBL_PC*)mapit_first(iter); mapit_exists(iter); pl_sd = (TBL_PC*)mapit_next(iter) ) { if (sd->status.account_id != pl_sd->status.account_id && !( pl_sd->state.vending || pl_sd->state.buyingstore || pl_sd->state.autotrade ) && pc_get_group_level(sd) >= pc_get_group_level(pl_sd)) { if (pl_sd->bl.m == sd->bl.m && pl_sd->bl.x == sd->bl.x && pl_sd->bl.y == sd->bl.y) continue; // Don't waste time warping the character to the same place. if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarp && !pc_has_permission(sd, PC_PERM_WARP_ANYWHERE)) count++; else { if (pc_isdead(pl_sd)) { //Wake them up pc_setstand(pl_sd, true); pc_setrestartvalue(pl_sd,1); } pc_setpos(pl_sd, sd->mapindex, sd->bl.x, sd->bl.y, CLR_RESPAWN); } } } mapit_free(iter); clif_displaymessage(fd, msg_txt(sd,92)); // All characters recalled! if (count) { sprintf(atcmd_output, msg_txt(sd,1033), count); // Because you are not authorized to warp from some maps, %d player(s) have not been recalled. clif_displaymessage(fd, atcmd_output); } return 0; }
    1 point
  6. vending_nowho-rA-svn17340.patch
    1 point
×
×
  • Create New...