summaryrefslogtreecommitdiff
path: root/src/map/atcommand.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/atcommand.c')
-rw-r--r--src/map/atcommand.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 702a7550d..7a202d3fd 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -7811,6 +7811,45 @@ int atcommand_showdelay(const int fd, struct map_session_data* sd, const char* c
}
/*==========================================
+ * Barricade Build
+ *------------------------------------------*/
+int atcommand_barricade(const int fd, struct map_session_data* sd, const char* command, const char* message)
+{
+ int x = 0, y = 0, size = 1, killable = 0, dir = 0;
+ char event[50];
+ short result;
+
+ if( !message || !*message || (sscanf(message, "%d %d %d %d %d %50s", &x, &y, &size, &dir, &killable, event) < 6) )
+ {
+ clif_displaymessage(fd, "usage @barricade <x> <y> <size> <dir> <killable> <event>");
+ return -1;
+ }
+
+ if( x == -1 ) x = sd->bl.x;
+ if( y == -1 ) y = sd->bl.y;
+
+ result = mob_barricade_build(sd->bl.m, x, y, size, dir, (bool)killable, event);
+
+ switch( result )
+ {
+ case 0: clif_displaymessage(fd, "Barricade build."); return 0; break;
+ case 1: clif_displaymessage(fd, "Barricade fail. Invalid Size"); break;
+ case 2: clif_displaymessage(fd, "Barricade fail. Wall problem."); break;
+ case 3: clif_displaymessage(fd, "Barricade fail. Invalid Event"); break;
+ case 4: clif_displaymessage(fd, "Barricade fail. Event allready exists"); break;
+ }
+
+ return -1;
+}
+
+int atcommand_barricade_destroy(const int fd, struct map_session_data* sd, const char* command, const char* message)
+{
+ mob_barricade_destroy(sd->bl.m, message);
+
+ return 0;
+}
+
+/*==========================================
* Duel organizing functions [LuzZza]
*
* @duel [limit|nick] - create a duel
@@ -8529,6 +8568,8 @@ AtCommandInfo atcommand_info[] = {
{ "allowks", 6, atcommand_allowks },
{ "cash", 60, atcommand_cash },
{ "points", 60, atcommand_cash },
+ { "barricade", 60, atcommand_barricade },
+ { "killbarricade", 60, atcommand_barricade_destroy },
};