Vv引擎官方论坛

搜索
查看: 529|回复: 3

[Pascal] [Pascal]极品属性转移脚本!有需要的自己下载

[复制链接]
  • TA的每日心情
    郁闷
    2024-8-23 00:41
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    9

    主题

    38

    帖子

    558

    积分

    高级会员

    Rank: 4

    积分
    558
    发表于 2022-1-2 12:28:00 | 显示全部楼层 |阅读模式
    脚本测试截图:

    原带极品装备图


    开始转移图片


    转移结果图片

    以下为脚本代码,UI请自行设置和制作。。。
    呃。。。本来想直接贴脚本。奈何论坛字符限制。只能传脚本文件了。。自己下载哦。。
    unit ShenTieJiang;
    
    interface
      uses Classes, SysUtils;
        type
      WPSXB = class
      private
        ADDAC:Int64;   //增加的防御
        ADDMAC:Int64;   //增加的魔御
        ADDDC: Int64;   //增加的攻击
        ADDMC: Int64;  //增加的攻击魔法 
        ADDSC : Int64; //增加的攻击道术
        ADDZMYJ : Int64;   //增加的攻击致命一击 
        ZMYJID:Integer; 
    
        ADDHXYJ : Int64;   //增加的攻击会心一击 
        HXYJID:Integer; 
    
        ADDGDSH : Int64;   //增加的固定伤害
        GDSHID:Integer; 
    
        ADDHPSX : Int64;   //增加的HP上限 
        HPSXID:Integer;
    
        ADDMPSX : Int64;   //增加的MP上限  
        MPSXID:Integer; 
    
        ADDJBBL : Int64;   //增加的金币爆率
        JBBLID:Integer;
    
        ADDSHXS : Int64;   //增加的伤害吸收 
        SHXSID:Integer; 
    
        ADDSHFT : Int64;   //增加的伤害反弹 
        SHFTID:Integer; 
    
        ADDSHZJ : Int64;   //增加的伤害增加  
        SHZJID:Integer;    
    
        ADDMPHF : Int64;   //增加的MP回复   
        MPHFID:Integer;      
    
        ADDHPHF : Int64;   //增加的HP回复
        HPHFID:Integer;    
    
        ADDWPBL : Int64;   //增加的物品爆率 
        WPBLID:Integer;
    
        ADDEXP: Int64; //增加的经验值
        EXPID:Integer;
    
        ADDHPBFB: Int64;//增加的HP百分比 
        HPBFBID:Integer;     
    
        ADDMPBFB: Int64;//增加的MP百分比 
        MPBFBID:Integer;  
      public
        constructor Create;
        destructor Destroy; override;
      end;
    procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    
    implementation
    constructor WPSXB.Create;
    begin
                    ADDAC:=0;   //增加的防御
        ADDMAC:=0;   //增加的魔御
        ADDDC:=0;   //增加的攻击
        ADDMC:=0;  //增加的攻击魔法 
        ADDSC :=0; //增加的攻击道术
        ADDZMYJ :=0;   //增加的攻击致命一击  
        ZMYJID:=0;  
        ADDHXYJ :=0;   //增加的攻击会心一击 
        HXYJID:=0; 
        ADDGDSH :=0;   //增加的固定伤害
        GDSHID:=0;
        ADDHPSX :=0;   //增加的HP上限 
        HPSXID:=0; 
        ADDMPSX :=0;   //增加的MP上限 
        MPSXID:=0; 
        ADDJBBL :=0;   //增加的金币爆率 
        JBBLID:=0;
        ADDSHXS :=0;   //增加的伤害吸收
        SHXSID:=0; 
        ADDSHFT :=0;   //增加的伤害反弹 
        SHFTID:=0;
        ADDSHZJ :=0;   //增加的伤害增加
        SHZJID:=0;
        ADDMPHF :=0;   //增加的MP回复 
        MPHFID:=0;
        ADDHPHF :=0;   //增加的HP回复 
        HPHFID:=0;
        ADDWPBL :=0;   //增加的物品爆率
        WPBLID:=0;  
        ADDEXP:=0; //增加的经验值  
        EXPID:=0;
        ADDHPBFB:=0;//增加的HP百分比
        HPBFBID:=0;
        ADDMPBFB:=0;//增加的MP百分比
        MPBFBID:=0;    
    end;
    
    destructor WPSXB.Destroy;
    begin
      inherited;
    end;
    
    procedure Main(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    begin
      Npc.SayEx(Player,'属性转移',''); 
      player.CallMethod(Npc,'@ShenTieJiang.SayUp');
    end;
    
    Procedure SayUp(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    Const
    SS=[[
    {S=属性转移;C=254}   {S=Hot~;C=249}                                 {S=让装备更有价值;AC=#ff2a00,#ff7f00,#ffbf00,#ffff00,#d5ff00,#80ff00,#00ff55,#00ffa8,#00ffff,#00d5ff,#00aaff,#002bff,#aa00ff,#d500ff,#ff00ff,#ff00aa,#ff0055;AT=300}\
    {S=--------------------------------------------------------------;C=91}\
    {S=属性转移说明:;c=22;}\
    1,{S=属性转移可将任意极品转移至指定的装备上;C=250}\
    2,{S=转移时有几率失败,失败只收取100元宝手续费;C=249}\
    3,{S=转移费用说明:;c=251}
      {S=* 任意属性每转移1点收取元宝费用 100枚;C=251}\
    {S=------------------请选择您要转移的属性----------------------;C=91}\
    {S=转移攻击;C=250}   <{I=$ZYGJ$;F=NewVvUI.Data}/@GXSX(1)>      {S=转移伤害吸收;C=250} <{I=$ZYSHXS$;F=NewVvUI.Data}/@GXSX(4)>        {S=转移致命一击;C=250} <{I=$ZMYJ$;F=NewVvUI.Data}/@GXSX(7)>\
    {S=转移魔法;C=250}   <{I=$ZYMF$;F=NewVvUI.Data}/@GXSX(2)>      {S=转移伤害反弹;C=250} <{I=$ZYSHFT$;F=NewVvUI.Data}/@GXSX(5)>        {S=转移会心一击;C=250} <{I=$HXYJ$;F=NewVvUI.Data}/@GXSX(8)>\
    {S=转移道术;C=250}   <{I=$ZYDS$;F=NewVvUI.Data}/@GXSX(3)>      {S=转移伤害加成;C=250} <{I=$ZYSHJC$;F=NewVvUI.Data}/@GXSX(6)>        {S=转移固定伤害;C=250} <{I=$GDSH$;F=NewVvUI.Data}/@GXSX(9)>\
    {S=转移HP恢复;C=250} <{I=$HPHF$;F=NewVvUI.Data}/@GXSX(10)>      {S=转移MP恢复;C=250}   <{I=$MPHF$;F=NewVvUI.Data}/@GXSX(11)>        {S=转移HP上限;C=250}   <{I=$HPSX$;F=NewVvUI.Data}/@GXSX(12)>\
    {S=转移MP上限;C=250} <{I=$MPSX$;F=NewVvUI.Data}/@GXSX(13)>      {S=转移物品爆率;C=250} <{I=$WPBL$;F=NewVvUI.Data}/@GXSX(14)>        {S=转移金币爆率;C=250} <{I=$JBBL$;F=NewVvUI.Data}/@GXSX(15)>\
    {S=转移经验值 ;C=250}<{I=$JYZBL$;F=NewVvUI.Data}/@GXSX(16)>      {S=转移HP百分比;C=250} <{I=$HPBFB$;F=NewVvUI.Data}/@GXSX(17)>        {S=转移MP百分比;C=250} <{I=$MPBFB$;F=NewVvUI.Data}/@GXSX(18)>\
    {S=需要元宝:;c=253}{S=$YBXY$;C=249}\{S=>>>>>>>>>>>>>;AC=251,249,222,210;AT=150;x=80}
    ]];
    Var ASAY:string;AItem: TUserItem;x:Int64;
    Begin  //238关,239开
      ASAY:=SS;
           If Player.VarBoolean('转移攻击').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZYGJ$','239');
           end Else ASAY:=ASAY.Replace('$ZYGJ$','238');
           If Player.VarBoolean('转移魔法').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZYMF$','239');
           end Else ASAY:=ASAY.Replace('$ZYMF$','238');
           If Player.VarBoolean('转移道术').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZYDS$','239');
           end Else ASAY:=ASAY.Replace('$ZYDS$','238');
           If Player.VarBoolean('转移伤害吸收').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZYSHXS$','239');
           end Else ASAY:=ASAY.Replace('$ZYSHXS$','238');
           If Player.VarBoolean('转移伤害反弹').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZYSHFT$','239');
           end Else ASAY:=ASAY.Replace('$ZYSHFT$','238');
           If Player.VarBoolean('转移伤害加成').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZYSHJC$','239');
           end Else ASAY:=ASAY.Replace('$ZYSHJC$','238');
           If Player.VarBoolean('转移致命一击').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$ZMYJ$','239');
           end Else ASAY:=ASAY.Replace('$ZMYJ$','238');
           If Player.VarBoolean('转移会心一击').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$HXYJ$','239');
           end Else ASAY:=ASAY.Replace('$HXYJ$','238');
           If Player.VarBoolean('转移固定伤害').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$GDSH$','239');
           end Else ASAY:=ASAY.Replace('$GDSH$','238');
           If Player.VarBoolean('转移HP恢复').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$HPHF$','239');
           end Else ASAY:=ASAY.Replace('$HPHF$','238');
           If Player.VarBoolean('转移MP恢复').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$MPHF$','239');
           end Else ASAY:=ASAY.Replace('$MPHF$','238');
           If Player.VarBoolean('转移HP上限').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$HPSX$','239');
           end Else ASAY:=ASAY.Replace('$HPSX$','238');
           If Player.VarBoolean('转移MP上限').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$MPSX$','239');
           end Else ASAY:=ASAY.Replace('$MPSX$','238');
           If Player.VarBoolean('转移物品爆率').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$WPBL$','239');
           end Else ASAY:=ASAY.Replace('$WPBL$','238');
           If Player.VarBoolean('转移金币爆率').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$JBBL$','239');
           end Else ASAY:=ASAY.Replace('$JBBL$','238');
           If Player.VarBoolean('转移经验值').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$JYZBL$','239');
           end Else ASAY:=ASAY.Replace('$JYZBL$','238');
           If Player.VarBoolean('转移HP百分比').AsBoolean then 
           Begin
             ASAY:=ASAY.Replace('$HPBFB$','239');
           end Else ASAY:=ASAY.Replace('$HPBFB$','238');
           If Player.VarBoolean('转移MP百分比').AsBoolean then 
            Begin
             ASAY:=ASAY.Replace('$MPBFB$','239');
           end Else ASAY:=ASAY.Replace('$MPBFB$','238');
         AItem :=Player.CustomItem[0]  ;
         If AItem <> Nil  then
         begin
           x:=GetYBXQ(Player,AItem) * 100;   
           ASAY:=ASAY.Replace('$YBXY$',x.ToString);
         end Else ASAY:=ASAY.Replace('$YBXY$','未放入转出物品');
      Player.UpdateSay('属性转移',ASAY);
    end;
    
    function GetYBXQ( Player: TPlayObject;FRWP: TUserItem):Int64;
    Var I:WPSXB ;a:Int64;
    begin
    a:=0;
    I:=WPSXB.Create;
    GetYYSX(FRWP,I);     
      If (Player.VarBoolean('转移攻击').AsBoolean) and (I.ADDDC > 0)then a:=a+I.ADDDC;
      If (Player.VarBoolean('转移魔法').AsBoolean) and (I.ADDMC > 0)then a:=a+I.ADDMC;
      If (Player.VarBoolean('转移道术').AsBoolean) and (I.ADDSC > 0)then a:=a+I.ADDSC; 
      If (Player.VarBoolean('转移伤害吸收').AsBoolean) and (I.ADDSHXS > 0)then a:=a+I.ADDSHXS; 
            If (Player.VarBoolean('转移伤害反弹').AsBoolean) and (I.ADDSHFT  > 0)then a:=a+I.ADDSHFT; 
      If (Player.VarBoolean('转移伤害加成').AsBoolean) and (I.ADDSHZJ  > 0)then a:=a+I.ADDSHZJ; 
            If (Player.VarBoolean('转移致命一击').AsBoolean) and (I.ADDZMYJ > 0)then a:=a+I.ADDZMYJ; 
      If (Player.VarBoolean('转移会心一击').AsBoolean) and (I.ADDHXYJ > 0)then a:=a+I.ADDHXYJ; 
      If (Player.VarBoolean('转移固定伤害').AsBoolean) and (I.ADDGDSH > 0)then a:=a+I.ADDGDSH;  
      If (Player.VarBoolean('转移HP恢复').AsBoolean)   and (I.ADDHPHF > 0)then a:=a+I.ADDHPHF; 
      If (Player.VarBoolean('转移MP恢复').AsBoolean)   and (I.ADDMPHF > 0)then a:=a+I.ADDMPHF;  
      If (Player.VarBoolean('转移HP上限').AsBoolean)   and (I.ADDHPSX > 0)then a:=a+I.ADDHPSX;
      If (Player.VarBoolean('转移MP上限').AsBoolean)   and (I.ADDMPSX > 0)then a:=a+I.ADDMPSX; 
      If (Player.VarBoolean('转移物品爆率').AsBoolean) and (I.ADDWPBL > 0)then a:=a+I.ADDWPBL; 
      If (Player.VarBoolean('转移金币爆率').AsBoolean) and (I.ADDJBBL > 0)then a:=a+I.ADDJBBL;  
      If (Player.VarBoolean('转移经验值').AsBoolean)   and (I.ADDEXP > 0)then a:=a+I.ADDEXP;  
      If (Player.VarBoolean('转移HP百分比').AsBoolean) and (I.ADDHPBFB > 0)then a:=a+I.ADDHPBFB;  
      If (Player.VarBoolean('转移MP百分比').AsBoolean) and (I.ADDMPBFB > 0)then a:=a+I.ADDMPBFB;    
    Result:=a;
    end;
    Procedure KSZY(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    Var wp,wp2,zzz:TUserItem; YBS:Int64;
    begin
    wp :=Player.CustomItem[0]  ;
    wp2 :=Player.CustomItem[1]  ;
    If wp <> Nil  then
    Begin
      YBS:= GetYBXQ(Player,wp) * 100;   
       If wp2 <> nil then
       begin
        If Player.CanTakeGameMoney(2,YBS) then
        begin   
         If FJSXSet(Player,wp,wp2) then  
         Begin
           Player.TakeGameMoney(2,YBS,'属性转移收取');
         end;
        end Else Player.Messagebox('你都没有'+YBS.ToString+'元宝'); 
       end Else Player.Messagebox('请放入要转入的装备!');
    end Else Player.Messagebox('请放入要转出的装备!') ; 
    end;
    
    function FJSXSet(Player:TPlayObject;wp,wp1: TUserItem):Boolean; 
    Var I,y:WPSXB;czsl,czsl1,m,h:Integer;
    begin
        I:=WPSXB.Create;
        y:=WPSXB.Create;
         czsl:=GetYYSX(wp1,I);    //接受属性目标
         czsl1:=GetYYSX(wp,y);  //判断被转移目标是否拥有属性
         IF czsl = -1 then
         begin     
           czsl:=0;
         end Else czsl:=czsl+1;    
       // DeBug('当前接受装备起始序号:'+czsl.toString);
                    If (Player.VarBoolean('转移攻击').AsBoolean) And (wp.AddDC > 0) then  
        Begin                                         
          wp1.AddDC:=wp.AddDC; 
          wp.AddDC:=0;
        end;
        If (Player.VarBoolean('转移魔法').AsBoolean) And (wp.AddMC > 0) then 
        Begin
         wp1.AddMC:=wp.AddMC; 
          wp.AddMC:=0;
        end;
        If (Player.VarBoolean('转移道术').AsBoolean) And (wp.AddSC > 0) then 
        Begin
          wp1.AddSC:=wp.AddSC; 
         wp.AddSC:=0;
        end;
        If (Player.VarBoolean('转移伤害吸收').AsBoolean)  and (y.ADDSHXS  > 0)then 
        Begin  
           wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.SHXSID].ValueType;
           wp1.AddPoint[czsl].Value:=wp.AddPoint[y.SHXSID].Value; 
           czsl:=czsl+1;  
           wp.AddPoint[y.SHXSID].Value:=0;
        end;
        If (Player.VarBoolean('转移伤害反弹').AsBoolean) and (y.ADDSHFT  > 0)then
        Begin    
          wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.SHFTID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.SHFTID].Value;
          czsl:=czsl+1; 
          wp.AddPoint[y.SHFTID].Value:=0;
        end;
        If (Player.VarBoolean('转移伤害加成').AsBoolean) and (y.ADDSHZJ  > 0)then 
        Begin 
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.SHFTID].ValueType;
         wp1.AddPoint[czsl].Value:=wp.AddPoint[y.SHFTID].Value; 
         czsl:=czsl+1;
         wp.AddPoint[y.SHFTID].Value:=0;
        end; 
        If (Player.VarBoolean('转移致命一击').AsBoolean) and (y.ADDZMYJ > 0)then 
        Begin       
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.ZMYJID].ValueType;
         wp1.AddPoint[czsl].Value:=wp.AddPoint[y.ZMYJID].Value; 
         czsl:=czsl+1;           
         //DeBug('当前接受装备起始序号:'+czsl.toString); 
         //DeBug('当前转出装备起始序号:'+y.GDSHID.toString);
         wp.AddPoint[y.ZMYJID].Value:=0;
        end;
        If (Player.VarBoolean('转移会心一击').AsBoolean) and (y.ADDHXYJ > 0)then 
        begin   
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.HXYJID].ValueType;
         wp1.AddPoint[czsl].Value:=wp.AddPoint[y.HXYJID].Value;
         czsl:=czsl+1; 
         wp.AddPoint[y.HXYJID].Value:=0;  
        end;
        If (Player.VarBoolean('转移固定伤害').AsBoolean) and (y.ADDGDSH > 0)then 
        begin    
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.GDSHID].ValueType;
         wp1.AddPoint[czsl].Value:=wp.AddPoint[y.GDSHID].Value;
         czsl:=czsl+1; 
         //DeBug('当前接受装备起始序号:'+czsl.toString); 
        // DeBug('当前转出装备起始序号:'+y.GDSHID.toString);
         wp.AddPoint[y.GDSHID].Value:=0;  
        end; 
        If (Player.VarBoolean('转移HP恢复').AsBoolean)   and (y.ADDHPHF > 0)then 
        Begin   
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.HPHFID].ValueType;
         wp1.AddPoint[czsl].Value:=wp.AddPoint[y.HPHFID].Value;
         czsl:=czsl+1;
         wp.AddPoint[y.HPHFID].Value:=0;   
        end;
        If (Player.VarBoolean('转移MP恢复').AsBoolean)   and (y.ADDMPHF > 0)then
        Begin       
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.MPHFID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.MPHFID].Value; 
          czsl:=czsl+1;
          wp.AddPoint[y.MPHFID].Value:=0; 
        end;
        If (Player.VarBoolean('转移HP上限').AsBoolean)   and (y.ADDHPSX > 0)then
        Begin                          
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.HPSXID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.HPSXID].Value;
          czsl:=czsl+1; 
          wp.AddPoint[y.HPSXID].Value:=0; 
        end;
        If (Player.VarBoolean('转移MP上限').AsBoolean)   and (y.ADDMPSX > 0)then 
        Begin     
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.MPSXID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.MPSXID].Value;
          czsl:=czsl+1;
          wp.AddPoint[y.MPSXID].Value:=0  
        end;
        If (Player.VarBoolean('转移物品爆率').AsBoolean) and (y.ADDWPBL > 0)then 
        Begin    
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.WPBLID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.WPBLID].Value; 
          czsl:=czsl+1;
          wp.AddPoint[y.WPBLID].Value:=0;  
        end;
        If (Player.VarBoolean('转移金币爆率').AsBoolean) and (y.ADDJBBL > 0)then 
        Begin                    
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.JBBLID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.JBBLID].Value; 
          czsl:=czsl+1;
          wp.AddPoint[y.JBBLID].Value:=0;  
        end;
        If (Player.VarBoolean('转移经验值').AsBoolean)   and (y.ADDEXP > 0)then 
        Begin                         
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.EXPID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.EXPID].Value; 
          czsl:=czsl+1;
          wp.AddPoint[y.EXPID].Value:=0;   
        end; 
        If (Player.VarBoolean('转移HP百分比').AsBoolean) and (y.ADDHPBFB > 0)then 
         Begin 
          wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.HPBFBID].ValueType;
           wp1.AddPoint[czsl].Value:=wp.AddPoint[y.HPBFBID].Value; 
           czsl:=czsl+1;
           wp.AddPoint[y.HPBFBID].Value:=0;  
         end;  
        If (Player.VarBoolean('转移MP百分比').AsBoolean) and (y.ADDMPBFB > 0)then
        Begin  
         wp1.AddPoint[czsl].ValueType:= wp.AddPoint[y.MPBFBID].ValueType;
          wp1.AddPoint[czsl].Value:=wp.AddPoint[y.MPBFBID].Value; 
          czsl:=czsl+1;
          wp.AddPoint[y.MPBFBID].Value:=0;   
        end; 
        Player.UpdateItem(wp1); 
        Player.UpdateItem(wp);
        Player.SendMessage('物品['+wp1.DisplayName+']属性已更新!',1);
    Result:=True;
    end;
    
    procedure GXSX(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    Begin
       If (Args.Int[0] > 0)then
       begin    
        Case Args.Int[0] of
          //1取攻击,2取魔法,3取道术,4取伤害吸收,5取伤害反弹,6取伤害加成,7取致命一击,8取会心一击,9取固定伤害
          //10取HP恢复,11取MP恢复,12取HP上限,13取MP上限,14取物品爆率,15取金币爆率
          //16经验值,17HP百分比,18MP百分比
         1:
         begin
           If Player.VarBoolean('转移攻击').AsBoolean then 
           begin
            Player.VarBoolean('转移攻击').AsBoolean:=False;   
           end Else Player.VarBoolean('转移攻击').AsBoolean :=True; 
         end;
         2:
         begin
           If Player.VarBoolean('转移魔法').AsBoolean then 
           begin
            Player.VarBoolean('转移魔法').AsBoolean:=False;   
           end Else Player.VarBoolean('转移魔法').AsBoolean :=True;
         end;
          3:
          begin
           If Player.VarBoolean('转移道术').AsBoolean then 
           begin
            Player.VarBoolean('转移道术').AsBoolean:=False;   
           end Else Player.VarBoolean('转移道术').AsBoolean :=True;
         end;
          4:
          begin
           If Player.VarBoolean('转移伤害吸收').AsBoolean then 
           begin
            Player.VarBoolean('转移伤害吸收').AsBoolean:=False;   
           end Else Player.VarBoolean('转移伤害吸收').AsBoolean :=True;
         end;
          5:
          begin
           If Player.VarBoolean('转移伤害反弹').AsBoolean then 
           begin
            Player.VarBoolean('转移伤害反弹').AsBoolean:=False;   
           end Else Player.VarBoolean('转移伤害反弹').AsBoolean :=True;
         end;
          6:
          begin
           If Player.VarBoolean('转移伤害加成').AsBoolean then 
           begin
            Player.VarBoolean('转移伤害加成').AsBoolean:=False;   
           end Else Player.VarBoolean('转移伤害加成').AsBoolean :=True;
         end;
           7:
          begin
           If Player.VarBoolean('转移致命一击').AsBoolean then 
           begin
            Player.VarBoolean('转移致命一击').AsBoolean:=False;   
           end Else Player.VarBoolean('转移致命一击').AsBoolean :=True;
         end;
         8:
          begin
           If Player.VarBoolean('转移会心一击').AsBoolean then 
           begin
            Player.VarBoolean('转移会心一击').AsBoolean:=False;   
           end Else Player.VarBoolean('转移会心一击').AsBoolean :=True;
         end;
         9:
          begin
           If Player.VarBoolean('转移固定伤害').AsBoolean then 
           begin
            Player.VarBoolean('转移固定伤害').AsBoolean:=False;   
           end Else Player.VarBoolean('转移固定伤害').AsBoolean :=True;
         end; 
         10:
          begin
           If Player.VarBoolean('转移HP恢复').AsBoolean then 
           begin
            Player.VarBoolean('转移HP恢复').AsBoolean:=False;   
           end Else Player.VarBoolean('转移HP恢复').AsBoolean :=True;
         end;    
          11:
          begin
           If Player.VarBoolean('转移MP恢复').AsBoolean then 
           begin
            Player.VarBoolean('转移MP恢复').AsBoolean:=False;   
           end Else Player.VarBoolean('转移MP恢复').AsBoolean :=True;
         end;  
         12:
          begin
           If Player.VarBoolean('转移HP上限').AsBoolean then 
           begin
            Player.VarBoolean('转移HP上限').AsBoolean:=False;   
           end Else Player.VarBoolean('转移HP上限').AsBoolean :=True;
         end;  
         13:
          begin
           If Player.VarBoolean('转移MP上限').AsBoolean then 
           begin
            Player.VarBoolean('转移MP上限').AsBoolean:=False;   
           end Else Player.VarBoolean('转移MP上限').AsBoolean :=True;
         end; 
          14:
          begin
           If Player.VarBoolean('转移物品爆率').AsBoolean then 
           begin
            Player.VarBoolean('转移物品爆率').AsBoolean:=False;   
           end Else Player.VarBoolean('转移物品爆率').AsBoolean :=True;
         end;
          15:
          begin
           If Player.VarBoolean('转移金币爆率').AsBoolean then 
           begin
            Player.VarBoolean('转移金币爆率').AsBoolean:=False;   
           end Else Player.VarBoolean('转移金币爆率').AsBoolean :=True;
         end; 
         16:
          begin
           If Player.VarBoolean('转移经验值').AsBoolean then 
           begin
            Player.VarBoolean('转移经验值').AsBoolean:=False;   
           end Else Player.VarBoolean('转移经验值').AsBoolean :=True;
         end; 
           17:
          begin
           If Player.VarBoolean('转移HP百分比').AsBoolean then 
           begin
            Player.VarBoolean('转移HP百分比').AsBoolean:=False;   
           end Else Player.VarBoolean('转移HP百分比').AsBoolean :=True;
         end;
           18:
          begin
           If Player.VarBoolean('转移MP百分比').AsBoolean then 
           begin
            Player.VarBoolean('转移MP百分比').AsBoolean:=False;   
           end Else Player.VarBoolean('转移MP百分比').AsBoolean :=True;
         end;  
        end;
        player.CallMethod(Npc,'@ShenTieJiang.SayUp'); 
       end Else Player.MessAgeBox('请放入要转出属性的装备到第一个框内!');     
    end;
    
    function GetYYSX(wp: TUserItem;Var x:WPSXB):Integer;  //返回物品附加属性条数
    Var  Y,E:integer;
    Begin 
      E:=0;
            x.ADDDC :=wp.AddDC ;   //增加的攻击
            x.ADDMC:=wp.AddMC;    //增加的攻击魔法 
            x.ADDSC:=wp.AddSC ;  //增加的攻击道术 
      x.ADDAC := wp.AddAC;
      x.ADDMAC :=wp.AddMAC;    
    For Y:=0 to 6 do
    begin
      If wp.AddPoint[Y].ValueType = 1 then 
      Begin
       x.ADDSHXS:=wp.AddPoint[Y].Value;  //增加的伤害吸收 
       x.SHXSID:=Y;
       E:=E+1; 
      end;
      If wp.AddPoint[Y].ValueType = 2 then
      BEGin
        x.SHFTID:=Y;
        x.ADDSHFT:=wp.AddPoint[Y].Value;   //增加的伤害反弹   
        E:=E+1;
      end; 
      If wp.AddPoint[Y].ValueType = 3 then  
      Begin
       x.ADDSHZJ:=wp.AddPoint[Y].Value;   //增加的伤害增加  
       x.SHZJID:=Y;  
       E:=E+1;
      end;
      If wp.AddPoint[Y].ValueType = 4 then 
      begin
       x.ADDZMYJ:=wp.AddPoint[Y].Value; //增加的攻击致命一击 
       x.ZMYJID:=Y;  
       E:=E+1;
      end;  
      If wp.AddPoint[Y].ValueType = 5 then
      BEGIN  
              x.ADDHXYJ:=wp.AddPoint[Y].Value; //增加的攻击会心一击  
        x.HXYJID:=Y; 
        E:=E+1;  
      end;
      If wp.AddPoint[Y].ValueType = 6 then 
      Begin
       x.ADDHPHF:=wp.AddPoint[Y].Value;   //增加的MP回复 
       x.HPHFID:=Y; 
       E:=E+1;  
      end; 
      If wp.AddPoint[Y].ValueType = 7 then  
      Begin
        x.ADDMPHF:=wp.AddPoint[Y].Value;   //增加的MP回复 
        x.MPHFID:=Y; 
        E:=E+1;
      end;
      If wp.AddPoint[Y].ValueType = 8 then  
      Begin
        x.ADDEXP := wp.AddPoint[Y].Value; //增加的经验值 
        x.EXPID:=Y; 
        E:=E+1;
      end;
      If wp.AddPoint[Y].ValueType = 9 then  
      Begin
        x.ADDWPBL:=wp.AddPoint[Y].Value;    //增加的物品爆率 
        x.WPBLID:=Y;
        E:=E+1; 
      end;
      If wp.AddPoint[Y].ValueType = 10 then 
      Begin
         x.ADDJBBL:=wp.AddPoint[Y].Value;   //增加的金币爆率 
         x.JBBLID:=Y; 
         E:=E+1;
      end;
      If wp.AddPoint[Y].ValueType = 15 then  
      Begin
        x.ADDGDSH:=wp.AddPoint[Y].Value; //增加的固定伤害 
        x.GDSHID:=Y;
        E:=E+1; 
      end;
      If wp.AddPoint[Y].ValueType = 13 then 
      Begin
         x.ADDHPSX:=wp.AddPoint[Y].Value; //增加的HP上限 
         x.HPSXID:=Y; 
         E:=E+1;
      end; 
      If wp.AddPoint[Y].ValueType = 14 then  
      Begin
        x.ADDMPSX:=wp.AddPoint[Y].Value; //增加的MP上限 
        x.MPSXID:=Y;  
        E:=E+1;
      end;
      If wp.AddPoint[Y].ValueType = 16 then  
      Begin
        x.ADDHPBFB:=wp.AddPoint[Y].Value; //增加的HP上限百分比  
        x.HPBFBID:=Y; 
        E:=E+1;
      end; 
      If wp.AddPoint[Y].ValueType = 17 then  
      Begin
        x.ADDMPBFB:=wp.AddPoint[Y].Value; //增加的MP上限百分比 
        x.MPBFBID:=Y; 
        E:=E+1;
      end;
    end;  
    //Debug('取出致命一击的值:'+x.ADDZMYJ.ToString );
      Result:=E-1;
    end;
    
    procedure ZYZBIN(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    begin
    player.CallMethod(Npc,'@ShenTieJiang.SayUp');  
    end;
    procedure ZYZBOUT(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    begin
      player.CallMethod(Npc,'@ShenTieJiang.SayUp'); 
    end;
    procedure ZRZBOUT(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    begin
      player.CallMethod(Npc,'@ShenTieJiang.SayUp'); 
    end;
    procedure ZRZBIN(Npc: TNormNpc; Player: TPlayObject; Args: TArgs);
    begin
    player.CallMethod(Npc,'@ShenTieJiang.SayUp');  
    end;





    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x

    评分

    参与人数 1金钱 +99 收起 理由
    admin + 99 赞一个!

    查看全部评分

    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-5 10:30
  • 签到天数: 2 天

    [LV.1]初来乍到

    10

    主题

    58

    帖子

    1万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    19953
    发表于 2022-1-7 15:48:31 | 显示全部楼层
    小黑真牛逼
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2024-8-23 00:41
  • 签到天数: 23 天

    [LV.4]偶尔看看III

    9

    主题

    38

    帖子

    558

    积分

    高级会员

    Rank: 4

    积分
    558
     楼主| 发表于 2022-1-12 11:41:57 | 显示全部楼层

    牛逼锤子。。这脚本被喷惨了。。写得太乱太垃圾了
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    4 天前
  • 签到天数: 30 天

    [LV.5]常住居民I

    2

    主题

    45

    帖子

    509

    积分

    高级会员

    Rank: 4

    积分
    509
    发表于 2024-6-5 10:16:48 | 显示全部楼层
    看起来不错的功能脚本
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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