summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-20 12:39:27 +0000
committerLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-20 12:39:27 +0000
commitd4922af048001a0a983cc185e81101f4e99454ad (patch)
tree035d02b982fd0d663a613233f94bde92b19979f6
parent910042238bb081e769cd756a8268e3cdbef18f9e (diff)
downloadhercules-d4922af048001a0a983cc185e81101f4e99454ad.tar.gz
hercules-d4922af048001a0a983cc185e81101f4e99454ad.tar.bz2
hercules-d4922af048001a0a983cc185e81101f4e99454ad.tar.xz
hercules-d4922af048001a0a983cc185e81101f4e99454ad.zip
- atcommand and charcommand backwards compatibility
modified src/map/script.c git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9268 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--src/map/script.c30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/map/script.c b/src/map/script.c
index ebe4c490c..bc87f8c0b 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -10109,8 +10109,14 @@ int buildin_atcommand(struct script_state *st)
if (st->rid)
sd = script_rid2sd(st);
- if (sd) atcommand_sub(sd->fd, sd, cmd, 99);
- else { //Use a dummy character.
+ if (sd){
+ if(cmd[0] != '@'){
+ cmd += strlen(sd->status.name);
+ while(*cmd != '@' && cmd != 0)
+ cmd++;
+ }
+ atcommand_sub(sd->fd, sd, cmd, 99);
+ } else { //Use a dummy character.
struct map_session_data dummy_sd;
struct block_list *bl = NULL;
malloc_set(&dummy_sd, 0, sizeof(struct map_session_data));
@@ -10120,6 +10126,11 @@ int buildin_atcommand(struct script_state *st)
if (bl->type == BL_NPC)
strncpy(dummy_sd.status.name, ((TBL_NPC*)bl)->name, NAME_LENGTH);
}
+ if(cmd[0] != '@'){
+ cmd += strlen(dummy_sd.status.name);
+ while(*cmd != '@' && cmd != 0)
+ cmd++;
+ }
atcommand_sub(0, &dummy_sd, cmd, 99);
}
@@ -10136,8 +10147,14 @@ int buildin_charcommand(struct script_state *st)
if (st->rid)
sd = script_rid2sd(st);
- if (sd) charcommand_sub(sd->fd, sd, cmd,99);
- else { //Use a dummy character.
+ if (sd){
+ if(cmd[0] != '#'){
+ cmd += strlen(sd->status.name);
+ while(*cmd != '#' && cmd != 0)
+ cmd++;
+ }
+ charcommand_sub(sd->fd, sd, cmd,99);
+ } else { //Use a dummy character.
struct map_session_data dummy_sd;
struct block_list *bl = NULL;
malloc_set(&dummy_sd, 0, sizeof(struct map_session_data));
@@ -10147,6 +10164,11 @@ int buildin_charcommand(struct script_state *st)
if (bl->type == BL_NPC)
strncpy(dummy_sd.status.name, ((TBL_NPC*)bl)->name, NAME_LENGTH);
}
+ if(cmd[0] != '#'){
+ cmd += strlen(dummy_sd.status.name);
+ while(*cmd != '#' && cmd != 0)
+ cmd++;
+ }
charcommand_sub(0, &dummy_sd, cmd, 99);
}