he01204046 發表於 2012-8-14 23:57:13

關於使用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點玩家就可以拿到帳號等資料。

請問這邊我又是哪邊沒有設定好呢?



sinya 發表於 2012-8-15 00:46:44

應該是技能id問題 你用 1021試試

為私服而開 發表於 2012-8-15 00:49:10

你在一般地圖點擊玩家使用火箭術看看能不能取得id

he01204046 發表於 2012-8-18 09:22:38

有沒有人知道要改的話,要怎麼改呢?

kiedveian 發表於 2012-8-18 10:25:05

該技能在PVP模式下的使用結果呢?
一樣要加shift才有用嗎

看原始碼是跟shift無直接關聯的……

為私服而開 發表於 2012-8-18 17:41:04

he01204046 發表於 2012-8-18 09:22 AM static/image/common/back.gif
有沒有人知道要改的話,要怎麼改呢?

改客戶端, 我記得有部分是負責這個

Alopex 發表於 2012-8-18 20:47:39

kiedveian 發表於 2012-8-18 10:25 AM static/image/common/back.gif
該技能在PVP模式下的使用結果呢?
一樣要加shift才有用嗎


...

在一般地圖跟PVP地圖裡

客戶端對技能類型判斷是不同的

而不是SHIFT的使用與否...

(在一般地圖使用SHIFT,客戶端才會送出資料)

he01204046 發表於 2012-8-19 00:49:29

我這邊的疑問可能沒有表達得很清楚,這點我先說一下抱歉

我的意思是說,同樣跟治癒一樣的DB設定

治癒可以直接點,有效果有資料

可是我自己設定的技能(跟治癒的設定一樣),卻必須要加上SHIFT才能點取玩家得到資料

所以現在可能是客戶端的部分,有哪個部分需要對於技能的ID去做特別的設定

像是物品說明或是物品名稱這類的設定這樣

但是目前就不知道這個部分是放在哪裡,我有去找過跟SKILL有關的客戶端部分,好像只有查到

skilltreeview.txt看起來應該是不同職業可以學的技能
skillnametable.txt技能的名稱顯示對照
skilldesctable2.txt & skilldesctable.txt 技能的詳細說明

lua files/skillinfo/
lua files/skillinfoz/
底下的檔案,看起來跟技能的使用上好像沒有關聯

為私服而開 發表於 2012-8-19 10:35:01

我可以很確定的告訴你, 這不是源碼的問題

emistry 發表於 2013-12-28 12:06:41

嘗試過/noshift 然後再向玩家使用技能 ??
頁: [1]
查看完整版本: 關於使用itemskill來獲得所點選的玩家AID問題