PDA

View Full Version : [JX] Cần xin các cao nhân giúp về Hàm Đổi Mầu Bang Hội



tranvanlong789
06-02-18, 05:50 PM
chẳng là em thấy ở UI bang hội có chức năng đổi mầu bang hội. bang chủ + trưởng lão sẽ có quyền đổi mầu. (đổi mầu toàn bộ người trong bang hội)

Em muốn xin cái hàm đổi mầu bang hội đó. để có thể gắn vào NPC. để bất kỳ ai cũng có thể đổi mầu được.


Mong các cao nhân giúp đỡ. nếu có thu phí em xin trả ạ !!!.


P/s: em đã có tìm trong file tong tuy nhiên. chỉ thấy có hàm TONG_GetCurCamp(nTongID); (hàm check mầu hiện tại) Còn hàm set thì không có.

Em đã thử TONG_SetCurCamp(nTongID) ==> cái này là em tự mò nghĩ. nhưng báo lỗi không tồn tại hàm.

canlolovn
06-02-18, 06:48 PM
chẳng là em thấy ở UI bang hội có chức năng đổi mầu bang hội. bang chủ + trưởng lão sẽ có quyền đổi mầu. (đổi mầu toàn bộ người trong bang hội)

Em muốn xin cái hàm đổi mầu bang hội đó. để có thể gắn vào NPC. để bất kỳ ai cũng có thể đổi mầu được.


Mong các cao nhân giúp đỡ. nếu có thu phí em xin trả ạ !!!.


P/s: em đã có tìm trong file tong tuy nhiên. chỉ thấy có hàm TONG_GetCurCamp(nTongID); (hàm check mầu hiện tại) Còn hàm set thì không có.

Em đã thử TONG_SetCurCamp(nTongID) ==> cái này là em tự mò nghĩ. nhưng báo lỗi không tồn tại hàm.

cái này căng như vụ giới hạn bang hội ak.
ủa bữa thấy long đăng vụ reload file txt long làm dc chưa share tui đi lộ phí tui chịu

tranvanlong789
07-02-18, 10:24 AM
cái này căng như vụ giới hạn bang hội ak.
ủa bữa thấy long đăng vụ reload file txt long làm dc chưa share tui đi lộ phí tui chịu

Chưa bạn ơi nhưng không cần nữa. vì có bạn nào dó share cái gift code rồi đó

Đang tìm cái vụ trên cần cao nhân giúp đỡ. . hi

tranvanlong789
08-02-18, 09:59 AM
uppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppppppppppppppppppppppppp

tranvanlong789
11-02-18, 11:54 AM
Cần lắm cao nhân giúp đỡ. xin trả phí theo yêu cầu ạ

tranvanlong789
22-02-18, 02:44 PM
upppppppppppppppppppppppppppppppppppppppppppppp

tranvanlong789
24-02-18, 05:31 PM
upppppppppppppppppppppppppppppppppppppppppppppp. xin được trả phí cho cao nhân

tranvanlong789
05-03-18, 06:20 PM
Cần lắm 1 cao nhân chỉ điểm hoặc có thể bán cũng được vui lòng inbox mình với ạ. tìm hoài 3 tháng rồi mà không ra.

DuongDaiCaJX
05-03-18, 06:38 PM
Sao không nghĩ phương pháp đơn giản hơn nếu chưa tìm ra cách.
Set ở login.lua hàm đăng nhập vào đúng tên bang đó là tự SetCamp màu tùy ý.

tranvanlong789
06-03-18, 01:40 PM
Sao không nghĩ phương pháp đơn giản hơn nếu chưa tìm ra cách.
Set ở login.lua hàm đăng nhập vào đúng tên bang đó là tự SetCamp màu tùy ý.

Cao nhân ơi mình muốn tạo 1 tính năng đó là gắn vào npc scipt. 1 nhân vật bất kỳ trong bang đều có thể ra đó click và đổi mầu bang theo ý muốn. chứ không cần phải là bang chủ

canlolovn
08-03-18, 02:15 PM
Cao nhân ơi mình muốn tạo 1 tính năng đó là gắn vào npc scipt. 1 nhân vật bất kỳ trong bang đều có thể ra đó click và đổi mầu bang theo ý muốn. chứ không cần phải là bang chủ

Làm được chưa long cho Fb đi tui sent qua test thử

tranvanlong789
13-03-18, 09:28 PM
Làm được chưa long cho Fb đi tui sent qua test thử

Mình chưa làm được bạn ơi. bạn send qua hộp thư forum cho mình thử với.

tranvanlong789
24-03-18, 08:12 PM
Cần lắm 1 pro hỗ trợ. xin được hậu tạ tiền mặt.

ThanhVipLn
25-03-18, 05:37 PM
Mình khuyên bạn tốt nhất nên dùng hàm dự phòng. Dẫu bạn có biết cái hảm TONG_GetCurCamp(id) gì đó nhưng nếu nó không phải ScriptFunction thì cũng không thể mang vô script xài được đâu.
Bạn muốn làm 1 NPC đổi màu như thế nào, trình bày thử minh xem

Nếu bạn muốn tất cả thành viên đều có quyền đổi màu cho bang hội thay vì chỉ có trưỡng lão và bang chủ thì tự viết 1 cái script như sau:


function main()
Say("Chọn màu sắc muốn đổi",3,
"Chính Phái /doimau",
"Tà Phái /doimau",
"Trung Lập/doimau")
end

function doimau(nsel)
mausac = nsel + 1

tong = GetTongName() -- Kiem ham thay thế trong Linux, ham này lấy tên Bang Hội

if tong == "" or tong == nil then
Talk(1,"","Ngươi chưa có bang hội, không thể sử dụng tính năng này")
return
end

idxplayer = PlayerIndex
for i=1,GetPlayerCount() do
PlayerIndex = i
w,x,y = GetWorldPos()
if w ~= 1 and w ~= 1 then -- Ghi tất cả những map sự kiện vô đây, những nhân vật ở map này sẽ không bị đổi màu. VD Tống Kim, Liên Đấu ...
if GetTongName() == tong then
SetCurCamp(mausac)
Msg2Player("Đã đổi màu ...")
end
end
end
PlayerIndex = idxplayer
end

tranvanlong789
28-03-18, 08:47 AM
Mình khuyên bạn tốt nhất nên dùng hàm dự phòng. Dẫu bạn có biết cái hảm TONG_GetCurCamp(id) gì đó nhưng nếu nó không phải ScriptFunction thì cũng không thể mang vô script xài được đâu.
Bạn muốn làm 1 NPC đổi màu như thế nào, trình bày thử minh xem

Nếu bạn muốn tất cả thành viên đều có quyền đổi màu cho bang hội thay vì chỉ có trưỡng lão và bang chủ thì tự viết 1 cái script như sau:

Cảm ơn bạn nhiều nhưng mình có tí thắc mắc là khi dùng hàm SetCurCamp(). thoát ra vào lại nó lại trở về như cũ nhỉ. nó không lưu trạng thái đổi màu. mình có thêm hàm
SetCurCamp()
SetCamp()

thêm ở dưới Setcamp những vẫn không lưu được

P/s: Chưa kể hàm ở trên bị vòng lập GetPlayerCount() bị lỗi bạn ạ. chỉ cần test đổi mầu 1 lúc khoảng 20 lần là bị dis GS ngay.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Z1000
28-03-18, 01:22 PM
Cảm ơn bạn nhiều nhưng mình có tí thắc mắc là khi dùng hàm SetCurCamp(). thoát ra vào lại nó lại trở về như cũ nhỉ. nó không lưu trạng thái đổi màu. mình có thêm hàm
SetCurCamp()
SetCamp()

thêm ở dưới Setcamp những vẫn không lưu được

P/s: Chưa kể hàm ở trên bị vòng lập GetPlayerCount() bị lỗi bạn ạ. chỉ cần test đổi mầu 1 lúc khoảng 20 lần là bị dis GS ngay.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

1. SetCurCamp() = set phe phái tạm thời cho nhân vật, SetCamp() = set phe phái vĩnh viễn cho nhân vật.

2. Nếu nhân vật có bang hội thì khi thoát ra đăng nhập lại hệ thống sẽ tự động set phe giống theo bang. Ý của bạn là muốn bất kì thành viên nào trong bang cũng có thể đổi phe phái của bang? Nếu như thế thì không thể dùng 2 hàm trên được (vẫn có thể nếu để ở playerlogin). Do server linux mình không rõ hàm đổi màu bang hội nhưng server win thì chỉ sửa được trong bảng bang hội thôi.

3. Nên dùng vòng lặp "for i=1,1999 do" vì GetPlayerCount() chỉ get ra số player đang online và giá trị PlayerIndex của người chơi có khi lớn hơn số người đang online => bị lỗi. (Ví dụ: 1000 người đang online nhưng vẫn có thể sẽ có nhân vật có PlayerIndex là 1005).

tranvanlong789
29-03-18, 12:10 AM
1. SetCurCamp() = set phe phái tạm thời cho nhân vật, SetCamp() = set phe phái vĩnh viễn cho nhân vật.

2. Nếu nhân vật có bang hội thì khi thoát ra đăng nhập lại hệ thống sẽ tự động set phe giống theo bang. Ý của bạn là muốn bất kì thành viên nào trong bang cũng có thể đổi phe phái của bang? Nếu như thế thì không thể dùng 2 hàm trên được (vẫn có thể nếu để ở playerlogin). Do server linux mình không rõ hàm đổi màu bang hội nhưng server win thì chỉ sửa được trong bảng bang hội thôi.

3. Nên dùng vòng lặp "for i=1,1999 do" vì GetPlayerCount() chỉ get ra số player đang online và giá trị PlayerIndex của người chơi có khi lớn hơn số người đang online => bị lỗi. (Ví dụ: 1000 người đang online nhưng vẫn có thể sẽ có nhân vật có PlayerIndex là 1005).

Vâng mình cảm ơn bạn đã giải thích. Tức có nghĩa là Hàm sét phe phái vĩnh viễn sẽ không áp dụng được (khi đã có bang hội). cái này mình đã hiểu.

P/s: Mình thắc mắc chút là. vòng lặp for i =1,1999 (tức là nó sẽ set 1999 account trên sever đang online) hay là tính cả ofline. và nếu như khi chạy vòng lặp đó VD: Sever chỉ có 10 người (mà chạy 1 vòng lập 1,1999) request 1999 liệu vậy có bị dump lỗi như trên không bạn. "khoản này mình hơi ngu mong bạn giải thích"

Z1000
29-03-18, 10:08 AM
Vâng mình cảm ơn bạn đã giải thích. Tức có nghĩa là Hàm sét phe phái vĩnh viễn sẽ không áp dụng được (khi đã có bang hội). cái này mình đã hiểu.

P/s: Mình thắc mắc chút là. vòng lặp for i =1,1999 (tức là nó sẽ set 1999 account trên sever đang online) hay là tính cả ofline. và nếu như khi chạy vòng lặp đó VD: Sever chỉ có 10 người (mà chạy 1 vòng lập 1,1999) request 1999 liệu vậy có bị dump lỗi như trên không bạn. "khoản này mình hơi ngu mong bạn giải thích"

Nếu server ít thì chạy ít thôi, 10 người tầm 1,100 là được rồi. Vòng lặp này nó chỉ lấy PlayerIndex của những người đang online mà thôi. Ví dụ lúc 9h sáng đang có 120 nhân vật online, nhân vật Z1000 đăng nhập vào => PlayerIndex của Z1000 là 121. Đến chiều chỉ còn khoảng 80 người trong server nhưng Z1000 này chưa thoát nên PlayerIndex của nhân vật này vẫn là 121. Đó là lý do vì sao phải dùng vòng lặp lớn hơn số người đang online.

ThanhVipLn
29-03-18, 07:59 PM
Cảm ơn bạn nhiều nhưng mình có tí thắc mắc là khi dùng hàm SetCurCamp(). thoát ra vào lại nó lại trở về như cũ nhỉ. nó không lưu trạng thái đổi màu. mình có thêm hàm
SetCurCamp()
SetCamp()

thêm ở dưới Setcamp những vẫn không lưu được

P/s: Chưa kể hàm ở trên bị vòng lập GetPlayerCount() bị lỗi bạn ạ. chỉ cần test đổi mầu 1 lúc khoảng 20 lần là bị dis GS ngay.

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

Bạn không khống chế được hàm đổi màu của bang hội thì xem như bạn bỏ nó đi, dùng 1 task quy định luôn mài sắc cần set.
Khi chạy vòng lặp xong set màu và set task cùng 1 biến
Trong chỗ đăng nhập game thêm hàm: Nếu task > 0 thì set màu.

Giải quyết vòng lặp dump bạn thêm cho mình sau cái PlayerIndex = i
if GetLevel() == nil or GetName() == “” then
continue
end

HoangTVT
30-03-18, 06:52 AM
local nIdx = GetFirstPlayerAtServer();
while (nIdx > 0) do
PlayerIndex = nIdx
...
nIdx = GetNextPlayerAtServer();
end

dùng vòng lặp này

tranvanlong789
01-04-18, 07:23 AM
Bạn không khống chế được hàm đổi màu của bang hội thì xem như bạn bỏ nó đi, dùng 1 task quy định luôn mài sắc cần set.
Khi chạy vòng lặp xong set màu và set task cùng 1 biến
Trong chỗ đăng nhập game thêm hàm: Nếu task > 0 thì set màu.

Giải quyết vòng lặp dump bạn thêm cho mình sau cái PlayerIndex = i
if GetLevel() == nil or GetName() == “” then
continue
end

<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>

ThanhVipLn
01-04-18, 10:40 AM
<b><font color=red>[Chỉ có thành viên mới xem link được. <a href="register.php"> Nhấp đây để đăng ký thành viên......</a>]</font></b>
Lỗi dump đa số là do playerindex bị ảo, nên thêm mấy hàm này để xác định playerindex là có nhân vật thật
Hàm continue để chuyển qua biến tiếp theo trong vòng lặp

HoangTVT
01-04-18, 11:48 AM
dùng vòng lặp này xem có giải quyết hết các vấn đề ko mà ngồi tính toán các kiểu cho mệt ng vậy


local nIdx = GetFirstPlayerAtServer();
while (nIdx > 0) do
PlayerIndex = nIdx
//to do
nIdx = GetNextPlayerAtServer();
end

tranvanlong789
01-04-18, 04:43 PM
dùng vòng lặp này xem có giải quyết hết các vấn đề ko mà ngồi tính toán các kiểu cho mệt ng vậy


local nIdx = GetFirstPlayerAtServer();
while (nIdx > 0) do
PlayerIndex = nIdx
//to do
nIdx = GetNextPlayerAtServer();
end


Vâng cảm ơn bạn. nhưng đoạn này mình chưa biết chèn vào ở đâu nữa. có cái //to do hình như nó bị thừa hả bạn. bạn giúp mình edit code với.



function doimau(nsel)
mausac = nsel + 1

tong = GetTongName() -- Kiem ham thay th? trong Linux, ham này l?y tên Bang H?i
local name = GetName();
local a,b = GetTongName();
if tong == "" or tong == nil then
Talk(1,"","Ng­êi ch­a cã bang héi kh«ng thÓ sö dông tÝnh n¨ng nµy")
return
end

idxplayer = PlayerIndex
for i=1,GetTongMemberCount() do
PlayerIndex = i
w,x,y = GetWorldPos()
if w ~= 1 and w ~= 1 then -- Ghi t?t c? nh?ng map s? ki?n vô dây, nh?ng nhân v?t ? map này s? không b? d?i màu. VD T?ng Kim, Liên Ð?u ...
if GetTongName() == tong then
SetCurCamp(mausac)
Msg2Tong(b, name.."§· ®æi mÇu bang héi.");
end
end
end
PlayerIndex = idxplayer
end

--- Chế độ gộp bài viết ---


Lỗi dump đa số là do playerindex bị ảo, nên thêm mấy hàm này để xác định playerindex là có nhân vật thật
Hàm continue để chuyển qua biến tiếp theo trong vòng lặp


Bạn thử edit lại mẫu code dùm mình với được không. mình đã thử thêm như bạn. nhưng cái continue hình như không tồn tại hay sao ấy bạn. giúp mình với.

Mình có thử là


if GetLevel() == nil or GetName() == "" then
continue()
end

và thử đổi mầu 20 lần vẫn bị dump bạn ạ.


function doimau(nsel)
mausac = nsel + 1

tong = GetTongName() -- Kiem ham thay th? trong Linux, ham này l?y tên Bang H?i
local name = GetName();
local a,b = GetTongName();
if tong == "" or tong == nil then
Talk(1,"","Ng­êi ch­a cã bang héi kh«ng thÓ sö dông tÝnh n¨ng nµy")
return
end

idxplayer = PlayerIndex
for i=1,GetTongMemberCount() do
PlayerIndex = i
w,x,y = GetWorldPos()
if w ~= 1 and w ~= 1 then -- Ghi t?t c? nh?ng map s? ki?n vô dây, nh?ng nhân v?t ? map này s? không b? d?i màu. VD T?ng Kim, Liên Ð?u ...
if GetTongName() == tong then
SetCurCamp(mausac)
Msg2Tong(b, name.."§· ®æi mÇu bang héi.");
end
end
end
PlayerIndex = idxplayer
end

vuila9
01-04-18, 10:43 PM
cái quái này có gi khó đâu mà hỏi quài thế nhỉ:D

tranvanlong789
02-04-18, 09:38 AM
cái quái này có gi khó đâu mà hỏi quài thế nhỉ:D

Vâng nếu bạn biết thì chỉ giáo dùm với đi ạ.

tranvanlong789
04-04-18, 10:29 AM
uppppppppppppppppppppppppppppppp 2 bác ở trên giúp em với.

tranvanlong789
09-04-18, 02:42 PM
uppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppp

tranvanlong789
13-04-18, 11:53 PM
7 uppppppppppppppppppp cho ace giúp đỡ. tránh dump vòng lặp

tranvanlong789
21-04-18, 11:34 AM
7 uppppppppppppppppppppppppppppppppppppppppppppppppp ppp

bil4i3n
21-04-18, 01:10 PM
7 uppppppppppppppppppppppppppppppppppppppppppppppppp ppp

Bắn yêu cầu sang relay, cho chạy thực thi function và sử dụng 3 hàm này là xong


TONG_GetMemberCount
TONG_GetFirstMember
TONG_GetNextMember

tranvanlong789
21-04-18, 10:06 PM
Bắn yêu cầu sang relay, cho chạy thực thi function và sử dụng 3 hàm này là xong

Mình chưa hiểu lắm ạ mong bạn trợ giúp rõ hơn được không ạ. xin hậu tạ bạn

tranvanlong789
25-04-18, 08:05 PM
uppppppppppppppppppppppppppppppppppppppppppppppppp pppppppppp

tranvanlong789
27-04-18, 06:26 PM
7 upppppppppppppppppppppppppp cần lắm các cao nhân giúp em 1 tay vịn

tranvanlong789
03-05-18, 10:13 PM
Cần lắm 1 cao nhân viết script này em xin trả phí