this is just like adding custom cell. i just want to make a custom events called agawan based.
but before that i must learn how to make custom cell like cell_nochat? but on mine i would like to call it cell_based. this cell effect have an option to disabled battle inside that cell zone. so player can stay there to avoid touching or hit by the other players.
thanks in advance. i found this on eAthena custom cell_pk but this is no longer compatible on rathena so i would like to ask for a support for this thanks.
//battle.c
//find this
int battle_check_target( struct block_list *src, struct block_list *target,int flag)
//add this before it
bool cell_pk_check(struct block_list *t_bl, struct block_list *s_bl, int m)
{
if(t_bl->type == BL_PC && map[m].cell[s_bl->x+s_bl->y*map[m].xs].pk == true && map[m].cell[t_bl->x+t_bl->y*map[m].xs].pk == true)
{
if(status_get_party_id(t_bl)==status_get_party_id(s_bl))
if(map[m].flag.pvp_noparty)
return true;
else
return false;
if(status_get_guild_id(t_bl)==status_get_guild_id(s_bl))
if(map[m].flag.pvp_noguild && map[m].flag.gvg)
return true;
else
return false;
return true;
}
return false;
}
//+++++++++++++++++++++++++++++++++//
//find this
else if(( sd->duel_group && !((!battle_config.duel_allow_pvp && map[m].flag.p
//use this to replace
else if(( sd->duel_group && !((!battle_config.duel_allow_pvp && map[m].flag.pvp) || (!battle_config.duel_allow_gvg && map_flag_gvg(m))))||( cell_pk_check(t_bl, s_bl, m) == true ))
//+++++++++++++++++++++++++++++++++//
//map.c
void map_setcell(int m, int x, int y, cell_t cell, bool flag)
{
int j;
if( m < 0 || m >= map_num || x < 0 || x >= map[m].xs || y < 0 || y >= map[m].ys )
return;
j = x + y*map[m].xs;
switch( cell ) {
case CELL_WALKABLE: map[m].cell[j].walkable = flag; break;
case CELL_SHOOTABLE: map[m].cell[j].shootable = flag; break;
case CELL_WATER: map[m].cell[j].water = flag; break;
case CELL_NPC: map[m].cell[j].npc = flag; break;
case CELL_BASILICA: map[m].cell[j].basilica = flag; break;
case CELL_LANDPROTECTOR: map[m].cell[j].landprotector = flag; break;
case CELL_NOVENDING: map[m].cell[j].novending = flag; break;
case CELL_NOCHAT: map[m].cell[j].nochat = flag; break;
case CELL_PK: map[m].cell[j].pk = flag; break;//<---add this
default:
ShowWarning("map_setcell: invalid cell type '%d'\n", (int)cell);
break;
}
}
//+++++++++++++++++++++++++++++++++//
//map.h
typedef enum {
CELL_WALKABLE,
CELL_SHOOTABLE,
CELL_WATER,
CELL_NPC,
CELL_BASILICA,
CELL_LANDPROTECTOR,
CELL_NOVENDING,
CELL_NOCHAT,
CELL_PK,//<---add this
} cell_t;
//+++++++++++++++++++++++++++++++++//
struct mapcell
{
// terrain flags
unsigned char
walkable : 1,
shootable : 1,
water : 1;
// dynamic flags
unsigned char
npc : 1,
basilica : 1,
landprotector : 1,
novending : 1,
nochat : 1,
pk : 1;//<---add this
//+++++++++++++++++++++++++++++++++//
//db\const.txt
cell_walkable 0
cell_shootable 1
cell_water 2
cell_npc 3
cell_basilica 4
cell_landprotector 5
cell_novending 6
cell_nochat 7
cell_pk 8//<---add this
//+++++++++++++++++++++++++++++++++//
Question
Brynner
this is just like adding custom cell. i just want to make a custom events called agawan based.
but before that i must learn how to make custom cell like cell_nochat? but on mine i would like to call it cell_based. this cell effect have an option to disabled battle inside that cell zone. so player can stay there to avoid touching or hit by the other players.
thanks in advance. i found this on eAthena custom cell_pk but this is no longer compatible on rathena so i would like to ask for a support for this thanks.
Link to comment
Share on other sites
7 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.