CN110354503B - 事件触发方法、装置以及终端 - Google Patents

事件触发方法、装置以及终端 Download PDF

Info

Publication number
CN110354503B
CN110354503B CN201910348932.8A CN201910348932A CN110354503B CN 110354503 B CN110354503 B CN 110354503B CN 201910348932 A CN201910348932 A CN 201910348932A CN 110354503 B CN110354503 B CN 110354503B
Authority
CN
China
Prior art keywords
virtual event
state
event group
virtual
triggering
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910348932.8A
Other languages
English (en)
Other versions
CN110354503A (zh
Inventor
张德嘉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Tencent Domain Computer Network Co Ltd
Original Assignee
Shenzhen Tencent Domain Computer Network Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shenzhen Tencent Domain Computer Network Co Ltd filed Critical Shenzhen Tencent Domain Computer Network Co Ltd
Priority to CN201910348932.8A priority Critical patent/CN110354503B/zh
Publication of CN110354503A publication Critical patent/CN110354503A/zh
Application granted granted Critical
Publication of CN110354503B publication Critical patent/CN110354503B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/55Controlling game characters or game objects based on the game progress
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/70Game security or game management aspects
    • A63F13/79Game security or game management aspects involving player-related data, e.g. identities, accounts, preferences or play histories

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请实施例公开了一种事件触发方法、装置以及终端;本申请实施例可以获取游戏技能对应的至少一个虚拟事件组;查询所述游戏技能对应的逻辑描述列表,所述逻辑描述列表包括所述虚拟事件组对应的状态计算信息;基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数;根据所述虚拟事件组的状态参数确定所述虚拟事件组的触发状态;基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。在本申请实施例中可以根据逻辑描述列表来设置虚拟事件组的触发状态,通过触发开启状态的虚拟事件组就可以释放游戏技能。由此,该方案可以降低触发虚拟事件所需的计算资源。

Description

事件触发方法、装置以及终端
技术领域
本申请涉及计算机领域,具体涉及一种事件触发方法、装置以及终端
背景技术
游戏技能可以在满足一定的游戏条件下,在特定时间针对游戏中特定的人、物、区域等实现特定的效果,用户可以通过客户端控制游戏中的虚拟角色在虚拟场景内施放游戏技能。
然而,随着电子游戏的发展,游戏技能日趋复杂、多样、多变,由此,目前执行虚拟事件时需要消耗大量的计算资源。
发明内容
本申请实施例提供一种事件触发方法、装置以及终端,可以降低虚拟事件执行时所需的计算资源。
本申请实施例提供一种事件触发方法,包括:
获取游戏技能对应的至少一个虚拟事件组;
查询所述游戏技能对应的逻辑描述列表,所述逻辑描述列表包括所述虚拟事件组对应的状态计算信息;
基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数;
根据所述虚拟事件组的状态参数确定所述虚拟事件组的触发状态;
基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
在一些实施中,基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数,包括:
获取游戏技能对应的虚拟角色状态信息;
根据所述状态计算信息在函数库中查询所述虚拟事件组对应的状态计算函数;
根据所述状态计算函数和虚拟角色状态信息计算所述虚拟事件组对应的状态参数。
在一些实施中,所述状态计算函数包括多个状态计算子函数,根据所述状态计算函数和虚拟角色状态信息计算所述虚拟事件组对应的状态参数,包括:
根据所述虚拟角色状态信息和多个状态计算子函数分别计算所述虚拟事件组对应的子状态参数;
对所有的子状态参数进行布尔值运算,得到所述虚拟事件组的状态参数。
在一些实施中,基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,包括:
当所述虚拟事件组的触发状态为开启状态时,触发所述虚拟事件组中的虚拟事件;
当所述虚拟事件组的触发状态为关闭状态时,等待预设时长。
在一些实施中,触发所述虚拟事件组中的虚拟事件,包括:
获取虚拟事件组跳转信息,所述虚拟事件组跳转信息包括起跳节点和跳转节点;
触发所述虚拟事件组中处于起跳节点之前的虚拟事件;
在触发处于起跳节点之前的虚拟事件后,触发所述虚拟事件组中处于跳转节点之后的虚拟事件。
在一些实施中,触发所述虚拟事件组中处于起跳节点之前的虚拟事件之后,还包括:
将所述起跳节点与跳转节点之间虚拟事件组的触发状态设置为关闭状态。
在一些实施中,所述虚拟事件组的触发状态包括虚拟事件组中多个虚拟事件的当前子状态,基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,包括:
当所述虚拟事件组中虚拟事件的触发状态为开启状态时,触发所述虚拟事件;
当所述虚拟事件组中虚拟事件的触发状态为关闭状态时,等待预设时长。
在一些实施中,根据所述虚拟事件组的状态参数确定所述虚拟事件组的触发状态,包括:
当所述虚拟事件组的状态参数符合开启状态范围时,将所述虚拟事件组的触发状态设置为开启状态;
当所述虚拟事件组的状态参数符合关闭状态范围时,将所述虚拟事件组的触发状态设置为关闭状态。
本申请实施例还提供一种事件触发装置,包括:
获取单元,用于获取游戏技能对应的至少一个虚拟事件组;
查询单元,用于查询所述游戏技能对应的逻辑描述列表,所述逻辑描述列表包括所述虚拟事件组对应的状态计算信息;
调用单元,用于基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数;
确定单元,用于根据所述虚拟事件组的状态参数确定虚拟事件组的触发状态;
触发单元,用于基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
本申请实施例还提供一种终端,包括存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行本申请实施例所提供的任一种事件触发方法中的步骤。
本申请实施例可以获取游戏技能对应的至少一个虚拟事件组;查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数;根据虚拟事件组的状态参数确定虚拟事件组的触发状态;基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
在本申请实施例中可以通过编辑逻辑描述列表来设置虚拟事件组的触发状态,通过触发其触发状态处于开启状态的虚拟事件组就可以释放游戏技能。由此,该方案可以降低触发虚拟事件所需的计算资源。
比如,当游戏技能A包括虚拟事件组a、b,游戏技能B包括虚拟事件组a、b、c时,逻辑描述列表可以将游戏技能B的虚拟事件组c设置为关闭状态,则施放设置后的游戏技能B时,实际可以施放的是游戏技能A,不仅降低了游戏技能施放所需的计算资源,还提高了游戏技能的可扩展性、多样性以及复杂度。由此,该方案可以降低虚拟事件执行时所需的计算资源。
除此之外,不同于现有技术中技术人员要对游戏技能进行设计、修改就必须重新制作一个游戏技能,通过本申请提供一种事件触发方法,技术人员只需要编辑逻辑描述列表就可以对游戏技能进行设计、修改,故该方案还可以提高游戏技能的制作效率、提升技术人员的用户体验。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的事件触发方法的场景示意图;
图1b是本申请实施例提供的事件触发方法的流程示意图;
图1c是本申请实施例提供的构成游戏技能的虚拟事件结构示意图;
图1d是本申请实施例提供的时间轴上的虚拟事件组的触发示意图;
图2a是本申请实施例提供的Flux的运行时数据的结构示意图;
图2b是本申请实施例提供的Flux编辑界面中游戏技能的界面示意图;
图2c是本申请实施例提供的ssgcAlways子函数哈希表的格式示意图;
图2d是本申请实施例提供的在.NET平台上触发虚拟事件的流程示意图;
图3是本申请实施例提供的事件触发装置的结构示意图;
图4是本申请实施例提供的终端的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请实施例提供一种事件触发方法、装置以及终端。
其中,该事件触发装置具体可以集成在电子设备中,该电子设备可以为终端、服务器、个人电脑(Personal Computer,PC)等设备,例如智能手机、PlayStation(一种家用游戏机)、平板电脑,等等。
图1a是本申请实施例提供的一种事件触发方法的场景示意图,参考图1a,当该电子设备检测到用户触发了游戏中的游戏技能X时,电子设备上的事件触发装置可以获取游戏技能X对应的虚拟事件组A、虚拟事件组B、虚拟事件组C,然后查询游戏技能对应的逻辑描述列表,逻辑描述列表可以包括虚拟事件组对应的状态计算信息,基于状态计算信息可以调用虚拟事件组A对应的状态计算函数a,以及调用虚拟事件组B对应的状态计算函数b、调用虚拟事件组C对应的状态计算函数c,得到虚拟事件组A、虚拟事件组B、虚拟事件组C对应的状态参数,并根据虚拟事件组A、虚拟事件组B、虚拟事件组C的状态参数分别确定虚拟事件组A、虚拟事件组B、虚拟事件组C的触发状态,最后基于虚拟事件组A、虚拟事件组B、虚拟事件组C的触发状态对虚拟事件组A、虚拟事件组B、虚拟事件组C中的虚拟事件进行触发,以实现游戏技能。
以下分别进行详细说明。需说明的是,以下实施例的序号不作为对实施例优选顺序的限定。
在本实施例中,提供了一种事件触发方法,如图1b所示,该事件触发方法的具体流程可以如下:
101、获取游戏技能对应的至少一个虚拟事件组。
其中,游戏技能是按照时间轴顺序执行的一系列游戏事件,在满足一定条件的前提下,这些虚拟事件可以在特定时间针对游戏中特定的人、物、区域等触发特定效果。
游戏技能可以由各种虚拟事件构成,当完成触发游戏技能对应的虚拟事件时,就可以实现该游戏技能。
游戏技能的基本要素包括该游戏技能的触发机制(何时以某种方式开启技能的生命周期、技能事件(描述技能发生的原子信息)以及事件效果(对当前游戏环境造成改变)
其中,虚拟事件是指可以被计算机识别的游戏操作。当虚拟事件发生时,计算机可以调用该虚拟事件之前在事件处理程序上注册的操作。
例如,当声音播放事件被触发时,计算机可以调用该声音播放事件在游戏引擎上注册的操作,从而实现播放声音。
在一些实施例中,参考图1c提供的一种构成游戏技能的虚拟事件结构示意图,如图所示,一个游戏技能可以由多类虚拟事件组成,比如,声音类事件、特效播放类事件、动画播放类事件、镜头效果类事件、环境效果类事件、模型控制类事件、流程控制类事件、角色位移类事件,等等。其中,每一类又可以包括一个或多个具体的事件,该具体事件又可以由多个子事件组成,等等。
在本申请中,可以预先将游戏技能对应的虚拟事件分组,比如,按照虚拟事件的类型对游戏技能对应的虚拟事件分组、按照游戏技能的效果对游戏技能对应的虚拟事件分组、按照虚拟事件的执行时间分组、按照游戏技能的实现逻辑对游戏技能对应的虚拟事件分组,等等,具体的分组方法可以由本领域技术人员根据需求制定。
例如,在一些实施例中,可以按照游戏技能的实现逻辑将游戏技能对应的虚拟事件分组。
譬如,游戏技能A有两种游戏效果,分别是:在场景N施放游戏技能A,则游戏技能A的效果为改变场景N的背景音乐、特效音乐;在场景M施放游戏技能A,则游戏技能A的效果为开启场景M的雨天和大风天气效果。此时,可以将“改变场景N的背景音乐”虚拟事件和“改变场景N的特效音乐”虚拟事件归为一组,以及将“开启场景M的雨天天气效果”虚拟事件和“开启场景M的大风天气效果”虚拟事件归为一组。
例如,在一些实施例中,可以按照游戏技能的多段效果将游戏技能对应的虚拟事件分组。
譬如,游戏技能B的技能描述为进行两次普通攻击,然后进行一次特殊攻击。此时,可以将两次普通攻击归为一组,将特殊攻击归为一组。
获取游戏技能对应的至少一个虚拟事件组的方法具有多种,比如,通过直接读取游戏引擎中注册的虚拟事件组、读取本地内存中保存的虚拟事件组对应的游戏资源文件、通过网络获取虚拟事件组对应的游戏资源文件,等等,在此不作约束。
其中,游戏引擎是已编写好的可编辑电子游戏系统,游戏引擎可以包括一些交互式实时图像应用程序的核心组件,比如,游戏引擎可以包括图像渲染引擎(即渲染器)、物理引擎、碰撞检测系统、音效系统、脚本引擎、电脑动画系统、人工智能系统、网络引擎、场景管理系统,等等。
102、查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息。
其中,逻辑描述列表是对游戏技能进行逻辑描述(Description Logic)的列表,比如,逻辑描述列表可以按照游戏技能的实现逻辑对游戏技进行描述,例如,逻辑描述列表可以描述游戏技能的每个虚拟事件组所对应的实现逻辑。
譬如,表1提供了游戏技能“下雨”对应的逻辑描述列表,如下:
虚拟事件组名称 逻辑描述 状态计算信息
场景事件组 降雨、地面积水 ssgcRain
音效事件组 播放雨声 ssgcRainMusic
表1
参考表1可知,游戏技能“下雨”对应的逻辑描述列表包含两个虚拟事件组,分别被称为场景事件组和音效事件组,游戏技能“下雨”的实现逻辑是产生降雨、地面积水的场景,以及播放雨声的音效。
其中,状态计算信息可以用于判断虚拟事件组的触发状态,该状态计算信息可以包括状态计算函数的函数名称,通过执行该状态计算函数就可以判断虚拟事件组的触发状态。
状态计算信息还可以包括状态判断条件,通过对比状态判断条件与游戏技能信息,就可以判断虚拟事件组的触发状态,等等。
需要注意的是,该逻辑描述列表不仅可以以表格的形式保存在本地内存中,还可以以树、链表、散列表等数据结构的形式保存在本地内存中。
查询游戏技能对应的逻辑描述列表的方式有多种,比如,通过游戏技能的名称来查询游戏技能对应的逻辑描述列表、通过游戏技能的编号来游戏技能对应的逻辑描述列表、直接从本地内存中读取逻辑描述列表作为游戏技能对应的逻辑描述列表、通过网络来查询游戏技能对应的逻辑描述列表,等等,在此不做要求。
其中,逻辑描述列表可以保存在本地内存中,也可以通过网络从网络服务器中获取,等等。该逻辑描述列表可以提前由技术人员制定编写,也可以由游戏用户修改制定,等等。
103、基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数。
在本申请中,状态计算信息可以与状态计算函数建立映射关系,比如,参考表1,逻辑描述列表中可以将状态计算函数的函数名称作为虚拟事件组对应的状态计算信息,只需要查询与该状态计算函数的函数名称之间具有映射关系的对象,就可以得到虚拟事件组对应的状态计算函数。
其中,状态计算函数是用于计算事件组状态参数的程序,通过调用该函数,可以得到该函数返回的一个或多个数值,该数值可以作为虚拟事件组状态参数,该状态参数可以用于评判虚拟事件组的触发状态。
在一些实施例中,基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数,包括:
(1)获取游戏技能对应的虚拟角色状态信息。
其中,虚拟角色状态信息是指游戏中虚拟角色的状态信息,比如,虚拟角色的角色属性信息、虚拟角色所在虚拟场景的场景信息、虚拟角色所携带的物品信息,等等。
(2)根据状态计算信息在函数库中查询虚拟事件组对应的状态计算函数。
可以根据状态计算信息在本地函数库中查询状态计算信息对应的状态计算函数,也可以通过网络根据状态计算信息在网络服务器函数库中获取状态计算信息对应的状态计算函数,等等。
(3)根据状态计算函数和虚拟角色状态信息计算虚拟事件组对应的状态参数。
比如,通过将虚拟角色状态信息代入状态计算函数,得到代入后状态计算函数,再执行该代入后状态计算函数,就可以获得代入后状态计算函数返回的一个或多个数值,作为虚拟事件组对应的状态参数。
在一些实施例中,可以通过不同的函数来对虚拟事件组的触发状态进行联合评判,即状态计算函数可以包括多个状态计算子函数,根据状态计算函数和虚拟角色状态信息可以计算虚拟事件组对应的状态参数,具体步骤如下:
a.根据虚拟角色状态信息和多个状态计算子函数分别计算虚拟事件组对应的子状态参数;
b.对所有的子状态参数进行布尔值(boolean)运算,得到虚拟事件组的状态参数。
其中,布尔值包括真(True)或假(False)中的一个,在计算机中可以用1标识真,用0表示假。计算布尔值的方法有多种,比如,当子状态参数均为0或1时,将这些子状态参数进行逻辑(&&)计算,即可求出状态参数,该状态参数也是布尔值。
在一些实施例中,还可以对子状态参数进行分类,比如,将小于50的子状态参数设为布尔值中的真,将大于等于50的子状态参数设为布尔值中的假。
104、根据虚拟事件组的状态参数确定虚拟事件组的触发状态。
在本申请中,虚拟事件组的触发状态可以被包括开启状态和关闭状态,在一些实施例中,虚拟事件组的触发状态还可以包括空白(null)状态。
其中,虚拟事件组的触发状态可以用于判断当该虚拟事件组被触发时,是否执行该虚拟事件组对应的操作。
比如,虚拟事件组的触发状态为关闭状态,当该虚拟事件组被触发,则等待该虚拟事件组持续时间的时长。
在一些实施例中,根据虚拟事件组的状态参数确定虚拟事件组的触发状态,包括:
a.当虚拟事件组的状态参数符合开启状态范围时,将虚拟事件组的触发状态设置为开启状态;
b.当虚拟事件组的状态参数符合关闭状态范围时,将虚拟事件组的触发状态设置为关闭状态。
比如,当虚拟事件组的状态参数为50,开启状态范围为[30,70],关闭状态范围为[0,30],此时虚拟事件组的状态参数符合开启状态范围,则将虚拟事件组的触发状态设置为开启状态。
再比如,当虚拟事件组的状态参数为0,开启状态范围为布尔值中的1,关闭状态范围为布尔值中的0,此时虚拟事件组的状态参数符合关闭状态范围,则将虚拟事件组的触发状态设置为关闭状态。
105、基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
比如,可以根据虚拟事件组的触发状态来判断该虚拟事件组中的虚拟事件是否可以被触发。
譬如,在一些实施例中,当运行游戏且在游戏中施放游戏技能时,则以依次对时间轴上处于开启状态的虚拟事件组中的虚拟事件进行触发。
在一些实施例中,基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,可以包括以下具体步骤:
(1)当虚拟事件组的触发状态为开启状态时,触发虚拟事件组中的虚拟事件。
当虚拟事件组的触发状态为开启状态时,可以对该虚拟事件组中虚拟事件进行编译,得到机器语言,使得硬件执行该机器语言,从而使得电子设备实现触发虚拟事件组中的虚拟事件。
其中,具体的编译方法可以分为词法分析、语法分析、语义分析和中间代码(Machine Specific Intermediate language,MSIL)生成、优化、机器语言(machinelanguage)生成,如下:
①词法分析:
输入虚拟事件对应的程序代码,对构成代码的字符串进行扫描和分解,识别出代码中的单词(比如,定义符、标识符、运算符、界符、常数,等等),在词法分析阶段的工作中所依循的是语言的语法规则(或称构词规则),描述语法规则的工具可以包括正规式以及有限自动机。
②语法分析:
在词法分析的基础上,根据语言的语法规则,把字符串分解成各类语法单元(比如,短语、子句、句子、程序段、程序,等等),并确定整个输入的字符串是否构成语法上正确的程序。语法分析所依循的是语言的语法规则,语法规则通常用上下文无关文法描述,词法分析是一种线性分析,而语法分析是一种层次结构分析。
③语义分析和中间代码生成:
对语法分析所识别出的各类语法范畴,分析其含义,并进行初步翻译得到中间代码。这一阶段通常包含以下两个方面的工作:
1.对每种语法范畴进行静态语义的检查,例如,变量是否定义、类型是否正确等等。
2.如果语义正确则进行中间代码的翻译。
这一阶段所依循的是语言的语义规则,通常使用属性文法描述语义规则。
④优化:
对于代码(主要是中间代码)进行加工变换,以期能够产生更为高效(省时间和空间)的机器码。其中,优化的主要方面可以包括公共子表达式的提取、循环优化、删除无用代码等等。优化所依循的是程序的等价变换规则。
⑤机器语言生成:
把优化处理后的中间代码变换成特定机器上的低级语言代码(绝对指令、可重定位指令、汇编指令),即机器语言。
其中,中间语言是一种面向语法,易于翻译成目标程序的源程序的等效内部表示代码。
其中,机器语言是一种指令集的体系,该指令集可以被称机器码(machine code),是计算机可以直接解读的数据。
通过上述编译方法,可以触发状态为开启状态的虚拟事件组中虚拟事件。
在一些实施例中,由于游戏技能的虚拟事件都固定在时间轴上,当不触发虚拟事件时,游戏技能会在该虚拟事件不触发时进行等待,为了不等待触发状态为关闭状态的虚拟事件组中虚拟事件,触发虚拟事件组中的虚拟事件,可以包括如下步骤:
a.获取虚拟事件组跳转信息,虚拟事件组跳转信息包括起跳节点和跳转节点;
b.触发虚拟事件组中处于起跳节点之前的虚拟事件;
c.在触发处于起跳节点之前的虚拟事件后,触发虚拟事件组中处于跳转节点之后的虚拟事件。
其中,虚拟事件组跳转信息可以用于确定执行虚拟事件组对应操作的顺序和时间,该虚拟事件组跳转信息可以从本地内存中读取,也可以与网络服务器通信获得。
比如,该虚拟事件组跳转信息可以通过游戏技能名称从本地数据库中查询得到。
再比如,游戏技能对应的逻辑描述列表中可以该虚拟事件组跳转信息,通过逻辑描述列表就可以确定该虚拟事件组跳转信息。
其中,虚拟事件组跳转信息中可以包括起跳节点和跳转节点。其中,起跳节点可以是一个时间信息或位置信息,同样的,跳转节点可以是一个时间信息或位置信息,表示当执行或触发到起跳节点时,不再执行或触发该起跳节点之后时间或位置的虚拟事件,而是跳转到跳转节点,来触发这个跳转节点之后的虚拟事件。
需要注意的是,起跳节点和跳转节点可以为同一时间点,或处于同一位置,或者起跳节点可以在跳转节点之前,或者起跳节点可以在跳转节点之后。
比如,图1d提供了一种时间轴上的虚拟事件组的触发示意图,参考图1d,时间轴上包括虚拟事件组O、虚拟事件组P、虚拟事件组Q,其中,只有虚拟事件组P为关闭状态,其他虚拟事件组均为开启状态。
根据时间触发虚拟事件组时,若无跳转信息,则在触发虚拟事件组O后,不会触发虚拟事件组P,但是会等待虚拟事件组P持续时间的时长t,然后在触发虚拟事件组Q。
若有跳转信息,则在触发虚拟事件组O后,不会触发虚拟事件组P,也不会等待虚拟事件组P持续时间的时长t,而是在在触发虚拟事件组O后立即从起跳点跳转至跳转点,来触发虚拟事件组Q。
在一些实施例中,触发虚拟事件组中处于起跳节点之前的虚拟事件之后,还包括:
d.将起跳节点与跳转节点之间虚拟事件组的触发状态设置为关闭状态。
在一些实施例中,可以提前将起跳节点与跳转节点之间虚拟事件组设置为关闭状态,以避免出现在起跳节点与跳转节点之间虚拟事件组对应的持续事件内等待的情况。
(2)当虚拟事件组的触发状态为关闭状态时,等待预设时长。
其中,预设时长可以是虚拟事件组的持续时长,也可以是由本领域技术人员根据具体需求来制定的预设时长,还可以是根据虚拟角色状态计算得出的时长,等等。
在一些实施例中,虚拟事件组的触发状态包括虚拟事件组中多个虚拟事件的当前子状态,基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,包括:
a.当虚拟事件组中虚拟事件的触发状态为开启状态时,触发虚拟事件;
b.当虚拟事件组中虚拟事件的触发状态为关闭状态时,等待预设时长。
这样,就可以精准地控制虚拟事件组中每一个虚拟事件的触发,进一步提高了游戏技能的可扩展性、多样性和复杂度。
本申请实施例提供的事件触发方案可以应用在各种游戏虚拟事件触发场景中。比如,以设计、修改游戏技能的虚拟事件组为例,技术人员可以对有限的虚拟事件组进行排序、触发状态控制,就可以生成复杂、多样的游戏技能,当需要对原有的游戏技能进行扩展时,只需要将扩展部分的资源添加进原有游戏技能的虚拟事件组中,就可以得到扩展后的新游戏技能,而不需要重新制作该游戏技能。
故采用本申请实施例提供的方案能够降低修改、制作游戏技能时所需的游戏资源,进一步增加了修改、制作游戏技能时的工作效率,从而提高游戏技能的扩展性、多样性以及复杂度。
由上可知,本申请实施例可以获取游戏技能对应的至少一个虚拟事件组;查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数;根据虚拟事件组的状态参数确定虚拟事件组的触发状态;基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。在本申请实施例中可以根据逻辑描述列表来设置虚拟事件组的触发状态,通过触发开启状态的虚拟事件组就可以释放游戏技能。由此,该方案可以降低触发虚拟事件所需的计算资源。
根据上述实施例所描述的方法,以下将作进一步详细说明。
在本实施例中,将以通过Flux编辑器提供的事件组接口来获取虚拟事件组为例,对本发明实施例的方法进行详细说明。
其中,Flux编辑器是一种技能编辑插件,该插件可以在其宿主软件Unity(一种游戏引擎)的环境下运行,Flux的实现原理是基于时间轴的顺序播放系统,Flux可以在播放系统中指定时间轴中每一帧触发某一事件。
其中,Flux的运行时数据的结构示意图可以参考图2a,包括FSequence、FTimeLine、FTrack和FEvent,其具体解释如下:
①FEvent:
FEvent指虚拟事件,每一个虚拟事件是一个基本的触发单元。
②FSequence:
FSequence指虚拟事件序列,Flux将一系列虚拟事件编辑在时间轴时间轴上,通过时间轴的推进Unity可以播放这些事件,所有虚拟事件集合就称为虚拟事件序列。序列是Flux中最上层的数据结构、最大的单位,其它类均被包含在序列中。虚拟事件序列可以在Unity中作为一个部件(Component),挂载在游戏对象(GameObject)上,并由Update函数进行驱动。
③TimeLine:
FTimeLine指时间轴,每一个虚拟事件序列都具有至少一条时间轴,时间轴作为虚拟事件序列的成员变量,可以由虚拟事件序列进行更新驱动。
④FTrack:
FTrack指轨道,虚拟事件固定在时间轴上,而是固定在轨道之上,轨道的意义在于可以将彼此有关联的虚拟事件定在同一条轨道之上,这样可以在虚拟事件的起始和结束做出与其它事件的融合操作。轨道作为时间轴的成员变量,由时间轴进行更新驱动。
比如,图2b是本实施例提供的Flux编辑界面中游戏技能的界面示意图,如图2b所示,在本实施例中,一个虚拟事件序列构成了一个游戏技能,该虚拟事件序列中可以包括虚拟事件组“cTeam”、虚拟事件组“hit1”、虚拟事件组“hit2”;虚拟事件组“cTeam”中可以包括轨道a1、a2,虚拟事件组“hit1”中可以包括轨道b;虚拟事件组“hit2”中可以包括轨道c1、c2、c3,每个轨道上可以包括任意数量的虚拟事件。
在一些实施例中,Flux可以默认内置一些原生事件,比如,移动事件、旋转事件、变色事件、播放动画事件、动画融合事件、播放声音事件,等等。
其中,宿主软件(Host software)指可以为某插件(Plug-in)提供运行环境的软件,比如,宿主软件可以安装各种插件,并为插件提供运行环境的计算机程序。
其中,插件是一种遵循一定规范的应用程序接口编写出来的程序,插件只能运行在程序规定的运行环境(比如系统平台或宿主软件)下,而不能脱离其指定的运行环境单独运行。
例如,各类视图、音乐、游戏制作软件可以安装各类插件,各类视图、音乐、游戏制作软件可以被称为宿主软件,该插件可以调用宿主软件提供的函数库或数据。
以下是事件触发方法的具体流程:
一、获取游戏技能对应的至少一个虚拟事件组。
在本申请实施例中,Unity可以作为宿主程序,Flux插件可以通过其事件组接口来获取Unity中提供的事件组。
当游戏终端获取到用户触发的游戏技能施放指令时,可以根据该指令来确定当前要施放的游戏技能名称,以及通过Flux插件的事件组接口获取游戏技能对应的至少一个虚拟事件组。
二、查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息,基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数。
事件触发装置可以通过步骤一来确定的游戏技能名称来查询本地内存中的逻辑描述列表,该逻辑描述列表可以由开发人员配置,其格式可以参考表2:
虚拟事件组名称 规则描述 开启条件
cTeam 我方英雄施放技能 ssgcAlways
hit1 始终开启hit组 ssgcHitCount
hit2 始终开启hit组 ssgcHitCount
表2
该游戏技能的逻辑描述列表中的包括了三个虚拟事件组的名称,分别是cTeam、hit1、hit2,状态计算信息即为表1中的开启条件,包括了状态计算函数的名称,比如,虚拟事件组cTeam的状态计算函数的名称为ssgcAlways,该函数是指当满足“我方英雄施放技能”时,可以开启虚拟事件组cTeam。
然后,根据状态计算函数的名称在本地函数库中查询该状态计算函数,并执行该状态计算函数,即可求得虚拟事件组对应的状态参数。
譬如,在本地内存中查询虚拟事件组cTeam的状态计算函数名称ssgcAlways,可以得到ssgcAlways子函数哈希(hash)表,该ssgcAlways子函数哈希表的格式示意图可以参考图2c,然后,通过依次执行ssgcAlways子函数哈希表中与状态计算子函数名称之间具有映射关系的状态计算子函数,可以获得多个计算结果,将该计算结果执行逻辑与操作,可以获得该多个状态计算子函数的布尔值,该布尔值即为虚拟事件组cTeam对应的状态参数。
其中,哈希表(Hash table,也叫散列表)是根据关键码值(Key value)而直接进行访问的数据结构,即通过访问与关键码值之间具有映射关系的内存地址,可以加快查找速度。
开发人员可以将通过配置逻辑描述列表来对虚拟事件组的触发状态进行开关,从而设计多样、复杂的游戏技能。
三、根据虚拟事件组的状态参数确定虚拟事件组的触发状态。
在本实施例中,虚拟事件组的初始触发状态均为关闭状态,若虚拟事件组的布尔值为1,则将虚拟事件组的触发状态设置为开启状态,若虚拟事件组的布尔值为0,则将虚拟事件组的触发状态设置为关闭状态。
比如,游戏技能X的游戏效果是当游戏角色的血量大于50%时增加角色的攻击力,当游戏角色血量小于50%时增加角色的攻击力并且进行血量回复,此时,若游戏角色状态参数中的血量参数为大于50%,则将增加角色攻击力的虚拟事件设置为开启状态,将血量回复的虚拟事件设置为关闭状态。
再比如,游戏技能Y的游戏效果是当游戏角色未携带特殊道具时,游戏技能Y是进行普通攻击,当游戏角色携带特殊道具时,游戏技能Y是先进行一次特殊攻击后再进行普通攻击,由于虚拟事件在时间轴上固定,故需要先获取虚拟事件起跳信息,将起跳节点设置在特殊攻击的虚拟事件的开端,将跳转节点设置在特殊攻击的虚拟事件的末端,来跳过特殊攻击虚拟事件的持续时间。然后将特殊攻击的虚拟事件设置为关闭、将普通攻击的虚拟事件设置为开启。
四、基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
Unity可以通过调用一些事先声明好的函数,断断续续地将控制权传给一个脚本,当一个函数执行完毕,控制权又交回给Unity,这些函数即是本实施例中的虚拟事件,当Unity响应游戏中的虚拟事件时,虚拟事件被触发并调用。
Unity可以将这些虚拟事件函数代码进行编译,得到Microsoft.NET程序(.dll文件),并在运行时将.dll进行即时(just-in-time,JIT)编译。
其中,Microsoft.NET是指Microsoft XML Web服务平台,XML Web services允许任意操作系统、设备或编程语言的应用程序通过网络进行通讯以及共享数据,Microsoft.NET平台可以提供创建XML Web服务并将这些服务集成在一起。
其中,.dll(Dynamic Link Library,动态链接库)文件是一个可包含由多个程序同时使用的代码和数据的库。
参考图2d,在.NET平台上触发虚拟事件的具体步骤如下:
1、将虚拟事件对应的代码编译为托管模块(Managed Module);
2、将托管模块组合为程序集;
3、加载公共语言运行时(Common Language Runtime,CLR);
4、执行程序集代码。
其中,CLR是所有.NET应用程序运行时环境,负责资源管理(内存分配和垃圾收集),并保证应用和底层操作系统之间必要的分离,它能够使C++、C#、Visual Basic、以及JavaScript等多种语言深度集成。
在一些实施例中,为了提高平台的可靠性,以及为了达到面向事务的电子商务应用所要求的稳定性级别,CLR还可以负责其他一些任务,比如监测程序的运行。
其中,托管模块是一个需要CLR才能执行的标准Windows可移植可执行文件(Portable executable,PE)文件,可以包括PE表头、CLR表头、元数据以及中间语言代码(IL)。
其中,程序集经由编译器编译得到,供CLR进一步编译执行的那个中间产物,即中间代码,它可以由一个或多个托管模块及其相关的资源文件逻辑组成。
在本实施例中,编译的过程如下:
1、编译Unity引擎提供的标准资源包(Standard Assets)、专业标准资源包(ProStandard Assets)以及插件(Plugins)中的脚本代码。
其中,Standard Assets、Pro Standard Assets以及Plugins均为Unity引擎提供的游戏制作资源,该资源保存在本地内存库中。
2、编译Unity引擎提供的标准资源包编辑器(Standard Assets/Editor)、专业标准资源包编辑器(Pro Standard Assets/Editor)以及插件编辑器(Plugins/Editor)中的脚本代码。
其中,Standard Assets/Editor、Pro Standard Assets/Editor、Plugins/Editor为Unity引擎提供的编辑模式下的游戏制作资源,它们中的脚本可以访问步骤1中给出的脚本。
3、编译Unity引擎提供的编辑器(Editor)中的脚本代码。
其中,Editor是Unity引擎提供的编辑模式,其中的脚本可以从Editor窗口中获取,并访问步骤1、2中给出的所有脚本。
4、编译其他脚本。
其中,其他脚本是指除步骤1、2、3中给出脚本之外的脚本。
其中,脚本(Script)是指是一种纯文本保存的批处理程序文件。
编译完成后,可以得到虚拟事件对应的.dll文件,触发该虚拟事件时可以将该.dll文件进行即时编译,从而执行该虚拟事件对应的操作。
由上可知,本申请实施例可以获取游戏技能对应的至少一个虚拟事件组,并查询开发人员配置好的游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;然后通过哈希表的方式来基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的布尔值来作为状态参数,再根据虚拟事件组的状态参数确定虚拟事件组的触发状态;最后触发处于开启状态虚拟事件组中的虚拟事件,并跳过关闭状态虚拟事件组中的虚拟事件,以实现游戏技能。在本申请实施例中可以根据逻辑描述列表来设置虚拟事件组的触发状态,通过触发开启状态的虚拟事件组就可以释放游戏技能。由此,该方案可以提高游戏技能设计、修改的工作效率、提高游戏技能的复杂度、可扩展性以及多样性,同时降低触发虚拟事件所需的计算资源。
为了更好地实施以上方法,本申请实施例还提供一种事件触发装置,该事件触发装置具体可以集成在电子设备中,该电子设备可以为终端、服务器、个人电脑等设备。比如,在本实施例中,将以事件触发装置为例,对本发明实施例的方法进行详细说明。
例如,如图3所示,该事件触发装置可以包括获取单元301、查询单元302、调用单元303、确定单元304以及触发单元305如下:
(一)获取单元301:
获取单元301,用于获取游戏技能对应的至少一个虚拟事件组。
(二)查询单元302:
查询单元302,用于查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息。
(三)调用单元303:
调用单元303,用于基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数。
在一些实施例中,调用单元303可以包括获取子单元、查询子单元和计算子单元,如下:
(1)获取子单元:
获取子单元,用于获取游戏技能对应的虚拟角色状态信息。
(2)查询子单元:
查询子单元,用于根据状态计算信息在函数库中查询虚拟事件组对应的状态计算函数。
(3)计算子单元:
计算子单元,用于根据状态计算函数和虚拟角色状态信息计算虚拟事件组对应的状态参数。
在一些实施例中,状态计算函数包括多个状态计算子函数,计算子单元具体可以用于:
根据虚拟角色状态信息和多个状态计算子函数分别计算虚拟事件组对应的子状态参数;
对所有的子状态参数进行布尔值运算,得到虚拟事件组的状态参数。
(四)确定单元304:
确定单元304,用于根据虚拟事件组的状态参数确定虚拟事件组的触发状态。
在一些实施例中,确定单元304具体可以用于:
当虚拟事件组的状态参数符合开启状态范围时,将虚拟事件组的触发状态设置为开启状态;
当虚拟事件组的状态参数符合关闭状态范围时,将虚拟事件组的触发状态设置为关闭状态。
(五)触发单元305:
触发单元305,用于基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
在一些实施例中,触发单元305包括触发子单元和等待子单元如下:
(1)触发子单元:
触发子单元,用于当虚拟事件组的触发状态为开启状态时,触发虚拟事件组中的虚拟事件。
在一些实施例中,触发子单元具体可以用于:
获取虚拟事件组跳转信息,虚拟事件组跳转信息包括起跳节点和跳转节点;
触发虚拟事件组中处于起跳节点之前的虚拟事件;
在触发处于起跳节点之前的虚拟事件后,触发虚拟事件组中处于跳转节点之后的虚拟事件。
在一些实施例中,触发虚拟事件组中处于起跳节点之前的虚拟事件之后,触发子单元具体还可以用于:
将起跳节点与跳转节点之间虚拟事件组的触发状态设置为关闭状态。
(2)等待子单元:
等待子单元,用于当虚拟事件组的触发状态为关闭状态时,等待预设时长。
在一些实施例中,虚拟事件组的触发状态包括虚拟事件组中多个虚拟事件的当前子状态,触发单元305具体可以用于:
当虚拟事件组中虚拟事件的触发状态为开启状态时,触发虚拟事件;
当虚拟事件组中虚拟事件的触发状态为关闭状态时,等待预设时长。
具体实施时,以上各个单元可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个单元的具体实施可参见前面的方法实施例,在此不再赘述。
由上可知,本实施例的事件触发装置由获取单元获取游戏技能对应的至少一个虚拟事件组;由查询单元查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;由调用单元基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数;由确定单元根据虚拟事件组的状态参数确定虚拟事件组的触发状态;由触发单元基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能在本申请实施例中可以根据逻辑描述列表来设置虚拟事件组的触发状态,通过触发开启状态的虚拟事件组就可以释放游戏技能。由此,该方案可以降低触发虚拟事件所需的计算资源。
本申请实施例还提供一种终端,该终端可以是手机、平板电脑、微型处理盒子、无人机、或者图像采集设备等等。如图4所示,其示出了本申请实施例所涉及的终端的结构示意图,具体来讲:
该终端可以包括一个或者一个以上处理核心的处理器401、一个或一个以上计算机可读存储介质的存储器402、电源403、输入单元404以及无线通信单元405等部件。本领域技术人员可以理解,图4中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
处理器401是该终端的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器402内的软件程序和/或模块,以及调用存储在存储器402内的数据,执行终端的各种功能和处理数据,从而对终端进行整体控制。在一些实施例中,处理器401可包括一个或多个处理核心;在一些实施例中,处理器401可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器401中。
存储器402可用于存储软件程序以及模块,处理器401通过运行存储在存储器402的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器402可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据等。此外,存储器402可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器402还可以包括存储器控制器,以提供处理器401对存储器402的访问。
终端还包括给各个部件供电的电源403,在一些实施例中,电源403可以通过电源管理系统与处理器401逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源403还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该终端还可包括输入单元404,该输入单元404可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
该终端还可包括无线通信单元405,终端可以通过该无线通信单元405进行短距离无线传输,从而为用户提供了无线的宽带互联网访问。比如,该无线通信单元405可以用于帮助用户收发电子邮件、浏览网页和访问流式媒体等。
尽管未示出,终端还可以包括显示单元等,在此不再赘述。具体在本实施例中,终端中的处理器401会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能,如下:
获取游戏技能对应的至少一个虚拟事件组;
查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;
基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数;
根据虚拟事件组的状态参数确定虚拟事件组的触发状态;
基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
由上可知,本申请实施例可以获取游戏技能对应的至少一个虚拟事件组;查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数;根据虚拟事件组的状态参数确定虚拟事件组的触发状态;基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。在本申请实施例中可以根据逻辑描述列表来设置虚拟事件组的触发状态,通过触发开启状态的虚拟事件组就可以释放游戏技能。由此,该方案可以降低触发虚拟事件所需的计算资源。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种事件触发方法中的步骤。例如,该指令可以执行如下步骤:
获取游戏技能对应的至少一个虚拟事件组;
查询游戏技能对应的逻辑描述列表,逻辑描述列表包括虚拟事件组对应的状态计算信息;
基于状态计算信息调用虚拟事件组对应的状态计算函数,得到虚拟事件组对应的状态参数;
根据虚拟事件组的状态参数确定虚拟事件组的触发状态;
基于虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种事件触发方法中的步骤,因此,可以实现本申请实施例所提供的任一种事件触发方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种事件触发方法、装置以及终端进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (9)

1.一种事件触发方法,其特征在于,包括:
获取游戏技能对应的至少一个虚拟事件组,其中,所述虚拟事件组中包括分组后的多个虚拟事件;
查询所述游戏技能对应的逻辑描述列表,所述逻辑描述列表包括所述虚拟事件组对应的状态计算信息;
基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数;
根据所述虚拟事件组的状态参数确定所述虚拟事件组的触发状态;
基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能,其中,所述基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,包括:
当所述虚拟事件组的触发状态为开启状态时,触发所述虚拟事件组中的虚拟事件,
其中,所述触发所述虚拟事件组中的虚拟事件,包括:
获取虚拟事件组跳转信息,所述虚拟事件组跳转信息包括起跳节点和跳转节点;
触发所述虚拟事件组中处于起跳节点之前的虚拟事件;
在触发处于起跳节点之前的虚拟事件后,触发所述虚拟事件组中处于跳转节点之后的虚拟事件。
2.如权利要求1所述的事件触发方法,其特征在于,基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数,包括:
获取游戏技能对应的虚拟角色状态信息;
根据所述状态计算信息在函数库中查询所述虚拟事件组对应的状态计算函数;
根据所述状态计算函数和虚拟角色状态信息计算所述虚拟事件组对应的状态参数。
3.如权利要求2所述的事件触发方法,其特征在于,所述状态计算函数包括多个状态计算子函数,根据所述状态计算函数和虚拟角色状态信息计算所述虚拟事件组对应的状态参数,包括:
根据所述虚拟角色状态信息和多个状态计算子函数分别计算所述虚拟事件组对应的子状态参数;
对所有的子状态参数进行布尔值运算,得到所述虚拟事件组的状态参数。
4.如权利要求1所述的事件触发方法,其特征在于,所述当所述虚拟事件组的触发状态为开启状态时,触发所述虚拟事件组中的虚拟事件,包括:
当所述虚拟事件组的触发状态为开启状态时,触发所述虚拟事件组中的虚拟事件;
当所述虚拟事件组的触发状态为关闭状态时,等待预设时长。
5.如权利要求1所述的事件触发方法,其特征在于,触发所述虚拟事件组中处于起跳节点之前的虚拟事件之后,还包括:
将所述起跳节点与跳转节点之间虚拟事件组的触发状态设置为关闭状态。
6.如权利要求1所述的事件触发方法,其特征在于,所述虚拟事件组的触发状态包括虚拟事件组中多个虚拟事件的当前子状态,基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,包括:
当所述虚拟事件组中虚拟事件的触发状态为开启状态时,触发所述虚拟事件;
当所述虚拟事件组中虚拟事件的触发状态为关闭状态时,等待预设时长。
7.如权利要求1所述的事件触发方法,其特征在于,根据所述虚拟事件组的状态参数确定所述虚拟事件组的触发状态,包括:
当所述虚拟事件组的状态参数符合开启状态范围时,将所述虚拟事件组的触发状态设置为开启状态;
当所述虚拟事件组的状态参数符合关闭状态范围时,将所述虚拟事件组的触发状态设置为关闭状态。
8.一种事件触发装置,其特征在于,包括:
获取单元,用于获取游戏技能对应的至少一个虚拟事件组,其中,所述虚拟事件组中包括分组后的多个虚拟事件;
查询单元,用于查询所述游戏技能对应的逻辑描述列表,所述逻辑描述列表包括所述虚拟事件组对应的状态计算信息;
调用单元,用于基于所述状态计算信息调用所述虚拟事件组对应的状态计算函数,得到所述虚拟事件组对应的状态参数;
确定单元,用于根据所述虚拟事件组的状态参数确定虚拟事件组的触发状态;
触发单元,用于基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,以实现游戏技能,其中,所述基于所述虚拟事件组的触发状态对虚拟事件组中的虚拟事件进行触发,包括:
当所述虚拟事件组的触发状态为开启状态时,触发所述虚拟事件组中的虚拟事件,
其中,所述触发所述虚拟事件组中的虚拟事件,包括:
获取虚拟事件组跳转信息,所述虚拟事件组跳转信息包括起跳节点和跳转节点;
触发所述虚拟事件组中处于起跳节点之前的虚拟事件;
在触发处于起跳节点之前的虚拟事件后,触发所述虚拟事件组中处于跳转节点之后的虚拟事件。
9.一种终端,其特征在于,包括处理器和存储器,所述存储器存储有多条指令;所述处理器从所述存储器中加载指令,以执行如权利要求1~8任一项所述的事件触发方法中的步骤。
CN201910348932.8A 2019-04-28 2019-04-28 事件触发方法、装置以及终端 Active CN110354503B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910348932.8A CN110354503B (zh) 2019-04-28 2019-04-28 事件触发方法、装置以及终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910348932.8A CN110354503B (zh) 2019-04-28 2019-04-28 事件触发方法、装置以及终端

Publications (2)

Publication Number Publication Date
CN110354503A CN110354503A (zh) 2019-10-22
CN110354503B true CN110354503B (zh) 2023-03-21

Family

ID=68215228

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910348932.8A Active CN110354503B (zh) 2019-04-28 2019-04-28 事件触发方法、装置以及终端

Country Status (1)

Country Link
CN (1) CN110354503B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111760283B (zh) * 2020-08-06 2023-08-08 腾讯科技(深圳)有限公司 虚拟对象的技能施放方法、装置、终端及可读存储介质
CN111921193A (zh) * 2020-08-11 2020-11-13 腾讯科技(深圳)有限公司 游戏数据处理方法及相关设备
CN112546616B (zh) * 2020-12-15 2024-01-12 网易(杭州)网络有限公司 游戏技能处理方法、系统、装置及电子设备

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8076565B1 (en) * 2006-08-11 2011-12-13 Electronic Arts, Inc. Music-responsive entertainment environment
US20090318223A1 (en) * 2008-06-23 2009-12-24 Microsoft Corporation Arrangement for audio or video enhancement during video game sequences
CN104573334B (zh) * 2014-12-24 2017-10-27 珠海金山网络游戏科技有限公司 一种利用标签事件触发特效和音效的播放系统和方法
CN106033340B (zh) * 2015-03-16 2019-03-22 广州四三九九信息科技有限公司 手游战斗技能的可视化编辑方法及系统
CN108536598B (zh) * 2018-04-12 2023-03-10 深圳市腾讯网络信息技术有限公司 一种技能逻辑测试方法、装置、测试终端及存储介质

Also Published As

Publication number Publication date
CN110354503A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
CN106462425B (zh) 使用复常量的方法和系统
CN110354503B (zh) 事件触发方法、装置以及终端
US9886518B1 (en) Deep integration of programming language and markup language constructs
EP3304286B1 (en) Data binding dependency analysis
US8850414B2 (en) Direct access of language metadata
CN112748914B (zh) 一种应用程序开发方法、装置、电子设备和存储介质
JP2002525744A (ja) テキスト・オブジェクトのコンパイル方法およびシステム
CN110678839B (zh) 基于流的范围界定
US8615729B2 (en) Extending existing model-to-model transformations
US7669178B2 (en) System and method for interacting with computer programming languages at semantic level
CN115202626A (zh) 一种支持多技术栈组件的低代码前端开发方法
CN114461204B (zh) 一种将多层级对象数据翻译为原生代码的开发系统和方法
US8935657B2 (en) Model-to-model transformation by kind
CN110874213B (zh) 一种静态强类型语言的运行时类型扩展与反射方法
JP4768984B2 (ja) コンパイル方法、コンパイルプログラムおよびコンパイル装置
CN107656726A (zh) 一种互联网信息及技术共享平台及方法
US20090328001A1 (en) Unloadable managed code
CN110110299B (zh) 文本变换方法、装置以及服务器
Shunkevich et al. Ontological approach to the development of a software model of a semantic computer based on the traditional computer architecture
Åkesson et al. Jatte: A tunable tree editor for integrated DSLs
CN112487142A (zh) 一种基于自然语言处理的对话式智能交互方法和系统
CN100403788C (zh) 用于处理视听内容的描述的方法和系统
CN110018816A (zh) 一种基于c/c++编译系统的虚拟机控制系统及其控制方法
CN115981652B (zh) 语言互操作方法、装置、存储介质及程序产品
Zhang et al. Controllability for discrete event systems modelled in VeriJ

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant