📄 itmunit.pas
字号:
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);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -