- When when a party-member levels up, the level change is sent to the char-server to update the even-share range values.
- When joining a gvg_dungeon, the pvp packet will be sent to signal versus. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9759 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
083fc86437
commit
8a9e1eaa07
@ -4,6 +4,10 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
|
|||||||
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
|
||||||
|
|
||||||
2007/01/31
|
2007/01/31
|
||||||
|
* When when a party-member levels up, the level change is sent to the
|
||||||
|
char-server to update the even-share range values.
|
||||||
|
* When joining a gvg_dungeon, the pvp packet will be sent to signal
|
||||||
|
versus. With this gvg dungeons should be working correctly now. [Skotlex]
|
||||||
* Changes in the VS8 project files: [FlavioJS]
|
* Changes in the VS8 project files: [FlavioJS]
|
||||||
- synchronized the settings between the projects
|
- synchronized the settings between the projects
|
||||||
- joined all .h and .cpp files and grouped them based on the src subfolder
|
- joined all .h and .cpp files and grouped them based on the src subfolder
|
||||||
|
@ -637,11 +637,12 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
|
|||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for(i = 0; i < MAX_PARTY; i++) {
|
for(i = 0; i < MAX_PARTY &&
|
||||||
if(p->party.member[i].account_id == account_id &&
|
(p->party.member[i].account_id != account_id ||
|
||||||
p->party.member[i].char_id == char_id)
|
p->party.member[i].char_id != char_id); i++);
|
||||||
{
|
|
||||||
p->party.member[i].map = map;
|
if (i == MAX_PARTY) return 0;
|
||||||
|
|
||||||
if (p->party.member[i].online != online)
|
if (p->party.member[i].online != online)
|
||||||
{
|
{
|
||||||
p->party.member[i].online = online;
|
p->party.member[i].online = online;
|
||||||
@ -669,10 +670,12 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
|
|||||||
int_party_check_lv(p);
|
int_party_check_lv(p);
|
||||||
} else
|
} else
|
||||||
p->party.member[i].lv = lv;
|
p->party.member[i].lv = lv;
|
||||||
|
//There is no need to send level update to map servers
|
||||||
|
//since they do nothing with it.
|
||||||
}
|
}
|
||||||
|
if (p->party.member[i].map != map) {
|
||||||
|
p->party.member[i].map = map;
|
||||||
mapif_party_membermoved(&p->party, i);
|
mapif_party_membermoved(&p->party, i);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -716,7 +716,7 @@ int mapif_parse_PartyLeave(int fd, int party_id, int account_id, int char_id)
|
|||||||
mapif_party_info(-1,&p->party);
|
mapif_party_info(-1,&p->party);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
// When member goes to other map
|
// When member goes to other map or levels up.
|
||||||
int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv)
|
int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id, unsigned short map, int online, unsigned int lv)
|
||||||
{
|
{
|
||||||
struct party_data *p;
|
struct party_data *p;
|
||||||
@ -726,11 +726,12 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
|
|||||||
if (p == NULL)
|
if (p == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
for(i = 0; i < MAX_PARTY; i++) {
|
for(i = 0; i < MAX_PARTY &&
|
||||||
if(p->party.member[i].account_id == account_id &&
|
(p->party.member[i].account_id != account_id ||
|
||||||
p->party.member[i].char_id == char_id)
|
p->party.member[i].char_id != char_id); i++);
|
||||||
{
|
|
||||||
p->party.member[i].map = map;
|
if (i == MAX_PARTY) return 0;
|
||||||
|
|
||||||
if (p->party.member[i].online != online)
|
if (p->party.member[i].online != online)
|
||||||
{
|
{
|
||||||
p->party.member[i].online = online;
|
p->party.member[i].online = online;
|
||||||
@ -750,6 +751,7 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
|
|||||||
int_party_check_lv(p);
|
int_party_check_lv(p);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (p->party.member[i].lv != lv) {
|
if (p->party.member[i].lv != lv) {
|
||||||
if(p->party.member[i].lv == p->min_lv ||
|
if(p->party.member[i].lv == p->min_lv ||
|
||||||
p->party.member[i].lv == p->max_lv)
|
p->party.member[i].lv == p->max_lv)
|
||||||
@ -758,13 +760,17 @@ int mapif_parse_PartyChangeMap(int fd, int party_id, int account_id, int char_id
|
|||||||
int_party_check_lv(p);
|
int_party_check_lv(p);
|
||||||
} else
|
} else
|
||||||
p->party.member[i].lv = lv;
|
p->party.member[i].lv = lv;
|
||||||
|
//There is no need to send level update to map servers
|
||||||
|
//since they do nothing with it.
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (p->party.member[i].map != map) {
|
||||||
|
p->party.member[i].map = map;
|
||||||
mapif_party_membermoved(&p->party, i);
|
mapif_party_membermoved(&p->party, i);
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// ƒp<C692>[ƒeƒB‰ðŽU—v‹<76>
|
// ƒp<C692>[ƒeƒB‰ðŽU—v‹<76>
|
||||||
int mapif_parse_BreakParty(int fd,int party_id)
|
int mapif_parse_BreakParty(int fd,int party_id)
|
||||||
{
|
{
|
||||||
|
@ -8175,9 +8175,13 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
|
|||||||
|
|
||||||
if (map[sd->bl.m].flag.gvg_dungeon)
|
if (map[sd->bl.m].flag.gvg_dungeon)
|
||||||
{
|
{
|
||||||
clif_set0199(fd,2); //TODO: Figure out the real thing to do here.
|
clif_set0199(fd, 1); //TODO: Figure out the real packet to send here.
|
||||||
if (!sd->pvp_point)
|
if (!sd->pvp_point)
|
||||||
|
{
|
||||||
sd->pvp_point=5; //Need to die twice to be warped out.
|
sd->pvp_point=5; //Need to die twice to be warped out.
|
||||||
|
sd->pvp_won=0;
|
||||||
|
sd->pvp_lost=0;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if(map_flag_gvg(sd->bl.m))
|
if(map_flag_gvg(sd->bl.m))
|
||||||
|
@ -508,15 +508,14 @@ int party_recv_movemap(int party_id,int account_id,int char_id, unsigned short m
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int party_send_movemap(struct map_session_data *sd)
|
void party_send_movemap(struct map_session_data *sd)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
struct party_data *p;
|
struct party_data *p;
|
||||||
|
|
||||||
nullpo_retr(0, sd);
|
|
||||||
|
|
||||||
if( sd->status.party_id==0 )
|
if( sd->status.party_id==0 )
|
||||||
return 0;
|
return;
|
||||||
|
|
||||||
intif_party_changemap(sd,1);
|
intif_party_changemap(sd,1);
|
||||||
|
|
||||||
p=party_search(sd->status.party_id);
|
p=party_search(sd->status.party_id);
|
||||||
@ -532,7 +531,7 @@ int party_send_movemap(struct map_session_data *sd)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if( sd->state.party_sent )
|
if( sd->state.party_sent )
|
||||||
return 0;
|
return;
|
||||||
|
|
||||||
party_check_conflict(sd);
|
party_check_conflict(sd);
|
||||||
|
|
||||||
@ -546,7 +545,12 @@ int party_send_movemap(struct map_session_data *sd)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void party_send_levelup(struct map_session_data *sd)
|
||||||
|
{
|
||||||
|
intif_party_changemap(sd,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
int party_send_logout(struct map_session_data *sd)
|
int party_send_logout(struct map_session_data *sd)
|
||||||
|
@ -32,7 +32,8 @@ int party_recv_movemap(int party_id,int account_id,int char_id, unsigned short m
|
|||||||
int party_broken(int party_id);
|
int party_broken(int party_id);
|
||||||
int party_optionchanged(int party_id,int account_id,int exp,int item,int flag);
|
int party_optionchanged(int party_id,int account_id,int exp,int item,int flag);
|
||||||
int party_changeoption(struct map_session_data *sd,int exp,int item);
|
int party_changeoption(struct map_session_data *sd,int exp,int item);
|
||||||
int party_send_movemap(struct map_session_data *sd);
|
void party_send_movemap(struct map_session_data *sd);
|
||||||
|
void party_send_levelup(struct map_session_data *sd);
|
||||||
int party_send_logout(struct map_session_data *sd);
|
int party_send_logout(struct map_session_data *sd);
|
||||||
int party_send_message(struct map_session_data *sd,char *mes,int len);
|
int party_send_message(struct map_session_data *sd,char *mes,int len);
|
||||||
int party_recv_message(int party_id,int account_id,char *mes,int len);
|
int party_recv_message(int party_id,int account_id,char *mes,int len);
|
||||||
|
@ -4100,6 +4100,9 @@ int pc_checkbaselevelup(struct map_session_data *sd)
|
|||||||
//LORDALFA - LVLUPEVENT
|
//LORDALFA - LVLUPEVENT
|
||||||
if(sd->state.event_baselvup)
|
if(sd->state.event_baselvup)
|
||||||
npc_script_event(sd, NPCE_BASELVUP);
|
npc_script_event(sd, NPCE_BASELVUP);
|
||||||
|
|
||||||
|
if(sd->status.party_id)
|
||||||
|
party_send_levelup(sd);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user