- Fixed a possible crash due to the recent core.c upgrade.
- Changing setting the Guild Master from pc_authok to clif_parse_LoadEndAck so that it will not fail to set the gmaster flag when the first person of a guild to log on is the guild master. git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@9347 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
b06ebc1719
commit
9692efa6f0
@ -4,6 +4,9 @@ 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.
|
||||
|
||||
2006/11/28
|
||||
* Changing setting the Guild Master from pc_authok to clif_parse_LoadEndAck
|
||||
so that it will not fail to set the gmaster flag when the first person of a
|
||||
guild to log on is the guild master. [Skotlex]
|
||||
* Modified the way Storm Gust freeze's counter works. Now it checks for the
|
||||
caster of the Storm Gust, if it's the same as the previous hit, the counter
|
||||
is increased, otherwise, the ID is updated and the counter is changed to 1.
|
||||
|
@ -227,9 +227,13 @@ int main (int argc, char **argv)
|
||||
|
||||
// initialise program arguments
|
||||
{
|
||||
char *p = SERVER_NAME = argv[0];
|
||||
while ((p = strchr(p, '/')) != NULL || (p = strchr(p, '\\')) != NULL)
|
||||
SERVER_NAME = ++p;
|
||||
char *p1 = SERVER_NAME = argv[0];
|
||||
char *p2 = p1;
|
||||
while ((p1 = strchr(p2, '/')) != NULL || (p1 = strchr(p2, '\\')) != NULL)
|
||||
{
|
||||
SERVER_NAME = ++p1;
|
||||
p2 = p1;
|
||||
}
|
||||
arg_c = argc;
|
||||
arg_v = argv;
|
||||
#ifndef SVNVERSION
|
||||
|
@ -8376,6 +8376,7 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
|
||||
|
||||
if(sd->state.connect_new) {
|
||||
int lv;
|
||||
struct guild *g;
|
||||
sd->state.connect_new = 0;
|
||||
clif_skillinfoblock(sd);
|
||||
clif_updatestatus(sd,SP_NEXTBASEEXP);
|
||||
@ -8405,6 +8406,15 @@ void clif_parse_LoadEndAck(int fd,struct map_session_data *sd)
|
||||
if(sd->hd)
|
||||
merc_hom_init_timers(sd->hd);
|
||||
|
||||
if (sd->status.guild_id > 0 && !sd->state.gmaster_flag &&
|
||||
(g=guild_search(sd->status.guild_id)) &&
|
||||
strcmp(sd->status.name,g->master) == 0)
|
||||
{ //Block Guild Skills to prevent logout/login reuse exploiting. [Skotlex]
|
||||
guild_block_skill(sd, 300000);
|
||||
//Also set the Guild Master flag.
|
||||
sd->state.gmaster_flag = g;
|
||||
}
|
||||
|
||||
//Delayed night effect on log-on fix for the glow-issue. Thanks to Larry.
|
||||
if (night_flag && map[sd->bl.m].flag.nightenabled)
|
||||
add_timer(gettick()+1000,clif_nighttimer,sd->bl.id,0);
|
||||
|
17
src/map/pc.c
17
src/map/pc.c
@ -565,7 +565,6 @@ int pc_isequip(struct map_session_data *sd,int n)
|
||||
*/
|
||||
int pc_authok(struct map_session_data *sd, int login_id2, time_t connect_until_time, struct mmo_charstatus *st)
|
||||
{
|
||||
struct guild *g;
|
||||
int i;
|
||||
unsigned long tick = gettick();
|
||||
|
||||
@ -670,22 +669,10 @@ int pc_authok(struct map_session_data *sd, int login_id2, time_t connect_until_t
|
||||
if (sd->status.hom_id > 0)
|
||||
intif_homunculus_requestload(sd->status.account_id, sd->status.hom_id);
|
||||
|
||||
// パ?ティ、ギルドデ?タの要求
|
||||
if (sd->status.party_id > 0 && party_search(sd->status.party_id) == NULL)
|
||||
party_request_info(sd->status.party_id);
|
||||
if (sd->status.guild_id > 0)
|
||||
{
|
||||
if ((g = guild_search(sd->status.guild_id)) == NULL)
|
||||
guild_request_info(sd->status.guild_id);
|
||||
else if (strcmp(sd->status.name,g->master) == 0)
|
||||
{ //Block Guild Skills to prevent logout/login reuse exploiting. [Skotlex]
|
||||
guild_block_skill(sd, 300000);
|
||||
//Also set the Guild Master flag.
|
||||
sd->state.gmaster_flag = g;
|
||||
}
|
||||
}
|
||||
|
||||
// 通知
|
||||
if (sd->status.guild_id > 0 && guild_search(sd->status.guild_id) == NULL)
|
||||
guild_request_info(sd->status.guild_id);
|
||||
|
||||
clif_authok(sd);
|
||||
map_addiddb(&sd->bl);
|
||||
|
@ -8355,8 +8355,6 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t
|
||||
case GD_EMERGENCYCALL:
|
||||
if (!sd->status.guild_id || !sd->state.gmaster_flag)
|
||||
return 0;
|
||||
if (lv <= 0)
|
||||
return 0;
|
||||
break;
|
||||
|
||||
case GS_GLITTERING:
|
||||
|
Loading…
x
Reference in New Issue
Block a user