Kết quả 1 đến 9 của 9
-
24-04-17, 07:33 PM #1
- Ngày tham gia
- Jan 2012
- Bài viết
- 2,412
- Thanks
- 2,567
- Thanked 1,842 Times in 880 Posts
Chia sẻ hàm để làm tính năng Truyền Công
Thấy bên server private nào đó có tính năng truyền công khá hay, hôm nay mình sẽ chia sẻ một số hàm để làm tính năng này:
1. Hàm khiến người chơi ngồi xuống
PHP Code:me.CallClientScript({"AutoAi:Sit"});
PHP Code:local bCheckedMe = me.GetNpc().IsRideHorse();
if bCheckedMe ~= 0 then
Dialog:Say("Cần phải xuống ngựa mới có thể truyền công")
return
end
PHP Code:function tbItem:OnUse()
local tbMemberList, nMemberCount = me.GetTeamMemberList();
if not tbMemberList or nMemberCount ~= 2 then
Dialog:Say("Cần 2 người tổ đội nhau mới có thể sử dụng tính năng này");
return 0;
end
local pTeamMate = nil;
for _, pMember in pairs(tbMemberList) do
if pMember.szName ~= me.szName then
pTeamMate = pMember;
end
end
local szMsg = string.format("Bạn có chắc chắn muốn truyền công cho <color=green>%s<color> không ?", pTeamMate.szName);
local tbOpt =
{
{"Ta đồng ý", self.OnConfirmQiuhun, self, me.nId, pTeamMate.nId, nItemId},
{"Để ta suy nghĩ lại"},
};
Dialog:Say(szMsg, tbOpt);
end
-- Đồng ý nhận lời truyền công
function tbItem:OnConfirmQiuhun(nSuitorId, nTeamMateId, nItemId)
local pSuitor = KPlayer.GetPlayerObjById(nSuitorId);
local pTeamMate = KPlayer.GetPlayerObjById(nTeamMateId);
if not pSuitor or not pTeamMate then
return 0;
end
local bIsNearby = 0;
local tbPlayerList = KPlayer.GetAroundPlayerList(pSuitor.nId, 15);
if (tbPlayerList) then
for _, pPlayer in ipairs(tbPlayerList) do
if (pPlayer.szName == pTeamMate.szName) then
bIsNearby = 1;
end
end
end
if (0 == bIsNearby) then
pSuitor.Msg("Hai người phải đứng gần nhau mới có thể truyền công")
pTeamMate.Msg("Hai người phải đứng gần nhau mới có thể truyền công")
return
end
local bCheckedSuitor = pSuitor.GetNpc().IsRideHorse();
local bCheckedTeamMate = pTeamMate.GetNpc().IsRideHorse();
if bCheckedSuitor ~= 0 or bCheckedTeamMate ~= 0 then
Dialog:Say("Cả 2 phải xuống ngựa mới có thể truyền công")
return
end
pSuitor.CallClientScript({"AutoAi:Sit"});
pTeamMate.CallClientScript({"AutoAi:Sit"});
-- 只要使用了求婚卡片,不论对方是否同意都得删除
local szMsg = string.format("<color=green>%s<color> muốn truyền công cho bạn, bạn có đồng ý ?", pSuitor.szName);
local tbOpt =
{
{"Vâng tôi đồng ý", self.OnAcceptQiuhun, self, nSuitorId, nTeamMateId},
{"Tôi từ chối", self.OnRefuseQiuhun, self, nSuitorId, nTeamMateId},
};
Setting:SetGlobalObj(pTeamMate);
Dialog:Say(szMsg, tbOpt);
Setting:RestoreGlobalObj();
end
-- Đồng ý truyền công
function tbItem:OnAcceptQiuhun(nSuitorId, nTeamMateId)
local pSuitor = KPlayer.GetPlayerObjById(nSuitorId);
local pTeamMate = KPlayer.GetPlayerObjById(nTeamMateId);
if not pSuitor or not pTeamMate then
return 0;
end
end
-- Từ chối truyền công
function tbItem:OnRefuseQiuhun(nSuitorId, nTeamMateId)
local pSuitor = KPlayer.GetPlayerObjById(nSuitorId);
local pTeamMate = KPlayer.GetPlayerObjById(nTeamMateId);
if not pSuitor or not pTeamMate then
return 0;
end
Dialog:SendBlackBoardMsg(pSuitor, string.format("Thật đáng tiếc, <color=green>%s<color> không muốn truyền công với ngươi", pTeamMate.szName));
end
Lần sửa cuối bởi satthupro95, ngày 24-04-17 lúc 07:38 PM.
Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
The Following 8 Users Say Thank You to satthupro95 For This Useful Post:
cyberc (24-04-17), liemkute123 (13-05-17), minzkool (29-01-18), Oack123 (25-04-17), trieuvanhs (10-10-17), trungjx (25-04-17), visaothe123 (25-04-17), __Jie__ (24-04-17)
-
24-04-17, 09:20 PM #2
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
tks bác.....................................
Lần sửa cuối bởi cyberc, ngày 24-04-17 lúc 10:20 PM.
Khách viếng thăm hãy cùng cyberc xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
25-04-17, 01:08 PM #3
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
sv nào ấy nhỉ, kaka , cái này mình cũng confix từ thẻ lễ nạp cát ra, giờ đang dev làm trong ui nó mới ngon .
Lần sửa cuối bởi visaothe123, ngày 25-04-17 lúc 02:43 PM.
Khách viếng thăm hãy cùng visaothe123 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
25-04-17, 01:53 PM #4
- Ngày tham gia
- Jan 2015
- Bài viết
- 189
- Thanks
- 25
- Thanked 14 Times in 12 Posts
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
Lần sửa cuối bởi devsevergame, ngày 25-04-17 lúc 01:56 PM.
Khách viếng thăm hãy cùng devsevergame xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
25-04-17, 04:15 PM #5
- Ngày tham gia
- Jan 2012
- Bài viết
- 2,412
- Thanks
- 2,567
- Thanked 1,842 Times in 880 Posts
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
mình thiên về những thứ đơn giản hơn, chỉ cần dùng 1 item gửi thông báo đến 1 player khác, xác nhận là bay đến (dựa trên lệnh bài triệu hồi gia tộc), dùng ui khá lằng nhằng
dùng ui thì ez thôi, tạo ui, trích xuất list từ 1 mảng, khởi tạo 1 biến chung từ scriptable rồi callserverscript nếu muốn gọi 1 cái gì đóKhách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
25-04-17, 10:39 PM #6
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
Khách viếng thăm hãy cùng visaothe123 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
26-04-17, 12:40 PM #7
- Ngày tham gia
- Jan 2012
- Bài viết
- 2,412
- Thanks
- 2,567
- Thanked 1,842 Times in 880 Posts
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
Lần sửa cuối bởi satthupro95, ngày 26-04-17 lúc 02:08 PM.
Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-01-18, 02:37 PM #8
- Ngày tham gia
- Jul 2012
- Bài viết
- 133
- Thanks
- 25
- Thanked 59 Times in 10 Posts
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
cho e hỏi
e thêm tính năng truyền công 2 lần/ ngày
mà e tắt server đi hôm sau vào mà nó cứ báo truyền công đã hết mặc dù đã thêm task cho nó
Code:local nStackSuitor = pSuitor.GetTask(2024,24) if nStackSuitor >= 2 then Dialog:Say("Truyền công tối đa 2 lần / 1 ngày"); return 0; end local nStackTeam = pTeamMate.GetTask(2024,24) if nStackTeam >= 2 then Dialog:Say("Người chơi bạn muốn truyền công đã hết số lượt truyền công trong ngày"); return 0; end
Khách viếng thăm hãy cùng minzkool xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
29-01-18, 06:31 PM #9
- Ngày tham gia
- Jan 2012
- Bài viết
- 2,412
- Thanks
- 2,567
- Thanked 1,842 Times in 880 Posts
Ðề: Chia sẻ hàm để làm tính năng Truyền Công
phải có thêm task lưu ngày nữa nhé, đặt nó ngay trên đầu, chẳng hạn của bạn là task 2024, với id 24 là lưu số lần dùng trong ngày, mình chọn id 23 là task lưu ngày
PHP Code:local nDate = tonumber(GetLocalDate("%y%m%d")); -- Kiểm tra ngày theo dạng năm,tháng,ngày ví dụ 20182901
if me.GetTask(2024, 23) < nDate then -- Kiểm tra xem sang ngày mới chưa, nếu task lưu ngày < ngày hiện tại thì set task lưu ngày = ngày hiện tại
me.SetTask(2024, 23, nDate);
me.SetTask(2024, 24, 0); -- Rs lại số lần truyền công ngày
end
Khách viếng thăm hãy cùng satthupro95 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!
-
Các thành viên gởi lời cảm ơn đến satthupro95 vì bài viết này !
minzkool (29-01-18)
Các Chủ đề tương tự
-
[MU] Lỗi chức năng Truyền Nhân Goblin NBB, DWEB
Bởi heroviet2301 trong diễn đàn Hỏi Đáp/ Yêu CầuTrả lời: 12Bài viết cuối: 08-09-16, 11:31 AM -
[MU] [DEV] Cần góp ý Tính năng truyền thừa cấp độ ITEM
Bởi NetBanBe.Net trong diễn đàn DevelopmentTrả lời: 18Bài viết cuối: 23-07-16, 01:42 PM -
Kỹ Năng Thất Truyền [ Rất Là Xa Xưa ] :P
Bởi sasuce10 trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)Trả lời: 12Bài viết cuối: 08-08-10, 09:57 AM -
Share Chức năng Nhiệm Vụ Truyền Thuyết - MU Tân Bình
Bởi Alehap2010 trong diễn đàn SQL Server & WebsiteTrả lời: 20Bài viết cuối: 27-09-09, 07:25 PM -
Chức năng truyền công lực cho web0.8
Bởi ghvn1991 trong diễn đàn SQL Server & WebsiteTrả lời: 15Bài viết cuối: 11-05-09, 10:18 PM