diff options
author | Lance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-11-20 12:39:27 +0000 |
---|---|---|
committer | Lance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2006-11-20 12:39:27 +0000 |
commit | d4922af048001a0a983cc185e81101f4e99454ad (patch) | |
tree | 035d02b982fd0d663a613233f94bde92b19979f6 | |
parent | 910042238bb081e769cd756a8268e3cdbef18f9e (diff) | |
download | hercules-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.c | 30 |
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); } |