Diễn Đàn Game - Forum Game Private | GamePrivate.Biz

Xin Chào

Tổng Hợp 1 Số Script Cho Kiếm Thế Mỗi Ngày 1 Update

Share
    New Mem
    avatar

    Tổng số bài gửi : 4

    Giới tính : Male

    Gold : 20

    Cảm Ơn : 2

    Ngày Tham Gia : 2013-12-04

    Post by eseroale on 04/12/13, 01:13 am

    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
    Interval : 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)
    II) script cho vật phâm rơi ra có ngày sử dụng
    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ụ:
    local pItem = me.AddItem(ID của vật phẩm);
    pItem.Bind(1);
    me.SetItemTimeout(pItem, 2*24*60, 0); -- 2 ngày
    III) Hướng dẫn cách cho Nam có thể vào Nga My - Nữ có thể vào Thiếu Lâm

    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
    đang máu 4 luôn:zingme40::zingme40::zingme40::zingme40::zingme40::zingme40::zingme40::zingme40::zingme40:

    IV)Script nạp đồng trong game, có mật khẩu bảo vệ
    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à thấy chưa có gì HOT thêm cái số 5 luôn:zingme55:


    V) Ðề: Cần giúp đở tăng exp của sv
    Lử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
    VI) Bỏ giới hạn ăn Bổ Tu lệ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.
    đ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é

    VII) Share script add item 1 khóa bất kỳ Smile
    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!
    VIII) Hướng dẫn phụ tu nhiều môn phái (Tứ Tu, Ngũ Tu,... "n" Tu ^^)
    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
    Official Member
    avatar

    Tổng số bài gửi : 93

    Giới tính : Male

    Gold : 218

    Cảm Ơn : 51

    Ngày Tham Gia : 2013-11-08

    Post by phongbang2 on 04/12/13, 08:12 am

    khóa chủ đề bài viết đã được đăng.lần sau ghi nhớ ghi nguồn nhak bạn