重建一些AI缺失的源代码
NpcTableSet.h#if !defined(AFX_NPCTABLESET_H__0F6AE0D2_2327_44B1_8D11_AEB3D8DE2CB9__INCLUDED_)
#define AFX_NPCTABLESET_H__0F6AE0D2_2327_44B1_8D11_AEB3D8DE2CB9__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// NpcTableSet.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// NpcTableSet recordset
class CNpcTableSet : public CRecordset
{
public:
CNpcTableSet(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CNpcTableSet)
// Field/Param Data
//{{AFX_FIELD(CNpcTableSet, CRecordset)
int m_sSid;
CString m_strName;
int m_sPid;
int m_sSize;
long m_iWeapon1;
long m_iWeapon2;
BYTE m_byGroup;
BYTE m_byActType;
BYTE m_byType;
BYTE m_byFamily;
BYTE m_byRank;
BYTE m_byTitle;
long m_iSellingGroup;
int m_sLevel;
long m_iExp;
long m_iLoyalty;
long m_iHpPoint;
int m_sMpPoint;
int m_sAtk;
int m_sAc;
int m_sHitRate;
int m_sEvadeRate;
int m_sDamage;
int m_sAttackDelay;
BYTE m_bySpeed1;
BYTE m_bySpeed2;
int m_sStandtime;
long m_iMagic1;
long m_iMagic2;
long m_iMagic3;
int m_sFireR;
int m_sColdR;
int m_sLightningR;
int m_sMagicR;
int m_sDiseaseR;
int m_sPoisonR;
int m_sLightR;
int m_sBulk;
BYTE m_byAttackRange;
BYTE m_bySearchRange;
BYTE m_byTracingRange;
long m_iMoney;
int m_sItem;
BYTE m_byDirectAttack;
BYTE m_byMagicAttack;
BYTE m_byMoneyType;
//}}AFX_FIELD
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CNpcTableSet)
public:
virtual CString GetDefaultConnect(); // Default connection string
virtual CString GetDefaultSQL(); // Default SQL for Recordset
virtual void DoFieldExchange(CFieldExchange* pFX);// RFX support
//}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_NPCTABLESET_H__0F6AE0D2_2327_44B1_8D11_AEB3D8DE2CB9__INCLUDED_)
NpcTableSet.cpp// NpcTableSet.cpp : implementation file
//
#include "stdafx.h"
#include "NpcTableSet.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CNpcTableSet
IMPLEMENT_DYNAMIC(CNpcTableSet, CRecordset)
CNpcTableSet::CNpcTableSet(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CNpcTableSet)
m_sSid = 0;
m_strName = _T("");
m_sPid = 0;
m_sSize = 0;
m_iWeapon1 = 0;
m_iWeapon2 = 0;
m_byGroup = 0;
m_byActType = 0;
m_byType = 0;
m_byFamily = 0;
m_byRank = 0;
m_byTitle = 0;
m_iSellingGroup = 0;
m_sLevel = 0;
m_iExp = 0;
m_iLoyalty = 0;
m_iHpPoint = 0;
m_sMpPoint = 0;
m_sAtk = 0;
m_sAc = 0;
m_sHitRate = 0;
m_sEvadeRate = 0;
m_sDamage = 0;
m_sAttackDelay = 0;
m_bySpeed1 = 0;
m_bySpeed2 = 0;
m_sStandtime = 0;
m_iMagic1 = 0;
m_iMagic2 = 0;
m_iMagic3 = 0;
m_sFireR = 0;
m_sColdR = 0;
m_sLightningR = 0;
m_sMagicR = 0;
m_sDiseaseR = 0;
m_sPoisonR = 0;
m_sLightR = 0;
m_sBulk = 0;
m_byAttackRange = 0;
m_bySearchRange = 0;
m_byTracingRange = 0;
m_iMoney = 0;
m_sItem = 0;
m_byDirectAttack = 0;
m_byMagicAttack = 0;
m_byMoneyType = 0;
m_nFields = 46;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}
CString CNpcTableSet::GetDefaultConnect()
{
return _T("ODBC;DSN=kn_online;UID=knight;PWD=knight");
}
CString CNpcTableSet::GetDefaultSQL()
{
return _T(".");
}
void CNpcTableSet::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CNpcTableSet)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Int(pFX, _T(""), m_sSid);
RFX_Text(pFX, _T(""), m_strName);
RFX_Int(pFX, _T(""), m_sPid);
RFX_Int(pFX, _T(""), m_sSize);
RFX_Long(pFX, _T(""), m_iWeapon1);
RFX_Long(pFX, _T(""), m_iWeapon2);
RFX_Byte(pFX, _T(""), m_byGroup);
RFX_Byte(pFX, _T(""), m_byActType);
RFX_Byte(pFX, _T(""), m_byType);
RFX_Byte(pFX, _T(""), m_byFamily);
RFX_Byte(pFX, _T(""), m_byRank);
RFX_Byte(pFX, _T(""), m_byTitle);
RFX_Long(pFX, _T(""), m_iSellingGroup);
RFX_Int(pFX, _T(""), m_sLevel);
RFX_Long(pFX, _T(""), m_iLoyalty);
RFX_Long(pFX, _T(""), m_iLoyalty);
RFX_Long(pFX, _T(""), m_iHpPoint);
RFX_Int(pFX, _T(""), m_sMpPoint);
RFX_Int(pFX, _T(""), m_sAtk);
RFX_Int(pFX, _T(""), m_sAc);
RFX_Int(pFX, _T(""), m_sHitRate);
RFX_Int(pFX, _T(""), m_sEvadeRate);
RFX_Int(pFX, _T(""), m_sAttackDelay);
RFX_Byte(pFX, _T(""), m_bySpeed1);
RFX_Byte(pFX, _T(""), m_bySpeed2);
RFX_Int(pFX, _T(""), m_sStandtime);
RFX_Long(pFX, _T(""), m_iMagic1);
RFX_Long(pFX, _T(""), m_iMagic1);
RFX_Long(pFX, _T(""), m_iMagic1);
RFX_Int(pFX, _T(""), m_sFireR);
RFX_Int(pFX, _T(""), m_sColdR);
RFX_Int(pFX, _T(""), m_sDiseaseR);
RFX_Int(pFX, _T(""), m_sMagicR);
RFX_Int(pFX, _T(""), m_sLightningR);
RFX_Int(pFX, _T(""), m_sPoisonR);
RFX_Int(pFX, _T(""), m_sLightR);
RFX_Int(pFX, _T(""), m_sBulk);
RFX_Byte(pFX, _T(""), m_byAttackRange);
RFX_Byte(pFX, _T(""), m_bySearchRange);
RFX_Byte(pFX, _T(""), m_byTracingRange);
RFX_Long(pFX, _T(""), m_iMoney);
RFX_Int(pFX, _T(""), m_sItem);
RFX_Byte(pFX, _T(""), m_byDirectAttack);
RFX_Byte(pFX, _T(""), m_byMagicAttack);
//}}AFX_FIELD_MAP
}
/////////////////////////////////////////////////////////////////////////////
// CNpcTableSet diagnostics
#ifdef _DEBUG
void CNpcTableSet::AssertValid() const
{
CRecordset::AssertValid();
}
void CNpcTableSet::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG
Party.h// Party.h: interface for the CParty class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_PARTY_H__98237635_8ED6_4B3A_8AB8_933055C4995F__INCLUDED_)
#define AFX_PARTY_H__98237635_8ED6_4B3A_8AB8_933055C4995F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "stdafx.h"
class CParty
{
public:
CParty();
virtual ~CParty();
void Initialize();
void PartyProcess(char *pBuf);
void PartyCreate(char *pBuf);
void PartyInsert(char *pBuf);
void PartyRemove(char *pBuf);
void PartyDelete(char *pBuf);
};
#endif // !defined(AFX_PARTY_H__98237635_8ED6_4B3A_8AB8_933055C4995F__INCLUDED_)
Region.h// Region.h: interface for the CRegion class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_REGION_H__98237635_8ED6_4B3A_8AB8_933055C4995F__INCLUDED_)
#define AFX_REGION_H__98237635_8ED6_4B3A_8AB8_933055C4995F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "stdafx.h"
#include "STLMap.h"
typedef CSTLMap <int> ZoneUserArray;
typedef CSTLMap <int> ZoneNpcArray;
class CRegion
{
public:
CRegion();
virtual ~CRegion();
ZoneUserArray m_RegionUserArray;
ZoneNpcArray m_RegionNpcArray;
};
#endif // !defined(AFX_REGION_H__98237635_8ED6_4B3A_8AB8_933055C4995F__INCLUDED_)
Region.cpp// Region.cpp: implementation of the CRegion class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "Region.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CRegion::CRegion()
{
}
CRegion::~CRegion()
{
if( !m_RegionUserArray.IsEmpty() )
m_RegionUserArray.DeleteAllData();
if( !m_RegionNpcArray.IsEmpty() )
m_RegionNpcArray.DeleteAllData();
}
PathFind.h// PathFind.h: interface for the CPathFind class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CPATHFIND_H__7C457180_E271_45E6_BEFC_912BCCAB0604__INCLUDED_)
#define AFX_CPATHFIND_H__7C457180_E271_45E6_BEFC_912BCCAB0604__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
struct _PathNode
{
_PathNode *Parent;
_PathNode *Child;
_PathNode *NextNode;
int f;
int g;
int h;
int x;
int y;
};
class CPathFind
{
public:
CPathFind();
~CPathFind();
void ClearData();
void SetMap(int x, int y, int *pMap);
_PathNode *FindPath(int start_x, int start_y, int dest_x, int dest_y);
_PathNode *ReturnBestNode();
void FindChildPath(_PathNode *node, int dx, int dy);
void FindChildPathSub(_PathNode *node, int x, int y, int dx, int dy, int arg);
_PathNode *CheckOpen(int x, int y);
_PathNode *CheckClosed(int x, int y);
void Insert(_PathNode *node);
void PropagateDown(_PathNode *old);
void Push(_PathNode *node);
_PathNode *Pop();
BOOL IsBlankMap(int x, int y);
};
#endif // !defined(AFX_CPATHFIND_H__7C457180_E271_45E6_BEFC_912BCCAB0604__INCLUDED_)
MagicTableSet.h#if !defined(AFX_MAGICTABLESET_H__05C21F9B_4066_44D8_92ED_AA39405D389F__INCLUDED_)
#define AFX_MAGICTABLESET_H__05C21F9B_4066_44D8_92ED_AA39405D389F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// MagicTableSet.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CMagicTableSet recordset
class CMagicTableSet : public CRecordset
{
public:
CMagicTableSet(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CMagicTableSet)
// Field/Param Data
//{{AFX_FIELD(CMagicTableSet, CRecordset)
long m_MagicNum;
CString m_EnName;
CString m_KrName;
CString m_Description;
BYTE m_BeforeAction;
BYTE m_TargetAction;
BYTE m_SelfEffect;
BYTE m_FlyingEffect;
int m_TargetEffect;
BYTE m_Moral;
int m_SkillLevel;
int m_Skill;
int m_Msp;
int m_HP;
BYTE m_ItemGroup;
long m_UseItem;
BYTE m_CastTime;
BYTE m_ReCastTime;
BYTE m_SuccessRate;
BYTE m_Type1;
BYTE m_Type2;
int m_Range;
BYTE m_Etc;
long m_Event;
//}}AFX_FIELD
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMagicTableSet)
public:
virtual CString GetDefaultConnect(); // Default connection string
virtual CString GetDefaultSQL(); // Default SQL for Recordset
virtual void DoFieldExchange(CFieldExchange* pFX);// RFX support
//}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAGICTABLESET_H__05C21F9B_4066_44D8_92ED_AA39405D389F__INCLUDED_)
MagicType1Set.h#if !defined(AFX_MAGICTYPE1SET_H__05C21F9B_4066_44D8_92ED_AA39405D389F__INCLUDED_)
#define AFX_MAGICTYPE1SET_H__05C21F9B_4066_44D8_92ED_AA39405D389F__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// MagicType1Set.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CMagicType1Set recordset
class CMagicType1Set : public CRecordset
{
public:
CMagicType1Set(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CMagicType1Set)
// Field/Param Data
//{{AFX_FIELD(CMagicType1Set, CRecordset)
long m_iNum;
CString m_Name;
CString m_Description;
BYTE m_Type;
int m_HitRate;
int m_Hit;
BYTE m_Delay;
BYTE m_ComboType;
BYTE m_ComboCount;
int m_ComboDamage;
int m_Range;
//}}AFX_FIELD
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMagicType1Set)
public:
virtual CString GetDefaultConnect(); // Default connection string
virtual CString GetDefaultSQL(); // Default SQL for Recordset
virtual void DoFieldExchange(CFieldExchange* pFX);// RFX support
//}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAGICTYPE1SET_H__05C21F9B_4066_44D8_92ED_AA39405D389F__INCLUDED_)
MagicType1Set.cpp// MagicType1Set.cpp : implementation file
//
#include "stdafx.h"
#include "server.h"
#include "MagicType1Set.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMagicType1Set
IMPLEMENT_DYNAMIC(CMagicType1Set, CRecordset)
CMagicType1Set::CMagicType1Set(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CMagicType1Set)
m_iNum = 0;
m_Name = _T("");
m_Description = _T("");
m_Type = 0;
m_HitRate = 0;
m_Hit = 0;
m_Delay = 0;
m_ComboType = 0;
m_ComboCount = 0;
m_ComboDamage = 0;
m_Range = 0;
m_nFields = 11;
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;
}
CString CMagicType1Set::GetDefaultConnect()
{
return _T("ODBC;DSN=KN_Online;UID=knight;PWD=knight");
}
CString CMagicType1Set::GetDefaultSQL()
{
return _T(".");
}
void CMagicType1Set::DoFieldExchange(CFieldExchange* pFX)
{
//{{AFX_FIELD_MAP(CMagicType1Set)
pFX->SetFieldType(CFieldExchange::outputColumn);
RFX_Long(pFX, _T(""), m_iNum);
RFX_Text(pFX, _T(""), m_Name);
RFX_Text(pFX, _T(""), m_Description);
RFX_Byte(pFX, _T(""), m_Type);
RFX_Int(pFX, _T(""), m_HitRate);
RFX_Int(pFX, _T(""), m_Hit);
RFX_Byte(pFX, _T(""), m_Delay);
RFX_Byte(pFX, _T(""), m_ComboType);
RFX_Byte(pFX, _T(""), m_ComboCount);
RFX_Int(pFX, _T(""), m_ComboDamage);
RFX_Int(pFX, _T(""), m_Range);
//}}AFX_FIELD_MAP
}
/////////////////////////////////////////////////////////////////////////////
// CMagicType1Set diagnostics
#ifdef _DEBUG
void CMagicType1Set::AssertValid() const
{
CRecordset::AssertValid();
}
void CMagicType1Set::Dump(CDumpContext& dc) const
{
CRecordset::Dump(dc);
}
#endif //_DEBUG
MagicType2Set.h#if !defined(AFX_MAGICTYPE2SET_H__BCF18D34_77DB_4B67_9556_41C14D524D57__INCLUDED_)
#define AFX_MAGICTYPE2SET_H__BCF18D34_77DB_4B67_9556_41C14D524D57__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// MagicType2Set.h : header file
//
/////////////////////////////////////////////////////////////////////////////
// CMagicType2Set recordset
class CMagicType2Set : public CRecordset
{
public:
CMagicType2Set(CDatabase* pDatabase = NULL);
DECLARE_DYNAMIC(CMagicType2Set)
// Field/Param Data
//{{AFX_FIELD(CMagicType2Set, CRecordset)
long m_iNum;
CString m_Name;
CString m_Description;
BYTE m_HitType;
int m_HitRate;
int m_AddDamage;
int m_AddRange;
BYTE m_NeedArrow;
int m_AddDamagePlus;
//}}AFX_FIELD
// Overrides
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CMagicType2Set)
public:
virtual CString GetDefaultConnect(); // Default connection string
virtual CString GetDefaultSQL(); // Default SQL for Recordset
virtual void DoFieldExchange(CFieldExchange* pFX);// RFX support
//}}AFX_VIRTUAL
// Implementation
#ifdef _DEBUG
virtual void AssertValid() const;
virtual void Dump(CDumpContext& dc) const;
#endif
};
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.
#endif // !defined(AFX_MAGICTYPE2SET_H__BCF18D34_77DB_4B67_9556_41C14D524D57__INCLUDED_)
页:
[1]
2