[KT] Xin hỏi về lỗi đánh quái nhận đồng thường
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Kết quả 1 đến 8 của 8
  1. #1
    Thành Viên anhnhianh's Avatar
    Ngày tham gia
    Jan 2014
    Bài viết
    625
    Thanks
    134
    Thanked 90 Times in 73 Posts

    Xin hỏi về lỗi đánh quái nhận đồng thường

    e dùng sever 2.6 . e add code nhận đồng khi giết quái vào player.lua vào game đánh quái thì lại ko ra đồng thường e cũng đã copy cái player bản gốc nhưng vẫn ko đc ko biết còn liên quan đến cái gì nữa mong pro nào chỉ giáo với. sau đây là code e add vào player

    PHP Code:
    function Player:_OnKillNpc()
        -- 
    如果是精英怪,首领怪,判断是否要给玩家的同伴添加经验
        
    if him.GetNpcType() ~= 0 then
            Partner
    :OnKillBoss(mehim);
        
    end

        Task
    :OnKillNpc(me,him);
        
    local nMapId me.GetWorldPos(); 
        if (
    nMapId == 1536) and (nMapId == 1537) and (nMapId == 1538) and (nMapId == 1539then
        me
    .AddJbCoin(10); 
        
    me.Msg("<color=wheat>Bạn nhận được<color=red> 10 <color> đồng <color>");  
        
    end  
        
    end 
    mong pro xem xét
    Khách viếng thăm hãy cùng anhnhianh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,313
    Thanks
    256
    Thanked 737 Times in 557 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    Không thấy sai gì có khả năng là do sai cách dùng and . Không chuyên lập trình nên không biết nhưng thấy kì kì ở chổ
    if (nMapId == 1536) and (nMapId == 1537) and (nMapId == 1538) and (nMapId == 1539) then .

    Thông thường : Nếu And xuất hiện trong if nghĩa là điều kiện hiển nhiên đúng mới thực hiện hàm. Ví dụ đang đứng ở Map 1536 nhưng cú pháp lại là and 1537. Chương trình sẽ hiểu là nếu bạn đang đứng ở map 1536 = 1537 thì sẽ chạy... ( bất khả thi ngay tại đây ).

    Nếu dùng Or thì hoàn toàn khác. Or có nghĩa là hoặc ví dụ if nMapId == 1536 or nMapId == 1537 then. Nghĩa là nếu bạn đang đứng ở 1536 hoặc 1537 thì điều kiện được thực thi.


    Nếu dùng and thì nên viết theo dạng khoảng cách giữa các số.

    Có thể viết lại theo cách này.
    Code:
        local nMapId, nPosX, nPosY = me.GetWorldPos();   
     if nMapId >= 1536 and nMapId <= 1539 then
            me.AddJbCoin(2);
            me.Msg(string.format("Nhân vật đã nhận <color=yellow>2 đồng<color> từ hoạt động"));    
        end
    Hoặc thay and bằng or thử xem.

    Đoán đại thôi
    Lần sửa cuối bởi __Jie__, ngày 01-09-15 lúc 08:57 PM.
    Nhận viết sự kiện Kiếm Thế PC - Kiếm Thế Mobile
    Bishop check pass 100% kiếm thế win
    Web: [Only registered and activated users can see links. ]

  3. Các thành viên gởi lời cảm ơn đến __Jie__ vì bài viết này !

    anhnhianh (02-09-15)

  4. #3
    Thành Viên Tâm Huyết satthupro95's Avatar
    Ngày tham gia
    Jan 2012
    Bài viết
    2,391
    Thanks
    2,566
    Thanked 1,821 Times in 865 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    if (nMapId == 1536) and (nMapId == 1537) and (nMapId == 1538) and (nMapId == 1539) then -- And có nghĩa là đồng thời, đổi thành Or (hoặc) là được
    Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. Các thành viên gởi lời cảm ơn đến satthupro95 vì bài viết này !

    anhnhianh (02-09-15)

  6. #4
    ✎﹏ Nà Ní Team ❖ ︻╦╤─ ҉ - na.ilusm89's Avatar
    Ngày tham gia
    May 2012
    Bài viết
    1,084
    Thanks
    99
    Thanked 707 Times in 402 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    Trích dẫn Gửi bởi anhnhianh [Only registered and activated users can see links. ]
    e dùng sever 2.6 . e add code nhận đồng khi giết quái vào player.lua vào game đánh quái thì lại ko ra đồng thường e cũng đã copy cái player bản gốc nhưng vẫn ko đc ko biết còn liên quan đến cái gì nữa mong pro nào chỉ giáo với. sau đây là code e add vào player

    PHP Code:
    function Player:_OnKillNpc()
        -- 
    如果是精英怪,首领怪,判断是否要给玩家的同伴添加经验
        
    if him.GetNpcType() ~= 0 then
            Partner
    :OnKillBoss(mehim);
        
    end

        Task
    :OnKillNpc(me,him);
        
    local nMapId me.GetWorldPos(); 
        if (
    nMapId == 1536) and (nMapId == 1537) and (nMapId == 1538) and (nMapId == 1539then
        me
    .AddJbCoin(10); 
        
    me.Msg("<color=wheat>Bạn nhận được<color=red> 10 <color> đồng <color>");  
        
    end  
        
    end 
    mong pro xem xét

    Sai hàm and rồi e... Đổi hàm and thành or là ok

    PHP Code:
     if (nMapId == 1536) or (nMapId == 1537) or (nMapId == 1538) or (nMapId == 1539then 
    ℵóα

  7. Các thành viên gởi lời cảm ơn đến na.ilusm89 vì bài viết này !

    anhnhianh (02-09-15)

  8. #5
    Thành Viên anhnhianh's Avatar
    Ngày tham gia
    Jan 2014
    Bài viết
    625
    Thanks
    134
    Thanked 90 Times in 73 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    à thì ra là sai hàm tks mấy đại ca khó hiểu 2 chữ or và and quá chả biết lúc nào dùng cho hợp
    Khách viếng thăm hãy cùng anhnhianh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #6
    Thành Viên Tâm Huyết __Jie__'s Avatar
    Ngày tham gia
    Sep 2008
    Bài viết
    1,313
    Thanks
    256
    Thanked 737 Times in 557 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    Như tôi đã giải thích phía trên chắc từ nay sẽ Hiểu.
    Đơn giản nếu dùng and trong if có nghĩa là luôn luôn đúng mới thực thi.
    Nếu dùng and thì dùng cách điếm khoảng cách giữa các số kết hợp các phép toàn >= and <=.

    Còn nhiều cái ở Plugin nó hiểu nhưng chưa có dịp thử trên server không biết nó hiểu ko
    Ví dụ : if string.find(GetMapNameFormId(me.nTemplateMapId), "Tần Lăng") then -- doc vào chắc hiểu mục đích nó làm gì
    Nhận viết sự kiện Kiếm Thế PC - Kiếm Thế Mobile
    Bishop check pass 100% kiếm thế win
    Web: [Only registered and activated users can see links. ]

  10. Các thành viên gởi lời cảm ơn đến __Jie__ vì bài viết này !

    anhnhianh (02-09-15)

  11. #7
    Thành Viên
    Ngày tham gia
    Apr 2014
    Bài viết
    78
    Thanks
    25
    Thanked 5 Times in 4 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    If (Điều kiện A) and (Điều kiện B) and (Điều kiện C) then
    (Hàm Thực Thi X)
    end

    - Dùng 'and' thì phải thoả mãn cả 3 điều kiện A, B, C thì mới thực thi được hàm X

    If (Điều kiện A) or (Điều kiện B) or (Điều kiện C) then
    (Hàm Thực Thi X)
    end

    - Dùng 'or' thì chỉ cần thỏa mãn 1 trong 3 điều kiện A hoặc B hoặc C là đã có thể thực thi được hàm X
    Khách viếng thăm hãy cùng SInSu xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  12. The Following 2 Users Say Thank You to SInSu For This Useful Post:

    anhnhianh (02-09-15), nnquyen309 (30-03-24)

  13. #8
    Thành Viên anhnhianh's Avatar
    Ngày tham gia
    Jan 2014
    Bài viết
    625
    Thanks
    134
    Thanked 90 Times in 73 Posts

    Ðề: Xin hỏi về lỗi đánh quái nhận đồng thường

    Trích dẫn Gửi bởi SInSu [Only registered and activated users can see links. ]
    If (Điều kiện A) and (Điều kiện B) and (Điều kiện C) then
    (Hàm Thực Thi X)
    end

    - Dùng 'and' thì phải thoả mãn cả 3 điều kiện A, B, C thì mới thực thi được hàm X

    If (Điều kiện A) or (Điều kiện B) or (Điều kiện C) then
    (Hàm Thực Thi X)
    end

    - Dùng 'or' thì chỉ cần thỏa mãn 1 trong 3 điều kiện A hoặc B hoặc C là đã có thể thực thi được hàm X
    nói như bác Su dễ hiểu hơn đấy tks bác nhiều
    Khách viếng thăm hãy cùng anhnhianh xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 08:51 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.