40731803 发表于 2022-1-2 12:28:00

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

脚本测试截图:

原带极品装备图


开始转移图片


转移结果图片

以下为脚本代码,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;
   If AItem <> Nilthen
   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;
wp2 :=Player.CustomItem;
If wp <> Nilthen
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.ValueType:= wp.AddPoint.ValueType;
       wp1.AddPoint.Value:=wp.AddPoint.Value;
       czsl:=czsl+1;
       wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移伤害反弹').AsBoolean) and (y.ADDSHFT> 0)then
    Begin   
      wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移伤害加成').AsBoolean) and (y.ADDSHZJ> 0)then
    Begin
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
   wp1.AddPoint.Value:=wp.AddPoint.Value;
   czsl:=czsl+1;
   wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移致命一击').AsBoolean) and (y.ADDZMYJ > 0)then
    Begin      
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
   wp1.AddPoint.Value:=wp.AddPoint.Value;
   czsl:=czsl+1;         
   //DeBug('当前接受装备起始序号:'+czsl.toString);
   //DeBug('当前转出装备起始序号:'+y.GDSHID.toString);
   wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移会心一击').AsBoolean) and (y.ADDHXYJ > 0)then
    begin   
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
   wp1.AddPoint.Value:=wp.AddPoint.Value;
   czsl:=czsl+1;
   wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移固定伤害').AsBoolean) and (y.ADDGDSH > 0)then
    begin   
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
   wp1.AddPoint.Value:=wp.AddPoint.Value;
   czsl:=czsl+1;
   //DeBug('当前接受装备起始序号:'+czsl.toString);
    // DeBug('当前转出装备起始序号:'+y.GDSHID.toString);
   wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移HP恢复').AsBoolean)   and (y.ADDHPHF > 0)then
    Begin   
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
   wp1.AddPoint.Value:=wp.AddPoint.Value;
   czsl:=czsl+1;
   wp.AddPoint.Value:=0;   
    end;
    If (Player.VarBoolean('转移MP恢复').AsBoolean)   and (y.ADDMPHF > 0)then
    Begin      
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移HP上限').AsBoolean)   and (y.ADDHPSX > 0)then
    Begin                        
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移MP上限').AsBoolean)   and (y.ADDMPSX > 0)then
    Begin   
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0
    end;
    If (Player.VarBoolean('转移物品爆率').AsBoolean) and (y.ADDWPBL > 0)then
    Begin   
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移金币爆率').AsBoolean) and (y.ADDJBBL > 0)then
    Begin                  
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0;
    end;
    If (Player.VarBoolean('转移经验值').AsBoolean)   and (y.ADDEXP > 0)then
    Begin                        
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.Value:=0;   
    end;
    If (Player.VarBoolean('转移HP百分比').AsBoolean) and (y.ADDHPBFB > 0)then
   Begin
      wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
       wp1.AddPoint.Value:=wp.AddPoint.Value;
       czsl:=czsl+1;
       wp.AddPoint.Value:=0;
   end;
    If (Player.VarBoolean('转移MP百分比').AsBoolean) and (y.ADDMPBFB > 0)then
    Begin
   wp1.AddPoint.ValueType:= wp.AddPoint.ValueType;
      wp1.AddPoint.Value:=wp.AddPoint.Value;
      czsl:=czsl+1;
      wp.AddPoint.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)then
   begin   
    Case Args.Int 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;//返回物品附加属性条数
VarY,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.ValueType = 1 then
Begin
   x.ADDSHXS:=wp.AddPoint.Value;//增加的伤害吸收
   x.SHXSID:=Y;
   E:=E+1;
end;
If wp.AddPoint.ValueType = 2 then
BEGin
    x.SHFTID:=Y;
    x.ADDSHFT:=wp.AddPoint.Value;   //增加的伤害反弹   
    E:=E+1;
end;
If wp.AddPoint.ValueType = 3 then
Begin
   x.ADDSHZJ:=wp.AddPoint.Value;   //增加的伤害增加
   x.SHZJID:=Y;
   E:=E+1;
end;
If wp.AddPoint.ValueType = 4 then
begin
   x.ADDZMYJ:=wp.AddPoint.Value; //增加的攻击致命一击
   x.ZMYJID:=Y;
   E:=E+1;
end;
If wp.AddPoint.ValueType = 5 then
BEGIN
          x.ADDHXYJ:=wp.AddPoint.Value; //增加的攻击会心一击
    x.HXYJID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 6 then
Begin
   x.ADDHPHF:=wp.AddPoint.Value;   //增加的MP回复
   x.HPHFID:=Y;
   E:=E+1;
end;
If wp.AddPoint.ValueType = 7 then
Begin
    x.ADDMPHF:=wp.AddPoint.Value;   //增加的MP回复
    x.MPHFID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 8 then
Begin
    x.ADDEXP := wp.AddPoint.Value; //增加的经验值
    x.EXPID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 9 then
Begin
    x.ADDWPBL:=wp.AddPoint.Value;    //增加的物品爆率
    x.WPBLID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 10 then
Begin
   x.ADDJBBL:=wp.AddPoint.Value;   //增加的金币爆率
   x.JBBLID:=Y;
   E:=E+1;
end;
If wp.AddPoint.ValueType = 15 then
Begin
    x.ADDGDSH:=wp.AddPoint.Value; //增加的固定伤害
    x.GDSHID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 13 then
Begin
   x.ADDHPSX:=wp.AddPoint.Value; //增加的HP上限
   x.HPSXID:=Y;
   E:=E+1;
end;
If wp.AddPoint.ValueType = 14 then
Begin
    x.ADDMPSX:=wp.AddPoint.Value; //增加的MP上限
    x.MPSXID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 16 then
Begin
    x.ADDHPBFB:=wp.AddPoint.Value; //增加的HP上限百分比
    x.HPBFBID:=Y;
    E:=E+1;
end;
If wp.AddPoint.ValueType = 17 then
Begin
    x.ADDMPBFB:=wp.AddPoint.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;




沃尔玛 发表于 2022-1-7 15:48:31

小黑真牛逼

40731803 发表于 2022-1-12 11:41:57

沃尔玛 发表于 2022-1-7 15:48
小黑真牛逼

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

newtalan 发表于 2024-6-5 10:16:48

看起来不错的功能脚本
页: [1]
查看完整版本: [Pascal]极品属性转移脚本!有需要的自己下载