Class Player#
-
class Player:
Base.Player# 玩家分为客户端要处理的玩家,以及服务端处理的玩家两种。
客户端能知道的玩家的信息十分有限,而服务端知道一名玩家的所有细节。
Player类就是这两种玩家的基类,包含它们共用的部分。
-
hp:
integer# 体力值
-
maxHp:
integer# 体力上限
-
shield:
integer# 护甲数
-
kingdom:
string# 势力
-
role_shown:
boolean# 身份是否明置
-
general:
string# 武将
-
deputyGeneral:
string# 副将
-
gender:
integer# 性别
-
phase:
integer# 当前阶段
-
faceup:
boolean# 是否正面朝上
-
chained:
boolean# 是否处于连环状态
-
dying:
boolean# 是否处于濒死
-
dead:
boolean# 是否死亡
-
flag:
string[]# 当前拥有的flag,不过好像没用过
-
tag:
table<string,any># 当前拥有的所有tag,好像也没用过
-
player_cards:
table<integer,integer[]># 当前拥有的所有牌,键是区域,值是id列表
-
special_cards:
table<string,integer[]># 类似“屯田”的“田”的私人牌堆
-
cardUsedHistory:
table<string,integer[]># 用牌次数历史记录
-
skillUsedHistory:
table<string,integer[]># 发动技能次数的历史记录
-
skillBranchUsedHistory:
table<string,table<string,integer[]>># 发动技能某分支次数的历史记录
-
buddy_list:
integer[]# 队友列表,或者说自己可以观看别人手牌的那些玩家的列表
-
equipSlots:
string[]# 装备栏列表
-
sealedSlots:
string[]# 被废除的装备栏列表
-
setGeneral(
self:Player,
general:General,
setHp?:boolean,
addSkills?:boolean
)# 设置角色、体力、技能。
- Parameters:
general (
General) -- 角色类型setHp? (
boolean) -- 是否设置体力addSkills? (
boolean) -- 是否增加技能
-
addCards(
self:Player,
playerArea:integer,
cardIds:integer[],
specialName?:string
)# 将指定数量的牌加入玩家的对应区域。
- Parameters:
playerArea (
integer) -- 玩家牌所在的区域cardIds (
integer[]) -- 牌的ID,返回唯一牌specialName? (
string) -- 私人牌堆名
-
removeCards(
self:Player,
playerArea:integer,
cardIds:integer[],
specialName?:string
)# 将指定数量的牌移除出玩家的对应区域。
- Parameters:
playerArea (
integer) -- 玩家牌所在的区域cardIds (
integer[]) -- 牌的ID,返回唯一牌specialName? (
string) -- 私人牌堆名
-
removeVirtualEquip(self:
Player, cid:integer):Card# 为玩家移除虚拟装备。
- Parameters:
cid (
integer) -- 卡牌ID,用来定位装备
-
getVirtualEquip(self:
Player, cid:integer):Card?# 确认玩家是否存在虚拟装备。
- Parameters:
cid (
integer) -- 卡牌ID,用来定位装备
-
getCardIds(
self:Player,
playerAreas?:string|integer|integer[],
specialName?:string
):integer[]# 获取玩家特定区域所有牌的ID。
- Parameters:
playerAreas? (
string|integer|integer[]) -- 玩家牌所在的区域specialName? (
string) -- 私人牌堆名
- Returns:
_1 (
integer[]) -- 返回对应区域的所有牌对应的ID
-
getPile(self:
Player, name:string):integer[]# 通过名字检索获取玩家对应的私人牌堆。没有为{}。
- Parameters:
name (
string) -- 私人牌堆名
-
getPileNameOfId(self:
Player, id:integer):string?# 通过ID检索获取玩家对应的私人牌堆。
- Parameters:
id (
integer) -- 私人牌堆ID
-
getHandlyIds(self:
Player, include_hand?:boolean):integer[]# 返回所有名字以“&”结尾(如手牌般使用或打出)的pile的牌。 提示:VSSkill中需要```handly_pile = true```才能使用这些牌。
- Parameters:
include_hand? (
boolean) -- 是否包含真正的手牌,默认包含
-
getEquipment(self:
Player, cardSubtype:integer):integer?# 检索玩家装备区是否存在对应类型的装备。
注意:带转化信息应使用```getEquipCards```
- Parameters:
cardSubtype (
integer) -- 卡牌子类- Returns:
_1? (
integer) -- 返回卡牌ID或nil
-
getEquipments(self:
Player, cardSubtype?:integer):integer[]# 检索玩家装备区是否存在对应类型或所有类型的装备列表。
注意:带转化信息应使用```getEquipCards```
- Parameters:
cardSubtype? (
integer) -- 卡牌子类,不填则返回所有装备- Returns:
_1 (
integer[]) -- 返回id数组或空表
-
getEquipCards(self:
Player, cardSubtype?:integer):Card[]# 检索玩家装备区是否存在对应类型的装备列表。(带转化信息)
- Parameters:
cardSubtype? (
integer) -- 卡牌子类,不填则返回所有装备- Returns:
_1 (
Card[]) -- 返回卡牌数组或空表
-
getDelayedTrickCards(self:
Player, name?:string):Card[]# 检索玩家判定区是否存在对应的延时锦囊列表。(带转化信息)
- Parameters:
name? (
string) -- 延时锦囊卡名,不填则返回所有延时锦囊- Returns:
_1 (
Card[]) -- 返回卡牌数组或空表
-
getAttackRange(
self:Player,
excludeIds?:integer[],
excludeSkills?:string[]
):integer# 获取玩家攻击范围。
- Parameters:
excludeIds? (
integer[]) -- 忽略的自己装备的id列表excludeSkills? (
string[]) -- 忽略的技能名列表
-
distanceTo(
self:Player,
other:Player,
mode?:string,
ignore_dead?:boolean,
excludeIds?:integer[],
excludeSkills?:string[]
):integer# 获取玩家与其他角色的实际距离。
通过 二者位次+距离技能之和 与 两者间固定距离 进行对比,更大的为实际距离。
注意比较距离时使用```Player:compareDistance()```。
- Parameters:
other (
Player) -- 其他玩家mode? (
string) -- 计算模式(left/right/both)ignore_dead? (
boolean) -- 是否忽略尸体excludeIds? (
integer[]) -- 忽略的自己装备的id列表,用于飞刀判定excludeSkills? (
string[]) -- 忽略的技能名列表
-
compareDistance(
self:Player,
other:Player,
num:integer,
operator: "<" | "<=" | "==" | ">" | ">="...(+1)
):boolean# 比较距离(排除移出游戏(-1),故一般仅当<与<=时使用此函数有价值)
- Parameters:
other (
Player) -- 终点角色num (
integer) -- 比较基准operator ("<" | "<=" | "==" | ">" | ">="...(+1)) -- 运算符
- Returns:
_1 (
boolean) -- 返回比较结果,不计入距离结果永远为false
-
inMyAttackRange(
self:Player,
other:Player,
fixLimit?:integer,
excludeIds?:integer[],
excludeSkills?:string[]
):boolean# 获取其他玩家是否在玩家的攻击范围内。
- Parameters:
other (
Player) -- 其他玩家fixLimit? (
integer) -- 卡牌距离限制增加专用excludeIds? (
integer[]) -- 忽略的自己装备的id列表,用于飞刀判定excludeSkills? (
string[]) -- 忽略的技能名列表
-
getNextAlive(
self:Player,
ignoreRemoved?:boolean,
num?:integer,
ignoreRest?:boolean
):Player# 获取下家。
- Parameters:
ignoreRemoved? (
boolean) -- 忽略被移除num? (
integer) -- 第几个,默认1ignoreRest? (
boolean) -- 是否忽略休整
-
getLastAlive(
self:Player,
ignoreRemoved?:boolean,
num?:integer,
ignoreRest?:boolean
):Player# 获取上家。
- Parameters:
ignoreRemoved? (
boolean) -- 忽略被移除num? (
integer) -- 第几个,默认1ignoreRest? (
boolean) -- 是否忽略休整
-
addCardUseHistory(self:
Player, cardName:string, num?:integer)# 增加玩家使用特定牌的历史次数。
- Parameters:
cardName (
string) -- 牌名num? (
integer) -- 次数
-
setCardUseHistory(
self:Player,
cardName:string,
num?:integer,
scope?:integer
)# 设定玩家使用特定牌的历史次数。
- Parameters:
cardName (
string) -- 牌名num? (
integer) -- 次数 默认0scope? (
integer) -- 历史范围 全为nil意为清空
-
addSkillUseHistory(self:
Player, skill_name:string, num?:integer)# 增加玩家使用特定技能的历史次数。
- Parameters:
skill_name (
string) -- 技能名num? (
integer) -- 次数 默认1
-
addSkillBranchUseHistory(
self:Player,
skill_name:string,
branch:string,
num?:integer
)# 增加玩家使用特定技能分支的历史次数。
- Parameters:
skill_name (
string) -- 技能名branch (
string) -- 技能分支名,不写则默认改变某技能**所有分支**的历史次数num? (
integer) -- 次数 默认1
-
setSkillUseHistory(
self:Player,
skill_name?:string,
num?:integer,
scope?:integer
)# 设定玩家使用特定技能的历史次数。 `num`和`scope`均不写则为清空特定区域的历史次数
- Parameters:
skill_name? (
string) -- 技能名,不写则默认改变所有技能的历史次数num? (
integer) -- 次数 默认0scope? (
integer) -- 查询历史范围,若你填了num则必须填具体时机
-
setSkillBranchUseHistory(
self:Player,
skill_name?:string,
branch?:string,
num?:integer,
scope?:integer
)# 设定玩家使用特定技能(skill skeleton)分支的历史次数。 `num`和`scope`均不写则为清空特定区域的历史次数
- Parameters:
skill_name? (
string) -- 技能(skill skeleton)名,不写(或写空字符串)则默认改变**所有技能**之所有分支的历史次数branch? (
string) -- 技能分支名,不写(或写空字符串)则默认改变某技能**所有分支**的历史次数num? (
integer) -- 次数 默认0scope? (
integer) -- 查询历史范围,若你填了num则必须填具体时机
-
clearSkillHistory(self:
Player, skill_name:string, scope?:integer)# 清空玩家使用特定技能的历史次数
- Parameters:
skill_name (
string) -- 技能名,若为主技能则同时清空所有技能效果和分支的历史次数scope? (
integer) -- 清空的历史范围,不填则全部清空
-
usedCardTimes(self:
Player, cardName:string, scope?:integer):integer# 获取玩家使用特定牌的历史次数(只算计入次数的部分)。
- Parameters:
cardName (
string) -- 牌名scope? (
integer) -- 查询历史范围,默认Turn
-
usedSkillTimes(
self:Player,
skill_name:string,
scope?:integer,
branch?:string
):integer# 获取玩家使用特定技能的历史次数。
- Parameters:
skill_name (
string) -- 技能(skill skeleton)名scope? (
integer) -- 查询历史范围,默认Turnbranch? (
string) -- 不查询主技能使用次数,改为查询分支所属的次数限制
-
usedEffectTimes(self:
Player, skill_name:string, scope?:integer):integer# 获取玩家使用特定技能效果的历史次数。
- Parameters:
skill_name (
string) -- 效果(skill effect)名scope? (
integer) -- 查询历史范围,默认Turn
-
hasSkill(
self:Player,
skill:string|Skill,
ignoreNullified?:boolean,
ignoreAlive?:boolean
):boolean# 检索玩家是否有对应技能。
- Parameters:
skill (
string|Skill) -- 技能名ignoreNullified? (
boolean) -- 忽略技能是否被无效ignoreAlive? (
boolean) -- 忽略角色在场与否
-
hasShownSkill(
self:Player,
skill:string|Skill,
ignoreNullified:any,
ignoreAlive:any
):boolean# 技能是否亮出
-
canUse(self:
Player, card:Card, extra_data?:UseExtraData):boolean# 确认玩家是否可以使用特定牌。
- Parameters:
card (
Card) -- 特定牌extra_data? (
UseExtraData) -- 额外数据
-
canUseTo(
self:Player,
card:Card,
to:Player,
extra_data?:UseExtraData
):boolean|nil# 确认玩家是否可以对特定玩家使用特定牌。
-
canUseOrResponseInCurrent(self:
Player, card:Card, extra_data?:UseExtraData):boolean# 确认玩家是否可以使用/打出特定牌,考虑Fk.currentResponsePattern。
- Parameters:
card (
Card) -- 特定牌extra_data? (
UseExtraData) -- 额外数据(为nil的情况取当前req的extra_data信息)
-
getViewAsCardNames(
self:Player,
skill_name:string,
card_names:string[],
subcards?:integer[],
ban_cards?:string[],
extra_data?:table|UseExtraData,
vs_pattern?:string
):string[]# 当前可用的牌名筛选。用于转化技的interaction里对泛转化牌名的合法性检测
- Parameters:
skill_name (
string) -- 泛转化技的技能名card_names (
string[]) -- 待判定的牌名列表subcards? (
integer[]) -- 子卡(某些技能可以提前确定子卡,如奇策、妙弦)ban_cards? (
string[]) -- 被排除的卡名extra_data? (
table|UseExtraData) -- 用于使用的额外信息(为nil的情况取当前req的extra_data信息)vs_pattern? (
string) -- 转化后的卡牌pattern
- Returns:
_1 (
string[]) -- 返回牌名列表
-
isProhibitedTarget(self:
Player, card:Card):boolean# 确认角色是否被禁止成为特定牌的目标(目前仅用于移动场上的延时锦囊)
- Parameters:
card (
Card) -- 特定牌
-
prohibitResponse(self:
Player, card:Card):boolean# 确认玩家是否被禁止打出特定牌。
- Parameters:
card (
Card) -- 特定的牌
-
prohibitDiscard(self:
Player, card:integer|Card):boolean# 确认玩家是否被禁止弃置特定牌。
- Parameters:
card (
integer|Card) -- 特定的牌
-
canPindian(
self:Player,
to:Player,
ignoreFromKong?:boolean,
ignoreToKong?:boolean
):boolean# 判断能否拼点
- Parameters:
to (
Player) -- 拼点对象ignoreFromKong? (
boolean) -- 忽略发起者没有手牌ignoreToKong? (
boolean) -- 忽略对象没有手牌
-
canMoveCardIntoEquip(self:
Player, cardId:integer|Card, convert?:boolean):boolean# 判断一张牌能否移动至某角色的装备区
- Parameters:
cardId (
integer|Card) -- 移动的牌convert? (
boolean) -- 是否可以替换装备(默认可以)
-
getSwitchSkillState(
self:Player,
skillName:string,
afterUse?:boolean,
inWord?:boolean
):string|number# 获取转换技状态
- Parameters:
skillName (
string) -- 技能名afterUse? (
boolean) -- 是否提前计算转换后状态inWord? (
boolean) -- 是否返回文字
- Returns:
_1 (
string|number) -- 转换技状态
-
canMoveCardInBoardTo(self:
Player, to:Player, id:integer):boolean# 是否能移动特定牌至特定角色
- Parameters:
to (
Player) -- 移动至的角色id (
integer) -- 移动的牌
-
canMoveCardsInBoardTo(
self:Player,
to:Player,
flag?:string,
excludeIds?:integer[]
):boolean# 是否能移动特定区域牌至特定角色
-
getQuestSkillState(self:
Player, skillName:string):string?# 获取使命技状态
- Returns:
_1? (
string) -- 存在返回`failed` or succeed,不存在返回`nil`
-
getAvailableEquipSlots(self:
Player, subtype?:integer):string[]# 获取角色未被废除的装备栏
- Parameters:
subtype? (
integer) -- 指定的装备栏类型,不填则判断所有类型
-
hasEmptyEquipSlot(self:
Player, subtype?:integer):boolean# 检索玩家是否有对应类型的空装备栏
- Parameters:
subtype? (
integer) -- 指定的装备栏类型,不填则判断所有类型
-
cardVisible(self:
Player, cardId:integer, move?:MoveCardsData):boolean# Player是否可看到某card
- Parameters:
move? (
MoveCardsData) -- 移动数据,注意涉及Player全是id
-
compareGenderWith(self:
Player, other:Player, diff?:boolean):boolean# 比较两名角色的性别是否相同。
- Parameters:
other (
Player) -- 另一名角色diff? (
boolean) -- 比较二者不同
- Returns:
_1 (
boolean) -- 返回比较结果
-
getFriends(
self:Player,
include_self?:boolean,
include_dead?:boolean
):Player[]# 获得队友
- Parameters:
include_self? (
boolean) -- 是否包括自己。默认是include_dead? (
boolean) -- 是否包括死亡角色。默认否
-
hp: