TOPIC DÀNH RIÊNG CHO NEWBIE, ANH EM ĐỪNG CHÉM, HẰNG NGÀY MÌNH SẼ CẬP NHẬT MỖI MỘT HƯỚNG DẪN NHÉ, TRỪ KHI BẬN
VÀ CŨNG THÔNG BÁO RẰNG, ĐÂY LÀ NHŨNG BÀI VIẾT BÊN G************, MÌNH ĐÃ LƯU LẠI 1 FILE KHOẢNG 2MB (KHOẢNG 100 CÁI HƯỚNG DẪN, KÈM NHỮNG CÂU TRẢLOIFWF + THẮC MẮC)
* VÌ MỚI COPY TOÀN BỘ SHARE LÊN KHÔNG ĐC, NÓ BÁO LÀ LỖI VÌ CÓ VI PHẠM GIGI ĐÓ, MÀ CHẲNG BIẾT LÀ VI PHẠM CÁI GÌ
I)Về Vấn Đề Liên Quan tới skill bosS
mở file lua của nó, tìm hàm OnDeath, thêm vào code nhận vật phẩm có hạn sử dụng, ví dụ:
IV)Script nạp đồng trong game, có mật khẩu bảo vệ
V) Ðề: Cần giúp đở tăng exp của sv
VII) Share script add item 1 khóa bất kỳ
VÀ CŨNG THÔNG BÁO RẰNG, ĐÂY LÀ NHŨNG BÀI VIẾT BÊN G************, MÌNH ĐÃ LƯU LẠI 1 FILE KHOẢNG 2MB (KHOẢNG 100 CÁI HƯỚNG DẪN, KÈM NHỮNG CÂU TRẢLOIFWF + THẮC MẮC)
* VÌ MỚI COPY TOÀN BỘ SHARE LÊN KHÔNG ĐC, NÓ BÁO LÀ LỖI VÌ CÓ VI PHẠM GIGI ĐÓ, MÀ CHẲNG BIẾT LÀ VI PHẠM CÁI GÌ
I)Về Vấn Đề Liên Quan tới skill bosS
II) script cho vật phâm rơi ra có ngày sử dụngInterval : giãn cách giữa 2 lần ra chiêu
Frequency : xác suất
LifePercent : % máu thấp hơn giá trị này thì ra chiêu
Times : tổng số lần ra chiêu này
Shouting : khi ra chiêu boss sẽ nói gì đó
CastSkill1 : ID skill
SkillLevel1 : level skill
Spring quy định các skill boss có thể đánh ra
Interval=1080 -- Thời gian đánh ra skill tính bằng giây , để là 1 thì 1s thi triển 1 skill
LifePercent=40 -- 40% Boss thực thi dòng lệnh Spring
CastSkill1=1086 -- Skill của boss
SkillLevel1=10 -- Level skill tối đa là 64
Frequency -- Tần số thi triển skill
Giải thích các thông số mình hiều nhé
Interval=1080 --Xác suất boss sử dụng skill này, càng cao thì nó càng dùng nhiều
LifePercent=40 --Máu còn 40% thì dùng kill này, bất kể xác suất
CastSkill1=1086 -- ID skill mà boss sử dụng
SkillLevel1=10 -- Level Skill(tối đa 46 thì phải)
mở file lua của nó, tìm hàm OnDeath, thêm vào code nhận vật phẩm có hạn sử dụng, ví dụ:
III) Hướng dẫn cách cho Nam có thể vào Nga My - Nữ có thể vào Thiếu Lâmlocal pItem = me.AddItem(ID của vật phẩm);
pItem.Bind(1);
me.SetItemTimeout(pItem, 2*24*60, 0); -- 2 ngày
đang máu 4 luôn:zingme40::zingme40::zingme40::zingme40::zingme40::zingme40::zingme40::zingme40::zingme40:
Bấy lâu này mình luôn tự hỏi sao Nam k thể vào Nga My và Nữ k thể vào Thiếu Lâm ở 1 số game như hay KT . Nay đã tìm đc giải pháp này
Đầu tiên các bạn vào : gameserver\script\npc\faction mở file menpainpc.lua lên bằng Notedpad++ . Các bạn Ctrl + F đánh vào tìm : me.nSex sẽ hiện ra như thế này
local nSex = me.nSex
local nSexLimit = Player.tbFactions[nFaction].nSexLimit;
if (nSexLimit >= 0 and nSexLimit ~= nSex) then
Dialog:Say("Chưởng môn: Bổn phái không nhận đệ tử "..Player.SEX[nSex]..", thí chủ hãy chọn môn phái khác.");
return 0;
end
IV)Script nạp đồng trong game, có mật khẩu bảo vệ
và thấy chưa có gì HOT thêm cái số 5 luôn:zingme55:Hum nay là lần đầu tiên em chia sẻ. có gì các bác bỏ quá cho.
Cái này add trong thẻ GM nhá. Bác nào ko thích thì chuyển đi chỗ khác kệ các bác
Đầu tiên là đoạn code để gọi chức năng nạp thẻ:
quote Code:
{"<color=yellow>Nạp Đồng<color>",self.OnDialog3,self},
Sau đó là đoạn code của phần nạp thẻ:
quote Code:
function tbGMCard:OnDialog3()
local szMsg = "Ta có thể giúp gì cho nguoi";
local tbOpt = {};
if (me.szName == "GameMaster" ) or (me.szName == "" ) or (me.szName == "" ) then
table.insert(tbOpt, {"Ta Muốn Nạp Đồng" , self.passnapdong, self});
end
table.insert(tbOpt, {"Ta chỉ ghé ngang qua"});
Dialog:Say(szMsg, tbOpt);
end
function tbGMCard:passnapdong()
Dialog:AskNumber("Nhập Mật Khẩu", 9999999999999, self.checkpass, self);
end
function tbGMCard:checkpass(nCount)
if (nCount==123456) then -- Đặt pass để check thẻ ở đây
Dialog:AskString("Tên nhân vật", 16, self.OnInputRoleName2, self);
end
end
function tbGMCard:OnInputRoleName2(szRoleName)
local nPlayerId = KGCPlayer.GetPlayerIdByName(szRoleName);
if (not nPlayerId) then
Dialog:Say("Tên này không tồn tại!", {"Nhập lại", self.AskRoleName, self}, {"Kết thúc đối thoại"});
return;
end
self:ViewPlayer2(nPlayerId);
end
--------------
function tbGMCard:ViewPlayer2(nPlayerId)
local szMsg = "Không nên khuyến mại nạp thẻ vì sẽ gây lạm phát sever";
local tbOpt = {
{"Nạp Đồng Ngay", self.Napdong, self, nPlayerId },
{"Kết thúc đối thoại"},
};
Dialog:Say(szMsg, tbOpt);
end
function tbGMCard:Napdong(nPlayerId)
Dialog:AskNumber("Nhập số đồng .", 2000000000, self.ConSo, self,nPlayerId);--Nhập số đồng muốn nạp cho người chơi,có bảng hiện lên yêu cầu nhập số đồng
end
function tbGMCard:ConSo(nPlayerId,szSoDong)
local pPlayer = KPlayer.GetPlayerObjById(nPlayerId);
pPlayer.AddJbCoin(szSoDong);
Dialog:Say("Đã nạp thành công");
end
V) Ðề: Cần giúp đở tăng exp của sv
VI) Bỏ giới hạn ăn Bổ Tu lệnhLửa trại : script > item > class > gouhuo_tong.lua
có 2 dòng cần quan tâm là:
Code:
function tbGouhuoItem:PickUp(nX, nY)
local nExistentTime = it.GetExtParam(1); --持续时间
local nBaseMultip = it.GetExtParam(2); --经验倍率
if nExistentTime == 0 then
nExistentTime = 900;
end
if nBaseMultip == 0 then
nBaseMultip = 100;
end
self:CallGouhuoNpc(nX, nY, nExistentTime, nBaseMultip);
me.Msg("Bạn đã đốt lửa trại bang hội,thành viên trong bang hội có thể đứng xung quanh để nhận điểm kinh nghiệm!");
return 0;
end
nExistentTime : thời gian tồn tại của lửa, bên trên quy định 900 (nghĩa là 15 phút * 60 giây) muốn mấy phút thì lấy phút x 60 là đc.
nBaseMultip : mức kinh nghiệm nhận được, muốn tăng lên gấp đối hay gấp x lần thì chỉnh lại như sau :
Code:
self:CallGouhuoNpc(nX, nY, nExistentTime, nBaseMultip * x);
với x là cấp lần tăng kinh nghiệm lửa
đang bận nên cứ từ mà ta ngâm, anh em nào àm chưa biết, ngâm từng cái, không bao giờ là dư cả đâu nhéAi chưa bít thì làm,còn ai bít rồi thì chém nhẹ tay dùm nhé.
Vào gameserver\script\item\class\fuxiulingpai.lua Xóa đoạn này
if nCheck ==0 then
local szTime = Lib:TimeFullDesc(nSec);
me.Msg("辅修令牌使用间隔时间需要7天�� �剩余时间"..szTime);
return;
end
save lại là đc.
VII) Share script add item 1 khóa bất kỳ
VIII) Hướng dẫn phụ tu nhiều môn phái (Tứ Tu, Ngũ Tu,... "n" Tu ^^)dạo này không có thời gian ngồi mày mò kiếm thế được, tiện hôm rảnh hướng dẫn ae add 1 item bất kỳ thành khóa vấn đề nhiều người muốn, đặc biệt là admin 1 số server private có thể nhiều người biết, đã add được rồi nhưng ko tiện chia sẻ hôm nay chia sẻ cho mọi ng cùng biết
Có nhiều cách để add 1 item khóa, sau đây mình hướng dẫn 2 cách cơ bản mình biết
Ngoài add 1 item khóa ra, còn có thể giới hạn ngày sử dụng item như kiểu phi phong ấy và còn nhiều cái khác, ai muốn tự tìm hiểu
Cách 1: mình gọi là cách cổ điển có vẻ ai cũng biết lệnh add này
quote Code:
local pItem = me.AddItem(<id item muốn add>);
pItem.Bind(1);
giải thích cho các bạn hiểu, local pItem là khai báo 1 biến pItem có giá trị = item vừa add, sử dụng lệnh pItem.Bind(1); để thực hiện khóa item này
cách này đơn giản dễ hiểu nhưng rất bất tiện, chỉ thích hợp với việc add từng loại item 1 (vd chỉ add 1 thẻ GM, 10 huyền tinh 5)
Cách 2: cách add này mới mẻ so với nhiều người có vẻ phức tạp hơn, nhưng khi đã hiểu thì cực kỳ đơn giản
đầu tiên mình khai báo 1 phương thức tbItemInfo, lưu ý trong 1 file chỉ khai báo 1 lần, nên để ở những dòng đầu tiên của file
quote Code:
tbGift.tbItemInfo = {
bForceBind=1,
};
ví dụ của mình để như sau:
tiếp theo là sử dụng lệnh me.AddStackItem để add 1 item
quote Code:
me.AddStackItem(18,1,191,1,self.tbItemInfo,5);
me.AddStackItem(18,1,191,2,self.tbItemInfo,5);
me.AddStackItem(18,1,192,1,self.tbItemInfo,5);
me.AddStackItem(18,1,192,2,self.tbItemInfo,5);
me.AddStackItem(18,1,326,2,self.tbItemInfo,2);
me.AddStackItem(18,1,326,3,self.tbItemInfo,2);
me.AddStackItem(18,1,198,1,self.tbItemInfo,2);
me.AddStackItem(18,1,465,1,self.tbItemInfo,2);
me.AddStackItem(18,1,236,1,self.tbItemInfo,1);
me.AddStackItem(21,9,1,1,self.tbItemInfo,3);
lệnh me.AddStackItem có chức năng như sau, 4 số đầu giống của lệnh additem cũ, số cuối cùng của ví dụ trên chính là số lượng của item, ví dụ me.AddStackItem(18,1,191,1,self.tbItemInfo,5); sẽ cho 5 item (18,1,191,1), self.tbItemInfo thực hiện thiết lập trong tbItemInfo khai báo trước đó.
Trên là 2 cách để add 1 item khóa, các bạn cố gắng tìm hiểu chứ đừng yêu cầu làm hộ thì mới hiểu đc
bonus: các thiết lập khác trong tbItemInfo ngoài chức năng khóa item; mình chỉ giải thích cái mình biết ^^!
quote Code:
tbItemInfo =
{
nSeries or Env.SERIES_NONE, --Ngũ hành ( từ 1-5, 0 là ko vô, mặc định ko thiết lập là Env.SERIES_NONE )
nEnhTimes or 0,
nLucky or 0, --May mắn, mặc định là 0
tbGenInfo,
tbRandomInfo,
nVersion or 0,
uRandSeed or 0,
bForceBind, --Thiết lập khóa, mặc định 0-ko khóa; 1-khóa
bTimeOut, --Hạn sử dụng
bMsg,
}
Các bạn tự tìm hiểu nhá ^^ Chúc may mắn!
1 nhân vật có thể đồng thời tu luyện tất cả các phái (ngoài những môn phái quy định giới tính ra thì chịu)
đường dẫn tới file
...\gameserver\script\faction\changefaction.lua
các bác tìm dòng
quote Code:
Faction.MAX_USED_FACTION = 3;
thay số 3 = số môn phái 1 nhân vật có thể đồng thời tu luyện, nhiều nhất nên chọn 11 (không nên để >11)
Tiếp theo là dùng tu luyện châu để thay đổi môn phái, các bác yên tâm khi phụ tu thêm 1 phái tu luyện châu sẽ có thêm dòng chuyển sang phái đấy, tuy nhiên thời gian chờ để chuyển từ phái này sáng phái khác mặc định là 30p, để rút ngắn thời gian, tìm đến dòng (vẫn file changefaction.lua đấy)
quote Code:
Faction.SWITCH_FACTION_CD = 1800;
Thay đổi 1800 (tương ứng 1800=30*60=30p) muốn bao nhiêu phút thì lấy số phút nhân 60, mình để 1 tức là 1 giây sau có thể đổi được phái khác
Bạn việt hóa dòng :Thay Đổi Đến ..... ở scrip nào vậy mình tìm hoài mà không được. Bạn giúp mình nhé.
trong gameserver\script\item\class\xiulianzhu.lua