關於使用itemskill來獲得所點選的玩家AID問題
我對於源碼部分都不熟,因此都是隨便亂改亂加,我試著在clif.c底下的clif_parse_UseSkillToId加上下列語法(紅色部分)skilllv = RFIFOW(fd,packet_db.pos);
skillnum = RFIFOW(fd,packet_db.pos);
target_id = RFIFOL(fd,packet_db.pos);
if( sd->skillitem == skillnum )
{
pc_setreg(sd, add_str("@getuseitemskillid"), skillnum); //當玩家使用物品技能時
pc_setreg(sd, add_str("@getuseitemskilllv"), skilllv); //當玩家使用物品技能時
pc_setreg(sd, add_str("@getuseitemskilltid"), target_id); //當玩家使用物品技能時
pc_setreg(sd, add_str("@getuseitemskillaid"), sd->bl.id); //當玩家使用物品技能時
npc_script_event(sd,NPCE_USEITEMSKILL); //當玩家使用物品技能時
}
if( skilllv < 1 ) skilllv = 1; //No clue, I have seen the client do this with guild skills :/
tmp = skill_get_inf(skillnum);
if (tmp&INF_GROUND_SKILL || !tmp)
return; //Using a ground/passive skill on a target? WRONG.遊戲中測試OK,可以拿到我要的資料,但是有個問題來了
當我自創一個技能ID,舉例這邊用9001編號
然後給他的設定跟治癒術一樣
9001,9,6,16,6,0x21,0,10,1,yes,0,0,0,magic,0, ACCOUND_ID,帳號
28,9,6,16,6,0x21,0,10,1,yes,0,0,0,magic,0, AL_HEAL,治癒術
然後我試著用原本的治癒術點玩家,可以正常補血並拿到我要的資料
再來我用我自己創的技能對玩家使用,直接使用後沒有拿到資料,必須要按著SHIFT再點才有辦法得到我要的資料...
這個新創的技能9001,我想要改成不用按SHIFT點玩家就可以拿到帳號等資料。
請問這邊我又是哪邊沒有設定好呢?
應該是技能id問題 你用 1021試試
你在一般地圖點擊玩家使用火箭術看看能不能取得id
有沒有人知道要改的話,要怎麼改呢? 該技能在PVP模式下的使用結果呢?
一樣要加shift才有用嗎
看原始碼是跟shift無直接關聯的…… he01204046 發表於 2012-8-18 09:22 AM static/image/common/back.gif
有沒有人知道要改的話,要怎麼改呢?
改客戶端, 我記得有部分是負責這個
kiedveian 發表於 2012-8-18 10:25 AM static/image/common/back.gif
該技能在PVP模式下的使用結果呢?
一樣要加shift才有用嗎
...
在一般地圖跟PVP地圖裡
客戶端對技能類型判斷是不同的
而不是SHIFT的使用與否...
(在一般地圖使用SHIFT,客戶端才會送出資料)
我這邊的疑問可能沒有表達得很清楚,這點我先說一下抱歉
我的意思是說,同樣跟治癒一樣的DB設定
治癒可以直接點,有效果有資料
可是我自己設定的技能(跟治癒的設定一樣),卻必須要加上SHIFT才能點取玩家得到資料
所以現在可能是客戶端的部分,有哪個部分需要對於技能的ID去做特別的設定
像是物品說明或是物品名稱這類的設定這樣
但是目前就不知道這個部分是放在哪裡,我有去找過跟SKILL有關的客戶端部分,好像只有查到
skilltreeview.txt看起來應該是不同職業可以學的技能
skillnametable.txt技能的名稱顯示對照
skilldesctable2.txt & skilldesctable.txt 技能的詳細說明
lua files/skillinfo/
lua files/skillinfoz/
底下的檔案,看起來跟技能的使用上好像沒有關聯 我可以很確定的告訴你, 這不是源碼的問題 嘗試過/noshift 然後再向玩家使用技能 ??
頁:
[1]