diff options
Diffstat (limited to 'src/map/duel.c')
-rw-r--r-- | src/map/duel.c | 88 |
1 files changed, 42 insertions, 46 deletions
diff --git a/src/map/duel.c b/src/map/duel.c index c658ea3e3..c66fd6fc2 100644 --- a/src/map/duel.c +++ b/src/map/duel.c @@ -2,8 +2,8 @@ * This file is part of Hercules. * http://herc.ws - http://github.com/HerculesWS/Hercules * - * Copyright (C) 2012-2015 Hercules Dev Team - * Copyright (C) Athena Dev Teams + * Copyright (C) 2012-2020 Hercules Dev Team + * Copyright (C) Athena Dev Teams * * Hercules is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -33,36 +33,23 @@ #include <string.h> #include <time.h> -struct duel_interface duel_s; +static struct duel_interface duel_s; struct duel_interface *duel; /*========================================== * Duel organizing functions [LuzZza] *------------------------------------------*/ -void duel_savetime(struct map_session_data* sd) { - time_t clock; - struct tm *t; - - time(&clock); - t = localtime(&clock); - - pc_setglobalreg(sd, script->add_str("PC_LAST_DUEL_TIME"), t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min); +static void duel_savetime(struct map_session_data *sd) +{ + pc_setglobalreg(sd, script->add_variable("PC_LAST_DUEL_TIME"), (int)time(NULL)); } -int duel_checktime(struct map_session_data* sd) { - int diff; - time_t clock; - struct tm *t; - - time(&clock); - t = localtime(&clock); - - diff = t->tm_mday*24*60 + t->tm_hour*60 + t->tm_min - pc_readglobalreg(sd, script->add_str("PC_LAST_DUEL_TIME") ); - - return !(diff >= 0 && diff < battle_config.duel_time_interval); +static int64 duel_difftime(struct map_session_data *sd) +{ + return (pc_readglobalreg(sd, script->add_variable("PC_LAST_DUEL_TIME")) + battle_config.duel_time_interval - (int)time(NULL)); } -static int duel_showinfo_sub(struct map_session_data* sd, va_list va) +static int duel_showinfo_sub(struct map_session_data *sd, va_list va) { struct map_session_data *ssd = va_arg(va, struct map_session_data*); int *p = va_arg(va, int*); @@ -73,11 +60,12 @@ static int duel_showinfo_sub(struct map_session_data* sd, va_list va) if (sd->duel_group != ssd->duel_group) return 0; sprintf(output, " %d. %s", ++(*p), sd->status.name); - clif_disp_onlyself(ssd, output, strlen(output)); + clif_disp_onlyself(ssd, output); return 1; } -void duel_showinfo(const unsigned int did, struct map_session_data* sd) { +static void duel_showinfo(const unsigned int did, struct map_session_data *sd) +{ int p=0; char output[256]; @@ -93,11 +81,12 @@ void duel_showinfo(const unsigned int did, struct map_session_data* sd) { duel->list[did].members_count, duel->list[did].members_count + duel->list[did].invites_count); - clif_disp_onlyself(sd, output, strlen(output)); + clif_disp_onlyself(sd, output); map->foreachpc(duel_showinfo_sub, sd, &p); } -int duel_create(struct map_session_data* sd, const unsigned int maxpl) { +static int duel_create(struct map_session_data *sd, const unsigned int maxpl) +{ int i=1; char output[256]; @@ -113,31 +102,32 @@ int duel_create(struct map_session_data* sd, const unsigned int maxpl) { duel->list[i].max_players_limit = maxpl; safestrncpy(output, msg_sd(sd,372), sizeof(output)); // " -- Duel has been created (@invite/@leave) --" - clif_disp_onlyself(sd, output, strlen(output)); + clif_disp_onlyself(sd, output); clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); clif->maptypeproperty2(&sd->bl,SELF); return i; } -void duel_invite(const unsigned int did, struct map_session_data* sd, struct map_session_data* target_sd) { +static void duel_invite(const unsigned int did, struct map_session_data *sd, struct map_session_data *target_sd) +{ char output[256]; nullpo_retv(sd); nullpo_retv(target_sd); // " -- Player %s invites %s to duel --" sprintf(output, msg_sd(sd,373), sd->status.name, target_sd->status.name); - clif->disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif->disp_message(&sd->bl, output, DUEL_WOS); target_sd->duel_invite = did; duel->list[did].invites_count++; // "Blue -- Player %s invites you to PVP duel (@accept/@reject) --" sprintf(output, msg_sd(target_sd,374), sd->status.name); - clif->broadcast(&target_sd->bl, output, strlen(output)+1, BC_BLUE, SELF); + clif->broadcast(&target_sd->bl, output, (int)strlen(output)+1, BC_BLUE, SELF); } -static int duel_leave_sub(struct map_session_data* sd, va_list va) +static int duel_leave_sub(struct map_session_data *sd, va_list va) { int did = va_arg(va, int); nullpo_ret(sd); @@ -146,13 +136,14 @@ static int duel_leave_sub(struct map_session_data* sd, va_list va) return 0; } -void duel_leave(const unsigned int did, struct map_session_data* sd) { +static void duel_leave(const unsigned int did, struct map_session_data *sd) +{ char output[256]; nullpo_retv(sd); // " <- Player %s has left duel --" sprintf(output, msg_sd(sd,375), sd->status.name); - clif->disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif->disp_message(&sd->bl, output, DUEL_WOS); duel->list[did].members_count--; if(duel->list[did].members_count == 0) { @@ -166,7 +157,8 @@ void duel_leave(const unsigned int did, struct map_session_data* sd) { clif->maptypeproperty2(&sd->bl,SELF); } -void duel_accept(const unsigned int did, struct map_session_data* sd) { +static void duel_accept(const unsigned int did, struct map_session_data *sd) +{ char output[256]; nullpo_retv(sd); @@ -177,28 +169,31 @@ void duel_accept(const unsigned int did, struct map_session_data* sd) { // " -> Player %s has accepted duel --" sprintf(output, msg_sd(sd,376), sd->status.name); - clif->disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif->disp_message(&sd->bl, output, DUEL_WOS); clif->map_property(sd, MAPPROPERTY_FREEPVPZONE); clif->maptypeproperty2(&sd->bl,SELF); } -void duel_reject(const unsigned int did, struct map_session_data* sd) { +static void duel_reject(const unsigned int did, struct map_session_data *sd) +{ char output[256]; nullpo_retv(sd); // " -- Player %s has rejected duel --" sprintf(output, msg_sd(sd,377), sd->status.name); - clif->disp_message(&sd->bl, output, strlen(output), DUEL_WOS); + clif->disp_message(&sd->bl, output, DUEL_WOS); duel->list[did].invites_count--; sd->duel_invite = 0; } -void do_final_duel(void) { +static void do_final_duel(void) +{ } -void do_init_duel(bool minimal) { +static void do_init_duel(bool minimal) +{ if (minimal) return; @@ -206,11 +201,12 @@ void do_init_duel(bool minimal) { } /*===================================== -* Default Functions : duel.h -* Generated by HerculesInterfaceMaker -* created by Susu -*-------------------------------------*/ -void duel_defaults(void) { + * Default Functions : duel.h + * Generated by HerculesInterfaceMaker + * created by Susu + *-------------------------------------*/ +void duel_defaults(void) +{ duel = &duel_s; /* vars */ duel->count = 0; @@ -222,7 +218,7 @@ void duel_defaults(void) { duel->reject = duel_reject; duel->leave = duel_leave; duel->showinfo = duel_showinfo; - duel->checktime = duel_checktime; + duel->difftime = duel_difftime; duel->init = do_init_duel; duel->final = do_final_duel; |