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

Xin Chào

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

      New Mem
      eseroale

      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 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
      phongbang2

      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 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