summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changelog.txt3
-rw-r--r--Makefile1
-rw-r--r--conf-tmpl/battle_athena.conf3
-rw-r--r--src/map/atcommand.c42
-rw-r--r--src/map/atcommand.h1
-rw-r--r--src/map/pc.c2
6 files changed, 49 insertions, 3 deletions
diff --git a/Changelog.txt b/Changelog.txt
index 0c8782821..893d11747 100644
--- a/Changelog.txt
+++ b/Changelog.txt
@@ -1,5 +1,8 @@
Date Added
12/17
+ * Fixed skill #301 causing crashes [MouseJstr]
+ * Fixed documentation error on gm_skills_unconditionl [MouseJstr]
+ * added @grind test command.. only for testing [MouseJstr]
* Added clearweather to the atcommand configuration file. [nsstrunks]
12/16
* Added a fix for AFM loading, thanks to Pete [celest]
diff --git a/Makefile b/Makefile
index e6b79229e..0cd7f2c31 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,6 @@
# $Id: Makefile 158 2004-10-01 03:45:15Z PoW $
+# CC = /usr/local/bin/gcc -fbounds-checking -pipe
CC = gcc -pipe
PACKETDEF = -DPACKETVER=6 -DNEW_006b -DSO_REUSEPORT
#PACKETDEF = -DPACKETVER=5 -DNEW_006b
diff --git a/conf-tmpl/battle_athena.conf b/conf-tmpl/battle_athena.conf
index f0ae5e9b1..74672d35d 100644
--- a/conf-tmpl/battle_athena.conf
+++ b/conf-tmpl/battle_athena.conf
@@ -208,7 +208,8 @@ gm_all_skill_add_abra: no
// [GM] Can equip anything? (No or minimum GM level, can cause client errors.)
gm_all_equipment: no
-// [GM] Raise skills unconditionally, that is, put points in to a skill not in thier jobs skill tree? (no or minimum gm level)
+// [GM] Can use skills without meeting the required conditions (no
+// blue gems? no problem
gm_skill_unconditional: no
// Can a normal player by-pass the skill tree? (Note 1)
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index aea1f145b..d1f645d9c 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -233,6 +233,8 @@ ACMD_FUNC(marry); // by MouseJstr
ACMD_FUNC(divorce); // by MouseJstr
ACMD_FUNC(rings); // by MouseJstr
+ACMD_FUNC(grind); // by MouseJstr
+
/*==========================================
*AtCommandInfo atcommand_info[]構造体の定義
*------------------------------------------
@@ -483,6 +485,7 @@ static AtCommandInfo atcommand_info[] = {
{ AtCommand_Marry, "@marry", 40, atcommand_marry }, // [MouseJstr]
{ AtCommand_Divorce, "@divorce", 40, atcommand_divorce }, // [MouseJstr]
{ AtCommand_Rings, "@rings", 40, atcommand_rings }, // [MouseJstr]
+ { AtCommand_Grind, "@grind", 40, atcommand_grind }, // [MouseJstr]
// add new commands before this line
{ AtCommand_Unknown, NULL, 1, NULL }
@@ -2160,7 +2163,6 @@ int atcommand_alive(
return 0;
}
return -1;
-
}
/*==========================================
@@ -7495,6 +7497,44 @@ atcommand_rings(const int fd, struct map_session_data* sd,
}
/*==========================================
+ * @grind by [MouseJstr]
+ *------------------------------------------
+ */
+int
+atcommand_grind(const int fd, struct map_session_data* sd,
+ const char* command, const char* message)
+{
+ struct map_session_data *pl_sd = NULL;
+ int skillnum;
+ int inf;
+ char target[255];
+ nullpo_retr(-1, sd);
+
+ if (!message || !*message)
+ return -1;
+ if(sscanf(message, "%s", target) != 1) {
+ clif_displaymessage(fd, "Usage: @grind <target>");
+ return -1;
+ }
+ if((pl_sd=map_nick2sd(target)) == NULL)
+ return -1;
+
+ for (skillnum = 1; skillnum < 500; skillnum++) {
+ sd->status.sp = sd->status.max_sp;
+ atcommand_alive(fd, sd, command, message);
+
+ inf = skill_get_inf(skillnum);
+
+ if ((inf == 2) || (inf == 1))
+ skill_use_pos(sd, pl_sd->bl.x+5, pl_sd->bl.y+5, skillnum, 1);
+ else
+ skill_use_id(sd, pl_sd->bl.id, skillnum, 1);
+ }
+
+ return 0;
+}
+
+/*==========================================
* It is made to rain.
*------------------------------------------
*/
diff --git a/src/map/atcommand.h b/src/map/atcommand.h
index d3fa22a07..96838b7ae 100644
--- a/src/map/atcommand.h
+++ b/src/map/atcommand.h
@@ -216,6 +216,7 @@ enum AtCommandType {
AtCommand_Marry, // by MouseJstr
AtCommand_Divorce, // by MouseJstr
AtCommand_Rings, // by MouseJstr
+ AtCommand_Grind, // by MouseJstr
// end
AtCommand_Unknown,
diff --git a/src/map/pc.c b/src/map/pc.c
index d975deaf5..3c37f7ce1 100644
--- a/src/map/pc.c
+++ b/src/map/pc.c
@@ -5408,7 +5408,7 @@ int pc_damage(struct block_list *src,struct map_session_data *sd,int damage)
if (sd->sc_data) {
if (sd->sc_data[SC_ENDURE].timer == -1 && sd->sc_data[SC_BERSERK].timer == -1 && !sd->special_state.infinite_endure)
pc_stop_walking(sd,3);
- else if(sd->sc_data[SC_ENDURE].timer != -1 && src->type==BL_MOB && (--sd->sc_data[SC_ENDURE].val2) <= 0)
+ else if(sd->sc_data[SC_ENDURE].timer != -1 && (src != NULL && src->type==BL_MOB) && (--sd->sc_data[SC_ENDURE].val2) <= 0)
skill_status_change_end(&sd->bl, SC_ENDURE, -1);
} else
pc_stop_walking(sd,3);