⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 datamodule_sql.pas

📁 乐都SQL版传奇全套代码,绝对可编译
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  Begin
    try
      ADOQuery.SQL.Clear;
      ADOQuery.SQL.Add(format('Select * from D_Castle_ObjUnit where CastleIndex=%d and pos=%d ',[m_sConfigIndex,i]));
      ADOQuery.Open;
      if  ADOQuery.RecordCount>0 then
         ADOQuery.Edit
      else
         ADOQuery.Append;
      case i of
         0:
            Begin
                  ADOQuery.FieldByName('nx').AsInteger:=m_MainDoor.nX;
                ADOQuery.FieldByName('ny').AsInteger:=m_MainDoor.nY  ;
                  ADOQuery.FieldByName('charname').AsString:=m_MainDoor.sName;
                 ADOQuery.FieldByName('nStatus').AsInteger:=m_MainDoor.nStatus ;
                 if m_MainDoor.BaseObject<>nil then
                   ADOQuery.FieldByName('nHp').AsInteger:=m_MainDoor.BaseObject.m_Abil.HP
                 else
                  ADOQuery.FieldByName('nHp').AsInteger:=0;

            End;
          1:
            Begin
                  ADOQuery.FieldByName('nx').AsInteger:=m_LeftWall.nX;
                ADOQuery.FieldByName('ny').AsInteger:=m_LeftWall.nY  ;
                  ADOQuery.FieldByName('charname').AsString:=m_LeftWall.sName;
                 ADOQuery.FieldByName('nStatus').AsInteger:=m_LeftWall.nStatus ;
                 if m_LeftWall.BaseObject<>nil then
                   ADOQuery.FieldByName('nHp').AsInteger:=m_LeftWall.BaseObject.m_Abil.HP
                 else
                  ADOQuery.FieldByName('nHp').AsInteger:=0;

            End;
          2:
            Begin
                  ADOQuery.FieldByName('nx').AsInteger:=m_CenterWall.nX;
                ADOQuery.FieldByName('ny').AsInteger:=m_CenterWall.nY  ;
                  ADOQuery.FieldByName('charname').AsString:=m_CenterWall.sName;
                 ADOQuery.FieldByName('nStatus').AsInteger:=m_CenterWall.nStatus ;
                 if m_CenterWall.BaseObject<>nil then
                   ADOQuery.FieldByName('nHp').AsInteger:=m_CenterWall.BaseObject.m_Abil.HP
                 else
                  ADOQuery.FieldByName('nHp').AsInteger:=0;

            End;
          3:
            Begin
                  ADOQuery.FieldByName('nx').AsInteger:=m_RightWall.nX;
                ADOQuery.FieldByName('ny').AsInteger:=m_RightWall.nY  ;
                  ADOQuery.FieldByName('charname').AsString:=m_RightWall.sName;
                 ADOQuery.FieldByName('nStatus').AsInteger:=m_RightWall.nStatus ;
                 if m_RightWall.BaseObject<>nil then
                   ADOQuery.FieldByName('nHp').AsInteger:=m_RightWall.BaseObject.m_Abil.HP
                 else
                  ADOQuery.FieldByName('nHp').AsInteger:=0;

            End;

          4..15:
            Begin
                  ADOQuery.FieldByName('nx').AsInteger:=m_Archer[i-4].nX;
                ADOQuery.FieldByName('ny').AsInteger:=m_Archer[i-4].nY  ;
                  ADOQuery.FieldByName('charname').AsString:=m_Archer[i-4].sName;
                 ADOQuery.FieldByName('nStatus').AsInteger:=m_Archer[i-4].nStatus ;
                 if m_Archer[i-4].BaseObject<>nil then
                   ADOQuery.FieldByName('nHp').AsInteger:=m_Archer[i-4].BaseObject.m_Abil.HP
                 else
                  ADOQuery.FieldByName('nHp').AsInteger:=0;

            End;
          16..19:
            Begin
                  ADOQuery.FieldByName('nx').AsInteger:=m_Guard[i-16].nX;
                ADOQuery.FieldByName('ny').AsInteger:=m_Guard[i-16].nY  ;
                  ADOQuery.FieldByName('charname').AsString:=m_Guard[i-16].sName;
                 ADOQuery.FieldByName('nStatus').AsInteger:=m_Guard[i-16].nStatus ;
                 if m_Guard[i-16].BaseObject<>nil then
                   ADOQuery.FieldByName('nHp').AsInteger:=m_Guard[i-16].BaseObject.m_Abil.HP
                 else
                  ADOQuery.FieldByName('nHp').AsInteger:=0;

            End;

      End;
      ADOQuery.FieldByName('pos').AsInteger:=i;
      ADOQuery.FieldByName('CastleIndex').AsInteger:=m_sConfigIndex;
      ADOQuery.Post;
    Finally
      ADOQuery.Close;
    End;
  End;
  End;
end;

procedure TDataModule_mir200.ClearVar(varName: String; Value: Integer);
begin
    ADOQuery.SQL.Clear;

    ADOQuery.SQL.Add('UPDATE D_Val set VarValue_int=:d1 where VarName=:d2');
    ADOQuery.Params.ParamByName('d1').Value:=Value;
    ADOQuery.Params.ParamByName('d2').Value:=VarName;

    ADOQuery.Execute;
end;

procedure TDataModule_mir200.LoadAttackSabukWall(var UserCastle: TUserCastle);
var
  i                                     : Integer;
  sData                                 : string;
  s20, sGuildName                       : string;
  Guild                                 : TGUild;
  AttackerInfo                          : pTAttackerInfo;
  D                                     : TDateTime;
begin
 with UserCastle do
 Begin
  try
    ADOQuery.SQL.Clear;
    ADOQuery.SQL.Add('Select * from D_Castle_War where CastleIndex='+Inttostr(m_sConfigIndex));
    ADOQuery.Open;
    for i:=0 to ADOQuery.RecordCount-1 do
    Begin
       D:=ADOQuery.FieldByName('WarTime').AsDateTime;
       sGuildName:=ADOQuery.FieldByName('GuildName').AsString;
       if Date() <= D then
       Begin
         Guild := g_GuildManager[0].FindGuild(sGuildName);
        if Guild <> nil then
        begin
          New(AttackerInfo);

          try
            AttackerInfo.AttackDate := D;
          except
            AttackerInfo.AttackDate := Now();
          end;
          AttackerInfo.sGuildName := sGuildName;
          AttackerInfo.Guild := Guild;
          m_AttackWarList.Add(AttackerInfo);

        end;
       End;

       ADOQuery.Next;
    End;
  finally
     ADOQuery.Close;
  End;
 End;
end;

procedure TDataModule_mir200.LoadCastleList(var CastleManager:TCastleManager);
var
  Index                                 : Integer;
  Castle                                : TUserCastle;
  sCastleDir                            : string;
  i                                     : Integer;
begin

  try
     ADOQuery.SQL.Clear;
     ADOQuery.SQL.Add('Select * from D_Castle ');
     ADOQuery.Open;
    for i:=0 to  ADOQuery.RecordCount-1 do
    Begin
       Index:=ADOQuery.FieldByName('CastleIndex').AsInteger;
       Castle := TUserCastle.Create(Index);
      CastleManager.m_CastleList.Add(Castle);
       ADOQuery.Next;
    End;
      MainOutMessage('已读取 ' + IntToStr(ADOQuery.RecordCount) + '个城堡信息...');
  finally
      ADOQuery.Close;
  End;



end;

procedure TDataModule_mir200.SaveAttackSabukWall(
  var UserCastle: TUserCastle);
var
   i : Integer;
  SqlStr                                : String;
  AttackerInfo                          : pTAttackerInfo;
begin
  with UserCastle do
  begin
   try
    ADOQuery.SQL.Clear;
    ADOQuery.SQL.Add('Delete from D_Castle_War where CastleIndex='+Inttostr(m_sConfigIndex));
    ADOQuery.Execute;
     
  finally
   ADOQuery.Close;
  End;
  ADOQuery.SQL.Add('Select * from D_Castle_War');
  ADOQuery.Active:=True;
  for i := 0 to m_AttackWarList.Count - 1 do
  begin
    AttackerInfo := m_AttackWarList.Items[i];
    ADOQuery.Append;
    ADOQuery.FieldByName('CastleIndex').AsString:=Inttostr(m_sConfigIndex);
    ADOQuery.FieldByName('GuildName').AsString:=AttackerInfo.sGuildName;
    ADOQuery.FieldByName('WarTime').AsDateTime:=AttackerInfo.AttackDate;

    ADOQuery.Post;
  end;
  End;

end;

initialization
   Coinitialize(nil);
finalization
   CoUninitialize;
end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -