diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/map.h | 1 | ||||
-rw-r--r-- | src/map/pc.c | 13 | ||||
-rw-r--r-- | src/map/script.c | 14 | ||||
-rw-r--r-- | src/map/script.h | 10 |
4 files changed, 21 insertions, 17 deletions
diff --git a/src/map/map.h b/src/map/map.h index 15de79d01..e6ad63b08 100644 --- a/src/map/map.h +++ b/src/map/map.h @@ -147,7 +147,6 @@ struct map_session_data { unsigned event_death : 1; unsigned event_kill : 1; unsigned event_disconnect : 1; - unsigned event_onconnect : 1; } state; struct { unsigned killer : 1; diff --git a/src/map/pc.c b/src/map/pc.c index 4aa2e7342..5ff5f06fd 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -876,8 +876,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars sd->state.event_death = pc_readglobalreg(sd,"PCDieEvent"); sd->state.event_kill = pc_readglobalreg(sd,"PCKillEvent"); sd->state.event_disconnect = pc_readglobalreg(sd,"PCLogoffEvent"); - sd->state.event_onconnect = pc_readglobalreg(sd,"PCLoginEvent"); - + if (night_flag == 1 && !map[sd->bl.m].flag.indoors) { char tmpstr[1024]; strcpy(tmpstr, msg_txt(500)); // Actually, it's the night... @@ -898,7 +897,7 @@ int pc_authok(int id, int login_id2, time_t connect_until_time, struct mmo_chars sprintf(tmp_output,"Character '"CL_WHITE"%s"CL_RESET"' logged in. (Account ID: '"CL_WHITE"%d"CL_RESET"').\n", sd->status.name, sd->status.account_id); ShowInfo(tmp_output); - if (sd->state.event_onconnect) { + { struct npc_data *npc; //printf("pc: OnPCLogin event done. (%d events)\n", npc_event_doall("OnPCLogin") ); if ((npc = npc_name2id("PCLoginEvent"))) { @@ -6581,8 +6580,6 @@ int pc_setglobalreg(struct map_session_data *sd,char *reg,int val) sd->state.event_kill = val; } else if(strcmp(reg,"PCLogoutEvent") == 0){ sd->state.event_disconnect = val; - } else if(strcmp(reg,"PCLoginEvent") == 0){ - sd->state.event_onconnect = val; } if(val==0){ @@ -6794,14 +6791,14 @@ int pc_addeventtimer(struct map_session_data *sd,int tick,const char *name) nullpo_retr(0, sd); - Assert(strlen(name) < 24); + Assert(strlen(name) < script_config.max_eventtimer_len); for(i=0;i<MAX_EVENTTIMER;i++) if( sd->eventtimer[i]==-1 ) break; if(i<MAX_EVENTTIMER){ - char *evname=(char *)aCalloc(24,sizeof(char)); - memcpy(evname,name,24); + char *evname=(char *)aCalloc(script_config.max_eventtimer_len,sizeof(char)); + memcpy(evname,name,script_config.max_eventtimer_len); sd->eventtimer[i]=add_timer(gettick()+tick, pc_eventtimer,sd->bl.id,(int)evname); sd->eventcount++; diff --git a/src/map/script.c b/src/map/script.c index c2369d024..6e00d15cb 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -78,14 +78,8 @@ struct dbt* script_get_userfunc_db(){ if(!userfunc_db) userfunc_db=strdb_init(50 int scriptlabel_final(void *k,void *d,va_list ap){ return 0; } static char pos[11][100] = {"頭","体","左手","右手","ローブ","靴","アクセサリー1","アクセサリー2","頭2","頭3","装着していない"}; -static struct Script_Config { - int warn_func_no_comma; - int warn_cmd_no_comma; - int warn_func_mismatch_paramnum; - int warn_cmd_mismatch_paramnum; - int check_cmdcount; - int check_gotocount; -} script_config; +struct Script_Config script_config; + static int parse_cmd_if=0; static int parse_cmd; @@ -7210,6 +7204,7 @@ int script_config_read(char *cfgName) script_config.warn_cmd_mismatch_paramnum=1; script_config.check_cmdcount=8192; script_config.check_gotocount=512; + script_config.max_eventtimer_len=32; fp=fopen(cfgName,"r"); if(fp==NULL){ @@ -7243,6 +7238,9 @@ int script_config_read(char *cfgName) else if(strcmpi(w1,"check_gotocount")==0) { script_config.check_gotocount = battle_config_switch(w2); } + else if(strcmpi(w1,"max_eventtimer_length")==0) { + script_config.max_eventtimer_len = battle_config_switch(w2); + } else if(strcmpi(w1,"import")==0){ script_config_read(w2); } diff --git a/src/map/script.h b/src/map/script.h index b50c46693..5dd266174 100644 --- a/src/map/script.h +++ b/src/map/script.h @@ -2,6 +2,16 @@ #ifndef _SCRIPT_H_ #define _SCRIPT_H_ +extern struct Script_Config { + int warn_func_no_comma; + int warn_cmd_no_comma; + int warn_func_mismatch_paramnum; + int warn_cmd_mismatch_paramnum; + int check_cmdcount; + int check_gotocount; + int max_eventtimer_len; +} script_config; + struct script_data { int type; union { |