[KT] Function Nhận Thưởng TOP CHIẾN TRƯỜNG
Hello & Welcome to our community. Is this your first visit? Đăng Ký
Follow us on
Follow us on Facebook Follow us on Twitter Linked In Flickr Watch us on YouTube My Space Blogger
 
Trang 1 của 2 1 2 CuốiCuối
Kết quả 1 đến 10 của 13
  1. #1
    V.I.P BMK's Avatar
    Ngày tham gia
    Mar 2011
    Bài viết
    612
    Thanks
    189
    Thanked 665 Times in 182 Posts

    Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    Lâu lâu có quá cho anh em dev !

    Thêm 1 Function này vào script battle_bouns.lua

    PHP Code:
    function Battle:AwardTopItem(tbPlayerList)
        
    local nMaxRank        0;
        
    local nIndex        0;
        
    Battle.tbItemInfo = {bForceBind=1,};
        for 
    1#tbPlayerList do
            
    local tbBattleInfo     tbPlayerList[i];
            
    local nJbBonus    0;
            if (
    == ithen
                nJbBonus 
    Battle.tbJBCOINBONUS[1];
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,9,self.tbItemInfo,10); -- huyen tinh 9
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem
            
    elseif (== then
                nJbBonus 
    Battle.tbJBCOINBONUS[2];
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,8,self.tbItemInfo,10); -- huyen tinh 8
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem
            
    elseif (== then
                nJbBonus 
    Battle.tbJBCOINBONUS[3];
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,7,self.tbItemInfo,10); -- huyen tinh 7
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem
            
    elseif (<= and 10 >= ithen        
                nJbBonus 
    Battle.tbJBCOINBONUS[4];
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,6,self.tbItemInfo,10); -- huyen tinh 6
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem
            
    elseif (11 <= ithen
                tbBattleInfo
    .pPlayer.AddStackItem(18,1,1,5,self.tbItemInfo,10); -- huyen tinh 5
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem            
            end
        end
    end 
    Tiếp theo tìm
    function Battle:AwardPlayerList(tbPlayerReaultList, nBattleLevel)
    thêm vào
    PHP Code:
        self:AwardTopItem(tbPlayerReaultList); 
    Click thank khích lệ lần sau share cái khác .
    Khách viếng thăm hãy cùng BMK xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  2. The Following 24 Users Say Thank You to BMK For This Useful Post:

    chery (02-12-12), chinh (07-12-15), dothieuxuyen (05-08-14), hieudkny11o2 (16-04-14), hitlezan (30-11-12), huylouis1996 (01-12-12), jeansu (30-11-12), jxonline2 (30-11-12), kiemphap (02-12-12), ktpripri (10-03-14), liemkute123 (30-11-12), linhpl2001 (29-12-12), lonelywofl38 (31-03-13), Mr.Quy (30-11-12), phuocbanks25 (03-12-12), quancoi000 (21-04-13), satthupro95 (03-12-12), thaitunet39 (03-12-12), thanhdinh10 (01-12-12), tkv003 (24-05-13), tudz113 (21-03-16), vd_tt (30-11-12), vipbk (30-11-12), yasichiaki (30-11-12)

  3. #2
    Thành Viên
    Ngày tham gia
    Dec 2008
    Bài viết
    89
    Thanks
    39
    Thanked 31 Times in 15 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    bạn ơi sao mình đy tống kim xếp hạng 1 mà chỉ nhận dc kinh nghiệm thôi là sao bạn?
    Khách viếng thăm hãy cùng thaitunet39 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  4. #3
    Thành Viên lyvanbethao's Avatar
    Ngày tham gia
    Jul 2012
    Bài viết
    582
    Thanks
    215
    Thanked 17 Times in 16 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    bạn cho mình hỏi thêm vào rồi nhưng khi kết thúc ko nhận dc gì ngược lại báo lỗi
    [Only registered and activated users can see links. ]
    bạn cho mình biết file liên quan đến tống kim là file nào ko để mình chép lại mình sợ mình sữa bị sai
    file bate_bouns.lua cua mình đây
    PHP Code:
    -----------------------------------------------------
    --
    文件名        :    battle_bouns.lua
    --创建者        :    zhouchenfei
    --创建时间        :    2007-10-23
    --功能描述        :    战场中的分值处理
    ------------------------------------------------------

    -- 
    重置积分
    function Battle:ResetBonus(pPlayernNowTime)
        
    pPlayer.Msg("Tích lũy bị trừ hết!");
        
    pPlayer.SetTask(self.TSKGIDself.TSK_BTPLAYER_TOTALBOUNS0);
        
    pPlayer.SetTask(self.TSKGIDself.TSK_BTPLAYER_LASTBOUNSTIMEnNowTime);
    end

    -- 重置使用积分上限
    function Battle:OnWeekEvent_ResetUseBouns()
        
    local nUseBouns     me.GetTask(self.TSKGIDself.TSK_BTPLAYER_USEBOUNS);
        
    Battle:DbgWrite(Dbg.LOG_INFO"OnWeekEvent_ResetUseBouns"self.TSKGIDself.TSK_BTPLAYER_USEBOUNS0);
        
    me.SetTask(self.TSKGIDself.TSK_BTPLAYER_USEBOUNS0);
    end

    -- 检查是否是新的一周
    function Battle:CheckNewWeek(pPlayernNowTime)
        
    local nLastTime              pPlayer.GetTask(self.TSKGIDself.TSK_BTPLAYER_LASTBOUNSTIME);
        
    local nLastDay             math.ceil(nLastTime / (3600 24));
        
    local nNowDay            math.ceil(nNowTime / (3600 24));
        
        if (
    nNowDay <= nLastDaythen
            
    return;
        
    end

        
    -- 从星期天开始算,为一个星期的第一天
        nLastDay             
    nLastDay 4;
        
    nNowDay                nNowDay 4;
        
    local nLastWeek        math.floor(nLastDay 7);
        
    local nNowWeek        math.floor(nNowDay 7);
        if (
    nNowWeek nLastWeekthen
            
    return 1;
        
    end
        
    return 0;
    end

    -- 处理连斩积分奖励
    function Battle:ProcessSeriesBouns(tbKillerBattleInfotbDeathBattleInfo)
        
    local nMeRank            tbDeathBattleInfo.nRank;
        
    local nPLRank            tbKillerBattleInfo.nRank;
        -- 
    符合连斩条件 计算有效连斩
        
    if (>= (nPLRank nMeRank)) then
            local nSeriesKill    
    tbKillerBattleInfo.nSeriesKill 1;
            
    tbKillerBattleInfo.nSeriesKill    nSeriesKill;

            if (
    math.fmod(nSeriesKill3) == 0then    
                tbKillerBattleInfo
    .nTriSeriesNum    tbKillerBattleInfo.nTriSeriesNum 1;
                
    self:AddShareBouns(tbKillerBattleInfoself.SERIESKILLBOUNS)
                
    tbKillerBattleInfo.pPlayer.Msg(string.format("Quân %s - %s %s liên tiếp tiêu diệt %d quân địch, nhận thưởng Liên Trảm %d điểm tích lũy."Battle.NAME_CAMP[tbKillerBattleInfo.tbCamp.nCampId], Battle.NAME_RANK[tbKillerBattleInfo.nRank], tbKillerBattleInfo.pPlayer.szNametbKillerBattleInfo.nSeriesKillself.SERIESKILLBOUNS));
            
    end

            
    if (tbKillerBattleInfo.nMaxSeriesKill nSeriesKillthen
                tbKillerBattleInfo
    .nMaxSeriesKill nSeriesKill;
            
    end
        end
        
        
    -- 计算连斩    
        local nSeriesKillNum    
    tbKillerBattleInfo.nSeriesKillNum 1;
        
    tbKillerBattleInfo.nSeriesKillNum    nSeriesKillNum;

        if (
    tbKillerBattleInfo.nMaxSeriesKillNum nSeriesKillNumthen
            tbKillerBattleInfo
    .nMaxSeriesKillNum nSeriesKillNum;
        
    end
        
    end

    -- 获得杀死玩家积分奖励
    function Battle:GiveKillerBouns(tbKillerBattleInfotbDeathBattleInfo)
        
    tbKillerBattleInfo.nKillPlayerNum    tbKillerBattleInfo.nKillPlayerNum 1;
        
        -- 
    要不要做安全性检测呢?
        local nMeRank        
    tbDeathBattleInfo.nRank;
        
    local nPLRank        tbKillerBattleInfo.nRank;
        
        
    local nRadioRank    1;
        
    nRadioRank            = (10 - (nPLRank nMeRank)) / 10;
        
    local nPoints        math.floor(Battle.tbBonusBase.KILLPLAYER nRadioRank);
        
    local nBounsDif        self:AddShareBouns(tbKillerBattleInfonPoints)
        if (
    nBounsDif 0then
            tbKillerBattleInfo
    .nKillPlayerBouns tbKillerBattleInfo.nKillPlayerBouns nPoints;
        
    end
    end

    -- 获得战旗积分奖励
    function Battle:GetTheFlagBouns(tbBattleInfo)
        
    local nCamp                tbBattleInfo.tbCamp.nCampId;
        
    local nBounsDif         self:AddShareBouns(tbBattleInfoBattle.tbBonusBase.SNAPFLAG)
        if (
    nBounsDif 0then
            tbBattleInfo
    .nFlagsBouns tbBattleInfo.nFlagsBouns Battle.tbBonusBase.SNAPFLAG;
        
    end
        tbBattleInfo
    .nFlagNum    tbBattleInfo.nFlagNum 1;
    end

    -- 获得珍宝积分奖励
    function Battle:GetTheTreasure(tbBattleInfo)
        
    local nCamp                tbBattleInfo.tbCamp.nCampId;
        
    local nBounsDif         self:AddShareBouns(tbBattleInfoBattle.tbBonusBase.GETITEM)
        if (
    nBounsDif 0then
            tbBattleInfo
    .nTreasureBouns tbBattleInfo.nTreasureBouns Battle.tbBonusBase.GETITEM;
        
    end
        tbBattleInfo
    .nTreasure    tbBattleInfo.nTreasure 1;
    end

    -------------------

    function 
    Battle:AwardTopItem(tbPlayerList
        
    local nMaxRank        0
        
    local nIndex        0
        
    Battle.tbItemInfo = {bForceBind=1,}; 
        for 
    1#tbPlayerList do 
            
    local tbBattleInfo     tbPlayerList[i]; 
            
    local nJbBonus    0
            if (
    == ithen 
                nJbBonus 
    Battle.tbJBCOINBONUS[1]; 
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,12,self.tbItemInfo,10); -- huyen tinh 9 
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem 
            
    elseif (== then 
                nJbBonus 
    Battle.tbJBCOINBONUS[2]; 
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,11,self.tbItemInfo,10); -- huyen tinh 8 
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem 
            
    elseif (== then 
                nJbBonus 
    Battle.tbJBCOINBONUS[3]; 
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,7,self.tbItemInfo,10); -- huyen tinh 7 
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem 
            
    elseif (<= and 10 >= ithen         
                nJbBonus 
    Battle.tbJBCOINBONUS[4]; 
                
    tbBattleInfo.pPlayer.AddStackItem(18,1,1,6,self.tbItemInfo,10); -- huyen tinh 6 
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem 
            
    elseif (11 <= ithen 
                tbBattleInfo
    .pPlayer.AddStackItem(18,1,1,5,self.tbItemInfo,10); -- huyen tinh 5 
                tbBattleInfo
    .pPlayer.AddExp(3000000000); -- kinh nghiem             
            end 
        end 
    end  
    -- 积分换经验
    function Battle:BounsChangeExp(nLevelnBouns)
        
    local nExp 0;
        if (
    nLevel 40then
            
    return 0;
        
    end
        
        
    if (nLevel 120then
            nLevel 
    120;
        
    end
        
        nExp 
    math.floor(( 700 math.floor(( nLevel 40 ) / ) * 100 ) * 60 /3000 )    * nBouns -- 1个积分点的基础经验值
        
        local nKinId 
    me.dwKinId;
        
    local cKin KKin.GetKin(nKinId);
        if (
    cKinthen
            local nWeeklyTask 
    cKin.GetWeeklyTask();
            if (
    Kin.TASK_BATTLE == nWeeklyTaskthen
                nExp 
    math.floor(nExp 1.5);
            
    end
        end
        
    return nExp;
    end

    -- 战局结束时的声望按排名奖励
    function Battle:AwardFinalShengWang(tbPlayerList)
        
    local nNowShengWang 0;
        
    local nMaxRank        0;
        
    local nIndex        0;
        for 
    1#tbPlayerList do
            
    local tbBattleInfo     tbPlayerList[i];
            
    local nNowShengWang    0;
            
    local nRankSheng    0;
            
    local nBounsSheng    0;
            if (
    == ithen
                nRankSheng 
    Battle.tbRANKSHENGWANG[1];
            elseif (
    <= and >= ithen
                nRankSheng 
    Battle.tbRANKSHENGWANG[2];
            elseif (
    <= and 10 >= ithen
                nRankSheng 
    Battle.tbRANKSHENGWANG[3];
            elseif (
    11 <= and 20 >= ithen
                nRankSheng 
    Battle.tbRANKSHENGWANG[4];
            
    end
            
            
    for keytbRankBouns in ipairs(Battle.tbBOUNSSHENGWANG) do
                if (
    tbBattleInfo.nBouns >= tbRankBouns[1]) then
                    nBounsSheng 
    tbRankBouns[2];
                    break;
                
    end
            end
            nNowShengWang 
    nRankSheng;
            if (
    nBounsSheng nNowShengWangthen
                nNowShengWang 
    nBounsSheng;
            
    end
            local nCamp            
    tbBattleInfo.tbCamp.nCampId;
            
    tbBattleInfo.nShengWang     tbBattleInfo.nShengWang nNowShengWang;
            
    tbBattleInfo.pPlayer.Msg(string.format("Xếp hạng: <color=green>%d<color>, bạn nhận được <color=white>%d<color> điểm danh vọng chiến trường."itbBattleInfo.nShengWang));
        
    end
    end

    -- 战局结束时的声望按排名奖励
    function Battle:AwardFinalHonor(tbPlayerList)
        
    local nNowHonor 0;
        
    local nMaxRank        0;
        
    local nIndex        0;
        for 
    1#tbPlayerList do
            
    local tbBattleInfo     tbPlayerList[i];
            
    local nNowHonor    0;
            
    local nRankHonor    0;
            
    local nBounsHonor    0;
            if (
    == ithen
                nRankHonor 
    Battle.tbRANKHONOR[1];
            elseif (
    <= and >= ithen
                nRankHonor 
    Battle.tbRANKHONOR[2];
            elseif (
    <= and 10 >= ithen
                nRankHonor 
    Battle.tbRANKHONOR[3];
            elseif (
    11 <= and 20 >= ithen
                nRankHonor 
    Battle.tbRANKHONOR[4];
            
    end
            
            
    for keytbRankBouns in ipairs(Battle.tbBOUNSHONOR) do
                if (
    tbBattleInfo.nBouns >= tbRankBouns[1]) then
                    nBounsHonor 
    tbRankBouns[2];
                    break;
                
    end
            end
            nNowHonor 
    nRankHonor;
            if (
    nBounsHonor nNowHonorthen
                nNowHonor 
    nBounsHonor;
            
    end
            local nCamp            
    tbBattleInfo.tbCamp.nCampId;
            
    tbBattleInfo.nHonor tbBattleInfo.nHonor nNowHonor;
            
    tbBattleInfo.pPlayer.Msg(string.format("Xếp hạng: <color=green>%d<color>, bạn nhận được <color=white>%d<color> điểm vinh dự chiến trường."itbBattleInfo.nHonor));
        
    end
    end

    -- 战局结束时的功勋按排名奖励
    function Battle:AwardFinalGongXun(tbPlayerList)
    --    
    local nNowGongXun     0;
    --    
    local nMaxRank        0;
    --    
    local nIndex        0;
    --    for 
    1#tbPlayerList do
    --        if (nMaxRankthen
    --            nIndex nIndex 1;
    --            if (
    not self.tbGONGXUNRANK[nIndex]) then
    --        --        print("self.tbSHENGWANGRANK[nIndex] error (Battle:AwardFinalGongXun(tbPlayerList, tbBattleAwardSheng))");
    --            
    end
    --            nMaxRank        self.tbGONGXUNRANK[nIndex][1];
    --            
    nNowGongXun        self.tbGONGXUNRANK[nIndex][2];
    --        
    end
    --        local tbBattleInfo     tbPlayerList[i];
    --        
    local nGongXun         tbBattleInfo.nGongXun nNowGongXun;
    --        
    local nCamp            tbBattleInfo.tbCamp.nCampId;
    --        
    tbBattleInfo.pPlayer.Msg(string.format("排名为:<color=green>%d<color>,你获得了<color=white>%d<color>点战场功勋值奖励。"inGongXun));
    --        
    tbBattleInfo.nGongXun nGongXun;
    --    
    end
    end

    function Battle:AwardFinalWeiWang(tbPlayerListnBattleLevel)
        if (
    not tbPlayerListthen
            
    return;
        
    end
        local nFlag 
    0;
        
    local nOpenTime KGblTask.SCGetDbTaskInt(DBTASD_SERVER_SETMAXLEVEL99);
        if (
    nOpenTime <= 0then
            nFlag 
    1;
        else
            if (
    nBattleLevel >= 2then
                nFlag 
    1;
            
    end
        end
        
    for iv in ipairs(tbPlayerList) do
            if (
    self.tbWeiWangRank[1] == ithen
                self
    :AwardWeiWang(v1050);    -- 冠军有6点威望
            
    elseif (self.tbWeiWangRank[1] < and self.tbWeiWangRank[2] >= ithen
                self
    :AwardWeiWang(v840);
            elseif (
    self.tbWeiWangRank[2] and self.tbWeiWangRank[3] >= ithen
                self
    :AwardWeiWang(v630);
            else
                if (
    nFlag == 1then
                    local nBouns 
    v.nBouns;
                    if (
    4500 <= nBounsthen
                        self
    :AwardWeiWang(v5201);
                    elseif (
    3000 <= nBounsthen
                        self
    :AwardWeiWang(v4201);
                    elseif (
    1800 <= nBounsthen
                        self
    :AwardWeiWang(v3151);
                    elseif (
    1500 <= nBounsthen
                        self
    :AwardWeiWang(v2151);
                    elseif (
    1200 <= nBounsthen
                        self
    :AwardWeiWang(v2101);
                    elseif (
    800 <= nBounsthen
                        self
    :AwardWeiWang(v1101);
                    elseif (
    500 <= nBounsthen
                        self
    :AwardWeiWang(v0101);
                    
    end            
                end
            end
        end
    end

    function Battle:AwardFinalOffer(tbPlayerListnBattleLevel)
        if (
    not tbPlayerListthen
            
    return;
        
    end 
        local nStockBaseCount 
    0;
        for 
    iv in ipairs(tbPlayerList) do
            if (
    >= and <= 3then
                self
    :AwardOffer(v150);    -- 前3名有150的贡献度
                nStockBaseCount 
    100;
            elseif (
    <= and 10 >= ithen
                self
    :AwardOffer(v120);    -- 前10名有120的贡献度
                nStockBaseCount 
    80;
            elseif (
    >= 10 and 20 >= ithen
                self
    :AwardOffer(v100);    -- 前20名有100的贡献度
                nStockBaseCount 
    60;
            else
                
    local nBouns v.nBouns;
                if (
    5000 <= nBounsthen
                    self
    :AwardOffer(v80); -- 5000积分以上的有80的贡献度
                    nStockBaseCount 
    50;
                elseif (
    5000 nBouns and 4000 <= nBounsthen
                    self
    :AwardOffer(v60); -- 4000积分以上的有60的贡献度
                    nStockBaseCount 
    30;
                elseif (
    4000 nBouns and 3000 <= nBounsthen
                    self
    :AwardOffer(v40);    -- 3000积分以上的有40的贡献度
                    nStockBaseCount 
    20;
                elseif (
    3000 nBouns and 1500 <= nBounsthen
                    self
    :AwardOffer(v30);    -- 1500积分以上的有30的贡献度
                    nStockBaseCount 
    10;
                
    end
            end
            
    if and v.pPlayer then
                
    -- 增加建设资金和族长、个人的股份
                Tong
    :AddStockBaseCount_GS1(v.pPlayer.nIdnStockBaseCount0.750.20.0500WeeklyTask.GETOFFER_TYPE_BATTLE);
            
    end
            
            
    if (and <= 20 and nBattleLevel == 3then
                
    -- 成就:高级战场前20名
                Achievement
    :FinishAchievement(v.pPlayer.nIdAchievement.BATTLE_GAOJI_20);
            
    end
        end
    end

    function Battle:AwardOffer(tbBattleInfonOffer)
        
    local pPlayer tbBattleInfo.pPlayer;
        if (
    not pPlayerthen
            
    return 0;
        
    end
        pPlayer
    .AddOfferEntry(nOfferWeeklyTask.GETOFFER_TYPE_BATTLE);
    end

    function Battle:AwardWeiWang(tbBattleInfonWeiWangnGongXiannFlag)
        
    local pPlayer tbBattleInfo.pPlayer;
        if (
    not pPlayerthen
            
    return 0;
        
    end
        
        
    -- 加入帮会,并且帮会通过考验期 by zhangjinpin@kingsoft
        
    if nFlag == 1 then
            
    if not pPlayer.dwTongId or pPlayer.dwTongId == 0 then
                
    return 0;
            
    end
        
            local pTong 
    KTong.GetTong(pPlayer.dwTongId);
            if 
    not pTong or pTong.GetTestState() ~= 0 then
                
    return 0;
            
    end
        end
        
    -- end

        
    if tbBattleInfo.tbMission and tbBattleInfo.tbMission.nBattleLevel then
            
    if tbBattleInfo.tbMission.nBattleLevel == and TimeFrame:GetStateGS("OpenOneFengXiangBattle") == 1 then
                nWeiWang 
    math.floor(nWeiWang 2);
            
    end
            pPlayer
    .AddKinReputeEntry(nWeiWang"battle");
        
    end
    end

    function Battle:AwardFinalXinDe(tbPlayerList)
        if (
    not tbPlayerListthen
            
    return;
        
    end
        
    for 1#tbPlayerList do
            
    if (== ithen
                self
    :AwardXinDe(tbPlayerList[i].pPlayer300000);    -- 冠军由6点威望
            
    elseif (<= and 10 >= ithen
                self
    :AwardXinDe(tbPlayerList[i].pPlayer200000);
            else
                
    local nBouns tbPlayerList[i].nBouns;
                if (
    3000 nBounsthen
                    self
    :AwardXinDe(tbPlayerList[i].pPlayer150000);
                elseif (
    3000 >= nBouns and 500 <= nBounsthen
                    self
    :AwardXinDe(tbPlayerList[i].pPlayer100000);
                
    end
            end
        end    
    end

    function Battle:AwardXinDe(pPlayernXinDe)
        if (
    nXinDe <= 0then
            
    return;
        
    end
        Setting
    :SetGlobalObj(pPlayer);
        
    Task:AddInsight(nXinDe);
        
    Setting:RestoreGlobalObj();
    end

    -- 奖励积分大于3000的玩家可以获得物质奖励
    function Battle:AwardFinalGoods(tbPlayerListnBattleLevel)
        if (
    not tbPlayerListthen
            
    return;
        
    end
        
        local nItemId 
    self.tbPaiItemId[nBattleLevel];
        for 
    1#tbPlayerList do
            
    local nBouns    tbPlayerList[i].nBouns;
            
    local pPlayer    tbPlayerList[i].pPlayer;
            if (
    self.tbAWARDBOUNS[1] <= nBounsthen
                pPlayer
    .SetTask(self.TSKGIDself.TSK_BTPLAYER_ZHANCHANGLINGPAInItemId);
                
    pPlayer.SetTask(self.TSKGIDself.TSK_BTPLAYER_FUDAI ,2);
                
    Dialog:SendInfoBoardMsg(pPlayer"Gặp Hiệu Úy Mộ Binh ở Báo danh chiến trường nhận thưởng.");
            elseif (
    self.tbAWARDBOUNS[2] <= nBounsthen
                pPlayer
    .SetTask(self.TSKGIDself.TSK_BTPLAYER_FUDAI ,1);
                
    Dialog:SendInfoBoardMsg(pPlayer"Gặp Hiệu Úy Mộ Binh ở Báo danh chiến trường nhận thưởng.");
            
    end
            
    if (nBouns 0then
                pPlayer
    .SetTask(self.TSKGIDself.TSK_BTPLAYER_BOUNSFORWARD1);
            
    end
        end    
    end

    -- 师徒成就:战场
    function Battle:GetAchievement(tbPlayerListnBattleLevel)
        if (
    not tbPlayerListthen
            
    return;
        
    end
        
    -- nBattleLevel 1(初级 扬州),2(中级 凤翔),3(高级 襄阳)
        
    for 1#tbPlayerList do
            
    local pPlayer tbPlayerList[i].pPlayer;
            -- 
    目前成就系统里面只需要添加扬州战场成就,如果以后要添加其他的,可以在这里补充
            
    if (pPlayer and nBattleLevel == 1then
                Achievement
    :FinishAchievement(pPlayer.nIdAchievement.BATTLE_YANGZHOU);
            
    end
        end
    end

    -- 获得一个战场令牌
    function Battle:AwardGood(pPlayernItemIdnPaiCountnFuCountnBounsnBattleLevel)
        
    local nFreeCounttbExecute SpecialEvent.ExtendAward:DoCheck("Battle"pPlayernBounsnBattleLevel);
        
        if (
    pPlayer.CountFreeBagCell() < (nPaiCount nFuCount nFreeCount) * Battle.nTimes then
            
    return 0;
        
    end
        
    for 1Battle.nTimes do
            if (
    nPaiCount 0then
                pPlayer
    .AddItem(18,1,112,nItemId);
                
    pPlayer.AddItem(18,1,114,8);
                
    pPlayer.AddItem(18,1,114,7);
                
    pPlayer.AddItem(18,1,114,7);
                
    pPlayer.AddItem(18,1,114,7);
                
    pPlayer.AddItem(18,1,263,1);
                
    pPlayer.AddItem(18,1,263,1);
                
    self:WriteLog("AwardGood"string.format("Give player %s a zhanchanglingpai"pPlayer.szName));
                
    pPlayer.SetTask(self.TSKGIDself.TSK_BTPLAYER_ZHANCHANGLINGPAI0);
            
    end
            
    if (nFuCount 0then
                
    for i=1nFuCount do
                    
    local pItem pPlayer.AddItem(18,1,80,1);
                    
    assert(pItem);
                    
    self:WriteLog("AwardGood"string.format("Give player %s a fudai"pPlayer.szName));
                    --
    local szDate os.date("%Y/%m/%d/%H/%M/%S"GetTime() + 3600 48);
                    --
    pPlayer.SetItemTimeout(pItemszDate);
                    --
    pItem.Sync();
                
    end
                pPlayer
    .SetTask(self.TSKGIDself.TSK_BTPLAYER_FUDAI0);
            
    end
            
    if (nBouns 0then
                local nMyUserBouns        
    self:GetMyUseBouns();
                
    local nFinalBouns        nBouns;
                if (
    nMyUserBouns nBouns self.BATTLES_POINT2EXP_MAXEXPthen
                    nFinalBouns 
    self.BATTLES_POINT2EXP_MAXEXP nMyUserBouns;
                
    end
                local nExp                 
    self:BounsChangeExp(pPlayer.nLevelnFinalBouns) * self.BOUNS2EXPMUL;
                if (
    nExp 0then
                    pPlayer
    .AddExp(nExp);
                
    end
                self
    :AddUseBouns(pPlayernFinalBounsnMyUserBouns);
                
    pPlayer.SetTask(Battle.TSKGIDBattle.TSK_BTPLAYER_TOTALBOUNS0);
            
    end
            SpecialEvent
    .ExtendAward:DoExecute(tbExecute);
        
    end
        
    return 1;
    end

    -- 更新每天玩家最大功勋值
    function Battle:UpdatePlayerHonorAndShengWang(tbPlayerList)
        for 
    _tbBattleInfo in pairs(tbPlayerList) do
            
    tbBattleInfo:SetPlayerHonor();
            
    tbBattleInfo:SetPlayerShengWang();
        
    end
    end

    -- 如果玩家的身份是未出师弟子,那么他的师徒任务当中的宋金战场次数加1
    function Battle:UpdateShiTuBattleCount(tbPlayerList)
        if (
    not tbPlayerListthen
            
    return;
        
    end
        local tbItem 
    Item:GetClass("teacher2student");
        for 
    iv in ipairs(tbPlayerList) do
            
    local pPlayer v.pPlayer;
            if (
    pPlayerthen
                
    if (pPlayer.GetTrainingTeacher()) then
                    local tbBattleInfo    
    Battle:GetPlayerData(pPlayer);
                    
    local nEnterBattleTime tbBattleInfo.nEnterBattleTime;
                    
    local nCurTime GetTime();
                    
    local nInBattleTime nCurTime nEnterBattleTime;
                    if (
    tbItem.BATTLE_VALID_TIME <= nInBattleTimethen
                        local nNeed_Battle 
    pPlayer.GetTask(Relation.TASK_GROUPRelation.TASK_ID_SHITU_BATTLE) + 1;
                        
    pPlayer.SetTask(Relation.TASK_GROUPRelation.TASK_ID_SHITU_BATTLEnNeed_Battle);
                    
    end
                end
            end
        end
    end

    -- 计算离上次更新时间过了多少天
    function Battle:CalculateDay(nLastTimenNowTime)
        
    local nLastDay     math.ceil(nLastTime / (3600 24));
        
    local nNowDay    math.ceil(nNowTime / (3600 24));
        
    local nDays        nNowDay nLastDay;
        if (
    nDays 0then
            nDays 
    0;
        
    end
        
    return nDays;
    end

    -- 清零
    function Battle:ClearBouns(pPlayer)
        
    self:SetTotalBouns(pPlayer0);
    end

    -- 个人玩家奖励
    function Battle:AwardPlayerList(tbPlayerReaultListnBattleLevel)
        
    self:AwardFinalHonor(tbPlayerReaultList);
        
    self:AwardFinalShengWang(tbPlayerReaultList);
        
    self:UpdatePlayerHonorAndShengWang(tbPlayerReaultList);
        
    self:UpdateShiTuBattleCount(tbPlayerReaultList);
        
    self:AwardFinalWeiWang(tbPlayerReaultListnBattleLevel);
        
    self:AwardFinalOffer(tbPlayerReaultListnBattleLevel);
        
    self:AwardFinalXinDe(tbPlayerReaultList);
        
    self:AwardFinalGoods(tbPlayerReaultListnBattleLevel);
        
    self:GetAchievement(tbPlayerReaultListnBattleLevel);
        
    self:AwardTopItem(tbPlayerReaultList);  
    end

    function Battle:_BTPrint(tbPlayerReaultList)
        print(
    "szName, nBouns, nGongXun, nShengWang");
        for 
    _tbBattleInfo in ipairs(tbPlayerReaultList) do
            print(
    tbBattleInfo.pPlayer.szNametbBattleInfo.nBounstbBattleInfo.nGongXuntbBattleInfo.nShengWang);
        
    end
    end

    -- 累加积分--TODO
    function Battle:AddUseBouns(pPlayernChangeBounsnMyUserBouns)
        if (
    == nChangeBounsthen
            
    return;
        
    end
        pPlayer
    .SetTask(Battle.TSKGIDBattle.TSK_BTPLAYER_USEBOUNSnChangeBouns nMyUserBouns);
    end

    -- 获得已用积分记录--TODO
    function Battle:GetMyUseBouns()
        
    local nMyBouns me.GetTask(Battle.TSKGIDBattle.TSK_BTPLAYER_USEBOUNS);
        return 
    nMyBouns;
    end

    function Battle:AddShareBouns(tbBattleInfonBouns)
        
    local tbShareTeamMember tbBattleInfo.pPlayer.GetTeamMemberList(1);
        if (
    not tbShareTeamMemberthen
            
    return tbBattleInfo:AddBounsWithCamp(nBouns);
        
    end
        
        local nResult    
    0;    
        
    local nCount    #tbShareTeamMember;
        
    if (nCountthen
            local nTimes    
    self.tbPOINT_TIMES_SHARETEAM[nCount];
            
    local nPoints    nBouns nTimes;
            
    nResult            tbBattleInfo:AddBounsWithCamp(nPoints);
        
    end

    -- 组队共享暂时不用
    --    for _pPlayer in pairs(tbShareTeamMember) do
    --        if (
    pPlayer.nId ~= tbBattleInfo.pPlayer.nIdthen
    --            local nFactionnRoutId self:GetFactionNumber(pPlayer);
    --            if (
    ~= nFactionthen
    --                local nTimes    self.tbPOINT_TIMES_SHAREFACTION[nFaction][nRoutId];
    --                
    local nPoints    nBouns nTimes;
    --                
    self:GetPlayerData(pPlayer):AddBounsWithCamp(nPoints);
    --            
    end
    --        end
    --    end
        
    return nResult;
    end

    function Battle:GetFactionNumber(pPlayer)
        
    local nFaction     pPlayer.nFaction;
        if (
    == nFactionthen
            Battle
    :DbgOut("GetFactionNumber"pPlayer.szName"Chưa gia nhập môn phái!");
            return 
    0;
        
    end
        local nRouteId    
    pPlayer.nRouteId;
        if (
    == nRouteIdthen
            Battle
    :DbgOut("GetFactionNumber"pPlayer.szName"Chưa chọn nhánh, không thể nhận Mật tịch môn phái!");
            return 
    0;
        
    end
        
    return nFactionnRouteId;
    end

    function Battle:OnWeekEvent_ResetBattleHonor()
        -- 
    TODO 排名
        local pPlayer 
    me;
        for 
    self.TSK_BTPLAYER_HONOR1self.TSK_BTPLAYER_HONOR4do
            
    pPlayer.SetTask(self.TSKGIDi0);
        
    end
    end

    function Battle:GetRemainJunXu()
        
    local nRemainJunXu me.GetTask(self.TSKGIDself.TSK_BTPLAYER_JUNXU);
        return 
    nRemainJunXu;
    end


    PlayerSchemeEvent
    :RegisterGlobalWeekEvent({Battle.OnWeekEvent_ResetUseBounsBattle});
    PlayerSchemeEvent:RegisterGlobalWeekEvent({Battle.OnWeekEvent_ResetBattleHonorBattle}); 
    Khách viếng thăm hãy cùng lyvanbethao xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  5. #4
    Thành Viên lyvanbethao's Avatar
    Ngày tham gia
    Jul 2012
    Bài viết
    582
    Thanks
    215
    Thanked 17 Times in 16 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    có ai giúp ko taaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
    Khách viếng thăm hãy cùng lyvanbethao xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  6. #5
    Thành Viên Tâm Huyết kakakura's Avatar
    Ngày tham gia
    Oct 2010
    Bài viết
    668
    Thanks
    130
    Thanked 67 Times in 63 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    Trích dẫn Gửi bởi satthulauhyh [Only registered and activated users can see links. ]
    Các bạn ngâm cứu chỗ này trong file bouns nhá:
    [Only registered and activated users can see links. ]

    Cách này mình làm vẫn được mà đâu nhất thiết như cách trên vẫn nhận ok .
    Tương lai tươi sáng thường dựa trên quá khứ đã quên lãng, bạn không thể sống thanh thản nếu bạn không vứt bỏ mọi nỗi buồn đã qua.

  7. #6
    Moderator vipbk's Avatar
    Ngày tham gia
    May 2012
    Đang ở
    đây
    Bài viết
    5,112
    Thanks
    248
    Thanked 3,006 Times in 1,888 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    có nhiều cách nhận thưởng, có thể thêm vật phẩm thưởng vào các hàm kiểm tra top tích lũy, top vinh dự ...
    Khách viếng thăm hãy cùng vipbk xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  8. #7
    Thành Viên lyvanbethao's Avatar
    Ngày tham gia
    Jul 2012
    Bài viết
    582
    Thanks
    215
    Thanked 17 Times in 16 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    có cách nào dể nhất ko chi minh với
    Khách viếng thăm hãy cùng lyvanbethao xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  9. #8
    Thành Viên lyvanbethao's Avatar
    Ngày tham gia
    Jul 2012
    Bài viết
    582
    Thanks
    215
    Thanked 17 Times in 16 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    ai củng làm dc hết mà sau mình làm hoài bị lõi như hình trên hoài là sau vậy ai giúp với
    Khách viếng thăm hãy cùng lyvanbethao xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  10. #9
    Thành Viên
    Ngày tham gia
    Jun 2011
    Bài viết
    159
    Thanks
    54
    Thanked 11 Times in 9 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    Cái này mình dùng sao thấy nó không được có lúc được có lúc không

    Có ai hướng dẫn kỹ cái này dùm mình không ?
    Khách viếng thăm hãy cùng jxonline2 xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

  11. #10
    Thành Viên
    Ngày tham gia
    Jun 2009
    Bài viết
    386
    Thanks
    69
    Thanked 2 Times in 2 Posts

    Ðề: Function Nhận Thưởng TOP CHIẾN TRƯỜNG

    UPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP mình cũng không làm được
    Khách viếng thăm hãy cùng dianguc.vn xây dựng diễn đàn CLBGAMESVN vững mạnh nhé!

 

 
Trang 1 của 2 1 2 CuốiCuối

Các Chủ đề tương tự

  1. Hàm trong JX Server [Full] Function[Full]
    Bởi quangken trong diễn đàn Scripts
    Trả lời: 21
    Bài viết cuối: 05-09-11, 08:16 PM
  2. Program Find A Function In The DLL !
    Bởi ohishu trong diễn đàn Võ Lâm Truyền Kỳ (Jx Server)
    Trả lời: 4
    Bài viết cuối: 01-05-11, 10:50 PM
  3. ai có sever chiến quốc tương thích vối client chiến quốc hiện nay
    Bởi phamngochai2 trong diễn đàn Server Chiến Quốc
    Trả lời: 3
    Bài viết cuối: 25-02-11, 08:33 AM
  4. Ai Giải thích Hộ Em Cái Function Này Với!!!!!!
    Bởi hoivegame trong diễn đàn Hỏi Đáp/ Yêu Cầu
    Trả lời: 5
    Bài viết cuối: 01-09-10, 12:30 PM

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •  
Múi giờ GMT +7. Bây giờ là 03:09 PM.
vBulletin®, Copyright ©2000-2011, Jelsoft Enterprises Ltd.
CLBGamesVN không chịu trách nhiệm về Luật Bản Quyền của các tài liệu, bài viết v.v...được đăng tải trên diễn đàn này.
Diễn đàn phát triển dưới sự đóng góp của tất cả thành viên. BQT chỉ là những người thành lập ra sân chơi, quản lý và duy trì về mặt kỹ thuật, nội dung khi hợp lệ.