diff options
author | shennetsind <ind@henn.et> | 2013-11-27 09:13:29 -0200 |
---|---|---|
committer | shennetsind <ind@henn.et> | 2013-11-27 09:13:29 -0200 |
commit | f28877f6e6b14e4d16c91d3e7d1cfd576737d62a (patch) | |
tree | 4180de66293e2dd75c709f764a361c377c18bf77 | |
parent | 41a1f804e02aca52bf941dd12e4bf08e03e91dca (diff) | |
download | hercules-f28877f6e6b14e4d16c91d3e7d1cfd576737d62a.tar.gz hercules-f28877f6e6b14e4d16c91d3e7d1cfd576737d62a.tar.bz2 hercules-f28877f6e6b14e4d16c91d3e7d1cfd576737d62a.tar.xz hercules-f28877f6e6b14e4d16c91d3e7d1cfd576737d62a.zip |
Fixed Bug 7805
Modified @itembound so that it provides feedback in case of bind conditions that fail to meet. pc_additem messages will remain so that any other area that might create a invalid bind item will still be cancelled and provide feedback.
Special Thanks to kyeme.
http://hercules.ws/board/tracker/issue-7805-itembound-console-error-when-no-partyguild/
Signed-off-by: shennetsind <ind@henn.et>
-rw-r--r-- | conf/messages.conf | 3 | ||||
-rw-r--r-- | src/map/atcommand.c | 25 |
2 files changed, 25 insertions, 3 deletions
diff --git a/conf/messages.conf b/conf/messages.conf index b6904328f..aae0596af 100644 --- a/conf/messages.conf +++ b/conf/messages.conf @@ -1560,6 +1560,9 @@ 1496: Item types on your autoloottype list: 1497: Your autoloottype list has been reset. +//Item Bind +1498: You can't add a party bound item to a character without party! +1499: You can't add a guild bound item to a character without guild! //Custom translations import: conf/import/msg_conf.txt diff --git a/src/map/atcommand.c b/src/map/atcommand.c index c87a66b72..5c31155b1 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -1117,9 +1117,28 @@ ACMD(item) return false; } - if(!strcmpi(info->command,"itembound") && !(bound >= IBT_MIN && bound <= IBT_MAX) ) { - clif->message(fd, msg_txt(298)); // Invalid bound type - return false; + if(!strcmpi(info->command,"itembound") ) { + if( !(bound >= IBT_MIN && bound <= IBT_MAX) ) { + clif->message(fd, msg_txt(298)); // Invalid bound type + return false; + } + switch( (enum e_item_bound_type)bound ) { + case IBT_CHARACTER: + case IBT_ACCOUNT: + break; /* no restrictions */ + case IBT_PARTY: + if( !sd->status.party_id ) { + clif->message(fd, msg_txt(1498)); //You can't add a party bound item to a character without party! + return false; + } + break; + case IBT_GUILD: + if( !sd->status.guild_id ) { + clif->message(fd, msg_txt(1499)); //You can't add a guild bound item to a character without guild! + return false; + } + break; + } } item_id = item_data->nameid; |