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

📄 actiondefine.h

📁 网络游戏魔域的服务端与客户端完整源代码 包括详细的说明文档与开发日志
💻 H
📖 第 1 页 / 共 3 页
字号:
// action list
// paled, 2003.1.25

////////////////////////////////////////////////////////////////////////
// "%%" 表示可显示的 "%" 符号
// "%nnXXX" 表示显示宽度,一律左对齐。超长会按实际长度显示。(例id为1234的NPC的"%6id"显示为"1234  ")

// 系统部分 //////////////////
const char PARAM_DATE_STAMP[]			= "date_stamp";					// 仅用于计算
const char PARAM_TIME[]					= "time";						// 仅用于计算
const char ACCEPT_STR_[]				= "accept";						// 客户端上传的一个子串 // %accept0 ~ %accept3

// ITEM部分 //////////////////
const char	PARA_ITEM_TYPE[]			= "item_type";
const char	PARA_ITEM_DATA[]			= "item_data";

// NPC部分 //////////////////
const char	PARA_DATASTR[]				= "datastr";
const char	PARA_DATA_[]				= "data";							// %data0 ~ %data3
const char	PARA_NAME[]					= "name";							// npc name
const char	PARA_NPC_ID[]				= "id";								// npc id in database
const char	PARA_NPC_X[]				= "npc_x";
const char	PARA_NPC_Y[]				= "npc_y";
const char	PARA_NPC_OWNERID[]			= "npc_ownerid";

// USER部分 ////////////////
const char	PARA_USER_ID[]				= "user_id";
const char	PARA_USER_MAPID[]			= "user_map_id";
const char	PARA_USER_MAPX[]			= "user_map_x";
const char	PARA_USER_MAPY[]			= "user_map_y";
const char	PARA_USER_HOME[]			= "user_home_id";
const char	PARA_SYN_ID[]				= "syn_id";
const char	PARA_SYN_NAME[]				= "syn_name";
const char	PARA_USER_NAME[]			= "user_name";
const char	PARA_MATE_NAME[]			= "mate_name";
const char	PARA_MAP_OWNER_ID[]			= "map_owner_id";
const char	PARA_MAP_OWNER_TYPE[]		= "map_owner_type";
const char	PARA_ALLY_SYN_[]			= "ally_syn";						// %ally_syn0 ~ %ally_syn4
const char	PARA_ENEMY_SYN_[]			= "enemy_syn";						// %enemy_syn0 ~ %enemy_syn4
const char	PARA_TUTOREXP_[]			= "tutor_exp";						// 导师经验
const char	PARA_STUDENT_EXP_[]			= "student_exp";					// 徒弟贡献的经验
const char	PARA_EXPLOIT_[]				= "exploit";						// 功勋值
//帮派部分
const char	PARA_AVAILABLE_FUND[]		= "available_fund";					// 提取帮派的可以分配基金
// user 的 iter 部分 ////////////////
const char	PARA_ITER_VALUE[]			= "iter_value";
const char	PARA_ITER_SYN_NAME[]		= "iter_syn_name";
const char	PARA_ITER_SYN_LEADER[]		= "iter_syn_leader";
const char	PARA_ITER_SYN_MONEY[]		= "iter_syn_money";
const char	PARA_ITER_SYN_AMOUNT[]		= "iter_syn_amount";
const char	PARA_ITER_SYN_FEALTY[]		= "iter_syn_fealty";
const char	PARA_ITER_MEMBER_NAME[]		= "iter_member_name";				// %iter为玩家ID,返回玩家名字
const char	PARA_ITER_MEMBER_RANK[]		= "iter_member_rank";				// %iter为玩家ID,返回玩家等级称号
const char	PARA_ITER_MEMBER_PROFFER[]	= "iter_member_proffer";
const char	PARA_ITER_WANTED[]			= "iter_wanted";
const char	PARA_ITER_POLICEWANTED[]	= "iter_police_wanted";
const char	PARA_ITER_GEMSUPQUALITY[]	= "iter_upquality_gem";
const char	PARA_ITER_GEMSUPLEVEL[]		= "iter_uplevel_gem";
const char	PARA_ITER_COST_DURRECOVER[]	= "iter_cost_durrecover";			// 
const char	PARA_ITER_GAME_CARD[]		= "iter_game_card";					// 
const char	PARA_ITER_GAME_CARD2[]		= "iter_game_card2";				// 

const char	PARA_ITER_TABLE_DATASTR[]	= "iter_table_datastr";
const char	PARA_ITER_TABLE_DATA_[]		= "iter_table_data";				// %iter_table_data0 ~ %iter_table_data3

const char	PARA_ITER_ITEM_DATA[]		= "iter_item_data";

//---任务系统的iter---begin
const char	PARA_ITER_TASK_USERNAME[]		= "iter_task_username";		//返回玩家的cq_user表中的name字段
const char	PARA_ITER_TASK_COMPLETENUM[]	= "iter_task_completenum";  //对任务完成次数取值,返回任务完成次数
const char	PARA_ITER_TASK_BEGINTIME[]		= "iter_task_begintime";    //对任务开始时间取值,返回任务开始时间
//---任务系统的iter---end

////////////////////////////////////////////////////////////////////////
enum {
		// system part, need user ptr --------------------------------------------------------------------------
		ACTION_SYS_FIRST			= 100,
		ACTION_MENUTEXT				= 101,			// 菜单文本。data:显示行数(缺省为0), param="text"(可选): 显示文本,此类型可包含空格,也可为空行。
		ACTION_MENULINK				= 102,			// 菜单超链接。"text task_id align": align(可选): 对齐模式(缺省/0:左对齐; 5:居中; 9:右对齐; a(1-9)b(2-8):不换行,从a/b行宽处开始显示,9为右对齐)
		ACTION_MENUEDIT				= 103,			// 菜单输入框。"len task_id text": len:可输入的长度;text(可选):显示的文字,align:对齐模式(缺省:文字在左,正整数:输入框嵌入在文字的第几字符处)。★说明:如有多个输入框,由界面用圆按钮区分,每次只上传一个。
		ACTION_MENUPIC				= 104,			// 菜单图片。"x y pic_id task_id":task_id(可选):表示图片可以“按”。图片所在区域不显示文本。
		ACTION_MENUBUTTON			= 110,			// 菜单按钮,格式同超链接。
		ACTION_MENULISTPART			= 111,			// 菜单列表项。"task_id iter text...", 玩家点选列表后,会触发task_id,并且iter会填到玩家的%iter变量中。
		ACTION_MENUCREATE			= 120,			// 菜单创建。"cancel_task_id"(可选): 强行关闭菜单时触发的TASK
		ACTION_RAND					= 121,			// 检测随机率。"data1 data2"。"10 100"表示有1/10的机会是true。
		ACTION_RANDACTION			= 122,			// 随机Action "action0 action1... action7"共8个,随机挑一个执行
		ACTION_CHKTIME				= 123,			// data为时间类型 0-检查当前服务器详细时间 "%d-%d-%d %d:%d %d-%d-%d %d:%d"; 1-检查年某天时间"%d-%d %d:%d %d-%d %d:%d", 2-检查月某天时间"%d %d:%d %d %d:%d", 3-检查周某天时间"%d %d:%d %d %d:%d", 4-检查日时间"%d:%d %d:%d", 5-检查小时时间"%d %d"(每个小时的第几分到底几分)
		ACTION_POSTCMD				= 124,			// 向客户端发送界面命令,data为命令编号
		ACTION_BROCASTMSG			= 125,			// 全服务器广播文字消息,data为频道,para为内容
		ACTION_MESSAGEBOX			= 126,			// 让客户端弹出对话框。data为对话框类型(0-99),param=文字串参数。
		ACTION_SYS_LIMIT			= 199,

		// npc part, need npc ptr --------------------------------------------------------------------------
		ACTION_NPC_FIRST			= 200,
		ACTION_NPC_ATTR				= 201,			// 修改或检测任务NPC的属性。"attr opt data npc_id",至少3个参数。如果指定npc_id,该NPC必须在本地图组中。attr可选择"ownerid"(=,==)、"ownertype"(=,==)、"lookface"(=,==)、"data?"(=,+=,==,<,<=,>,>=,pass. pass可让字段中存的DateStamp增减一定的天数,. data可为"accept")、"datastr"(=,==)、"life"(=)、"maxlife"(=)
//		ACTION_NPC_REQUESTSHIFT		= 202,			// 通知客户端平移一个NPC。param="idNextTask"。
//		ACTION_NPC_SHIFT			= 203,			// 平移当前NPC。限同地图移动。限动态NPC。
		ACTION_NPC_ERASE			= 205,			// 删除当前NPC。限动态NPC。注意:删除后,不要再对此NPC进行操作。dwData不为0,表示删除本地图的所有type为dwData的NPC。param="idMap type": 删除指定地图的某些NPC。
		ACTION_NPC_MODIFY			= 206,			// 跨线程修改指定任务NPC的属性。"npc_id attr opt data"。attr可选择"lookface"(=)、"data?"(=)、"datastr"(=)
		ACTION_NPC_RESETSYNOWNER	= 207,			// 重置帮派地图的主人。仅用于帮派标志NPC。统计帮派战绩第一名填入OWNER_ID,同时清除所有战绩。所有攻击自动停止。(未中止地图的战斗标志)
		ACTION_NPC_FIND_NEXT_TABLE	= 208,			// 查找下一个列表项,将ID写入TASK_ITERATOR。仅用于带列表的NPC。param="type", 对应cq_table的type字段。
		ACTION_NPC_ADD_TABLE		= 209,			// 在列表中添加一条, type和idKey相同的会被预先删除(idKey为0时,不删除)。仅用于带列表的NPC。param="type idKey data0 data1 data2 data3 szData", 至少2个参数。
		ACTION_NPC_DEL_TABLE		= 210,			// 从列表中删除所有符合条件的项,不存在的也返回true。仅用于带列表的NPC。param="type idKey data0 data1 data2 data3 szData", 至少2个参数, 参数为0表示不匹配,所有不为0的与列表完全相同的会删除。无param时,删除当前记录(iterator指定的记录),总是返回true。
		ACTION_NPC_DEL_INVALID		= 211,			// 从列表中删除所有过期的项,不存在的也返回true。仅用于带列表的NPC。param="type idx", idx表示日期(%date_stamp)存放在哪个data中。[例如idx为3表示日期存放在data3中,所有data3中的日期小于今天日期的项将被删除。]
		ACTION_NPC_TABLE_AMOUNT		= 212,			// 检查列表的项数,>=data时返回false,<data时返回true。param无意义。
		ACTION_NPC_SYS_AUCTION      = 213,          // LW让NPC开始系统拍买,DATA为NPC的ID,param 为系统正式开始的提示
		ACTION_NPC_DRESS_SYNCLOTHING = 214,			//穿帮派服装
		ACTION_NPC_TAKEOFF_SYNCLOTHING = 215,		//脱帮派服装
		ACTION_NPC_AUCTIONING        = 216,         //判断是否还有物品正在拍卖中DATA为NPC的ID,PARAM:type:0.表示查看系统拍卖物品,1.表示查看玩家物品
		ACTION_NPC_LIMIT			= 299,		

		// map part, need curr map --------------------------------------------------------------------------
		ACTION_MAP_FIRST			= 300,
		ACTION_MAP_MOVENPC			= 301,			// 把npc移动到指定的地图、位置(仅用于固定NPC),data 为指定的npc的ID, param为 "idMap nPosX nPosY"。注意:可移动到该地图的(0,0)坐标,以便隐藏NPC。
		ACTION_MAP_MAPUSER			= 302,			// 判断指定地图中的用户人数, data 为指定地图ID, param为 "cmd opt data",
													//  cmd支持"map_user"和"alive_user", opt可以为"==, <=, >=",data为数量
		ACTION_MAP_BROCASTMSG		= 303,			// 广播消息, data 为地图id, szParam为广播的消息
		ACTION_MAP_DROPITEM			= 304,			// 地图产生指定物品, szParam为"idItemType idMap nPosX nPosY"
		ACTION_MAP_SETSTATUS		= 305,			// 设置地图状态,支持EVENT。param="mapid status_bit data", status_bit = { STATUS_WAR=1, }, data=0或1。
		ACTION_MAP_ATTRIB			= 306,			// 检查、修改地图的属性。param="field opt data idMap", 参数至少3个,缺省为当前地图。field="synid"(opt="=="、"=")。field="status"(opt="test"、"set"、"reset")。field="type"(opt="test")。field="res_lev"(opt="="、"=="、"<")。field="mapdoc"(opt="="、"=="), portal0_x(=), portal0_y(=),field ="castle"(opt="==")
		ACTION_MAP_REGION_MONSTER	= 307,			// 检查指定地图或当前地图的某区域内怪物数量。param="map_id region_x region_y region_cx region_cy monster_type opt data"。map_id为0时表示取当前地图,monster_type为0表示不检查类型,opt支持“==”和“<”。

		ACTION_MAP_CHANGEWEATHER	= 310,			// 修改玩家所在REGION的天气。param="Type Intensity Dir Color KeepSecs", Type, Intensity=0~999, Dir=0~359, Color=0x00RRGGBB, KeepSecs=seconds
		ACTION_MAP_CHANGELIGHT		= 311,			// 修改玩家地图的亮度。param="idmap light secs", light=0xAARRGGBB(0xFFFFFFFF表示恢复), secs为0 : 表示永久改变
		ACTION_MAP_MAPEFFECT		= 312,			// 在指定地图的指定地点显示地图特效, param = "idMap x y EffectName"
		ACTION_MAP_CREATEMAP		= 313,			// 创建一张地图,链接到当前NPC上(npc必须为LINK_NPC),需要玩家对象。param="name owner_type owner_id mapdoc type portal_x portal_y reborn_map reborn_portal res_lev"。partal指入口点坐标,res_lev表示地图等级(用于升级)。
		ACTION_MAP_FIREWORKS		= 314,			// 放焰火

		ACTION_MAP_LIMIT			= 399,

		// item action only part, need pUser+pItem ptr --------------------------------------------------------------------------
		ACTION_ITEMONLY_FIRST		= 400,
		ACTION_ITEM_REQUESTLAYNPC	= 401,			// 通知客户端放置一个NPC。param="idNextTask type sort lookface region", 至少4个参数。region表示cq_region的type
		ACTION_ITEM_COUNTNPC		= 402,			// 检查同地图的NPC数量。param="field data opt num", field="name"(按名字)、"type"(按类型)、"all"(所有NPC)、"furniture"(家具), data=要统计的名字或类型(all和furniture填0), opt="<"、"=="。
		ACTION_ITEM_LAYNPC			= 403,			// 创建一个NPC,创建成功后,该NPC即是当前任务NPC,owner_id会自动设置为帮派ID或玩家ID。param="name type sort lookface ownertype  life region base linkid  task0 task0 ... task7  data0 data1 data2 data3 datastr"。至少5个参数。靶子的等级放在data3中。
		ACTION_ITEM_DELTHIS			= 498,			// 删除当前任务物品。注意:必须为最后一个ACTION。
		ACTION_ITEMONLY_LIMIT		= 499,

		// user item part, need user ptr --------------------------------------------------------------------------
		ACTION_ITEM_FIRST			= 500,
		ACTION_ITEM_ADD				= 501,			// 添加物品。data=itemtype_id, param="amount amount_limit ident gem1 gem2 magic1 magic2 magic3 data warghostexp gemtype availabletime", param可省略,所有缺省值为0(表示不修改)
		ACTION_ITEM_DEL				= 502,			// 删除物品。data=itemtype_id, param不为0时,可叠加类物品会同时删除多个。或者data为0,param表示要删除的物品名。
		ACTION_ITEM_CHECK			= 503,			// 检测物品。data=itemtype_id, param不为0时,同时检查物品的数量(或耐久度),此物品必须达到要求的数量(或耐久度)才行。或者data为0,param表示要找的物品名。
		ACTION_ITEM_HOLE			= 504,			// 武器打洞。param 支持 "ChkHole HoleNum" 或者"MakeHole HoleNum",Num为1或者2
		ACTION_ITEM_REPAIR			= 505,			// 装备修理。data为指定装备的位置。
		ACTION_ITEM_MULTIDEL		= 506,			// 删除多种物品, param为 "idType0 idType1 num",即删除num个idType0-idType1的物品。
		ACTION_ITEM_MULTICHK		= 507,			// 检测多种物品, param为 "idType0 idType1 num",即检测num个idType0-idType1的物品。
		ACTION_ITEM_LEAVESPACE		= 508,			// 检查背包剩余空间。param="space weight packtype"

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -