一个不错的帮派战脚本,此脚本完美适配烈焰私服各种版本 LUA脚本

admin 2018年12月26日 20:10:37 1304

话不多说,新建一个.lua的烈焰脚本文件,复制下面的内容粘贴保存即可使用

--[[
    帮派战争脚本文件
       系统变量: 25发起帮战公会ID,26应战帮会公会ID,27入口是否开启,28发起帮战公会积分 29应战帮会公会积分
       角色变量: 240死亡次数 241个人积分(默认100积分) 242奖励领取记录(0无,1赢,2平)
--]]

function OnTimeEvent(hour,min)
       if hour >= 8 and hour<23 then
               if min == 1 then
                       g_set_param(25,0);
                       g_set_param(26,0);
                       g_set_param(27,0);
                       g_set_param(28,0);
                       g_set_param(29,0);
                       g_alert("新一场帮派战争一分钟后开始接受报名,请各帮派注意报名,过期不候!",1,1000,0,1);
                       g_alert("<font color='#FF0000'>新一场帮派战争一分钟后开始接受报名,请各帮派注意报名,过期不候!!!</font>",2,1000,0,1);
               elseif min==15 then
                       if g_get_param(25)==0 then
                               g_alert("本场帮派之战报名时间还有5分钟了,有没有强力帮会敢于发起战争?热血哪去了!",1,1000,0,1);
                               g_alert("<font color='#FF0000'>本场帮派之战报名时间还有5分钟了,有没有强力帮会敢于发起战争?热血哪去了!!!</font>",2,1000,0,1);
                       elseif g_get_param(26)==0 then
                               g_alert("本场帮派之战报名时间还有5分钟了,真的就没有帮派敢于应战了吗?都怂了?愿意当缩头乌龟??",1,1000,0,1);
                               g_alert("<font color='#FF0000'>本场帮派之战报名时间还有5分钟了,真的就没有帮派敢于应战了吗?都怂了?愿意当缩头乌龟??</font>",2,1000,0,1);
                       else
                               g_alert("帮派战争的战鼓已经擂响,战场入口5分钟后开启,请对战帮派双方勇士准备进入战场!!!",1,1000,0,1);
                               g_alert("<font color='#FF0000'>帮派战争的战鼓已经擂响,战场入口5分钟后开启,请对战帮派双方勇士准备进入战场!!!</font>",2,1000,0,1);
                       end
               elseif min==20 then
                       if g_get_param(25)~=0 and g_get_param(26)~=0 then
                               g_set_param(27,1);        --入口开启标识
                               g_alert("帮派战场入口开启,请对战帮派双方速度进入战场!",1,1000,0,1);
                               g_alert("<font color='#FF0000'>帮派战场入口开启,请对战帮派双方速度进入战场!!!</font>",2,1000,0,1);                                
                       elseif g_get_param(25)==0 then
                               g_alert("本场帮派战争由于没有帮派发起战争,作废,过期不候!",1,1000,0,1);
                               g_alert("<font color='#FF0000'>本场帮派战争由于没有帮派发起战争,作废,过期不候!!!</font>",2,1000,0,1);
                       elseif g_get_param(26)==0 then
                               for k,v in pairs(GetPlayersInWorld()) do
                                       if v:GetGuildId()==g_get_param(25) and v:get_guild() == 100 then
                                               v:add_vcoin(2500000);
                                               v:alert(10,0,0,"由于无帮会应战,系统返还你250W元宝报名费!");
                                               g_set_param(25,0);
                                               break;
                                       end
                               end
                               g_set_param(25,0);
                               g_alert("看来本服让某个帮派称霸了,竟然没有帮派敢应战,那就等候下一场看看吧!",1,1000,0,1);
                               g_alert("<font color='#FF0000'>看来本服让某个帮派称霸了,竟然没有帮派敢应战,那就等候下一场看看吧!!!</font>",2,1000,0,1);
                       end
               elseif min==54 then
                       if g_get_param(27)==1 then
                               g_alert("请注意,本场帮派之战还有5分钟结束!!!",1,1000,0,1);
                               g_alert("<font color='#FF0000'>请注意,本场帮派之战还有5分钟结束!!!</font>",2,1000,0,1);
                       end
               elseif min==58 then        
                       if g_get_param(27)==1 then 
                               g_alert("<font color='#FF0000'>请注意,本场帮派之战还有1分钟结束!!!</font>",2,1000,0,1);
                       end
               elseif min==59 then
                       if g_get_param(27)==1 then
                               g_set_param(27,0);        --入口关闭标识
                               local g25 = g_get_param(25);
                               local g26 = g_get_param(26);
                               local g28 = g_get_param(28);
                               local g29 = g_get_param(29);
                               for k,v in pairs(GetPlayersInWorld()) do
                                       v:set_param(240,0);        --重置死亡次数
                                       local pgid = v:GetGuildId();
                                       if g28>g29 then
                                               if pgid==g25 then
                                                       v:set_param(242,1);
                                               end
                                       elseif g28<g29 then
                                               if pgid==g26 then
                                                       v:set_param(242,1);
                                               end
                                       else
                                               if pgid==g25 or pgid==g26 then
                                                       v:set_param(242,2);
                                               end
                                               v:set_param(242,2);
                                       end
                                       if v:GetMapId()==669 then
                                               v:enter_map(12,120,120);
                                       end
                               end
                               if g28>g29 then
                                       g_alert("本场帮派战争结束!红方帮会取得胜利。",2,1000,0,1);
                               elseif g28<g29 then
                                       g_alert("本场帮派战争结束!蓝方帮会取得胜利。",2,1000,0,1);
                               else
                                       g_alert("本场帮派战争结束!双方打平手,不分胜负。",2,1000,0,1);
                               end
                               g_alert("本场帮派战争结束!请要参加下一场战争的帮会准备报名。",1,1000,0,1);
                               g_broadcast(14,0,0,"本场帮派战争结束!请要参加下一场战争的帮会准备报名。");
                       end
               end
       end
end        

function ontalk10019(npc,event,player)
       player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
<font color='#FF0000'>来吧,带上你的兄弟,为了我们的荣誉,战!!!</font>
<font color='#FF0000'>注:每小时前20分钟为报名时间,后40分钟即可进入战场</font>
<font color='#FF0000'>报名参加者务必在开启后点击进入战场,每人限5条生命</font>
<font color='#FF0000'>进入战场后您将有10秒的免疫保护</font>
  1、时间:每天8点到23点,1小时一场,过期不候
  2、参与条件:报名费2500000元宝
  3、活动中死亡不掉落物品,攻击模式锁定为[公会]
     击杀玩家不增加PK值
  4、积分获取
     击杀敌对帮会玩家可增加对应积分
     <u><a href='event:M2402,1'>点击查看积分获取说明</a></u>
  5、奖励说明:
     <u><a href='event:M2402,2'>点击查看奖励说明</a></u>
  6、胜负判定:
     击杀敌对帮会守护兽,或者活动结束时帮会积分多的一方获得胜利

          <u><a href='event:M2402,3'>[帮会报名]</a></u>     <a href='event:M2402,4'><font color='#FF0000'>【进入战场】</font></a>   
#&talk_line#&
                 <a href='event:M2402,5'><font color='#FFFF00'>【领取奖励】</font></a>
]]);
end

function ontalk10019_1(npc,event,player)
       player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
 积分获取:
#&talk_line#&
 击杀一名敌方普通玩家
 
 个人积分 + 100
 帮会积分 + 100
 
 击杀一名敌方公会管理
 
 个人积分 + 200
 帮会积分 + 200

                                                                 <u><a href='event:M2402,0'>返回首页</a></u>
]]);
end

function ontalk10019_2(npc,event,player)
       player:echo(0,npc:GetLowGUID(),[[
#&talk_line#&
 胜利帮会:
 
 报名费退回,并奖励250W元宝;
 
 个人:按积分高低奖励相应元宝 *100
 
#&talk_line#&
 失败帮会:
 
 失去报名费;
 
 个人:按积分高低奖励相应元宝*50

#&talk_line#&
 平局:

 个人:按积分高低奖励相应元宝*50

                                                                 <u><a href='event:M2402,0'>返回首页</a></u>
]]);
end

function ontalk10019_3(npc,event,player)        --帮会报名
       local h = tonumber(os.date("%H",os.time()));
       local t = tonumber(os.date("%M",os.time()));
       if h>=8 and h<23 then
               if t>1 and t<20 then
                       if g_get_param(25)==0 then
                               if player:get_guild() == 100 then
                                       if player:get_vcoin()>=2500000 then
                                               player:sub_vcoin(2500000);
                                               g_set_param(25,player:GetGuildId());
                                               g_alert("【"..player:GetGuildName().."】帮会发起了帮派战争, 是否有帮派敢去应战?怂了?想当缩头乌龟?不,我相信具有热血的你不会的!!!",1,1000,0,1);
                                               g_alert("<font color='#FF0000'>【"..player:GetGuildName().."】帮会发起了帮派战争, 是否有帮派敢去应战?怂了?想当缩头乌龟?不,我相信具有热血的你不会的...</font>",2,1000,0,1);
                                       else
                                               player:alert(10,0,0,"你身上没有250W元宝,不能报名帮派战争!");
                                       end
                               else
                                       player:alert(10,0,0,"你不是帮会老大,不能发起帮战!");
                               end
                       elseif g_get_param(26)==0 then
                               if player:get_guild() == 100 then
                                       if g_get_param(25) ~= player:GetGuildId() then
                                               if player:get_vcoin()>=2500000 then
                                                       player:sub_vcoin(2500000);
                                                       g_set_param(26,player:GetGuildId());
                                                       g_alert("【"..player:GetGuildName().."】帮会奋起应战,帮会战争一触即发,帮战战场入口即将开启,请交战双方赶紧进入战场!!!",1,1000,0,1);
                                                       g_alert("<font color='#FF0000'>【"..player:GetGuildName().."】帮会奋起应战,帮会战争一触即发,帮战战场入口即将开启,请交战双方准备进入战场!!!</font>",2,1000,0,1);
                                               else
                                                       player:alert(10,0,0,"你身上没有250W元宝,不能报名帮派战争!");
                                               end
                                       else
                                               player:alert(10,0,0,"捣啥乱,本场帮战你已经报过名了。");
                                       end
                               else
                                       player:alert(10,0,0,"你不是帮会老大,不能发起应战!");
                               end
                       else
                               player:alert(10,0,0,"本场帮派战争报名帮会名额已满,请等候下场战争再报名!");
                       end
               else
                       player:alert(10,0,0,"当前不是帮战报名时间,请稍候再来报名!");
               end
       else
               player:alert(10,0,0,"帮派战场每日开启时间[ 8 ]点到[ 23 ]点!");
       end
       return;
end

function ontalk10019_4(npc,event,player)        --进入战场
       if g_get_param(27)==1 then
               if player:get_param(240)<5 then
                       if g_get_param(25)==player:GetGuildId() then
                               if player:get_param(241)<100 then
                                       player:set_param(241,100);
                               end
                               player:enter_map(669,52,176);
                               player:set_attack_mode(103);                        --设置攻击模式 100全体 101和平 102组队 103公会 104善恶 105阵营
                               player:set_param(296,1);                                --锁定PK模式
                               player:set_status(109,10,100,0);                --添加PK保护BUFF 10秒
                               g_alert("【"..player:GetGuildName().."】帮会成员["..player:GetName().."]进入帮派战场,请敌对帮派成员注意截杀,此人死亡["..player:get_param(240).."]次...",2,1000,0,1);
                       elseif g_get_param(26)==player:GetGuildId() then
                               if player:get_param(241)<100 then
                                       player:set_param(241,100);
                               end
                               player:enter_map(669,128,83);
                               player:set_attack_mode(103);                        --设置攻击模式 100全体 101和平 102组队 103公会 104善恶 105阵营
                               player:set_param(296,1);                                --锁定PK模式
                               player:set_status(109,10,100,0);                --添加PK保护BUFF 10秒
                               g_alert("【"..player:GetGuildName().."】帮会成员["..player:GetName().."]进入帮派战场,请敌对帮派成员注意截杀,此人死亡["..player:get_param(240).."]次...",2,1000,0,1);
                       else
                               player:alert(10,0,0,"又不是你们帮的战争,想进去捣乱么?");
                       end
               else
                       player:alert(10,0,0,"您已经死亡超过5次,无法再进入战场!");
               end
       else
               player:alert(10,0,0,"帮派战争入口还未开启,请等候.....");
       end
       return;
end

function ontalk10019_5(npc,event,player)        --领奖
       if g_get_param(27)==1 then
               player:alert(10,0,0,"现在是战争时间,不能领取,请等候战争结束再领取。");
       else
               if player:get_param(241) >=100 then
                       if player:get_param(242)==1 then        --赢
                               if player:get_guild() == 100 then
                                       player:add_vcoin(5000000);         --返还报名费+奖励250W
                                       player:add_vcoin(player:get_param(241)*100); 
                                       player:alert(10,0,0,"系统返还你250W元宝报名费+250W元宝胜利奖励!");
                                       player:alert(10,0,0,"系统奖励你个人"..(player:get_param(241)*100).."元宝!");
                               else
                                       player:add_vcoin(player:get_param(241)*100);
                                       player:alert(10,0,0,"系统奖励你个人"..(player:get_param(241)*100).."元宝!");
                               end
                       elseif player:get_param(242)==2 then        --平
                               if player:get_guild() == 100 then
                                       player:add_vcoin(1250000);         --返还报名费一半
                                       player:add_vcoin(player:get_param(241)*50); 
                                       player:alert(10,0,0,"系统返还你125W元宝报名费!");
                                       player:alert(10,0,0,"系统奖励你个人"..(player:get_param(241)*50).."元宝!");
                               else
                                       player:add_vcoin(player:get_param(241)*50); 
                                       player:alert(10,0,0,"系统奖励你个人"..(player:get_param(241)*50).."元宝!");
                               end
                       elseif player:get_param(242)==0 then        --输
                               player:add_vcoin(player:get_param(241)*50);
                               player:alert(10,0,0,"系统奖励你个人"..(player:get_param(241)*50).."元宝!");                                
                       end
               else
                       player:alert(10,0,0,"没参加过帮战的就别来捣乱了,下次记得一定要参加。");
               end
               player:set_param(241,0);
               player:set_param(242,0);
       end
end

function mon9058(mon,event,player)
       g_alert("红方帮派守护兽已经死亡,蓝方帮会获得胜利!!!",2,1000,0,1);
       g_set_param(27,0);        --入口关闭标识
       for k,v in pairs(GetPlayersInWorld()) do
               v:set_param(240,0);                --重置死亡次数
               if v:GetGuildId()== g_get_param(26) then
                       v:set_param(242,1);
               end
               if v:GetMapId()==669 then
                       v:enter_map(12,120,120);
               end
       end
       player:alert(14,0,0,"红方帮派守护兽已经死亡,蓝方帮会获得胜利!!!");
end

function mon9059(mon,event,player)
       g_alert("蓝方帮派守护兽已经死亡,红方帮会获得胜利!!!",2,1000,0,1);
       g_set_param(27,0);        --入口关闭标识
       for k,v in pairs(GetPlayersInWorld()) do
               v:set_param(240,0);                --重置死亡次数
               if v:GetGuildId()== g_get_param(25) then
                       v:set_param(242,1);
               end
               if v:GetMapId()==669 then
                       v:enter_map(12,120,120);
               end
       end
       player:alert(14,0,0,"蓝方帮派守护兽已经死亡,红方帮会获得胜利!!!");
end

Npc10019Funid = 
{
[0] = ontalk10019;
[1] = ontalk10019_1;
[2] = ontalk10019_2;
[3] = ontalk10019_3;
[4] = ontalk10019_4;
[5] = ontalk10019_5;
}

function CreatureNpcFun(npc,event,player,funid)
       if Npc10019Funid[funid] ~= nil then
               Npc10019Funid[funid](npc,event,player);
       end
end

RegisterServerHook(44,"OnTimeEvent");
RegisterUnitEvent(10019,20,"ontalk10019")
RegisterUnitEvent(10019,29,"CreatureNpcFun")
RegisterUnitEvent(9058,4,"mon9058")        --红方
RegisterUnitEvent(9059,4,"mon9059")        --蓝方


有任何问题请在下面跟帖反馈或者私信站长即可,站长帮各位烈焰私服爱好者解答各种疑难杂症
相关帖子
 烈焰私服元旦福利活动来啦,各位玩家注意啦,一大波福利送不停。   1363   admin 2018-12-27 10:32:40

 烈焰私服攻城拿沙战术分析   1177   admin 2018-12-28 20:02:25

 烈焰私服如何在npc上面打造极品装备呢   1471   admin 2018-12-31 22:34:21

 烈焰私服中怎么读取玩家的战力数据,下面教你怎么写这个脚本。   1357   admin 2018-12-25 19:02:49

 元旦将至烈焰私服将迎来一大波更新,来吧骚年先睹为快。   1251   admin 2018-12-24 10:50:34

 最近一个统计发现比烈焰私服更好玩的一个游戏   1262   admin 2018-12-23 19:52:02
最新回复 (0)
返回

烈焰私服