-
Enthusiast
Re: GameOfMir
unit Event;
interface
uses
Windows, Classes, SysUtils, SyncObjs, ObjBase, Envir, Grobal2;
type
TEvent = class //0x40
nVisibleFlag: Integer; //0x04
m_Envir: TEnvirnoment;
m_nX: Integer; //0x0C
m_nY: Integer; //0x10
m_nEventType: Integer; //0x14
m_nEventParam: Integer; //0x18
m_dwOpenStartTick: LongWord; //0x1C
m_dwContinueTime: LongWord; //0x20 显示时间长度
m_dwCloseTick: LongWord; //0x24
m_boClosed: Boolean; //0x28
m_nDamage: Integer; ///0x2C
m_OwnBaseObject: TBaseObject; //0x30
m_dwRunStart: LongWord; //0x34
m_dwRunTick: LongWord; //0x38
m_boVisible: Boolean; //0x3C
m_boActive: Boolean; //0x3D
m_boClose: Boolean;
public
constructor Create(tEnvir: TEnvirnoment; nTX, nTY, nType, dwETime: Integer; boVisible: Boolean);
destructor Destroy; override;
procedure Run(); virtual;
procedure Close();
end;
TStoneMineEvent = class(TEvent) //0x4C
m_nMineCount: Integer; //0x40
m_nAddStoneCount: Integer; //0x44
m_dwAddStoneMineTick: LongWord; //0x48
public
constructor Create(Envir: TEnvirnoment; nX, nY: Integer; nType: Integer);
destructor Destroy; override;
procedure AddStoneMine();
end;
TPileStones = class(TEvent) //0x40
public
constructor Create(Envir: TEnvirnoment; nX, nY: Integer; nType, nTime: Integer);
destructor Destroy; override;
procedure AddEventParam();
end;
THolyCurtainEvent = class(TEvent) //0x40
public
constructor Create(Envir: TEnvirnoment; nX, nY: Integer; nType, nTime: Integer);
destructor Destroy; override;
end;
TFireBurnEvent = class(TEvent) //0x44
m_dwRunTick: LongWord;
public
constructor Create(Creat: TBaseObject; nX, nY: Integer; nType: Integer; nTime, nDamage: Integer);
destructor Destroy; override;
procedure Run(); override;
end;
TSafeEvent = class(TEvent) //0x40
public
constructor Create(Envir: TEnvirnoment; nX, nY: Integer; nType: Integer);
destructor Destroy; override;
procedure Run(); override;
end;
TEventManager = class //0x0C
m_EventList: TGList;
m_ClosedEventList: TGList;
public
constructor Create();
destructor Destroy; override;
function GetEvent(Envir: TEnvirnoment; nX, nY: Integer; nType: Integer): TEvent;
procedure AddEvent(Event: TEvent);
procedure Run();
end;
implementation
uses M2Share;
{ TStoneMineEvent }
constructor TStoneMineEvent.Create(Envir: TEnvirnoment; nX, nY,
nType: Integer);
begin
inherited Create(Envir, nX, nY, nType, 0, False);
m_Envir.AddToMapMineEvent(nX, nY, OS_EVENTOBJECT, Self);
m_boVisible := False;
m_nMineCount := Random(200);
m_dwAddStoneMineTick := GetTickCount();
m_boActive := False;
m_nAddStoneCount := Random(80);
end;
destructor TStoneMineEvent.Destroy;
begin
inherited;
end;
{ TEventManager }
procedure TEventManager.Run;
var
i: Integer;
Event: TEvent;
nCheckCode: Integer;
resourcestring
sExceptionMsg = '[Exception] TEventManager::Run CheckCode: %d';
begin
nCheckCode := -1;
try
m_EventList.Lock;
try
i := 0;
while (True) do begin
if m_EventList.Count <= i then break;
nCheckCode := 1;
Event := TEvent(m_EventList.Items[i]);
if Event <> nil then begin
nCheckCode := 2;
if Event.m_boActive and ((GetTickCount - Event.m_dwRunStart) > Event.m_dwRunTick) then begin
nCheckCode := 3;
Event.m_dwRunStart := GetTickCount();
nCheckCode := 4;
if not Event.m_boClosed then Event.Run();
nCheckCode := 5;
if Event.m_boClosed then begin
nCheckCode := 6;
m_ClosedEventList.Lock;
try
m_ClosedEventList.Add(Event);
finally
m_ClosedEventList.UnLock;
end;
nCheckCode := 7;
m_EventList.Delete(i);
nCheckCode := 8;
end else Inc(i);
end else Inc(i);
end;
end;
finally
m_EventList.UnLock;
end;
nCheckCode := 10;
m_ClosedEventList.Lock;
try
for i := m_ClosedEventList.Count - 1 downto 0 do begin
if m_ClosedEventList.Count <= 0 then break;
nCheckCode := 11;
Event := TEvent(m_ClosedEventList.Items[i]);
if Event <> nil then begin
nCheckCode := 12;
if (GetTickCount - Event.m_dwCloseTick) > 5 * 60 * 1000 then begin
m_ClosedEventList.Delete(i);
nCheckCode := 13;
if Event <> nil then Event.Free;
nCheckCode := 14;
end;
end;
end;
finally
m_ClosedEventList.UnLock;
end;
except
on E: Exception do begin
MainOutMessage(format(sExceptionMsg, [nCheckCode]));
MainOutMessage(E.Message);
end;
end;
end;
function TEventManager.GetEvent(Envir: TEnvirnoment; nX, nY,
nType: Integer): TEvent;
var
i: Integer;
Event: TEvent;
begin
Result := nil;
m_EventList.Lock;
try
for i := 0 to m_EventList.Count - 1 do begin
Event := TEvent(m_EventList.Items[i]);
if Event <> nil then begin
if (Event.m_Envir = Envir) and
(Event.m_nX = nX) and
(Event.m_nY = nY) and
(Event.m_nEventType = nType) then begin
Result := Event;
break;
end;
end;
end;
finally
m_EventList.UnLock;
end;
end;
procedure TEventManager.AddEvent(Event: TEvent); //004A80EC
begin
m_EventList.Lock;
try
m_EventList.Add(Event);
finally
m_EventList.UnLock;
end;
end;
constructor TEventManager.Create(); //004A8014
begin
m_EventList := TGList.Create;
m_ClosedEventList := TGList.Create;
end;
destructor TEventManager.Destroy;
var
i: Integer;
begin
for i := 0 to m_EventList.Count - 1 do begin
TEvent(m_EventList.Items[i]).Free;
end;
m_EventList.Free;
for i := 0 to m_ClosedEventList.Count - 1 do begin
TEvent(m_ClosedEventList.Items[i]).Free;
end;
m_ClosedEventList.Free;
inherited;
end;
{ THolyCurtainEvent }
constructor THolyCurtainEvent.Create(Envir: TEnvirnoment; nX, nY, nType, nTime: Integer); //004A7E60
begin
inherited Create(Envir, nX, nY, nType, nTime, True);
m_boClose := True;
end;
destructor THolyCurtainEvent.Destroy;
begin
inherited;
end;
{TSafeEvent}
constructor TSafeEvent.Create(Envir: TEnvirnoment; nX, nY: Integer; nType: Integer);
begin
inherited Create(Envir, nX, nY, nType, 0, True);
m_boClose := False;
end;
destructor TSafeEvent.Destroy;
begin
inherited;
end;
procedure TSafeEvent.Run();
{var
i: Integer;
BaseObjectList: TList;
TargeTBaseObject: TBaseObject;}
begin
{ if (GetTickCount - m_dwRunTick) > 3000 then begin
m_dwRunTick := GetTickCount();
BaseObjectList := TList.Create;
if m_Envir <> nil then begin
m_Envir.GeTBaseObjects(m_nX, m_nY, True, BaseObjectList);
for i := 0 to BaseObjectList.Count - 1 do begin
TargeTBaseObject := TBaseObject(BaseObjectList.Items[i]);
if (TargeTBaseObject <> nil) then begin
TargeTBaseObject.SendMsg(m_OwnBaseObject, RM_MAGSTRUCK_MINE, 0, 0, 0, 0, '');
end;
end;
end;
BaseObjectList.Free;
end; }
inherited;
end;
{ TFireBurnEvent }
constructor TFireBurnEvent.Create(Creat: TBaseObject; nX, nY, nType, nTime, nDamage: Integer); //004A7EBC
begin
inherited Create(Creat.m_PEnvir, nX, nY, nType, nTime, True);
m_nDamage := nDamage;
m_OwnBaseObject := Creat;
m_boClose := True;
end;
destructor TFireBurnEvent.Destroy;
begin
inherited;
end;
procedure TFireBurnEvent.Run;
var
i: Integer;
BaseObjectList: TList;
TargeTBaseObject: TBaseObject;
nCheckCode: Integer;
resourcestring
sExceptionMsg = '[Exception] TFireBurnEvent::Run CheckCode: %d';
begin
try
if ((GetTickCount - m_dwRunTick) > 3000) and (not m_boClosed) and (m_OwnBaseObject <> nil) and (not m_OwnBaseObject.m_boRobotObject) then begin
nCheckCode := 0;
BaseObjectList := nil;
m_dwRunTick := GetTickCount();
BaseObjectList := TList.Create;
if m_Envir <> nil then begin
nCheckCode := 1;
m_Envir.GeTBaseObjects(m_nX, m_nY, True, BaseObjectList);
for i := 0 to BaseObjectList.Count - 1 do begin
if BaseObjectList.Count <= 0 then break;
if m_boClosed then break;
nCheckCode := 2;
TargeTBaseObject := TBaseObject(BaseObjectList.Items[i]);
if BaseObjectList.Count <= 0 then break;
if m_boClosed then break;
nCheckCode := 3;
if (not m_boClosed) and (TargeTBaseObject <> nil) and (m_OwnBaseObject <> nil) and (m_OwnBaseObject.IsProperTarget(TargeTBaseObject)) then begin
nCheckCode := 4;
if BaseObjectList.Count <= 0 then break;
if m_boClosed then break;
TargeTBaseObject.SendMsg(m_OwnBaseObject, RM_MAGSTRUCK_MINE, 0, m_nDamage, 0, 0, '');
if BaseObjectList.Count <= 0 then break;
if m_boClosed then break;
nCheckCode := 5;
end;
end;
end;
BaseObjectList.Free;
BaseObjectList := nil;
end;
except
on E: Exception do begin
if BaseObjectList <> nil then BaseObjectList.Free;
MainOutMessage(format(sExceptionMsg, [nCheckCode]));
MainOutMessage(E.Message);
end;
end;
inherited;
end;
{ TEvent }
constructor TEvent.Create(tEnvir: TEnvirnoment; nTX, nTY, nType, dwETime: Integer; boVisible: Boolean); //004A7B68
begin
m_dwOpenStartTick := GetTickCount();
m_nEventType := nType;
m_nEventParam := 0;
m_dwContinueTime := dwETime;
m_boVisible := boVisible;
m_boClosed := False;
m_Envir := tEnvir;
m_nX := nTX;
m_nY := nTY;
m_boActive := True;
m_nDamage := 0;
m_boClose := True;
m_OwnBaseObject := nil;
m_dwRunTick := 500;
m_dwRunStart := GetTickCount() - m_dwRunTick;
if (m_Envir <> nil) and (m_boVisible) then begin
m_Envir.AddToMap(m_nX, m_nY, OS_EVENTOBJECT, Self);
end else m_boVisible := False;
//EventCheck.Add(Self);
end;
destructor TEvent.Destroy;
var
i: Integer;
begin
{
for I := 0 to EventCheck.Count - 1 do begin
if EventCheck.Items[I] = Self then begin
EventCheck.Delete(I);
break;
end;
end;
}
m_boClose := True;
inherited;
end;
procedure TEvent.Run;
begin
if (m_boClose) and ((GetTickCount - m_dwOpenStartTick) > m_dwContinueTime) then begin
m_boClosed := True;
Close();
end;
if (m_OwnBaseObject <> nil) and (m_OwnBaseObject.m_boGhost or (m_OwnBaseObject.m_boDeath)) then
m_OwnBaseObject := nil;
end;
procedure TEvent.Close;
begin
m_dwCloseTick := GetTickCount();
if m_boVisible then begin
m_boVisible := False;
if m_Envir <> nil then begin
m_Envir.DeleteFromMap(m_nX, m_nY, OS_EVENTOBJECT, Self);
end;
m_Envir := nil;
end;
end;
{ TPileStones }
constructor TPileStones.Create(Envir: TEnvirnoment; nX, nY, nType,
nTime: Integer); //004A7DDC
begin
inherited Create(Envir, nX, nY, nType, nTime, True);
m_nEventParam := 1;
m_boClose := True;
end;
destructor TPileStones.Destroy;
begin
inherited;
end;
procedure TPileStones.AddEventParam; //sub_4A7E44;
begin
if m_nEventParam < 5 then Inc(m_nEventParam);
end;
procedure TStoneMineEvent.AddStoneMine; //004A7DB8
begin
m_nMineCount := m_nAddStoneCount;
m_dwAddStoneMineTick := GetTickCount();
end;
end.
-
Enthusiast
Re: GameOfMir
unit FrnEngn;
interface
uses
Windows, Classes, SysUtils, Grobal2, SDK;
type
TFrontEngine = class(TThread)
m_UserCriticalSection: TRTLCriticalSection;
m_LoadRcdList: TList; //0x30
m_SaveRcdList: TList; //0x34
m_ChangeGoldList: TList; //0x38
private
m_LoadRcdTempList: TList;
m_SaveRcdTempList: TList;
procedure GetGameTime();
procedure ProcessGameDate();
function LoadHumFromDB(LoadUser: pTLoadDBInfo; var boReTry: Boolean): Boolean;
function ChangeUserGoldInDB(GoldChangeInfo: pTGoldChangeInfo): Boolean;
procedure Run();
{ Private declarations }
protected
procedure Execute; override;
public
constructor Create(CreateSuspended: Boolean);
destructor Destroy; override;
function SaveListCount(): Integer;
function IsIdle(): Boolean;
function IsFull(): Boolean;
procedure DeleteHuman(nGateIndex, nSocket: Integer);
function InSaveRcdList(sAccount, sChrName: string): Boolean;
procedure AddChangeGoldList(sGameMasterName, sGetGoldUserName: string; nGold: Integer);
procedure AddToLoadRcdList(sAccount, sChrName, sIPaddr: string; boFlag: Boolean; nSessionID: Integer; nPayMent, nPayMode, nSoftVersionDate, nSocket, nGSocketIdx, nGateIdx: Integer);
procedure AddToSaveRcdList(SaveRcd: pTSaveRcd);
end;
implementation
uses
M2Share, RunDB, ObjBase;
{ TFrontEngine }
constructor TFrontEngine.Create(CreateSuspended: Boolean);
begin
inherited;
InitializeCriticalSection(m_UserCriticalSection);
m_LoadRcdList := TList.Create;
m_SaveRcdList := TList.Create;
m_ChangeGoldList := TList.Create;
m_LoadRcdTempList := TList.Create;
m_SaveRcdTempList := TList.Create;
// FreeOnTerminate:=True;
//AddToProcTable(@TFrontEngine.ProcessGameDate, 'TFrontEngine.ProcessGameDatea');
end;
destructor TFrontEngine.Destroy;
begin
m_LoadRcdList.Free;
m_SaveRcdList.Free;
m_ChangeGoldList.Free;
m_LoadRcdTempList.Free;
m_SaveRcdTempList.Free;
DeleteCriticalSection(m_UserCriticalSection);
inherited;
end;
//004B5148
procedure TFrontEngine.Execute;
resourcestring
sExceptionMsg = '[Exception] TFrontEngine::Execute';
begin
while not Terminated do begin
try
Run();
except
MainOutMessage(sExceptionMsg);
end;
Sleep(1);
end;
end;
procedure TFrontEngine.GetGameTime; //004B50AC
var
Hour, Min, Sec, MSec: Word;
begin
DecodeTime(Time, Hour, Min, Sec, MSec);
case Hour of
5, 6, 7, 8, 9, 10, 16, 17, 18, 19, 20, 21, 22: g_nGameTime := 1;
11, 23: g_nGameTime := 2;
4, 15: g_nGameTime := 0;
0, 1, 2, 3, 12, 13, 14: g_nGameTime := 3;
end;
end;
function TFrontEngine.IsIdle: Boolean;
begin
Result := False;
EnterCriticalSection(m_UserCriticalSection);
try
if m_SaveRcdList.Count = 0 then Result := True;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
function TFrontEngine.SaveListCount: Integer;
begin
Result := 0;
EnterCriticalSection(m_UserCriticalSection);
try
Result := m_SaveRcdList.Count;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
procedure TFrontEngine.ProcessGameDate;
var
i: Integer;
ii: Integer;
TempList: TList;
ChangeGoldList: TList;
LoadDBInfo: pTLoadDBInfo;
SaveRcd: pTSaveRcd;
GoldChangeInfo: pTGoldChangeInfo;
boReTryLoadDB: Boolean;
begin
ChangeGoldList := nil;
EnterCriticalSection(m_UserCriticalSection);
try
for i := 0 to m_SaveRcdList.Count - 1 do begin
m_SaveRcdTempList.Add(m_SaveRcdList.Items[i]);
end;
TempList := m_LoadRcdTempList;
m_LoadRcdTempList := m_LoadRcdList;
m_LoadRcdList := TempList;
if m_ChangeGoldList.Count > 0 then begin
ChangeGoldList := TList.Create;
for i := 0 to m_ChangeGoldList.Count - 1 do begin
ChangeGoldList.Add(m_ChangeGoldList.Items[i]);
end;
end;
m_ChangeGoldList.Clear;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
if DBSocketConnected then begin
for i := 0 to m_SaveRcdTempList.Count - 1 do begin
SaveRcd := m_SaveRcdTempList.Items[i];
if SaveRcd = nil then Continue;
if SaveHumRcdToDB(SaveRcd.sAccount, SaveRcd.sChrName, SaveRcd.nSessionID, SaveRcd.HumanRcd) or (SaveRcd.nReTryCount > 50) then begin
//MainOutMessage('SaveHumRcdToDB =true');
if SaveRcd.PlayObject <> nil then begin
TPlayObject(SaveRcd.PlayObject).m_boRcdSaved := True;
end;
EnterCriticalSection(m_UserCriticalSection);
try
for ii := 0 to m_SaveRcdList.Count - 1 do begin
if m_SaveRcdList.Items[ii] = SaveRcd then begin
m_SaveRcdList.Delete(ii);
DisPose(SaveRcd);
break;
end;
end;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end else begin
//修改离线挂机人物不能退出的问题
//MainOutMessage('SaveHumRcdToDB =FALSE');
if g_boExitServer then begin
if SaveRcd.PlayObject <> nil then begin
TPlayObject(SaveRcd.PlayObject).m_boRcdSaved := True;
end;
EnterCriticalSection(m_UserCriticalSection);
try
for ii := 0 to m_SaveRcdList.Count - 1 do begin
if m_SaveRcdList.Items[ii] = SaveRcd then begin
m_SaveRcdList.Delete(ii);
DisPose(SaveRcd);
break;
end;
end;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
Inc(SaveRcd.nReTryCount);
end;
end;
end else begin //如果DB已经关闭,不在保存
//MainOutMessage('not DBSocketConnected');
EnterCriticalSection(m_UserCriticalSection);
try
for i := 0 to m_SaveRcdList.Count - 1 do begin
if m_SaveRcdList.Items[i] <> nil then
DisPose(m_SaveRcdList.Items[i]);
end;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
m_SaveRcdList.Clear;
end;
m_SaveRcdTempList.Clear;
for i := 0 to m_LoadRcdTempList.Count - 1 do begin
LoadDBInfo := m_LoadRcdTempList.Items[i];
if LoadDBInfo = nil then Continue;
if not LoadHumFromDB(LoadDBInfo, boReTryLoadDB) then begin
RunSocket.CloseUser(LoadDBInfo.nGateIdx, LoadDBInfo.nSocket);
end else begin
if not boReTryLoadDB then begin
DisPose(LoadDBInfo);
end else begin //如果读取人物数据失败(数据还没有保存),则重新加入队列
EnterCriticalSection(m_UserCriticalSection);
try
m_LoadRcdList.Add(LoadDBInfo);
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
end;
end;
m_LoadRcdTempList.Clear;
if ChangeGoldList <> nil then begin
for i := 0 to ChangeGoldList.Count - 1 do begin
GoldChangeInfo := ChangeGoldList.Items[i];
if GoldChangeInfo = nil then Continue;
ChangeUserGoldInDB(GoldChangeInfo);
DisPose(GoldChangeInfo);
end;
ChangeGoldList.Free;
end;
end;
function TFrontEngine.IsFull: Boolean; //004B4988
begin
Result := False;
EnterCriticalSection(m_UserCriticalSection);
try
if m_SaveRcdList.Count >= 1000 then begin
Result := True;
end;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
procedure TFrontEngine.AddToLoadRcdList(sAccount, sChrName, sIPaddr: string;
boFlag: Boolean; nSessionID, nPayMent, nPayMode, nSoftVersionDate, nSocket, nGSocketIdx, nGateIdx: Integer);
//004B46A0
var
LoadRcdInfo: pTLoadDBInfo;
begin
New(LoadRcdInfo);
LoadRcdInfo.sAccount := sAccount;
LoadRcdInfo.sCharName := sChrName;
LoadRcdInfo.sIPaddr := sIPaddr;
//LoadRcdInfo.boClinetFlag := boFlag;
LoadRcdInfo.nSessionID := nSessionID;
LoadRcdInfo.nSoftVersionDate := nSoftVersionDate;
LoadRcdInfo.nPayMent := nPayMent;
LoadRcdInfo.nPayMode := nPayMode;
LoadRcdInfo.nSocket := nSocket;
LoadRcdInfo.nGSocketIdx := nGSocketIdx;
LoadRcdInfo.nGateIdx := nGateIdx;
LoadRcdInfo.dwNewUserTick := GetTickCount();
LoadRcdInfo.PlayObject := nil;
LoadRcdInfo.nReLoadCount := 0;
EnterCriticalSection(m_UserCriticalSection);
try
m_LoadRcdList.Add(LoadRcdInfo);
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
function TFrontEngine.LoadHumFromDB(LoadUser: pTLoadDBInfo; var boReTry: Boolean): Boolean; //004B4B10
var
HumanRcd: THumDataInfo;
UserOpenInfo: pTUserOpenInfo;
PlayObject: TPlayObject;
resourcestring
sReLoginFailMsg = '[非法登录] 全局会话验证失败(%s/%s/%s/%d)';
begin
Result := False;
boReTry := False;
if InSaveRcdList(LoadUser.sAccount, LoadUser.sCharName) then begin
boReTry := True; //反回TRUE,则重新加入队列
Exit;
end;
if (UserEngine.GetPlayObjectEx(LoadUser.sAccount, LoadUser.sCharName) <> nil) then begin
UserEngine.KickPlayObjectEx(LoadUser.sAccount, LoadUser.sCharName);
boReTry := True; //反回TRUE,则重新加入队列
Exit;
end;
if not LoadHumRcdFromDB(LoadUser.sAccount, LoadUser.sCharName, LoadUser.sIPaddr, HumanRcd, LoadUser.nSessionID) then begin
RunSocket.SendOutConnectMsg(LoadUser.nGateIdx, LoadUser.nSocket, LoadUser.nGSocketIdx);
end else begin
New(UserOpenInfo);
UserOpenInfo.sAccount := LoadUser.sAccount;
UserOpenInfo.sChrName := LoadUser.sCharName;
UserOpenInfo.LoadUser := LoadUser^;
UserOpenInfo.HumanRcd := HumanRcd;
UserEngine.AddUserOpenInfo(UserOpenInfo);
Result := True;
end;
end;
function TFrontEngine.InSaveRcdList(sAccount, sChrName: string): Boolean;
var
i: Integer;
begin
Result := False;
EnterCriticalSection(m_UserCriticalSection);
try
for i := 0 to m_SaveRcdList.Count - 1 do begin
if (pTSaveRcd(m_SaveRcdList.Items[i]).sAccount = sAccount) and
(pTSaveRcd(m_SaveRcdList.Items[i]).sChrName = sChrName) then begin
Result := True;
break;
end;
end;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
procedure TFrontEngine.AddChangeGoldList(sGameMasterName, sGetGoldUserName: string;
nGold: Integer); //004B4828
var
GoldInfo: pTGoldChangeInfo;
begin
New(GoldInfo);
GoldInfo.sGameMasterName := sGameMasterName;
GoldInfo.sGetGoldUser := sGetGoldUserName;
GoldInfo.nGold := nGold;
m_ChangeGoldList.Add(GoldInfo);
end;
procedure TFrontEngine.AddToSaveRcdList(SaveRcd: pTSaveRcd); //004B49EC
begin
EnterCriticalSection(m_UserCriticalSection);
try
m_SaveRcdList.Add(SaveRcd);
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
procedure TFrontEngine.DeleteHuman(nGateIndex, nSocket: Integer); //004B45EC
var
i: Integer;
LoadRcdInfo: pTLoadDBInfo;
begin
EnterCriticalSection(m_UserCriticalSection);
try
for i := m_LoadRcdList.Count - 1 downto 0 do begin
if m_LoadRcdList.Count <= 0 then break;
LoadRcdInfo := m_LoadRcdList.Items[i];
if LoadRcdInfo = nil then Continue;
if (LoadRcdInfo.nGateIdx = nGateIndex) and (LoadRcdInfo.nSocket = nSocket) then begin
DisPose(LoadRcdInfo);
m_LoadRcdList.Delete(i);
break;
end;
end;
finally
LeaveCriticalSection(m_UserCriticalSection);
end;
end;
function TFrontEngine.ChangeUserGoldInDB(GoldChangeInfo: pTGoldChangeInfo): Boolean;
var
HumanRcd: THumDataInfo;
begin
Result := False;
if LoadHumRcdFromDB('1', GoldChangeInfo.sGetGoldUser, '1', HumanRcd, 1) then begin
if ((HumanRcd.Data.nGold + GoldChangeInfo.nGold) > 0) and ((HumanRcd.Data.nGold + GoldChangeInfo.nGold) < 2000000000) then begin
Inc(HumanRcd.Data.nGold, GoldChangeInfo.nGold);
if SaveHumRcdToDB('1', GoldChangeInfo.sGetGoldUser, 1, HumanRcd) then begin
UserEngine.sub_4AE514(GoldChangeInfo);
Result := True;
end;
end;
end;
end;
procedure TFrontEngine.Run;
begin
ProcessGameDate();
GetGameTime();
end;
end.
-
Enthusiast
Re: GameOfMir
unit FSrvValue;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Spin, M2Share;
type
TFrmServerValue = class(TForm)
BitBtn1: TBitBtn;
CbViewHack: TCheckBox;
CkViewAdmfail: TCheckBox;
GroupBox1: TGroupBox;
Label8: TLabel;
Label7: TLabel;
Label9: TLabel;
Label10: TLabel;
EGateLoad: TSpinEdit;
EAvailableBlock: TSpinEdit;
ECheckBlock: TSpinEdit;
ESendBlock: TSpinEdit;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
EHum: TSpinEdit;
EMon: TSpinEdit;
EZen: TSpinEdit;
ESoc: TSpinEdit;
ENpc: TSpinEdit;
EDec: TSpinEdit;
GroupBox3: TGroupBox;
Label15: TLabel;
EditZenMonRate: TSpinEdit;
Label16: TLabel;
EditProcessTime: TSpinEdit;
EditZenMonTime: TSpinEdit;
Label17: TLabel;
Label18: TLabel;
ButtonDefault: TButton;
procedure BitBtn1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure EditZenMonRateChange(Sender: TObject);
procedure EditZenMonTimeChange(Sender: TObject);
procedure EditProcessTimeChange(Sender: TObject);
procedure ESendBlockChange(Sender: TObject);
procedure ECheckBlockChange(Sender: TObject);
procedure EGateLoadChange(Sender: TObject);
procedure EHumChange(Sender: TObject);
procedure EMonChange(Sender: TObject);
procedure EZenChange(Sender: TObject);
procedure ESocChange(Sender: TObject);
procedure ENpcChange(Sender: TObject);
procedure EAvailableBlockChange(Sender: TObject);
procedure CbViewHackClick(Sender: TObject);
procedure CkViewAdmfailClick(Sender: TObject);
procedure ButtonDefaultClick(Sender: TObject);
private
boOpened: Boolean;
boModValued: Boolean;
procedure ModValue();
procedure uModValue();
procedure RefShow();
{ Private declarations }
public
function AdjuestServerConfig(): Boolean;
{ Public declarations }
end;
var
FrmServerValue: TFrmServerValue;
implementation
uses HUtil32;
{$R *.dfm}
{ TFrmServerValue }
procedure TFrmServerValue.ModValue;
begin
boModValued := True;
BitBtn1.Enabled := True;
end;
procedure TFrmServerValue.uModValue;
begin
boModValued := False;
BitBtn1.Enabled := False;
end;
function TFrmServerValue.AdjuestServerConfig: Boolean;
begin
boOpened := False;
uModValue();
RefShow();
boOpened := True;
ShowModal;
Result := True;
end;
procedure TFrmServerValue.BitBtn1Click(Sender: TObject);
var
tBool: string;
begin
Config.WriteInteger('Server', 'HumLimit', g_dwHumLimit);
Config.WriteInteger('Server', 'MonLimit', g_dwMonLimit);
Config.WriteInteger('Server', 'ZenLimit', g_dwZenLimit);
Config.WriteInteger('Server', 'SocLimit', g_dwSocLimit);
Config.WriteInteger('Server', 'DecLimit', nDecLimit);
Config.WriteInteger('Server', 'NpcLimit', g_dwNpcLimit);
Config.WriteInteger('Server', 'SendBlock', g_Config.nSendBlock);
Config.WriteInteger('Server', 'CheckBlock', g_Config.nCheckBlock);
Config.WriteInteger('Server', 'GateLoad', g_Config.nGateLoad);
if g_Config.boViewHackMessage then
tBool := 'TRUE'
else tBool := 'FLASE';
Config.WriteString('Server', 'ViewHackMessage', tBool);
if g_Config.boViewAdmissionFailure then
tBool := 'TRUE'
else tBool := 'FLASE';
Config.WriteString('Server', 'ViewAdmissionFailure', tBool);
Config.WriteInteger('Setup', 'GenMonRate', g_Config.nMonGenRate);
Config.WriteInteger('Server', 'ProcessMonstersTime', g_Config.dwProcessMonstersTime);
Config.WriteInteger('Server', 'RegenMonstersTime', g_Config.dwRegenMonstersTime);
uModValue();
end;
procedure TFrmServerValue.FormCreate(Sender: TObject);
begin
ESendBlock.Hint := '与网关之间一次传输数据块大小(字节)。';
ECheckBlock.Hint := '与网关之间传输指定大小数据后,进行一次自检。';
EGateLoad.Hint := '设置与网关传输负载测试数据量大小。';
EHum.Hint := '处理人物数据分配时间。';
EMon.Hint := '处理怪物数据分配时间。';
EZen.Hint := '刷新怪物数据分配时间。';
ESoc.Hint := '处理网关数据分配时间。';
ENpc.Hint := '处理NPC数据分配时间。';
EditZenMonRate.Hint := '刷怪倍率,倍率除以10为实际倍率(设置为10则为1:1),此倍率以刷怪文件设置为准,数字越大,刷怪数量越小。';
EditZenMonTime.Hint := '刷怪间隔控制,数字越大,刷怪速度越慢。';
EditProcessTime.Hint := '处理怪物间隔时间,此设置数字越大,怪物行动越慢。';
end;
procedure TFrmServerValue.EditZenMonRateChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.nMonGenRate := EditZenMonRate.Value;
ModValue();
end;
procedure TFrmServerValue.EditZenMonTimeChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.dwRegenMonstersTime := EditZenMonTime.Value;
ModValue();
end;
procedure TFrmServerValue.EditProcessTimeChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.dwProcessMonstersTime := EditProcessTime.Value;
ModValue();
end;
procedure TFrmServerValue.ESendBlockChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.nSendBlock := _MAX(10, ESendBlock.Value);
ModValue();
end;
procedure TFrmServerValue.ECheckBlockChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.nCheckBlock := _MAX(10, ECheckBlock.Value);
ModValue();
end;
procedure TFrmServerValue.EGateLoadChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.nGateLoad := EGateLoad.Value;
ModValue();
end;
procedure TFrmServerValue.EHumChange(Sender: TObject);
begin
if not boOpened then exit;
g_dwHumLimit := _MIN(150, EHum.Value);
ModValue();
end;
procedure TFrmServerValue.EMonChange(Sender: TObject);
begin
if not boOpened then exit;
g_dwMonLimit := _MIN(150, EMon.Value);
ModValue();
end;
procedure TFrmServerValue.EZenChange(Sender: TObject);
begin
if not boOpened then exit;
g_dwZenLimit := _MIN(150, EZen.Value);
ModValue();
end;
procedure TFrmServerValue.ESocChange(Sender: TObject);
begin
if not boOpened then exit;
g_dwSocLimit := _MIN(150, ESoc.Value);
ModValue();
end;
procedure TFrmServerValue.ENpcChange(Sender: TObject);
begin
if not boOpened then exit;
g_dwNpcLimit := _MIN(150, ENpc.Value);
ModValue();
end;
procedure TFrmServerValue.EAvailableBlockChange(Sender: TObject);
begin
if not boOpened then exit;
g_Config.nAvailableBlock := _MAX(10, EAvailableBlock.Value);
ModValue();
end;
procedure TFrmServerValue.CbViewHackClick(Sender: TObject);
begin
if not boOpened then exit;
g_Config.boViewHackMessage := CbViewHack.Checked;
ModValue();
end;
procedure TFrmServerValue.CkViewAdmfailClick(Sender: TObject);
begin
if not boOpened then exit;
g_Config.boViewAdmissionFailure := CkViewAdmfail.Checked;
ModValue();
end;
procedure TFrmServerValue.RefShow;
begin
EHum.Value := g_dwHumLimit;
EMon.Value := g_dwMonLimit;
EZen.Value := g_dwZenLimit;
ESoc.Value := g_dwSocLimit;
EDec.Value := nDecLimit;
ENpc.Value := g_dwNpcLimit;
ESendBlock.Value := g_Config.nSendBlock;
ECheckBlock.Value := g_Config.nCheckBlock;
EAvailableBlock.Value := g_Config.nAvailableBlock;
EGateLoad.Value := g_Config.nGateLoad;
CbViewHack.Checked := g_Config.boViewHackMessage;
CkViewAdmfail.Checked := g_Config.boViewAdmissionFailure;
EditZenMonRate.Value := g_Config.nMonGenRate;
EditZenMonTime.Value := g_Config.dwRegenMonstersTime;
EditProcessTime.Value := g_Config.dwProcessMonstersTime;
end;
procedure TFrmServerValue.ButtonDefaultClick(Sender: TObject);
begin
if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
exit;
end;
g_dwHumLimit := 30;
g_dwMonLimit := 10;
g_dwZenLimit := 5;
g_dwSocLimit := 10;
nDecLimit := 20;
g_dwNpcLimit := 5;
g_Config.nSendBlock := 1024;
g_Config.nCheckBlock := 8000;
g_Config.nAvailableBlock := 8000;
g_Config.nGateLoad := 0;
g_Config.boViewHackMessage := False;
g_Config.boViewAdmissionFailure := False;
g_Config.nMonGenRate := 10;
g_Config.dwRegenMonstersTime := 200;
g_Config.dwProcessMonstersTime := 50;
RefShow();
end;
end.
-
Enthusiast
Re: GameOfMir
unit FunctionConfig;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Spin, Grids, Grobal2;
type
TfrmFunctionConfig = class(TForm)
FunctionConfigControl: TPageControl;
Label14: TLabel;
MonSaySheet: TTabSheet;
TabSheet1: TTabSheet;
PasswordSheet: TTabSheet;
GroupBox1: TGroupBox;
CheckBoxEnablePasswordLock: TCheckBox;
GroupBox2: TGroupBox;
CheckBoxLockGetBackItem: TCheckBox;
GroupBox3: TGroupBox;
Label1: TLabel;
EditErrorPasswordCount: TSpinEdit;
CheckBoxErrorCountKick: TCheckBox;
ButtonPasswordLockSave: TButton;
GroupBox4: TGroupBox;
CheckBoxLockWalk: TCheckBox;
CheckBoxLockRun: TCheckBox;
CheckBoxLockHit: TCheckBox;
CheckBoxLockSpell: TCheckBox;
CheckBoxLockSendMsg: TCheckBox;
CheckBoxLockInObMode: TCheckBox;
CheckBoxLockLogin: TCheckBox;
CheckBoxLockUseItem: TCheckBox;
CheckBoxLockDropItem: TCheckBox;
CheckBoxLockDealItem: TCheckBox;
MagicPageControl: TPageControl;
FiresWordTab: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
TabSheet7: TTabSheet;
TabSheet8: TTabSheet;
TabSheet2: TTabSheet;
TabSheet9: TTabSheet;
TabSheet10: TTabSheet;
TabSheet11: TTabSheet;
TabSheet12: TTabSheet;
TabSheet13: TTabSheet;
TabSheet14: TTabSheet;
TabSheet15: TTabSheet;
TabSheet16: TTabSheet;
TabSheet17: TTabSheet;
TabSheet18: TTabSheet;
TabSheet19: TTabSheet;
TabSheet20: TTabSheet;
TabSheet21: TTabSheet;
TabSheet22: TTabSheet;
TabSheet23: TTabSheet;
TabSheet24: TTabSheet;
TabSheet25: TTabSheet;
TabSheet26: TTabSheet;
TabSheet27: TTabSheet;
TabSheet28: TTabSheet;
TabSheet29: TTabSheet;
GroupBox5: TGroupBox;
Label2: TLabel;
EditBoneFammName: TEdit;
Label3: TLabel;
EditBoneFammCount: TSpinEdit;
GroupBox6: TGroupBox;
GridBoneFamm: TStringGrid;
TabSheetGeneral: TTabSheet;
GroupBox7: TGroupBox;
CheckBoxHungerSystem: TCheckBox;
ButtonGeneralSave: TButton;
GroupBoxHunger: TGroupBox;
CheckBoxHungerDecPower: TCheckBox;
CheckBoxHungerDecHP: TCheckBox;
ButtonSkillSave: TButton;
GroupBox9: TGroupBox;
CheckBoxLimitSwordLong: TCheckBox;
GroupBox10: TGroupBox;
EditSwordLongPowerRate: TSpinEdit;
Label4: TLabel;
TabSheet30: TTabSheet;
GroupBox11: TGroupBox;
Label5: TLabel;
Label6: TLabel;
EditDogzName: TEdit;
EditDogzCount: TSpinEdit;
GroupBox12: TGroupBox;
TabSheet31: TTabSheet;
GroupBox13: TGroupBox;
Label7: TLabel;
EditFireBoomRage: TSpinEdit;
GroupBox14: TGroupBox;
Label8: TLabel;
EditSnowWindRange: TSpinEdit;
GroupBox15: TGroupBox;
Label9: TLabel;
EditElecBlizzardRange: TSpinEdit;
Label10: TLabel;
TabSheet32: TTabSheet;
TabSheet33: TTabSheet;
TabSheet34: TTabSheet;
TabSheet35: TTabSheet;
GridDogz: TStringGrid;
GroupBox16: TGroupBox;
Label11: TLabel;
EditAmyOunsulPoint: TSpinEdit;
TabSheet36: TTabSheet;
GroupBox17: TGroupBox;
Label12: TLabel;
EditMagicAttackRage: TSpinEdit;
GroupBox8: TGroupBox;
Label13: TLabel;
EditUpgradeWeaponMaxPoint: TSpinEdit;
Label15: TLabel;
EditUpgradeWeaponPrice: TSpinEdit;
Label16: TLabel;
EditUPgradeWeaponGetBackTime: TSpinEdit;
Label17: TLabel;
EditClearExpireUpgradeWeaponDays: TSpinEdit;
Label18: TLabel;
Label19: TLabel;
GroupBox18: TGroupBox;
ScrollBarUpgradeWeaponDCRate: TScrollBar;
Label20: TLabel;
EditUpgradeWeaponDCRate: TEdit;
Label21: TLabel;
ScrollBarUpgradeWeaponDCTwoPointRate: TScrollBar;
EditUpgradeWeaponDCTwoPointRate: TEdit;
Label22: TLabel;
ScrollBarUpgradeWeaponDCThreePointRate: TScrollBar;
EditUpgradeWeaponDCThreePointRate: TEdit;
GroupBox19: TGroupBox;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
ScrollBarUpgradeWeaponSCRate: TScrollBar;
EditUpgradeWeaponSCRate: TEdit;
ScrollBarUpgradeWeaponSCTwoPointRate: TScrollBar;
EditUpgradeWeaponSCTwoPointRate: TEdit;
ScrollBarUpgradeWeaponSCThreePointRate: TScrollBar;
EditUpgradeWeaponSCThreePointRate: TEdit;
GroupBox20: TGroupBox;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
ScrollBarUpgradeWeaponMCRate: TScrollBar;
EditUpgradeWeaponMCRate: TEdit;
ScrollBarUpgradeWeaponMCTwoPointRate: TScrollBar;
EditUpgradeWeaponMCTwoPointRate: TEdit;
ScrollBarUpgradeWeaponMCThreePointRate: TScrollBar;
EditUpgradeWeaponMCThreePointRate: TEdit;
ButtonUpgradeWeaponSave: TButton;
GroupBox21: TGroupBox;
ButtonMasterSave: TButton;
GroupBox22: TGroupBox;
EditMasterOKLevel: TSpinEdit;
Label29: TLabel;
GroupBox23: TGroupBox;
EditMasterOKCreditPoint: TSpinEdit;
Label30: TLabel;
EditMasterOKBonusPoint: TSpinEdit;
Label31: TLabel;
GroupBox24: TGroupBox;
ScrollBarMakeMineHitRate: TScrollBar;
EditMakeMineHitRate: TEdit;
Label32: TLabel;
Label33: TLabel;
ScrollBarMakeMineRate: TScrollBar;
EditMakeMineRate: TEdit;
GroupBox25: TGroupBox;
Label34: TLabel;
Label35: TLabel;
ScrollBarStoneTypeRate: TScrollBar;
EditStoneTypeRate: TEdit;
ScrollBarGoldStoneMax: TScrollBar;
EditGoldStoneMax: TEdit;
Label36: TLabel;
ScrollBarSilverStoneMax: TScrollBar;
EditSilverStoneMax: TEdit;
Label37: TLabel;
ScrollBarSteelStoneMax: TScrollBar;
EditSteelStoneMax: TEdit;
Label38: TLabel;
EditBlackStoneMax: TEdit;
ScrollBarBlackStoneMax: TScrollBar;
ButtonMakeMineSave: TButton;
GroupBox26: TGroupBox;
Label39: TLabel;
EditStoneMinDura: TSpinEdit;
Label40: TLabel;
EditStoneGeneralDuraRate: TSpinEdit;
Label41: TLabel;
EditStoneAddDuraRate: TSpinEdit;
Label42: TLabel;
EditStoneAddDuraMax: TSpinEdit;
TabSheet37: TTabSheet;
GroupBox27: TGroupBox;
Label43: TLabel;
Label44: TLabel;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
ScrollBarWinLottery1Max: TScrollBar;
EditWinLottery1Max: TEdit;
ScrollBarWinLottery2Max: TScrollBar;
EditWinLottery2Max: TEdit;
ScrollBarWinLottery3Max: TScrollBar;
EditWinLottery3Max: TEdit;
ScrollBarWinLottery4Max: TScrollBar;
EditWinLottery4Max: TEdit;
EditWinLottery5Max: TEdit;
ScrollBarWinLottery5Max: TScrollBar;
Label48: TLabel;
ScrollBarWinLottery6Max: TScrollBar;
EditWinLottery6Max: TEdit;
EditWinLotteryRate: TEdit;
ScrollBarWinLotteryRate: TScrollBar;
Label49: TLabel;
GroupBox28: TGroupBox;
Label50: TLabel;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
EditWinLottery1Gold: TSpinEdit;
EditWinLottery2Gold: TSpinEdit;
EditWinLottery3Gold: TSpinEdit;
EditWinLottery4Gold: TSpinEdit;
Label54: TLabel;
EditWinLottery5Gold: TSpinEdit;
Label55: TLabel;
EditWinLottery6Gold: TSpinEdit;
ButtonWinLotterySave: TButton;
TabSheet38: TTabSheet;
GroupBox29: TGroupBox;
Label56: TLabel;
EditReNewNameColor1: TSpinEdit;
LabelReNewNameColor1: TLabel;
Label58: TLabel;
EditReNewNameColor2: TSpinEdit;
LabelReNewNameColor2: TLabel;
Label60: TLabel;
EditReNewNameColor3: TSpinEdit;
LabelReNewNameColor3: TLabel;
Label62: TLabel;
EditReNewNameColor4: TSpinEdit;
LabelReNewNameColor4: TLabel;
Label64: TLabel;
EditReNewNameColor5: TSpinEdit;
LabelReNewNameColor5: TLabel;
Label66: TLabel;
EditReNewNameColor6: TSpinEdit;
LabelReNewNameColor6: TLabel;
Label68: TLabel;
EditReNewNameColor7: TSpinEdit;
LabelReNewNameColor7: TLabel;
Label70: TLabel;
EditReNewNameColor8: TSpinEdit;
LabelReNewNameColor8: TLabel;
Label72: TLabel;
EditReNewNameColor9: TSpinEdit;
LabelReNewNameColor9: TLabel;
Label74: TLabel;
EditReNewNameColor10: TSpinEdit;
LabelReNewNameColor10: TLabel;
ButtonReNewLevelSave: TButton;
GroupBox30: TGroupBox;
Label57: TLabel;
EditReNewNameColorTime: TSpinEdit;
Label59: TLabel;
TabSheet39: TTabSheet;
ButtonMonUpgradeSave: TButton;
GroupBox32: TGroupBox;
Label65: TLabel;
LabelMonUpgradeColor1: TLabel;
Label67: TLabel;
LabelMonUpgradeColor2: TLabel;
Label69: TLabel;
LabelMonUpgradeColor3: TLabel;
Label71: TLabel;
LabelMonUpgradeColor4: TLabel;
Label73: TLabel;
LabelMonUpgradeColor5: TLabel;
Label75: TLabel;
LabelMonUpgradeColor6: TLabel;
Label76: TLabel;
LabelMonUpgradeColor7: TLabel;
Label77: TLabel;
LabelMonUpgradeColor8: TLabel;
EditMonUpgradeColor1: TSpinEdit;
EditMonUpgradeColor2: TSpinEdit;
EditMonUpgradeColor3: TSpinEdit;
EditMonUpgradeColor4: TSpinEdit;
EditMonUpgradeColor5: TSpinEdit;
EditMonUpgradeColor6: TSpinEdit;
EditMonUpgradeColor7: TSpinEdit;
EditMonUpgradeColor8: TSpinEdit;
GroupBox31: TGroupBox;
Label61: TLabel;
Label63: TLabel;
Label78: TLabel;
Label79: TLabel;
Label80: TLabel;
Label81: TLabel;
Label82: TLabel;
Label83: TLabel;
EditMonUpgradeKillCount1: TSpinEdit;
EditMonUpgradeKillCount2: TSpinEdit;
EditMonUpgradeKillCount3: TSpinEdit;
EditMonUpgradeKillCount4: TSpinEdit;
EditMonUpgradeKillCount5: TSpinEdit;
EditMonUpgradeKillCount6: TSpinEdit;
EditMonUpgradeKillCount7: TSpinEdit;
EditMonUpLvNeedKillBase: TSpinEdit;
EditMonUpLvRate: TSpinEdit;
Label84: TLabel;
CheckBoxReNewChangeColor: TCheckBox;
GroupBox33: TGroupBox;
CheckBoxReNewLevelClearExp: TCheckBox;
GroupBox34: TGroupBox;
Label85: TLabel;
EditPKFlagNameColor: TSpinEdit;
LabelPKFlagNameColor: TLabel;
Label87: TLabel;
EditPKLevel1NameColor: TSpinEdit;
LabelPKLevel1NameColor: TLabel;
Label89: TLabel;
EditPKLevel2NameColor: TSpinEdit;
LabelPKLevel2NameColor: TLabel;
Label91: TLabel;
EditAllyAndGuildNameColor: TSpinEdit;
LabelAllyAndGuildNameColor: TLabel;
Label93: TLabel;
EditWarGuildNameColor: TSpinEdit;
LabelWarGuildNameColor: TLabel;
Label95: TLabel;
EditInFreePKAreaNameColor: TSpinEdit;
LabelInFreePKAreaNameColor: TLabel;
TabSheet40: TTabSheet;
Label86: TLabel;
EditMonUpgradeColor9: TSpinEdit;
LabelMonUpgradeColor9: TLabel;
GroupBox35: TGroupBox;
CheckBoxMasterDieMutiny: TCheckBox;
Label88: TLabel;
EditMasterDieMutinyRate: TSpinEdit;
Label90: TLabel;
EditMasterDieMutinyPower: TSpinEdit;
Label92: TLabel;
EditMasterDieMutinySpeed: TSpinEdit;
GroupBox36: TGroupBox;
Label94: TLabel;
Label96: TLabel;
CheckBoxSpiritMutiny: TCheckBox;
EditSpiritMutinyTime: TSpinEdit;
EditSpiritPowerRate: TSpinEdit;
ButtonSpiritMutinySave: TButton;
GroupBox37: TGroupBox;
Label97: TLabel;
EditMagTurnUndeadLevel: TSpinEdit;
GroupBox38: TGroupBox;
Label98: TLabel;
EditMagTammingLevel: TSpinEdit;
GroupBox39: TGroupBox;
Label99: TLabel;
EditMagTammingTargetLevel: TSpinEdit;
Label100: TLabel;
EditMagTammingHPRate: TSpinEdit;
GroupBox40: TGroupBox;
CheckBoxMonSayMsg: TCheckBox;
ButtonMonSayMsgSave: TButton;
ButtonUpgradeWeaponDefaulf: TButton;
ButtonMakeMineDefault: TButton;
ButtonWinLotteryDefault: TButton;
TabSheet41: TTabSheet;
GroupBox41: TGroupBox;
Label101: TLabel;
EditMabMabeHitRandRate: TSpinEdit;
Label102: TLabel;
EditMabMabeHitMinLvLimit: TSpinEdit;
GroupBox42: TGroupBox;
EditMabMabeHitSucessRate: TSpinEdit;
Label103: TLabel;
GroupBox43: TGroupBox;
Label104: TLabel;
EditMabMabeHitMabeTimeRate: TSpinEdit;
TabSheet42: TTabSheet;
GroupBox44: TGroupBox;
Label105: TLabel;
Label106: TLabel;
Label107: TLabel;
Label108: TLabel;
Label109: TLabel;
ScrollBarWeaponMakeUnLuckRate: TScrollBar;
EditWeaponMakeUnLuckRate: TEdit;
ScrollBarWeaponMakeLuckPoint1: TScrollBar;
EditWeaponMakeLuckPoint1: TEdit;
ScrollBarWeaponMakeLuckPoint2: TScrollBar;
EditWeaponMakeLuckPoint2: TEdit;
ScrollBarWeaponMakeLuckPoint2Rate: TScrollBar;
EditWeaponMakeLuckPoint2Rate: TEdit;
EditWeaponMakeLuckPoint3: TEdit;
ScrollBarWeaponMakeLuckPoint3: TScrollBar;
Label110: TLabel;
ScrollBarWeaponMakeLuckPoint3Rate: TScrollBar;
EditWeaponMakeLuckPoint3Rate: TEdit;
ButtonWeaponMakeLuckDefault: TButton;
ButtonWeaponMakeLuckSave: TButton;
GroupBox45: TGroupBox;
Label111: TLabel;
EditTammingCount: TSpinEdit;
GroupBox46: TGroupBox;
CheckBoxFireCrossInSafeZone: TCheckBox;
GroupBox47: TGroupBox;
Label112: TLabel;
CheckBoxBBMonAutoChangeColor: TCheckBox;
EditBBMonAutoChangeColorTime: TSpinEdit;
TabSheet43: TTabSheet;
GroupBox48: TGroupBox;
CheckBoxGroupMbAttackPlayObject: TCheckBox;
TabSheet44: TTabSheet;
GroupBox49: TGroupBox;
Label113: TLabel;
Label114: TLabel;
Label115: TLabel;
SpinEditSellOffCount: TSpinEdit;
SpinEditSellOffTax: TSpinEdit;
ButtonSellOffSave: TButton;
TabSheet45: TTabSheet;
GroupBox50: TGroupBox;
TabSheet46: TTabSheet;
TabSheet47: TTabSheet;
TabSheet48: TTabSheet;
TabSheet49: TTabSheet;
CheckBoxPullPlayObject: TCheckBox;
GroupBox51: TGroupBox;
CheckBoxPlayObjectReduceMP: TCheckBox;
GroupBox52: TGroupBox;
Label116: TLabel;
GroupBox53: TGroupBox;
SpinEditMagDelayTime: TSpinEdit;
Label117: TLabel;
SpinEditMagPower: TSpinEdit;
GroupBox54: TGroupBox;
CheckBoxGroupMbAttackSlave: TCheckBox;
TabSheet50: TTabSheet;
GroupBox55: TGroupBox;
CheckBoxItemName: TCheckBox;
Label118: TLabel;
EditItemName: TEdit;
ButtonChangeUseItemName: TButton;
TabSheet51: TTabSheet;
GroupBox58: TGroupBox;
Label121: TLabel;
SpinEditAllowCopyCount: TSpinEdit;
Label122: TLabel;
EditCopyHumName: TEdit;
CheckBoxMasterName: TCheckBox;
Label123: TLabel;
SpinEditPickUpItemCount: TSpinEdit;
Label124: TLabel;
Label125: TLabel;
SpinEditEatHPItemRate: TSpinEdit;
Label126: TLabel;
SpinEditEatMPItemRate: TSpinEdit;
Label127: TLabel;
TabSheet52: TTabSheet;
CheckBoxAllowGuardAttack: TCheckBox;
TabSheet53: TTabSheet;
GroupBox57: TGroupBox;
CheckBoxDedingAllowPK: TCheckBox;
GroupBox56: TGroupBox;
Label119: TLabel;
Label120: TLabel;
SpinEditSkill39Sec: TSpinEdit;
GroupBox60: TGroupBox;
Label128: TLabel;
Label129: TLabel;
Label130: TLabel;
EditBagItems1: TEdit;
EditBagItems2: TEdit;
EditBagItems3: TEdit;
GroupBox59: TGroupBox;
Label131: TLabel;
Label132: TLabel;
Label133: TLabel;
SpinEditWarrorAttackTime: TSpinEdit;
SpinEditWizardAttackTime: TSpinEdit;
SpinEditTaoistAttackTime: TSpinEdit;
GroupBox61: TGroupBox;
CheckBoxNeedLevelHighTarget: TCheckBox;
CheckBoxAllowReCallMobOtherHum: TCheckBox;
CheckBoxPullCrossInSafeZone: TCheckBox;
procedure CheckBoxEnablePasswordLockClick(Sender: TObject);
procedure CheckBoxLockGetBackItemClick(Sender: TObject);
procedure CheckBoxLockDealItemClick(Sender: TObject);
procedure CheckBoxLockDropItemClick(Sender: TObject);
procedure CheckBoxLockWalkClick(Sender: TObject);
procedure CheckBoxLockRunClick(Sender: TObject);
procedure CheckBoxLockHitClick(Sender: TObject);
procedure CheckBoxLockSpellClick(Sender: TObject);
procedure CheckBoxLockSendMsgClick(Sender: TObject);
procedure CheckBoxLockInObModeClick(Sender: TObject);
procedure EditErrorPasswordCountChange(Sender: TObject);
procedure ButtonPasswordLockSaveClick(Sender: TObject);
procedure CheckBoxErrorCountKickClick(Sender: TObject);
procedure CheckBoxLockLoginClick(Sender: TObject);
procedure CheckBoxLockUseItemClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBoxHungerSystemClick(Sender: TObject);
procedure CheckBoxHungerDecHPClick(Sender: TObject);
procedure CheckBoxHungerDecPowerClick(Sender: TObject);
procedure ButtonGeneralSaveClick(Sender: TObject);
procedure CheckBoxLimitSwordLongClick(Sender: TObject);
procedure ButtonSkillSaveClick(Sender: TObject);
procedure EditBoneFammNameChange(Sender: TObject);
procedure EditBoneFammCountChange(Sender: TObject);
procedure EditSwordLongPowerRateChange(Sender: TObject);
procedure EditFireBoomRageChange(Sender: TObject);
procedure EditSnowWindRangeChange(Sender: TObject);
procedure EditElecBlizzardRangeChange(Sender: TObject);
procedure EditDogzCountChange(Sender: TObject);
procedure EditDogzNameChange(Sender: TObject);
procedure GridBoneFammSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: string);
procedure EditAmyOunsulPointChange(Sender: TObject);
procedure EditMagicAttackRageChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponDCRateChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponDCTwoPointRateChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponDCThreePointRateChange(
Sender: TObject);
procedure ScrollBarUpgradeWeaponSCRateChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponSCTwoPointRateChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponSCThreePointRateChange(
Sender: TObject);
procedure ScrollBarUpgradeWeaponMCRateChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponMCTwoPointRateChange(Sender: TObject);
procedure ScrollBarUpgradeWeaponMCThreePointRateChange(
Sender: TObject);
procedure EditUpgradeWeaponMaxPointChange(Sender: TObject);
procedure EditUpgradeWeaponPriceChange(Sender: TObject);
procedure EditUPgradeWeaponGetBackTimeChange(Sender: TObject);
procedure EditClearExpireUpgradeWeaponDaysChange(Sender: TObject);
procedure ButtonUpgradeWeaponSaveClick(Sender: TObject);
procedure EditMasterOKLevelChange(Sender: TObject);
procedure ButtonMasterSaveClick(Sender: TObject);
procedure EditMasterOKCreditPointChange(Sender: TObject);
procedure EditMasterOKBonusPointChange(Sender: TObject);
procedure ScrollBarMakeMineHitRateChange(Sender: TObject);
procedure ScrollBarMakeMineRateChange(Sender: TObject);
procedure ScrollBarStoneTypeRateChange(Sender: TObject);
procedure ScrollBarGoldStoneMaxChange(Sender: TObject);
procedure ScrollBarSilverStoneMaxChange(Sender: TObject);
procedure ScrollBarSteelStoneMaxChange(Sender: TObject);
procedure ScrollBarBlackStoneMaxChange(Sender: TObject);
procedure ButtonMakeMineSaveClick(Sender: TObject);
procedure EditStoneMinDuraChange(Sender: TObject);
procedure EditStoneGeneralDuraRateChange(Sender: TObject);
procedure EditStoneAddDuraRateChange(Sender: TObject);
procedure EditStoneAddDuraMaxChange(Sender: TObject);
procedure ButtonWinLotterySaveClick(Sender: TObject);
procedure EditWinLottery1GoldChange(Sender: TObject);
procedure EditWinLottery2GoldChange(Sender: TObject);
procedure EditWinLottery3GoldChange(Sender: TObject);
procedure EditWinLottery4GoldChange(Sender: TObject);
procedure EditWinLottery5GoldChange(Sender: TObject);
procedure EditWinLottery6GoldChange(Sender: TObject);
procedure ScrollBarWinLottery1MaxChange(Sender: TObject);
procedure ScrollBarWinLottery2MaxChange(Sender: TObject);
procedure ScrollBarWinLottery3MaxChange(Sender: TObject);
procedure ScrollBarWinLottery4MaxChange(Sender: TObject);
procedure ScrollBarWinLottery5MaxChange(Sender: TObject);
procedure ScrollBarWinLottery6MaxChange(Sender: TObject);
procedure ScrollBarWinLotteryRateChange(Sender: TObject);
procedure ButtonReNewLevelSaveClick(Sender: TObject);
procedure EditReNewNameColor1Change(Sender: TObject);
procedure EditReNewNameColor2Change(Sender: TObject);
procedure EditReNewNameColor3Change(Sender: TObject);
procedure EditReNewNameColor4Change(Sender: TObject);
procedure EditReNewNameColor5Change(Sender: TObject);
procedure EditReNewNameColor6Change(Sender: TObject);
procedure EditReNewNameColor7Change(Sender: TObject);
procedure EditReNewNameColor8Change(Sender: TObject);
procedure EditReNewNameColor9Change(Sender: TObject);
procedure EditReNewNameColor10Change(Sender: TObject);
procedure EditReNewNameColorTimeChange(Sender: TObject);
procedure FunctionConfigControlChanging(Sender: TObject;
var AllowChange: Boolean);
procedure ButtonMonUpgradeSaveClick(Sender: TObject);
procedure EditMonUpgradeColor1Change(Sender: TObject);
procedure EditMonUpgradeColor2Change(Sender: TObject);
procedure EditMonUpgradeColor3Change(Sender: TObject);
procedure EditMonUpgradeColor4Change(Sender: TObject);
procedure EditMonUpgradeColor5Change(Sender: TObject);
procedure EditMonUpgradeColor6Change(Sender: TObject);
procedure EditMonUpgradeColor7Change(Sender: TObject);
procedure EditMonUpgradeColor8Change(Sender: TObject);
procedure EditMonUpgradeColor9Change(Sender: TObject);
procedure CheckBoxReNewChangeColorClick(Sender: TObject);
procedure CheckBoxReNewLevelClearExpClick(Sender: TObject);
procedure EditPKFlagNameColorChange(Sender: TObject);
procedure EditPKLevel1NameColorChange(Sender: TObject);
procedure EditPKLevel2NameColorChange(Sender: TObject);
procedure EditAllyAndGuildNameColorChange(Sender: TObject);
procedure EditWarGuildNameColorChange(Sender: TObject);
procedure EditInFreePKAreaNameColorChange(Sender: TObject);
procedure EditMonUpgradeKillCount1Change(Sender: TObject);
procedure EditMonUpgradeKillCount2Change(Sender: TObject);
procedure EditMonUpgradeKillCount3Change(Sender: TObject);
procedure EditMonUpgradeKillCount4Change(Sender: TObject);
procedure EditMonUpgradeKillCount5Change(Sender: TObject);
procedure EditMonUpgradeKillCount6Change(Sender: TObject);
procedure EditMonUpgradeKillCount7Change(Sender: TObject);
procedure EditMonUpLvNeedKillBaseChange(Sender: TObject);
procedure EditMonUpLvRateChange(Sender: TObject);
procedure CheckBoxMasterDieMutinyClick(Sender: TObject);
procedure EditMasterDieMutinyRateChange(Sender: TObject);
procedure EditMasterDieMutinyPowerChange(Sender: TObject);
procedure EditMasterDieMutinySpeedChange(Sender: TObject);
procedure ButtonSpiritMutinySaveClick(Sender: TObject);
procedure CheckBoxSpiritMutinyClick(Sender: TObject);
procedure EditSpiritMutinyTimeChange(Sender: TObject);
procedure EditSpiritPowerRateChange(Sender: TObject);
procedure EditMagTurnUndeadLevelChange(Sender: TObject);
procedure EditMagTammingLevelChange(Sender: TObject);
procedure EditMagTammingTargetLevelChange(Sender: TObject);
procedure EditMagTammingHPRateChange(Sender: TObject);
procedure ButtonMonSayMsgSaveClick(Sender: TObject);
procedure CheckBoxMonSayMsgClick(Sender: TObject);
procedure ButtonUpgradeWeaponDefaulfClick(Sender: TObject);
procedure ButtonMakeMineDefaultClick(Sender: TObject);
procedure ButtonWinLotteryDefaultClick(Sender: TObject);
procedure EditMabMabeHitRandRateChange(Sender: TObject);
procedure EditMabMabeHitMinLvLimitChange(Sender: TObject);
procedure EditMabMabeHitSucessRateChange(Sender: TObject);
procedure EditMabMabeHitMabeTimeRateChange(Sender: TObject);
procedure ButtonWeaponMakeLuckDefaultClick(Sender: TObject);
procedure ButtonWeaponMakeLuckSaveClick(Sender: TObject);
procedure ScrollBarWeaponMakeUnLuckRateChange(Sender: TObject);
procedure ScrollBarWeaponMakeLuckPoint1Change(Sender: TObject);
procedure ScrollBarWeaponMakeLuckPoint2Change(Sender: TObject);
procedure ScrollBarWeaponMakeLuckPoint2RateChange(Sender: TObject);
procedure ScrollBarWeaponMakeLuckPoint3Change(Sender: TObject);
procedure ScrollBarWeaponMakeLuckPoint3RateChange(Sender: TObject);
procedure EditTammingCountChange(Sender: TObject);
procedure CheckBoxFireCrossInSafeZoneClick(Sender: TObject);
procedure CheckBoxBBMonAutoChangeColorClick(Sender: TObject);
procedure EditBBMonAutoChangeColorTimeChange(Sender: TObject);
procedure CheckBoxGroupMbAttackPlayObjectClick(Sender: TObject);
procedure SpinEditSellOffCountChange(Sender: TObject);
procedure SpinEditSellOffTaxChange(Sender: TObject);
procedure ButtonSellOffSaveClick(Sender: TObject);
procedure CheckBoxPullPlayObjectClick(Sender: TObject);
procedure CheckBoxPlayObjectReduceMPClick(Sender: TObject);
procedure SpinEditMagDelayTimeChange(Sender: TObject);
procedure SpinEditMagPowerChange(Sender: TObject);
procedure CheckBoxGroupMbAttackSlaveClick(Sender: TObject);
procedure CheckBoxItemNameClick(Sender: TObject);
procedure EditItemNameChange(Sender: TObject);
procedure ButtonChangeUseItemNameClick(Sender: TObject);
procedure SpinEditSkill39SecChange(Sender: TObject);
procedure CheckBoxDedingAllowPKClick(Sender: TObject);
procedure SpinEditAllowCopyCountChange(Sender: TObject);
procedure EditCopyHumNameChange(Sender: TObject);
procedure CheckBoxMasterNameClick(Sender: TObject);
procedure SpinEditPickUpItemCountChange(Sender: TObject);
procedure SpinEditEatHPItemRateChange(Sender: TObject);
procedure SpinEditEatMPItemRateChange(Sender: TObject);
procedure EditBagItems1Change(Sender: TObject);
procedure EditBagItems2Change(Sender: TObject);
procedure EditBagItems3Change(Sender: TObject);
procedure CheckBoxAllowGuardAttackClick(Sender: TObject);
procedure SpinEditWarrorAttackTimeChange(Sender: TObject);
procedure SpinEditWizardAttackTimeChange(Sender: TObject);
procedure SpinEditTaoistAttackTimeChange(Sender: TObject);
procedure CheckBoxAllowReCallMobOtherHumClick(Sender: TObject);
procedure CheckBoxNeedLevelHighTargetClick(Sender: TObject);
procedure CheckBoxPullCrossInSafeZoneClick(Sender: TObject);
private
boOpened: Boolean;
boModValued: Boolean;
procedure ModValue();
procedure uModValue();
procedure RefReNewLevelConf;
procedure RefUpgradeWeapon;
procedure RefMakeMine;
procedure RefWinLottery;
procedure RefMonUpgrade;
procedure RefGeneral;
procedure RefSpiritMutiny;
procedure RefMagicSkill;
procedure RefMonSayMsg;
procedure RefWeaponMakeLuck();
procedure RefCopyHumConf;
{ Private declarations }
public
procedure Open;
{ Public declarations }
end;
var
frmFunctionConfig: TfrmFunctionConfig;
implementation
uses M2Share, HUtil32, SDK;
{$R *.dfm}
{ TfrmFunctionConfig }
procedure TfrmFunctionConfig.ModValue;
begin
boModValued := True;
ButtonPasswordLockSave.Enabled := True;
ButtonGeneralSave.Enabled := True;
ButtonSkillSave.Enabled := True;
ButtonUpgradeWeaponSave.Enabled := True;
ButtonMasterSave.Enabled := True;
ButtonMakeMineSave.Enabled := True;
ButtonWinLotterySave.Enabled := True;
ButtonReNewLevelSave.Enabled := True;
ButtonMonUpgradeSave.Enabled := True;
ButtonSpiritMutinySave.Enabled := True;
ButtonMonSayMsgSave.Enabled := True;
ButtonSellOffSave.Enabled := True;
ButtonChangeUseItemName.Enabled := True;
end;
procedure TfrmFunctionConfig.uModValue;
begin
boModValued := False;
ButtonPasswordLockSave.Enabled := False;
ButtonGeneralSave.Enabled := False;
ButtonSkillSave.Enabled := False;
ButtonUpgradeWeaponSave.Enabled := False;
ButtonMasterSave.Enabled := False;
ButtonMakeMineSave.Enabled := False;
ButtonWinLotterySave.Enabled := False;
ButtonReNewLevelSave.Enabled := False;
ButtonMonUpgradeSave.Enabled := False;
ButtonSpiritMutinySave.Enabled := False;
ButtonMonSayMsgSave.Enabled := False;
ButtonSellOffSave.Enabled := False;
ButtonChangeUseItemName.Enabled := False;
end;
procedure TfrmFunctionConfig.FunctionConfigControlChanging(Sender: TObject;
var AllowChange: Boolean);
begin
if boModValued then begin
if Application.MessageBox('参数设置已经被修改,是否确认不保存修改的设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) = IDYES then begin
uModValue
end else AllowChange := False;
end;
end;
procedure TfrmFunctionConfig.Open;
var
i: Integer;
begin
boOpened := False;
uModValue();
RefGeneral();
CheckBoxHungerSystem.Checked := g_Config.boHungerSystem;
CheckBoxHungerDecHP.Checked := g_Config.boHungerDecHP;
CheckBoxHungerDecPower.Checked := g_Config.boHungerDecPower;
CheckBoxHungerSystemClick(CheckBoxHungerSystem);
CheckBoxEnablePasswordLock.Checked := g_Config.boPasswordLockSystem;
CheckBoxLockGetBackItem.Checked := g_Config.boLockGetBackItemAction;
CheckBoxLockDealItem.Checked := g_Config.boLockDealAction;
CheckBoxLockDropItem.Checked := g_Config.boLockDropAction;
CheckBoxLockWalk.Checked := g_Config.boLockWalkAction;
CheckBoxLockRun.Checked := g_Config.boLockRunAction;
CheckBoxLockHit.Checked := g_Config.boLockHitAction;
CheckBoxLockSpell.Checked := g_Config.boLockSpellAction;
CheckBoxLockSendMsg.Checked := g_Config.boLockSendMsgAction;
CheckBoxLockInObMode.Checked := g_Config.boLockInObModeAction;
CheckBoxLockLogin.Checked := g_Config.boLockHumanLogin;
CheckBoxLockUseItem.Checked := g_Config.boLockUserItemAction;
CheckBoxEnablePasswordLockClick(CheckBoxEnablePasswordLock);
CheckBoxLockLoginClick(CheckBoxLockLogin);
EditErrorPasswordCount.Value := g_Config.nPasswordErrorCountLock;
EditBoneFammName.Text := g_Config.sBoneFamm;
EditBoneFammCount.Value := g_Config.nBoneFammCount;
SpinEditSellOffCount.Value := g_Config.nUserSellOffCount;
SpinEditSellOffTax.Value := g_Config.nUserSellOffTax;
SpinEditMagDelayTime.Value := g_Config.nMagDelayTimeDoubly;
SpinEditMagPower.Value := g_Config.nMagPowerDoubly;
for i := Low(g_Config.BoneFammArray) to High(g_Config.BoneFammArray) do begin
if g_Config.BoneFammArray[i].nHumLevel <= 0 then break;
GridBoneFamm.Cells[0, i + 1] := IntToStr(g_Config.BoneFammArray[i].nHumLevel);
GridBoneFamm.Cells[1, i + 1] := g_Config.BoneFammArray[i].sMonName;
GridBoneFamm.Cells[2, i + 1] := IntToStr(g_Config.BoneFammArray[i].nCount);
GridBoneFamm.Cells[3, i + 1] := IntToStr(g_Config.BoneFammArray[i].nLevel);
end;
EditDogzName.Text := g_Config.sDogz;
EditDogzCount.Value := g_Config.nDogzCount;
for i := Low(g_Config.DogzArray) to High(g_Config.DogzArray) do begin
if g_Config.DogzArray[i].nHumLevel <= 0 then break;
GridDogz.Cells[0, i + 1] := IntToStr(g_Config.DogzArray[i].nHumLevel);
GridDogz.Cells[1, i + 1] := g_Config.DogzArray[i].sMonName;
GridDogz.Cells[2, i + 1] := IntToStr(g_Config.DogzArray[i].nCount);
GridDogz.Cells[3, i + 1] := IntToStr(g_Config.DogzArray[i].nLevel);
end;
RefMagicSkill();
RefUpgradeWeapon();
RefMakeMine();
RefWinLottery();
EditMasterOKLevel.Value := g_Config.nMasterOKLevel;
EditMasterOKCreditPoint.Value := g_Config.nMasterOKCreditPoint;
EditMasterOKBonusPoint.Value := g_Config.nMasterOKBonusPoint;
CheckBoxPullPlayObject.Checked := g_Config.boPullPlayObject;
CheckBoxPullCrossInSafeZone.Checked := g_Config.boPullCrossInSafeZone;
CheckBoxPullCrossInSafeZone.Enabled := g_Config.boPullPlayObject;
CheckBoxPlayObjectReduceMP.Checked := g_Config.boPlayObjectReduceMP;
CheckBoxGroupMbAttackSlave.Checked := g_Config.boGroupMbAttackSlave;
CheckBoxItemName.Checked := g_Config.boChangeUseItemNameByPlayName;
EditItemName.Text := g_Config.sChangeUseItemName;
CheckBoxDedingAllowPK.Checked := g_Config.boDedingAllowPK;
SpinEditSkill39Sec.Value := g_Config.nDedingUseTime;
RefReNewLevelConf();
RefMonUpgrade();
RefSpiritMutiny();
RefMonSayMsg();
RefWeaponMakeLuck();
RefCopyHumConf;
boOpened := True;
FunctionConfigControl.ActivePageIndex := 0;
ShowModal;
end;
procedure TfrmFunctionConfig.FormCreate(Sender: TObject);
begin
GridBoneFamm.Cells[0, 0] := '人物等级';
GridBoneFamm.Cells[1, 0] := '怪物名称';
GridBoneFamm.Cells[2, 0] := '数量';
GridBoneFamm.Cells[3, 0] := '等级';
GridDogz.Cells[0, 0] := '人物等级';
GridDogz.Cells[1, 0] := '怪物名称';
GridDogz.Cells[2, 0] := '数量';
GridDogz.Cells[3, 0] := '等级';
FunctionConfigControl.ActivePageIndex := 0;
MagicPageControl.ActivePageIndex := 0;
{$IF (SoftVersion = VERPRO) or (SoftVersion = VERENT)}
CheckBoxHungerDecPower.Visible := True;
{$ELSE}
CheckBoxHungerDecPower.Visible := False;
{$IFEND}
{$IF SoftVersion = VERDEMO}
Caption := '功能设置[演示版本,所有设置调整有效,但不能保存]'
{$IFEND}
end;
procedure TfrmFunctionConfig.CheckBoxEnablePasswordLockClick(
Sender: TObject);
begin
case CheckBoxEnablePasswordLock.Checked of
True: begin
CheckBoxLockGetBackItem.Enabled := True;
CheckBoxLockLogin.Enabled := True;
end;
False: begin
CheckBoxLockGetBackItem.Checked := False;
CheckBoxLockLogin.Checked := False;
CheckBoxLockGetBackItem.Enabled := False;
CheckBoxLockLogin.Enabled := False;
end;
end;
if not boOpened then Exit;
g_Config.boPasswordLockSystem := CheckBoxEnablePasswordLock.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockGetBackItemClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockGetBackItemAction := CheckBoxLockGetBackItem.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockDealItemClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockDealAction := CheckBoxLockDealItem.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockDropItemClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockDropAction := CheckBoxLockDropItem.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockUseItemClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockUserItemAction := CheckBoxLockUseItem.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockLoginClick(Sender: TObject);
begin
case CheckBoxLockLogin.Checked of //
True: begin
CheckBoxLockWalk.Enabled := True;
CheckBoxLockRun.Enabled := True;
CheckBoxLockHit.Enabled := True;
CheckBoxLockSpell.Enabled := True;
CheckBoxLockInObMode.Enabled := True;
CheckBoxLockSendMsg.Enabled := True;
CheckBoxLockDealItem.Enabled := True;
CheckBoxLockDropItem.Enabled := True;
CheckBoxLockUseItem.Enabled := True;
end;
False: begin
CheckBoxLockWalk.Checked := False;
CheckBoxLockRun.Checked := False;
CheckBoxLockHit.Checked := False;
CheckBoxLockSpell.Checked := False;
CheckBoxLockInObMode.Checked := False;
CheckBoxLockSendMsg.Checked := False;
CheckBoxLockDealItem.Checked := False;
CheckBoxLockDropItem.Checked := False;
CheckBoxLockUseItem.Checked := False;
CheckBoxLockWalk.Enabled := False;
CheckBoxLockRun.Enabled := False;
CheckBoxLockHit.Enabled := False;
CheckBoxLockSpell.Enabled := False;
CheckBoxLockInObMode.Enabled := False;
CheckBoxLockSendMsg.Enabled := False;
CheckBoxLockDealItem.Enabled := False;
CheckBoxLockDropItem.Enabled := False;
CheckBoxLockUseItem.Enabled := False;
end;
end;
if not boOpened then Exit;
g_Config.boLockHumanLogin := CheckBoxLockLogin.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockWalkClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockWalkAction := CheckBoxLockWalk.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockRunClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockRunAction := CheckBoxLockRun.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockHitClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockHitAction := CheckBoxLockHit.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockSpellClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockSpellAction := CheckBoxLockSpell.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockSendMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockSendMsgAction := CheckBoxLockSendMsg.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLockInObModeClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLockInObModeAction := CheckBoxLockInObMode.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditErrorPasswordCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nPasswordErrorCountLock := EditErrorPasswordCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxErrorCountKickClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nPasswordErrorCountLock := EditErrorPasswordCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.ButtonPasswordLockSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'PasswordLockSystem', g_Config.boPasswordLockSystem);
Config.WriteBool('Setup', 'PasswordLockDealAction', g_Config.boLockDealAction);
Config.WriteBool('Setup', 'PasswordLockDropAction', g_Config.boLockDropAction);
Config.WriteBool('Setup', 'PasswordLockGetBackItemAction', g_Config.boLockGetBackItemAction);
Config.WriteBool('Setup', 'PasswordLockWalkAction', g_Config.boLockWalkAction);
Config.WriteBool('Setup', 'PasswordLockRunAction', g_Config.boLockRunAction);
Config.WriteBool('Setup', 'PasswordLockHitAction', g_Config.boLockHitAction);
Config.WriteBool('Setup', 'PasswordLockSpellAction', g_Config.boLockSpellAction);
Config.WriteBool('Setup', 'PasswordLockSendMsgAction', g_Config.boLockSendMsgAction);
Config.WriteBool('Setup', 'PasswordLockInObModeAction', g_Config.boLockInObModeAction);
Config.WriteBool('Setup', 'PasswordLockUserItemAction', g_Config.boLockUserItemAction);
Config.WriteBool('Setup', 'PasswordLockHumanLogin', g_Config.boLockHumanLogin);
Config.WriteInteger('Setup', 'PasswordErrorCountLock', g_Config.nPasswordErrorCountLock);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.RefGeneral();
begin
EditPKFlagNameColor.Value := g_Config.btPKFlagNameColor;
EditPKLevel1NameColor.Value := g_Config.btPKLevel1NameColor;
EditPKLevel2NameColor.Value := g_Config.btPKLevel2NameColor;
EditAllyAndGuildNameColor.Value := g_Config.btAllyAndGuildNameColor;
EditWarGuildNameColor.Value := g_Config.btWarGuildNameColor;
EditInFreePKAreaNameColor.Value := g_Config.btInFreePKAreaNameColor;
end;
procedure TfrmFunctionConfig.CheckBoxHungerSystemClick(Sender: TObject);
begin
if CheckBoxHungerSystem.Checked then begin
CheckBoxHungerDecHP.Enabled := True;
CheckBoxHungerDecPower.Enabled := True;
end else begin
CheckBoxHungerDecHP.Checked := False;
CheckBoxHungerDecPower.Checked := False;
CheckBoxHungerDecHP.Enabled := False;
CheckBoxHungerDecPower.Enabled := False;
end;
if not boOpened then Exit;
g_Config.boHungerSystem := CheckBoxHungerSystem.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxHungerDecHPClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boHungerDecHP := CheckBoxHungerDecHP.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxHungerDecPowerClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boHungerDecPower := CheckBoxHungerDecPower.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.ButtonGeneralSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'HungerSystem', g_Config.boHungerSystem);
Config.WriteBool('Setup', 'HungerDecHP', g_Config.boHungerDecHP);
Config.WriteBool('Setup', 'HungerDecPower', g_Config.boHungerDecPower);
Config.WriteInteger('Setup', 'PKFlagNameColor', g_Config.btPKFlagNameColor);
Config.WriteInteger('Setup', 'AllyAndGuildNameColor', g_Config.btAllyAndGuildNameColor);
Config.WriteInteger('Setup', 'WarGuildNameColor', g_Config.btWarGuildNameColor);
Config.WriteInteger('Setup', 'InFreePKAreaNameColor', g_Config.btInFreePKAreaNameColor);
Config.WriteInteger('Setup', 'PKLevel1NameColor', g_Config.btPKLevel1NameColor);
Config.WriteInteger('Setup', 'PKLevel2NameColor', g_Config.btPKLevel2NameColor);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.EditMagicAttackRageChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagicAttackRage := EditMagicAttackRage.Value;
ModValue();
end;
procedure TfrmFunctionConfig.RefMagicSkill;
begin
EditSwordLongPowerRate.Value := g_Config.nSwordLongPowerRate;
CheckBoxLimitSwordLong.Checked := g_Config.boLimitSwordLong;
EditFireBoomRage.Value := g_Config.nFireBoomRage;
EditSnowWindRange.Value := g_Config.nSnowWindRange;
EditElecBlizzardRange.Value := g_Config.nElecBlizzardRange;
EditMagicAttackRage.Value := g_Config.nMagicAttackRage;
EditAmyOunsulPoint.Value := g_Config.nAmyOunsulPoint;
EditMagTurnUndeadLevel.Value := g_Config.nMagTurnUndeadLevel;
EditMagTammingLevel.Value := g_Config.nMagTammingLevel;
EditMagTammingTargetLevel.Value := g_Config.nMagTammingTargetLevel;
EditMagTammingHPRate.Value := g_Config.nMagTammingHPRate;
EditTammingCount.Value := g_Config.nMagTammingCount;
EditMabMabeHitRandRate.Value := g_Config.nMabMabeHitRandRate;
EditMabMabeHitMinLvLimit.Value := g_Config.nMabMabeHitMinLvLimit;
EditMabMabeHitSucessRate.Value := g_Config.nMabMabeHitSucessRate;
EditMabMabeHitMabeTimeRate.Value := g_Config.nMabMabeHitMabeTimeRate;
CheckBoxFireCrossInSafeZone.Checked := g_Config.boDisableInSafeZoneFireCross;
CheckBoxGroupMbAttackPlayObject.Checked := g_Config.boGroupMbAttackPlayObject;
end;
procedure TfrmFunctionConfig.EditBoneFammCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nBoneFammCount := EditBoneFammCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditDogzCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nDogzCount := EditDogzCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxLimitSwordLongClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boLimitSwordLong := CheckBoxLimitSwordLong.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditSwordLongPowerRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSwordLongPowerRate := EditSwordLongPowerRate.Value;
ModValue()
end;
procedure TfrmFunctionConfig.EditBoneFammNameChange(Sender: TObject);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmFunctionConfig.EditDogzNameChange(Sender: TObject);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmFunctionConfig.EditFireBoomRageChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nFireBoomRage := EditFireBoomRage.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditSnowWindRangeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSnowWindRange := EditSnowWindRange.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditElecBlizzardRangeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nElecBlizzardRange := EditElecBlizzardRange.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMagTurnUndeadLevelChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagTurnUndeadLevel := EditMagTurnUndeadLevel.Value;
ModValue();
end;
procedure TfrmFunctionConfig.GridBoneFammSetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: string);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmFunctionConfig.EditAmyOunsulPointChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nAmyOunsulPoint := EditAmyOunsulPoint.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxFireCrossInSafeZoneClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDisableInSafeZoneFireCross := CheckBoxFireCrossInSafeZone.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxGroupMbAttackPlayObjectClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boGroupMbAttackPlayObject := CheckBoxGroupMbAttackPlayObject.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.ButtonSkillSaveClick(Sender: TObject);
var
i: Integer;
RecallArray: array[0..9] of TRecallMigic;
Rect: TGridRect;
begin
FillChar(RecallArray, SizeOf(RecallArray), #0);
g_Config.sBoneFamm := Trim(EditBoneFammName.Text);
for i := Low(RecallArray) to High(RecallArray) do begin
RecallArray[i].nHumLevel := Str_ToInt(GridBoneFamm.Cells[0, i + 1], -1);
RecallArray[i].sMonName := Trim(GridBoneFamm.Cells[1, i + 1]);
RecallArray[i].nCount := Str_ToInt(GridBoneFamm.Cells[2, i + 1], -1);
RecallArray[i].nLevel := Str_ToInt(GridBoneFamm.Cells[3, i + 1], -1);
if GridBoneFamm.Cells[0, i + 1] = '' then break;
if (RecallArray[i].nHumLevel <= 0) then begin
Application.MessageBox('人物等级设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 0;
Rect.Top := i + 1;
Rect.Right := 0;
Rect.Bottom := i + 1;
GridBoneFamm.Selection := Rect;
Exit;
end;
if UserEngine.GetMonRace(RecallArray[i].sMonName) <= 0 then begin
Application.MessageBox('怪物名称设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 1;
Rect.Top := i + 1;
Rect.Right := 1;
Rect.Bottom := i + 1;
GridBoneFamm.Selection := Rect;
Exit;
end;
if RecallArray[i].nCount <= 0 then begin
Application.MessageBox('召唤数量设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 2;
Rect.Top := i + 1;
Rect.Right := 2;
Rect.Bottom := i + 1;
GridBoneFamm.Selection := Rect;
Exit;
end;
if RecallArray[i].nLevel < 0 then begin
Application.MessageBox('召唤等级设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 3;
Rect.Top := i + 1;
Rect.Right := 3;
Rect.Bottom := i + 1;
GridBoneFamm.Selection := Rect;
Exit;
end;
end;
for i := Low(RecallArray) to High(RecallArray) do begin
RecallArray[i].nHumLevel := Str_ToInt(GridDogz.Cells[0, i + 1], -1);
RecallArray[i].sMonName := Trim(GridDogz.Cells[1, i + 1]);
RecallArray[i].nCount := Str_ToInt(GridDogz.Cells[2, i + 1], -1);
RecallArray[i].nLevel := Str_ToInt(GridDogz.Cells[3, i + 1], -1);
if GridDogz.Cells[0, i + 1] = '' then break;
if (RecallArray[i].nHumLevel <= 0) then begin
Application.MessageBox('人物等级设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 0;
Rect.Top := i + 1;
Rect.Right := 0;
Rect.Bottom := i + 1;
GridDogz.Selection := Rect;
Exit;
end;
if UserEngine.GetMonRace(RecallArray[i].sMonName) <= 0 then begin
Application.MessageBox('怪物名称设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 1;
Rect.Top := i + 1;
Rect.Right := 1;
Rect.Bottom := i + 1;
GridDogz.Selection := Rect;
Exit;
end;
if RecallArray[i].nCount <= 0 then begin
Application.MessageBox('召唤数量设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 2;
Rect.Top := i + 1;
Rect.Right := 2;
Rect.Bottom := i + 1;
GridDogz.Selection := Rect;
Exit;
end;
if RecallArray[i].nLevel < 0 then begin
Application.MessageBox('召唤等级设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
Rect.Left := 3;
Rect.Top := i + 1;
Rect.Right := 3;
Rect.Bottom := i + 1;
GridDogz.Selection := Rect;
Exit;
end;
end;
FillChar(g_Config.BoneFammArray, SizeOf(g_Config.BoneFammArray), #0);
for i := Low(g_Config.BoneFammArray) to High(g_Config.BoneFammArray) do begin
Config.WriteInteger('Setup', 'BoneFammHumLevel' + IntToStr(i), 0);
Config.WriteString('Names', 'BoneFamm' + IntToStr(i), '');
Config.WriteInteger('Setup', 'BoneFammCount' + IntToStr(i), 0);
Config.WriteInteger('Setup', 'BoneFammLevel' + IntToStr(i), 0);
end;
for i := Low(g_Config.BoneFammArray) to High(g_Config.BoneFammArray) do begin
if GridBoneFamm.Cells[0, i + 1] = '' then break;
g_Config.BoneFammArray[i].nHumLevel := Str_ToInt(GridBoneFamm.Cells[0, i + 1], -1);
g_Config.BoneFammArray[i].sMonName := Trim(GridBoneFamm.Cells[1, i + 1]);
g_Config.BoneFammArray[i].nCount := Str_ToInt(GridBoneFamm.Cells[2, i + 1], -1);
g_Config.BoneFammArray[i].nLevel := Str_ToInt(GridBoneFamm.Cells[3, i + 1], -1);
Config.WriteInteger('Setup', 'BoneFammHumLevel' + IntToStr(i), g_Config.BoneFammArray[i].nHumLevel);
Config.WriteString('Names', 'BoneFamm' + IntToStr(i), g_Config.BoneFammArray[i].sMonName);
Config.WriteInteger('Setup', 'BoneFammCount' + IntToStr(i), g_Config.BoneFammArray[i].nCount);
Config.WriteInteger('Setup', 'BoneFammLevel' + IntToStr(i), g_Config.BoneFammArray[i].nLevel);
end;
FillChar(g_Config.DogzArray, SizeOf(g_Config.DogzArray), #0);
for i := Low(g_Config.DogzArray) to High(g_Config.DogzArray) do begin
Config.WriteInteger('Setup', 'DogzHumLevel' + IntToStr(i), 0);
Config.WriteString('Names', 'Dogz' + IntToStr(i), '');
Config.WriteInteger('Setup', 'DogzCount' + IntToStr(i), 0);
Config.WriteInteger('Setup', 'DogzLevel' + IntToStr(i), 0);
end;
for i := Low(g_Config.DogzArray) to High(g_Config.DogzArray) do begin
if GridDogz.Cells[0, i + 1] = '' then break;
g_Config.DogzArray[i].nHumLevel := Str_ToInt(GridDogz.Cells[0, i + 1], -1);
g_Config.DogzArray[i].sMonName := Trim(GridDogz.Cells[1, i + 1]);
g_Config.DogzArray[i].nCount := Str_ToInt(GridDogz.Cells[2, i + 1], -1);
g_Config.DogzArray[i].nLevel := Str_ToInt(GridDogz.Cells[3, i + 1], -1);
Config.WriteInteger('Setup', 'DogzHumLevel' + IntToStr(i), g_Config.DogzArray[i].nHumLevel);
Config.WriteString('Names', 'Dogz' + IntToStr(i), g_Config.DogzArray[i].sMonName);
Config.WriteInteger('Setup', 'DogzCount' + IntToStr(i), g_Config.DogzArray[i].nCount);
Config.WriteInteger('Setup', 'DogzLevel' + IntToStr(i), g_Config.DogzArray[i].nLevel);
end;
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'LimitSwordLong', g_Config.boLimitSwordLong);
Config.WriteInteger('Setup', 'SwordLongPowerRate', g_Config.nSwordLongPowerRate);
Config.WriteInteger('Setup', 'BoneFammCount', g_Config.nBoneFammCount);
Config.WriteString('Names', 'BoneFamm', g_Config.sBoneFamm);
Config.WriteInteger('Setup', 'DogzCount', g_Config.nDogzCount);
Config.WriteString('Names', 'Dogz', g_Config.sDogz);
Config.WriteInteger('Setup', 'FireBoomRage', g_Config.nFireBoomRage);
Config.WriteInteger('Setup', 'SnowWindRange', g_Config.nSnowWindRange);
Config.WriteInteger('Setup', 'ElecBlizzardRange', g_Config.nElecBlizzardRange);
Config.WriteInteger('Setup', 'AmyOunsulPoint', g_Config.nAmyOunsulPoint);
Config.WriteInteger('Setup', 'MagicAttackRage', g_Config.nMagicAttackRage);
Config.WriteInteger('Setup', 'MagTurnUndeadLevel', g_Config.nMagTurnUndeadLevel);
Config.WriteInteger('Setup', 'MagTammingLevel', g_Config.nMagTammingLevel);
Config.WriteInteger('Setup', 'MagTammingTargetLevel', g_Config.nMagTammingTargetLevel);
Config.WriteInteger('Setup', 'MagTammingTargetHPRate', g_Config.nMagTammingHPRate);
Config.WriteInteger('Setup', 'MagTammingCount', g_Config.nMagTammingCount);
Config.WriteInteger('Setup', 'MabMabeHitRandRate', g_Config.nMabMabeHitRandRate);
Config.WriteInteger('Setup', 'MabMabeHitMinLvLimit', g_Config.nMabMabeHitMinLvLimit);
Config.WriteInteger('Setup', 'MabMabeHitSucessRate', g_Config.nMabMabeHitSucessRate);
Config.WriteInteger('Setup', 'MabMabeHitMabeTimeRate', g_Config.nMabMabeHitMabeTimeRate);
Config.WriteBool('Setup', 'DisableInSafeZoneFireCross', g_Config.boDisableInSafeZoneFireCross);
Config.WriteBool('Setup', 'GroupMbAttackPlayObject', g_Config.boGroupMbAttackPlayObject);
Config.WriteBool('Setup', 'PullPlayObject', g_Config.boPullPlayObject);
Config.WriteBool('Setup', 'PullCrossInSafeZone', g_Config.boPullCrossInSafeZone);
Config.WriteBool('Setup', 'GroupMbAttackSlave', g_Config.boGroupMbAttackSlave);
Config.WriteBool('Setup', 'DamageMP', g_Config.boPlayObjectReduceMP);
Config.WriteInteger('Setup', 'MagicValidTimeRate', g_Config.nMagDelayTimeDoubly);
Config.WriteInteger('Setup', 'MagicPowerRate', g_Config.nMagPowerDoubly);
Config.WriteInteger('Setup', 'MagicDedingUseTime', g_Config.nDedingUseTime);
Config.WriteBool('Setup', 'DedingAllowPK', g_Config.boDedingAllowPK);
{分身术}
if g_Config.sCopyHumName = '' then begin
Application.MessageBox('分身人物名称不能为空!!!', '错误信息', MB_OK + MB_ICONERROR);
Exit;
end;
Config.WriteInteger('Setup', 'CopyHumanBagCount', g_Config.nCopyHumanBagCount);
Config.WriteInteger('Setup', 'AllowCopyHumanCount', g_Config.nAllowCopyHumanCount);
Config.WriteBool('Setup', 'AddMasterName', g_Config.boAddMasterName);
Config.WriteString('Setup', 'CopyHumName', g_Config.sCopyHumName);
Config.WriteInteger('Setup', 'CopyHumAddHPRate', g_Config.nCopyHumAddHPRate);
Config.WriteInteger('Setup', 'CopyHumAddMPRate', g_Config.nCopyHumAddMPRate);
Config.WriteString('Setup', 'CopyHumBagItems1', g_Config.sCopyHumBagItems1);
Config.WriteString('Setup', 'CopyHumBagItems2', g_Config.sCopyHumBagItems2);
Config.WriteString('Setup', 'CopyHumBagItems3', g_Config.sCopyHumBagItems3);
Config.WriteBool('Setup', 'AllowGuardAttack', g_Config.boAllowGuardAttack);
Config.WriteInteger('Setup', 'WarrorAttackTime', g_Config.dwWarrorAttackTime);
Config.WriteInteger('Setup', 'WizardAttackTime', g_Config.dwWizardAttackTime);
Config.WriteInteger('Setup', 'TaoistAttackTime', g_Config.dwTaoistAttackTime);
Config.WriteBool('Setup', 'AllowReCallMobOtherHum', g_Config.boAllowReCallMobOtherHum);
Config.WriteBool('Setup', 'NeedLevelHighTarget', g_Config.boNeedLevelHighTarget);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.RefUpgradeWeapon();
begin
ScrollBarUpgradeWeaponDCRate.Position := g_Config.nUpgradeWeaponDCRate;
ScrollBarUpgradeWeaponDCTwoPointRate.Position := g_Config.nUpgradeWeaponDCTwoPointRate;
ScrollBarUpgradeWeaponDCThreePointRate.Position := g_Config.nUpgradeWeaponDCThreePointRate;
ScrollBarUpgradeWeaponMCRate.Position := g_Config.nUpgradeWeaponMCRate;
ScrollBarUpgradeWeaponMCTwoPointRate.Position := g_Config.nUpgradeWeaponMCTwoPointRate;
ScrollBarUpgradeWeaponMCThreePointRate.Position := g_Config.nUpgradeWeaponMCThreePointRate;
ScrollBarUpgradeWeaponSCRate.Position := g_Config.nUpgradeWeaponSCRate;
ScrollBarUpgradeWeaponSCTwoPointRate.Position := g_Config.nUpgradeWeaponSCTwoPointRate;
ScrollBarUpgradeWeaponSCThreePointRate.Position := g_Config.nUpgradeWeaponSCThreePointRate;
EditUpgradeWeaponMaxPoint.Value := g_Config.nUpgradeWeaponMaxPoint;
EditUpgradeWeaponPrice.Value := g_Config.nUpgradeWeaponPrice;
EditUPgradeWeaponGetBackTime.Value := g_Config.dwUPgradeWeaponGetBackTime div 1000;
EditClearExpireUpgradeWeaponDays.Value := g_Config.nClearExpireUpgradeWeaponDays;
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponDCRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponDCRate.Position;
EditUpgradeWeaponDCRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponDCRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponDCTwoPointRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponDCTwoPointRate.Position;
EditUpgradeWeaponDCTwoPointRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponDCTwoPointRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponDCThreePointRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponDCThreePointRate.Position;
EditUpgradeWeaponDCThreePointRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponDCThreePointRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponSCRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponSCRate.Position;
EditUpgradeWeaponSCRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponSCRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponSCTwoPointRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponSCTwoPointRate.Position;
EditUpgradeWeaponSCTwoPointRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponSCTwoPointRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponSCThreePointRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponSCThreePointRate.Position;
EditUpgradeWeaponSCThreePointRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponSCThreePointRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponMCRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponMCRate.Position;
EditUpgradeWeaponMCRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponMCRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponMCTwoPointRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponMCTwoPointRate.Position;
EditUpgradeWeaponMCTwoPointRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponMCTwoPointRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarUpgradeWeaponMCThreePointRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarUpgradeWeaponMCThreePointRate.Position;
EditUpgradeWeaponMCThreePointRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nUpgradeWeaponMCThreePointRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.EditUpgradeWeaponMaxPointChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nUpgradeWeaponMaxPoint := EditUpgradeWeaponMaxPoint.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditUpgradeWeaponPriceChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nUpgradeWeaponPrice := EditUpgradeWeaponPrice.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditUPgradeWeaponGetBackTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwUPgradeWeaponGetBackTime := EditUPgradeWeaponGetBackTime.Value * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.EditClearExpireUpgradeWeaponDaysChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nClearExpireUpgradeWeaponDays := EditClearExpireUpgradeWeaponDays.Value;
ModValue();
end;
procedure TfrmFunctionConfig.ButtonUpgradeWeaponSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'UpgradeWeaponMaxPoint', g_Config.nUpgradeWeaponMaxPoint);
Config.WriteInteger('Setup', 'UpgradeWeaponPrice', g_Config.nUpgradeWeaponPrice);
Config.WriteInteger('Setup', 'ClearExpireUpgradeWeaponDays', g_Config.nClearExpireUpgradeWeaponDays);
Config.WriteInteger('Setup', 'UPgradeWeaponGetBackTime', g_Config.dwUPgradeWeaponGetBackTime);
Config.WriteInteger('Setup', 'UpgradeWeaponDCRate', g_Config.nUpgradeWeaponDCRate);
Config.WriteInteger('Setup', 'UpgradeWeaponDCTwoPointRate', g_Config.nUpgradeWeaponDCTwoPointRate);
Config.WriteInteger('Setup', 'UpgradeWeaponDCThreePointRate', g_Config.nUpgradeWeaponDCThreePointRate);
Config.WriteInteger('Setup', 'UpgradeWeaponMCRate', g_Config.nUpgradeWeaponMCRate);
Config.WriteInteger('Setup', 'UpgradeWeaponMCTwoPointRate', g_Config.nUpgradeWeaponMCTwoPointRate);
Config.WriteInteger('Setup', 'UpgradeWeaponMCThreePointRate', g_Config.nUpgradeWeaponMCThreePointRate);
Config.WriteInteger('Setup', 'UpgradeWeaponSCRate', g_Config.nUpgradeWeaponSCRate);
Config.WriteInteger('Setup', 'UpgradeWeaponSCTwoPointRate', g_Config.nUpgradeWeaponSCTwoPointRate);
Config.WriteInteger('Setup', 'UpgradeWeaponSCThreePointRate', g_Config.nUpgradeWeaponSCThreePointRate);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.ButtonUpgradeWeaponDefaulfClick(
Sender: TObject);
begin
if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
Exit;
end;
g_Config.nUpgradeWeaponMaxPoint := 20;
g_Config.nUpgradeWeaponPrice := 10000;
g_Config.nClearExpireUpgradeWeaponDays := 8;
g_Config.dwUPgradeWeaponGetBackTime := 60 * 60 * 1000;
g_Config.nUpgradeWeaponDCRate := 100;
g_Config.nUpgradeWeaponDCTwoPointRate := 30;
g_Config.nUpgradeWeaponDCThreePointRate := 200;
g_Config.nUpgradeWeaponMCRate := 100;
g_Config.nUpgradeWeaponMCTwoPointRate := 30;
g_Config.nUpgradeWeaponMCThreePointRate := 200;
g_Config.nUpgradeWeaponSCRate := 100;
g_Config.nUpgradeWeaponSCTwoPointRate := 30;
g_Config.nUpgradeWeaponSCThreePointRate := 200;
RefUpgradeWeapon();
end;
procedure TfrmFunctionConfig.EditMasterOKLevelChange(Sender: TObject);
begin
if EditMasterOKLevel.Text = '' then begin
EditMasterOKLevel.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nMasterOKLevel := EditMasterOKLevel.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMasterOKCreditPointChange(
Sender: TObject);
begin
if EditMasterOKCreditPoint.Text = '' then begin
EditMasterOKCreditPoint.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nMasterOKCreditPoint := EditMasterOKCreditPoint.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMasterOKBonusPointChange(Sender: TObject);
begin
if EditMasterOKBonusPoint.Text = '' then begin
EditMasterOKBonusPoint.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nMasterOKBonusPoint := EditMasterOKBonusPoint.Value;
ModValue();
end;
procedure TfrmFunctionConfig.ButtonMasterSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'MasterOKLevel', g_Config.nMasterOKLevel);
Config.WriteInteger('Setup', 'MasterOKCreditPoint', g_Config.nMasterOKCreditPoint);
Config.WriteInteger('Setup', 'MasterOKBonusPoint', g_Config.nMasterOKBonusPoint);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.ButtonMakeMineSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'MakeMineHitRate', g_Config.nMakeMineHitRate);
Config.WriteInteger('Setup', 'MakeMineRate', g_Config.nMakeMineRate);
Config.WriteInteger('Setup', 'StoneTypeRate', g_Config.nStoneTypeRate);
Config.WriteInteger('Setup', 'StoneTypeRateMin', g_Config.nStoneTypeRateMin);
Config.WriteInteger('Setup', 'GoldStoneMin', g_Config.nGoldStoneMin);
Config.WriteInteger('Setup', 'GoldStoneMax', g_Config.nGoldStoneMax);
Config.WriteInteger('Setup', 'SilverStoneMin', g_Config.nSilverStoneMin);
Config.WriteInteger('Setup', 'SilverStoneMax', g_Config.nSilverStoneMax);
Config.WriteInteger('Setup', 'SteelStoneMin', g_Config.nSteelStoneMin);
Config.WriteInteger('Setup', 'SteelStoneMax', g_Config.nSteelStoneMax);
Config.WriteInteger('Setup', 'BlackStoneMin', g_Config.nBlackStoneMin);
Config.WriteInteger('Setup', 'BlackStoneMax', g_Config.nBlackStoneMax);
Config.WriteInteger('Setup', 'StoneMinDura', g_Config.nStoneMinDura);
Config.WriteInteger('Setup', 'StoneGeneralDuraRate', g_Config.nStoneGeneralDuraRate);
Config.WriteInteger('Setup', 'StoneAddDuraRate', g_Config.nStoneAddDuraRate);
Config.WriteInteger('Setup', 'StoneAddDuraMax', g_Config.nStoneAddDuraMax);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.ButtonMakeMineDefaultClick(Sender: TObject);
begin
if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
Exit;
end;
g_Config.nMakeMineHitRate := 4;
g_Config.nMakeMineRate := 12;
g_Config.nStoneTypeRate := 120;
g_Config.nStoneTypeRateMin := 56;
g_Config.nGoldStoneMin := 1;
g_Config.nGoldStoneMax := 2;
g_Config.nSilverStoneMin := 3;
g_Config.nSilverStoneMax := 20;
g_Config.nSteelStoneMin := 21;
g_Config.nSteelStoneMax := 45;
g_Config.nBlackStoneMin := 46;
g_Config.nBlackStoneMax := 56;
g_Config.nStoneMinDura := 3000;
g_Config.nStoneGeneralDuraRate := 13000;
g_Config.nStoneAddDuraRate := 20;
g_Config.nStoneAddDuraMax := 10000;
RefMakeMine();
end;
procedure TfrmFunctionConfig.RefMakeMine();
begin
ScrollBarMakeMineHitRate.Position := g_Config.nMakeMineHitRate;
ScrollBarMakeMineHitRate.Min := 0;
ScrollBarMakeMineHitRate.Max := 10;
ScrollBarMakeMineRate.Position := g_Config.nMakeMineRate;
ScrollBarMakeMineRate.Min := 0;
ScrollBarMakeMineRate.Max := 50;
ScrollBarStoneTypeRate.Position := g_Config.nStoneTypeRate;
ScrollBarStoneTypeRate.Min := g_Config.nStoneTypeRateMin;
ScrollBarStoneTypeRate.Max := 500;
ScrollBarGoldStoneMax.Min := 1;
ScrollBarGoldStoneMax.Max := g_Config.nSilverStoneMax;
ScrollBarSilverStoneMax.Min := g_Config.nGoldStoneMax;
ScrollBarSilverStoneMax.Max := g_Config.nSteelStoneMax;
ScrollBarSteelStoneMax.Min := g_Config.nSilverStoneMax;
ScrollBarSteelStoneMax.Max := g_Config.nBlackStoneMax;
ScrollBarBlackStoneMax.Min := g_Config.nSteelStoneMax;
ScrollBarBlackStoneMax.Max := g_Config.nStoneTypeRate;
ScrollBarGoldStoneMax.Position := g_Config.nGoldStoneMax;
ScrollBarSilverStoneMax.Position := g_Config.nSilverStoneMax;
ScrollBarSteelStoneMax.Position := g_Config.nSteelStoneMax;
ScrollBarBlackStoneMax.Position := g_Config.nBlackStoneMax;
EditStoneMinDura.Value := g_Config.nStoneMinDura div 1000;
EditStoneGeneralDuraRate.Value := g_Config.nStoneGeneralDuraRate div 1000;
EditStoneAddDuraRate.Value := g_Config.nStoneAddDuraRate;
EditStoneAddDuraMax.Value := g_Config.nStoneAddDuraMax div 1000;
end;
procedure TfrmFunctionConfig.ScrollBarMakeMineHitRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarMakeMineHitRate.Position;
EditMakeMineHitRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nMakeMineHitRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarMakeMineRateChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarMakeMineRate.Position;
EditMakeMineRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nMakeMineRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarStoneTypeRateChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarStoneTypeRate.Position;
EditStoneTypeRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
ScrollBarBlackStoneMax.Max := nPostion;
g_Config.nStoneTypeRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarGoldStoneMaxChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarGoldStoneMax.Position;
EditGoldStoneMax.Text := IntToStr(g_Config.nGoldStoneMin) + '-' + IntToStr(g_Config.nGoldStoneMax);
if not boOpened then Exit;
g_Config.nSilverStoneMin := nPostion + 1;
ScrollBarSilverStoneMax.Min := nPostion + 1;
g_Config.nGoldStoneMax := nPostion;
EditSilverStoneMax.Text := IntToStr(g_Config.nSilverStoneMin) + '-' + IntToStr(g_Config.nSilverStoneMax);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarSilverStoneMaxChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarSilverStoneMax.Position;
EditSilverStoneMax.Text := IntToStr(g_Config.nSilverStoneMin) + '-' + IntToStr(g_Config.nSilverStoneMax);
if not boOpened then Exit;
ScrollBarGoldStoneMax.Max := nPostion - 1;
g_Config.nSteelStoneMin := nPostion + 1;
ScrollBarSteelStoneMax.Min := nPostion + 1;
g_Config.nSilverStoneMax := nPostion;
EditGoldStoneMax.Text := IntToStr(g_Config.nGoldStoneMin) + '-' + IntToStr(g_Config.nGoldStoneMax);
EditSteelStoneMax.Text := IntToStr(g_Config.nSteelStoneMin) + '-' + IntToStr(g_Config.nSteelStoneMax);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarSteelStoneMaxChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarSteelStoneMax.Position;
EditSteelStoneMax.Text := IntToStr(g_Config.nSteelStoneMin) + '-' + IntToStr(g_Config.nSteelStoneMax);
if not boOpened then Exit;
ScrollBarSilverStoneMax.Max := nPostion - 1;
g_Config.nBlackStoneMin := nPostion + 1;
ScrollBarBlackStoneMax.Min := nPostion + 1;
g_Config.nSteelStoneMax := nPostion;
EditSilverStoneMax.Text := IntToStr(g_Config.nSilverStoneMin) + '-' + IntToStr(g_Config.nSilverStoneMax);
EditBlackStoneMax.Text := IntToStr(g_Config.nBlackStoneMin) + '-' + IntToStr(g_Config.nBlackStoneMax);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarBlackStoneMaxChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarBlackStoneMax.Position;
EditBlackStoneMax.Text := IntToStr(g_Config.nBlackStoneMin) + '-' + IntToStr(g_Config.nBlackStoneMax);
if not boOpened then Exit;
ScrollBarSteelStoneMax.Max := nPostion - 1;
ScrollBarStoneTypeRate.Min := nPostion;
g_Config.nBlackStoneMax := nPostion;
EditSteelStoneMax.Text := IntToStr(g_Config.nSteelStoneMin) + '-' + IntToStr(g_Config.nSteelStoneMax);
ModValue();
end;
procedure TfrmFunctionConfig.EditStoneMinDuraChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nStoneMinDura := EditStoneMinDura.Value * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.EditStoneGeneralDuraRateChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nStoneGeneralDuraRate := EditStoneGeneralDuraRate.Value * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.EditStoneAddDuraRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nStoneAddDuraRate := EditStoneAddDuraRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditStoneAddDuraMaxChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nStoneAddDuraMax := EditStoneAddDuraMax.Value * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.RefWinLottery;
begin
ScrollBarWinLotteryRate.Max := 100000;
ScrollBarWinLotteryRate.Position := g_Config.nWinLotteryRate;
ScrollBarWinLottery1Max.Max := g_Config.nWinLotteryRate;
ScrollBarWinLottery1Max.Min := g_Config.nWinLottery1Min;
ScrollBarWinLottery2Max.Max := g_Config.nWinLottery1Max;
ScrollBarWinLottery2Max.Min := g_Config.nWinLottery2Min;
ScrollBarWinLottery3Max.Max := g_Config.nWinLottery2Max;
ScrollBarWinLottery3Max.Min := g_Config.nWinLottery3Min;
ScrollBarWinLottery4Max.Max := g_Config.nWinLottery3Max;
ScrollBarWinLottery4Max.Min := g_Config.nWinLottery4Min;
ScrollBarWinLottery5Max.Max := g_Config.nWinLottery4Max;
ScrollBarWinLottery5Max.Min := g_Config.nWinLottery5Min;
ScrollBarWinLottery6Max.Max := g_Config.nWinLottery5Max;
ScrollBarWinLottery6Max.Min := g_Config.nWinLottery6Min;
ScrollBarWinLotteryRate.Min := g_Config.nWinLottery1Max;
ScrollBarWinLottery1Max.Position := g_Config.nWinLottery1Max;
ScrollBarWinLottery2Max.Position := g_Config.nWinLottery2Max;
ScrollBarWinLottery3Max.Position := g_Config.nWinLottery3Max;
ScrollBarWinLottery4Max.Position := g_Config.nWinLottery4Max;
ScrollBarWinLottery5Max.Position := g_Config.nWinLottery5Max;
ScrollBarWinLottery6Max.Position := g_Config.nWinLottery6Max;
EditWinLottery1Gold.Value := g_Config.nWinLottery1Gold;
EditWinLottery2Gold.Value := g_Config.nWinLottery2Gold;
EditWinLottery3Gold.Value := g_Config.nWinLottery3Gold;
EditWinLottery4Gold.Value := g_Config.nWinLottery4Gold;
EditWinLottery5Gold.Value := g_Config.nWinLottery5Gold;
EditWinLottery6Gold.Value := g_Config.nWinLottery6Gold;
end;
procedure TfrmFunctionConfig.ButtonWinLotterySaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'WinLottery1Gold', g_Config.nWinLottery1Gold);
Config.WriteInteger('Setup', 'WinLottery2Gold', g_Config.nWinLottery2Gold);
Config.WriteInteger('Setup', 'WinLottery3Gold', g_Config.nWinLottery3Gold);
Config.WriteInteger('Setup', 'WinLottery4Gold', g_Config.nWinLottery4Gold);
Config.WriteInteger('Setup', 'WinLottery5Gold', g_Config.nWinLottery5Gold);
Config.WriteInteger('Setup', 'WinLottery6Gold', g_Config.nWinLottery6Gold);
Config.WriteInteger('Setup', 'WinLottery1Min', g_Config.nWinLottery1Min);
Config.WriteInteger('Setup', 'WinLottery1Max', g_Config.nWinLottery1Max);
Config.WriteInteger('Setup', 'WinLottery2Min', g_Config.nWinLottery2Min);
Config.WriteInteger('Setup', 'WinLottery2Max', g_Config.nWinLottery2Max);
Config.WriteInteger('Setup', 'WinLottery3Min', g_Config.nWinLottery3Min);
Config.WriteInteger('Setup', 'WinLottery3Max', g_Config.nWinLottery3Max);
Config.WriteInteger('Setup', 'WinLottery4Min', g_Config.nWinLottery4Min);
Config.WriteInteger('Setup', 'WinLottery4Max', g_Config.nWinLottery4Max);
Config.WriteInteger('Setup', 'WinLottery5Min', g_Config.nWinLottery5Min);
Config.WriteInteger('Setup', 'WinLottery5Max', g_Config.nWinLottery5Max);
Config.WriteInteger('Setup', 'WinLottery6Min', g_Config.nWinLottery6Min);
Config.WriteInteger('Setup', 'WinLottery6Max', g_Config.nWinLottery6Max);
Config.WriteInteger('Setup', 'WinLotteryRate', g_Config.nWinLotteryRate);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.ButtonWinLotteryDefaultClick(Sender: TObject);
begin
if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
Exit;
end;
g_Config.nWinLottery1Gold := 1000000;
g_Config.nWinLottery2Gold := 200000;
g_Config.nWinLottery3Gold := 100000;
g_Config.nWinLottery4Gold := 10000;
g_Config.nWinLottery5Gold := 1000;
g_Config.nWinLottery6Gold := 500;
g_Config.nWinLottery6Min := 1;
g_Config.nWinLottery6Max := 4999;
g_Config.nWinLottery5Min := 14000;
g_Config.nWinLottery5Max := 15999;
g_Config.nWinLottery4Min := 16000;
g_Config.nWinLottery4Max := 16149;
g_Config.nWinLottery3Min := 16150;
g_Config.nWinLottery3Max := 16169;
g_Config.nWinLottery2Min := 16170;
g_Config.nWinLottery2Max := 16179;
g_Config.nWinLottery1Min := 16180;
g_Config.nWinLottery1Max := 16185;
g_Config.nWinLotteryRate := 30000;
RefWinLottery();
end;
procedure TfrmFunctionConfig.EditWinLottery1GoldChange(Sender: TObject);
begin
if EditWinLottery1Gold.Text = '' then begin
EditWinLottery1Gold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nWinLottery1Gold := EditWinLottery1Gold.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditWinLottery2GoldChange(Sender: TObject);
begin
if EditWinLottery2Gold.Text = '' then begin
EditWinLottery2Gold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nWinLottery2Gold := EditWinLottery2Gold.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditWinLottery3GoldChange(Sender: TObject);
begin
if EditWinLottery3Gold.Text = '' then begin
EditWinLottery3Gold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nWinLottery3Gold := EditWinLottery3Gold.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditWinLottery4GoldChange(Sender: TObject);
begin
if EditWinLottery4Gold.Text = '' then begin
EditWinLottery4Gold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nWinLottery4Gold := EditWinLottery4Gold.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditWinLottery5GoldChange(Sender: TObject);
begin
if EditWinLottery5Gold.Text = '' then begin
EditWinLottery5Gold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nWinLottery5Gold := EditWinLottery5Gold.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditWinLottery6GoldChange(Sender: TObject);
begin
if EditWinLottery6Gold.Text = '' then begin
EditWinLottery6Gold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nWinLottery6Gold := EditWinLottery6Gold.Value;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLottery1MaxChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLottery1Max.Position;
EditWinLottery1Max.Text := IntToStr(g_Config.nWinLottery1Min) + '-' + IntToStr(g_Config.nWinLottery1Max);
if not boOpened then Exit;
g_Config.nWinLottery1Max := nPostion;
ScrollBarWinLottery2Max.Max := nPostion - 1;
ScrollBarWinLotteryRate.Min := nPostion;
EditWinLottery1Max.Text := IntToStr(g_Config.nWinLottery1Min) + '-' + IntToStr(g_Config.nWinLottery1Max);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLottery2MaxChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLottery2Max.Position;
EditWinLottery2Max.Text := IntToStr(g_Config.nWinLottery2Min) + '-' + IntToStr(g_Config.nWinLottery2Max);
if not boOpened then Exit;
g_Config.nWinLottery1Min := nPostion + 1;
ScrollBarWinLottery1Max.Min := nPostion + 1;
g_Config.nWinLottery2Max := nPostion;
EditWinLottery2Max.Text := IntToStr(g_Config.nWinLottery2Min) + '-' + IntToStr(g_Config.nWinLottery2Max);
EditWinLottery1Max.Text := IntToStr(g_Config.nWinLottery1Min) + '-' + IntToStr(g_Config.nWinLottery1Max);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLottery3MaxChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLottery3Max.Position;
EditWinLottery3Max.Text := IntToStr(g_Config.nWinLottery3Min) + '-' + IntToStr(g_Config.nWinLottery3Max);
if not boOpened then Exit;
g_Config.nWinLottery2Min := nPostion + 1;
ScrollBarWinLottery2Max.Min := nPostion + 1;
g_Config.nWinLottery3Max := nPostion;
EditWinLottery3Max.Text := IntToStr(g_Config.nWinLottery3Min) + '-' + IntToStr(g_Config.nWinLottery3Max);
EditWinLottery2Max.Text := IntToStr(g_Config.nWinLottery2Min) + '-' + IntToStr(g_Config.nWinLottery2Max);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLottery4MaxChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLottery4Max.Position;
EditWinLottery4Max.Text := IntToStr(g_Config.nWinLottery4Min) + '-' + IntToStr(g_Config.nWinLottery4Max);
if not boOpened then Exit;
g_Config.nWinLottery3Min := nPostion + 1;
ScrollBarWinLottery3Max.Min := nPostion + 1;
g_Config.nWinLottery4Max := nPostion;
EditWinLottery4Max.Text := IntToStr(g_Config.nWinLottery4Min) + '-' + IntToStr(g_Config.nWinLottery4Max);
EditWinLottery3Max.Text := IntToStr(g_Config.nWinLottery3Min) + '-' + IntToStr(g_Config.nWinLottery3Max);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLottery5MaxChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLottery5Max.Position;
EditWinLottery5Max.Text := IntToStr(g_Config.nWinLottery5Min) + '-' + IntToStr(g_Config.nWinLottery5Max);
if not boOpened then Exit;
g_Config.nWinLottery4Min := nPostion + 1;
ScrollBarWinLottery4Max.Min := nPostion + 1;
g_Config.nWinLottery5Max := nPostion;
EditWinLottery5Max.Text := IntToStr(g_Config.nWinLottery5Min) + '-' + IntToStr(g_Config.nWinLottery5Max);
EditWinLottery4Max.Text := IntToStr(g_Config.nWinLottery4Min) + '-' + IntToStr(g_Config.nWinLottery4Max);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLottery6MaxChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLottery6Max.Position;
EditWinLottery6Max.Text := IntToStr(g_Config.nWinLottery6Min) + '-' + IntToStr(g_Config.nWinLottery6Max);
if not boOpened then Exit;
g_Config.nWinLottery5Min := nPostion + 1;
ScrollBarWinLottery5Max.Min := nPostion + 1;
g_Config.nWinLottery6Max := nPostion;
EditWinLottery6Max.Text := IntToStr(g_Config.nWinLottery6Min) + '-' + IntToStr(g_Config.nWinLottery6Max);
EditWinLottery5Max.Text := IntToStr(g_Config.nWinLottery5Min) + '-' + IntToStr(g_Config.nWinLottery5Max);
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWinLotteryRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarWinLotteryRate.Position;
EditWinLotteryRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
ScrollBarWinLottery1Max.Max := nPostion;
g_Config.nWinLotteryRate := nPostion;
ModValue();
end;
procedure TfrmFunctionConfig.RefReNewLevelConf();
begin
EditReNewNameColor1.Value := g_Config.ReNewNameColor[0];
EditReNewNameColor2.Value := g_Config.ReNewNameColor[1];
EditReNewNameColor3.Value := g_Config.ReNewNameColor[2];
EditReNewNameColor4.Value := g_Config.ReNewNameColor[3];
EditReNewNameColor5.Value := g_Config.ReNewNameColor[4];
EditReNewNameColor6.Value := g_Config.ReNewNameColor[5];
EditReNewNameColor7.Value := g_Config.ReNewNameColor[6];
EditReNewNameColor8.Value := g_Config.ReNewNameColor[7];
EditReNewNameColor9.Value := g_Config.ReNewNameColor[8];
EditReNewNameColor10.Value := g_Config.ReNewNameColor[9];
EditReNewNameColorTime.Value := g_Config.dwReNewNameColorTime div 1000;
CheckBoxReNewChangeColor.Checked := g_Config.boReNewChangeColor;
CheckBoxReNewLevelClearExp.Checked := g_Config.boReNewLevelClearExp;
end;
procedure TfrmFunctionConfig.ButtonReNewLevelSaveClick(Sender: TObject);
{$IF SoftVersion <> VERDEMO}
var
i: Integer;
{$IFEND}
begin
{$IF SoftVersion <> VERDEMO}
for i := Low(g_Config.ReNewNameColor) to High(g_Config.ReNewNameColor) do begin
Config.WriteInteger('Setup', 'ReNewNameColor' + IntToStr(i), g_Config.ReNewNameColor[i]);
end;
Config.WriteInteger('Setup', 'ReNewNameColorTime', g_Config.dwReNewNameColorTime);
Config.WriteBool('Setup', 'ReNewChangeColor', g_Config.boReNewChangeColor);
Config.WriteBool('Setup', 'ReNewLevelClearExp', g_Config.boReNewLevelClearExp);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor1Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor1.Value;
LabelReNewNameColor1.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[0] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor2Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor2.Value;
LabelReNewNameColor2.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[1] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor3Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor3.Value;
LabelReNewNameColor3.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[2] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor4Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor4.Value;
LabelReNewNameColor4.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[3] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor5Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor5.Value;
LabelReNewNameColor5.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[4] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor6Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor6.Value;
LabelReNewNameColor6.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[5] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor7Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor7.Value;
LabelReNewNameColor7.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[6] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor8Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor8.Value;
LabelReNewNameColor8.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[7] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor9Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor9.Value;
LabelReNewNameColor9.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[8] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColor10Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditReNewNameColor10.Value;
LabelReNewNameColor10.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.ReNewNameColor[9] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditReNewNameColorTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwReNewNameColorTime := EditReNewNameColorTime.Value * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.RefMonUpgrade();
begin
EditMonUpgradeColor1.Value := g_Config.SlaveColor[0];
EditMonUpgradeColor2.Value := g_Config.SlaveColor[1];
EditMonUpgradeColor3.Value := g_Config.SlaveColor[2];
EditMonUpgradeColor4.Value := g_Config.SlaveColor[3];
EditMonUpgradeColor5.Value := g_Config.SlaveColor[4];
EditMonUpgradeColor6.Value := g_Config.SlaveColor[5];
EditMonUpgradeColor7.Value := g_Config.SlaveColor[6];
EditMonUpgradeColor8.Value := g_Config.SlaveColor[7];
EditMonUpgradeColor9.Value := g_Config.SlaveColor[8];
EditMonUpgradeKillCount1.Value := g_Config.MonUpLvNeedKillCount[0];
EditMonUpgradeKillCount2.Value := g_Config.MonUpLvNeedKillCount[1];
EditMonUpgradeKillCount3.Value := g_Config.MonUpLvNeedKillCount[2];
EditMonUpgradeKillCount4.Value := g_Config.MonUpLvNeedKillCount[3];
EditMonUpgradeKillCount5.Value := g_Config.MonUpLvNeedKillCount[4];
EditMonUpgradeKillCount6.Value := g_Config.MonUpLvNeedKillCount[5];
EditMonUpgradeKillCount7.Value := g_Config.MonUpLvNeedKillCount[6];
EditMonUpLvNeedKillBase.Value := g_Config.nMonUpLvNeedKillBase;
EditMonUpLvRate.Value := g_Config.nMonUpLvRate;
CheckBoxMasterDieMutiny.Checked := g_Config.boMasterDieMutiny;
EditMasterDieMutinyRate.Value := g_Config.nMasterDieMutinyRate;
EditMasterDieMutinyPower.Value := g_Config.nMasterDieMutinyPower;
EditMasterDieMutinySpeed.Value := g_Config.nMasterDieMutinySpeed;
CheckBoxMasterDieMutinyClick(CheckBoxMasterDieMutiny);
CheckBoxBBMonAutoChangeColor.Checked := g_Config.boBBMonAutoChangeColor;
EditBBMonAutoChangeColorTime.Value := g_Config.dwBBMonAutoChangeColorTime div 1000;
end;
procedure TfrmFunctionConfig.ButtonMonUpgradeSaveClick(Sender: TObject);
{$IF SoftVersion <> VERDEMO}
var
i: Integer;
{$IFEND}
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'MonUpLvNeedKillBase', g_Config.nMonUpLvNeedKillBase);
Config.WriteInteger('Setup', 'MonUpLvRate', g_Config.nMonUpLvRate);
for i := Low(g_Config.MonUpLvNeedKillCount) to High(g_Config.MonUpLvNeedKillCount) do begin
Config.WriteInteger('Setup', 'MonUpLvNeedKillCount' + IntToStr(i), g_Config.MonUpLvNeedKillCount[i]);
end;
for i := Low(g_Config.SlaveColor) to High(g_Config.SlaveColor) do begin
Config.WriteInteger('Setup', 'SlaveColor' + IntToStr(i), g_Config.SlaveColor[i]);
end;
Config.WriteBool('Setup', 'MasterDieMutiny', g_Config.boMasterDieMutiny);
Config.WriteInteger('Setup', 'MasterDieMutinyRate', g_Config.nMasterDieMutinyRate);
Config.WriteInteger('Setup', 'MasterDieMutinyPower', g_Config.nMasterDieMutinyPower);
Config.WriteInteger('Setup', 'MasterDieMutinyPower', g_Config.nMasterDieMutinySpeed);
Config.WriteBool('Setup', 'BBMonAutoChangeColor', g_Config.boBBMonAutoChangeColor);
Config.WriteInteger('Setup', 'BBMonAutoChangeColorTime', g_Config.dwBBMonAutoChangeColorTime);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor1Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor1.Value;
LabelMonUpgradeColor1.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[0] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor2Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor2.Value;
LabelMonUpgradeColor2.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[1] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor3Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor3.Value;
LabelMonUpgradeColor3.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[2] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor4Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor4.Value;
LabelMonUpgradeColor4.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[3] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor5Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor5.Value;
LabelMonUpgradeColor5.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[4] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor6Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor6.Value;
LabelMonUpgradeColor6.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[5] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor7Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor7.Value;
LabelMonUpgradeColor7.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[6] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor8Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor8.Value;
LabelMonUpgradeColor8.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[7] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeColor9Change(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditMonUpgradeColor9.Value;
LabelMonUpgradeColor9.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.SlaveColor[8] := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxReNewChangeColorClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boReNewChangeColor := CheckBoxReNewChangeColor.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxReNewLevelClearExpClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boReNewLevelClearExp := CheckBoxReNewLevelClearExp.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditPKFlagNameColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditPKFlagNameColor.Value;
LabelPKFlagNameColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btPKFlagNameColor := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditPKLevel1NameColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditPKLevel1NameColor.Value;
LabelPKLevel1NameColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btPKLevel1NameColor := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditPKLevel2NameColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditPKLevel2NameColor.Value;
LabelPKLevel2NameColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btPKLevel2NameColor := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditAllyAndGuildNameColorChange(
Sender: TObject);
var
btColor: Byte;
begin
btColor := EditAllyAndGuildNameColor.Value;
LabelAllyAndGuildNameColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btAllyAndGuildNameColor := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditWarGuildNameColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditWarGuildNameColor.Value;
LabelWarGuildNameColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btWarGuildNameColor := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditInFreePKAreaNameColorChange(
Sender: TObject);
var
btColor: Byte;
begin
btColor := EditInFreePKAreaNameColor.Value;
LabelInFreePKAreaNameColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btInFreePKAreaNameColor := btColor;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount1Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[0] := EditMonUpgradeKillCount1.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount2Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[1] := EditMonUpgradeKillCount2.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount3Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[2] := EditMonUpgradeKillCount3.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount4Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[3] := EditMonUpgradeKillCount4.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount5Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[4] := EditMonUpgradeKillCount5.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount6Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[5] := EditMonUpgradeKillCount6.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpgradeKillCount7Change(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.MonUpLvNeedKillCount[6] := EditMonUpgradeKillCount7.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpLvNeedKillBaseChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMonUpLvNeedKillBase := EditMonUpLvNeedKillBase.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMonUpLvRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMonUpLvRate := EditMonUpLvRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxMasterDieMutinyClick(Sender: TObject);
begin
if CheckBoxMasterDieMutiny.Checked then begin
EditMasterDieMutinyRate.Enabled := True;
EditMasterDieMutinyPower.Enabled := True;
EditMasterDieMutinySpeed.Enabled := True;
end else begin
EditMasterDieMutinyRate.Enabled := False;
EditMasterDieMutinyPower.Enabled := False;
EditMasterDieMutinySpeed.Enabled := False;
end;
if not boOpened then Exit;
g_Config.boMasterDieMutiny := CheckBoxMasterDieMutiny.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditMasterDieMutinyRateChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMasterDieMutinyRate := EditMasterDieMutinyRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMasterDieMutinyPowerChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMasterDieMutinyPower := EditMasterDieMutinyPower.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMasterDieMutinySpeedChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMasterDieMutinySpeed := EditMasterDieMutinySpeed.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxBBMonAutoChangeColorClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boBBMonAutoChangeColor := CheckBoxBBMonAutoChangeColor.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditBBMonAutoChangeColorTimeChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwBBMonAutoChangeColorTime := EditBBMonAutoChangeColorTime.Value * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.RefSpiritMutiny();
begin
CheckBoxSpiritMutiny.Checked := g_Config.boSpiritMutiny;
EditSpiritMutinyTime.Value := g_Config.dwSpiritMutinyTime div (60 * 1000);
EditSpiritPowerRate.Value := g_Config.nSpiritPowerRate;
CheckBoxSpiritMutinyClick(CheckBoxSpiritMutiny);
end;
procedure TfrmFunctionConfig.ButtonSpiritMutinySaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'SpiritMutiny', g_Config.boSpiritMutiny);
Config.WriteInteger('Setup', 'SpiritMutinyTime', g_Config.dwSpiritMutinyTime);
Config.WriteInteger('Setup', 'SpiritPowerRate', g_Config.nSpiritPowerRate);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.CheckBoxSpiritMutinyClick(Sender: TObject);
begin
if CheckBoxSpiritMutiny.Checked then begin
EditSpiritMutinyTime.Enabled := True;
// EditSpiritPowerRate.Enabled:=True;
end else begin
EditSpiritMutinyTime.Enabled := False;
EditSpiritPowerRate.Enabled := False;
end;
if not boOpened then Exit;
g_Config.boSpiritMutiny := CheckBoxSpiritMutiny.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditSpiritMutinyTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwSpiritMutinyTime := EditSpiritMutinyTime.Value * 60 * 1000;
ModValue();
end;
procedure TfrmFunctionConfig.EditSpiritPowerRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSpiritPowerRate := EditSpiritPowerRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMagTammingLevelChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagTammingLevel := EditMagTammingLevel.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMagTammingTargetLevelChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagTammingTargetLevel := EditMagTammingTargetLevel.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMagTammingHPRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagTammingHPRate := EditMagTammingHPRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditTammingCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagTammingCount := EditTammingCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMabMabeHitRandRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMabMabeHitRandRate := EditMabMabeHitRandRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMabMabeHitMinLvLimitChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMabMabeHitMinLvLimit := EditMabMabeHitMinLvLimit.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMabMabeHitSucessRateChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMabMabeHitSucessRate := EditMabMabeHitSucessRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditMabMabeHitMabeTimeRateChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMabMabeHitMabeTimeRate := EditMabMabeHitMabeTimeRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.RefMonSayMsg;
begin
CheckBoxMonSayMsg.Checked := g_Config.boMonSayMsg;
end;
procedure TfrmFunctionConfig.ButtonMonSayMsgSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'MonSayMsg', g_Config.boMonSayMsg);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.CheckBoxMonSayMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boMonSayMsg := CheckBoxMonSayMsg.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.RefWeaponMakeLuck;
begin
ScrollBarWeaponMakeUnLuckRate.Min := 1;
ScrollBarWeaponMakeUnLuckRate.Max := 50;
ScrollBarWeaponMakeUnLuckRate.Position := g_Config.nWeaponMakeUnLuckRate;
ScrollBarWeaponMakeLuckPoint1.Min := 1;
ScrollBarWeaponMakeLuckPoint1.Max := 10;
ScrollBarWeaponMakeLuckPoint1.Position := g_Config.nWeaponMakeLuckPoint1;
ScrollBarWeaponMakeLuckPoint2.Min := 1;
ScrollBarWeaponMakeLuckPoint2.Max := 10;
ScrollBarWeaponMakeLuckPoint2.Position := g_Config.nWeaponMakeLuckPoint2;
ScrollBarWeaponMakeLuckPoint3.Min := 1;
ScrollBarWeaponMakeLuckPoint3.Max := 10;
ScrollBarWeaponMakeLuckPoint3.Position := g_Config.nWeaponMakeLuckPoint3;
ScrollBarWeaponMakeLuckPoint2Rate.Min := 1;
ScrollBarWeaponMakeLuckPoint2Rate.Max := 50;
ScrollBarWeaponMakeLuckPoint2Rate.Position := g_Config.nWeaponMakeLuckPoint2Rate;
ScrollBarWeaponMakeLuckPoint3Rate.Min := 1;
ScrollBarWeaponMakeLuckPoint3Rate.Max := 50;
ScrollBarWeaponMakeLuckPoint3Rate.Position := g_Config.nWeaponMakeLuckPoint3Rate;
end;
procedure TfrmFunctionConfig.ButtonWeaponMakeLuckDefaultClick(
Sender: TObject);
begin
if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
Exit;
end;
g_Config.nWeaponMakeUnLuckRate := 20;
g_Config.nWeaponMakeLuckPoint1 := 1;
g_Config.nWeaponMakeLuckPoint2 := 3;
g_Config.nWeaponMakeLuckPoint3 := 7;
g_Config.nWeaponMakeLuckPoint2Rate := 6;
g_Config.nWeaponMakeLuckPoint3Rate := 40;
RefWeaponMakeLuck();
end;
procedure TfrmFunctionConfig.ButtonWeaponMakeLuckSaveClick(
Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'WeaponMakeUnLuckRate', g_Config.nWeaponMakeUnLuckRate);
Config.WriteInteger('Setup', 'WeaponMakeLuckPoint1', g_Config.nWeaponMakeLuckPoint1);
Config.WriteInteger('Setup', 'WeaponMakeLuckPoint2', g_Config.nWeaponMakeLuckPoint2);
Config.WriteInteger('Setup', 'WeaponMakeLuckPoint3', g_Config.nWeaponMakeLuckPoint3);
Config.WriteInteger('Setup', 'WeaponMakeLuckPoint2Rate', g_Config.nWeaponMakeLuckPoint2Rate);
Config.WriteInteger('Setup', 'WeaponMakeLuckPoint3Rate', g_Config.nWeaponMakeLuckPoint3Rate);
{$IFEND}
uModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWeaponMakeUnLuckRateChange(
Sender: TObject);
var
nInteger: Integer;
begin
nInteger := ScrollBarWeaponMakeUnLuckRate.Position;
EditWeaponMakeUnLuckRate.Text := IntToStr(nInteger);
if not boOpened then Exit;
g_Config.nWeaponMakeUnLuckRate := nInteger;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWeaponMakeLuckPoint1Change(
Sender: TObject);
var
nInteger: Integer;
begin
nInteger := ScrollBarWeaponMakeLuckPoint1.Position;
EditWeaponMakeLuckPoint1.Text := IntToStr(nInteger);
if not boOpened then Exit;
g_Config.nWeaponMakeLuckPoint1 := nInteger;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWeaponMakeLuckPoint2Change(
Sender: TObject);
var
nInteger: Integer;
begin
nInteger := ScrollBarWeaponMakeLuckPoint2.Position;
EditWeaponMakeLuckPoint2.Text := IntToStr(nInteger);
if not boOpened then Exit;
g_Config.nWeaponMakeLuckPoint2 := nInteger;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWeaponMakeLuckPoint2RateChange(
Sender: TObject);
var
nInteger: Integer;
begin
nInteger := ScrollBarWeaponMakeLuckPoint2Rate.Position;
EditWeaponMakeLuckPoint2Rate.Text := IntToStr(nInteger);
if not boOpened then Exit;
g_Config.nWeaponMakeLuckPoint2Rate := nInteger;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWeaponMakeLuckPoint3Change(
Sender: TObject);
var
nInteger: Integer;
begin
nInteger := ScrollBarWeaponMakeLuckPoint3.Position;
EditWeaponMakeLuckPoint3.Text := IntToStr(nInteger);
if not boOpened then Exit;
g_Config.nWeaponMakeLuckPoint3 := nInteger;
ModValue();
end;
procedure TfrmFunctionConfig.ScrollBarWeaponMakeLuckPoint3RateChange(
Sender: TObject);
var
nInteger: Integer;
begin
nInteger := ScrollBarWeaponMakeLuckPoint3Rate.Position;
EditWeaponMakeLuckPoint3Rate.Text := IntToStr(nInteger);
if not boOpened then Exit;
g_Config.nWeaponMakeLuckPoint3Rate := nInteger;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditSellOffCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nUserSellOffCount := SpinEditSellOffCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditSellOffTaxChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nUserSellOffTax := SpinEditSellOffTax.Value;
ModValue();
end;
procedure TfrmFunctionConfig.ButtonSellOffSaveClick(Sender: TObject);
begin
Config.WriteInteger('Setup', 'SellOffCountLimit', g_Config.nUserSellOffCount);
Config.WriteInteger('Setup', 'SellOffRate', g_Config.nUserSellOffTax);
uModValue();
end;
procedure TfrmFunctionConfig.CheckBoxPullPlayObjectClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boPullPlayObject := CheckBoxPullPlayObject.Checked;
CheckBoxPullCrossInSafeZone.Enabled := CheckBoxPullPlayObject.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxPlayObjectReduceMPClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boPlayObjectReduceMP := CheckBoxPlayObjectReduceMP.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditMagDelayTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagDelayTimeDoubly := SpinEditMagDelayTime.Value;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditMagPowerChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMagPowerDoubly := SpinEditMagPower.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxGroupMbAttackSlaveClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boGroupMbAttackSlave := CheckBoxGroupMbAttackSlave.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxItemNameClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boChangeUseItemNameByPlayName := CheckBoxItemName.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.EditItemNameChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sChangeUseItemName := Trim(EditItemName.Text);
ModValue();
end;
procedure TfrmFunctionConfig.ButtonChangeUseItemNameClick(Sender: TObject);
begin
{if (not CheckBoxItemName.Checked) and (g_Config.sChangeUseItemName = '') then begin
Application.MessageBox('请输入自定义前缀', '提示信息', MB_ICONQUESTION);
Exit;
end;}
Config.WriteBool('Setup', 'ChangeUseItemNameByPlayName', g_Config.boChangeUseItemNameByPlayName);
Config.WriteString('Setup', 'ChangeUseItemName', g_Config.sChangeUseItemName);
uModValue();
end;
procedure TfrmFunctionConfig.SpinEditSkill39SecChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nDedingUseTime := SpinEditSkill39Sec.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxDedingAllowPKClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDedingAllowPK := CheckBoxDedingAllowPK.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditAllowCopyCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nAllowCopyHumanCount := SpinEditAllowCopyCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditCopyHumNameChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sCopyHumName := EditCopyHumName.Text;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxMasterNameClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boAddMasterName := CheckBoxMasterName.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditPickUpItemCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nCopyHumanBagCount := SpinEditPickUpItemCount.Value;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditEatHPItemRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nCopyHumAddHPRate := SpinEditEatHPItemRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditEatMPItemRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nCopyHumAddMPRate := SpinEditEatMPItemRate.Value;
ModValue();
end;
procedure TfrmFunctionConfig.EditBagItems1Change(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sCopyHumBagItems1 := Trim(EditBagItems1.Text);
ModValue();
end;
procedure TfrmFunctionConfig.EditBagItems2Change(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sCopyHumBagItems2 := Trim(EditBagItems2.Text);
ModValue();
end;
procedure TfrmFunctionConfig.EditBagItems3Change(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sCopyHumBagItems3 := Trim(EditBagItems3.Text);
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxAllowGuardAttackClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boAllowGuardAttack := CheckBoxAllowGuardAttack.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.RefCopyHumConf;
begin
SpinEditAllowCopyCount.Value := g_Config.nAllowCopyHumanCount;
EditCopyHumName.Text := g_Config.sCopyHumName;
CheckBoxMasterName.Checked := g_Config.boAddMasterName;
SpinEditPickUpItemCount.Value := g_Config.nCopyHumanBagCount;
SpinEditEatHPItemRate.Value := g_Config.nCopyHumAddHPRate;
SpinEditEatMPItemRate.Value := g_Config.nCopyHumAddMPRate;
EditBagItems1.Text := g_Config.sCopyHumBagItems1;
EditBagItems2.Text := g_Config.sCopyHumBagItems2;
EditBagItems3.Text := g_Config.sCopyHumBagItems3;
CheckBoxAllowGuardAttack.Checked := g_Config.boAllowGuardAttack;
SpinEditWarrorAttackTime.Value := g_Config.dwWarrorAttackTime;
SpinEditWizardAttackTime.Value := g_Config.dwWizardAttackTime;
SpinEditTaoistAttackTime.Value := g_Config.dwTaoistAttackTime;
CheckBoxAllowReCallMobOtherHum.Checked := g_Config.boAllowReCallMobOtherHum;
CheckBoxNeedLevelHighTarget.Checked := g_Config.boNeedLevelHighTarget;
CheckBoxNeedLevelHighTarget.Enabled := g_Config.boAllowReCallMobOtherHum;
end;
procedure TfrmFunctionConfig.SpinEditWarrorAttackTimeChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwWarrorAttackTime := SpinEditWarrorAttackTime.Value;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditWizardAttackTimeChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwWizardAttackTime := SpinEditWizardAttackTime.Value;
ModValue();
end;
procedure TfrmFunctionConfig.SpinEditTaoistAttackTimeChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwTaoistAttackTime := SpinEditTaoistAttackTime.Value;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxAllowReCallMobOtherHumClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boAllowReCallMobOtherHum := CheckBoxAllowReCallMobOtherHum.Checked;
CheckBoxNeedLevelHighTarget.Enabled := g_Config.boAllowReCallMobOtherHum;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxNeedLevelHighTargetClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boNeedLevelHighTarget := CheckBoxNeedLevelHighTarget.Checked;
ModValue();
end;
procedure TfrmFunctionConfig.CheckBoxPullCrossInSafeZoneClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boPullCrossInSafeZone := CheckBoxPullCrossInSafeZone.Checked;
ModValue();
end;
end.
-
Enthusiast
Re: GameOfMir
unit GameCommand;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, ComCtrls, StdCtrls, Spin, Grobal2;
type
TfrmGameCmd = class(TForm)
PageControl: TPageControl;
TabSheet1: TTabSheet;
StringGridGameCmd: TStringGrid;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
GroupBox1: TGroupBox;
Label1: TLabel;
EditUserCmdName: TEdit;
EditUserCmdPerMission: TSpinEdit;
Label6: TLabel;
EditUserCmdOK: TButton;
LabelUserCmdFunc: TLabel;
LabelUserCmdParam: TLabel;
Label2: TLabel;
Label3: TLabel;
EditUserCmdSave: TButton;
StringGridGameMasterCmd: TStringGrid;
GroupBox2: TGroupBox;
Label4: TLabel;
Label5: TLabel;
LabelGameMasterCmdFunc: TLabel;
LabelGameMasterCmdParam: TLabel;
Label7: TLabel;
Label8: TLabel;
EditGameMasterCmdName: TEdit;
EditGameMasterCmdPerMission: TSpinEdit;
EditGameMasterCmdOK: TButton;
EditGameMasterCmdSave: TButton;
StringGridGameDebugCmd: TStringGrid;
GroupBox3: TGroupBox;
Label9: TLabel;
Label10: TLabel;
LabelGameDebugCmdFunc: TLabel;
LabelGameDebugCmdParam: TLabel;
Label11: TLabel;
Label12: TLabel;
EditGameDebugCmdName: TEdit;
EditGameDebugCmdPerMission: TSpinEdit;
EditGameDebugCmdOK: TButton;
EditGameDebugCmdSave: TButton;
procedure FormCreate(Sender: TObject);
procedure StringGridGameCmdClick(Sender: TObject);
procedure EditUserCmdNameChange(Sender: TObject);
procedure EditUserCmdPerMissionChange(Sender: TObject);
procedure EditUserCmdOKClick(Sender: TObject);
procedure EditUserCmdSaveClick(Sender: TObject);
procedure StringGridGameMasterCmdClick(Sender: TObject);
procedure EditGameMasterCmdNameChange(Sender: TObject);
procedure EditGameMasterCmdPerMissionChange(Sender: TObject);
procedure EditGameMasterCmdOKClick(Sender: TObject);
procedure StringGridGameDebugCmdClick(Sender: TObject);
procedure EditGameDebugCmdNameChange(Sender: TObject);
procedure EditGameDebugCmdPerMissionChange(Sender: TObject);
procedure EditGameDebugCmdOKClick(Sender: TObject);
procedure EditGameMasterCmdSaveClick(Sender: TObject);
procedure EditGameDebugCmdSaveClick(Sender: TObject);
private
nRefGameUserIndex: Integer;
nRefGameMasterIndex: Integer;
nRefGameDebugIndex: Integer;
procedure RefUserCommand();
procedure RefGameMasterCommand();
procedure RefGameMasterCmd(GameCmd: pTGameCmd; sCmdParam, sDesc: string);
procedure RefDebugCommand();
procedure RefGameDebugCmd(GameCmd: pTGameCmd; sCmdParam,
sDesc: string);
procedure RefGameUserCmd(GameCmd: pTGameCmd; sCmdParam, sDesc: string);
{ Private declarations }
public
procedure Open();
{ Public declarations }
end;
var
frmGameCmd: TfrmGameCmd;
implementation
uses M2Share;
{$R *.dfm}
procedure TfrmGameCmd.FormCreate(Sender: TObject);
begin
PageControl.ActivePageIndex := 0;
StringGridGameCmd.RowCount := 50;
StringGridGameCmd.Cells[0, 0] := '游戏命令';
StringGridGameCmd.Cells[1, 0] := '所需权限';
StringGridGameCmd.Cells[2, 0] := '命令格式';
StringGridGameCmd.Cells[3, 0] := '命令说明';
StringGridGameMasterCmd.RowCount := 105;
StringGridGameMasterCmd.Cells[0, 0] := '游戏命令';
StringGridGameMasterCmd.Cells[1, 0] := '所需权限';
StringGridGameMasterCmd.Cells[2, 0] := '命令格式';
StringGridGameMasterCmd.Cells[3, 0] := '命令说明';
StringGridGameDebugCmd.RowCount := 41;
StringGridGameDebugCmd.Cells[0, 0] := '游戏命令';
StringGridGameDebugCmd.Cells[1, 0] := '所需权限';
StringGridGameDebugCmd.Cells[2, 0] := '命令格式';
StringGridGameDebugCmd.Cells[3, 0] := '命令说明';
end;
procedure TfrmGameCmd.Open;
begin
RefUserCommand();
RefGameMasterCommand();
RefDebugCommand();
ShowModal;
end;
procedure TfrmGameCmd.RefGameUserCmd(GameCmd: pTGameCmd; sCmdParam, sDesc: string);
begin
Inc(nRefGameUserIndex);
if StringGridGameCmd.RowCount - 1 < nRefGameUserIndex then begin
StringGridGameCmd.RowCount := nRefGameUserIndex + 1;
end;
StringGridGameCmd.Cells[0, nRefGameUserIndex] := GameCmd.sCmd;
StringGridGameCmd.Cells[1, nRefGameUserIndex] := IntToStr(GameCmd.nPermissionMin) + '/' + IntToStr(GameCmd.nPermissionMax);
StringGridGameCmd.Cells[2, nRefGameUserIndex] := sCmdParam;
StringGridGameCmd.Cells[3, nRefGameUserIndex] := sDesc;
StringGridGameCmd.Objects[0, nRefGameUserIndex] := TObject(GameCmd);
end;
// StringGridGameCmd.Cells[3,12]:='未使用';
// StringGridGameCmd.Cells[3,13]:='移动地图指定座标(需要戴传送装备)';
// StringGridGameCmd.Cells[3,14]:='探测人物所在位置(需要戴传送装备)';
// StringGridGameCmd.Cells[3,15]:='允许记忆传送';
// StringGridGameCmd.Cells[3,16]:='将组队人员传送到身边(需要戴记忆全套装备)';
// StringGridGameCmd.Cells[3,17]:='允许行会传送';
// StringGridGameCmd.Cells[3,18]:='将行会成员传送身边(需要戴行会传送装备)';
// StringGridGameCmd.Cells[3,19]:='开启仓库密码锁';
// StringGridGameCmd.Cells[3,20]:='开启登录密码锁';
// StringGridGameCmd.Cells[3,21]:='将仓库密码锁上';
// StringGridGameCmd.Cells[3,22]:='设置仓库密码';
// StringGridGameCmd.Cells[3,23]:='修改仓库密码';
// StringGridGameCmd.Cells[3,24]:='清除密码(先开锁再清除密码)';
// StringGridGameCmd.Cells[3,25]:='未使用';
// StringGridGameCmd.Cells[3,26]:='查询夫妻位置';
// StringGridGameCmd.Cells[3,27]:='允许夫妻传送';
// StringGridGameCmd.Cells[3,28]:='夫妻将对方传送到身边';
// StringGridGameCmd.Cells[3,29]:='查询师徒位置';
// StringGridGameCmd.Cells[3,30]:='允许师徒传送';
// StringGridGameCmd.Cells[3,31]:='师父将徒弟召唤到身边';
// StringGridGameCmd.Cells[3,32]:='更换攻击模式(此命令不要修改)';
// StringGridGameCmd.Cells[3,33]:='宝宝攻击状态(此命令不要修改)';
// StringGridGameCmd.Cells[3,34]:='带马牌后骑上马';
// StringGridGameCmd.Cells[3,35]:='从马上下来';
// StringGridGameCmd.Cells[3,36]:='';
// StringGridGameCmd.Cells[3,37]:='开启/关闭登录锁';
procedure TfrmGameCmd.RefUserCommand;
begin
EditUserCmdOK.Enabled := False;
nRefGameUserIndex := 0;
RefGameUserCmd(@g_GameCommand.Data,
'@' + g_GameCommand.Data.sCmd,
'查看当前服务器日期时间');
RefGameUserCmd(@g_GameCommand.PRVMSG,
'@' + g_GameCommand.PRVMSG.sCmd,
'禁止指定人物发的私聊信息');
RefGameUserCmd(@g_GameCommand.ALLOWMSG,
'@' + g_GameCommand.ALLOWMSG.sCmd,
'禁止别人向自己发私聊信息');
RefGameUserCmd(@g_GameCommand.LETSHOUT,
'@' + g_GameCommand.LETSHOUT.sCmd,
'禁止接收组队聊天信息');
RefGameUserCmd(@g_GameCommand.LETTRADE,
'@' + g_GameCommand.LETTRADE.sCmd,
'禁止交易交易物品');
RefGameUserCmd(@g_GameCommand.LETGUILD,
'@' + g_GameCommand.LETGUILD.sCmd,
'允许加入行会');
RefGameUserCmd(@g_GameCommand.ENDGUILD,
'@' + g_GameCommand.ENDGUILD.sCmd,
'退出当前所加入的行会');
RefGameUserCmd(@g_GameCommand.BANGUILDCHAT,
'@' + g_GameCommand.BANGUILDCHAT.sCmd,
'禁止接收行会聊天信息');
RefGameUserCmd(@g_GameCommand.AUTHALLY,
'@' + g_GameCommand.AUTHALLY.sCmd,
'许行会进入联盟');
RefGameUserCmd(@g_GameCommand.AUTH,
'@' + g_GameCommand.AUTH.sCmd,
'开始进行行会联盟');
RefGameUserCmd(@g_GameCommand.AUTHCANCEL,
'@' + g_GameCommand.AUTHCANCEL.sCmd,
'取消行会联盟关系');
exit;
StringGridGameCmd.Cells[0, 12] := g_GameCommand.DIARY.sCmd;
StringGridGameCmd.Cells[1, 12] := IntToStr(g_GameCommand.DIARY.nPermissionMin);
StringGridGameCmd.Cells[2, 12] := '@' + g_GameCommand.DIARY.sCmd;
StringGridGameCmd.Objects[0, 12] := TObject(@g_GameCommand.DIARY);
StringGridGameCmd.Cells[0, 13] := g_GameCommand.USERMOVE.sCmd;
StringGridGameCmd.Cells[1, 13] := IntToStr(g_GameCommand.USERMOVE.nPermissionMin);
StringGridGameCmd.Cells[2, 13] := '@' + g_GameCommand.USERMOVE.sCmd;
StringGridGameCmd.Objects[0, 13] := TObject(@g_GameCommand.USERMOVE);
StringGridGameCmd.Cells[0, 14] := g_GameCommand.SEARCHING.sCmd;
StringGridGameCmd.Cells[1, 14] := IntToStr(g_GameCommand.SEARCHING.nPermissionMin);
StringGridGameCmd.Cells[2, 14] := '@' + g_GameCommand.SEARCHING.sCmd;
StringGridGameCmd.Objects[0, 14] := TObject(@g_GameCommand.SEARCHING);
StringGridGameCmd.Cells[0, 15] := g_GameCommand.ALLOWGROUPCALL.sCmd;
StringGridGameCmd.Cells[1, 15] := IntToStr(g_GameCommand.ALLOWGROUPCALL.nPermissionMin);
StringGridGameCmd.Cells[2, 15] := '@' + g_GameCommand.ALLOWGROUPCALL.sCmd;
StringGridGameCmd.Objects[0, 15] := TObject(@g_GameCommand.ALLOWGROUPCALL);
StringGridGameCmd.Cells[0, 16] := g_GameCommand.GROUPRECALLL.sCmd;
StringGridGameCmd.Cells[1, 16] := IntToStr(g_GameCommand.GROUPRECALLL.nPermissionMin);
StringGridGameCmd.Cells[2, 16] := '@' + g_GameCommand.GROUPRECALLL.sCmd;
StringGridGameCmd.Objects[0, 16] := TObject(@g_GameCommand.GROUPRECALLL);
StringGridGameCmd.Cells[0, 17] := g_GameCommand.ALLOWGUILDRECALL.sCmd;
StringGridGameCmd.Cells[1, 17] := IntToStr(g_GameCommand.ALLOWGUILDRECALL.nPermissionMin);
StringGridGameCmd.Cells[2, 17] := '@' + g_GameCommand.ALLOWGUILDRECALL.sCmd;
StringGridGameCmd.Objects[0, 17] := TObject(@g_GameCommand.ALLOWGUILDRECALL);
StringGridGameCmd.Cells[0, 18] := g_GameCommand.GUILDRECALLL.sCmd;
StringGridGameCmd.Cells[1, 18] := IntToStr(g_GameCommand.GUILDRECALLL.nPermissionMin);
StringGridGameCmd.Cells[2, 18] := '@' + g_GameCommand.GUILDRECALLL.sCmd;
StringGridGameCmd.Objects[0, 18] := TObject(@g_GameCommand.GUILDRECALLL);
StringGridGameCmd.Cells[0, 19] := g_GameCommand.UNLOCKSTORAGE.sCmd;
StringGridGameCmd.Cells[1, 19] := IntToStr(g_GameCommand.UNLOCKSTORAGE.nPermissionMin);
StringGridGameCmd.Cells[2, 19] := '@' + g_GameCommand.UNLOCKSTORAGE.sCmd;
StringGridGameCmd.Objects[0, 19] := TObject(@g_GameCommand.UNLOCKSTORAGE);
StringGridGameCmd.Cells[0, 20] := g_GameCommand.UnLock.sCmd;
StringGridGameCmd.Cells[1, 20] := IntToStr(g_GameCommand.UnLock.nPermissionMin);
StringGridGameCmd.Cells[2, 20] := '@' + g_GameCommand.UnLock.sCmd;
StringGridGameCmd.Objects[0, 20] := TObject(@g_GameCommand.UnLock);
StringGridGameCmd.Cells[0, 21] := g_GameCommand.Lock.sCmd;
StringGridGameCmd.Cells[1, 21] := IntToStr(g_GameCommand.Lock.nPermissionMin);
StringGridGameCmd.Cells[2, 21] := '@' + g_GameCommand.Lock.sCmd;
StringGridGameCmd.Objects[0, 21] := TObject(@g_GameCommand.Lock);
StringGridGameCmd.Cells[0, 22] := g_GameCommand.SETPASSWORD.sCmd;
StringGridGameCmd.Cells[1, 22] := IntToStr(g_GameCommand.SETPASSWORD.nPermissionMin);
StringGridGameCmd.Cells[2, 22] := '@' + g_GameCommand.SETPASSWORD.sCmd;
StringGridGameCmd.Objects[0, 22] := TObject(@g_GameCommand.SETPASSWORD);
StringGridGameCmd.Cells[0, 23] := g_GameCommand.CHGPASSWORD.sCmd;
StringGridGameCmd.Cells[1, 23] := IntToStr(g_GameCommand.CHGPASSWORD.nPermissionMin);
StringGridGameCmd.Cells[2, 23] := '@' + g_GameCommand.CHGPASSWORD.sCmd;
StringGridGameCmd.Objects[0, 23] := TObject(@g_GameCommand.CHGPASSWORD);
StringGridGameCmd.Cells[0, 24] := g_GameCommand.UNPASSWORD.sCmd;
StringGridGameCmd.Cells[1, 24] := IntToStr(g_GameCommand.UNPASSWORD.nPermissionMin);
StringGridGameCmd.Cells[2, 24] := '@' + g_GameCommand.UNPASSWORD.sCmd;
StringGridGameCmd.Objects[0, 24] := TObject(@g_GameCommand.UNPASSWORD);
StringGridGameCmd.Cells[0, 25] := g_GameCommand.MEMBERFUNCTION.sCmd;
StringGridGameCmd.Cells[1, 25] := IntToStr(g_GameCommand.MEMBERFUNCTION.nPermissionMin);
StringGridGameCmd.Cells[2, 25] := '@' + g_GameCommand.MEMBERFUNCTION.sCmd;
StringGridGameCmd.Objects[0, 25] := TObject(@g_GameCommand.MEMBERFUNCTION);
StringGridGameCmd.Cells[0, 26] := g_GameCommand.DEAR.sCmd;
StringGridGameCmd.Cells[1, 26] := IntToStr(g_GameCommand.DEAR.nPermissionMin);
StringGridGameCmd.Cells[2, 26] := '@' + g_GameCommand.DEAR.sCmd;
StringGridGameCmd.Objects[0, 26] := TObject(@g_GameCommand.DEAR);
StringGridGameCmd.Cells[0, 27] := g_GameCommand.ALLOWDEARRCALL.sCmd;
StringGridGameCmd.Cells[1, 27] := IntToStr(g_GameCommand.ALLOWDEARRCALL.nPermissionMin);
StringGridGameCmd.Cells[2, 27] := '@' + g_GameCommand.ALLOWDEARRCALL.sCmd;
StringGridGameCmd.Objects[0, 27] := TObject(@g_GameCommand.ALLOWDEARRCALL);
StringGridGameCmd.Cells[0, 28] := g_GameCommand.DEARRECALL.sCmd;
StringGridGameCmd.Cells[1, 28] := IntToStr(g_GameCommand.DEARRECALL.nPermissionMin);
StringGridGameCmd.Cells[2, 28] := '@' + g_GameCommand.DEARRECALL.sCmd;
StringGridGameCmd.Objects[0, 28] := TObject(@g_GameCommand.DEARRECALL);
StringGridGameCmd.Cells[0, 29] := g_GameCommand.MASTER.sCmd;
StringGridGameCmd.Cells[1, 29] := IntToStr(g_GameCommand.MASTER.nPermissionMin);
StringGridGameCmd.Cells[2, 29] := '@' + g_GameCommand.MASTER.sCmd;
StringGridGameCmd.Objects[0, 29] := TObject(@g_GameCommand.MASTER);
StringGridGameCmd.Cells[0, 30] := g_GameCommand.ALLOWMASTERRECALL.sCmd;
StringGridGameCmd.Cells[1, 30] := IntToStr(g_GameCommand.ALLOWMASTERRECALL.nPermissionMin);
StringGridGameCmd.Cells[2, 30] := '@' + g_GameCommand.ALLOWMASTERRECALL.sCmd;
StringGridGameCmd.Objects[0, 30] := TObject(@g_GameCommand.ALLOWMASTERRECALL);
StringGridGameCmd.Cells[0, 31] := g_GameCommand.MASTERECALL.sCmd;
StringGridGameCmd.Cells[1, 31] := IntToStr(g_GameCommand.MASTERECALL.nPermissionMin);
StringGridGameCmd.Cells[2, 31] := '@' + g_GameCommand.MASTERECALL.sCmd;
StringGridGameCmd.Objects[0, 31] := TObject(@g_GameCommand.MASTERECALL);
StringGridGameCmd.Cells[0, 32] := g_GameCommand.ATTACKMODE.sCmd;
StringGridGameCmd.Cells[1, 32] := IntToStr(g_GameCommand.ATTACKMODE.nPermissionMin);
StringGridGameCmd.Cells[2, 32] := '@' + g_GameCommand.ATTACKMODE.sCmd;
StringGridGameCmd.Objects[0, 32] := TObject(@g_GameCommand.ATTACKMODE);
StringGridGameCmd.Cells[0, 33] := g_GameCommand.REST.sCmd;
StringGridGameCmd.Cells[1, 33] := IntToStr(g_GameCommand.REST.nPermissionMin);
StringGridGameCmd.Cells[2, 33] := '@' + g_GameCommand.REST.sCmd;
StringGridGameCmd.Objects[0, 33] := TObject(@g_GameCommand.REST);
StringGridGameCmd.Cells[0, 34] := g_GameCommand.TAKEONHORSE.sCmd;
StringGridGameCmd.Cells[1, 34] := IntToStr(g_GameCommand.TAKEONHORSE.nPermissionMin);
StringGridGameCmd.Cells[2, 34] := '@' + g_GameCommand.TAKEONHORSE.sCmd;
StringGridGameCmd.Objects[0, 34] := TObject(@g_GameCommand.TAKEONHORSE);
StringGridGameCmd.Cells[0, 35] := g_GameCommand.TAKEOFHORSE.sCmd;
StringGridGameCmd.Cells[1, 35] := IntToStr(g_GameCommand.TAKEOFHORSE.nPermissionMin);
StringGridGameCmd.Cells[2, 35] := '@' + g_GameCommand.TAKEOFHORSE.sCmd;
StringGridGameCmd.Objects[0, 35] := TObject(@g_GameCommand.TAKEOFHORSE);
StringGridGameCmd.Cells[0, 36] := g_GameCommand.MEMBERFUNCTIONEX.sCmd;
StringGridGameCmd.Cells[1, 36] := IntToStr(g_GameCommand.MEMBERFUNCTIONEX.nPermissionMin);
StringGridGameCmd.Cells[2, 36] := '@' + g_GameCommand.MEMBERFUNCTIONEX.sCmd;
StringGridGameCmd.Objects[0, 36] := TObject(@g_GameCommand.MEMBERFUNCTIONEX);
StringGridGameCmd.Cells[0, 37] := g_GameCommand.LOCKLOGON.sCmd;
StringGridGameCmd.Cells[1, 37] := IntToStr(g_GameCommand.LOCKLOGON.nPermissionMin);
StringGridGameCmd.Cells[2, 37] := '@' + g_GameCommand.LOCKLOGON.sCmd;
StringGridGameCmd.Objects[0, 37] := TObject(@g_GameCommand.LOCKLOGON);
end;
procedure TfrmGameCmd.StringGridGameCmdClick(Sender: TObject);
var
nIndex: Integer;
GameCmd: pTGameCmd;
begin
nIndex := StringGridGameCmd.Row;
GameCmd := pTGameCmd(StringGridGameCmd.Objects[0, nIndex]);
if GameCmd <> nil then begin
EditUserCmdName.Text := GameCmd.sCmd;
EditUserCmdPerMission.Value := GameCmd.nPermissionMin;
LabelUserCmdParam.Caption := StringGridGameCmd.Cells[2, nIndex];
LabelUserCmdFunc.Caption := StringGridGameCmd.Cells[3, nIndex];
end;
EditUserCmdOK.Enabled := False;
end;
procedure TfrmGameCmd.EditUserCmdNameChange(Sender: TObject);
begin
EditUserCmdOK.Enabled := True;
EditUserCmdSave.Enabled := True;
end;
procedure TfrmGameCmd.EditUserCmdPerMissionChange(Sender: TObject);
begin
EditUserCmdOK.Enabled := True;
EditUserCmdSave.Enabled := True;
end;
procedure TfrmGameCmd.EditUserCmdOKClick(Sender: TObject);
var
nIndex: Integer;
GameCmd: pTGameCmd;
sCmd: string;
nPermission: Integer;
begin
sCmd := Trim(EditUserCmdName.Text);
nPermission := EditUserCmdPerMission.Value;
if sCmd = '' then begin
Application.MessageBox('命令名称不能为空!!!', '提示信息', MB_OK + MB_ICONERROR);
EditUserCmdName.SetFocus;
exit;
end;
nIndex := StringGridGameCmd.Row;
GameCmd := pTGameCmd(StringGridGameCmd.Objects[0, nIndex]);
if GameCmd <> nil then begin
GameCmd.sCmd := sCmd;
GameCmd.nPermissionMin := nPermission;
end;
RefUserCommand();
end;
procedure TfrmGameCmd.EditUserCmdSaveClick(Sender: TObject);
begin
EditUserCmdSave.Enabled := False;
{$IF SoftVersion <> VERDEMO}
CommandConf.WriteString('Command', 'Date', g_GameCommand.Data.sCmd);
CommandConf.WriteString('Command', 'PrvMsg', g_GameCommand.PRVMSG.sCmd);
CommandConf.WriteString('Command', 'AllowMsg', g_GameCommand.ALLOWMSG.sCmd);
CommandConf.WriteString('Command', 'LetShout', g_GameCommand.LETSHOUT.sCmd);
CommandConf.WriteString('Command', 'LetTrade', g_GameCommand.LETTRADE.sCmd);
CommandConf.WriteString('Command', 'LetGuild', g_GameCommand.LETGUILD.sCmd);
CommandConf.WriteString('Command', 'EndGuild', g_GameCommand.ENDGUILD.sCmd);
CommandConf.WriteString('Command', 'BanGuildChat', g_GameCommand.BANGUILDCHAT.sCmd);
CommandConf.WriteString('Command', 'AuthAlly', g_GameCommand.AUTHALLY.sCmd);
CommandConf.WriteString('Command', 'Auth', g_GameCommand.AUTH.sCmd);
CommandConf.WriteString('Command', 'AuthCancel', g_GameCommand.AUTHCANCEL.sCmd);
CommandConf.WriteString('Command', 'ViewDiary', g_GameCommand.DIARY.sCmd);
CommandConf.WriteString('Command', 'UserMove', g_GameCommand.USERMOVE.sCmd);
CommandConf.WriteString('Command', 'Searching', g_GameCommand.SEARCHING.sCmd);
CommandConf.WriteString('Command', 'AllowGroupCall', g_GameCommand.ALLOWGROUPCALL.sCmd);
CommandConf.WriteString('Command', 'GroupCall', g_GameCommand.GROUPRECALLL.sCmd);
CommandConf.WriteString('Command', 'AllowGuildReCall', g_GameCommand.ALLOWGUILDRECALL.sCmd);
CommandConf.WriteString('Command', 'GuildReCall', g_GameCommand.GUILDRECALLL.sCmd);
CommandConf.WriteString('Command', 'StorageUnLock', g_GameCommand.UNLOCKSTORAGE.sCmd);
CommandConf.WriteString('Command', 'PasswordUnLock', g_GameCommand.UnLock.sCmd);
CommandConf.WriteString('Command', 'StorageLock', g_GameCommand.Lock.sCmd);
CommandConf.WriteString('Command', 'StorageSetPassword', g_GameCommand.SETPASSWORD.sCmd);
CommandConf.WriteString('Command', 'StorageChgPassword', g_GameCommand.CHGPASSWORD.sCmd);
// CommandConf.WriteString('Command','StorageClearPassword',g_GameCommand.CLRPASSWORD.sCmd)
// CommandConf.WriteInteger('Permission','StorageClearPassword', g_GameCommand.CLRPASSWORD.nPermissionMin)
CommandConf.WriteString('Command', 'StorageUserClearPassword', g_GameCommand.UNPASSWORD.sCmd);
CommandConf.WriteString('Command', 'MemberFunc', g_GameCommand.MEMBERFUNCTION.sCmd);
CommandConf.WriteString('Command', 'Dear', g_GameCommand.DEAR.sCmd);
CommandConf.WriteString('Command', 'Master', g_GameCommand.MASTER.sCmd);
CommandConf.WriteString('Command', 'DearRecall', g_GameCommand.DEARRECALL.sCmd);
CommandConf.WriteString('Command', 'MasterRecall', g_GameCommand.MASTERECALL.sCmd);
CommandConf.WriteString('Command', 'AllowDearRecall', g_GameCommand.ALLOWDEARRCALL.sCmd);
CommandConf.WriteString('Command', 'AllowMasterRecall', g_GameCommand.ALLOWMASTERRECALL.sCmd);
CommandConf.WriteString('Command', 'AttackMode', g_GameCommand.ATTACKMODE.sCmd);
CommandConf.WriteString('Command', 'Rest', g_GameCommand.REST.sCmd);
CommandConf.WriteString('Command', 'TakeOnHorse', g_GameCommand.TAKEONHORSE.sCmd);
CommandConf.WriteString('Command', 'TakeOffHorse', g_GameCommand.TAKEOFHORSE.sCmd);
CommandConf.WriteInteger('Permission', 'Date', g_GameCommand.Data.nPermissionMin);
CommandConf.WriteInteger('Permission', 'PrvMsg', g_GameCommand.PRVMSG.nPermissionMin);
CommandConf.WriteInteger('Permission', 'AllowMsg', g_GameCommand.ALLOWMSG.nPermissionMin);
{$IFEND}
end;
procedure TfrmGameCmd.RefGameMasterCmd(GameCmd: pTGameCmd; sCmdParam, sDesc: string);
begin
Inc(nRefGameMasterIndex);
if StringGridGameMasterCmd.RowCount - 1 < nRefGameMasterIndex then begin
StringGridGameMasterCmd.RowCount := nRefGameMasterIndex + 1;
end;
StringGridGameMasterCmd.Cells[0, nRefGameMasterIndex] := GameCmd.sCmd;
StringGridGameMasterCmd.Cells[1, nRefGameMasterIndex] := IntToStr(GameCmd.nPermissionMin) + '/' + IntToStr(GameCmd.nPermissionMax);
StringGridGameMasterCmd.Cells[2, nRefGameMasterIndex] := sCmdParam;
StringGridGameMasterCmd.Cells[3, nRefGameMasterIndex] := sDesc;
StringGridGameMasterCmd.Objects[0, nRefGameMasterIndex] := TObject(GameCmd);
end;
procedure TfrmGameCmd.RefGameMasterCommand;
var
GameCmd: pTGameCmd;
sDesc: string;
sCmdParam: string;
begin
EditGameMasterCmdOK.Enabled := False;
nRefGameMasterIndex := 0;
RefGameMasterCmd(@g_GameCommand.CLRPASSWORD,
'@' + g_GameCommand.CLRPASSWORD.sCmd + ' 人物名称',
'清除人物仓库/登录密码(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.WHO,
'@' + g_GameCommand.WHO.sCmd,
'查看当前服务器在线人数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.TOTAL,
'@' + g_GameCommand.TOTAL.sCmd,
'查看所有服务器在线人数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.GAMEMASTER,
'@' + g_GameCommand.GAMEMASTER.sCmd,
'进入/退出管理员模式(进入模式后不会受到任何角色攻击)(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.OBSERVER,
'@' + g_GameCommand.OBSERVER.sCmd,
'进入/退出隐身模式(进入模式后别人看不到自己)(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SUEPRMAN,
'@' + g_GameCommand.SUEPRMAN.sCmd,
'进入/退出无敌模式(进入模式后人物不会死亡)(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.MAKE,
'@' + g_GameCommand.MAKE.sCmd + ' 物品名称 数量',
'制造指定物品(支持权限分配,小于最大权限受允许、禁止制造列表限制)');
RefGameMasterCmd(@g_GameCommand.SMAKE,
'@' + g_GameCommand.SMAKE.sCmd + ' 参数详见使用说明',
'调整自己身上的物品属性(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.Move,
'@' + g_GameCommand.Move.sCmd + ' 地图号',
'移动到指定地图(支持权限分配,小于最大权限受受禁止传送地图列表限制)');
RefGameMasterCmd(@g_GameCommand.POSITIONMOVE,
'@' + g_GameCommand.POSITIONMOVE.sCmd + ' 地图号 X Y',
'移动到指定地图(支持权限分配,小于最大权限受受禁止传送地图列表限制)');
RefGameMasterCmd(@g_GameCommand.RECALL,
'@' + g_GameCommand.RECALL.sCmd + ' 人物名称',
'将指定人物召唤到身边(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.REGOTO,
'@' + g_GameCommand.REGOTO.sCmd + ' 人物名称',
'跟踪指定人物(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.TING,
'@' + g_GameCommand.TING.sCmd + ' 人物名称',
'将指定人物随机传送(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SUPERTING,
'@' + g_GameCommand.SUPERTING.sCmd + ' 人物名称 范围大小',
'将指定人物身边指定范围内的人物随机传送(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.MAPMOVE,
'@' + g_GameCommand.MAPMOVE.sCmd + ' 源地图号 目标地图号',
'将整个地图中的人物移动到其它地图中(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.INFO,
'@' + g_GameCommand.INFO.sCmd + ' 人物名称',
'看人物信息(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.HUMANLOCAL,
'@' + g_GameCommand.HUMANLOCAL.sCmd + ' 地图号',
'查询人物IP所在地区(需加载IP地区查询插件)(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.VIEWWHISPER,
'@' + g_GameCommand.VIEWWHISPER.sCmd + ' 人物名称',
'查看指定人物的私聊信息(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.MOBLEVEL,
'@' + g_GameCommand.MOBLEVEL.sCmd,
'查看身边角色信息(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.MOBCOUNT,
'@' + g_GameCommand.MOBCOUNT.sCmd + ' 地图号',
'查看地图中怪物数量(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.HUMANCOUNT,
'@' + g_GameCommand.HUMANCOUNT.sCmd,
'查看身边人数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.Map,
'@' + g_GameCommand.Map.sCmd,
'显示当前所在地图相关信息(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.Level,
'@' + g_GameCommand.Level.sCmd,
'调整自己的等级(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.KICK,
'@' + g_GameCommand.KICK.sCmd + ' 人物名称',
'将指定人物踢下线(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ReAlive,
'@' + g_GameCommand.ReAlive.sCmd + ' 人物名称',
'将指定人物复活(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.KILL,
'@' + g_GameCommand.KILL.sCmd + '人物名称',
'将指定人物或怪物杀死(杀怪物时需面对怪物)(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CHANGEJOB,
'@' + g_GameCommand.CHANGEJOB.sCmd + ' 人物名称 职业类型(Warr Wizard Taos)',
'调整人物的职业(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.FREEPENALTY,
'@' + g_GameCommand.FREEPENALTY.sCmd + ' 人物名称',
'清除指定人物的PK值(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.PKPOINT,
'@' + g_GameCommand.PKPOINT.sCmd + ' 人物名称',
'查看指定人物的PK值(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.IncPkPoint,
'@' + g_GameCommand.IncPkPoint.sCmd + ' 人物名称 点数',
'增加指定人物的PK值(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CHANGEGENDER,
'@' + g_GameCommand.CHANGEGENDER.sCmd + ' 人物名称 性别(男、女)',
'调整人物的性别(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.HAIR,
'@' + g_GameCommand.HAIR.sCmd + ' 类型值',
'更改指定人物的头发类型(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.BonusPoint,
'@' + g_GameCommand.BonusPoint.sCmd + ' 人物名称 属性点数',
'调整人物的属性点数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELBONUSPOINT,
'@' + g_GameCommand.DELBONUSPOINT.sCmd + ' 人物名称',
'删除人物的属性点数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.RESTBONUSPOINT,
'@' + g_GameCommand.RESTBONUSPOINT.sCmd + ' 人物名称',
'将人物的属性点数重新分配(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SETPERMISSION,
'@' + g_GameCommand.SETPERMISSION.sCmd + ' 人物名称 权限等级(0 - 10)',
'调整人物的权限等级,可以将普通人物升为GM权限(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.RENEWLEVEL,
'@' + g_GameCommand.RENEWLEVEL.sCmd + ' 人物名称 点数(为空则查看)',
'调整查看人物的转生等级(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELGOLD,
'@' + g_GameCommand.DELGOLD.sCmd + ' 人物名称 数量',
'删除人物指定数量的金币(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ADDGOLD,
'@' + g_GameCommand.ADDGOLD.sCmd + ' 人物名称 数量',
'增加人物指定数量的金币(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.GAMEGOLD,
'@' + g_GameCommand.GAMEGOLD.sCmd + ' 人物名称 控制符(+ - =) 数量',
'调整人物的游戏币数量(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.GAMEPOINT,
'@' + g_GameCommand.GAMEPOINT.sCmd + ' 人物名称 控制符(+ - =) 数量',
'调整人物的游戏点数量(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CREDITPOINT,
'@' + g_GameCommand.CREDITPOINT.sCmd + ' 人物名称 控制符(+ - =) 点数',
'调整人物的声望点数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.REFINEWEAPON,
'@' + g_GameCommand.REFINEWEAPON.sCmd + ' 攻击力 魔法力 道术 准确度',
'调整身上武器属性(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ADJUESTLEVEL,
'@' + g_GameCommand.ADJUESTLEVEL.sCmd + ' 人物名称 等级',
'调整指定人物的等级(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ADJUESTEXP,
'@' + g_GameCommand.ADJUESTEXP.sCmd + ' 人物名称 经验值',
'调整指定人物的经验值(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CHANGEDEARNAME,
'@' + g_GameCommand.CHANGEDEARNAME.sCmd + ' 人物名称 配偶名称(如果为 无 则清除)',
'更改指定人物的配偶名称(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CHANGEMASTERNAME,
'@' + g_GameCommand.CHANGEMASTERNAME.sCmd + ' 人物名称 师徒名称(如果为 无 则清除)',
'更改指定人物的师徒名称(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.RECALLMOB,
'@' + g_GameCommand.RECALLMOB.sCmd + ' 怪物名称 数量 召唤等级',
'召唤指定怪物为宝宝(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.TRAINING,
'@' + g_GameCommand.TRAINING.sCmd + ' 人物名称 技能名称 修炼等级(0-3)',
'调整人物的技能修炼等级(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.TRAININGSKILL,
'@' + g_GameCommand.TRAININGSKILL.sCmd + ' 人物名称 技能名称 修炼等级(0-3)',
'给指定人物增加技能(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELETESKILL,
'@' + g_GameCommand.DELETESKILL.sCmd + ' 人物名称 技能名称(All)',
'删除人物的技能,All代表删除全部技能(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELETEITEM,
'@' + g_GameCommand.DELETEITEM.sCmd + ' 人物名称 物品名称 数量',
'删除人物身上指定的物品(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CLEARMISSION,
'@' + g_GameCommand.CLEARMISSION.sCmd + ' 人物名称',
'清除人物的任务标志(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.AddGuild,
'@' + g_GameCommand.AddGuild.sCmd + ' 行会名称 掌门人',
'新建一个行会(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELGUILD,
'@' + g_GameCommand.DELGUILD.sCmd + ' 行会名称',
'删除一个行会(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CHANGESABUKLORD,
'@' + g_GameCommand.CHANGESABUKLORD.sCmd + ' 行会名称',
'更改城堡所属行会(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.FORCEDWALLCONQUESTWAR,
'@' + g_GameCommand.FORCEDWALLCONQUESTWAR.sCmd,
'强行开始/停止攻城战(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.CONTESTPOINT,
'@' + g_GameCommand.CONTESTPOINT.sCmd + ' 行会名称',
'查看行会争霸赛得分情况(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.STARTCONTEST,
'@' + g_GameCommand.STARTCONTEST.sCmd,
'开始行会争霸赛(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ENDCONTEST,
'@' + g_GameCommand.ENDCONTEST.sCmd,
'结束行会争霸赛(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ANNOUNCEMENT,
'@' + g_GameCommand.ANNOUNCEMENT.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.MOB,
'@' + g_GameCommand.MOB.sCmd + ' 怪物名称 数量',
'在身边放置指定类型数量的怪物(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.Mission,
'@' + g_GameCommand.Mission.sCmd + ' X Y',
'设置怪物的集中点(举行怪物攻城用)(支持权限分配');
RefGameMasterCmd(@g_GameCommand.MobPlace,
'@' + g_GameCommand.MobPlace.sCmd + ' X Y 怪物名称 怪物数量',
'在当前地图指定XY放置怪物(支持权限分配(先必须设置怪物的集中点),放置的怪物大刀守卫不会攻击这些怪物');
RefGameMasterCmd(@g_GameCommand.CLEARMON,
'@' + g_GameCommand.CLEARMON.sCmd + ' 地图号(* 为所有) 怪物名称(* 为所有) 掉物品(0,1)',
'清除地图中的怪物(支持权限分配'')');
RefGameMasterCmd(@g_GameCommand.DISABLESENDMSG,
'@' + g_GameCommand.DISABLESENDMSG.sCmd + ' 人物名称',
'将指定人物加入发言过滤列表,加入列表后自己发的文字自己可以看到,其他人看不到(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.ENABLESENDMSG,
'@' + g_GameCommand.ENABLESENDMSG.sCmd,
'将指定人物从发言过滤列表中删除(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DISABLESENDMSGLIST,
'@' + g_GameCommand.DISABLESENDMSGLIST.sCmd,
'查看发言过滤列表中的内容(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SHUTUP,
'@' + g_GameCommand.SHUTUP.sCmd + ' 人物名称',
'将指定人物禁言(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.RELEASESHUTUP,
'@' + g_GameCommand.RELEASESHUTUP.sCmd + ' 人物名称',
'将指定人物从禁言列表中删除(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SHUTUPLIST,
'@' + g_GameCommand.SHUTUPLIST.sCmd,
'查看禁言列表中的内容(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SABUKWALLGOLD,
'@' + g_GameCommand.SABUKWALLGOLD.sCmd,
'查看城堡金币数(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.STARTQUEST,
'@' + g_GameCommand.STARTQUEST.sCmd,
'开始提问功能,游戏中所有人同时跳出问题窗口(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DENYIPLOGON,
'@' + g_GameCommand.DENYIPLOGON.sCmd + ' IP地址 是否永久封(0,1)',
'将指定IP地址加入禁止登录列表,以这些IP登录的用户将无法进入游戏(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DENYACCOUNTLOGON,
'@' + g_GameCommand.DENYACCOUNTLOGON.sCmd + ' 登录帐号 是否永久封(0,1)',
'将指定登录帐号加入禁止登录列表,以此帐号登录的用户将无法进入游戏(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DENYCHARNAMELOGON,
'@' + g_GameCommand.DENYCHARNAMELOGON.sCmd + ' 人物名称 是否永久封(0,1)',
'将指定人物名称加入禁止登录列表,此人物将无法进入游戏(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELDENYIPLOGON,
'@' + g_GameCommand.DELDENYIPLOGON.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELDENYACCOUNTLOGON,
'@' + g_GameCommand.DELDENYACCOUNTLOGON.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.DELDENYCHARNAMELOGON,
'@' + g_GameCommand.DELDENYCHARNAMELOGON.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SHOWDENYIPLOGON,
'@' + g_GameCommand.SHOWDENYIPLOGON.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SHOWDENYACCOUNTLOGON,
'@' + g_GameCommand.SHOWDENYACCOUNTLOGON.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SHOWDENYCHARNAMELOGON,
'@' + g_GameCommand.SHOWDENYCHARNAMELOGON.sCmd,
'(支持权限分配)');
RefGameMasterCmd(@g_GameCommand.SETMAPMODE,
'@' + g_GameCommand.SETMAPMODE.sCmd,
'设置地图模式');
RefGameMasterCmd(@g_GameCommand.SHOWMAPMODE,
'@' + g_GameCommand.SHOWMAPMODE.sCmd,
'显示地图模式');
RefGameMasterCmd(@g_GameCommand.Attack,
'@' + g_GameCommand.Attack.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.LUCKYPOINT,
'@' + g_GameCommand.LUCKYPOINT.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.CHANGELUCK,
'@' + g_GameCommand.CHANGELUCK.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.HUNGER,
'@' + g_GameCommand.HUNGER.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.NAMECOLOR,
'@' + g_GameCommand.NAMECOLOR.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.TRANSPARECY,
'@' + g_GameCommand.TRANSPARECY.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.LEVEL0,
'@' + g_GameCommand.LEVEL0.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.CHANGEITEMNAME,
'@' + g_GameCommand.CHANGEITEMNAME.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.ADDTOITEMEVENT,
'@' + g_GameCommand.ADDTOITEMEVENT.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.ADDTOITEMEVENTASPIECES,
'@' + g_GameCommand.ADDTOITEMEVENTASPIECES.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.ItemEventList,
'@' + g_GameCommand.ItemEventList.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.STARTINGGIFTNO,
'@' + g_GameCommand.STARTINGGIFTNO.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.DELETEALLITEMEVENT,
'@' + g_GameCommand.DELETEALLITEMEVENT.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.STARTITEMEVENT,
'@' + g_GameCommand.STARTITEMEVENT.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.ITEMEVENTTERM,
'@' + g_GameCommand.ITEMEVENTTERM.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.OPDELETESKILL,
'@' + g_GameCommand.OPDELETESKILL.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.CHANGEWEAPONDURA,
'@' + g_GameCommand.CHANGEWEAPONDURA.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.SBKDOOR,
'@' + g_GameCommand.SBKDOOR.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.SPIRIT,
'@' + g_GameCommand.SPIRIT.sCmd,
'');
RefGameMasterCmd(@g_GameCommand.SPIRITSTOP,
'@' + g_GameCommand.SPIRITSTOP.sCmd,
'');
end;
procedure TfrmGameCmd.RefGameDebugCmd(GameCmd: pTGameCmd; sCmdParam, sDesc: string);
begin
Inc(nRefGameDebugIndex);
if StringGridGameMasterCmd.RowCount - 1 < nRefGameDebugIndex then begin
StringGridGameDebugCmd.RowCount := nRefGameDebugIndex + 1;
end;
StringGridGameDebugCmd.Cells[0, nRefGameDebugIndex] := GameCmd.sCmd;
StringGridGameDebugCmd.Cells[1, nRefGameDebugIndex] := IntToStr(GameCmd.nPermissionMin) + '/' + IntToStr(GameCmd.nPermissionMax);
StringGridGameDebugCmd.Cells[2, nRefGameDebugIndex] := sCmdParam;
StringGridGameDebugCmd.Cells[3, nRefGameDebugIndex] := sDesc;
StringGridGameDebugCmd.Objects[0, nRefGameDebugIndex] := TObject(GameCmd);
end;
procedure TfrmGameCmd.RefDebugCommand;
var
GameCmd: pTGameCmd;
begin
EditGameDebugCmdOK.Enabled := False;
// StringGridGameDebugCmd.RowCount:=41;
GameCmd := @g_GameCommand.SHOWFLAG;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.SETFLAG;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.SHOWOPEN;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.SETOPEN;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.SHOWUNIT;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.SETUNIT;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.MOBNPC;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.DELNPC;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.LOTTERYTICKET;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.RELOADADMIN;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载管理员列表');
GameCmd := @g_GameCommand.ReLoadNpc;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载NPC脚本');
GameCmd := @g_GameCommand.RELOADMANAGE;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载登录脚本');
GameCmd := @g_GameCommand.RELOADROBOTMANAGE;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载机器人配置');
GameCmd := @g_GameCommand.RELOADROBOT;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载机器人脚本');
GameCmd := @g_GameCommand.RELOADMONITEMS;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载怪物爆率配置');
GameCmd := @g_GameCommand.RELOADDIARY;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'未使用');
GameCmd := @g_GameCommand.RELOADITEMDB;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载物品数据库');
GameCmd := @g_GameCommand.RELOADMAGICDB;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'未使用');
GameCmd := @g_GameCommand.RELOADMONSTERDB;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载怪物数据库');
GameCmd := @g_GameCommand.RELOADMINMAP;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载小地图配置');
GameCmd := @g_GameCommand.RELOADGUILD;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.RELOADGUILDALL;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.RELOADLINENOTICE;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载游戏公告信息');
GameCmd := @g_GameCommand.RELOADABUSE;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'重新加载脏话过滤配置');
GameCmd := @g_GameCommand.BACKSTEP;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.RECONNECTION;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'将指定人物重新切换网络连接');
GameCmd := @g_GameCommand.DISABLEFILTER;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'禁用脏话过滤功能');
GameCmd := @g_GameCommand.CHGUSERFULL;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.CHGZENFASTSTEP;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.OXQUIZROOM;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.BALL;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.FIREBURN;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.TESTFIRE;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.TESTSTATUS;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.TESTGOLDCHANGE;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.GSA;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.TESTGA;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'');
GameCmd := @g_GameCommand.MAPINFO;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'显示地图信息');
GameCmd := @g_GameCommand.CLEARBAG;
RefGameDebugCmd(GameCmd,
'@' + GameCmd.sCmd,
'清除背包全部物品');
end;
procedure TfrmGameCmd.StringGridGameMasterCmdClick(Sender: TObject);
var
nIndex: Integer;
GameCmd: pTGameCmd;
begin
nIndex := StringGridGameMasterCmd.Row;
GameCmd := pTGameCmd(StringGridGameMasterCmd.Objects[0, nIndex]);
if GameCmd <> nil then begin
EditGameMasterCmdName.Text := GameCmd.sCmd;
EditGameMasterCmdPerMission.Value := GameCmd.nPermissionMin;
LabelGameMasterCmdParam.Caption := StringGridGameMasterCmd.Cells[2, nIndex];
LabelGameMasterCmdFunc.Caption := StringGridGameMasterCmd.Cells[3, nIndex];
end;
EditGameMasterCmdOK.Enabled := False;
end;
procedure TfrmGameCmd.EditGameMasterCmdNameChange(Sender: TObject);
begin
EditGameMasterCmdOK.Enabled := True;
EditGameMasterCmdSave.Enabled := True;
end;
procedure TfrmGameCmd.EditGameMasterCmdPerMissionChange(Sender: TObject);
begin
EditGameMasterCmdOK.Enabled := True;
EditGameMasterCmdSave.Enabled := True;
end;
procedure TfrmGameCmd.EditGameMasterCmdOKClick(Sender: TObject);
var
nIndex: Integer;
GameCmd: pTGameCmd;
sCmd: string;
nPermission: Integer;
begin
sCmd := Trim(EditGameMasterCmdName.Text);
nPermission := EditGameMasterCmdPerMission.Value;
if sCmd = '' then begin
Application.MessageBox('命令名称不能为空!!!', '提示信息', MB_OK + MB_ICONERROR);
EditGameMasterCmdName.SetFocus;
exit;
end;
nIndex := StringGridGameMasterCmd.Row;
GameCmd := pTGameCmd(StringGridGameMasterCmd.Objects[0, nIndex]);
if GameCmd <> nil then begin
GameCmd.sCmd := sCmd;
GameCmd.nPermissionMin := nPermission;
end;
RefGameMasterCommand();
end;
procedure TfrmGameCmd.EditGameMasterCmdSaveClick(Sender: TObject);
begin
EditGameMasterCmdSave.Enabled := False;
{$IF SoftVersion <> VERDEMO}
CommandConf.WriteString('Command', 'ObServer', g_GameCommand.OBSERVER.sCmd);
CommandConf.WriteString('Command', 'GameMaster', g_GameCommand.GAMEMASTER.sCmd);
CommandConf.WriteString('Command', 'SuperMan', g_GameCommand.SUEPRMAN.sCmd);
CommandConf.WriteString('Command', 'StorageClearPassword', g_GameCommand.CLRPASSWORD.sCmd);
CommandConf.WriteString('Command', 'Who', g_GameCommand.WHO.sCmd);
CommandConf.WriteString('Command', 'Total', g_GameCommand.TOTAL.sCmd);
CommandConf.WriteString('Command', 'Make', g_GameCommand.MAKE.sCmd);
CommandConf.WriteString('Command', 'PositionMove', g_GameCommand.POSITIONMOVE.sCmd);
CommandConf.WriteString('Command', 'Move', g_GameCommand.Move.sCmd);
CommandConf.WriteString('Command', 'Recall', g_GameCommand.RECALL.sCmd);
CommandConf.WriteString('Command', 'ReGoto', g_GameCommand.REGOTO.sCmd);
CommandConf.WriteString('Command', 'Ting', g_GameCommand.TING.sCmd);
CommandConf.WriteString('Command', 'SuperTing', g_GameCommand.SUPERTING.sCmd);
CommandConf.WriteString('Command', 'MapMove', g_GameCommand.MAPMOVE.sCmd);
CommandConf.WriteString('Command', 'Info', g_GameCommand.INFO.sCmd);
CommandConf.WriteString('Command', 'HumanLocal', g_GameCommand.HUMANLOCAL.sCmd);
CommandConf.WriteString('Command', 'ViewWhisper', g_GameCommand.VIEWWHISPER.sCmd);
CommandConf.WriteString('Command', 'MobLevel', g_GameCommand.MOBLEVEL.sCmd);
CommandConf.WriteString('Command', 'MobCount', g_GameCommand.MOBCOUNT.sCmd);
CommandConf.WriteString('Command', 'HumanCount', g_GameCommand.HUMANCOUNT.sCmd);
CommandConf.WriteString('Command', 'Map', g_GameCommand.Map.sCmd);
CommandConf.WriteString('Command', 'Level', g_GameCommand.Level.sCmd);
CommandConf.WriteString('Command', 'Kick', g_GameCommand.KICK.sCmd);
CommandConf.WriteString('Command', 'ReAlive', g_GameCommand.ReAlive.sCmd);
CommandConf.WriteString('Command', 'Kill', g_GameCommand.KILL.sCmd);
CommandConf.WriteString('Command', 'ChangeJob', g_GameCommand.CHANGEJOB.sCmd);
CommandConf.WriteString('Command', 'FreePenalty', g_GameCommand.FREEPENALTY.sCmd);
CommandConf.WriteString('Command', 'PkPoint', g_GameCommand.PKPOINT.sCmd);
CommandConf.WriteString('Command', 'IncPkPoint', g_GameCommand.IncPkPoint.sCmd);
CommandConf.WriteString('Command', 'ChangeGender', g_GameCommand.CHANGEGENDER.sCmd);
CommandConf.WriteString('Command', 'Hair', g_GameCommand.HAIR.sCmd);
CommandConf.WriteString('Command', 'BonusPoint', g_GameCommand.BonusPoint.sCmd);
CommandConf.WriteString('Command', 'DelBonuPoint', g_GameCommand.DELBONUSPOINT.sCmd);
CommandConf.WriteString('Command', 'RestBonuPoint', g_GameCommand.RESTBONUSPOINT.sCmd);
CommandConf.WriteString('Command', 'SetPermission', g_GameCommand.SETPERMISSION.sCmd);
CommandConf.WriteString('Command', 'ReNewLevel', g_GameCommand.RENEWLEVEL.sCmd);
CommandConf.WriteString('Command', 'DelGold', g_GameCommand.DELGOLD.sCmd);
CommandConf.WriteString('Command', 'AddGold', g_GameCommand.ADDGOLD.sCmd);
CommandConf.WriteString('Command', 'GameGold', g_GameCommand.GAMEGOLD.sCmd);
CommandConf.WriteString('Command', 'GamePoint', g_GameCommand.GAMEPOINT.sCmd);
CommandConf.WriteString('Command', 'CreditPoint', g_GameCommand.CREDITPOINT.sCmd);
CommandConf.WriteString('Command', 'RefineWeapon', g_GameCommand.REFINEWEAPON.sCmd);
CommandConf.WriteString('Command', 'AdjuestTLevel', g_GameCommand.ADJUESTLEVEL.sCmd);
CommandConf.WriteString('Command', 'AdjuestExp', g_GameCommand.ADJUESTEXP.sCmd);
CommandConf.WriteString('Command', 'ChangeDearName', g_GameCommand.CHANGEDEARNAME.sCmd);
CommandConf.WriteString('Command', 'ChangeMasterrName', g_GameCommand.CHANGEMASTERNAME.sCmd);
CommandConf.WriteString('Command', 'RecallMob', g_GameCommand.RECALLMOB.sCmd);
CommandConf.WriteString('Command', 'Training', g_GameCommand.TRAINING.sCmd);
CommandConf.WriteString('Command', 'OpTraining', g_GameCommand.TRAININGSKILL.sCmd);
CommandConf.WriteString('Command', 'DeleteSkill', g_GameCommand.DELETESKILL.sCmd);
CommandConf.WriteString('Command', 'DeleteItem', g_GameCommand.DELETEITEM.sCmd);
CommandConf.WriteString('Command', 'ClearMission', g_GameCommand.CLEARMISSION.sCmd);
CommandConf.WriteString('Command', 'AddGuild', g_GameCommand.AddGuild.sCmd);
CommandConf.WriteString('Command', 'DelGuild', g_GameCommand.DELGUILD.sCmd);
CommandConf.WriteString('Command', 'ChangeSabukLord', g_GameCommand.CHANGESABUKLORD.sCmd);
CommandConf.WriteString('Command', 'ForcedWallConQuestWar', g_GameCommand.FORCEDWALLCONQUESTWAR.sCmd);
CommandConf.WriteString('Command', 'ContestPoint', g_GameCommand.CONTESTPOINT.sCmd);
CommandConf.WriteString('Command', 'StartContest', g_GameCommand.STARTCONTEST.sCmd);
CommandConf.WriteString('Command', 'EndContest', g_GameCommand.ENDCONTEST.sCmd);
CommandConf.WriteString('Command', 'Announcement', g_GameCommand.ANNOUNCEMENT.sCmd);
CommandConf.WriteString('Command', 'MobLevel', g_GameCommand.MOBLEVEL.sCmd);
CommandConf.WriteString('Command', 'Mission', g_GameCommand.Mission.sCmd);
CommandConf.WriteString('Command', 'MobPlace', g_GameCommand.MobPlace.sCmd);
CommandConf.WriteInteger('Permission', 'GameMaster', g_GameCommand.GAMEMASTER.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ObServer', g_GameCommand.OBSERVER.nPermissionMin);
CommandConf.WriteInteger('Permission', 'SuperMan', g_GameCommand.SUEPRMAN.nPermissionMin);
CommandConf.WriteInteger('Permission', 'StorageClearPassword', g_GameCommand.CLRPASSWORD.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Who', g_GameCommand.WHO.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Total', g_GameCommand.TOTAL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MakeMin', g_GameCommand.MAKE.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MakeMax', g_GameCommand.MAKE.nPermissionMax);
CommandConf.WriteInteger('Permission', 'PositionMoveMin', g_GameCommand.POSITIONMOVE.nPermissionMin);
CommandConf.WriteInteger('Permission', 'PositionMoveMax', g_GameCommand.POSITIONMOVE.nPermissionMax);
CommandConf.WriteInteger('Permission', 'MoveMin', g_GameCommand.Move.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MoveMax', g_GameCommand.Move.nPermissionMax);
CommandConf.WriteInteger('Permission', 'Recall', g_GameCommand.RECALL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ReGoto', g_GameCommand.REGOTO.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Ting', g_GameCommand.TING.nPermissionMin);
CommandConf.WriteInteger('Permission', 'SuperTing', g_GameCommand.SUPERTING.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MapMove', g_GameCommand.MAPMOVE.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Info', g_GameCommand.INFO.nPermissionMin);
CommandConf.WriteInteger('Permission', 'HumanLocal', g_GameCommand.HUMANLOCAL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ViewWhisper', g_GameCommand.VIEWWHISPER.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MobLevel', g_GameCommand.MOBLEVEL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MobCount', g_GameCommand.MOBCOUNT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'HumanCount', g_GameCommand.HUMANCOUNT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Map', g_GameCommand.Map.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Level', g_GameCommand.Level.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Kick', g_GameCommand.KICK.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ReAlive', g_GameCommand.ReAlive.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Kill', g_GameCommand.KILL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ChangeJob', g_GameCommand.CHANGEJOB.nPermissionMin);
CommandConf.WriteInteger('Permission', 'FreePenalty', g_GameCommand.FREEPENALTY.nPermissionMin);
CommandConf.WriteInteger('Permission', 'PkPoint', g_GameCommand.PKPOINT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'IncPkPoint', g_GameCommand.IncPkPoint.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ChangeGender', g_GameCommand.CHANGEGENDER.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Hair', g_GameCommand.HAIR.nPermissionMin);
CommandConf.WriteInteger('Permission', 'BonusPoint', g_GameCommand.BonusPoint.nPermissionMin);
CommandConf.WriteInteger('Permission', 'DelBonuPoint', g_GameCommand.DELBONUSPOINT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'RestBonuPoint', g_GameCommand.RESTBONUSPOINT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'SetPermission', g_GameCommand.SETPERMISSION.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ReNewLevel', g_GameCommand.RENEWLEVEL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'DelGold', g_GameCommand.DELGOLD.nPermissionMin);
CommandConf.WriteInteger('Permission', 'AddGold', g_GameCommand.ADDGOLD.nPermissionMin);
CommandConf.WriteInteger('Permission', 'GameGold', g_GameCommand.GAMEGOLD.nPermissionMin);
CommandConf.WriteInteger('Permission', 'GamePoint', g_GameCommand.GAMEPOINT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'CreditPoint', g_GameCommand.CREDITPOINT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'RefineWeapon', g_GameCommand.REFINEWEAPON.nPermissionMin);
CommandConf.WriteInteger('Permission', 'AdjuestTLevel', g_GameCommand.ADJUESTLEVEL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'AdjuestExp', g_GameCommand.ADJUESTEXP.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ChangeDearName', g_GameCommand.CHANGEDEARNAME.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ChangeMasterName', g_GameCommand.CHANGEMASTERNAME.nPermissionMin);
CommandConf.WriteInteger('Permission', 'RecallMob', g_GameCommand.RECALLMOB.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Training', g_GameCommand.TRAINING.nPermissionMin);
CommandConf.WriteInteger('Permission', 'OpTraining', g_GameCommand.TRAININGSKILL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'DeleteSkill', g_GameCommand.DELETESKILL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'DeleteItem', g_GameCommand.DELETEITEM.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ClearMission', g_GameCommand.CLEARMISSION.nPermissionMin);
CommandConf.WriteInteger('Permission', 'AddGuild', g_GameCommand.AddGuild.nPermissionMin);
CommandConf.WriteInteger('Permission', 'DelGuild', g_GameCommand.DELGUILD.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ChangeSabukLord', g_GameCommand.CHANGESABUKLORD.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ForcedWallConQuestWar', g_GameCommand.FORCEDWALLCONQUESTWAR.nPermissionMin);
CommandConf.WriteInteger('Permission', 'ContestPoint', g_GameCommand.CONTESTPOINT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'StartContest', g_GameCommand.STARTCONTEST.nPermissionMin);
CommandConf.WriteInteger('Permission', 'EndContest', g_GameCommand.ENDCONTEST.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Announcement', g_GameCommand.ANNOUNCEMENT.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MobLevel', g_GameCommand.MOBLEVEL.nPermissionMin);
CommandConf.WriteInteger('Permission', 'Mission', g_GameCommand.Mission.nPermissionMin);
CommandConf.WriteInteger('Permission', 'MobPlace', g_GameCommand.MobPlace.nPermissionMin);
{$IFEND}
end;
procedure TfrmGameCmd.StringGridGameDebugCmdClick(Sender: TObject);
var
nIndex: Integer;
GameCmd: pTGameCmd;
begin
nIndex := StringGridGameDebugCmd.Row;
GameCmd := pTGameCmd(StringGridGameDebugCmd.Objects[0, nIndex]);
if GameCmd <> nil then begin
EditGameDebugCmdName.Text := GameCmd.sCmd;
EditGameDebugCmdPerMission.Value := GameCmd.nPermissionMin;
LabelGameDebugCmdParam.Caption := StringGridGameDebugCmd.Cells[2, nIndex];
LabelGameDebugCmdFunc.Caption := StringGridGameDebugCmd.Cells[3, nIndex];
end;
EditGameDebugCmdOK.Enabled := False;
end;
procedure TfrmGameCmd.EditGameDebugCmdNameChange(Sender: TObject);
begin
EditGameDebugCmdOK.Enabled := True;
EditGameDebugCmdSave.Enabled := True;
end;
procedure TfrmGameCmd.EditGameDebugCmdPerMissionChange(Sender: TObject);
begin
EditGameDebugCmdOK.Enabled := True;
EditGameDebugCmdSave.Enabled := True;
end;
procedure TfrmGameCmd.EditGameDebugCmdOKClick(Sender: TObject);
var
nIndex: Integer;
GameCmd: pTGameCmd;
sCmd: string;
nPermission: Integer;
begin
sCmd := Trim(EditGameDebugCmdName.Text);
nPermission := EditGameDebugCmdPerMission.Value;
if sCmd = '' then begin
Application.MessageBox('命令名称不能为空!!!', '提示信息', MB_OK + MB_ICONERROR);
EditGameDebugCmdName.SetFocus;
exit;
end;
nIndex := StringGridGameDebugCmd.Row;
GameCmd := pTGameCmd(StringGridGameDebugCmd.Objects[0, nIndex]);
if GameCmd <> nil then begin
GameCmd.sCmd := sCmd;
GameCmd.nPermissionMin := nPermission;
end;
RefDebugCommand();
end;
procedure TfrmGameCmd.EditGameDebugCmdSaveClick(Sender: TObject);
begin
EditGameDebugCmdSave.Enabled := False;
end;
end.
-
Enthusiast
Re: GameOfMir
unit GameConfig;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Spin, Grids;
type
TLevelExpScheme = (s_OldLevelExp, s_StdLevelExp, s_2Mult, s_5Mult, s_8Mult, s_10Mult, s_20Mult, s_30Mult, s_40Mult, s_50Mult, s_60Mult, s_70Mult, s_80Mult, s_90Mult, s_100Mult, s_150Mult, s_200Mult, s_250Mult, s_300Mult);
TfrmGameConfig = class(TForm)
GameConfigControl: TPageControl;
GameSpeedSheet: TTabSheet;
GroupBox1: TGroupBox;
EditHitIntervalTime: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
EditMagicHitIntervalTime: TSpinEdit;
EditRunIntervalTime: TSpinEdit;
Label3: TLabel;
Label4: TLabel;
EditWalkIntervalTime: TSpinEdit;
Label5: TLabel;
EditTurnIntervalTime: TSpinEdit;
GroupBox2: TGroupBox;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
EditMaxHitMsgCount: TSpinEdit;
EditMaxSpellMsgCount: TSpinEdit;
EditMaxRunMsgCount: TSpinEdit;
EditMaxWalkMsgCount: TSpinEdit;
EditMaxTurnMsgCount: TSpinEdit;
EditMaxDigUpMsgCount: TSpinEdit;
GroupBox3: TGroupBox;
Label13: TLabel;
EditItemSpeedTime: TSpinEdit;
ButtonGameSpeedSave: TButton;
Label14: TLabel;
ExpSheet: TTabSheet;
GroupBox4: TGroupBox;
Label6: TLabel;
EditDigUpIntervalTime: TSpinEdit;
GeneralSheet: TTabSheet;
GroupBoxInfo: TGroupBox;
Label16: TLabel;
EditSoftVersionDate: TEdit;
GroupBox5: TGroupBox;
Label17: TLabel;
EditConsoleShowUserCountTime: TSpinEdit;
GroupBox6: TGroupBox;
Label18: TLabel;
EditShowLineNoticeTime: TSpinEdit;
ComboBoxLineNoticeColor: TComboBox;
Label19: TLabel;
ButtonGeneralSave: TButton;
Label21: TLabel;
EditLineNoticePreFix: TEdit;
GroupBox7: TGroupBox;
Label22: TLabel;
EditStruckTime: TSpinEdit;
CheckBoxDisableStruck: TCheckBox;
GroupBox8: TGroupBox;
Label23: TLabel;
EditKillMonExpMultiple: TSpinEdit;
CheckBoxHighLevelKillMonFixExp: TCheckBox;
ButtonExpSave: TButton;
CastleSheet: TTabSheet;
GroupBox9: TGroupBox;
Label24: TLabel;
EditRepairDoorPrice: TSpinEdit;
Label25: TLabel;
EditRepairWallPrice: TSpinEdit;
Label26: TLabel;
EditHireArcherPrice: TSpinEdit;
Label27: TLabel;
EditHireGuardPrice: TSpinEdit;
GroupBox10: TGroupBox;
Label31: TLabel;
Label32: TLabel;
EditCastleGoldMax: TSpinEdit;
EditCastleOneDayGold: TSpinEdit;
GroupBox11: TGroupBox;
Label28: TLabel;
Label29: TLabel;
EditCastleHomeX: TSpinEdit;
Label30: TLabel;
EditCastleHomeY: TSpinEdit;
EditCastleHomeMap: TEdit;
GroupBox12: TGroupBox;
Label34: TLabel;
Label35: TLabel;
EditWarRangeX: TSpinEdit;
EditWarRangeY: TSpinEdit;
ButtonCastleSave: TButton;
GroupBox13: TGroupBox;
Label36: TLabel;
EditTaxRate: TSpinEdit;
CheckBoxGetAllNpcTax: TCheckBox;
GroupBox14: TGroupBox;
Label33: TLabel;
EditCastleName: TEdit;
GroupBoxLevelExp: TGroupBox;
ComboBoxLevelExp: TComboBox;
GridLevelExp: TStringGrid;
Label37: TLabel;
GroupBox15: TGroupBox;
Label38: TLabel;
EditOverSpeedKickCount: TSpinEdit;
CheckBoxboKickOverSpeed: TCheckBox;
TabSheet1: TTabSheet;
ButtonOptionSave: TButton;
GroupBox16: TGroupBox;
EditSafeZoneSize: TSpinEdit;
Label39: TLabel;
GroupBox18: TGroupBox;
Label40: TLabel;
EditStartPointSize: TSpinEdit;
GroupBox20: TGroupBox;
EditRedHomeX: TSpinEdit;
Label42: TLabel;
Label43: TLabel;
EditRedHomeY: TSpinEdit;
Label44: TLabel;
EditRedHomeMap: TEdit;
GroupBox21: TGroupBox;
Label45: TLabel;
Label46: TLabel;
Label47: TLabel;
EditRedDieHomeX: TSpinEdit;
EditRedDieHomeY: TSpinEdit;
EditRedDieHomeMap: TEdit;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
GroupBox17: TGroupBox;
CheckBoxDisHumRun: TCheckBox;
CheckBoxRunHum: TCheckBox;
CheckBoxRunMon: TCheckBox;
CheckBoxWarDisHumRun: TCheckBox;
CheckBoxRunNpc: TCheckBox;
ButtonOptionSave3: TButton;
GroupBox22: TGroupBox;
Label48: TLabel;
Label49: TLabel;
Label50: TLabel;
EditHomeX: TSpinEdit;
EditHomeY: TSpinEdit;
EditHomeMap: TEdit;
ButtonOptionSave2: TButton;
GroupBox23: TGroupBox;
Label51: TLabel;
Label52: TLabel;
EditDecPkPointTime: TSpinEdit;
EditDecPkPointCount: TSpinEdit;
Label53: TLabel;
GroupBox24: TGroupBox;
Label54: TLabel;
EditPKFlagTime: TSpinEdit;
GroupBox25: TGroupBox;
Label55: TLabel;
EditKillHumanAddPKPoint: TSpinEdit;
TabSheet4: TTabSheet;
GroupBox28: TGroupBox;
CheckBoxTestServer: TCheckBox;
CheckBoxServiceMode: TCheckBox;
CheckBoxVentureMode: TCheckBox;
CheckBoxNonPKMode: TCheckBox;
GroupBox29: TGroupBox;
GroupBox30: TGroupBox;
Label60: TLabel;
EditStartPermission: TSpinEdit;
ButtonOptionSave0: TButton;
EditTestLevel: TSpinEdit;
Label61: TLabel;
EditTestGold: TSpinEdit;
Label62: TLabel;
EditTestUserLimit: TSpinEdit;
Label63: TLabel;
GroupBox31: TGroupBox;
Label64: TLabel;
EditUserFull: TSpinEdit;
GroupBox32: TGroupBox;
CheckBoxKillHumanWinLevel: TCheckBox;
CheckBoxKilledLostLevel: TCheckBox;
CheckBoxKilledLostExp: TCheckBox;
CheckBoxKillHumanWinExp: TCheckBox;
Label58: TLabel;
EditKillHumanWinLevel: TSpinEdit;
Label65: TLabel;
EditKilledLostLevel: TSpinEdit;
Label66: TLabel;
EditKillHumanWinExp: TSpinEdit;
EditKillHumanLostExp: TSpinEdit;
Label56: TLabel;
Label67: TLabel;
EditHumanLevelDiffer: TSpinEdit;
GroupBox33: TGroupBox;
Label68: TLabel;
EditHumanMaxGold: TSpinEdit;
EditHumanTryModeMaxGold: TSpinEdit;
Label69: TLabel;
GroupBox34: TGroupBox;
Label70: TLabel;
EditTryModeLevel: TSpinEdit;
CheckBoxTryModeUseStorage: TCheckBox;
GroupBox35: TGroupBox;
CheckBoxShowMakeItemMsg: TCheckBox;
CbViewHack: TCheckBox;
CkViewAdmfail: TCheckBox;
TabSheet5: TTabSheet;
GroupBox36: TGroupBox;
Label71: TLabel;
EditSayMsgMaxLen: TSpinEdit;
Label72: TLabel;
EditSayRedMsgMaxLen: TSpinEdit;
GroupBox37: TGroupBox;
Label73: TLabel;
EditCanShoutMsgLevel: TSpinEdit;
GroupBox38: TGroupBox;
Label75: TLabel;
CheckBoxShutRedMsgShowGMName: TCheckBox;
EditGMRedMsgCmd: TEdit;
ButtonMsgSave: TButton;
TabSheet6: TTabSheet;
GroupBox39: TGroupBox;
Label74: TLabel;
EditStartCastleWarDays: TSpinEdit;
GroupBox40: TGroupBox;
Label76: TLabel;
EditStartCastlewarTime: TSpinEdit;
Label77: TLabel;
Label78: TLabel;
GroupBox41: TGroupBox;
Label79: TLabel;
EditShowCastleWarEndMsgTime: TSpinEdit;
Label80: TLabel;
GroupBox42: TGroupBox;
Label81: TLabel;
Label82: TLabel;
EditCastleWarTime: TSpinEdit;
GroupBox43: TGroupBox;
Label83: TLabel;
Label84: TLabel;
EditGetCastleTime: TSpinEdit;
GroupBox44: TGroupBox;
Label85: TLabel;
Label86: TLabel;
EditSaveHumanRcdTime: TSpinEdit;
GroupBox45: TGroupBox;
Label87: TLabel;
Label88: TLabel;
EditHumanFreeDelayTime: TSpinEdit;
GroupBox46: TGroupBox;
Label89: TLabel;
Label90: TLabel;
EditMakeGhostTime: TSpinEdit;
Label91: TLabel;
EditClearDropOnFloorItemTime: TSpinEdit;
Label92: TLabel;
GroupBox47: TGroupBox;
Label93: TLabel;
Label94: TLabel;
EditFloorItemCanPickUpTime: TSpinEdit;
ButtonTimeSave: TButton;
TabSheet7: TTabSheet;
GroupBox48: TGroupBox;
Label95: TLabel;
EditBuildGuildPrice: TSpinEdit;
GroupBox49: TGroupBox;
Label96: TLabel;
EditGuildWarPrice: TSpinEdit;
GroupBox50: TGroupBox;
Label97: TLabel;
EditMakeDurgPrice: TSpinEdit;
ButtonPriceSave: TButton;
GroupBox51: TGroupBox;
Label98: TLabel;
EditSendOnlineCountRate: TSpinEdit;
Label99: TLabel;
EditSendOnlineTime: TSpinEdit;
CheckBoxSendOnlineCount: TCheckBox;
Label100: TLabel;
GroupBox52: TGroupBox;
Label101: TLabel;
Label102: TLabel;
Label103: TLabel;
EditMonsterPowerRate: TSpinEdit;
EditEditItemsPowerRate: TSpinEdit;
EditItemsACPowerRate: TSpinEdit;
GroupBox53: TGroupBox;
Label20: TLabel;
Label104: TLabel;
EditTryDealTime: TSpinEdit;
EditDealOKTime: TSpinEdit;
Label105: TLabel;
Label106: TLabel;
GroupBox54: TGroupBox;
Label107: TLabel;
EditCastleMemberPriceRate: TSpinEdit;
TabSheet8: TTabSheet;
ButtonMsgColorSave: TButton;
GroupBox55: TGroupBox;
Label108: TLabel;
Label109: TLabel;
EditHearMsgFColor: TSpinEdit;
EdittHearMsgBColor: TSpinEdit;
LabeltHearMsgFColor: TLabel;
LabelHearMsgBColor: TLabel;
GroupBox56: TGroupBox;
Label110: TLabel;
Label111: TLabel;
LabelWhisperMsgFColor: TLabel;
LabelWhisperMsgBColor: TLabel;
EditWhisperMsgFColor: TSpinEdit;
EditWhisperMsgBColor: TSpinEdit;
GroupBox57: TGroupBox;
Label112: TLabel;
Label113: TLabel;
LabelGMWhisperMsgFColor: TLabel;
LabelGMWhisperMsgBColor: TLabel;
EditGMWhisperMsgFColor: TSpinEdit;
EditGMWhisperMsgBColor: TSpinEdit;
GroupBox58: TGroupBox;
Label116: TLabel;
Label117: TLabel;
LabelRedMsgFColor: TLabel;
LabelRedMsgBColor: TLabel;
EditRedMsgFColor: TSpinEdit;
EditRedMsgBColor: TSpinEdit;
GroupBox59: TGroupBox;
Label120: TLabel;
Label121: TLabel;
LabelGreenMsgFColor: TLabel;
LabelGreenMsgBColor: TLabel;
EditGreenMsgFColor: TSpinEdit;
EditGreenMsgBColor: TSpinEdit;
GroupBox60: TGroupBox;
Label124: TLabel;
Label125: TLabel;
LabelBlueMsgFColor: TLabel;
LabelBlueMsgBColor: TLabel;
EditBlueMsgFColor: TSpinEdit;
EditBlueMsgBColor: TSpinEdit;
GroupBox61: TGroupBox;
Label128: TLabel;
Label129: TLabel;
LabelCryMsgFColor: TLabel;
LabelCryMsgBColor: TLabel;
EditCryMsgFColor: TSpinEdit;
EditCryMsgBColor: TSpinEdit;
GroupBox62: TGroupBox;
Label132: TLabel;
Label133: TLabel;
LabelGuildMsgFColor: TLabel;
LabelGuildMsgBColor: TLabel;
EditGuildMsgFColor: TSpinEdit;
EditGuildMsgBColor: TSpinEdit;
GroupBox63: TGroupBox;
Label136: TLabel;
Label137: TLabel;
LabelGroupMsgFColor: TLabel;
LabelGroupMsgBColor: TLabel;
EditGroupMsgFColor: TSpinEdit;
EditGroupMsgBColor: TSpinEdit;
CheckBoxPKLevelProtect: TCheckBox;
Label114: TLabel;
EditPKProtectLevel: TSpinEdit;
GroupBox26: TGroupBox;
Label57: TLabel;
EditPosionDecHealthTime: TSpinEdit;
GroupBox27: TGroupBox;
Label59: TLabel;
EditPosionDamagarmor: TSpinEdit;
Label115: TLabel;
EditRedPKProtectLevel: TSpinEdit;
GroupBox19: TGroupBox;
Label41: TLabel;
EditGroupMembersMax: TSpinEdit;
CheckBoxDisableSelfStruck: TCheckBox;
CheckBoxCanNotGetBackDeal: TCheckBox;
CheckBoxDisableDeal: TCheckBox;
GroupBox64: TGroupBox;
Label118: TLabel;
EditCanDropPrice: TSpinEdit;
CheckBoxControlDropItem: TCheckBox;
Label119: TLabel;
EditCanDropGold: TSpinEdit;
CheckBoxIsSafeDisableDrop: TCheckBox;
GroupBox65: TGroupBox;
Label122: TLabel;
Label123: TLabel;
LabelCustMsgFColor: TLabel;
LabelCustMsgBColor: TLabel;
EditCustMsgFColor: TSpinEdit;
EditCustMsgBColor: TSpinEdit;
GroupBox66: TGroupBox;
Label126: TLabel;
EditSuperRepairPriceRate: TSpinEdit;
Label127: TLabel;
EditRepairItemDecDura: TSpinEdit;
TabSheet9: TTabSheet;
ButtonHumanDieSave: TButton;
GroupBox67: TGroupBox;
CheckBoxKillByMonstDropUseItem: TCheckBox;
CheckBoxKillByHumanDropUseItem: TCheckBox;
CheckBoxDieScatterBag: TCheckBox;
CheckBoxDieDropGold: TCheckBox;
CheckBoxDieRedScatterBagAll: TCheckBox;
GroupBox69: TGroupBox;
Label130: TLabel;
Label131: TLabel;
Label134: TLabel;
ScrollBarDieDropUseItemRate: TScrollBar;
EditDieDropUseItemRate: TEdit;
ScrollBarDieRedDropUseItemRate: TScrollBar;
EditDieRedDropUseItemRate: TEdit;
ScrollBarDieScatterBagRate: TScrollBar;
EditDieScatterBagRate: TEdit;
CheckBoxGMRunAll: TCheckBox;
GroupBox68: TGroupBox;
Label135: TLabel;
Label138: TLabel;
EditSayMsgTime: TSpinEdit;
EditSayMsgCount: TSpinEdit;
Label139: TLabel;
EditDisableSayMsgTime: TSpinEdit;
Label140: TLabel;
Label141: TLabel;
Label142: TLabel;
EditDropOverSpeed: TSpinEdit;
GroupBox70: TGroupBox;
Label143: TLabel;
Label144: TLabel;
EditGuildWarTime: TSpinEdit;
GroupBox71: TGroupBox;
CheckBoxShowPreFixMsg: TCheckBox;
CheckBoxShowExceptionMsg: TCheckBox;
TabSheet10: TTabSheet;
ButtonCharStatusSave: TButton;
GroupBox72: TGroupBox;
CheckBoxParalyCanRun: TCheckBox;
CheckBoxParalyCanWalk: TCheckBox;
CheckBoxParalyCanHit: TCheckBox;
CheckBoxParalyCanSpell: TCheckBox;
ButtonGameSpeedDefault: TButton;
GroupBox73: TGroupBox;
CheckBoxCanOldClientLogon: TCheckBox;
CheckBoxSpellSendUpdateMsg: TCheckBox;
CheckBoxActionSendActionMsg: TCheckBox;
RadioButtonDelyMode: TRadioButton;
RadioButtonFilterMode: TRadioButton;
ButtonActionSpeedConfig: TButton;
CheckBoxRunGuard: TCheckBox;
CheckBoxSafeArea: TCheckBox;
GroupBox74: TGroupBox;
CheckBoxFixExp: TCheckBox;
Label15: TLabel;
Label145: TLabel;
SpinEditBaseExp: TSpinEdit;
SpinEditAddExp: TSpinEdit;
CheckBoxHighLevelGroupFixExp: TCheckBox;
procedure EditHitIntervalTimeChange(Sender: TObject);
procedure EditMagicHitIntervalTimeChange(Sender: TObject);
procedure EditRunIntervalTimeChange(Sender: TObject);
procedure EditWalkIntervalTimeChange(Sender: TObject);
procedure EditTurnIntervalTimeChange(Sender: TObject);
procedure EditMaxHitMsgCountChange(Sender: TObject);
procedure EditMaxSpellMsgCountChange(Sender: TObject);
procedure EditMaxRunMsgCountChange(Sender: TObject);
procedure EditMaxWalkMsgCountChange(Sender: TObject);
procedure EditMaxTurnMsgCountChange(Sender: TObject);
procedure EditMaxDigUpMsgCountChange(Sender: TObject);
procedure EditItemSpeedTimeChange(Sender: TObject);
procedure ButtonGameSpeedSaveClick(Sender: TObject);
procedure GameConfigControlChanging(Sender: TObject;
var AllowChange: Boolean);
procedure FormCreate(Sender: TObject);
procedure EditConsoleShowUserCountTimeChange(Sender: TObject);
procedure EditShowLineNoticeTimeChange(Sender: TObject);
procedure ComboBoxLineNoticeColorChange(Sender: TObject);
procedure EditSoftVersionDateChange(Sender: TObject);
procedure ButtonGeneralSaveClick(Sender: TObject);
procedure EditLineNoticePreFixChange(Sender: TObject);
procedure CheckBoxDisableStruckClick(Sender: TObject);
procedure EditStruckTimeChange(Sender: TObject);
procedure EditKillMonExpMultipleChange(Sender: TObject);
procedure CheckBoxHighLevelKillMonFixExpClick(Sender: TObject);
procedure ButtonExpSaveClick(Sender: TObject);
procedure EditRepairDoorPriceChange(Sender: TObject);
procedure EditRepairWallPriceChange(Sender: TObject);
procedure EditHireArcherPriceChange(Sender: TObject);
procedure EditHireGuardPriceChange(Sender: TObject);
procedure EditCastleGoldMaxChange(Sender: TObject);
procedure EditCastleOneDayGoldChange(Sender: TObject);
procedure EditCastleHomeMapChange(Sender: TObject);
procedure EditCastleHomeXChange(Sender: TObject);
procedure EditCastleHomeYChange(Sender: TObject);
procedure EditCastleNameChange(Sender: TObject);
procedure EditWarRangeXChange(Sender: TObject);
procedure EditWarRangeYChange(Sender: TObject);
procedure CheckBoxGetAllNpcTaxClick(Sender: TObject);
procedure EditTaxRateChange(Sender: TObject);
procedure ButtonCastleSaveClick(Sender: TObject);
procedure GridLevelExpSetEditText(Sender: TObject; ACol, ARow: Integer;
const Value: string);
procedure ComboBoxLevelExpClick(Sender: TObject);
procedure EditOverSpeedKickCountChange(Sender: TObject);
procedure CheckBoxboKickOverSpeedClick(Sender: TObject);
procedure CheckBoxDisHumRunClick(Sender: TObject);
procedure ButtonOptionSaveClick(Sender: TObject);
procedure CheckBoxRunHumClick(Sender: TObject);
procedure CheckBoxRunMonClick(Sender: TObject);
procedure CheckBoxWarDisHumRunClick(Sender: TObject);
procedure CheckBoxRunNpcClick(Sender: TObject);
procedure EditSafeZoneSizeChange(Sender: TObject);
procedure EditStartPointSizeChange(Sender: TObject);
procedure EditGroupMembersMaxChange(Sender: TObject);
procedure EditRedHomeXChange(Sender: TObject);
procedure EditRedHomeYChange(Sender: TObject);
procedure EditRedHomeMapChange(Sender: TObject);
procedure EditRedDieHomeMapChange(Sender: TObject);
procedure EditRedDieHomeXChange(Sender: TObject);
procedure EditRedDieHomeYChange(Sender: TObject);
procedure ButtonOptionSave3Click(Sender: TObject);
procedure EditHomeMapChange(Sender: TObject);
procedure EditHomeXChange(Sender: TObject);
procedure EditHomeYChange(Sender: TObject);
procedure EditDecPkPointTimeChange(Sender: TObject);
procedure EditDecPkPointCountChange(Sender: TObject);
procedure EditPKFlagTimeChange(Sender: TObject);
procedure EditKillHumanAddPKPointChange(Sender: TObject);
procedure ButtonOptionSave2Click(Sender: TObject);
procedure EditPosionDecHealthTimeChange(Sender: TObject);
procedure EditPosionDamagarmorChange(Sender: TObject);
procedure CheckBoxTestServerClick(Sender: TObject);
procedure CheckBoxServiceModeClick(Sender: TObject);
procedure CheckBoxVentureModeClick(Sender: TObject);
procedure CheckBoxNonPKModeClick(Sender: TObject);
procedure EditTestLevelChange(Sender: TObject);
procedure EditTestGoldChange(Sender: TObject);
procedure EditTestUserLimitChange(Sender: TObject);
procedure EditStartPermissionChange(Sender: TObject);
procedure EditUserFullChange(Sender: TObject);
procedure ButtonOptionSave0Click(Sender: TObject);
procedure CheckBoxKillHumanWinLevelClick(Sender: TObject);
procedure CheckBoxKilledLostLevelClick(Sender: TObject);
procedure CheckBoxKillHumanWinExpClick(Sender: TObject);
procedure CheckBoxKilledLostExpClick(Sender: TObject);
procedure EditKillHumanWinLevelChange(Sender: TObject);
procedure EditKilledLostLevelChange(Sender: TObject);
procedure EditKillHumanWinExpChange(Sender: TObject);
procedure EditKillHumanLostExpChange(Sender: TObject);
procedure EditHumanLevelDifferChange(Sender: TObject);
procedure EditHumanMaxGoldChange(Sender: TObject);
procedure EditHumanTryModeMaxGoldChange(Sender: TObject);
procedure EditTryModeLevelChange(Sender: TObject);
procedure CheckBoxTryModeUseStorageClick(Sender: TObject);
procedure CheckBoxShowMakeItemMsgClick(Sender: TObject);
procedure CbViewHackClick(Sender: TObject);
procedure CkViewAdmfailClick(Sender: TObject);
procedure EditSayMsgMaxLenChange(Sender: TObject);
procedure EditSayRedMsgMaxLenChange(Sender: TObject);
procedure EditCanShoutMsgLevelChange(Sender: TObject);
procedure CheckBoxShutRedMsgShowGMNameClick(Sender: TObject);
procedure EditGMRedMsgCmdChange(Sender: TObject);
procedure ButtonMsgSaveClick(Sender: TObject);
procedure EditStartCastleWarDaysChange(Sender: TObject);
procedure EditStartCastlewarTimeChange(Sender: TObject);
procedure EditShowCastleWarEndMsgTimeChange(Sender: TObject);
procedure EditCastleWarTimeChange(Sender: TObject);
procedure EditGetCastleTimeChange(Sender: TObject);
procedure EditMakeGhostTimeChange(Sender: TObject);
procedure EditClearDropOnFloorItemTimeChange(Sender: TObject);
procedure EditSaveHumanRcdTimeChange(Sender: TObject);
procedure EditHumanFreeDelayTimeChange(Sender: TObject);
procedure EditFloorItemCanPickUpTimeChange(Sender: TObject);
procedure ButtonTimeSaveClick(Sender: TObject);
procedure EditBuildGuildPriceChange(Sender: TObject);
procedure EditGuildWarPriceChange(Sender: TObject);
procedure EditMakeDurgPriceChange(Sender: TObject);
procedure ButtonPriceSaveClick(Sender: TObject);
procedure CheckBoxSendOnlineCountClick(Sender: TObject);
procedure EditSendOnlineCountRateChange(Sender: TObject);
procedure EditSendOnlineTimeChange(Sender: TObject);
procedure EditMonsterPowerRateChange(Sender: TObject);
procedure EditEditItemsPowerRateChange(Sender: TObject);
procedure EditItemsACPowerRateChange(Sender: TObject);
procedure EditTryDealTimeChange(Sender: TObject);
procedure EditDealOKTimeChange(Sender: TObject);
procedure EditCastleMemberPriceRateChange(Sender: TObject);
procedure EditHearMsgFColorChange(Sender: TObject);
procedure EdittHearMsgBColorChange(Sender: TObject);
procedure EditWhisperMsgFColorChange(Sender: TObject);
procedure EditWhisperMsgBColorChange(Sender: TObject);
procedure EditGMWhisperMsgFColorChange(Sender: TObject);
procedure EditGMWhisperMsgBColorChange(Sender: TObject);
procedure EditRedMsgFColorChange(Sender: TObject);
procedure EditRedMsgBColorChange(Sender: TObject);
procedure EditGreenMsgFColorChange(Sender: TObject);
procedure EditGreenMsgBColorChange(Sender: TObject);
procedure EditBlueMsgFColorChange(Sender: TObject);
procedure EditBlueMsgBColorChange(Sender: TObject);
procedure EditCryMsgFColorChange(Sender: TObject);
procedure EditCryMsgBColorChange(Sender: TObject);
procedure EditGuildMsgFColorChange(Sender: TObject);
procedure EditGuildMsgBColorChange(Sender: TObject);
procedure EditGroupMsgFColorChange(Sender: TObject);
procedure EditGroupMsgBColorChange(Sender: TObject);
procedure ButtonMsgColorSaveClick(Sender: TObject);
procedure CheckBoxPKLevelProtectClick(Sender: TObject);
procedure EditPKProtectLevelChange(Sender: TObject);
procedure EditRedPKProtectLevelChange(Sender: TObject);
procedure CheckBoxDisableSelfStruckClick(Sender: TObject);
procedure CheckBoxCanNotGetBackDealClick(Sender: TObject);
procedure CheckBoxDisableDealClick(Sender: TObject);
procedure CheckBoxControlDropItemClick(Sender: TObject);
procedure EditCanDropPriceChange(Sender: TObject);
procedure EditCanDropGoldChange(Sender: TObject);
procedure CheckBoxIsSafeDisableDropClick(Sender: TObject);
procedure EditCustMsgFColorChange(Sender: TObject);
procedure EditCustMsgBColorChange(Sender: TObject);
procedure EditSuperRepairPriceRateChange(Sender: TObject);
procedure EditRepairItemDecDuraChange(Sender: TObject);
procedure ButtonHumanDieSaveClick(Sender: TObject);
procedure ScrollBarDieDropUseItemRateChange(Sender: TObject);
procedure ScrollBarDieRedDropUseItemRateChange(Sender: TObject);
procedure ScrollBarDieScatterBagRateChange(Sender: TObject);
procedure CheckBoxKillByMonstDropUseItemClick(Sender: TObject);
procedure CheckBoxKillByHumanDropUseItemClick(Sender: TObject);
procedure CheckBoxDieScatterBagClick(Sender: TObject);
procedure CheckBoxDieDropGoldClick(Sender: TObject);
procedure CheckBoxDieRedScatterBagAllClick(Sender: TObject);
procedure CheckBoxGMRunAllClick(Sender: TObject);
procedure EditSayMsgTimeChange(Sender: TObject);
procedure EditSayMsgCountChange(Sender: TObject);
procedure EditDisableSayMsgTimeChange(Sender: TObject);
procedure EditDropOverSpeedChange(Sender: TObject);
procedure EditGuildWarTimeChange(Sender: TObject);
procedure CheckBoxShowPreFixMsgClick(Sender: TObject);
procedure CheckBoxShowExceptionMsgClick(Sender: TObject);
procedure CheckBoxParalyCanRunClick(Sender: TObject);
procedure CheckBoxParalyCanWalkClick(Sender: TObject);
procedure CheckBoxParalyCanHitClick(Sender: TObject);
procedure CheckBoxParalyCanSpellClick(Sender: TObject);
procedure ButtonCharStatusSaveClick(Sender: TObject);
procedure ButtonGameSpeedDefaultClick(Sender: TObject);
procedure CheckBoxCanOldClientLogonClick(Sender: TObject);
procedure CheckBoxSpellSendUpdateMsgClick(Sender: TObject);
procedure CheckBoxActionSendActionMsgClick(Sender: TObject);
procedure RadioButtonDelyModeClick(Sender: TObject);
procedure RadioButtonFilterModeClick(Sender: TObject);
procedure EditTestLevelKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ButtonActionSpeedConfigClick(Sender: TObject);
procedure CheckBoxRunGuardClick(Sender: TObject);
procedure CheckBoxSafeAreaClick(Sender: TObject);
procedure CheckBoxFixExpClick(Sender: TObject);
procedure SpinEditBaseExpChange(Sender: TObject);
procedure SpinEditAddExpChange(Sender: TObject);
procedure CheckBoxHighLevelGroupFixExpClick(Sender: TObject);
private
boOpened: Boolean;
boModValued: Boolean;
procedure ModValue();
procedure uModValue();
procedure RefGameSpeedConf();
procedure RefCharStatusConf();
procedure RefGameVarConf();
{ Private declarations }
public
procedure Open();
{ Public declarations }
end;
var
frmGameConfig: TfrmGameConfig;
implementation
uses M2Share, HUtil32, SDK, ActionSpeedConfig;
{$R *.dfm}
{ TfrmGameConfig }
procedure TfrmGameConfig.FormCreate(Sender: TObject);
var
i: Integer;
begin
ComboBoxLineNoticeColor.Items.Add('红色');
ComboBoxLineNoticeColor.Items.Add('绿色');
ComboBoxLineNoticeColor.Items.Add('蓝色');
GridLevelExp.ColWidths[0] := 30;
GridLevelExp.ColWidths[1] := 100;
GridLevelExp.Cells[0, 0] := '等级';
GridLevelExp.Cells[1, 0] := '经验值';
for i := 1 to GridLevelExp.RowCount - 1 do begin
GridLevelExp.Cells[0, i] := IntToStr(i);
end;
ComboBoxLevelExp.AddItem('原始经验值', TObject(s_OldLevelExp));
ComboBoxLevelExp.AddItem('标准经验值', TObject(s_StdLevelExp));
ComboBoxLevelExp.AddItem('当前1/2倍经验', TObject(s_2Mult));
ComboBoxLevelExp.AddItem('当前1/5倍经验', TObject(s_5Mult));
ComboBoxLevelExp.AddItem('当前1/8倍经验', TObject(s_8Mult));
ComboBoxLevelExp.AddItem('当前1/10倍经验', TObject(s_10Mult));
ComboBoxLevelExp.AddItem('当前1/20倍经验', TObject(s_20Mult));
ComboBoxLevelExp.AddItem('当前1/30倍经验', TObject(s_30Mult));
ComboBoxLevelExp.AddItem('当前1/40倍经验', TObject(s_40Mult));
ComboBoxLevelExp.AddItem('当前1/50倍经验', TObject(s_50Mult));
ComboBoxLevelExp.AddItem('当前1/60倍经验', TObject(s_60Mult));
ComboBoxLevelExp.AddItem('当前1/70倍经验', TObject(s_70Mult));
ComboBoxLevelExp.AddItem('当前1/80倍经验', TObject(s_80Mult));
ComboBoxLevelExp.AddItem('当前1/90倍经验', TObject(s_90Mult));
ComboBoxLevelExp.AddItem('当前1/100倍经验', TObject(s_100Mult));
ComboBoxLevelExp.AddItem('当前1/150倍经验', TObject(s_150Mult));
ComboBoxLevelExp.AddItem('当前1/200倍经验', TObject(s_200Mult));
ComboBoxLevelExp.AddItem('当前1/250倍经验', TObject(s_250Mult));
ComboBoxLevelExp.AddItem('当前1/300倍经验', TObject(s_300Mult));
EditSoftVersionDate.Hint := '客户端版本日期设置,此参数默认为 20020522,此版本日期必须与客户端相匹配,否则在进入游戏时将提示版本不正确';
EditConsoleShowUserCountTime.Hint := '程序控制台上显示当前在线人数间隔时间,此参数默认为 10分钟。';
EditShowLineNoticeTime.Hint := '游戏中显示公告信息的间隔时间,此参数默认为 300秒。';
ComboBoxLineNoticeColor.Hint := '游戏中显示公告信息的文字颜色,此参数默认为 蓝色。';
EditLineNoticePreFix.Hint := '游戏中显示公告信息的文字行前缀文字。';
EditHitIntervalTime.Hint := '游戏中人物二次攻击间隔时间,此参数默认为 900毫秒。';
EditMagicHitIntervalTime.Hint := '游戏中人物二次魔法攻击间隔时间,此参数默认为 800毫秒。';
EditRunIntervalTime.Hint := '游戏中人物二次跑动间隔时间,此参数默认为 600毫秒。';
EditWalkIntervalTime.Hint := '游戏中人物二次走动间隔时间,此参数默认为 600毫秒。';
EditTurnIntervalTime.Hint := '游戏中人物二次变方向间隔时间,此参数默认为 600毫秒。';
EditItemSpeedTime.Hint := '装备加速属性速度控制,数字越小控制越严,此参数默认为 50毫秒。';
EditStruckTime.Hint := '人物被攻击后弯腰停留时间控制,此参数默认为 100毫秒。';
CheckBoxDisableStruck.Hint := '人物在被攻击后是否显示弯腰动作。';
GridLevelExp.Hint := '修改的经验在点击保存按钮后生效。';
ComboBoxLevelExp.Hint := '选择的经验计划,立即生效。';
EditKillMonExpMultiple.Hint := '人物杀怪物所得经验值倍,此参数默认为 1,此经验值以怪物数据库里的经验值为基准。';
CheckBoxHighLevelKillMonFixExp.Hint := '高等级人物杀怪经验是否保持不变,此参数默认为关闭(不打钩)。';
EditRepairDoorPrice.Hint := '维修城门所需费用,此参数默认为 2000000金币。';
EditRepairWallPrice.Hint := '维修城墙所需费用,此参数默认为 500000金币。';
EditHireArcherPrice.Hint := '雇用弓箭手所需费用,此参数默认为 300000金币。';
EditHireGuardPrice.Hint := '维修守卫所需费用,此参数默认为 300000金币。';
EditCastleGoldMax.Hint := '城堡内最高可存金币数量,此参数默认为 10000000金币。';
EditCastleOneDayGold.Hint := '城堡一天内最高收入上限,此参数默认为 2000000金币。';
EditCastleHomeMap.Hint := '行会回城点默认所在地图号,此参数默认地图号为 3,以城堡配置文件中的参数为准';
EditCastleHomeX.Hint := '行会回城点默认所在地图座标X,此参数默认座标为 644,以城堡配置文件中的参数为准';
EditCastleHomeY.Hint := '行会回城点默认所在地图座标Y,此参数默认座标为 290,以城堡配置文件中的参数为准';
EditCastleName.Hint := '城堡默认的名称,以城堡配置文件中的参数为准。';
EditWarRangeX.Hint := '攻城区域默认座标X范围大小,此参数默认为 100,以城堡配置文件中的参数为准';
EditWarRangeY.Hint := '攻城区域默认座标Y范围大小,此参数默认为 100,以城堡配置文件中的参数为准';
CheckBoxGetAllNpcTax.Hint := '是否收取所有交易NPC的交易税,此参数默认为关闭(不打钩)。';
EditTaxRate.Hint := '交易税率,此参为默认为 5,也就是 0.05%。';
{$IF SoftVersion = VERDEMO}
Caption := '游戏参数[演示版本,所有设置调整有效,但不能保存]'
{$IFEND}
end;
procedure TfrmGameConfig.GameConfigControlChanging(Sender: TObject;
var AllowChange: Boolean);
begin
if boModValued then begin
if Application.MessageBox('参数设置已经被修改,是否确认不保存修改的设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) = IDYES then begin
uModValue
end else AllowChange := False;
end;
end;
procedure TfrmGameConfig.ModValue;
begin
boModValued := True;
ButtonGameSpeedSave.Enabled := True;
ButtonGeneralSave.Enabled := True;
ButtonExpSave.Enabled := True;
ButtonCastleSave.Enabled := True;
ButtonOptionSave0.Enabled := True;
ButtonOptionSave.Enabled := True;
ButtonOptionSave2.Enabled := True;
ButtonOptionSave3.Enabled := True;
ButtonTimeSave.Enabled := True;
ButtonPriceSave.Enabled := True;
ButtonMsgSave.Enabled := True;
ButtonMsgColorSave.Enabled := True;
ButtonHumanDieSave.Enabled := True;
ButtonCharStatusSave.Enabled := True;
end;
procedure TfrmGameConfig.uModValue;
begin
boModValued := False;
ButtonGameSpeedSave.Enabled := False;
ButtonGeneralSave.Enabled := False;
ButtonExpSave.Enabled := False;
ButtonCastleSave.Enabled := False;
ButtonOptionSave0.Enabled := False;
ButtonOptionSave.Enabled := False;
ButtonOptionSave2.Enabled := False;
ButtonOptionSave3.Enabled := False;
ButtonTimeSave.Enabled := False;
ButtonPriceSave.Enabled := False;
ButtonMsgSave.Enabled := False;
ButtonMsgColorSave.Enabled := False;
ButtonHumanDieSave.Enabled := False;
ButtonCharStatusSave.Enabled := False;
end;
procedure TfrmGameConfig.Open;
var
i: Integer;
begin
boOpened := False;
uModValue();
RefGameSpeedConf();
EditKillMonExpMultiple.Value := g_Config.dwKillMonExpMultiple;
CheckBoxHighLevelKillMonFixExp.Checked := g_Config.boHighLevelKillMonFixExp;
CheckBoxHighLevelGroupFixExp.Checked := g_Config.boHighLevelGroupFixExp;
EditRepairDoorPrice.Value := g_Config.nRepairDoorPrice;
EditRepairWallPrice.Value := g_Config.nRepairWallPrice;
EditHireArcherPrice.Value := g_Config.nHireArcherPrice;
EditHireGuardPrice.Value := g_Config.nHireGuardPrice;
EditCastleGoldMax.Value := g_Config.nCastleGoldMax;
EditCastleOneDayGold.Value := g_Config.nCastleOneDayGold;
EditCastleHomeMap.Text := g_Config.sCastleHomeMap;
EditCastleHomeX.Value := g_Config.nCastleHomeX;
EditCastleHomeY.Value := g_Config.nCastleHomeY;
EditCastleName.Text := g_Config.sCASTLENAME;
EditWarRangeX.Value := g_Config.nCastleWarRangeX;
EditWarRangeY.Value := g_Config.nCastleWarRangeY;
CheckBoxGetAllNpcTax.Checked := g_Config.boGetAllNpcTax;
EditTaxRate.Value := g_Config.nCastleTaxRate;
for i := 1 to GridLevelExp.RowCount - 1 do begin
GridLevelExp.Cells[1, i] := IntToStr(g_Config.dwNeedExps[i]);
end;
GroupBoxLevelExp.Caption := format('升级经验(最高有效等级%d)', [MAXUPLEVEL]);
(*
{$IF SoftVersion = VERFREE}
GroupBoxLevelExp.Caption:='升级经验(最高有效等级255)';
{$ELSEIF SoftVersion = VERSTD}
GroupBoxLevelExp.Caption:='升级经验(最高有效等级350)';
{$ELSEIF SoftVersion = VEROEM}
GroupBoxLevelExp.Caption:='升级经验(最高有效等级350)';
{$ELSEIF SoftVersion = VERPRO}
GroupBoxLevelExp.Caption:='升级经验(最高有效等级450)';
{$ELSEIF SoftVersion = VERENT}
GroupBoxLevelExp.Caption:='升级经验(最高有效等级500)';
{$IFEND}
*)
CheckBoxDisHumRun.Checked := not g_Config.boDiableHumanRun;
CheckBoxRunHum.Checked := g_Config.boRUNHUMAN;
CheckBoxRunMon.Checked := g_Config.boRUNMON;
CheckBoxRunNpc.Checked := g_Config.boRunNpc;
CheckBoxRunGuard.Checked := g_Config.boRunGuard;
CheckBoxWarDisHumRun.Checked := g_Config.boWarDisHumRun;
CheckBoxGMRunAll.Checked := g_Config.boGMRunAll;
CheckBoxSafeArea.Checked := g_Config.boSafeAreaLimited;
CheckBoxDisHumRunClick(CheckBoxDisHumRun);
EditSafeZoneSize.Value := g_Config.nSafeZoneSize;
EditStartPointSize.Value := g_Config.nStartPointSize;
EditGroupMembersMax.Value := g_Config.nGroupMembersMax;
EditRedHomeMap.Text := g_Config.sRedHomeMap;
EditRedHomeX.Value := g_Config.nRedHomeX;
EditRedHomeY.Value := g_Config.nRedHomeY;
EditRedDieHomeMap.Text := g_Config.sRedDieHomeMap;
EditRedDieHomeX.Value := g_Config.nRedDieHomeX;
EditRedDieHomeY.Value := g_Config.nRedDieHomeY;
EditHomeMap.Text := g_Config.sHomeMap;
EditHomeX.Value := g_Config.nHomeX;
EditHomeY.Value := g_Config.nHomeY;
EditDecPkPointTime.Value := g_Config.dwDecPkPointTime div 1000;
EditDecPkPointCount.Value := g_Config.nDecPkPointCount;
EditPKFlagTime.Value := g_Config.dwPKFlagTime div 1000;
EditKillHumanAddPKPoint.Value := g_Config.nKillHumanAddPKPoint;
EditPosionDecHealthTime.Value := g_Config.dwPosionDecHealthTime;
EditPosionDamagarmor.Value := g_Config.nPosionDamagarmor;
CheckBoxTestServer.Checked := g_Config.boTestServer;
CheckBoxServiceMode.Checked := g_Config.boServiceMode;
CheckBoxVentureMode.Checked := g_Config.boVentureServer;
CheckBoxNonPKMode.Checked := g_Config.boNonPKServer;
EditStartPermission.Value := g_Config.nStartPermission;
EditTestLevel.Value := g_Config.nTestLevel;
EditTestGold.Value := g_Config.nTestGold;
EditTestUserLimit.Value := g_Config.nTestUserLimit;
EditUserFull.Value := g_Config.nUserFull;
CheckBoxTestServerClick(CheckBoxTestServer);
CheckBoxKillHumanWinLevel.Checked := g_Config.boKillHumanWinLevel;
CheckBoxKilledLostLevel.Checked := g_Config.boKilledLostLevel;
CheckBoxKillHumanWinExp.Checked := g_Config.boKillHumanWinExp;
CheckBoxKilledLostExp.Checked := g_Config.boKilledLostExp;
EditKillHumanWinLevel.Value := g_Config.nKillHumanWinLevel;
EditKilledLostLevel.Value := g_Config.nKilledLostLevel;
EditKillHumanWinExp.Value := g_Config.nKillHumanWinExp;
EditKillHumanLostExp.Value := g_Config.nKillHumanLostExp;
EditHumanLevelDiffer.Value := g_Config.nHumanLevelDiffer;
CheckBoxKillHumanWinLevelClick(CheckBoxKillHumanWinLevel);
CheckBoxKilledLostLevelClick(CheckBoxKilledLostLevel);
CheckBoxKillHumanWinExpClick(CheckBoxKillHumanWinExp);
CheckBoxKilledLostExpClick(CheckBoxKilledLostExp);
EditHumanMaxGold.Value := g_Config.nHumanMaxGold;
EditHumanTryModeMaxGold.Value := g_Config.nHumanTryModeMaxGold;
EditTryModeLevel.Value := g_Config.nTryModeLevel;
CheckBoxTryModeUseStorage.Checked := g_Config.boTryModeUseStorage;
EditSayMsgMaxLen.Value := g_Config.nSayMsgMaxLen;
EditSayRedMsgMaxLen.Value := g_Config.nSayRedMsgMaxLen;
EditCanShoutMsgLevel.Value := g_Config.nCanShoutMsgLevel;
CheckBoxShutRedMsgShowGMName.Checked := g_Config.boShutRedMsgShowGMName;
CheckBoxShowPreFixMsg.Checked := g_Config.boShowPreFixMsg;
EditGMRedMsgCmd.Text := g_GMRedMsgCmd;
EditStartCastleWarDays.Value := g_Config.nStartCastleWarDays;
EditStartCastlewarTime.Value := g_Config.nStartCastlewarTime;
EditShowCastleWarEndMsgTime.Value := g_Config.dwShowCastleWarEndMsgTime div (60 * 1000);
EditCastleWarTime.Value := g_Config.dwCastleWarTime div (60 * 1000);
EditGetCastleTime.Value := g_Config.dwGetCastleTime div (60 * 1000);
EditGuildWarTime.Value := g_Config.dwGuildWarTime div (60 * 1000);
EditMakeGhostTime.Value := g_Config.dwMakeGhostTime div 1000;
EditClearDropOnFloorItemTime.Value := g_Config.dwClearDropOnFloorItemTime div 1000;
EditSaveHumanRcdTime.Value := g_Config.dwSaveHumanRcdTime div (60 * 1000);
EditHumanFreeDelayTime.Value := g_Config.dwHumanFreeDelayTime div (60 * 1000);
EditFloorItemCanPickUpTime.Value := g_Config.dwFloorItemCanPickUpTime div 1000;
EditBuildGuildPrice.Value := g_Config.nBuildGuildPrice;
EditGuildWarPrice.Value := g_Config.nGuildWarPrice;
EditMakeDurgPrice.Value := g_Config.nMakeDurgPrice;
EditTryDealTime.Value := g_Config.dwTryDealTime div 1000;
EditDealOKTime.Value := g_Config.dwDealOKTime div 1000;
EditCastleMemberPriceRate.Value := g_Config.nCastleMemberPriceRate;
EditHearMsgFColor.Value := g_Config.btHearMsgFColor;
EdittHearMsgBColor.Value := g_Config.btHearMsgBColor;
EditWhisperMsgFColor.Value := g_Config.btWhisperMsgFColor;
EditWhisperMsgBColor.Value := g_Config.btWhisperMsgBColor;
EditGMWhisperMsgFColor.Value := g_Config.btGMWhisperMsgFColor;
EditGMWhisperMsgBColor.Value := g_Config.btGMWhisperMsgBColor;
EditRedMsgFColor.Value := g_Config.btRedMsgFColor;
EditRedMsgBColor.Value := g_Config.btRedMsgBColor;
EditGreenMsgFColor.Value := g_Config.btGreenMsgFColor;
EditGreenMsgBColor.Value := g_Config.btGreenMsgBColor;
EditBlueMsgFColor.Value := g_Config.btBlueMsgFColor;
EditBlueMsgBColor.Value := g_Config.btBlueMsgBColor;
EditCryMsgFColor.Value := g_Config.btCryMsgFColor;
EditCryMsgBColor.Value := g_Config.btCryMsgBColor;
EditGuildMsgFColor.Value := g_Config.btGuildMsgFColor;
EditGuildMsgBColor.Value := g_Config.btGuildMsgBColor;
EditGroupMsgFColor.Value := g_Config.btGroupMsgFColor;
EditGroupMsgBColor.Value := g_Config.btGroupMsgBColor;
EditCustMsgFColor.Value := g_Config.btCustMsgFColor;
EditCustMsgBColor.Value := g_Config.btCustMsgBColor;
CheckBoxPKLevelProtect.Checked := g_Config.boPKLevelProtect;
EditPKProtectLevel.Value := g_Config.nPKProtectLevel;
EditRedPKProtectLevel.Value := g_Config.nRedPKProtectLevel;
CheckBoxPKLevelProtectClick(CheckBoxPKLevelProtect);
CheckBoxCanNotGetBackDeal.Checked := g_Config.boCanNotGetBackDeal;
CheckBoxDisableDeal.Checked := g_Config.boDisableDeal;
CheckBoxControlDropItem.Checked := g_Config.boControlDropItem;
CheckBoxIsSafeDisableDrop.Checked := g_Config.boInSafeDisableDrop;
EditCanDropPrice.Value := g_Config.nCanDropPrice;
EditCanDropGold.Value := g_Config.nCanDropGold;
EditSuperRepairPriceRate.Value := g_Config.nSuperRepairPriceRate;
EditRepairItemDecDura.Value := g_Config.nRepairItemDecDura;
CheckBoxKillByMonstDropUseItem.Checked := g_Config.boKillByMonstDropUseItem;
CheckBoxKillByHumanDropUseItem.Checked := g_Config.boKillByHumanDropUseItem;
CheckBoxDieScatterBag.Checked := g_Config.boDieScatterBag;
CheckBoxDieDropGold.Checked := g_Config.boDieDropGold;
CheckBoxDieRedScatterBagAll.Checked := g_Config.boDieRedScatterBagAll;
ScrollBarDieDropUseItemRate.Min := 1;
ScrollBarDieDropUseItemRate.Max := 200;
ScrollBarDieDropUseItemRate.Position := g_Config.nDieDropUseItemRate;
ScrollBarDieRedDropUseItemRate.Min := 1;
ScrollBarDieRedDropUseItemRate.Max := 200;
ScrollBarDieRedDropUseItemRate.Position := g_Config.nDieRedDropUseItemRate;
ScrollBarDieScatterBagRate.Min := 1;
ScrollBarDieScatterBagRate.Max := 200;
ScrollBarDieScatterBagRate.Position := g_Config.nDieScatterBagRate;
EditSayMsgTime.Value := g_Config.dwSayMsgTime div 1000;
EditSayMsgCount.Value := g_Config.nSayMsgCount;
EditDisableSayMsgTime.Value := g_Config.dwDisableSayMsgTime div 1000;
CheckBoxFixExp.Checked := g_Config.boUseFixExp;
SpinEditBaseExp.Value := g_Config.nBaseExp;
SpinEditAddExp.Value := g_Config.nAddExp;
SpinEditBaseExp.Enabled := not CheckBoxFixExp.Checked;
SpinEditAddExp.Enabled := not CheckBoxFixExp.Checked;
RefGameVarConf();
RefCharStatusConf();
boOpened := True;
GameConfigControl.ActivePageIndex := 0;
ShowModal;
end;
procedure TfrmGameConfig.RefGameSpeedConf;
begin
EditHitIntervalTime.Value := g_Config.dwHitIntervalTime;
EditMagicHitIntervalTime.Value := g_Config.dwMagicHitIntervalTime;
EditRunIntervalTime.Value := g_Config.dwRunIntervalTime;
EditWalkIntervalTime.Value := g_Config.dwWalkIntervalTime;
EditTurnIntervalTime.Value := g_Config.dwTurnIntervalTime;
EditItemSpeedTime.Value := g_Config.ClientConf.btItemSpeed;
EditMaxHitMsgCount.Value := g_Config.nMaxHitMsgCount;
EditMaxSpellMsgCount.Value := g_Config.nMaxSpellMsgCount;
EditMaxRunMsgCount.Value := g_Config.nMaxRunMsgCount;
EditMaxWalkMsgCount.Value := g_Config.nMaxWalkMsgCount;
EditMaxTurnMsgCount.Value := g_Config.nMaxTurnMsgCount;
EditMaxDigUpMsgCount.Value := g_Config.nMaxDigUpMsgCount;
CheckBoxboKickOverSpeed.Checked := g_Config.boKickOverSpeed;
EditOverSpeedKickCount.Value := g_Config.nOverSpeedKickCount;
EditDropOverSpeed.Value := g_Config.dwDropOverSpeed;
CheckBoxboKickOverSpeedClick(CheckBoxboKickOverSpeed);
CheckBoxSpellSendUpdateMsg.Checked := g_Config.boSpellSendUpdateMsg;
CheckBoxActionSendActionMsg.Checked := g_Config.boActionSendActionMsg;
if g_Config.btSpeedControlMode = 0 then begin
RadioButtonDelyMode.Checked := True;
RadioButtonFilterMode.Checked := False;
end else begin
RadioButtonDelyMode.Checked := False;
RadioButtonFilterMode.Checked := True;
end;
CheckBoxDisableStruck.Checked := g_Config.boDisableStruck;
CheckBoxDisableSelfStruck.Checked := g_Config.boDisableSelfStruck;
EditStruckTime.Value := g_Config.dwStruckTime;
end;
procedure TfrmGameConfig.ButtonGameSpeedDefaultClick(Sender: TObject);
begin
if Application.MessageBox('是否确认恢复默认设置?', '确认信息', MB_YESNO + MB_ICONQUESTION) <> IDYES then begin
Exit;
end;
g_Config.dwHitIntervalTime := 850;
g_Config.dwMagicHitIntervalTime := 1350;
g_Config.dwRunIntervalTime := 600;
g_Config.dwWalkIntervalTime := 600;
g_Config.dwTurnIntervalTime := 600;
g_Config.nMaxHitMsgCount := 1;
g_Config.nMaxSpellMsgCount := 1;
g_Config.nMaxRunMsgCount := 1;
g_Config.nMaxWalkMsgCount := 1;
g_Config.nMaxTurnMsgCount := 1;
g_Config.nMaxDigUpMsgCount := 1;
g_Config.nOverSpeedKickCount := 2;
g_Config.dwDropOverSpeed := 200;
g_Config.boKickOverSpeed := True;
g_Config.ClientConf.btItemSpeed := 25;
g_Config.boDisableStruck := False;
g_Config.boDisableSelfStruck := False;
g_Config.dwStruckTime := 300;
g_Config.boSpellSendUpdateMsg := True;
g_Config.boActionSendActionMsg := True;
g_Config.btSpeedControlMode := 0;
RefGameSpeedConf();
ModValue();
end;
procedure TfrmGameConfig.ButtonGameSpeedSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'HitIntervalTime', g_Config.dwHitIntervalTime);
Config.WriteInteger('Setup', 'MagicHitIntervalTime', g_Config.dwMagicHitIntervalTime);
Config.WriteInteger('Setup', 'RunIntervalTime', g_Config.dwRunIntervalTime);
Config.WriteInteger('Setup', 'WalkIntervalTime', g_Config.dwWalkIntervalTime);
Config.WriteInteger('Setup', 'TurnIntervalTime', g_Config.dwTurnIntervalTime);
Config.WriteInteger('Setup', 'ItemSpeedTime', g_Config.ClientConf.btItemSpeed);
Config.WriteInteger('Setup', 'MaxHitMsgCount', g_Config.nMaxHitMsgCount);
Config.WriteInteger('Setup', 'MaxSpellMsgCount', g_Config.nMaxSpellMsgCount);
Config.WriteInteger('Setup', 'MaxRunMsgCount', g_Config.nMaxRunMsgCount);
Config.WriteInteger('Setup', 'MaxWalkMsgCount', g_Config.nMaxWalkMsgCount);
Config.WriteInteger('Setup', 'MaxTurnMsgCount', g_Config.nMaxTurnMsgCount);
Config.WriteInteger('Setup', 'MaxSitDonwMsgCount', g_Config.nMaxSitDonwMsgCount);
Config.WriteInteger('Setup', 'MaxDigUpMsgCount', g_Config.nMaxDigUpMsgCount);
Config.WriteInteger('Setup', 'OverSpeedKickCount', g_Config.nOverSpeedKickCount);
Config.WriteBool('Setup', 'KickOverSpeed', g_Config.boKickOverSpeed);
Config.WriteBool('Setup', 'SpellSendUpdateMsg', g_Config.boSpellSendUpdateMsg);
Config.WriteBool('Setup', 'ActionSendActionMsg', g_Config.boActionSendActionMsg);
Config.WriteInteger('Setup', 'DropOverSpeed', g_Config.dwDropOverSpeed);
Config.WriteBool('Setup', 'DisableStruck', g_Config.boDisableStruck);
Config.WriteBool('Setup', 'DisableSelfStruck', g_Config.boDisableSelfStruck);
Config.WriteInteger('Setup', 'StruckTime', g_Config.dwStruckTime);
Config.WriteInteger('Setup', 'SpeedControlMode', g_Config.btSpeedControlMode);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditHitIntervalTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwHitIntervalTime := EditHitIntervalTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMagicHitIntervalTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwMagicHitIntervalTime := EditMagicHitIntervalTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRunIntervalTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwRunIntervalTime := EditRunIntervalTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditWalkIntervalTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwWalkIntervalTime := EditWalkIntervalTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditTurnIntervalTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwTurnIntervalTime := EditTurnIntervalTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMaxHitMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMaxHitMsgCount := EditMaxHitMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMaxSpellMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMaxSpellMsgCount := EditMaxSpellMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMaxRunMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMaxRunMsgCount := EditMaxRunMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMaxWalkMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMaxWalkMsgCount := EditMaxWalkMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMaxTurnMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMaxTurnMsgCount := EditMaxTurnMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMaxDigUpMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMaxDigUpMsgCount := EditMaxDigUpMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditOverSpeedKickCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nOverSpeedKickCount := EditOverSpeedKickCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditDropOverSpeedChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwDropOverSpeed := EditDropOverSpeed.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxSpellSendUpdateMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boSpellSendUpdateMsg := CheckBoxSpellSendUpdateMsg.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxActionSendActionMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boActionSendActionMsg := CheckBoxActionSendActionMsg.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxboKickOverSpeedClick(Sender: TObject);
begin
EditOverSpeedKickCount.Enabled := CheckBoxboKickOverSpeed.Checked;
if not boOpened then Exit;
g_Config.boKickOverSpeed := CheckBoxboKickOverSpeed.Checked;
ModValue();
end;
procedure TfrmGameConfig.RadioButtonDelyModeClick(Sender: TObject);
var
boFalg: Boolean;
begin
if not boOpened then Exit;
boFalg := RadioButtonDelyMode.Checked;
if boFalg then begin
g_Config.btSpeedControlMode := 0;
end else begin
g_Config.btSpeedControlMode := 1;
end;
ModValue();
end;
procedure TfrmGameConfig.RadioButtonFilterModeClick(Sender: TObject);
var
boFalg: Boolean;
begin
if not boOpened then Exit;
boFalg := RadioButtonFilterMode.Checked;
if boFalg then begin
g_Config.btSpeedControlMode := 1;
end else begin
g_Config.btSpeedControlMode := 0;
end;
ModValue();
end;
procedure TfrmGameConfig.EditItemSpeedTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.ClientConf.btItemSpeed := EditItemSpeedTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditConsoleShowUserCountTimeChange(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwConsoleShowUserCountTime := EditConsoleShowUserCountTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditShowLineNoticeTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwShowLineNoticeTime := EditShowLineNoticeTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.ComboBoxLineNoticeColorChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nLineNoticeColor := ComboBoxLineNoticeColor.ItemIndex;
ModValue();
end;
procedure TfrmGameConfig.EditSoftVersionDateChange(Sender: TObject);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmGameConfig.EditLineNoticePreFixChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sLineNoticePreFix := Trim(EditLineNoticePreFix.Text);
ModValue();
end;
procedure TfrmGameConfig.CheckBoxShowMakeItemMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boShowMakeItemMsg := CheckBoxShowMakeItemMsg.Checked;
ModValue();
end;
procedure TfrmGameConfig.CbViewHackClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boViewHackMessage := CbViewHack.Checked;
ModValue();
end;
procedure TfrmGameConfig.CkViewAdmfailClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boViewAdmissionFailure := CkViewAdmfail.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxShowExceptionMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boShowExceptionMsg := CheckBoxShowExceptionMsg.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxCanOldClientLogonClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boCanOldClientLogon := CheckBoxCanOldClientLogon.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxSendOnlineCountClick(Sender: TObject);
var
boStatus: Boolean;
begin
boStatus := CheckBoxSendOnlineCount.Checked;
EditSendOnlineCountRate.Enabled := boStatus;
EditSendOnlineTime.Enabled := boStatus;
if not boOpened then Exit;
g_Config.boSendOnlineCount := boStatus;
ModValue();
end;
procedure TfrmGameConfig.EditSendOnlineCountRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSendOnlineCountRate := EditSendOnlineCountRate.Value;
ModValue();
end;
procedure TfrmGameConfig.EditSendOnlineTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwSendOnlineTime := EditSendOnlineTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditMonsterPowerRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nMonsterPowerRate := EditMonsterPowerRate.Value;
ModValue();
end;
procedure TfrmGameConfig.EditEditItemsPowerRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nItemsPowerRate := EditEditItemsPowerRate.Value;
ModValue();
end;
procedure TfrmGameConfig.EditItemsACPowerRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nItemsACPowerRate := EditItemsACPowerRate.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxDisableStruckClick(Sender: TObject);
begin
EditStruckTime.Enabled := not CheckBoxDisableStruck.Checked;
if not boOpened then Exit;
g_Config.boDisableStruck := CheckBoxDisableStruck.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxDisableSelfStruckClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDisableSelfStruck := CheckBoxDisableSelfStruck.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditStruckTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwStruckTime := EditStruckTime.Value;
ModValue();
end;
procedure TfrmGameConfig.RefGameVarConf;
begin
EditSoftVersionDate.Text := IntToStr(g_Config.nSoftVersionDate);
EditConsoleShowUserCountTime.Value := g_Config.dwConsoleShowUserCountTime div 1000;
EditShowLineNoticeTime.Value := g_Config.dwShowLineNoticeTime div 1000;
ComboBoxLineNoticeColor.ItemIndex := _MAX(0, _MIN(3, g_Config.nLineNoticeColor));
EditLineNoticePreFix.Text := g_Config.sLineNoticePreFix;
CheckBoxShowMakeItemMsg.Checked := g_Config.boShowMakeItemMsg;
CbViewHack.Checked := g_Config.boViewHackMessage;
CkViewAdmfail.Checked := g_Config.boViewAdmissionFailure;
CheckBoxShowExceptionMsg.Checked := g_Config.boShowExceptionMsg;
CheckBoxSendOnlineCount.Checked := g_Config.boSendOnlineCount;
EditSendOnlineCountRate.Value := g_Config.nSendOnlineCountRate;
EditSendOnlineTime.Value := g_Config.dwSendOnlineTime div 1000;
CheckBoxSendOnlineCountClick(CheckBoxSendOnlineCount);
EditMonsterPowerRate.Value := g_Config.nMonsterPowerRate;
EditEditItemsPowerRate.Value := g_Config.nItemsPowerRate;
EditItemsACPowerRate.Value := g_Config.nItemsACPowerRate;
CheckBoxCanOldClientLogon.Checked := g_Config.boCanOldClientLogon;
end;
procedure TfrmGameConfig.ButtonGeneralSaveClick(Sender: TObject);
var
SoftVersionDate: Integer;
begin
SoftVersionDate := Str_ToInt(Trim(EditSoftVersionDate.Text), -1);
if (SoftVersionDate < 0) or (SoftVersionDate > High(Integer)) then begin
Application.MessageBox('客户端版号设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
EditSoftVersionDate.SetFocus;
Exit;
end;
g_Config.nSoftVersionDate := SoftVersionDate;
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'SoftVersionDate', g_Config.nSoftVersionDate);
Config.WriteInteger('Setup', 'ConsoleShowUserCountTime', g_Config.dwConsoleShowUserCountTime);
Config.WriteInteger('Setup', 'ShowLineNoticeTime', g_Config.dwShowLineNoticeTime);
Config.WriteInteger('Setup', 'LineNoticeColor', g_Config.nLineNoticeColor);
StringConf.WriteString('String', 'LineNoticePreFix', g_Config.sLineNoticePreFix);
Config.WriteBool('Setup', 'ShowMakeItemMsg', g_Config.boShowMakeItemMsg);
Config.WriteString('Server', 'ViewHackMessage', BoolToStr(g_Config.boViewHackMessage));
Config.WriteString('Server', 'ViewAdmissionFailure', BoolToStr(g_Config.boViewAdmissionFailure));
Config.WriteBool('Setup', 'ShowExceptionMsg', g_Config.boShowExceptionMsg);
Config.WriteBool('Setup', 'SendOnlineCount', g_Config.boSendOnlineCount);
Config.WriteInteger('Setup', 'SendOnlineCountRate', g_Config.nSendOnlineCountRate);
Config.WriteInteger('Setup', 'SendOnlineTime', g_Config.dwSendOnlineTime);
Config.WriteInteger('Setup', 'MonsterPowerRate', g_Config.nMonsterPowerRate);
Config.WriteInteger('Setup', 'ItemsPowerRate', g_Config.nItemsPowerRate);
Config.WriteInteger('Setup', 'ItemsACPowerRate', g_Config.nItemsACPowerRate);
Config.WriteBool('Setup', 'CanOldClientLogon', g_Config.boCanOldClientLogon);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditKillMonExpMultipleChange(Sender: TObject);
begin
if EditKillMonExpMultiple.Text = '' then begin
EditKillMonExpMultiple.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwKillMonExpMultiple := EditKillMonExpMultiple.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxHighLevelKillMonFixExpClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boHighLevelKillMonFixExp := CheckBoxHighLevelKillMonFixExp.Checked;
ModValue();
end;
procedure TfrmGameConfig.GridLevelExpSetEditText(Sender: TObject; ACol,
ARow: Integer; const Value: string);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmGameConfig.ComboBoxLevelExpClick(Sender: TObject);
var
i: Integer;
LevelExpScheme: TLevelExpScheme;
dwOneLevelExp: LongWord;
dwExp: LongWord;
begin
if not boOpened then Exit;
if Application.MessageBox('升级经验计划设置的经验将立即生效,是否确认使用此经验计划?', '确认信息', MB_YESNO + MB_ICONQUESTION) = IDNO then begin
Exit;
end;
LevelExpScheme := TLevelExpScheme(ComboBoxLevelExp.Items.Objects[ComboBoxLevelExp.ItemIndex]);
case LevelExpScheme of //
s_OldLevelExp: g_Config.dwNeedExps := g_dwOldNeedExps;
s_StdLevelExp: begin
g_Config.dwNeedExps := g_dwOldNeedExps;
dwOneLevelExp := 4000000000 div High(g_Config.dwNeedExps);
for i := 1 to MAXCHANGELEVEL do begin
if (26 + i) > MAXCHANGELEVEL then break;
dwExp := dwOneLevelExp * LongWord(i);
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[26 + i] := dwExp;
end;
end;
s_2Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 2;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_5Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 5;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_8Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 8;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_10Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 10;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_20Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 20;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_30Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 30;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_40Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 40;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_50Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 50;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_60Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 60;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_70Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 70;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_80Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 80;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_90Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 90;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_100Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 100;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_150Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 150;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_200Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 200;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_250Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 250;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
s_300Mult: begin
for i := 1 to MAXCHANGELEVEL do begin
dwExp := g_Config.dwNeedExps[i] div 300;
if dwExp = 0 then dwExp := 1;
g_Config.dwNeedExps[i] := dwExp;
end;
end;
end;
for i := 1 to GridLevelExp.RowCount - 1 do begin
GridLevelExp.Cells[1, i] := IntToStr(g_Config.dwNeedExps[i]);
end;
ModValue();
end;
procedure TfrmGameConfig.ButtonExpSaveClick(Sender: TObject);
var
i: Integer;
dwExp: LongWord;
NeedExps: TLevelNeedExp;
begin
for i := 1 to GridLevelExp.RowCount - 1 do begin
dwExp := Str_ToInt(GridLevelExp.Cells[1, i], 0);
if (dwExp <= 0) or (dwExp > High(LongWord)) then begin
Application.MessageBox(PChar('等级 ' + IntToStr(i) + ' 升级经验设置错误!!!'), '错误信息', MB_OK + MB_ICONERROR);
GridLevelExp.Row := i;
GridLevelExp.SetFocus;
Exit;
end;
NeedExps[i] := dwExp;
end;
g_Config.dwNeedExps := NeedExps;
Config.WriteInteger('Exp', 'KillMonExpMultiple', g_Config.dwKillMonExpMultiple);
Config.WriteBool('Exp', 'HighLevelKillMonFixExp', g_Config.boHighLevelKillMonFixExp);
for i := 1 to 1000 do begin
Config.WriteString('Exp', 'Level' + IntToStr(i), IntToStr(g_Config.dwNeedExps[i]));
end;
Config.WriteBool('Exp', 'UseFixExp', g_Config.boUseFixExp);
Config.WriteInteger('Exp', 'BaseExp', g_Config.nBaseExp);
Config.WriteInteger('Exp', 'AddExp', g_Config.nAddExp);
uModValue();
end;
procedure TfrmGameConfig.EditRepairDoorPriceChange(Sender: TObject);
begin
if EditRepairDoorPrice.Text = '' then begin
EditRepairDoorPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nRepairDoorPrice := EditRepairDoorPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRepairWallPriceChange(Sender: TObject);
begin
if EditRepairWallPrice.Text = '' then begin
EditRepairWallPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nRepairWallPrice := EditRepairWallPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHireArcherPriceChange(Sender: TObject);
begin
if EditHireArcherPrice.Text = '' then begin
EditHireArcherPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nHireArcherPrice := EditHireArcherPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHireGuardPriceChange(Sender: TObject);
begin
if EditHireGuardPrice.Text = '' then begin
EditHireGuardPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nHireGuardPrice := EditHireGuardPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleGoldMaxChange(Sender: TObject);
begin
if EditCastleGoldMax.Text = '' then begin
EditCastleGoldMax.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleGoldMax := EditCastleGoldMax.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleOneDayGoldChange(Sender: TObject);
begin
if EditCastleOneDayGold.Text = '' then begin
EditCastleOneDayGold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleOneDayGold := EditCastleOneDayGold.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleHomeMapChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sCastleHomeMap := Trim(EditCastleHomeMap.Text);
ModValue();
end;
procedure TfrmGameConfig.EditCastleHomeXChange(Sender: TObject);
begin
if EditCastleHomeX.Text = '' then begin
EditCastleHomeX.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleHomeX := EditCastleHomeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleHomeYChange(Sender: TObject);
begin
if EditCastleHomeY.Text = '' then begin
EditCastleHomeY.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleHomeY := EditCastleHomeY.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleNameChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.sCASTLENAME := Trim(EditCastleName.Text);
ModValue();
end;
procedure TfrmGameConfig.EditWarRangeXChange(Sender: TObject);
begin
if EditWarRangeX.Text = '' then begin
EditWarRangeX.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleWarRangeX := EditWarRangeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditWarRangeYChange(Sender: TObject);
begin
if EditWarRangeY.Text = '' then begin
EditWarRangeY.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleWarRangeY := EditWarRangeY.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxGetAllNpcTaxClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boGetAllNpcTax := CheckBoxGetAllNpcTax.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditTaxRateChange(Sender: TObject);
begin
if EditTaxRate.Text = '' then begin
EditTaxRate.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleTaxRate := EditTaxRate.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCastleMemberPriceRateChange(Sender: TObject);
begin
if EditCastleMemberPriceRate.Text = '' then begin
EditCastleMemberPriceRate.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCastleMemberPriceRate := EditCastleMemberPriceRate.Value;
ModValue();
end;
procedure TfrmGameConfig.ButtonCastleSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'RepairDoor', g_Config.nRepairDoorPrice);
Config.WriteInteger('Setup', 'RepairWall', g_Config.nRepairWallPrice);
Config.WriteInteger('Setup', 'HireArcher', g_Config.nHireArcherPrice);
Config.WriteInteger('Setup', 'HireGuard', g_Config.nHireGuardPrice);
Config.WriteInteger('Setup', 'CastleGoldMax', g_Config.nCastleGoldMax);
Config.WriteInteger('Setup', 'CastleOneDayGold', g_Config.nCastleOneDayGold);
Config.WriteString('Setup', 'CastleName', g_Config.sCASTLENAME);
Config.WriteString('Setup', 'CastleHomeMap', g_Config.sCastleHomeMap);
Config.WriteInteger('Setup', 'CastleHomeX', g_Config.nCastleHomeX);
Config.WriteInteger('Setup', 'CastleHomeY', g_Config.nCastleHomeY);
Config.WriteInteger('Setup', 'CastleWarRangeX', g_Config.nCastleWarRangeX);
Config.WriteInteger('Setup', 'CastleWarRangeY', g_Config.nCastleWarRangeY);
Config.WriteInteger('Setup', 'CastleTaxRate', g_Config.nCastleTaxRate);
Config.WriteBool('Setup', 'CastleGetAllNpcTax', g_Config.boGetAllNpcTax);
Config.WriteInteger('Setup', 'CastleMemberPriceRate', g_Config.nCastleMemberPriceRate);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.CheckBoxDisHumRunClick(Sender: TObject);
var
boChecked: Boolean;
begin
boChecked := not CheckBoxDisHumRun.Checked;
if boChecked then begin
CheckBoxRunHum.Checked := False;
CheckBoxRunHum.Enabled := False;
CheckBoxRunMon.Checked := False;
CheckBoxRunMon.Enabled := False;
CheckBoxWarDisHumRun.Checked := False;
CheckBoxWarDisHumRun.Enabled := False;
CheckBoxRunNpc.Checked := False;
CheckBoxRunGuard.Checked := False;
CheckBoxRunNpc.Enabled := False;
CheckBoxRunGuard.Enabled := False;
CheckBoxGMRunAll.Checked := False;
CheckBoxGMRunAll.Enabled := False;
CheckBoxSafeArea.Checked := False;
CheckBoxSafeArea.Enabled := False;
end else begin
CheckBoxRunHum.Enabled := True;
CheckBoxRunMon.Enabled := True;
CheckBoxWarDisHumRun.Enabled := True;
CheckBoxRunNpc.Enabled := True;
CheckBoxRunGuard.Enabled := True;
CheckBoxGMRunAll.Enabled := True;
CheckBoxSafeArea.Enabled := True;
end;
if not boOpened then Exit;
g_Config.boDiableHumanRun := boChecked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxRunHumClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boRUNHUMAN := CheckBoxRunHum.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxRunMonClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boRUNMON := CheckBoxRunMon.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxRunNpcClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boRunNpc := CheckBoxRunNpc.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxRunGuardClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boRunGuard := CheckBoxRunGuard.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxWarDisHumRunClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boWarDisHumRun := CheckBoxWarDisHumRun.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxGMRunAllClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boGMRunAll := CheckBoxGMRunAll.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditTryDealTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwTryDealTime := EditTryDealTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditDealOKTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwDealOKTime := EditDealOKTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxCanNotGetBackDealClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boCanNotGetBackDeal := CheckBoxCanNotGetBackDeal.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxDisableDealClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDisableDeal := CheckBoxDisableDeal.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxControlDropItemClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boControlDropItem := CheckBoxControlDropItem.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxIsSafeDisableDropClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boInSafeDisableDrop := CheckBoxIsSafeDisableDrop.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditCanDropPriceChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nCanDropPrice := EditCanDropPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCanDropGoldChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nCanDropGold := EditCanDropGold.Value;
ModValue();
end;
procedure TfrmGameConfig.EditSafeZoneSizeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSafeZoneSize := EditSafeZoneSize.Value;
ModValue();
end;
procedure TfrmGameConfig.EditStartPointSizeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nStartPointSize := EditStartPointSize.Value;
ModValue();
end;
procedure TfrmGameConfig.EditGroupMembersMaxChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nGroupMembersMax := EditGroupMembersMax.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRedHomeXChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nRedHomeX := EditRedHomeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRedHomeYChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nRedHomeY := EditRedHomeY.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRedHomeMapChange(Sender: TObject);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmGameConfig.EditRedDieHomeMapChange(Sender: TObject);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmGameConfig.EditRedDieHomeXChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nRedDieHomeX := EditRedDieHomeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHomeMapChange(Sender: TObject);
begin
if not boOpened then Exit;
ModValue();
end;
procedure TfrmGameConfig.EditHomeXChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nHomeX := EditHomeX.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHomeYChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nHomeY := EditHomeY.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRedDieHomeYChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nRedDieHomeY := EditRedDieHomeY.Value;
ModValue();
end;
procedure TfrmGameConfig.ButtonOptionSaveClick(Sender: TObject);
begin
if EditRedHomeMap.Text = '' then begin
Application.MessageBox('红名村地图设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
EditRedHomeMap.SetFocus;
Exit;
end;
g_Config.sRedHomeMap := Trim(EditRedHomeMap.Text);
if EditRedDieHomeMap.Text = '' then begin
Application.MessageBox('红名村地图设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
EditRedDieHomeMap.SetFocus;
Exit;
end;
g_Config.sRedDieHomeMap := Trim(EditRedDieHomeMap.Text);
if EditHomeMap.Text = '' then begin
Application.MessageBox('应急回城地图设置错误!!!', '错误信息', MB_OK + MB_ICONERROR);
EditHomeMap.SetFocus;
Exit;
end;
g_Config.sHomeMap := Trim(EditHomeMap.Text);
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'SafeZoneSize', g_Config.nSafeZoneSize);
Config.WriteInteger('Setup', 'StartPointSize', g_Config.nStartPointSize);
Config.WriteString('Setup', 'RedHomeMap', g_Config.sRedHomeMap);
Config.WriteInteger('Setup', 'RedHomeX', g_Config.nRedHomeX);
Config.WriteInteger('Setup', 'RedHomeY', g_Config.nRedHomeY);
Config.WriteString('Setup', 'RedDieHomeMap', g_Config.sRedDieHomeMap);
Config.WriteInteger('Setup', 'RedDieHomeX', g_Config.nRedDieHomeX);
Config.WriteInteger('Setup', 'RedDieHomeY', g_Config.nRedDieHomeY);
Config.WriteString('Setup', 'HomeMap', g_Config.sHomeMap);
Config.WriteInteger('Setup', 'HomeX', g_Config.nHomeX);
Config.WriteInteger('Setup', 'HomeY', g_Config.nHomeY);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.ButtonOptionSave3Click(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'DiableHumanRun', g_Config.boDiableHumanRun);
Config.WriteBool('Setup', 'RunHuman', g_Config.boRUNHUMAN);
Config.WriteBool('Setup', 'RunMon', g_Config.boRUNMON);
Config.WriteBool('Setup', 'RunNpc', g_Config.boRunNpc);
Config.WriteBool('Setup', 'RunGuard', g_Config.boRunGuard);
Config.WriteBool('Setup', 'WarDisableHumanRun', g_Config.boWarDisHumRun);
Config.WriteBool('Setup', 'GMRunAll', g_Config.boGMRunAll);
Config.WriteBool('Setup', 'SafeAreaLimitedRun', g_Config.boSafeAreaLimited);
Config.WriteInteger('Setup', 'TryDealTime', g_Config.dwTryDealTime);
Config.WriteInteger('Setup', 'DealOKTime', g_Config.dwDealOKTime);
Config.WriteBool('Setup', 'CanNotGetBackDeal', g_Config.boCanNotGetBackDeal);
Config.WriteBool('Setup', 'DisableDeal', g_Config.boDisableDeal);
Config.WriteBool('Setup', 'ControlDropItem', g_Config.boControlDropItem);
Config.WriteBool('Setup', 'InSafeDisableDrop', g_Config.boInSafeDisableDrop);
Config.WriteInteger('Setup', 'CanDropGold', g_Config.nCanDropGold);
Config.WriteInteger('Setup', 'CanDropPrice', g_Config.nCanDropPrice);
Config.WriteInteger('Setup', 'DecLightItemDrugTime', g_Config.dwDecLightItemDrugTime);
Config.WriteInteger('Setup', 'PosionDecHealthTime', g_Config.dwPosionDecHealthTime);
Config.WriteInteger('Setup', 'PosionDamagarmor', g_Config.nPosionDamagarmor);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditDecPkPointTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwDecPkPointTime := EditDecPkPointTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditDecPkPointCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nDecPkPointCount := EditDecPkPointCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditPKFlagTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwPKFlagTime := EditPKFlagTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditKillHumanAddPKPointChange(Sender: TObject);
begin
if EditKillHumanAddPKPoint.Text = '' then begin
EditKillHumanAddPKPoint.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nKillHumanAddPKPoint := EditKillHumanAddPKPoint.Value;
ModValue();
end;
procedure TfrmGameConfig.EditPosionDecHealthTimeChange(Sender: TObject);
begin
if EditPosionDecHealthTime.Text = '' then begin
EditPosionDecHealthTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwPosionDecHealthTime := EditPosionDecHealthTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditPosionDamagarmorChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nPosionDamagarmor := EditPosionDamagarmor.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxKillHumanWinLevelClick(Sender: TObject);
var
boStatus: Boolean;
begin
boStatus := CheckBoxKillHumanWinLevel.Checked;
CheckBoxKilledLostLevel.Enabled := boStatus;
EditKillHumanWinLevel.Enabled := boStatus;
EditKilledLostLevel.Enabled := boStatus;
if not boStatus then begin
CheckBoxKilledLostLevel.Checked := False;
if not CheckBoxKillHumanWinExp.Checked then
EditHumanLevelDiffer.Enabled := False;
end else begin
EditHumanLevelDiffer.Enabled := True;
end;
if not boOpened then Exit;
g_Config.boKillHumanWinLevel := boStatus;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxKilledLostLevelClick(Sender: TObject);
var
boStatus: Boolean;
begin
boStatus := CheckBoxKilledLostLevel.Checked;
EditKilledLostLevel.Enabled := boStatus;
if not boOpened then Exit;
g_Config.boKilledLostLevel := boStatus;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxKillHumanWinExpClick(Sender: TObject);
var
boStatus: Boolean;
begin
boStatus := CheckBoxKillHumanWinExp.Checked;
CheckBoxKilledLostExp.Enabled := boStatus;
EditKillHumanWinExp.Enabled := boStatus;
EditKillHumanLostExp.Enabled := boStatus;
if not boStatus then begin
CheckBoxKilledLostExp.Checked := False;
if not CheckBoxKillHumanWinLevel.Checked then
EditHumanLevelDiffer.Enabled := False;
end else begin
EditHumanLevelDiffer.Enabled := True;
end;
if not boOpened then Exit;
g_Config.boKillHumanWinExp := boStatus;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxKilledLostExpClick(Sender: TObject);
var
boStatus: Boolean;
begin
boStatus := CheckBoxKilledLostExp.Checked;
EditKillHumanLostExp.Enabled := boStatus;
if not boOpened then Exit;
g_Config.boKilledLostExp := boStatus;
ModValue();
end;
procedure TfrmGameConfig.EditKillHumanWinLevelChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nKillHumanWinLevel := EditKillHumanWinLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.EditKilledLostLevelChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nKilledLostLevel := EditKilledLostLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.EditKillHumanWinExpChange(Sender: TObject);
begin
if EditKillHumanWinExp.Text = '' then begin
EditKillHumanWinExp.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nKillHumanWinExp := EditKillHumanWinExp.Value;
ModValue();
end;
procedure TfrmGameConfig.EditKillHumanLostExpChange(Sender: TObject);
begin
if EditKillHumanLostExp.Text = '' then begin
EditKillHumanLostExp.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nKillHumanLostExp := EditKillHumanLostExp.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHumanLevelDifferChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nHumanLevelDiffer := EditHumanLevelDiffer.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxPKLevelProtectClick(Sender: TObject);
var
boStatus: Boolean;
begin
boStatus := CheckBoxPKLevelProtect.Checked;
EditPKProtectLevel.Enabled := boStatus;
if not boOpened then Exit;
g_Config.boPKLevelProtect := boStatus;
ModValue();
end;
procedure TfrmGameConfig.EditPKProtectLevelChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nPKProtectLevel := EditPKProtectLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRedPKProtectLevelChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nRedPKProtectLevel := EditRedPKProtectLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.ButtonOptionSave2Click(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'DecPkPointTime', g_Config.dwDecPkPointTime);
Config.WriteInteger('Setup', 'DecPkPointCount', g_Config.nDecPkPointCount);
Config.WriteInteger('Setup', 'PKFlagTime', g_Config.dwPKFlagTime);
Config.WriteInteger('Setup', 'KillHumanAddPKPoint', g_Config.nKillHumanAddPKPoint);
Config.WriteInteger('Setup', 'KillHumanDecLuckPoint', g_Config.nKillHumanDecLuckPoint);
Config.WriteBool('Setup', 'KillHumanWinLevel', g_Config.boKillHumanWinLevel);
Config.WriteBool('Setup', 'KilledLostLevel', g_Config.boKilledLostLevel);
Config.WriteInteger('Setup', 'KillHumanWinLevelPoint', g_Config.nKillHumanWinLevel);
Config.WriteInteger('Setup', 'KilledLostLevelPoint', g_Config.nKilledLostLevel);
Config.WriteBool('Setup', 'KillHumanWinExp', g_Config.boKillHumanWinExp);
Config.WriteBool('Setup', 'KilledLostExp', g_Config.boKilledLostExp);
Config.WriteInteger('Setup', 'KillHumanWinExpPoint', g_Config.nKillHumanWinExp);
Config.WriteInteger('Setup', 'KillHumanLostExpPoint', g_Config.nKillHumanLostExp);
Config.WriteInteger('Setup', 'HumanLevelDiffer', g_Config.nHumanLevelDiffer);
Config.WriteBool('Setup', 'PKProtect', g_Config.boPKLevelProtect);
Config.WriteInteger('Setup', 'PKProtectLevel', g_Config.nPKProtectLevel);
Config.WriteInteger('Setup', 'RedPKProtectLevel', g_Config.nRedPKProtectLevel);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.CheckBoxTestServerClick(Sender: TObject);
var
boStatue: Boolean;
begin
boStatue := CheckBoxTestServer.Checked;
EditTestLevel.Enabled := boStatue;
EditTestGold.Enabled := boStatue;
EditTestUserLimit.Enabled := boStatue;
if not boOpened then Exit;
g_Config.boTestServer := boStatue;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxServiceModeClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boServiceMode := CheckBoxServiceMode.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxVentureModeClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boVentureServer := CheckBoxVentureMode.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxNonPKModeClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boNonPKServer := CheckBoxNonPKMode.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditTestLevelKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
EditTestLevel.Tag := EditTestLevel.Value;
end;
procedure TfrmGameConfig.EditTestLevelChange(Sender: TObject);
begin
if EditTestLevel.Text = '' then begin
EditTestLevel.Tag := 1;
EditTestLevel.Text := '0';
Exit;
end;
if (EditTestLevel.Tag = 1) and (EditTestLevel.Value <> 0) then begin
EditTestLevel.Tag := 0;
EditTestLevel.Value := EditTestLevel.Value div 10;
end;
if not boOpened then Exit;
g_Config.nTestLevel := EditTestLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.EditTestGoldChange(Sender: TObject);
begin
if EditTestGold.Text = '' then begin
EditTestGold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nTestGold := EditTestGold.Value;
ModValue();
end;
procedure TfrmGameConfig.EditTestUserLimitChange(Sender: TObject);
begin
if EditTestUserLimit.Text = '' then begin
EditTestUserLimit.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nTestUserLimit := EditTestUserLimit.Value;
ModValue();
end;
procedure TfrmGameConfig.EditStartPermissionChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nStartPermission := EditStartPermission.Value;
ModValue();
end;
procedure TfrmGameConfig.EditUserFullChange(Sender: TObject);
begin
if EditUserFull.Text = '' then begin
EditUserFull.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nUserFull := EditUserFull.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHumanMaxGoldChange(Sender: TObject);
begin
if EditHumanMaxGold.Text = '' then begin
EditHumanMaxGold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nHumanMaxGold := EditHumanMaxGold.Value;
ModValue();
end;
procedure TfrmGameConfig.EditHumanTryModeMaxGoldChange(Sender: TObject);
begin
if EditHumanTryModeMaxGold.Text = '' then begin
EditHumanTryModeMaxGold.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nHumanTryModeMaxGold := EditHumanTryModeMaxGold.Value;
ModValue();
end;
procedure TfrmGameConfig.EditTryModeLevelChange(Sender: TObject);
begin
if EditTryModeLevel.Text = '' then begin
EditTryModeLevel.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nTryModeLevel := EditTryModeLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxTryModeUseStorageClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boTryModeUseStorage := CheckBoxTryModeUseStorage.Checked;
ModValue();
end;
procedure TfrmGameConfig.ButtonOptionSave0Click(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteString('Server', 'TestServer', BoolToStr(g_Config.boTestServer));
Config.WriteInteger('Server', 'TestLevel', g_Config.nTestLevel);
Config.WriteInteger('Server', 'TestGold', g_Config.nTestGold);
Config.WriteInteger('Server', 'TestServerUserLimit', g_Config.nTestUserLimit);
Config.WriteString('Server', 'ServiceMode', BoolToStr(g_Config.boServiceMode));
Config.WriteString('Server', 'NonPKServer', BoolToStr(g_Config.boNonPKServer));
Config.WriteString('Server', 'VentureServer', BoolToStr(g_Config.boVentureServer));
Config.WriteInteger('Setup', 'StartPermission', g_Config.nStartPermission);
Config.WriteInteger('Server', 'UserFull', g_Config.nUserFull);
Config.WriteInteger('Setup', 'HumanMaxGold', g_Config.nHumanMaxGold);
Config.WriteInteger('Setup', 'HumanTryModeMaxGold', g_Config.nHumanTryModeMaxGold);
Config.WriteInteger('Setup', 'TryModeLevel', g_Config.nTryModeLevel);
Config.WriteBool('Setup', 'TryModeUseStorage', g_Config.boTryModeUseStorage);
Config.WriteInteger('Setup', 'GroupMembersMax', g_Config.nGroupMembersMax);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditSayMsgMaxLenChange(Sender: TObject);
begin
if EditSayMsgMaxLen.Text = '' then begin
EditSayMsgMaxLen.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nSayMsgMaxLen := EditSayMsgMaxLen.Value;
ModValue();
end;
procedure TfrmGameConfig.EditSayRedMsgMaxLenChange(Sender: TObject);
begin
if EditSayRedMsgMaxLen.Text = '' then begin
EditSayRedMsgMaxLen.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nSayRedMsgMaxLen := EditSayRedMsgMaxLen.Value;
ModValue();
end;
procedure TfrmGameConfig.EditCanShoutMsgLevelChange(Sender: TObject);
begin
if EditCanShoutMsgLevel.Text = '' then begin
EditCanShoutMsgLevel.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nCanShoutMsgLevel := EditCanShoutMsgLevel.Value;
ModValue();
end;
procedure TfrmGameConfig.EditSayMsgTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwSayMsgTime := EditSayMsgTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditSayMsgCountChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSayMsgCount := EditSayMsgCount.Value;
ModValue();
end;
procedure TfrmGameConfig.EditDisableSayMsgTimeChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.dwDisableSayMsgTime := EditDisableSayMsgTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxShutRedMsgShowGMNameClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boShutRedMsgShowGMName := CheckBoxShutRedMsgShowGMName.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxShowPreFixMsgClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boShowPreFixMsg := CheckBoxShowPreFixMsg.Checked;
ModValue();
end;
procedure TfrmGameConfig.EditGMRedMsgCmdChange(Sender: TObject);
var
sCmd: string;
begin
if not boOpened then Exit;
sCmd := EditGMRedMsgCmd.Text;
g_GMRedMsgCmd := sCmd[1];
ModValue();
end;
procedure TfrmGameConfig.ButtonMsgSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'SayMsgMaxLen', g_Config.nSayMsgMaxLen);
Config.WriteInteger('Setup', 'SayMsgTime', g_Config.dwSayMsgTime);
Config.WriteInteger('Setup', 'SayMsgCount', g_Config.nSayMsgCount);
Config.WriteInteger('Setup', 'SayRedMsgMaxLen', g_Config.nSayRedMsgMaxLen);
Config.WriteBool('Setup', 'ShutRedMsgShowGMName', g_Config.boShutRedMsgShowGMName);
Config.WriteInteger('Setup', 'CanShoutMsgLevel', g_Config.nCanShoutMsgLevel);
CommandConf.WriteString('Command', 'GMRedMsgCmd', g_GMRedMsgCmd);
Config.WriteBool('Setup', 'ShowPreFixMsg', g_Config.boShowPreFixMsg);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditStartCastleWarDaysChange(Sender: TObject);
begin
if EditStartCastleWarDays.Text = '' then begin
EditStartCastleWarDays.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nStartCastleWarDays := EditStartCastleWarDays.Value;
ModValue();
end;
procedure TfrmGameConfig.EditStartCastlewarTimeChange(Sender: TObject);
begin
if EditStartCastlewarTime.Text = '' then begin
EditStartCastlewarTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nStartCastlewarTime := EditStartCastlewarTime.Value;
ModValue();
end;
procedure TfrmGameConfig.EditShowCastleWarEndMsgTimeChange(
Sender: TObject);
begin
if EditShowCastleWarEndMsgTime.Text = '' then begin
EditShowCastleWarEndMsgTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwShowCastleWarEndMsgTime := EditShowCastleWarEndMsgTime.Value * (60 * 1000);
ModValue();
end;
procedure TfrmGameConfig.EditCastleWarTimeChange(Sender: TObject);
begin
if EditCastleWarTime.Text = '' then begin
EditCastleWarTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwCastleWarTime := EditCastleWarTime.Value * (60 * 1000);
ModValue();
end;
procedure TfrmGameConfig.EditGetCastleTimeChange(Sender: TObject);
begin
if EditGetCastleTime.Text = '' then begin
EditGetCastleTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwGetCastleTime := EditGetCastleTime.Value * (60 * 1000);
ModValue();
end;
procedure TfrmGameConfig.EditGuildWarTimeChange(Sender: TObject);
begin
if EditGuildWarTime.Text = '' then begin
EditGuildWarTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwGuildWarTime := EditGuildWarTime.Value * (60 * 1000);
ModValue();
end;
procedure TfrmGameConfig.EditMakeGhostTimeChange(Sender: TObject);
begin
if EditMakeGhostTime.Text = '' then begin
EditMakeGhostTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwMakeGhostTime := EditMakeGhostTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditClearDropOnFloorItemTimeChange(
Sender: TObject);
begin
if EditClearDropOnFloorItemTime.Text = '' then begin
EditClearDropOnFloorItemTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwClearDropOnFloorItemTime := EditClearDropOnFloorItemTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.EditSaveHumanRcdTimeChange(Sender: TObject);
begin
if EditSaveHumanRcdTime.Text = '' then begin
EditSaveHumanRcdTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwSaveHumanRcdTime := EditSaveHumanRcdTime.Value * (60 * 1000);
ModValue();
end;
procedure TfrmGameConfig.EditHumanFreeDelayTimeChange(Sender: TObject);
begin
if EditHumanFreeDelayTime.Text = '' then begin
EditHumanFreeDelayTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwHumanFreeDelayTime := EditHumanFreeDelayTime.Value * (60 * 1000);
ModValue();
end;
procedure TfrmGameConfig.EditFloorItemCanPickUpTimeChange(Sender: TObject);
begin
if EditFloorItemCanPickUpTime.Text = '' then begin
EditFloorItemCanPickUpTime.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.dwFloorItemCanPickUpTime := EditFloorItemCanPickUpTime.Value * 1000;
ModValue();
end;
procedure TfrmGameConfig.ButtonTimeSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'StartCastleWarDays', g_Config.nStartCastleWarDays);
Config.WriteInteger('Setup', 'StartCastlewarTime', g_Config.nStartCastlewarTime);
Config.WriteInteger('Setup', 'ShowCastleWarEndMsgTime', g_Config.dwShowCastleWarEndMsgTime);
Config.WriteInteger('Setup', 'CastleWarTime', g_Config.dwCastleWarTime);
Config.WriteInteger('Setup', 'GetCastleTime', g_Config.dwGetCastleTime);
Config.WriteInteger('Setup', 'GuildWarTime', g_Config.dwGuildWarTime);
Config.WriteInteger('Setup', 'SaveHumanRcdTime', g_Config.dwSaveHumanRcdTime);
Config.WriteInteger('Setup', 'HumanFreeDelayTime', g_Config.dwHumanFreeDelayTime);
Config.WriteInteger('Setup', 'MakeGhostTime', g_Config.dwMakeGhostTime);
Config.WriteInteger('Setup', 'ClearDropOnFloorItemTime', g_Config.dwClearDropOnFloorItemTime);
Config.WriteInteger('Setup', 'FloorItemCanPickUpTime', g_Config.dwFloorItemCanPickUpTime);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditBuildGuildPriceChange(Sender: TObject);
begin
if EditBuildGuildPrice.Text = '' then begin
EditBuildGuildPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nBuildGuildPrice := EditBuildGuildPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditGuildWarPriceChange(Sender: TObject);
begin
if EditGuildWarPrice.Text = '' then begin
EditGuildWarPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nGuildWarPrice := EditGuildWarPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditMakeDurgPriceChange(Sender: TObject);
begin
if EditMakeDurgPrice.Text = '' then begin
EditMakeDurgPrice.Text := '0';
Exit;
end;
if not boOpened then Exit;
g_Config.nMakeDurgPrice := EditMakeDurgPrice.Value;
ModValue();
end;
procedure TfrmGameConfig.EditSuperRepairPriceRateChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nSuperRepairPriceRate := EditSuperRepairPriceRate.Value;
ModValue();
end;
procedure TfrmGameConfig.EditRepairItemDecDuraChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nRepairItemDecDura := EditRepairItemDecDura.Value;
ModValue();
end;
procedure TfrmGameConfig.ButtonPriceSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'BuildGuild', g_Config.nBuildGuildPrice);
Config.WriteInteger('Setup', 'MakeDurg', g_Config.nMakeDurgPrice);
Config.WriteInteger('Setup', 'GuildWarFee', g_Config.nGuildWarPrice);
Config.WriteInteger('Setup', 'SuperRepairPriceRate', g_Config.nSuperRepairPriceRate);
Config.WriteInteger('Setup', 'RepairItemDecDura', g_Config.nRepairItemDecDura);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.EditHearMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditHearMsgFColor.Value;
LabeltHearMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btHearMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EdittHearMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EdittHearMsgBColor.Value;
LabelHearMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btHearMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditWhisperMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditWhisperMsgFColor.Value;
LabelWhisperMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btWhisperMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditWhisperMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditWhisperMsgBColor.Value;
LabelWhisperMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btWhisperMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGMWhisperMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGMWhisperMsgFColor.Value;
LabelGMWhisperMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGMWhisperMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGMWhisperMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGMWhisperMsgBColor.Value;
LabelGMWhisperMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGMWhisperMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditRedMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditRedMsgFColor.Value;
LabelRedMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btRedMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditRedMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditRedMsgBColor.Value;
LabelRedMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btRedMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGreenMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGreenMsgFColor.Value;
LabelGreenMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGreenMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGreenMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGreenMsgBColor.Value;
LabelGreenMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGreenMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditBlueMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditBlueMsgFColor.Value;
LabelBlueMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btBlueMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditBlueMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditBlueMsgBColor.Value;
LabelBlueMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btBlueMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditCryMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditCryMsgFColor.Value;
LabelCryMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btCryMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditCryMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditCryMsgBColor.Value;
LabelCryMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btCryMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGuildMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGuildMsgFColor.Value;
LabelGuildMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGuildMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGuildMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGuildMsgBColor.Value;
LabelGuildMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGuildMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGroupMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGroupMsgFColor.Value;
LabelGroupMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGroupMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditGroupMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditGroupMsgBColor.Value;
LabelGroupMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btGroupMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditCustMsgFColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditCustMsgFColor.Value;
LabelCustMsgFColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btCustMsgFColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.EditCustMsgBColorChange(Sender: TObject);
var
btColor: Byte;
begin
btColor := EditCustMsgBColor.Value;
LabelCustMsgBColor.Color := GetRGB(btColor);
if not boOpened then Exit;
g_Config.btCustMsgBColor := btColor;
ModValue();
end;
procedure TfrmGameConfig.ButtonMsgColorSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteInteger('Setup', 'HearMsgFColor', g_Config.btHearMsgFColor);
Config.WriteInteger('Setup', 'HearMsgBColor', g_Config.btHearMsgBColor);
Config.WriteInteger('Setup', 'WhisperMsgFColor', g_Config.btWhisperMsgFColor);
Config.WriteInteger('Setup', 'WhisperMsgBColor', g_Config.btWhisperMsgBColor);
Config.WriteInteger('Setup', 'GMWhisperMsgFColor', g_Config.btGMWhisperMsgFColor);
Config.WriteInteger('Setup', 'GMWhisperMsgBColor', g_Config.btGMWhisperMsgBColor);
Config.WriteInteger('Setup', 'CryMsgFColor', g_Config.btCryMsgFColor);
Config.WriteInteger('Setup', 'CryMsgBColor', g_Config.btCryMsgBColor);
Config.WriteInteger('Setup', 'GreenMsgFColor', g_Config.btGreenMsgFColor);
Config.WriteInteger('Setup', 'GreenMsgBColor', g_Config.btGreenMsgBColor);
Config.WriteInteger('Setup', 'BlueMsgFColor', g_Config.btBlueMsgFColor);
Config.WriteInteger('Setup', 'BlueMsgBColor', g_Config.btBlueMsgBColor);
Config.WriteInteger('Setup', 'RedMsgFColor', g_Config.btRedMsgFColor);
Config.WriteInteger('Setup', 'RedMsgBColor', g_Config.btRedMsgBColor);
Config.WriteInteger('Setup', 'GuildMsgFColor', g_Config.btGuildMsgFColor);
Config.WriteInteger('Setup', 'GuildMsgBColor', g_Config.btGuildMsgBColor);
Config.WriteInteger('Setup', 'GroupMsgFColor', g_Config.btGroupMsgFColor);
Config.WriteInteger('Setup', 'GroupMsgBColor', g_Config.btGroupMsgBColor);
Config.WriteInteger('Setup', 'CustMsgFColor', g_Config.btCustMsgFColor);
Config.WriteInteger('Setup', 'CustMsgBColor', g_Config.btCustMsgBColor);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.ButtonHumanDieSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'DieScatterBag', g_Config.boDieScatterBag);
Config.WriteInteger('Setup', 'DieScatterBagRate', g_Config.nDieScatterBagRate);
Config.WriteBool('Setup', 'DieRedScatterBagAll', g_Config.boDieRedScatterBagAll);
Config.WriteInteger('Setup', 'DieDropUseItemRate', g_Config.nDieDropUseItemRate);
Config.WriteInteger('Setup', 'DieRedDropUseItemRate', g_Config.nDieRedDropUseItemRate);
Config.WriteBool('Setup', 'DieDropGold', g_Config.boDieDropGold);
Config.WriteBool('Setup', 'KillByHumanDropUseItem', g_Config.boKillByHumanDropUseItem);
Config.WriteBool('Setup', 'KillByMonstDropUseItem', g_Config.boKillByMonstDropUseItem);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.ScrollBarDieDropUseItemRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarDieDropUseItemRate.Position;
EditDieDropUseItemRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nDieDropUseItemRate := nPostion;
ModValue();
end;
procedure TfrmGameConfig.ScrollBarDieRedDropUseItemRateChange(
Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarDieRedDropUseItemRate.Position;
EditDieRedDropUseItemRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nDieRedDropUseItemRate := nPostion;
ModValue();
end;
procedure TfrmGameConfig.ScrollBarDieScatterBagRateChange(Sender: TObject);
var
nPostion: Integer;
begin
nPostion := ScrollBarDieScatterBagRate.Position;
EditDieScatterBagRate.Text := IntToStr(nPostion);
if not boOpened then Exit;
g_Config.nDieScatterBagRate := nPostion;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxKillByMonstDropUseItemClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boKillByMonstDropUseItem := CheckBoxKillByMonstDropUseItem.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxKillByHumanDropUseItemClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boKillByHumanDropUseItem := CheckBoxKillByHumanDropUseItem.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxDieScatterBagClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDieScatterBag := CheckBoxDieScatterBag.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxDieDropGoldClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDieDropGold := CheckBoxDieDropGold.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxDieRedScatterBagAllClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boDieRedScatterBagAll := CheckBoxDieRedScatterBagAll.Checked;
ModValue();
end;
procedure TfrmGameConfig.RefCharStatusConf;
begin
CheckBoxParalyCanRun.Checked := g_Config.ClientConf.boParalyCanRun;
CheckBoxParalyCanWalk.Checked := g_Config.ClientConf.boParalyCanWalk;
CheckBoxParalyCanHit.Checked := g_Config.ClientConf.boParalyCanHit;
CheckBoxParalyCanSpell.Checked := g_Config.ClientConf.boParalyCanSpell;
end;
procedure TfrmGameConfig.ButtonCharStatusSaveClick(Sender: TObject);
begin
{$IF SoftVersion <> VERDEMO}
Config.WriteBool('Setup', 'ParalyCanRun', g_Config.ClientConf.boParalyCanRun);
Config.WriteBool('Setup', 'ParalyCanWalk', g_Config.ClientConf.boParalyCanWalk);
Config.WriteBool('Setup', 'ParalyCanHit', g_Config.ClientConf.boParalyCanHit);
Config.WriteBool('Setup', 'ParalyCanSpell', g_Config.ClientConf.boParalyCanSpell);
{$IFEND}
uModValue();
end;
procedure TfrmGameConfig.CheckBoxParalyCanRunClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.ClientConf.boParalyCanRun := CheckBoxParalyCanRun.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxParalyCanWalkClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.ClientConf.boParalyCanWalk := CheckBoxParalyCanWalk.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxParalyCanHitClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.ClientConf.boParalyCanHit := CheckBoxParalyCanHit.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxParalyCanSpellClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.ClientConf.boParalyCanSpell := CheckBoxParalyCanSpell.Checked;
ModValue();
end;
procedure TfrmGameConfig.ButtonActionSpeedConfigClick(Sender: TObject);
begin
frmActionSpeed := TfrmActionSpeed.Create(Owner);
frmActionSpeed.Top := Top + 20;
frmActionSpeed.Left := Left;
frmActionSpeed.Open;
frmActionSpeed.Free;
end;
procedure TfrmGameConfig.CheckBoxSafeAreaClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boSafeAreaLimited := CheckBoxSafeArea.Checked;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxFixExpClick(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boUseFixExp := CheckBoxFixExp.Checked;
SpinEditBaseExp.Enabled := not CheckBoxFixExp.Checked;
SpinEditAddExp.Enabled := not CheckBoxFixExp.Checked;
ModValue();
end;
procedure TfrmGameConfig.SpinEditBaseExpChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nBaseExp := SpinEditBaseExp.Value;
ModValue();
end;
procedure TfrmGameConfig.SpinEditAddExpChange(Sender: TObject);
begin
if not boOpened then Exit;
g_Config.nAddExp := SpinEditAddExp.Value;
ModValue();
end;
procedure TfrmGameConfig.CheckBoxHighLevelGroupFixExpClick(
Sender: TObject);
begin
if not boOpened then Exit;
g_Config.boHighLevelGroupFixExp := CheckBoxHighLevelGroupFixExp.Checked;
ModValue();
end;
end.
-
VirUs@AkumaMir2.co.uk
Re: GameOfMir
whats this? fixed? bug free? info lol
VirUs
-
Enthusiast
Re: GameOfMir
Whats the bloody question.
-
Gamma
Re: GameOfMir
As I said of Becky's account, What is the damn question?
-
VirUs@AkumaMir2.co.uk
Re: GameOfMir
dont think it question thinks its the sources been fixed
VirUs
-
Enthusiast
Re: GameOfMir
In a Chinese illustrious legend procedure code.!
This is only a part
-
Member
-
VirUs@AkumaMir2.co.uk
Re: GameOfMir
its for delphi for coding a server, could u release the rest if not.......... add me to msn or pm me
VirUs