PDA

View Full Version : [JX] Hướng dẫn add quái chuẩn bằng get tọa độ.



DuongDaiCaJX
26-06-13, 10:39 PM
Copy đoạn code vào 1 script item questkey(ví dụ như item hỗ trợ), sau đó muốn add quái tọa độ nào thì chạy đến và chuột phải vào item(tốt nhất là cho item vào phím tắt). Tọa độ được lưu tại thư mục script/toado.txt theo 1 dãy mảng, các bạn chỉ cần copy rồi dùng hàm add theo mảng là được.


function main()
luutoado()
end

function luutoado()
w,x,y = GetWorldPos()
logWrite("{"..x..","..y.."},")
Msg2Player("§· ghi l¹i log cña täa ®é nµy t¹i script/toado.txt")
end

function logWrite(str)
local gm_Log = "script/toado.txt"
local fs_log = openfile(gm_Log, "a");
write(fs_log, ""..str.."\n");
closefile(fs_log);
end


Trên là loại tọa độ (x*8, y*16) mình bonus thêm 2 loại tọa độ chỉ cần thay vào hàm luutoado() ở trên là được


- Dạng 1: tọa độ (x*8*32, y*16*32)
function luutoado()
w,x,y = GetWorldPos()
logWrite("{"..x*32..","..y*32.."},")
Msg2Player("§· ghi l¹i log cña täa ®é nµy t¹i script/toado.txt")
end

Dạng 2: tọa độ (x, y, độ lệch x, độ lệch y)
function luutoado()
w,x,y = GetWorldPos()
logWrite("{"..floor(x/8)..","..floor(y/16).."},random(1,10),random(1,10)},")
Msg2Player("§· ghi l¹i log cña täa ®é nµy t¹i script/toado.txt")
end


Nguồn: hoangjxp - maze-gamevn.org.

TranDoanDuc
27-06-13, 11:56 AM
Tựa là add quái "chuẩn", nhưng thật tế không có gì chuẩn ^_^
Vì sao:
- ở hàm 1, nhân vật tới đâu, lấy tọa độ tại đó? oh no, nhân vật bạn chỉ cần 1 cái nhích mông nhỏ, là tọa độ thay đổi đến vài đơn vị, chứng tỏ những đơn vị ở giữa, bạn không làm chủ được=> chưa chuẩn !
- ở hàm 2, không cần suy nghĩ, nhìn thấy từ "random" thì không có gì gọi là chuẩn nữa cả :)

chỉ thực sự gọi là "chuẩn" khi bạn hiểu game đã tính tọa độ như thế nào ;)

vậy là có qua có lại rồi nhé DuongDaiCaJX :)

hoangs2diu
27-06-13, 12:02 PM
Tựa là add quái "chuẩn", nhưng thật tế không có gì chuẩn ^_^
Vì sao:
- ở hàm 1, nhân vật tới đâu, lấy tọa độ tại đó? oh no, nhân vật bạn chỉ cần 1 cái nhích mông nhỏ, là tọa độ thay đổi đến vài đơn vị, chứng tỏ những đơn vị ở giữa, bạn không làm chủ được=> chưa chuẩn !
- ở hàm 2, không cần suy nghĩ, nhìn thấy từ "random" thì không có gì gọi là chuẩn nữa cả :)

chỉ thực sự gọi là "chuẩn" khi bạn hiểu game đã tính tọa độ như thế nào ;)

vậy là có qua có lại rồi nhé DuongDaiCaJX :)

Thay đổi vài đơn vị thì sao cái chính là muốn add quái tại tọa độ đang đứng thôi mà chứ đâu phải tất cả tọa độ đi qua. Tọa độ 4 số đã tương đối chuẩn rồi nếu muốn chuẩn 100% thì *32. Còn hàm tọa độ 3 số là dùng để add quái vị trí ngẫu nhiên vì 1 ô của tọa độ 3 số rất rộng không như kiểu x*8*32, y*8*32 là 1 điểm.

f-fantasy
27-06-13, 10:10 PM
việc add quái ngoài các bản đồ nhiều vật cản như trường bạch nam trường bạch bắc thì cần thiết có độ chuẩn nhất định kẻo quái được add vào những vị trí ng chơi ko thể tới được =>> auto rất hay die . Các map khác add như script trên là đẹp rồi, tạo thêm vòng for rồi tạo thêm 1 biến để làm lệch tọa đỗ mỗi lần loop mỗi lần add 10 - 15 con là thoải mái ....chuẩn ko có nghĩa đẹp long lanh ko tì vết

TranDoanDuc
27-06-13, 11:19 PM
việc add quái ngoài các bản đồ nhiều vật cản như trường bạch nam trường bạch bắc thì cần thiết có độ chuẩn nhất định kẻo quái được add vào những vị trí ng chơi ko thể tới được =>> auto rất hay die . Các map khác add như script trên là đẹp rồi, tạo thêm vòng for rồi tạo thêm 1 biến để làm lệch tọa đỗ mỗi lần loop mỗi lần add 10 - 15 con là thoải mái ....chuẩn ko có nghĩa đẹp long lanh ko tì vết

Chính những ý nghĩ ntn mà tới tận giờ này, mà Maps của Jx private vẫn chưa tiến bộ ... :)

yeuVLTK
02-04-16, 12:36 AM
Copy đoạn code vào 1 script item questkey(ví dụ như item hỗ trợ), sau đó muốn add quái tọa độ nào thì chạy đến và chuột phải vào item(tốt nhất là cho item vào phím tắt). Tọa độ được lưu tại thư mục script/toado.txt theo 1 dãy mảng, các bạn chỉ cần copy rồi dùng hàm add theo mảng là được.


function main()
luutoado()
end

function luutoado()
w,x,y = GetWorldPos()
logWrite("{"..x..","..y.."},")
Msg2Player("§· ghi l¹i log cña täa ®é nµy t¹i script/toado.txt")
end

function logWrite(str)
local gm_Log = "script/toado.txt"
local fs_log = openfile(gm_Log, "a");
write(fs_log, ""..str.."\n");
closefile(fs_log);
end


Trên là loại tọa độ (x*8, y*16) mình bonus thêm 2 loại tọa độ chỉ cần thay vào hàm luutoado() ở trên là được


- Dạng 1: tọa độ (x*8*32, y*16*32)
function luutoado()
w,x,y = GetWorldPos()
logWrite("{"..x*32..","..y*32.."},")
Msg2Player("§· ghi l¹i log cña täa ®é nµy t¹i script/toado.txt")
end

Dạng 2: tọa độ (x, y, độ lệch x, độ lệch y)
function luutoado()
w,x,y = GetWorldPos()
logWrite("{"..floor(x/8)..","..floor(y/16).."},random(1,10),random(1,10)},")
Msg2Player("§· ghi l¹i log cña täa ®é nµy t¹i script/toado.txt")
end


Nguồn: hoangjxp - maze-gamevn.org.

Sao mình copy script này vào thần hành phù linux ver4 , khi dùng ko có gì xảy ra vậy? lệnh không khớp à?

vuduymanh
02-04-16, 06:33 AM
function toado()
local w,x,y = GetWorldPos();
Msg2Player("M¸p sè <color=Green>"..w.."<color> täa ®é <color=Yellow>"..x..", "..y)
end;
mình dùng vẫn ok mà bạn