Các Pro chỉ giùm mình với

Thảo luận trong 'TS Online' bắt đầu bởi TuyettinhkiemHC, 14/4/06.

  1. TuyettinhkiemHC

    TuyettinhkiemHC Youtube Master Race

    Tham gia ngày:
    5/11/05
    Bài viết:
    24
    Các Procó thể chỉ mình làm thế nào biết đc NPC DialogId thế đc ko, hình như mình thấy trc đây ở topic LegN@- Bản mới ra mắt có HD là dùng lệnh ts.ClickOnNPC nhưng mình ko nhớ là làm thế nào nữa, các Pro ai biết giúp mình đc ko?
    À còn 1 vấn đề này nữa mình ko hiếu tại sao chỉ có 1 con NPC mà có nhiếu NPC DialogID thế, Vd ở sc bot TTT mình thấy

    /********************* NPC Dialog ID ***********************/
    public override void NpcDialog(ushort DialogId)
    {
    debug("Dialog ID = "+DialogId.ToString());
    if(DialogId==10885) {ts.SendEnd();}
    else if(DialogId==10886) {ts.SendEnd();}
    else if(DialogId==10887) {ts.SendEnd();}
    else if(DialogId==10883) {ts.ClickOnNPC(1);}
    }

    như thế là sao mình ko hiểu, mình tưởng 1 con NPC thì chỉ có 1 NPC DialogID thui chứ
    Còn có vấn đề này là minh ko hiểu, nếu đc các Pro giải thích là mình có thể tự viết bot NPC đc rồi, ko làm phiền mo ng nữa, giúp mình với nha

    CÁC PRO AI BIẾT CHỈ GIÙM MÌNH VỚI, CÁCH TÌM NPC Dialog ID THẾ NÀO VẬY
     
  2. Pawn

    Pawn Mr & Ms Pac-Man

    Tham gia ngày:
    28/2/06
    Bài viết:
    166
    +cách 1:test ClickOnNPC bằng cách gõ lệnh vào ô chat của legna,

    Mã:
    legna://ts.ClickOnNPC(1)
    (test Giản Ung)

    lega sẽ debug ra DialogID nếu hàm NpcDialog trong script có command debug.

    +cách 2:(đừng ai xái cách này:p)

    trong script ở hàm Start chỉ để dòng:

    Mã:
    ts.ClickOnNPC(NPCId);
    còn ở hàm NpcDialog và NpcDialogMenu thì để như vầy thôi:

    Mã:
    public override void NpcDialog(ushort DialogId) 
    {     
    debug("Dialog ID = "+DialogId.ToString()); 
    } 
    
    Mã:
    public override void NpcDialogMenu(ushort DialogId) 
    { 
    debug("Dialog Menu ID = "+DialogId.ToString()); 
    } 
    
    rùi log vô bằng legna và nhấn F3 thì legna sẽ debug ra DialogId và MenuId thôi.

    =================================
    sau khi nhận dc DialogId thì xử lý lần lượt(xử lý dần dần vào script) các DialogId đó bằng các lệnh ts.SendEnd()
    nếu là Dialog bình thường và bằng ts.ClickOnNPC() nếu là Dialog kết thúc quest.

    còn menuid thì xử lý bằng ts.SelectChoice().

    ví dụ khi nhận dc 1 dialogid là 10157 đi,thì vô script thêm vào trong hàm NpcDialog dòng

    Mã:
    if(DialogId==10157){ts.SendEnd();}
    sau đó lại trở về bước 1 và sẽ nhận dc thêm các dialog khác(nếu có).

    [​IMG]

    1 con NPC chỉ có 1 NPCId(như GU thì NPCId là 1,DDA là 3...v.v...) còn mỗi DialogId là 1 câu hội thoại khi nói chuyện với NPC,khi nói chuyện thì có nhiều câu hôi thoại phải ko nè:hug:
     

Chia sẻ trang này