z0202520 發表於 2016-3-6 23:00:10

關於npctalk的疑問

本帖最後由 z0202520 於 2016-3-9 07:42 PM 編輯

在撰寫副本的過程中,有很多npc需要使用到npctalk
若我把他寫成函數,讓npc使用該函數傳入 訊息 及 該npc名稱
能否將npctalk寫在function內利用關聯npc方式去讓該npc說話啊?

在rAthena的commands裡面的格式是如下述,所以沒辦法使用關聯npc的寫法*npctalk "<message>";有找到類似的寫法,但他需要有NPC的GID關聯*unittalk <GID>,"<text>";

This command will make a <GID> say a message.如果要利用GID去控制的話,如何建立NPC與GID關聯呢?

在勞請知道的高手指導了,謝謝!

vincent800307 發表於 2016-3-7 08:39:36

你要的是
getnpcid?

Residue 發表於 2016-3-7 15:39:33

NPC有GID

不過我好奇的是你要做什麼樣的應用?

可否形容一下?

Mr.Brown 發表於 2016-3-7 16:34:52

NPCNAME: ABC
unittalk getnpcid(0,instance_npcname("ABC")),"<text>";

z0202520 發表於 2016-3-8 01:02:45

Mr.Brown 發表於 2016-3-7 04:34 PM static/image/common/back.gif
NPCNAME: ABC
unittalk getnpcid(0,instance_npcname("ABC")),"";

謝謝~~ 就是在找獲取npc的GID函數 !!!
不過在請問你一下
NPC 名稱不是為 visible#hidden 格式嗎?
可是使用 unittalk 他會全部都顯示出來
有沒有辦法控制npc只顯示visible的名稱呢?


z0202520 發表於 2016-3-8 01:04:10

Residue 發表於 2016-3-7 03:39 PM static/image/common/back.gif
NPC有GID

不過我好奇的是你要做什麼樣的應用?


讓NPC說話的這個功能寫成函數
可以在不同Npc都去呼叫那函數說話就好~


z0202520 發表於 2016-3-8 01:04:53

vincent800307 發表於 2016-3-7 08:39 AM static/image/common/back.gif
你要的是
getnpcid?

bingo !!
謝謝

a91323 發表於 2016-3-8 01:25:55

z0202520 發表於 2016-3-8 01:02 AM static/image/common/back.gif
謝謝~~ 就是在找獲取npc的GID函數 !!!
不過在請問你一下
NPC 名稱不是為 visible#hidden 格式嗎?


strnpcinfo*strnpcinfo(<type>)

This function will return the various parts of the name of the calling NPC.
Whatever it returns is determined by type.

0 - The NPC's display name (visible#hidden)
1 - The visible part of the NPC's display name
2 - The hidden part of the NPC's display name
3 - The NPC's unique name (::name)
4 - The name of the map the NPC is in.

z0202520 發表於 2016-3-8 01:45:50

a91323 發表於 2016-3-8 01:25 AM static/image/common/back.gif
strnpcinfo

這個我知道,不過使用unittalk的時候沒辦法使用這個吧?*unittalk <GID>,"<text>";他沒辦法決定是要使用哪一部分的npc名稱呢..

Residue 發表於 2016-3-8 23:51:43

z0202520 發表於 2016-3-8 01:45 AM static/image/common/back.gif
這個我知道,不過使用unittalk的時候沒辦法使用這個吧?他沒辦法決定是要使用哪一部分的npc名稱呢..
如果不要顯示HiddenName

你需要這個 [指令修正]unittalk

z0202520 發表於 2016-3-9 19:42:24

Residue 發表於 2016-3-8 11:51 PM static/image/common/back.gif
如果不要顯示HiddenName

你需要這個 [指令修正]unittalk

謝謝支援!

sinya 發表於 2016-3-10 05:39:36

本帖最後由 sinya 於 2016-3-10 05:41 AM 編輯

不一定要用unittalk
donpcevent也可以阿 方法很多種

eathena 沒有 getnpcid 一樣也是可以

z0202520 發表於 2016-3-10 19:42:21

sinya 發表於 2016-3-10 05:39 AM static/image/common/back.gif
不一定要用unittalk
donpcevent也可以阿 方法很多種



donpcevent 這個可以我知道
不過他要寫在每個npc內
我想直接把說話寫成一個function
所以只需要打想說的話就可以了

sinya 發表於 2016-3-10 23:57:59

本帖最後由 sinya 於 2016-3-11 12:16 AM 編輯

z0202520 發表於 2016-3-10 07:42 PM static/image/common/back.gif
donpcevent 這個可以我知道
不過他要寫在每個npc內
我想直接把說話寫成一個function


要說的話不用寫在npc裡 寫在function 裡也可 只要指定 npc變數存你要說的話就可 然後再去donpcevent


fucntion        xxx         {
        set getvariableofnpc( .taktext$, instance_npcname("abc#01")),"這是要讓abc npc說的話" ;
        donpcevent instance_npcname("abc#01")+"::OnTalk";
}


XXXx        script abc#01        100,{
end;

OnTalk:
npctalk .taktext$;
end;

}

z0202520 發表於 2016-3-11 22:45:05

sinya 發表於 2016-3-10 11:57 PM static/image/common/back.gif
要說的話不用寫在npc裡 寫在function 裡也可 只要指定 npc變數存你要說的話就可 然後再去donpcevent

...

原來如此!
受教了,謝謝~~
頁: [1]
查看完整版本: 關於npctalk的疑問