藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

★【黑暗之光SF★我是大主宰SF】【神将三国SF】★

★【0.1折】★【变态网页游戏私服】★

★神将三国网页版上线送V5 5w元宝 5000w铜币 我是大主宰上线满v,80万元宝,小怪都爆元宝,耐玩长久稳定★

【原始传奇SF/维京传奇SF】【GM包站手游】

★【原始传奇SF/维京传奇SF】【GM包站手游】★

★2025火爆『传奇岁月+赤焰号角+维京传奇+原始传奇』爆战力称号BUFF+神装99999999万人PK★

首创可以单机 可以互动 可以赚烟钱的传奇

★全网独家 可以单机 可以互动的传奇!★

★全网唯一持续更新的可单机游戏!每15-25天更新一次内容,保持游戏新鲜度!! 众多独家的功能特色,众多你没见过的全新玩法,有能力的赚点烟钱,还能偶尔沙城战斗!★

★承接推广★
★承接推广★

★承接推广★

☆六一新区开放-放置传奇☆

★六一新区开放-放置传奇★

★可白嫖 上班摸鱼类 放置文字传奇游戏(放置休闲)qq群756025698★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★〖双线〗〖无忧传奇〗〖每日新区〗〖开局送神装 100%高爆率 装备元宝打怪爆〗★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★DNF★全职业平衡★公益服★
★DNF★全职业平衡★公益服★

【dnf86版本】【怀旧服】【全职业平衡】【非变态服】【非商业服】【775016356】

★承接推广★

★承接推广★

★承接推广★

★梦幻16门派全新大唐九黎★

★梦幻16门派全新大唐九黎★

★★新增全新门派九黎城,★不做垃圾,力争什么都做到最好★持续更新,长久稳定★

★承接推广★

★承接推广★

★承接推广★

查看: 1099|回复: 3

[分享] [77M2] 传奇引擎 VIP管理 脚本

[复制链接]
发表于 2015-6-24 10:20:19 | 显示全部楼层 |阅读模式
[77M2] 传奇引擎 VIP管理 脚本

给会使用的朋友. 我不做任何解答. 77M2上手难度++++++

引擎的链接具体大家可以搜索一下 就不发类似广告的链接了.

unit Q41;

interface
  uses Classes, SysUtils, G_AddAbility, DateUtils, DefiniensConst;
  
procedure Main(Npc: TNormNPC; Player: TPlayObject; Args: TArgs);
procedure Buy(Npc: TNormNPC; Player: TPlayObject; Args: TArgs);
procedure Desc(Npc: TNormNPC; Player: TPlayObject; Args: TArgs);

implementation

procedure Main(Npc: TNormNPC; Player: TPlayObject; Args: TArgs);
const
S=
[[
你好:\
  <$VIPInfo$>\
--------------------------------------------------------------\
<购买/@Buy(1)> {S=白银VIP;C=250}  价格{S=<$GOLD1$>;C=249}元宝<{S=查看特权;X=220}/@Desc(1)>\
<购买/@Buy(2)> {S=黄金VIP;C=251}  价格{S=<$GOLD2$>;C=249}元宝<{S=查看特权;X=220}/@Desc(2)>\
<购买/@Buy(3)> {S=至尊VIP;C=253}  价格{S=<$GOLD3$>;C=249}元宝<{S=查看特权;X=220}/@Desc(3)>\
--------------------------------------------------------------\\
<离开/@Exit>
]];
var
    AMessage: String;
begin
    case Player.MemberLevel of
    1:
    begin
      AMessage := ReplaceStr(S, '<$VIPInfo$>', '你当前是{S=白银VIP;C=250}特权玩家,有效期至{S='+FormatDateTime('YYYY年MM月DD日', Player.VarDateTime('VIP效期').AsDateTime)+';C=254}。');      
    end;
    2:
    begin
      AMessage := ReplaceStr(S, '<$VIPInfo$>', '你当前是{S=黄金VIP;C=251}特权玩家,有效期至{S='+FormatDateTime('YYYY年MM月DD日', Player.VarDateTime('VIP效期').AsDateTime)+';C=254}。');
    end;
    3:
    begin
      AMessage := ReplaceStr(S, '<$VIPInfo$>', '你当前是{S=至尊VIP;C=253}特权玩家,有效期至{S='+FormatDateTime('YYYY年MM月DD日', Player.VarDateTime('VIP效期').AsDateTime)+';C=254}。');      
    end;
    else
      AMessage := ReplaceStr(S, '<$VIPInfo$>', '你还不是VIP特权玩家。');
  end;
  //替换里面的金额信息        
  AMessage := ReplaceStr(AMessage, '<$GOLD1$>', IntToStr(V1_Price));
  AMessage := ReplaceStr(AMessage, '<$GOLD2$>', IntToStr(V2_Price));
  AMessage := ReplaceStr(AMessage, '<$GOLD3$>', IntToStr(V3_Price));
  Npc.Say(Player, AMessage);
end;

procedure Buy(Npc: TNormNPC; Player: TPlayObject; Args: TArgs);
var
  _Type,
  AGold,
  Limit: Integer;
begin
  //取出表示VIP类型的第一个参数
    _Type := Args.Int[0];
  //先检查之前是否是VIP
  if _Type < Player.MemberLevel then
  begin
    //新购买的VIP等级比当前等级低则不处理
    Player.SendCenterMessage('{S=你当前拥有更高的VIP等级!!!;C=249}', 0);
    Exit;
  end;  
  //根据VIP类型不同,将金额和期限取出来  
  case _Type of
    1:
    begin
      AGold := V1_Price;
      Limit := V1_DAY_LIMIT;
    end;
    2:
    begin
      AGold := V2_Price;
      Limit := V2_DAY_LIMIT;
    end;
    3:
    begin
      AGold := V3_Price;
      Limit := V3_DAY_LIMIT;
    end;
    else
      Exit; //如果类型不是1、2、3中的一个,则直接退出此函数
  end;
  if Player.GameGold >= AGold then
  begin
    //如果玩家的元宝足够,则减少元宝数量,并且设置VIP等级
    Player.GameGold := Player.GameGold - AGold;
    Player.GoldChanged;
    if (_Type = Player.MemberLevel) and (Player.VarDateTime('VIP效期').AsDateTime > Now) then
    begin
      //如果VIP等级相同,则为续费
      Player.VarDateTime('VIP效期').AsDateTime := DateUtils.IncDay(Player.VarDateTime('VIP效期').AsDateTime, Limit);
    end
    else
    begin
      //VIP等级高于当前等级,则为新的VIP,期限为即时起加上VIP期限
      Player.VarDateTime('VIP效期').AsDateTime := DateUtils.IncDay(Now, Limit);
    end;
    Player.VarDateTime('VIP效期').Save; //保存新的VIP期限
    Player.MemberLevel := _Type; //记录VIP类型
    G_AddAbility.AddAbility(Player); //重置角色附加属性     
    Player.RecalcAbilitys; //M2重新计算角色的各项属性,对人物附加属性调整后必须调用此函数才能立即对调整生效
    //客户端显示一条居中的提示信息
    case _Type of
      1: Player.SendCenterMessage('{S=恭喜你成功的购买了白银VIP,有效期至'+FormatDateTime('YYYY年MM月DD日', Player.VarDateTime('VIP效期').AsDateTime)+';C=253}', 0);
      2: Player.SendCenterMessage('{S=恭喜你成功的购买了黄金VIP,有效期至'+FormatDateTime('YYYY年MM月DD日', Player.VarDateTime('VIP效期').AsDateTime)+';C=253}', 0);
      3: Player.SendCenterMessage('{S=恭喜你成功的购买了至尊VIP,有效期至'+FormatDateTime('YYYY年MM月DD日', Player.VarDateTime('VIP效期').AsDateTime)+';C=253}', 0);
    end;
    Main(Npc, Player, Args); //重新调用入口函数,客户端显示新的VIP购买信息
  end
  else
  begin
    Player.SendCenterMessage('{S=对不起,你的元宝不足'+IntToStr(AGold)+';C=249}', 0);
  end;
end;

procedure Desc(Npc: TNormNPC; Player: TPlayObject; Args: TArgs);
const
VIP_DESC=
[[
                         {S=$VIPNAME$;C=250}\
{S=---------------------------------------------------------------;C=11}\
物理防御增加:{S=$ACMIN$-$ACMAX$;C=254}\
魔法防御增加:{S=$MACMIN$-$MACMAX$;C=254}\
物理攻击增加:{S=$DCMIN$-$DCMAX$;C=254}\
魔法攻击增加:{S=$MCMIN$-$MCMAX$;C=254}\
道术攻击增加:{S=$SCMIN$-$SCMAX$;C=254}\
杀怪经验值额外增加:{S=$EXPADD$%;C=254}\
杀怪金币额外增加:{S=$GOLDADD$%;C=254}\
杀怪物品爆率额外增加:{S=$ITEMADD$%;C=254}\
持续有效时间{S=$LIMIT$天;C=249}\\\\\\\\\
<返回/@main>
]];
var
    AMessage: String;
begin
  AMessage := VIP_DESC;
  //根据要查看的VIP信息的不同选择不同的信息数据
  case Args.Int[0] of
    1:
    begin
      AMessage := ReplaceStr(AMessage, '$VIPNAME$', '白银VIP');
      AMessage := ReplaceStr(AMessage, '$ACMIN$', IntToStr(V1_AC_MIN));
      AMessage := ReplaceStr(AMessage, '$ACMAX$', IntToStr(V1_AC_MAX));
      AMessage := ReplaceStr(AMessage, '$MACMIN$', IntToStr(V1_MAC_MIN));
      AMessage := ReplaceStr(AMessage, '$MACMAX$', IntToStr(V1_MAC_MAX));
      AMessage := ReplaceStr(AMessage, '$DCMIN$', IntToStr(V1_DC_MIN));
      AMessage := ReplaceStr(AMessage, '$DCMAX$', IntToStr(V1_DC_MAX));
      AMessage := ReplaceStr(AMessage, '$MCMIN$', IntToStr(V1_MC_MIN));
      AMessage := ReplaceStr(AMessage, '$MCMAX$', IntToStr(V1_MC_MAX));
      AMessage := ReplaceStr(AMessage, '$SCMIN$', IntToStr(V1_SC_MIN));
      AMessage := ReplaceStr(AMessage, '$SCMAX$', IntToStr(V1_SC_MAX));
      AMessage := ReplaceStr(AMessage, '$EXPADD$', IntToStr(V1_EXP_ADD));
      AMessage := ReplaceStr(AMessage, '$GOLDADD$', IntToStr(V1_GOLD_ADD));
      AMessage := ReplaceStr(AMessage, '$ITEMADD$', IntToStr(V1_ITEM_ADD));
      AMessage := ReplaceStr(AMessage, '$LIMIT$', IntToStr(V1_DAY_LIMIT));
    end;
    2:
    begin
      AMessage := ReplaceStr(AMessage, '$VIPNAME$', '黄金VIP');
      AMessage := ReplaceStr(AMessage, '$ACMIN$', IntToStr(V2_AC_MIN));
      AMessage := ReplaceStr(AMessage, '$ACMAX$', IntToStr(V2_AC_MAX));
      AMessage := ReplaceStr(AMessage, '$MACMIN$', IntToStr(V2_MAC_MIN));
      AMessage := ReplaceStr(AMessage, '$MACMAX$', IntToStr(V2_MAC_MAX));
      AMessage := ReplaceStr(AMessage, '$DCMIN$', IntToStr(V2_DC_MIN));
      AMessage := ReplaceStr(AMessage, '$DCMAX$', IntToStr(V2_DC_MAX));
      AMessage := ReplaceStr(AMessage, '$MCMIN$', IntToStr(V2_MC_MIN));
      AMessage := ReplaceStr(AMessage, '$MCMAX$', IntToStr(V2_MC_MAX));
      AMessage := ReplaceStr(AMessage, '$SCMIN$', IntToStr(V2_SC_MIN));
      AMessage := ReplaceStr(AMessage, '$SCMAX$', IntToStr(V2_SC_MAX));
      AMessage := ReplaceStr(AMessage, '$EXPADD$', IntToStr(V2_EXP_ADD));
      AMessage := ReplaceStr(AMessage, '$GOLDADD$', IntToStr(V2_GOLD_ADD));
      AMessage := ReplaceStr(AMessage, '$ITEMADD$', IntToStr(V2_ITEM_ADD));
      AMessage := ReplaceStr(AMessage, '$LIMIT$', IntToStr(V2_DAY_LIMIT));
    end;
    3:
    begin
      AMessage := ReplaceStr(AMessage, '$VIPNAME$', '至尊VIP');
      AMessage := ReplaceStr(AMessage, '$ACMIN$', IntToStr(V3_AC_MIN));
      AMessage := ReplaceStr(AMessage, '$ACMAX$', IntToStr(V3_AC_MAX));
      AMessage := ReplaceStr(AMessage, '$MACMIN$', IntToStr(V3_MAC_MIN));
      AMessage := ReplaceStr(AMessage, '$MACMAX$', IntToStr(V3_MAC_MAX));
      AMessage := ReplaceStr(AMessage, '$DCMIN$', IntToStr(V3_DC_MIN));
      AMessage := ReplaceStr(AMessage, '$DCMAX$', IntToStr(V3_DC_MAX));
      AMessage := ReplaceStr(AMessage, '$MCMIN$', IntToStr(V3_MC_MIN));
      AMessage := ReplaceStr(AMessage, '$MCMAX$', IntToStr(V3_MC_MAX));
      AMessage := ReplaceStr(AMessage, '$SCMIN$', IntToStr(V3_SC_MIN));
      AMessage := ReplaceStr(AMessage, '$SCMAX$', IntToStr(V3_SC_MAX));
      AMessage := ReplaceStr(AMessage, '$EXPADD$', IntToStr(V3_EXP_ADD));
      AMessage := ReplaceStr(AMessage, '$GOLDADD$', IntToStr(V3_GOLD_ADD));
      AMessage := ReplaceStr(AMessage, '$ITEMADD$', IntToStr(V3_ITEM_ADD));
      AMessage := ReplaceStr(AMessage, '$LIMIT$', IntToStr(V3_DAY_LIMIT));
    end;
  end;
  Npc.SayEx(Player, 'Npc大窗口', AMessage);
end;

end.


 楼主| 发表于 2015-6-24 10:21:29 | 显示全部楼层
记得添加:

固定变量

unit DefiniensConst;

  //VIP相关        
  V1_Price: Integer = 3000;
  V2_Price: Integer = 8000;
  V3_Price: Integer = 15000;
  V1_AC_MIN: Integer = 5;
  V1_AC_MAX: Integer = 10;
  V1_MAC_MIN: Integer = 5;
  V1_MAC_MAX: Integer = 10;
  V1_DC_MIN: Integer = 5;
  V1_DC_MAX: Integer = 10;
  V1_MC_MIN: Integer = 5;
  V1_MC_MAX: Integer = 10;
  V1_SC_MIN: Integer = 5;
  V1_SC_MAX: Integer = 10;
  V1_EXP_ADD: Integer = 20;
  V1_GOLD_ADD: Integer = 20;
  V1_ITEM_ADD: Integer = 10;      
  V1_DAY_LIMIT: Integer = 30;
  V2_AC_MIN: Integer = 5;
  V2_AC_MAX: Integer = 20;
  V2_MAC_MIN: Integer = 5;
  V2_MAC_MAX: Integer = 20;
  V2_DC_MIN: Integer = 5;
  V2_DC_MAX: Integer = 20;
  V2_MC_MIN: Integer = 5;
  V2_MC_MAX: Integer = 20;
  V2_SC_MIN: Integer = 5;
  V2_SC_MAX: Integer = 20;
  V2_EXP_ADD: Integer = 30;
  V2_GOLD_ADD: Integer = 30;
  V2_ITEM_ADD: Integer = 15;     
  V2_DAY_LIMIT: Integer = 90;
  V3_AC_MIN: Integer = 10;
  V3_AC_MAX: Integer = 30;
  V3_MAC_MIN: Integer = 10;
  V3_MAC_MAX: Integer = 30;
  V3_DC_MIN: Integer = 10;
  V3_DC_MAX: Integer = 30;
  V3_MC_MIN: Integer = 10;
  V3_MC_MAX: Integer = 30;
  V3_SC_MIN: Integer = 10;
  V3_SC_MAX: Integer = 30;
  V3_EXP_ADD: Integer = 50;
  V3_GOLD_ADD: Integer = 50;
  V3_ITEM_ADD: Integer = 25;   
  V3_DAY_LIMIT: Integer = 180;
发表于 2015-6-24 12:05:22 | 显示全部楼层
不明觉厉~
发表于 2015-6-27 16:18:10 | 显示全部楼层
那个……这玩意该怎么用
您需要登录后才可以回帖 登录 | 注册

本版积分规则

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明

排行榜|联系我们|小黑屋|手机版|Archiver|游戏藏宝湾 |

GMT+8, 2025-5-28 19:32 , Processed in 0.053900 second(s), 17 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表