[JX] Xin giúp đỡ Gọi tên Nhân vật và thực hiện lệnh trên nhân vật đó
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 2 của 2
  1. #1
    Thành Viên
    Ngày tham gia
    Jan 2015
    Bài viết
    103
    Thanks
    18
    Thanked 11 Times in 11 Posts

    Xin giúp đỡ Gọi tên Nhân vật và thực hiện lệnh trên nhân vật đó

    Hiện tại mình đang viết thẻ GM cho Jxlinux nhưng mình gặp vướng mắc ở Đoạn .lua này và thực hiện lệnh trên ID của nhân vật được chọn , Mong bạn nào giải giúp mình xíu với ạ !!


    function one()
    n=GetTask(8000)
    if ((n*10+1)>GetPlayerCount()) then
    Msg2Player("Kh«ng cã nh©n vËt nµy xin kiÔm tra l¹i.");
    else
    SetTask(8000,n*10+1)
    gmName=GetName()
    gmidx=PlayerIndex
    PlayerIndex=GetTask(8000)
    PlayerIndex=gmidx
    Msg2Player("Tªn ng­êi ch¬i: "..gmName.."");
    Say(wel1, 10, it, sk, mov, kic, inv, bufftp, exppp, buffskills, cscs, can);
    end
    end;

    Chỗ mình bôi đỏ ấy .
    Mình có dùng code GM của sv jx win như sau :
    function one()
    n=GetTask(8000)
    if ((n*10+3)>GetPlayerCount()) then
    Msg2Player("Kh«ng cã nh©n vËt nµy xin kiÔm tra l¹i.");
    else
    SetTask(8000,n*10+3)
    gmName=GetName()
    gmidx=PlayerIndex
    PlayerIndex=GetTask(8000)
    ObjName=GetName()
    PlayerIndex=gmidx
    Msg2Player("Tªn ng­êi ch¬i: "..ObjName.."");
    if GetName() == "GameMaster" then
    Say(wel1, 10, it, sk, mov, kic, inv, bufftp, exppp, buffskills, cscs, can);
    elseif GetName() == "GameMaster2" then
    Say(wel1, 7, it, sk, mov, kic, bufftp, inv, can);
    else
    Say(wel1, 6, it, sk, mov, kic, inv, can);
    end
    end
    end;

    Nếu dùng như code jx win nó bị lỗi chỗ ObjName .

    mình cần gọi đúng tên nhân vật theo ID mình chọn. nhưng mà chưa thực hiện dc mong mọi người giúp đỡ .
    Khách viếng thăm hãy cùng Slayer xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. #2
    Thành Viên
    Ngày tham gia
    Apr 2008
    Bài viết
    294
    Thanks
    3
    Thanked 42 Times in 36 Posts

    Icon1 Ðề: Xin giúp đỡ Gọi tên Nhân vật và thực hiện lệnh trên nhân vật đó

    ý bạn là thực hiện lệnh cho người chơi đúng không
    (n*10) + x = id người mình chọn
    n: giá trị lưu vị trí chọn hàng chục : 0-9 dc lưu trong Task 8000 -- nên lưu dạng TaskTemp
    x: giá trị lưu vị trí chọn hàng đơn vị :0-9
    ví dụ chọn người chơi có ID = 52 thì n = 5 và x = 2 --những giá trị này có dc khi mình chọn trong menu

    theo mình thì có thể ntn:
    khi chọn member có ID = 1 sẽ chạy hàm one() này.. Task 8000 lưu tạm id của người cần thực hiện lệnh. lần đầu thấy cái task 8k
    ở đây code xài hàm GetPlayerCount() không ổn cho lắm lý do: hàm này sẽ trả về số người chơi đang online, không phải trả về giá trị ID người chơi lớn nhất.
    vì thế nếu if ((n*10+1)>GetPlayerCount()) sẽ có lúc không check dc.
    --login acc 1 => id sẻ là 1, GetPlayerCount() = 1
    --login acc 2 => id sẻ là 2, GetPlayerCount() = 2
    bây giờ out acc 1 ra dùng acc 2 check => thì id:2 và GetPlayerCount() = 1

    vậy nếu ta muốn thực hiện lênh cho acc 2 thì n=0,x=2 if ((n*10+2)>GetPlayerCount()) luôn luôn đúng => Msg2Player("Kh«ng cã nh©n vËt nµy xin kiÔm tra l¹i.");
    mặc dù acc 2 vẫn đang online , coi như sống ngoài vòng pháp luật

    mình sẽ tạm làm như sau
    function one()
    local n = GetTaskTemp(8000) ---lấy giá trị hàng chục dc lưu trong task
    .......local gmidx = PlayerIndex --- lưu ID của bản thân lại
    ........PlayerIndex = n*10+1 ----chuyển Index qua người chơi
    .......gmName=GetName() -- lấy tên
    .......PlayerIndex=gmidx ---chuyển Index về lại bản thân
    if gmName ~= "" then
    .......Msg2Player("Tªn ng­êi ch¬i: "..gmName..""); lên TV cho admin
    Say(wel1, 10, it, sk, mov, kic, inv, bufftp, exppp, buffskills, cscs, can);
    else
    .......Msg2Player("Kh«ng cã nh©n vËt nµy xin kiÔm tra l¹i.");
    end
    end;
    Lần sửa cuối bởi tinhhack, ngày 22-06-15 lúc 06:13 PM.
    Khách viếng thăm hãy cùng tinhhack 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à 01:15 AM.
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ệ.