Fixed cell_basilica which gave nothing. Only works only for player
Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
This commit is contained in:
parent
ea925a05b1
commit
c88b77f5fd
@ -380,6 +380,7 @@ mf_nolockon 58
|
|||||||
mf_notomb 59
|
mf_notomb 59
|
||||||
mf_skill_damage 60
|
mf_skill_damage 60
|
||||||
|
|
||||||
|
//'setcell' types
|
||||||
cell_walkable 0
|
cell_walkable 0
|
||||||
cell_shootable 1
|
cell_shootable 1
|
||||||
cell_water 2
|
cell_water 2
|
||||||
@ -388,6 +389,8 @@ cell_basilica 4
|
|||||||
cell_landprotector 5
|
cell_landprotector 5
|
||||||
cell_novending 6
|
cell_novending 6
|
||||||
cell_nochat 7
|
cell_nochat 7
|
||||||
|
cell_malestrom 8
|
||||||
|
cell_icewall 9
|
||||||
|
|
||||||
//cell_gettype 0
|
//cell_gettype 0
|
||||||
cell_chkwall 1
|
cell_chkwall 1
|
||||||
@ -403,6 +406,8 @@ cell_chkbasilica 10
|
|||||||
cell_chklandprotector 11
|
cell_chklandprotector 11
|
||||||
cell_chknovending 12
|
cell_chknovending 12
|
||||||
cell_chknochat 13
|
cell_chknochat 13
|
||||||
|
cell_chkmaelstrom 14
|
||||||
|
cell_chkicewall 15
|
||||||
|
|
||||||
StatusPoint 9 1
|
StatusPoint 9 1
|
||||||
BaseLevel 11 1
|
BaseLevel 11 1
|
||||||
|
@ -7230,8 +7230,7 @@ Each of these can be 'on' or 'off'. Together they define a cell's behavior.
|
|||||||
|
|
||||||
This command lets you alter these flags for all map cells in the specified
|
This command lets you alter these flags for all map cells in the specified
|
||||||
(x1,y1)-(x2,y2) rectangle. The 'flag' can be 0 or 1 (0:clear flag, 1:set flag).
|
(x1,y1)-(x2,y2) rectangle. The 'flag' can be 0 or 1 (0:clear flag, 1:set flag).
|
||||||
The 'type' defines which flag to modify. Possible options include cell_walkable,
|
The 'type' defines which flag to modify. Possible options see const.txt.
|
||||||
cell_shootable, cell_basilica. For a full list, see const.txt.
|
|
||||||
|
|
||||||
Example:
|
Example:
|
||||||
|
|
||||||
|
17
src/map/pc.c
17
src/map/pc.c
@ -4990,6 +4990,7 @@ int pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int y
|
|||||||
sd->md->ud.dir = sd->ud.dir;
|
sd->md->ud.dir = sd->ud.dir;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pc_cell_basilica(sd);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -10463,6 +10464,22 @@ void pc_bonus_script_check(struct map_session_data *sd, enum e_bonus_script_flag
|
|||||||
status_calc_pc(sd,false);
|
status_calc_pc(sd,false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** [Cydh]
|
||||||
|
* Gives/removes SC_BASILICA when player steps in/out the cell with 'cell_basilica'
|
||||||
|
* @param sd player
|
||||||
|
*/
|
||||||
|
void pc_cell_basilica(struct map_session_data *sd) {
|
||||||
|
if (!sd)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (!map_getcell(sd->bl.m,sd->bl.x,sd->bl.y,CELL_CHKBASILICA)) {
|
||||||
|
if (&sd->sc && sd->sc.data[SC_BASILICA])
|
||||||
|
status_change_end(&sd->bl,SC_BASILICA,INVALID_TIMER);
|
||||||
|
}
|
||||||
|
else if (!(&sd->sc) || !sd->sc.data[SC_BASILICA])
|
||||||
|
sc_start(&sd->bl,&sd->bl,SC_BASILICA,100,0,-1);
|
||||||
|
}
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
* pc Init/Terminate
|
* pc Init/Terminate
|
||||||
*------------------------------------------*/
|
*------------------------------------------*/
|
||||||
|
@ -1050,6 +1050,8 @@ int pc_bonus_script_timer(int tid, unsigned int tick, int id, intptr_t data);
|
|||||||
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i);
|
void pc_bonus_script_remove(struct map_session_data *sd, uint8 i);
|
||||||
void pc_bonus_script_check(struct map_session_data *sd, enum e_bonus_script_flags flag);
|
void pc_bonus_script_check(struct map_session_data *sd, enum e_bonus_script_flags flag);
|
||||||
|
|
||||||
|
void pc_cell_basilica(struct map_session_data *sd);
|
||||||
|
|
||||||
#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP)
|
#if defined(RENEWAL_DROP) || defined(RENEWAL_EXP)
|
||||||
int pc_level_penalty_mod(struct map_session_data *sd, int mob_level, uint32 mob_race, uint32 mob_mode, int type);
|
int pc_level_penalty_mod(struct map_session_data *sd, int mob_level, uint32 mob_race, uint32 mob_mode, int type);
|
||||||
#endif
|
#endif
|
||||||
|
@ -301,10 +301,12 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data
|
|||||||
} else
|
} else
|
||||||
sd->areanpc_id=0;
|
sd->areanpc_id=0;
|
||||||
|
|
||||||
if( sd->md) unit_check_start_teleport_timer(&sd->md->bl);
|
if(sd->md) unit_check_start_teleport_timer(&sd->md->bl);
|
||||||
if( sd->ed) unit_check_start_teleport_timer(&sd->ed->bl);
|
if(sd->ed) unit_check_start_teleport_timer(&sd->ed->bl);
|
||||||
if( sd->hd) unit_check_start_teleport_timer(&sd->hd->bl);
|
if(sd->hd) unit_check_start_teleport_timer(&sd->hd->bl);
|
||||||
if( sd->pd) unit_check_start_teleport_timer(&sd->pd->bl);
|
if(sd->pd) unit_check_start_teleport_timer(&sd->pd->bl);
|
||||||
|
|
||||||
|
pc_cell_basilica(sd);
|
||||||
} else if (md) {
|
} else if (md) {
|
||||||
if( map_getcell(bl->m,x,y,CELL_CHKNPC) ) {
|
if( map_getcell(bl->m,x,y,CELL_CHKNPC) ) {
|
||||||
if( npc_touch_areanpc2(md) )
|
if( npc_touch_areanpc2(md) )
|
||||||
@ -326,10 +328,10 @@ static int unit_walktoxy_timer(int tid, unsigned int tick, int id, intptr_t data
|
|||||||
clif_move(ud);
|
clif_move(ud);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( hd) unit_check_start_teleport_timer(&hd->bl);
|
else if (hd) unit_check_start_teleport_timer(&hd->bl);
|
||||||
else if( ed) unit_check_start_teleport_timer(&ed->bl);
|
else if (ed) unit_check_start_teleport_timer(&ed->bl);
|
||||||
else if( pd) unit_check_start_teleport_timer(&pd->bl);
|
else if (pd) unit_check_start_teleport_timer(&pd->bl);
|
||||||
else if( mrd) unit_check_start_teleport_timer(&mrd->bl);
|
else if (mrd) unit_check_start_teleport_timer(&mrd->bl);
|
||||||
|
|
||||||
if(tid == INVALID_TIMER) // A directly invoked timer is from battle_stop_walking, therefore the rest is irrelevant.
|
if(tid == INVALID_TIMER) // A directly invoked timer is from battle_stop_walking, therefore the rest is irrelevant.
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user