diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/atcommand.c | 4 | ||||
-rw-r--r-- | src/map/battle.c | 2 | ||||
-rw-r--r-- | src/map/script.c | 24 | ||||
-rw-r--r-- | src/map/unit.c | 7 |
4 files changed, 12 insertions, 25 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 9fb2540ef..fc2d8a42e 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -960,7 +960,7 @@ ACMD(option) /*========================================== * *------------------------------------------*/ -ACMD(hide) +ACMD(invisible) { if (pc_isinvisible(sd)) pc->unhide(sd, true); @@ -10136,7 +10136,7 @@ static void atcommand_basecommands(void) ACMD_DEF(storage), ACMD_DEF(guildstorage), ACMD_DEF(option), - ACMD_DEF(hide), // + /hide + ACMD_DEF(invisible), // + /hide ACMD_DEF(jobchange), ACMD_DEF(kill), ACMD_DEF(alive), diff --git a/src/map/battle.c b/src/map/battle.c index 72c3d8963..4f4d43bc3 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -7010,12 +7010,14 @@ static bool battle_check_range(struct block_list *src, struct block_list *bl, in if( src->m != bl->m ) return false; +/* [TMW2] Code removed - ManaPlus deals with squares, not circles. #ifndef CIRCULAR_AREA if( src->type == BL_PC ) { // Range for players' attacks and skills should always have a circular check. [Angezerus] if ( !check_distance_client_bl(src, bl, range) ) return false; } else #endif +*/ if( !check_distance_bl(src, bl, range) ) return false; diff --git a/src/map/script.c b/src/map/script.c index 9372299bb..7c03840c8 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -4416,7 +4416,8 @@ static void op_2num(struct script_state *st, int op, int i1, int i2) case C_LT: ret = (i1 < i2); break; case C_LE: ret = (i1 <= i2); break; case C_R_SHIFT: ret = i1>>i2; break; - case C_L_SHIFT: ret = i1<<i2; break; + case C_L_SHIFT: if (i1 < 0) { ShowError("Invalid left shift op=%s i1=%d i2=%d\n", script->op2name(op), i1, i2); script->reportsrc(st); script_pushnil(st); st->state = END; return; } else { ret = i1<<i2; } + break; case C_DIV: case C_MOD: if( i2 == 0 ) @@ -16073,25 +16074,6 @@ static BUILDIN(classchange) } /*========================================== - * Display an effect - *------------------------------------------*/ -static BUILDIN(misceffect) -{ - int type; - - type=script_getnum(st,2); - if(st->oid && st->oid != npc->fake_nd->bl.id) { - struct block_list *bl = map->id2bl(st->oid); - if (bl) - clif->specialeffect(bl,type,AREA); - } else { - struct map_session_data *sd = script->rid2sd(st); - if (sd != NULL) - clif->specialeffect(&sd->bl,type,AREA); - } - return true; -} -/*========================================== * Play a BGM on a single client [Rikter/Yommy] *------------------------------------------*/ static BUILDIN(playbgm) @@ -27486,7 +27468,7 @@ static void script_parse_builtin(void) BUILDIN_DEF(getskilllist,""), BUILDIN_DEF(clearitem,""), BUILDIN_DEF(classchange,"ii?"), - BUILDIN_DEF_DEPRECATED(misceffect,"i"), + //BUILDIN_DEF_DEPRECATED(misceffect,"i"), BUILDIN_DEF(playbgm,"s"), BUILDIN_DEF(playbgmall,"s?????"), BUILDIN_DEF(soundeffect,"si"), diff --git a/src/map/unit.c b/src/map/unit.c index fb6d992ae..c93a69be3 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -460,6 +460,7 @@ static int unit_walk_toxy_timer(int tid, int64 tick, int id, intptr_t data) timer->delete(ud->steptimer, unit->steptimer); ud->steptimer = INVALID_TIMER; } + /* [TMW2] Remove this, even if code is present on TMWA // Delay stepactions by half a step (so they are executed at full step) int timer_delay; if ((ud->walkpath.path[ud->walkpath.path_pos] & 1) != 0) @@ -467,6 +468,7 @@ static int unit_walk_toxy_timer(int tid, int64 tick, int id, intptr_t data) else timer_delay = status->get_speed(bl) / 2; ud->steptimer = timer->add(tick + timer_delay, unit->steptimer, bl->id, 0); + */ } if (ud->state.change_walk_target) { @@ -1572,7 +1574,8 @@ static int unit_skilluse_id2(struct block_list *src, int target_id, uint16 skill } else if( src->type == BL_MER && skill_id == MA_REMOVETRAP ) { if( !battle->check_range(battle->get_master(src), target, range + 1) ) return 0; // Aegis calc remove trap based on Master position, ignoring mercenary O.O - } else if (!battle->check_range(src, target, range)) { + // [TMW2] Reintroduce the arbitrary +1 range bonus (reduces lag) + } else if (!battle->check_range(src, target, range +1)) { return 0; // Arrow-path check failed. } } @@ -2305,7 +2308,7 @@ static int unit_attack_timer_sub(struct block_list *src, int tid, int64 tick) } sstatus = status->get_status_data(src); - range = sstatus->rhw.range; + range = sstatus->rhw.range + 1; // [TMW2] Extra range for anti-lag if( (unit->is_walking(target) || ud->state.step_attack) && (target->type == BL_PC || !map->getcell(target->m, src, target->x, target->y, CELL_CHKICEWALL))) |