diff options
author | Haru <haru@dotalux.com> | 2017-04-24 18:02:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-04-24 18:02:05 +0200 |
commit | bef73e430775667740df6f3db25bb810ac50c31b (patch) | |
tree | b870735968c8898b614fca5339e12a375465a973 | |
parent | ab31b1129b0015559137509e0c3099386f1a69ee (diff) | |
parent | e6c0203a6da6930d9c4a2b762190cd0428e106ca (diff) | |
download | hercules-bef73e430775667740df6f3db25bb810ac50c31b.tar.gz hercules-bef73e430775667740df6f3db25bb810ac50c31b.tar.bz2 hercules-bef73e430775667740df6f3db25bb810ac50c31b.tar.xz hercules-bef73e430775667740df6f3db25bb810ac50c31b.zip |
Merge pull request #1705 from Jedzkie/14-SC_ALL_RIDING
Removed hard coded values on @cashmount and setcashmount.
-rw-r--r-- | conf/map/battle/items.conf | 4 | ||||
-rw-r--r-- | src/map/atcommand.c | 14 | ||||
-rw-r--r-- | src/map/battle.c | 3 | ||||
-rw-r--r-- | src/map/battle.h | 1 | ||||
-rw-r--r-- | src/map/script.c | 26 |
5 files changed, 32 insertions, 16 deletions
diff --git a/conf/map/battle/items.conf b/conf/map/battle/items.conf index 3c9ba71e9..c7aa99245 100644 --- a/conf/map/battle/items.conf +++ b/conf/map/battle/items.conf @@ -118,3 +118,7 @@ unequip_restricted_equipment: 0 // When unequip a bow with arrow equipped, it also unequip the arrow? // Default: true (Official behavior, applies only in Renewal) bow_unequip_arrow: true + +// How much should rental mounts increase a player's movement speed? (Note 2) +// Official: 25 (Default) +boarding_halter_speed: 25 diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 881e50497..bf816faa7 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -8420,22 +8420,24 @@ ACMD(charcommands) return true; } -/* for new mounts */ +/* For new mounts */ ACMD(cashmount) { if (pc_hasmount(sd)) { - clif->message(fd, msg_fd(fd,1476)); // You are already mounting something else + clif->message(fd, msg_fd(fd, 1476)); // You are already mounting something else return false; } - clif->message(sd->fd,msg_fd(fd,1362)); // NOTICE: If you crash with mount your LUA is outdated. + clif->message(sd->fd, msg_fd(fd, 1362)); // NOTICE: If you crash with mount your LUA is outdated. + if (!sd->sc.data[SC_ALL_RIDING]) { - clif->message(sd->fd,msg_fd(fd,1363)); // You have mounted. - sc_start(NULL, &sd->bl, SC_ALL_RIDING, 100, 25, INFINITE_DURATION); + clif->message(sd->fd, msg_fd(fd, 1363)); // You have mounted. + sc_start(NULL, &sd->bl, SC_ALL_RIDING, 100, battle_config.boarding_halter_speed, INFINITE_DURATION); } else { - clif->message(sd->fd,msg_fd(fd,1364)); // You have released your mount. + clif->message(sd->fd, msg_fd(fd, 1364)); // You have released your mount. status_change_end(&sd->bl, SC_ALL_RIDING, INVALID_TIMER); } + return true; } diff --git a/src/map/battle.c b/src/map/battle.c index fdea849fb..a4e6d8dd1 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -7333,7 +7333,8 @@ static const struct battle_data { { "max_summoner_parameter", &battle_config.max_summoner_parameter, 120, 10, 10000, }, { "mvp_exp_reward_message", &battle_config.mvp_exp_reward_message, 0, 0, 1, }, { "monster_eye_range_bonus", &battle_config.mob_eye_range_bonus, 0, 0, 10, }, - { "prevent_logout_trigger", &battle_config.prevent_logout_trigger, 0xE, 0, 0xF, } + { "prevent_logout_trigger", &battle_config.prevent_logout_trigger, 0xE, 0, 0xF, }, + { "boarding_halter_speed", &battle_config.boarding_halter_speed, 25, 0, 100, }, }; #ifndef STATS_OPT_OUT /** diff --git a/src/map/battle.h b/src/map/battle.h index b5846e457..d582f3c92 100644 --- a/src/map/battle.h +++ b/src/map/battle.h @@ -554,6 +554,7 @@ struct Battle_Config { int mob_eye_range_bonus; //Vulture's Eye and Snake's Eye range bonus int prevent_logout_trigger; + int boarding_halter_speed; }; /* criteria for battle_config.idletime_critera */ diff --git a/src/map/script.c b/src/map/script.c index c9c51afbc..a6d3ac852 100644 --- a/src/map/script.c +++ b/src/map/script.c @@ -21268,12 +21268,16 @@ BUILDIN(makerune) BUILDIN(hascashmount) { struct map_session_data *sd = script->rid2sd(st); + if (sd == NULL) return true; - if( sd->sc.data[SC_ALL_RIDING] ) - script_pushint(st,1); - else - script_pushint(st,0); + + if (sd->sc.data[SC_ALL_RIDING]) { + script_pushint(st, 1); + } else { + script_pushint(st, 0); + } + return true; } @@ -21287,18 +21291,22 @@ BUILDIN(hascashmount) BUILDIN(setcashmount) { struct map_session_data *sd = script->rid2sd(st); + if (sd == NULL) return true; + if (pc_hasmount(sd)) { clif->msgtable(sd, MSG_REINS_CANT_USE_MOUNTED); - script_pushint(st,0);//can't mount with one of these + script_pushint(st, 0); // Can't mount with one of these } else { - if (sd->sc.data[SC_ALL_RIDING]) + if (sd->sc.data[SC_ALL_RIDING]) { status_change_end(&sd->bl, SC_ALL_RIDING, INVALID_TIMER); - else - sc_start(NULL, &sd->bl, SC_ALL_RIDING, 100, 25, INFINITE_DURATION); - script_pushint(st,1);//in both cases, return 1. + } else { + sc_start(NULL, &sd->bl, SC_ALL_RIDING, 100, battle_config.boarding_halter_speed, INFINITE_DURATION); + } + script_pushint(st, 1); // In both cases, return 1. } + return true; } |