传奇之家 - 传奇开区一条龙服务网站

当前位置:传奇之家 > 开区脚本 > > 详细页面

转生系统 · 轮回突破脚本

转生系统 · 轮回突破脚本

转生系统 · 轮回突破脚本

作者:传奇之家类别:开区脚本

更新:2026-10-29查看次数:145

// 转生系统脚本
program ReincarnationSystem;
 
type
  TPlayer = record
    Name: string;
    Level: Integer;
    Rebirth: Integer;
    Attack: Integer;
    Defense: Integer;
    HP: Integer;
  end;
 
const
  MAX_REBIRTH = 15;
  REBIRTH_COST_BASE = 1000000; // 基础转生金币消耗
 
function GetRebirthRequirement(RebirthLevel: Integer): Integer;
begin
  // 每转所需等级递增
  case RebirthLevel of
    0..3: Result := 80 + RebirthLevel * 10;
    4..7: Result := 120 + (RebirthLevel - 4) * 15;
    8..11: Result := 180 + (RebirthLevel - 8) * 20;
    else Result := 260 + (RebirthLevel - 12) * 30;
  end;
end;
 
function GetAttributeMultiplier(RebirthLevel: Integer): Real;
begin
  // 每转提升属性倍率
  Result := 1.0 + (RebirthLevel * 0.15);
end;
 
procedure ShowRebirthInfo(Player: TPlayer);
begin
  Writeln('═════════════════════════════════');
  Writeln('   角色:', Player.Name);
  Writeln('   当前转生:', Player.Rebirth, '转');
  Writeln('   当前等级:', Player.Level);
  Writeln('   攻击力:', Player.Attack);
  Writeln('   防御力:', Player.Defense);
  Writeln('   生命值:', Player.HP);
  Writeln('═════════════════════════════════');
end;
 
function CanRebirth(Player: TPlayer): Boolean;
var
  RequiredLevel: Integer;
begin
  if Player.Rebirth >= MAX_REBIRTH then
  begin
    Writeln('? 已达最高转生等级!');
    Result := False;
    Exit;
  end;
  
  RequiredLevel := GetRebirthRequirement(Player.Rebirth);
  if Player.Level < RequiredLevel then
  begin
    Writeln('? 等级不足!需要 ', RequiredLevel, ' 级');
    Result := False;
    Exit;
  end;
  
  Result := True;
end;
 
procedure DoRebirth(var Player: TPlayer);
var
  Multiplier: Real;
begin
  if not CanRebirth(Player) then Exit;
  
  Inc(Player.Rebirth);
  Player.Level := 1; // 等级归零
  
  Multiplier := GetAttributeMultiplier(Player.Rebirth);
  Player.Attack := Round(Player.Attack * Multiplier);
  Player.Defense := Round(Player.Defense * Multiplier);
  Player.HP := Round(Player.HP * Multiplier);
  
  Writeln('');
  Writeln('??? 转生成功!???');
  Writeln('   成功突破至 ', Player.Rebirth, ' 转!');
  Writeln('   等级重置为 1 级');
  Writeln('   属性提升 ', (Multiplier - 1) * 100:0:0, '%');
  Writeln('   新攻击力:', Player.Attack);
  Writeln('   新防御力:', Player.Defense);
  Writeln('   新生命值:', Player.HP);
  
  if Player.Rebirth = MAX_REBIRTH then
    Writeln('???? 恭喜达成最高转生!获得称号「轮回至尊」');
end;
 
var
  Hero: TPlayer;
  Choice: Char;
begin
  // 初始化角色
  Hero.Name := '傲视群雄';
  Hero.Level := 80;
  Hero.Rebirth := 0;
  Hero.Attack := 500;
  Hero.Defense := 300;
  Hero.HP := 2000;
  
  Writeln('╔═════════════════════════════════╗');
  Writeln('║       转生系统 · 轮回突破        ║');
  Writeln('╚═════════════════════════════════╝');
  
  ShowRebirthInfo(Hero);
  
  Writeln('');
  Writeln('按 R 进行转生,按 Q 退出');
  Readln(Choice);
  
  if (Choice = 'R') or (Choice = 'r') then
    DoRebirth(Hero);
    
  Writeln('');
  Writeln('最终状态:');
  ShowRebirthInfo(Hero);
end.
玩家达到指定等级后可进行转生,每次转生提升属性倍率但等级归零,最高15转。