⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cscript.h

📁 一个个人开发的rpg游戏<亚特兰蒂斯传奇>的源码
💻 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 + -