summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/common/core.c10
-rw-r--r--src/map/clif.c10
-rw-r--r--src/map/pc.c17
-rw-r--r--src/map/skill.c2
4 files changed, 19 insertions, 20 deletions
diff --git a/src/common/core.c b/src/common/core.c
index 1f361bd95..06ee6b2b8 100644
--- a/src/common/core.c
+++ b/src/common/core.c
@@ -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
diff --git a/src/map/clif.c b/src/map/clif.c
index 5c2157aa2..380a57095 100644
--- a/src/map/clif.c
+++ b/src/map/clif.c
@@ -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);
diff --git a/src/map/pc.c b/src/map/pc.c
index 5a41868d2..80ce76857 100644
--- a/src/map/pc.c
+++ b/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);
diff --git a/src/map/skill.c b/src/map/skill.c
index ee3619822..60153cfb5 100644
--- a/src/map/skill.c
+++ b/src/map/skill.c
@@ -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: