[Launcher] Hướng dẫn, thảo luận và bộ sưu tập Launcher cho Counter Strike 1.6

  • Thread starter Thread starter Orpheus
  • Ngày gửi Ngày gửi
Status
Không mở trả lời sau này.
Math.Random :6cool_surrender: :6cool_surrender: :6cool_surrender:
JLR ơi,hình như JLR.EIOpen và JLR.EISetValue có vấn đề ??
Mình thử tạo ra 1 file có mã là pass,xong rồi dùng lệnh EIOpen nó báo -1 ???? dùng JLR.EICreate tạo ra 1 file mới thì sau đó handle là 1 [ không tính cái open ban đầu đi ] rồi mình viết Author=123456 với mã bảo mật luniar là JackerLuuRower vì cho nó đúng với Example.sau đó copy đoạn encrypt vào EI.jei rồi dùng EISetValue nhưng nó báo return -1 rồi decrypt lại thì vẫn như cũ @@ Mình thử cả JLR.Revive nữa nhưng không có được ???, thử cả JLR.EISave nữa @@
Mò mẫm 1h nhưng chẳng hiểu sao vẫn không được :( Còn về Encrypt rồi Decrypt lại thì ok luôn :D
 
Chỉnh sửa cuối:
Tất cả các chức năng của JLR.EI

number .JLR.EICreate.......(string Key, string File, boolean Overwrite = false)
number .JLR.EIOpen.........(string Key, string File, boolean Reload = true)
boolean JLR.EICheckSafe....(string Key, string File)
number .JLR.EISave ........(number Handle)
number .JLR.EISaveAs ......(number Handle, string FileAs)
table ..JLR.EIGetValueNames(number Handle)
string .JLR.EIGetValue ....(number Handle, string Value)
number .JLR.EISetValue ....(number Handle, string Value, string Data = "")
number .JLR.EIDeleteValue .(number Handle, string Value)
number .JLR.EIClear .......(number Handle)
boolean JLR.EIExistValue ..(number Handle, string Value)
Một vài chú ý cần thiết:
--[[
JLR.EICreate và JLR.EIOpen khi thực hiện hoàn tất công việc mà không gặp bất kì lỗi nào, sẽ trả về một số (Handle) dùng để điều khiển các công việc sau này. Dù việc này cũng sẽ khiến việc code phức tạp hơn, nhưng nó cũng rèn cho bạn cách dùng một biến linh hoạt.
Ví dụ:
--]]



-- Tạo một biến Handle trong Global Function
Handle = 0;

-- Trong một button Open File nào đó
Handle = JLR.EIOpen("JackerLuuRower", _SourceFolder.."\\File.JEI");
if Handle < 1 then
....Dialog.Message("JLR Encrypted INI", "File error");
else
....Author = JLR.EIGetValue(Handle, "Author");
....if Author ~= "JackerLuuRower" then
........Dialog.Message("JLR Encrypted INI", "Change \"Author\" to \"JackerLuuRower\"");
........JLR.EISetValue(Handle, "Author", "JackerLuuRower");
....end
end

-- Trong một button Set User Name nào đó
Enter = Dialog.Input("JLR Encrypted INI","Enter name of \"User\"");
if Enter ~= "" then
....JLR.EISetValue(Handle, "User", "JackerLuuRower");
....-- Thay đổi 1 Label là tên User
....Label.SetText("Name", Enter);
end

-- Trong một button Save Profile nào đó
JLR.EISave(Handle);

Rắc rối lớn nhất khi sử dụng JLR.EI là sự khác biệt giữa: JLR.EICreate và JLR.EIOpen
Trước hết, cả 2 function này đều trả về 1 số (-2, -1, 0 và 1 số > 0)
Trích từ file Help:
JLR.EICreate action use to create new Encrypted INI file and handle it directly. This function must use to create an empty Encrypted INI file before open with JLR.EIOpen action on next time. Be careful between JLR.EICreate and JLR.EIOpen action. If not, all value will be delete when you choose overwrite file.
JLR.EIOpen action use to load an old Encrypted INI file that containing at least a value and handle it. This function must use an old Encrypted INI file has been created with JLR.EICreate action. Attention, if the Encrypted INI file you load is empty, this function can't load it and return -1.

JLR.EICreate dùng để tạo một file JEI mới hoàn toàn hoặc có thể tạo một vùng mã hóa đơn lập, điều chú ý ở đây là nó sẽ tự động xóa toàn bộ dữ liệu trong file được chỉ tới và tạo 1 file trống. Trong khi đó, JLR.EIOpen dùng để mở một file JEI có sẵn, đã được tạo trước đó bằng JLR.EICreate.

Tại sao mình lại phải phân ra 2 chức năng tách biệt như thế, dù nó sẽ khiến công việc code trở nên rắc rối hơn?

Đầu tiên, nếu bạn nhanh ý, có thể nhận ra ngay JLR.EICreate chỉ tạo mới, chứ không dùng lại dữ liệu cũ, nên nó sẽ rất có ích trong trường hợp bạn muốn làm một vùng dữ liệu ảo và quản lý nó, chỉ khi nào cần mới Save. (Chẳng hạn như một người nào đó mới lập tài khoản, bạn sẽ quản lý cái vùng ảo này trước khi lưu nó ra file JEI.)

Thứ hai, JLR.EIOpen phải dùng lại dữ liệu cũ, nên function này chỉ dùng để tải lại thông tin đã lưu trước đó và sử dụng tiếp. (Chẳng hạn như các option, thông tin người dùng...)

Thứ ba, các bạn phải hiểu lý do mình đưa JLREISave vào, đó là vì mình không làm việc trực tiếp trên file, mà làm việc trong memory. Việc này đều có lợi và hại, nhưng theo mình thì lợi nhiều hơn. Ví dụ đơn giản là khi bạn thay đổi một dữ liệu trong JEI, nó sẽ chưa được lưu ra, một ai đó cũng không thể biết bạn đã thay đổi cái gì cho tới khi dùng JLREISave, việc này rất có lợi nếu bạn thực sự muốn bảo vệ dữ liệu.

Một ví dụ điển hình nhất dành cho JLR.EICreate và JLR.EIOpen là việc tạo các Profile khác nhau.
Lấy ví dụ trong việc lập một account, bạn không thể dùng lại setting của các account khác, mà phải tạo mới một setting dành riêng cho account đó. Việc bây giờ là bạn sẽ cần dùng JLR.EICreate để tạo mới. Sau đó, ở lần tiếp theo chạy chương trình, khi kiểm tra thấy đã tồn tại account kèm theo setting rồi, bạn chỉ việc dùng JLR.EIOpen để tải lại các setting dành riêng cho account đó.

Việc sử dụng JLR.EICreate và JLR.EIOpen một cách linh hoạt sẽ giúp chương trình của bạn mở rộng ra rất nhiều hướng.

Một vấn đề khác cần lưu ý là JLR.EISave và JLR.EICheckSafe
Trích từ file Help:
JLR.EISave: Always remember what data will save if you use this function. Because if current Encrypted INI file is empty and you save it, on next time when you want to use it, you must use JLR.EICreate action to work with an empty Encrypted INI file. Else if current Encrypted INI file is containing any value, next time you must use JLR.EIOpen action to load and handle it.
Khi lưu thông tin, bạn sẽ cần chú ý khá nhiều về vấn đề dữ liệu. Trong khi code, bạn phải nắm được tới bước đó, dữ liệu sẽ có những gì, có mất hay không để SetValue cho đúng rồi lưu. Đặt trường hợp bạn cho người dùng nhập tên, nhưng người dùng lại nhập là "", nên khi lưu, có khả năng sẽ lưu ra một file trống và chẳng được tích sự gì. Lần tới, nếu bạn dùng JLR.EIOpen mà đọc file trống đó thì lại hỏng chuyện.

JLR.EICheckSafe: Chức năng này hoạt động độc lập so với JLR.EIOpen và JLR.EICreate, nên nó đòi hỏi phải nhập lại Pass và Đường dẫn file, chức năng này sẽ rất hữu ích để kiểm tra sự an toàn của file JEI. Chẳng hạn khi bạn khởi động chương trình, kiểm tra xem nó có an toàn không, nếu nó trả về false, thì chỉ cần thoát ngay lập tức kèm theo lời nhắn "Dữ liệu hỏng" cho người dùng.


Chúc vui :))
 
tiepthiAZ up cho lên top đây... cho lên top nào...
 
Ai còn thắc mắc về JLR.EI nữa ko nào :6cool_surrender:. Giải thích chi tiết cách dùng rồi đới :6cool_boss:

Cơ mà hình như người ta chỉ ngoi lên lấy plugin rồi lặn luôn, chả thèm cmt làm mình cũng oải :4cool_confuse:
 
Ai còn thắc mắc về JLR.EI nữa ko nào :6cool_surrender:. Giải thích chi tiết cách dùng rồi đới :6cool_boss:

Cơ mà hình như người ta chỉ ngoi lên lấy plugin rồi lặn luôn, chả thèm cmt làm mình cũng oải :4cool_confuse:

Được......................... dùng rất tốt :6cool_boss:
 
Ai còn thắc mắc về JLR.EI nữa ko nào :6cool_surrender:. Giải thích chi tiết cách dùng rồi đới :6cool_boss:

Cơ mà hình như người ta chỉ ngoi lên lấy plugin rồi lặn luôn, chả thèm cmt làm mình cũng oải :4cool_confuse:

Quá tuyệt, giáo sư attick đã hết mình vì AMS:8cool_matrix:
 
Ai còn thắc mắc về JLR.EI nữa ko nào :6cool_surrender:. Giải thích chi tiết cách dùng rồi đới :6cool_boss:

Cơ mà hình như người ta chỉ ngoi lên lấy plugin rồi lặn luôn, chả thèm cmt làm mình cũng oải :4cool_confuse:

tuyệt vời, đây là một công trình nghiên cứu vĩ đại bậc nhất mà riêng bản thân tôi mong rằng chính phủ các cấp các ban ngành phối hợp cũng các bộ các chi các loài phải ghi nhận, tuyên dương, khen thưởng cho công sức đóng góp to lớn, hữu ích, thiết thực của giáo sư, đồng thời phải công nhận đây là công trình nghiên cứu vĩ đại của thế giới, mang tầm vóc quốc tế, có khả năng tạo ra một cuộc cách mạng lớn, một cuộc cách mạng mang tính chất lịch sử. Xin chúc mừng giáo sư, hi vọng giáo sư sẽ có nhiều đóng góp to lớn đến thế cho nền khoa học của nhân loại, thay mặt những người có mặt tại forum này, tôi xin hứa khi nào rãnh tui sẽ tải về và mò thử xem nó có gì hay :))
 
=)) ý kiến thì ít mà troll thì nhiều.
 
tuyệt vời, đây là một công trình nghiên cứu vĩ đại bậc nhất mà riêng bản thân tôi mong rằng chính phủ các cấp các ban ngành phối hợp cũng các bộ các chi các loài phải ghi nhận, tuyên dương, khen thưởng cho công sức đóng góp to lớn, hữu ích, thiết thực của giáo sư, đồng thời phải công nhận đây là công trình nghiên cứu vĩ đại của thế giới, mang tầm vóc quốc tế, có khả năng tạo ra một cuộc cách mạng lớn, một cuộc cách mạng mang tính chất lịch sử. Xin chúc mừng giáo sư, hi vọng giáo sư sẽ có nhiều đóng góp to lớn đến thế cho nền khoa học của nhân loại, thay mặt những người có mặt tại forum này, tôi xin hứa khi nào rãnh tui sẽ tải về và mò thử xem nó có gì hay :))

Hết bên VNZ h bên đây cũng spam luôn :))
 
Mọi người cho mình hỏi cách làm Launcher Wait (ẩn launcher sau khi ấn start và hiện lên khi xong trận) bằng AMS không?
Với lại lấy score (kill) của mỗi người sau trận đấu như thế nào thế

P/S:plugins JLR dùng tốt lắm nha :)
 
Mọi người cho mình hỏi cách làm Launcher Wait (ẩn launcher sau khi ấn start và hiện lên khi xong trận) bằng AMS không?
Với lại lấy score (kill) của mỗi người sau trận đấu như thế nào thế

P/S:plugins JLR dùng tốt lắm nha :)

Bình thường hay với JLR_Configs ?

 
Ai viết giùm mình đoạn code này với :( Cảm ơn :)
++Trên Dialog1, khi nhấn vào button1 thì sẽ show Dialog2 và đóng Dialog1.
Thấy đơn giản mà làm mãi không ra :6cool_beat_brick: Toàn khi tắt dialog2 thì dialog1 nó mới tắt @@
PHP:
if (DialogEx.Show("Dialog2", true, nil, nil)) then
DialogEx.Close(0)
end
 
Ai viết giùm mình đoạn code này với :( Cảm ơn :)
++Trên Dialog1, khi nhấn vào button1 thì sẽ show Dialog2 và đóng Dialog1.
Thấy đơn giản mà làm mãi không ra :6cool_beat_brick: Toàn khi tắt dialog2 thì dialog1 nó mới tắt @@
PHP:
if (DialogEx.Show("Dialog2", true, nil, nil)) then
DialogEx.Close(0)
end
Xem kĩ lại thử Page hay dialog vậy bạn ;))
 
cho lệnh show dialog 2 ngay trong page (ko phải dialog 1), xem help để biết thêm.
 
cho lệnh show dialog 2 ngay trong page (ko phải dialog 1), xem help để biết thêm.
Cái này mình biết ời, ý mình là vầy:
++Từ page sẽ show dialog1, rồi từ dialog1 show tiếp ra dialog2 và dialog1 tự động đóng sau khi dialog2 được show.
++Có nghĩa là từ dialog1 lại show tiếp ra thêm một dialog mới nữa và dialog1 sẽ đóng sau dialog đó được hiện :)

Bạn viết giùm mình đoạn code ngắn này nha :(
 
ko thể đc, chỉ có cách trên. hết.
 
ko thể đc, chỉ có cách trên. hết.
Cảm ơn bạn :D
P/s: Biết thế vào hỏi từ trưa cho rồi, tài tanh mò cả buổi trời cho một thứ không thể :6cool_beat_brick:
 
Không biết dạo này JLR có onl không ,không gửi được tin nhắn thôi thì post luôn lên đây:
1:về lệnh JLR.RunCSMap,mình muốn nó có lệnh WaitForReturn giống như vào bình thường liệu có được không ?
2:Hiện tại mình muốn làm thế nào để người chơi không thể sử dụng các lệnh như bot_stop,sv_gravirty,.......... Nếu dùng thì sẽ thoát game hay thực hiện lệnh gì đó ở launcher.
[ mình nghĩ ra là sử dụng biskeydown nhưng không thể sử dụng theo thứ tự 1 lượt được,nó tách riêng ra ]
3:cùng câu hỏi với bạn on154228 là lấy score (kill) của mỗi người sau trận đấu như thế nào thế ????
 
Status
Không mở trả lời sau này.
Back
Top