📄 itmunit.pas
字号:
nUpgrade:=GetRandomRange(g_Config.nNeckLace19DCAddValueMaxLimit{6},g_Config.nNeckLace19DCAddValueRate{20});
if Random(g_Config.nNeckLace19DCAddRate{30}) = 0 then UserItem.btValue[2]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nNeckLace19MCAddValueMaxLimit{6},g_Config.nNeckLace19MCAddValueRate{20});
if Random(g_Config.nNeckLace19MCAddRate{30}) = 0 then UserItem.btValue[3]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nNeckLace19SCAddValueMaxLimit{6},g_Config.nNeckLace19SCAddValueRate{20});
if Random(g_Config.nNeckLace19SCAddRate{30}) = 0 then UserItem.btValue[4]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(6,10);
if Random(4) < 3 then begin
nVal:=(nUpgrade + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
end;
22: begin
nUpgrade:=GetRandomRange(g_Config.nRing22DCAddValueMaxLimit{6},g_Config.nRing22DCAddValueRate{20});
if Random(g_Config.nRing22DCAddRate{30}) = 0 then UserItem.btValue[2]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nRing22MCAddValueMaxLimit{6},g_Config.nRing22MCAddValueRate{20});
if Random(g_Config.nRing22MCAddRate{30}) = 0 then UserItem.btValue[3]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nRing22SCAddValueMaxLimit{6},g_Config.nRing22SCAddValueRate{20});
if Random(g_Config.nRing22SCAddRate{30}) = 0 then UserItem.btValue[4]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(6,12);
if Random(4) < 3 then begin
nVal:=(nUpgrade + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
end;
23: begin
nUpgrade:=GetRandomRange(6,20);
if Random(40) = 0 then UserItem.btValue[0]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(6,20);
if Random(40) = 0 then UserItem.btValue[1]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nRing23DCAddValueMaxLimit{6},g_Config.nRing23DCAddValueRate{20});
if Random(g_Config.nRing23DCAddRate{30}) = 0 then UserItem.btValue[2]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nRing23MCAddValueMaxLimit{6},g_Config.nRing23MCAddValueRate{20});
if Random(g_Config.nRing23MCAddRate{30}) = 0 then UserItem.btValue[3]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nRing23SCAddValueMaxLimit{6},g_Config.nRing23SCAddValueRate{20});
if Random(g_Config.nRing23SCAddRate{30}) = 0 then UserItem.btValue[4]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(6,12);
if Random(4) < 3 then begin
nVal:=(nUpgrade + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
end;
15: begin
nUpgrade:=GetRandomRange(6,20);
if Random(40) = 0 then UserItem.btValue[0]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(6,20);
if Random(30) = 0 then UserItem.btValue[1]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nHelMetDCAddValueMaxLimit{6},g_Config.nHelMetDCAddValueRate{20});
if Random(g_Config.nHelMetDCAddRate{30}) = 0 then UserItem.btValue[2]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nHelMetMCAddValueMaxLimit{6},g_Config.nHelMetMCAddValueRate{20});
if Random(g_Config.nHelMetMCAddRate{30}) = 0 then UserItem.btValue[3]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(g_Config.nHelMetSCAddValueMaxLimit{6},g_Config.nHelMetSCAddValueRate{20});
if Random(g_Config.nHelMetSCAddRate{30}) = 0 then UserItem.btValue[4]:=nUpgrade + 1;
nUpgrade:=GetRandomRange(6,12);
if Random(4) < 3 then begin
nVal:=(nUpgrade + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
end;
end;
end;
end;
end;
procedure TItem.RandomUpgradeUnknownItem(UserItem: pTUserItem);
var
nUpgrade,nRandPoint,nVal:Integer;
begin
case ItemType of
ITEM_WEAPON: begin
end;
ITEM_ARMOR: begin
end;
ITEM_ACCESSORY: begin
case StdMode of
15: begin
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowHelMetACAddValueMaxLimit{4},g_Config.nUnknowHelMetACAddRate{20});
if nRandPoint > 0 then UserItem.btValue[0]:=nRandPoint;
nUpgrade:=nRandPoint;
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowHelMetMACAddValueMaxLimit{4},g_Config.nUnknowHelMetMACAddRate{20});
if nRandPoint > 0 then UserItem.btValue[1]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(3,15) + }GetRandomRange(g_Config.nUnknowHelMetDCAddValueMaxLimit{3},g_Config.nUnknowHelMetDCAddRate{30});
if nRandPoint > 0 then UserItem.btValue[2]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(3,15) + }GetRandomRange(g_Config.nUnknowHelMetMCAddValueMaxLimit{3},g_Config.nUnknowHelMetMCAddRate{30});
if nRandPoint > 0 then UserItem.btValue[3]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(3,15) + }GetRandomRange(g_Config.nUnknowHelMetSCAddValueMaxLimit{3},g_Config.nUnknowHelMetSCAddRate{30});
if nRandPoint > 0 then UserItem.btValue[4]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:=GetRandomRange(6,30);
if nRandPoint > 0 then begin
nVal:=(nRandPoint + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
if Random(30) = 0 then UserItem.btValue[7]:=1;
UserItem.btValue[8]:=1;
if nUpgrade >= 3 then begin
if UserItem.btValue[0] >= 5 then begin
UserItem.btValue[5]:=1;
UserItem.btValue[6]:=UserItem.btValue[0] * 3 + 25;
exit;
end;
if UserItem.btValue[2] >= 2 then begin
UserItem.btValue[5]:=1;
UserItem.btValue[6]:=UserItem.btValue[2] * 4 + 35;
exit;
end;
if UserItem.btValue[3] >= 2 then begin
UserItem.btValue[5]:=2;
UserItem.btValue[6]:=UserItem.btValue[3] * 2 + 18;
exit;
end;
if UserItem.btValue[4] >= 2 then begin
UserItem.btValue[5]:=3;
UserItem.btValue[6]:=UserItem.btValue[4] * 2 + 18;
exit;
end;
UserItem.btValue[6]:=nUpgrade * 2 + 18;
end;
end;
22,23: begin
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowRingACAddValueMaxLimit{6},g_Config.nUnknowRingACAddRate{20});
if nRandPoint > 0 then UserItem.btValue[0]:=nRandPoint;
nUpgrade:=nRandPoint;
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowRingMACAddValueMaxLimit{6},g_Config.nUnknowRingMACAddRate{20});
if nRandPoint > 0 then UserItem.btValue[1]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
// 以上二项为增加项,增加防,及魔防
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowRingDCAddValueMaxLimit{6},g_Config.nUnknowRingDCAddRate{20});
if nRandPoint > 0 then UserItem.btValue[2]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowRingMCAddValueMaxLimit{6},g_Config.nUnknowRingMCAddRate{20});
if nRandPoint > 0 then UserItem.btValue[3]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(4,3) + GetRandomRange(4,8) + }GetRandomRange(g_Config.nUnknowRingSCAddValueMaxLimit{6},g_Config.nUnknowRingSCAddRate{20});
if nRandPoint > 0 then UserItem.btValue[4]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:=GetRandomRange(6,30);
if nRandPoint > 0 then begin
nVal:=(nRandPoint + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
if Random(30) = 0 then UserItem.btValue[7]:=1;
UserItem.btValue[8]:=1;
if nUpgrade >= 3 then begin
if UserItem.btValue[2] >= 3 then begin
UserItem.btValue[5]:=1;
UserItem.btValue[6]:=UserItem.btValue[2] * 3 + 25;
exit;
end;
if UserItem.btValue[3] >= 3 then begin
UserItem.btValue[5]:=2;
UserItem.btValue[6]:=UserItem.btValue[3] * 2 + 18;
exit;
end;
if UserItem.btValue[4] >= 3 then begin
UserItem.btValue[5]:=3;
UserItem.btValue[6]:=UserItem.btValue[4] * 2 + 18;
exit;
end;
UserItem.btValue[6]:=nUpgrade * 2 + 18;
end;
end;
24,26: begin
nRandPoint:={GetRandomRange(3,5) + }GetRandomRange(g_Config.nUnknowNecklaceACAddValueMaxLimit{5},g_Config.nUnknowNecklaceACAddRate{20});
if nRandPoint > 0 then UserItem.btValue[0]:=nRandPoint;
nUpgrade:=nRandPoint;
nRandPoint:={GetRandomRange(3,5) + }GetRandomRange(g_Config.nUnknowNecklaceMACAddValueMaxLimit{5},g_Config.nUnknowNecklaceMACAddRate{20});
if nRandPoint > 0 then UserItem.btValue[1]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(3,15) + }GetRandomRange(g_Config.nUnknowNecklaceDCAddValueMaxLimit{5},g_Config.nUnknowNecklaceDCAddRate{30});
if nRandPoint > 0 then UserItem.btValue[2]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(3,15) + }GetRandomRange(g_Config.nUnknowNecklaceMCAddValueMaxLimit{5},g_Config.nUnknowNecklaceMCAddRate{30});
if nRandPoint > 0 then UserItem.btValue[3]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:={GetRandomRange(3,15) + }GetRandomRange(g_Config.nUnknowNecklaceSCAddValueMaxLimit{5},g_Config.nUnknowNecklaceSCAddRate{30});
if nRandPoint > 0 then UserItem.btValue[4]:=nRandPoint;
Inc(nUpgrade,nRandPoint);
nRandPoint:=GetRandomRange(6,30);
if nRandPoint > 0 then begin
nVal:=(nRandPoint + 1) * 1000;
UserItem.DuraMax:=_MIN(65000,UserItem.DuraMax + nVal);
UserItem.Dura:=_MIN(65000,UserItem.Dura + nVal);
end;
if Random(30) = 0 then UserItem.btValue[7]:=1;
UserItem.btValue[8]:=1;
if nUpgrade >= 2 then begin
if UserItem.btValue[0] >= 3 then begin
UserItem.btValue[5]:=1;
UserItem.btValue[6]:=UserItem.btValue[0] * 3 + 25;
exit;
end;
if UserItem.btValue[2] >= 2 then begin
UserItem.btValue[5]:=1;
UserItem.btValue[6]:=UserItem.btValue[2] * 3 + 30;
exit;
end;
if UserItem.btValue[3] >= 2 then begin
UserItem.btValue[5]:=2;
UserItem.btValue[6]:=UserItem.btValue[3] * 2 + 20;
exit;
end;
if UserItem.btValue[4] >= 2 then begin
UserItem.btValue[5]:=3;
UserItem.btValue[6]:=UserItem.btValue[4] * 2 + 20;
exit;
end;
UserItem.btValue[6]:=nUpgrade * 2 + 18;
end;
end;
end;
end;
end;
end;
procedure TItem.ApplyItemParameters(var AddAbility: TAddAbility);
begin
case ItemType of
ITEM_WEAPON: begin
Inc(AddAbility.wHitPoint,AC2);
if MAC2 > 10 then begin
Inc(AddAbility.nHitSpeed,MAC2 - 10);
end else begin
Dec(AddAbility.nHitSpeed,MAC2);
end;
Inc(AddAbility.btLuck,AC);
Inc(AddAbility.btUnLuck,MAC);
end;
ITEM_ARMOR: begin
AddAbility.wAC:=MakeLong(LoWord(AddAbility.wAC) + AC,HiWord(AddAbility.wAC) + AC2);
AddAbility.wMAC:=MakeLong(LoWord(AddAbility.wMAC) + MAC,HiWord(AddAbility.wMAC) + MAC2);
Inc(AddAbility.btLuck,LoByte(Source));
Inc(AddAbility.btUnLuck,HiByte(Source));
end;
ITEM_ACCESSORY: begin
case StdMode of
19: begin
Inc(AddAbility.wAntiMagic,AC2);
Inc(AddAbility.btUnLuck,MAC);
Inc(AddAbility.btLuck,MAC2);
end;
53: begin //新加物品属性
if g_Config.boAddUserItemNewValue then begin
Inc(AddAbility.wAntiMagic,AC2);
Inc(AddAbility.btUnLuck,MAC);
Inc(AddAbility.btLuck,MAC2);
end else begin
AddAbility.wAC:=MakeLong(LoWord(AddAbility.wAC) + AC,HiWord(AddAbility.wAC) + AC2);
AddAbility.wMAC:=MakeLong(LoWord(AddAbility.wMAC) + MAC,HiWord(AddAbility.wMAC) + MAC2);
end;
end;
63: begin //Charm
Inc(AddAbility.wHP,AC);
Inc(AddAbility.wMP,AC2);
Inc(AddAbility.btUnLuck,MAC);
Inc(AddAbility.btLuck,MAC2);
end;
20,24: begin //004C0FF0
Inc(AddAbility.wHitPoint,AC2);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -