游戏开发论坛

 找回密码
 立即注册
搜索
查看: 3192|回复: 0

[讨论] 发个数据库管理部分的头

[复制链接]

19

主题

42

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2004-2-10 13:31:00 | 显示全部楼层 |阅读模式
//主要功能: 进行数据库操作与管理、定义所有的游戏功能
#include "afx.h"
#include "afxdb.h"
#include "UserInfo.h"
#include "ResInfo.h"
#include "VarInfo.h"
#include "MapInfo.h"

//常量定义
//数据库连接、表名、字段名定义,请根据实际情况修改
#define DB_CONN                        "DSN=数据源名"        /*数据库连接*/

#define DB_TB_AUTH                "UserAuth"                /*用户验证表名*/
#define DB_FD_ID                "uin"                        /*ID字段名*/
#define DB_FD_PWD                "passwd"                /*密码字段名*/
#define DB_FD_NICK                "nick"                        /*名称字段名*/
#define DB_FD_GENDER        "gender"                /*性别字段名*/

#define DB_TB_DATA                "pGameUser"                /*用户游戏表名*/
#define DB_FD_NAME                "sName"                        /*游戏名称字段名*/
#define DB_FD_SEX                "nSex"                        /*性别字段名*/
#define DB_FD_LEVEL                "nLevel"                /*等级字段名*/
#define DB_FD_FERE                "sFere"                        /*伴侣字段名*/
#define DB_FD_GROUP                "sGroup"                /*门派字段名*/
#define DB_FD_DEGREE        "sDegree"                /*门派中的身份*/
#define DB_FD_PIC                "nPic"                        /*图片字段名*/
#define DB_FD_MAP                "nMap"                        /*地图号字段名*/
#define DB_FD_TAG                "nTag"                        /*标记字段名*/
#define DB_FD_TIMER                "nTimer"                /*在线的时间(经验)*/
#define DB_FD_LIFE                "nLife"                        /*生命字段名*/
#define DB_FD_MONEY                "nMoney"                /*银子字段名*/
#define DB_FD_CHARQUI        "nCharqui"                /*肉干字段名*/
#define DB_FD_DRUG                "nDrug"                        /*药材字段名*/
#define DB_FD_BEAN                "nBean"                        /*神豆字段名*/
#define DB_FD_MEMBER        "nMember"                /*会员等级字段*/
#define DB_FD_LOGINTIME        "nLoginTime"        /*登录的时间*/
#define DB_FD_LOGINIP        "sLoginIP"                /*登录的IP*/

#define DB_TB_TIKU                "pGameTiKu"                /*题库表名*/
#define DB_FD_SUBJECT        "sSubject"                /*题目字段名*/
#define DB_FD_KEY                "sKey"                        /*答案字段名*/
#define DB_FD_ANSWER        "bAnswer"                /*是否已经回答字段*/

//声音定义
#define SOUND_BOOT                                        "Sound:wav/boot.wav\r\n"        /*踢人*/
#define SOUND_HUNT1                                        "Sound:wav/hunt1.wav\r\n"        /*狩猎男*/
#define SOUND_HUNT0                                        "Sound:wav/hunt0.wav\r\n"        /*狩猎女*/
#define SOUND_CORPSE_DIE                        "Sound:wav/171.wav\r\n"                /*僵尸倒下*/
#define SOUND_OX_DIE                                "Sound:wav/151.wav\r\n"                /*公牛倒下*/
#define SOUND_OX_ATTACK_HUMAN                "Sound:wav/201.wav\r\n"                /*猎物攻击人*/
#define SOUND_BEAST_DIE                                "Sound:wav/1810-2.wav\r\n"        /*其他猎物倒下*/
#define SOUND_BEAST_ATTACK_HUMAN        "Sound:wav/1910-4.wav\r\n"        /*其他猎物攻击人*/
#define SOUND_ERROR                                        "Sound:wav/error.wav\r\n"        /*错误*/
#define SOUND_EAT                                        "Sound:wav/Click.wav\r\n"        /*吃东西*/
#define SOUND_DIE1                                        "Sound:wav/die1.wav\r\n"        /*倒下男*/
#define SOUND_DIE0                                        "Sound:wav/die0.wav\r\n"        /*倒下女*/
#define SOUND_GET                                        "Sound:wav/Click.wav\r\n"        /*捡到东西*/

//定义其他
#define POWERADMIN        "高级管理员"        /*高管门派*/
#define ADMIN                "管理员"                /*管理员门派*/
#define MAXNUMBER        9999999                        /*最大的数值*/
#define MGR_CMD_BOOT        1
#define MGR_CMD_GETIP        2
#define DllExport extern "C" __declspec(dllexport)
//---------------------------------------------------------------------------
//接口函数申明
DllExport int UserLogin(char* strUser, char* strPasswd, char* strIP, CUserInfo *UserInfo);
DllExport void UserExit(CUserInfo* UserInfo);
DllExport int UserCmds(char* strResult, int nSrcItem, char* strDesName, char* strParams, CUserInfo *Users, int nMaxUser, int* nResult, CResInfo *Ress, int* nResItem, CVarInfo* VarInfo, int nMap);
DllExport void InitVariant( CVarInfo* VarInfo);
DllExport int OnTimer( int nIDEvent, char* strResult, CUserInfo *Users, int nMaxUser, CResInfo* Ress, int* nResItem, CVarInfo* VarInfo, int nMap, CMapInfo* MapInfo);
//---------------------------------------------------------------------------
//内部函数申明
bool ExecSqlCmd( CString& strCmd );
bool ExecSqlCmd( CString& strCmd, CString& strCmd2 );
bool ExecSqlCmd( CString& strCmd, CString strFieldName, CString& strValue );
bool ExecSqlCmd( CString& strCmd, CString& strQuery, CString strFieldName, CString& strValue );
LRESULT SendDllCallMsg( HWND hWnd, CString str, int nMap, int nUserItem, int nSendType );
bool CheckName( CString strName );
bool IsCaptain( CString strDegree );
int FindUser(char*, CUserInfo*, int);
int FindRes(int nPos, CResInfo* Ress);
CString GetIP(CUserInfo* User, bool bAll);
inline void MakeSayCmd(char* strResult, char* strFromName, char* strToName, char* strSayBody, int nItem );
int PreCmdAct( char* strResult, char* strSrcName, char* strDesName, char* strActName, int nSrcItem );
int PreCmdHunt( char* strResult, CUserInfo* User, int nItem, CResInfo* Ress, int* nResItem, char* strParams, int nMap, HWND hWnd );
int PreCmdGet( char* strResult, CUserInfo* User, int nItem, CResInfo* Ress, int* nResItem, char* strParams );
//void PreCmdDeal( CResInfo* Ress, char* strParams, CUserInfo* User, int nSrcItem, HWND hWnd );
void PreCmdSave( char* strResult, CUserInfo* User, int nItem );
void PreCmdState( char* strResult, CUserInfo* User, int nUserItem, HWND hWnd );
void PreCmdLargess( int* nSendType, char* strResult, int nSrcItem, char* strDesName, char* strParams, CUserInfo* Users, int nMaxUser );
void PreCmdAdminCmd( UINT nCmdType, int* nSendType, char* strResult, int nSrcItem, char* strDesName, char* strParams, CUserInfo* Users, int nMaxUser, int* nResult, int nMap );
void PreCmdViewHuman( char* strResult, char* strName, char* strDesName, CUserInfo* Users, int nMaxUser );
void PreCmdViewRes( char* strResult, char* strParams, CResInfo* Ress, char* strName );
void PreCmdEat( char* strResult, char* strParams, CUserInfo* User, int nSrcItem, HWND hWnd );
void PreCmdAttack( int* nSendType, char* strResult, int nSrcItem, char* strDesName, char* strParams, CUserInfo* Users, int nMaxUser, int* nResult, int nMap );
void PreCmdRename( char* strResult, char* strParams, CUserInfo* User, int nSrcItem );
void PreCmdChangeFace( char* strResult, char* strParams, CUserInfo* User, int nSrcItem );
void PreCmdRequest( char* strResult, UINT nType, int nSrcItem, char* strDesName, int* nDesItem, CUserInfo* Users, int nMaxUser );
void PreCmdAgree( int* nSendType, char* strResult, char* strParams, int nSrcItem, char* strDesName, int* nDesItem, CUserInfo* Users, int nMaxUser);
void TiMu_AutoChuTi(char* strResult, CVarInfo* VarInfo);
int TiMu_Answer(char* strResult, char* strAnswer, char* strName, int nSrcItem, CVarInfo* VarInfo);
void PreTimerCountOnline( CVarInfo* VarInfo );
void PreTimerMakeRes( char* strResult, int* nResItem, CResInfo* Ress, CMapInfo* MapInfo, int nMap );
//---------------------------------------------------------------------------
//全局变量定义
//网站的标记,在线用户用
int        nTag = 9999;

/*---------------------------------------------------------------------------
程序中对变量的使用备忘

VarInfo        用户控制变量
        m_strVariant[0]        用于放玩家登录后马上要显示的内容
        m_strVariant[1]        用于存放自动出题的题目答案
        m_strVariant[2]        用于备份[0]的内容(出题时操作)
        m_bVariant[1]        用于存放自动出题的题目ID

---------------------------------------------------------------------------*/

//---------------------------------------------------------------------------
//以下定义各类物品的数据
//(自己随便定义,注意程序中要一致,也可以放在数据库中定义,具体自己决定)
struct CResData{
        UINT nResType;                //资源类型
        int nRand;                        //出现比例%
        char strName[256];        //名称
        char strImage[256];        //图片
        char strMsg1[256];        //信息
        char strMsg2[256];        //信息
        int nOffsetX;                //偏移
        int nOffsetY;
        int        nFrame;                //帧数
                                                //参数作用        捡取类                猎物类                NPC类
        int nVar1;                //参数一,        银两/数量        生命                生命
        int        nVar2;                //参数二,                                杀伤力                杀伤力
        int        nVar3;                //参数三,                                得肉干               
        int        nVar4;                //参数四                                得经验                得经验
        int        nVar5;                //参数五        药材                药材                药材
        int        nVar6;                //                        银两                银两                银两
        int        nVar7;                //                        神豆                神豆                神豆
        int        nMaxLevel;        //                        限制修行        限制修行        限制修行
};
#define RES_NONE        0x00        //没有
#define RES_MONEY        0x01        //银两类
#define RES_DRUG        0x02        //药材类
#define RES_CHARQUI        0x03        //肉干类
#define RES_BEAN        0x04        //神豆类
#define RES_HUNT        0x10        //猎物类
#define RES_OGRE        0x20        //怪物类
#define RES_DEAL        0x90        //交易类
//        类型                        概率        资源名称        图片                                进入提示                                                                        操作提示                                                                                X                Y                帧        生命        杀伤力        肉干        经验        药材        银子        神豆        修行限制
#define MAXRES        13
CResData        ResData[MAXRES] = {
        { RES_MONEY,        100,        "金元宝",        "Res/jin.gif",                "[传言]在这附近有人丢了一个金元宝。",                "[捡起]%s捡到一个金元宝,兑换银子%ld两。",                4,                8,                2,        0,                0,                0,                0,                0,                100,        0,                0 },
        { RES_MONEY,        100,        "元宝",                "Res/yin.gif",                "[传言]某人把一绽银子掉了,正在到处找。",        "[捡起]%s捡到银子%ld两。",                                                4,                8,                2,        0,                0,                0,                0,                0,                10,                0,                0 },
        { RES_DRUG,                100,        "药水",                "Res/drug1.gif",        "[消息]有人丢掉了一瓶的药水。",                                "[捡起]%s捡到一瓶药水,得到药材%ld个。",                12,                16,                1,        0,                0,                0,                0,                1,                0,                0,                0 },
        { RES_HUNT,                100,        "野兔",                "Res/rabbit.gif",        "[消息]一只野兔蹦了出来,正在吃草。",                "[狩猎]%s对野兔奋力一击,杀伤生命%ld点。%s",        20,                22,                8,        50,                5,                3,                0,                2,                1,                0,                100},
        { RES_HUNT,                50,                "公牛",                "Res/ox1.gif",                "[消息]一只野公牛闯了出来。",                                "[狩猎]%s对公牛奋力一击,杀伤生命%ld点。%s",        80,                50,                3,        500,        500,        100,        10,                10,                100,        0,                2000 },
        { RES_OGRE,                10,                "AN僵尸一",        "Res/JiangShi.gif", "[僵尸]一具僵尸从……里跳了出来。",                        "",                                                                                                20,                84,                8,        1000,        1000,        0,                100,        0,                200,        10,                99999999 },
        { RES_BEAN,                30,                "神豆",                "Res/bean1.gif",        "[消息]这附近长出一颗神豆了,大家快去找。",        "[采集]%s采集到%ld粒神豆。",                                        0,                0,                9,        0,                0,                0,                0,                0,                0,                1,                0 },
        { RES_CHARQUI,        100,        "肉块",                "Res/charqui1.gif",        "[消息]有人掉了一大块的肉。",                                "[捡起]%s捡到一大块肉,得到肉干5个。",                        12,                8,                1,        0,                0,                5,                0,                0,                0,                0,                0 },
        { RES_HUNT,                100,        "野羊",                "Res/sheep1.gif",        "[消息]一只野羊跑了出来。",                                        "[狩猎]%s对野羊奋力一击,杀伤生命%ld点。%s",        30,                30,                1,        200,        100,        25,                2,                2,                50,                0,                500 },
        { RES_HUNT,                100,        "眼镜蛇",        "Res/snake1.gif",        "[消息]一只眼镜蛇盘在这附近。",                                "",                                                                                                30,                38,                4,        200,        300,        10,                4,                5,                10,                0,                600 },
        { RES_HUNT,                100,        "鹿",                "Res/deer6.gif",        "[消息]一只驯鹿正在这附近吃草,正是猎杀的好时机。",        "",                                                                                40,                25,                6,        200,        100,        20,                2,                3,                60,                0,                400 },
        { RES_HUNT,                100,        "野猪",                "Res/boar1.gif",        "[消息]一只野猪跑到这附近乱拱乱咬。",                "",                                                                                                30,                28,                6,        400,        400,        50,                10,                5,                50,                0,                2000 },
        { RES_HUNT,                10,                "大象",                "Res/xiang1.gif",        "[消息]一只身材巨大的大象在这附近。",                "",                                                                                                60,                90,                9,        2000,        1000,        0,                200,        10,                1000,        0,                3000 }
};
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-4-26 05:14

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表