ctgwglzc 发表于 2009-9-22 01:37:37

重建一些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_)

ctgwglzc 发表于 2009-9-22 01:38:06

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

ctgwglzc 发表于 2009-9-22 01:38:43

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_)

ctgwglzc 发表于 2009-9-22 01:38:57

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_)

ctgwglzc 发表于 2009-9-22 01:39:58

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();
}

ctgwglzc 发表于 2009-9-22 01:40:27

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_)

ctgwglzc 发表于 2009-9-22 01:41:03

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_)

ctgwglzc 发表于 2009-9-22 01:41:37

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_)

ctgwglzc 发表于 2009-9-22 01:41:50

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

ctgwglzc 发表于 2009-9-22 01:42:14

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
查看完整版本: 重建一些AI缺失的源代码