rAthena 的 unittalk cmd 修改
本帖最後由 z0202520 於 2016-3-12 02:31 AM 編輯因為 unititalk 會顯示 npc 全名。
所以我想把它改成只顯示 npc 的前名不顯示 npc 的 hidden name。
有參考論壇版上的教學
http://okayro.com/thread-256280-1-3.html
該教學的該段程式是有問題的,char 無法直接等於 const char
talker = status_get_name(bl);
因此我自己稍微修改一下成
BUILDIN_FUNC(unittalk)
{
int unit_id, i;
char* talker;
const char* message;
struct block_list* bl;
unit_id = script_getnum(st,2);
message = script_getstr(st,3);
bl = map_id2bl(unit_id);
if (bl != NULL) {
struct StringBuf sbuf;
strcpy(talker, status_get_name(bl));
for (i=0; i<strlen(talker); i++ )
if ( talker == '#' )
talker = '\0';
StringBuf_Init(&sbuf);
StringBuf_Printf(&sbuf, "%s : %s", talker, message);
clif_disp_overhead(bl, StringBuf_Value(&sbuf));
StringBuf_Destroy(&sbuf);
}
return SCRIPT_CMD_SUCCESS;
}
在未修改前的原始版本是可以正常使用的
但是在修改完後出現了異常的錯誤,如下圖 (火狐瀏覽器無法開啟鑲嵌圖片視窗,因此直接貼圖片網址)
http://i.imgur.com/FoGMJwe.jpg
當對話到小麥•傑克時就會在小黑窗出現錯誤
script : run_script_main : unknown command : 1241513984 @ 1840
照程式碼看起來應該是沒有問題才對
有勞高手幫忙了,謝謝。
本帖最後由 sinya 於 2016-3-14 07:06 PM 編輯
talker 不要用指標 就沒警告了 用這樣
char talker;
頁:
[1]