网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月31日漏签0天
新神杀lua讨论吧 关注:275贴子:1,464
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 1 2 3 4 5 下一页 尾页
  • 97回复贴,共5页
  • ,跳到 页  
<<返回新神杀lua讨论吧
>0< 加载中...

【缓更】 0610函数枚举

  • 只看楼主
  • 收藏

  • 回复
  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1L说明情况:其实之前每天都在写,但是最近事情很多,再把这东西存在手上 估计下版本出了都写不好... 于是每天发一点,能发布多少就发多少吧。
可以插楼,欢迎讨论,因为如果有幸写完了,会在lua吧正式发布,大可不必担心此楼被水。


  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
--[[太阳神三国杀V2 0610
Lua函数枚举由 啦啦SLG 整理
首发:太阳神三国杀Lua吧
适用人群:
1.通过复制技能手册的代码写过一些技能,但对手册里的函数不明觉厉者
2.有意愿发现更合适的函数,让技能代码更加简洁,追求更稳定的性能、更畅快的体验者
3.想了解函数原理,但不幸是源码阅读障碍者
4.和啦啦臭味相投,对实现奇葩技能情有独钟者]]


2025-05-31 23:12:26
广告
  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
--[[Part1 QObject类 方法]]
objectName()
--[[
返回值:QString类型
效果:返回对象名
]]
setObjectName(name)
--[[
返回值:无参数name:char类型
效果:将对象名设置为name
]]
inherits(class_name)
--[[
返回值:bool类型
参数class_name:char类型
效果:如果对象继承自名为class_name的类,则返回true;否则返回false
]]
setProperty(name, value)
--[[返回值:bool类型
参数name:char类型
参数value:QVariant类型
效果:case1.如果该属性存在于对象中,并且属性值与属性类型相匹配,属性name被设置为value,返回true
case2.如果属性类型与属性值不匹配,属性不变,返回false
case3.如果属性name为对象中没有给定名称的属性,则新属性和属性值添加到该对象,返回false
]]
property(name)
--[[
返回值:QVariant类型
参数name:char类型
效果:返回名为name的属性值
]]
setParent(parent)
--[[
返回值:无
参数parent:QObject类型
效果:将对象从原父对象的children列表中删除,添加到parent的children列表中
]]
deleteLater()
--[[
返回值:无
效果:当和对象有关的所有任务处理完后清除对象,释放内存
]]


  • thiswangba
  • 炮灰
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
抢沙发


  • 1234516
  • 谁与争锋
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
原来函数枚举是这个意思……长姿势了


  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
--[[
Part2 General类(继承自QObject类) 方法
]]
--[[构造函数]] General(package, name, kingdom, max_hp, male, hidden, never_shown)--[[
返回值:General类型
参数package:Package类型
参数name:char类型
参数kingdom:char类型
参数max_hp:int类型,默认取4
参数male:bool类型,默认取true
参数hidden:bool类型,默认取false
参数never_shown:bool类型,默认取false
效果:实例化一个满足下列设置的General类型的值
1.父对象为package,即设置武将所属扩展包
2.case1.如果name是以$结尾,该武将为主公型武将,武将名为将$移除后的name值
case2.如果name不以$结尾,该武将不为主公型武将,武将名为name
3.武将势力为kingdom
4.体力上限为max_hp
5.如果male为true,武将为男性;如果为false,武将为女性
6.如果hidden为true,武将不会在选将框里出现;如果为false,可以被正常选中
7.如果never_shown为true,武将会被完全隐藏,在武将一览和自由选将里不会被找到]]
getMaxHp()
--[[
返回值:int类型
效果:返回对象的体力上限
]]
getKingdom()
--[[
返回值:QString类型
效果:返回对象的势力
]]
isMale()
--[[
返回值:bool类型
效果:如果对象为男性,返回true;否则返回false
]]
isFemale()
--[[
返回值:bool类型
效果:如果对象为女性,返回true;否则返回false
]]
isNeuter()
--[[
返回值:bool类型
效果:如果对象为中性,返回true;否则返回false
]]
isLord()
--[[
返回值:bool类型
效果:如果对象为主公选将必出现的武将(区别于对Player对象调用isLord()方法),返回true;否则返回false
]]
isHidden()
--[[
返回值:bool类型
效果:如果对象不会在选将框里出现,返回true;否则返回false
]]
isTotallyHidden()
--[[
返回值:bool类型效果:如果对象被完全隐藏,在武将一览和自由选将里都不会被找到,返回true;否则返回false
]]
--[[Gender类型 枚举常量]]Gender { SexLess, Male, Female, Neuter }
--[[
SexLess:无性
Male:男性
Female:女性
Neuter:中性(既是男性也是女性)
]]
getGender()
--[[
返回值:Gender类型
效果:返回对象的性别
]]
setGender(gender)
--[[
返回值:无
参数gender:Gender类型
效果:将对象性别设置为gender
]]
addSkill(skill)
--[[
返回值:无
参数skill:Skill类型
效果:1.将skill添加入对象的children列表
2.让对象拥有技能skill
3.如果技能名列表里没有skill,将skill加入技能名列表
]]
addSkill(skill_name)
--[[
返回值:无
参数skill_name:char类型
效果:case1.如果对象已拥有名为skill_name的技能,函数终止
case2.如果对象没有名为skill_name的技能
1.让对象拥有名为skill_name的技能
2.如果技能名列表里没有skill_name,将skill_name加入技能名列表
]]
hasSkill(skill_name)
--[[
返回值:bool类型
参数skill_name:char类型
效果:如果对象拥有名为skill_name的技能,返回true;否则返回false
]]
getSkillList()
--[[
返回值:QList<Skill>类型
效果:返回盛放对象所有有效技能的QList容器
]]
getVisibleSkillList()
--[[
返回值:QList<Skill>类型
效果:在General:getSkillList()中筛选出可见的技能,然后返回盛放所筛选出技能的QList容器
]]
getVisibleSkills()
--[[
返回值:QSet<Skill>类型
效果:将General:getVisibleSkillList()结果转化为QSet类型返回
]]
getTriggerSkills()
--[[
返回值:QSet<TriggerSkill>类型
效果:在对象的技能名列表中筛选出触发技,返回盛放所有触发技的QSet容器
]]
getPackage()
--[[
返回值:QString类型
效果:case1.如果对象所属扩展包有效,返回扩展包名
case2.如果对象所属扩展包无效,返回空QString
]]
getSkillDescription(include_name)
--[[
返回值:QString类型
参数include_name:bool类型,默认取false
效果:在General:getVisibleSkillList()筛选,如果不是SP替换技能,则
1.Step1.翻译技能名
Step2.获取技能描述
Step3.将技能描述的\n替换为换行符(<br/>)
Step4.将上述信息按“加粗后的技能名:技能描述(两个换行符)”的格式组合成QString值插入技能描述的尾部
2.如果include_name参数为true则
Step1.读取lua中记录的势力颜色
Step2.将武将名用lua所记录的势力颜色显示并加粗
Step3.在武将名前插入势力图片
Step4.在武将名后插入等同于武将体力上限数量的勾玉
Step5.在武将名后插入两个换行符
Step6.将上述操作的结果插入技能描述的前部返回技能描述
]]
lastWord()
--[[
返回值:无
效果:Step1.生成目录下和武将同名的阵亡配音文件的地址
Step2.检测文件是否存在,若不存在,用另一种规则重新生成地址
1.将武将名按"_"字符分离
2.如果分离后长度大于1,则生成目录下和武将名最后部分同名的阵亡配音文件
Step3.播放地址指向的配音文件
]]


  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
hasInnateSkill(skill_name, include_lose)
--[[
返回值:bool类型
参数skill_name:char类型
参数include_lose:bool类型,默认取false(此参数为冗余参数,无意义,下版本发布时将不会出现)
效果:如果对象的主将或副将拥有名为skill_name的技能,返回true;否则返回false
]]
setEquip(equip)
--[[
返回值:无
参数equip:WrappedCard类型
效果:在服务器端让对象装备equip
]]
removeEquip(equip)
--[[
返回值:无
参数equip:WrappedCard类型
效果:在服务器端将对象已装备的equip移除
]]
hasEquip(card)--[[
返回值:bool类型
参数card:Card类型
效果:case1.如果card是一张实体卡牌,如果对象的装备区存在card,返回true;否则返回false
case2.如果card是一张含有子卡的虚拟卡牌,如果每张子卡都存在于对象的装备区,返回true;否则返回false
]]
hasEquip()
--[[
返回值:bool类型
效果:如果对象装备区有装备,返回true;否则返回false
]]
getJudgingArea()
--[[
返回值:QList<Card>
效果:返回一个盛放对象判定区的牌的QList容器
]]
addDelayedTrick(trick)
--[[
返回值:无
参数trick:Card类型
效果:在服务器端将trick置入对象判定区
]]
removeDelayedTrick(trick)
--[[
返回值:无
参数trick:Card类型
效果:在服务器端将trick从对象判定区移出
]]
containsTrick(trick_name)
--[[
返回值:bool类型
参数trick_name:char类型
效果:如果对象的判定区存在名为trick_name的牌,返回true;否则返回false
]]
getWeapon()
--[[
返回值:WrappedCard类型
效果:返回对象已装备的武器
]]
getArmor()
--[[
返回值:WrappedCard类型
效果:返回对象已装备的防具
]]
getDefensiveHorse()
--[[
返回值:WrappedCard类型
效果:返回对象已装备的+1坐骑
]]
getOffensiveHorse()
--[[
返回值:WrappedCard类型
效果:返回对象已装备的-1坐骑
]]
getEquips()
--[[
返回值:QList<Card>类型
效果:返回盛放对象所有装备的QList容器
]]
getEquip(index)
--[[
返回值:EquipCard类型
参数index:int类型
效果:case1.如果index为0,返回对象已装备的武器
case2.如果index为1,返回对象已装备的防具
case3.如果index为2,返回对象已装备的+1坐骑
case4.如果index为3,返回对象已装备的-1坐骑
case5.如若index不为以上任一情形,返回nil
]]
hasWeapon(weapon_name)
--[[
返回值:bool类型
参数weapon_name:char类型
效果:case1.如果对象拥有"Equips_Nullified_to_Yourself"Mark,返回false
case2.如果对象已装备名为weapon_name的武器,返回true;否则返回false
]]
hasArmorEffect(armor_name)
--[[
返回值:bool类型
参数armor_name:char类型
效果:case1.如果对象的防具被"Qinggang"Tag所影响,或拥有"Armor_Nullified"Mark,或拥有"Equips_Nullified_to_Yourself"Mark,返回false
case2.如果对象拥有或被附着技能“八阵”且未装备防具且armor_name为"bazhen",返回true
case3.如果对象已装备名为armor_name的防具,返回true;否则返回false
]]
isKongcheng()
--[[
返回值:bool类型
效果:如果对象手牌数为0,返回true;否则返回false
]]
isNude()
--[[
返回值:bool类型
效果:如果对象无手牌无装备,返回true;否则返回false
]]
isAllNude()
--[[
返回值:bool类型
效果:如果对象无手牌无装备且判定区无牌,返回true;否则返回false
]]
canDiscard(to, flags)
--[[
返回值:bool类型
参数to:Player类型
参数flags:char类型
效果:1.如果flags中包含字符"h",且to有手牌,返回true
2.如果flags中包含字符"j",且to的判定区有牌,返回true
3.如果flags中包含字符"e"case1.如果to已装备+1坐骑或-1坐骑,返回true
case2.如果to已装备武器或防具,并且to没有技能“奇才”或对象为to,返回true
4.若非上述任一情形,返回false
]]
canDiscard(to, card_id)
--[[
返回值:bool类型
参数to:Player类型
参数card_id:int类型
效果:case1.如果to拥有或被附着技能“奇才”,且对象不为to,且对象已装备ID为card_id的武器或防具,返回false
case2.如果对象为to,且ID为card_id的牌被禁止弃置,返回false
case3.若非上述任一情形,返回true
]]
addMark(mark)
--[[
返回值:无
参数mark:char类型
效果:在服务器端为对象增加一个名为mark的Mark
]]
removeMark(mark)
--[[
返回值:无
参数mark:char类型
效果:在服务端移除对象的一个名为mark的Mark(Mark数量不会小于0)
]]
setMark(mark, value)
--[[
返回值:无
参数mark:char类型
参数value:int类型
效果:在服务器端将对象的名为mark的Mark数量设置为value
]]
getMark(mark)
--[[
返回值:int类型
参数mark:char类型
效果:返回对象名为mark的Mark的数量
]]
setChained(chained)
--[[
返回值:无
参数chained:bool类型
效果:case1.如果chained为true,在服务器端将对象设置为横置状态
case2.如果chained为false,在服务器端将对象设置为重置状态
]]
isChained()
--[[
返回值:bool类型
效果:如果对象处于横置状态,返回true;否则返回false
]]


  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
canSlash(other, slash, distance_limit, rangefix, others)
--[[
返回值:bool类型
参数other:Player类型
参数slash:Card类型
参数distance_limit:bool类型,默认取true
参数rangefix:int类型,默认取0
参数others:QList<Player>,默认取空QList<Player>容器
效果:case1.如果对象为other或other已阵亡,返回false
case2.1.如果slash不为nil,如果在已选择others中的所有值的情况下,对象已被禁止对other使用slash,返回false
2.如果slash为nil,如果在已选择others中的所有值的情况下,对象已被禁止对other使用无花色无点数的杀,返回false
case3.如果distance_limit为true,且对象与other的距离+rangefix不大于攻击范围+使用杀的范围修正值,返回true;否则返回false
case4.如果distance_limit为false,返回true
]]
canSlash(other, distance_limit, rangefix, others)
--[[
返回值:bool类型
参数other:Player类型
参数distance_limit:bool类型,默认取true
参数rangefix:int类型,默认取0
参数others:QList<Player>,默认取空QList<Player>容器
效果:返回对对象调用canSlash(other, nil, distance_limit, rangefix, others)的返回值
]]
getCardCount(include_equip)
--[[
返回值:int类型
参数include_equip:bool类型
效果:case1.如果include_equip为false,返回对象手牌数
case2.如果include_equip为true,返回对象手牌数与装备数之和
]]
getPile(pile_name)
--[[
返回值:QList<int>类型
参数pile_name:char类型
效果:返回盛放对象名为pile_name的牌堆的所有牌ID的QList容器
]]
getPileNames()
--[[
返回值:QStringList类型
效果:返回对象所有牌堆的名称列表
]]
getPileName(card_id)
--[[
返回值:QString类型
参数card_id:int类型
效果:case1.如果玩家的牌堆中含有ID为card_id类型的牌,返回牌堆名
case2.如果玩家的牌堆中没有ID为card_id类型的牌,返回空QString
]]
addHistory(name, times)
--[[
返回值:无
参数name:char类型
参数times:int类型,默认取1
效果:在服务器端将对象在此出牌阶段使用名为name的牌的次数加上times
]]
clearHistory()
--[[
返回值:无
效果:在服务器端将对象牌的使用记录清除
]]
hasUsed(card_class)
--[[
返回值:bool类型
参数card_class:char类型
效果:如果对象在此出牌阶段有过使用名为card_class牌的记录,返回true;否则返回false
]]
usedTimes(card_class)
--[[
返回值:int类型
参数card_class:char类型
效果:返回对象在此出牌阶段使用过名为card_class牌的次数
]]
getSlashCount()
--[[
返回值:int类型
效果:返回对象此出牌阶段使用的杀的数量(包括雷杀、火杀)
]]
hasEquipSkill(skill_name)
--[[
返回值:bool类型
参数skill_name:char类型
效果:如果对象装备的武器或防具附带有名为skill_name的技能,返回true;否则返回false
]]
getTriggerSkills()
--[[
返回值:QSet<TriggerSkill>类型
效果:返回盛放对象拥有和被附着的所有触发技(不包括装备附带技能)的QSet容器
]]
getSkills(include_equip, visible_only)
--[[
返回值:QSet<Skill>类型
参数include_equip:bool类型,默认取false
参数visible_only:bool类型,默认去true效果:返回盛放对象拥有或被附着的所有可见技能的QSet容器,另:1.如果include_equip为true,容器中添加对象装备附带的技能
2.如果visible_only为false,容器中添加对象已隐藏的技能
]]
getSkillList(include_equip, visible_only)
--[[
返回值:QList<Skill>类型
参数include_equip:bool类型,默认取false
参数visible_only:bool类型,默认去true
效果:返回盛放对象拥有或被附着的所有可见技能的QList容器,另:1.如果include_equip为true,容器中添加对象装备附带的技能
2.如果visible_only为false,容器中添加对象已隐藏的技能
]]
getVisibleSkills(include_equip)
--[[
返回值:QSet<Skill>类型
参数include_equip:bool类型,默认取false
效果:对对象调用getSkillList(include_equip, true),将返回值容器转换为QSet容器后返回
]]
getVisibleSkillList(include_equip)
--[[
返回值:QList<Skill>类型
参数include_equip:bool类型,默认取false
效果:返回对对象调用getSkillList(include_equip, true)的返回值
]]
getAcquiredSkills()
--[[
返回值:QSet<QString>类型
效果:返回盛放所有附着给对象的技能的QSet容器
]]
getSkillDescription()
--[[
返回值:QString类型
效果:在Player:getVisibleSkillList()筛选,如果不是SP替换技能且不是被附着的主公技,则Step1.翻译技能名
Step2.获取技能描述
Step3.将技能描述的\n替换为换行符(<br/>)
Step4.将上述信息按“加粗后的技能名:技能描述(两个换行符)”的格式组合成QString值插入技能描述的尾部
Step5.如果对象的技能存在,返回技能描述;若不存在或没有技能,返回"No skills"
]]
isProhibited(to, card, others)
--[[
返回值:bool类型
参数to:Player类型
参数card:Card类型
参数others:QList<Player>,默认取空QList<Player>
效果:如果对象在已选择others中的所有值为目标的情况下,不可以对to使用card,返回true;否则返回false
]]
canSlashWithoutCrossbow()
--[[
返回值:bool类型
效果:如果对象在没有装备诸葛连弩的情况下可以使用杀,返回true;否则返回false
]]
isJilei(card)
--[[
返回值:bool类型
参数card:Card类型
效果:如果对象已被禁止弃置card,返回true;否则返回false
]]
isLocked(card)
--[[
返回值:bool类型
参数card:Card类型
效果:如果对象已被禁止使用card,返回true;否则返回false
]]
setCardLimitation(limit_list, pattern, single_turn)
--[[
返回值:无
参数limit_list:char类型
参数pattern:char类型
参数single_turn:bool类型,默认取false
效果:1.按照","字符分离limit_list,禁止对象以分离后的limit_list每项处理方式处理属于pattern的卡牌
2.case1.如果pattern以"$0"结尾,不会自动取消禁止;如果以"$1"结尾,回合结束自动取消禁止
case2.如果single_turn为true,回合结束后会自动取消禁止;若为false,不会自动取消禁止
]]
removeCardLimitation(limit_list, pattern)
--[[
返回值:无
参数limit_list:char类型
参数pattern:char类型
效果:按照","字符分离limit_list,对符合下列状况的取消对象以分离后的limit_list每项处理方式处理属于pattern的卡牌的禁止:case1.如果pattern以"$0"结尾,且对对象的相关禁止不会自动取消
case2.如果pattern以"$1"结尾,且对对象的相关禁止会自动取消
case3.如果pattern不以"$0"结尾且不以"$1"结尾,且对对象的相关禁止不会自动取消
]]
clearCardLimitation(single_turn)
--[[
返回值:无
参数single_turn:bool类型,默认取false
效果:case1.如果single_turn为true,取消所有会自动取消的对对象的禁止
case2.如果single_turn为false,取消所有对对象的禁止
]]
isCardLimited(card, method, isHandcard)
--[[
返回值:bool类型
参数card:Card类型
参数method:Card::HandlingMethod类型
参数isHandcard:bool类型,默认为false
效果:case1.如果method为Card::MethodNone,返回false
case2.如果card为技能卡,且card的处理方式为method,card的任一子卡被禁止以method方式处理,返回true(若isHandcard为true,将card视为手牌)
case3.如果card不为技能卡,card被禁止以method方式处理,返回true(若isHandcard为true,将card视为手牌)
case4.若不属于以上任一情况,返回false
]]
copyFrom(p)
--[[
返回值:无
参数p:Player类型
效果:在服务器端将p的Mark、牌堆、被附着的技能、Flag、使用牌的记录、性别、体力、体力上限、势力、身份、座位、存活情况、所处阶段、已装备武器、已装备防具、已装备+1坐骑、已装备-1坐骑、翻面情况、横置情况、判定区情况、距离锁定情况、卡牌限制情况、Tag赋予给对象
]]
getSiblings()
--[[
返回值:QList<Player>类型
效果:返回盛放出对象自身外所有和对象有同一父对象的值的QList容器
]]
setTag(key, value)
--[[
返回值:无
参数key:char类型
参数value:QVariant类型效果:将对象名为key的tag键值设置为value
]]
getTag(key)
--[[
返回值:QVariant类型
参数key:char类型
效果:返回对象名为key的键值
]]
removeTag(tag_name)
--[[
返回值:无
参数tag_name:char类型
效果:清除键为tag_name的Tag
]]


2025-05-31 23:06:26
广告
  • 1131561728
  • 谁与争锋
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
建议啦啦整合一个doc文档,这样查阅起来也比较方便(我记得安河君曾经整理了一个类似的函数枚举,不过那时候我还没学神杀Lua。。。)


  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
--[[
Part4 ServerPlayer类(继承自Player类) 方法
]]
--[[构造函数]]ServerPlayer(room)
--[[
返回值:ServerPlayer类型
参数room:Room类型
效果:实例化一个基于room的初始ServerPlayer对象
]]
setSocket(socket)
--[[
返回值:无
参数socket:ClientSocket类型
效果:case1.如果socket有效,连接服务器端与对象的客户端socket
case2.如果socket无效,断开服务器端与对象客户端的连接
]]
invoke(method, arg)
--[[
返回值:无
参数method:char类型
参数arg:char类型,默认取"."
效果:case1.(用于向后兼容)如果method为"clearAG",清除展示框
case2.如果method不为"clearAG",向客户端建立通道并发送拼接字符method+" "+arg
]]
reportHeader()
--[[
返回值:QString类型
效果:返回对象在服务器端的名称(如sgs1、sgs2之类)
]]
drawCard(card)
--[[
返回值:无
参数card:Card类型
效果:在服务器端将card加入手牌
]]
getRoom()
--[[
返回值:Room类型
效果:返回对象所属的room
]]
broadcastSkillInvoke(card)
--[[
返回值:无
参数card:Card类型
效果:播放card的配音
]]
broadcastSkillInvoke(card_name)
--[[
返回值:无
参数card_name:char类型
效果:播放名为card_name的配音
]]
getRandomHandCardId()
--[[
返回值:int类型
效果:随机返回一张对象手牌的ID
]]
getRandomHandCard()
--[[
返回值:Card类型
效果:随机返回一张对象的手牌
]]
throwAllEquips()
--[[
返回值:无
效果:弃置对象所有的装备
]]
throwAllHandCards()
--[[
返回值:无
效果:弃置对象所有的手牌
]]
throwAllHandCardsAndEquips()
--[[
返回值:无
效果:弃置对象所有手牌和装备
]]
throwAllCards()
--[[
返回值:无
效果:弃置对象所有手牌、装备和判定区的牌
]]
bury()
--[[
返回值:无
效果:1.对对象调用clearFlags()
2.对对象调用clearHistory()
3.对对象调用throwAllCards()
4.清除对象的所有可见Mark
5.清除对象的私有牌堆
6.清除对象的卡牌禁止
]]
throwAllMarks(visible_only)
--[[
返回值:无
参数visible_only:bool类型,默认取true
效果:case1.如果visible_only为true,清除对象所有可见Mark
case2.如果visible_only为false,清除对象所有的Mark
]]
clearOnePrivatePile(pile_name)
--[[
返回值:无
参数pile_name:char类型
效果:清除对象名为pile_name的牌堆
]]
clearPrivatePiles()
--[[
返回值:无
效果:清除对象的所有牌堆
]]
drawCards(n, reason)
--[[
返回值:无
参数n:int类型
参数reason:char类型,默认取nil
效果:case1.若对象已阵亡,且reson为"reform",对象摸n张牌
case2.若对象存活,对象摸n张牌
]]
forceToDiscard(discard_num, include_equip, is_discard)
--[[
返回值:QList<int>类型
参数discard_num:int类型
参数include_equip:bool类型
参数is_discard:bool类型,默认取true
效果:case1.如果include_equip为false,则在手牌中随机获取discard_num张牌(如果is_discard为true,则牌不能被禁止弃置),返回盛放这些牌ID的QList容器
case2.如果include_equip为true,则在手牌和装备区中随机获取discard_num张牌(如果is_discard为true,则牌不能被禁止弃置),返回盛放这些牌ID的QList容器
]]
handCards()
--[[
返回值:QList<int>类型
效果:返回盛放对象所有手牌ID的QList容器
]]
getHandcards()
--[[
返回值:QList<Card>类型
效果:返回盛放对象所有手牌的QList容器
]]
getCards(flags)
--[[
返回值:QList<Card>类型
参数flags:char类型
效果:1.如果flags中包含字符"h",向QList容器中添加对象所有的手牌
2.如果flags中包含字符"e",向QList容器中添加对对象调用getEquips()的返回值
3.如果flags中包含字符"j",向QList容器中添加对对象调用getJudgingArea()的返回值
4.返回经以上步骤的QList容器
]]
wholeHandCards()
--[[
返回值:DummyCard类型
效果:case1.如果对象没有手牌,返回nil
case2.如果对象有手牌,返回一张所有手牌为其所有子卡的虚拟卡牌
]]
hasNullification()
--[[
返回值:bool类型
效果:如果对象手牌中有无懈可击或对象拥有在询问无懈可击时可以发动的视为技,返回true;否则返回false
]]
pindian(target, reason, card1)
--[[
返回值:bool类型
参数target:ServerPlayer类型
参数reason:char类型
参数card1:Card类型,默认取nil
效果:1.case1.如果card1为nil,对象与target同时进行拼点
case2.如果card1有效,target打出一张牌用于和对象拼点
2.如果对象在拼点中赢了,返回true;否则返回false
]]
turnOver()
--[[
返回值:无
效果:让对象翻面
]]
play(set_phases)
--[[
返回值:无
参数set_phases:QList<Player::Phase>类型,默认取空List<Player::Phase>
效果:对象按照列表次序执行阶段,直到执行NotActive停止;若列表为空,执行一个回合;若列表中没有NotActive阶段,则在列表末添加NotActive阶段
]]
changePhase(from, to)
--[[
返回值:bool类型
参数from:Player::Phase类型
参数to:Player::Phase类型
效果:case1.如果阶段变换阶段的时机中断,且to不为NotActive,则将对象的当前阶段设置为from,返回true
case2.如果to为NotActive或阶段变换阶段的时机正常触发,则将对象即将进行的阶段设置为to,返回false
]]
getPhases()
--[[
返回值:QList<Player::Phase>类型
效果:返回盛放对象回合阶段的QList容器
]]
skip(phase)
--[[
返回值:无
参数phase:Player::Phase类型
效果:跳过对象本回合的phase
]]
insertPhase(phase)
--[[
返回值:无
参数phase:Player::Phase类型
效果:在对象所处阶段处插入phase
]]
isSkipped(phase)
--[[
返回值:bool类型
参数phase:Player::Phase类型
效果:如果phase存在且将要被跳过,返回true;否则返回false
]]
gainMark(mark, n)
--[[
返回值:无
参数mark:char类型
参数n:int类型,默认取1
效果:对象获得n枚名为mark的标记
]]
loseMark(mark, n)
--[[
返回值:无
参数mark:char类型
参数n:int类型,默认取1
效果:对向失去n枚名为mark的标记
]]
loseAllMarks(mark_name)
--[[
返回值:无
参数mark_name:char类型
效果:清除对象所有名为mark_name的标记
]]
setAI(ai)
--[[
返回值:无
参数ai:AI类型
效果:将对象的ai设置为ai
]]
getAI()
--[[
返回值:AI类型
效果:case1.如果对象为在线状态,返回nil
case2.如果对象为托管状态,返回对象的托管AI
case3.如果对象为机器人,反击哦对象的AI
]]
getSmartAI()
--[[
返回值:AI类型
效果:返回对象的AI
]]


  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
aliveCount()
--[[
返回值:int类型
效果:返回场上存活玩家数量
]]
getHandcardNum()
--[[
返回值:int类型
效果:返回对象手牌数
]]
removeCard(card, place)
--[[
返回值:无
参数card:Card类型
参数place:Place类型
效果:case1.place为PlaceHand或PlaceEquip或PlaceDelayedTrick或PlaceSpecial,移除place中的card
case2.place不为以上四种之一,无效果
]]
addCard(card, place)
--[[
返回值:无
参数card:Card类型
参数place:Place类型
效果:case1.place为PlaceHand或PlaceEquip或PlaceDelayedTrick,向对象的place添加card
case2.place不为以上三种之一,无效果
]]
isLastHandCard(card, contain)
--[[
返回值:bool类型
参数card:Card类型
参数contain:bool类型,默认取false
效果:case1.如果card为实体卡牌,并且对象手牌只有一张且为card,返回true
case2.如果card为子卡数量大于0的虚拟卡牌1.如果contain为false,并且对象的所有手牌均为card的子卡,且数量相等,返回true
2.如果contain为true,并且对象的所有手牌均为card的子卡,返回true
case3.若不满足以上任一情形,返回false
]]
addVictim(victim)
--[[
返回值:无
参数victim:ServerPlayer类型
效果:向对象的受害者列表里添加victim
]]
getVictims()
--[[
返回值:QList<ServerPlayer>类型
效果:返回对象的受害者列表
]]
startRecord()
--[[
返回值:无
效果:开始录像
]]
saveRecord(filename)
--[[
返回值:无
参数filename:char类型
效果:以filename为名存储录像case1.如果filename为".txt"结尾,生成并写入txt录像文件
case2.如果filename为".png"结尾,转码为png文件存储
case3.若不为以上任一情况,不生成文件
]]
setNext(next)
--[[
返回值:无
参数next:ServerPlayer类型
效果:将对象的下家设置为next
]]
getNext()
--[[
返回值:ServerPlayer类型
效果:返回对象下家
]]
getNextAlive(n)
--[[
返回值:ServerPlayer类型
参数n:int类型,默认取1
效果:case1.如果场上没有存活玩家,返回对象
case2.如果场上存在存活玩家,返回对象右手边第n个存活玩家
]]
addToSelected(general)
--[[
返回值:无
参数general:char类型
效果:用于在特殊模式中,将general添加入已选择武将列表
]]
getSelected()
--[[
返回值:QStringList类型
效果:返回对象的已选择武将列表
]]
findReasonable(generals, no_unreasonable)
--[[
返回值:QString类型
参数generals:QStringList类型
参数no_unreasonable:bool类型,默认取false
效果:返回generals合理的、可以选择的武将名,若没有合理的武将:case1.若no_unreasonable为false,返回generals的第一个武将名
case2.若no_unreasonable为true,返回空QString
]]
clearSelected()
--[[
返回值:无
效果:清除对象的已选择武将列表
]]
getGeneralMaxHp()
--[[
返回值:int类型
效果:case1.如果游戏模式为单将,返回对象武将的体力上限(如果对象为身份5人及以上游戏的主公或主帅,上限+1)
case2.如果游戏模式为双将,按照体力上限分配方案返回体力上限(不小于1,如果对象为身份5人及以上游戏的主公或主帅,上限+1)
]]
getGameMode()
--[[
返回值:QString类型
效果:返回对象的游戏模式
]]
getIp()
--[[
返回值:QString类型
效果:case1.如果对象有客户端连接,返回客户端IP地址
case2.如果对象无客户端连接,返回空QString
]]
introduceTo(player)
--[[
返回值:无
参数player:ServerPlayer类型
效果:1.case1.如果player不为nil,在服务器为player添加对象玩家
case2.如果player为nil,在服务器为除对象之外的所有玩家添加对象玩家
2.如果对象已准备,广播准备情况
]]
marshal(player)
--[[
返回值:无
参数player:ServerPlayer类型
效果:将对象的各种状态更新给player
]]
addToPile(pile_name, card, open)
--[[
返回值:无
参数pile_name:char类型
参数card:Card类型
参数open:bool类型,默认取true
效果:case1.若open为true,公开将card(若为虚拟卡牌,则移动其子卡)移入对象名为pile_name的牌堆
case2.若open为false,以不公开方式将card(若为虚拟卡牌,则移动其子卡)移入对象名为pile_name的牌堆
]]
addToPile(pile_name, card_id, open)
--[[
返回值:无
参数pile_name:char类型
参数card_id:int类型
参数open:bool类型,默认取true
效果:case1.若open为true,公开将ID为card_id的卡牌移入对象名为pile_name的牌堆
case2.若open为false,以不公开方式将ID为card_id的卡牌移入对象名为pile_name的牌堆
]]
addToPile(pile_name, card_ids, open)
--[[
返回值:无
参数pile_name:QString类型
参数card_ids:QList<int>类型
参数open:bool类型,默认取true
效果:case1.若open为true,公开将ID为card_ids中所有ID的卡牌移入对象名为pile_name的牌堆
case2.若open为false,以不公开方式将ID为card_ids中所有ID的卡牌移入对象名为pile_name的牌堆
]]
addToPile(pile_name, card_ids, open, reason)
--[[
返回值:无
参数pile_name:QString类型
参数card_ids:QList<int>类型
参数open:bool类型
参数reason:CardMoveReason类型
效果:case1.若open为true,公开将ID为card_ids中所有ID的卡牌移入对象名为pile_name的牌堆,移动原因为reason
case2.若open为false,以不公开方式将ID为card_ids中所有ID的卡牌移入对象名为pile_name的牌堆,移动原因为reason
]]
exchangeFreelyFromPrivatePile(skill_name, pile_name, upperlimit, include_equip)
--[[
返回值:无
参数skill_name:char类型
参数pile_name:char类型
参数upperlimit:int类型,默认取1000
参数include_equip:bool类型,默认取false
效果:对象以技能名为skill_name的技能,将手牌(如果include_equip为true则包括装备牌)与名为pile_name的牌堆交换,每获取牌堆一张牌后检测,若牌堆牌数超过upperlimit,交换终止
]]
gainAnExtraTurn()
--[[
返回值:无
效果:对象执行一个额外的回合(结束后回到执行前的阶段)
]]
removePileByName(pile_name)
--[[
用于向后兼容
返回值:无
参数pile_name:char类型
效果:移除对象名为pile_name的牌堆
]]
speak(msg)
--[[
返回值:无
参数msg:char类型
效果:对象在聊天框说msg
]]


  • 燕琰妍嫣
  • 炮灰
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
顶个


  • thiswangba
  • 炮灰
    1
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
只看不回什么的最可耻了,好贴要顶……~


  • 魅惑菇投手
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
为了经(chi)验(jiao)顶贴


2025-05-31 23:00:26
广告
  • 啦啦SLG
  • 才兼文武
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
--[[
Part5 ClientPlayer类(继承自Player类) 方法
]]
--[[构造函数]]ClientPlayer(client)
--[[
返回值:ClientPlayer类型
参数client:Client类型
效果:实例化一个基于client的初始ClientPlayer对象
]]
aliveCount()
--[[
返回值:int类型
效果:返回场上存活玩家数量
]]
getHandcardNum()
--[[
返回值:int类型
效果:返回对象手牌数
]]
getHandcards()
--[[
返回值:QList<Card>类型
效果:返回盛放对象所有手牌的QList容器
]]
removeCard(card, place)
--[[
返回值:无
参数card:Card类型
参数place:Place类型
效果:case1.place为PlaceHand或PlaceEquip或PlaceDelayedTrick,移除place中的card
case2.place不为以上三种之一,无效果
]]
addCard(card, place)
--[[
返回值:无
参数card:Card类型
参数place:Place类型
效果:case1.place为PlaceHand或PlaceEquip或PlaceDelayedTrick,向对象的place添加card
case2.place不为以上三种之一,无效果
]]
addKnownHandCard(card)
--[[
返回值:无
参数card:Card类型
效果:将card加入对象的手牌
]]
isLastHandCard(card, contain)
--[[
返回值:bool类型
参数card:Card类型
参数contain:bool类型,默认取false
效果:case1.如果card为实体卡牌,并且对象手牌只有一张且为card,返回true
case2.如果card为子卡数量大于0的虚拟卡牌1.如果contain为false,并且对象的所有手牌均为card的子卡,且数量相等,返回true
2.如果contain为true,并且对象的所有手牌均为card的子卡,返回true
case3.若不满足以上任一情形,返回false
]]
--[[全局变量]]Self
--[[
ClientPlayer类型
值为基于此客户端的ClientPlayer
]]


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 1 2 3 4 5 下一页 尾页
  • 97回复贴,共5页
  • ,跳到 页  
<<返回新神杀lua讨论吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示