📄 cscript.h
字号:
//脚本引擎
//作者:吴振华(kylinx)(中国科大01级11系)
//E-mail:game-diy@163.com
//Created 2003/6/28 by Kylinx
//第一次修正于2003/7/21 by Kylinx
#ifndef LOA_SCRIPT_H_
#define LOA_SCRIPT_H_
#include<windows.h>
#include<stdio.h>
class CLog;
class CGame;
//--------------------------------------------------------------------------------------
#define LOA_FLAG_CLOSE 0
#define LOA_FLAG_OPEN 1
#define LOA_FLAG_PASS 2
class CScriptData
{
CLog *m_pLog; //日志
int m_nFlagCount; //事件数量
int *m_aFlag; //事件
void Release();
public:
CScriptData();
virtual ~CScriptData();
BOOL SaveFlagToFile(FILE*fp);
BOOL LoadFlagFromFile(FILE*fp);
int GetFlagCount() const {return m_nFlagCount;}
BOOL InitScriptVariable(CLog*pLog,int Size=1024); //初始化
BOOL SetFlag(int index,int flagstate); //设置事件
BOOL IsFlagEquel(int index,int flagstate); //判断第index个事件是否等于flagstate
};
class CMessage;
//---------------------------------------------------------------------------------------
typedef char ScriptStr[1024];
class CMoveRole;
class CScript
{
CLog *m_pLog; //日志
CScriptData *m_pScriptData; //脚本数据
char *m_pBuffer; //脚本内容缓冲区
char *m_pBufCur; //当前脚本内容位置
char *m_pBufEnd; //脚本结束的位置
char m_szScriptFile[128];
DWORD m_dwSize; //大小
CMessage *m_pMsgQueue;
BOOL m_bComplete; //是否执行完毕
CGame *m_pGame; //游戏类
CMoveRole *m_pMoveRole;
private:
inline BOOL IsNum(char c); //是否是数字
inline BOOL IsChar(char c); //是否是字符串
BOOL GetIndex(char*&pBufCur,ScriptStr&str); //得到索引
BOOL GetFunction(char*&pBufCur,ScriptStr&str);//得到函数名字
BOOL ExecuteFunction(const char*szFunction);//执行命令
BOOL WaitForNextChar(char*&pBufCur); //得到下一个字符串的首地址
BOOL WaitForNextNum(char*&pBufCur); //得到下一个数字的地址
BOOL GetInt(char*&pBufCur,int&iValue); //得到一个整形数据
BOOL GetNextIndexPositon(char*&pBufCur); //得到下一个索引位置,如果成功,地址返回在pBufCur中
BOOL GotoNextLine(char*&pBufCur); //跳到下一行,如果成功,地址返回在pBufCur中
BOOL GetString(char*&pBufCur,ScriptStr&str);//从当前位置得到一个字符串
void Release(); //释放
BOOL InitScript(const char*szFile); //初始化
public:
CScript();
virtual ~CScript();
BOOL ExecuteScript(CGame*pGame,CLog*pLog,CScriptData*pScriptData,const char*szFile);//执行脚本文件
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -