传奇脚本编写入门:结婚系统实例分析
一、脚本概述
本脚本实例为GomM2引擎下的传奇SF结婚系统脚本。通过一系列的条件判断和交互提示,实现了游戏内角色结婚、离婚的功能逻辑。脚本中包含了性别校验、等级要求、物品检查、面对面站立检查等多个环节,确保了结婚流程的严谨性和游戏平衡性。
二、脚本分析
1、结婚流程:
玩家输入结婚指令后,脚本首先检查玩家是否满足结婚的基本条件(如性别、等级、求婚戒指等)。
条件满足后,玩家需要与被求婚对象面对面站立,脚本会进行位置检查。
位置正确后,玩家确认求婚,被求婚对象收到请求并可以选择接受或拒绝。
若被求婚对象接受,则双方结婚成功。
2、离婚流程:
玩家输入离婚指令后,脚本检查玩家是否已婚。
已婚玩家可以选择协议离婚或强行离婚(需消耗金条)。
协议离婚需要双方确认,强行离婚则单方面即可完成。
离婚成功后,双方恢复单身状态。
三、脚本命令介绍
checkmarry: 此命令用于检查玩家是否已经结婚。如果玩家已婚,通常将阻止其再次结婚,以避免重婚的情况。
checkposemarry: 检查玩家的求婚对象是否已婚。如果对方已婚,则通常会阻止求婚。
gender man: 判断玩家的性别是否为男性。在多数游戏中,只有男性角色才能发起求婚。
checkposegender: 检查求婚对象的性别是否符合要求。例如,在某些游戏中,可能禁止同性结婚。
checkposedir: 检查两个玩家是否面对面站立。结婚通常需要双方站在合适的位置。
checklevel: 检查玩家的等级是否达到结婚的最低要求。这是为了确保玩家达到一定的游戏进度才能结婚。
checkposelevel: 检查求婚对象的等级是否满足条件。这可以防止低等级角色被高等级角色“强迫”结婚。
checkitemw: 检查玩家是否拥有特定物品,如求婚戒指。这是结婚的必要条件之一。
takew: 从玩家身上扣除特定物品,如求婚成功后扣除求婚戒指。
gender: 判断玩家的性别,用于给出相应的提示或进行下一步操作。
marry requestmarry: 玩家发出结婚请求给另一方。
marry responsemarry ok: 被求婚方接受结婚请求。
marry responsemarry fail: 被求婚方拒绝结婚请求。
这些脚本命令的巧妙运用,不仅为玩家带来了丰富的游戏体验,也展现了GomM2引擎在传奇私服游戏中的强大功能。四、脚本实例
结婚脚本
[@main] <我想结婚/@marry>\ <我想离婚/@unmarry>\ \ <离开/@exit> [@marry] 求婚者必须是男性且拥有求婚戒指,\ 你准备好求婚了吗?\ \ <准备好了/@agree>\ <下次再来/@exit>\ \ \ <返回/@main> [@agree] #if checkmarry #act break #say 你都结过婚了,还来注册结婚,想犯重婚罪呀!!! \ \ <返回/@main> #if checkposemarry #say 对方已经结过婚了,是不是想犯重婚罪呀!!!\ \ <返回/@main> #act break #if gender man #elsesay 只有男的向女的求婚,还没见过大姑娘向小伙子求婚的。\ \ <返回/@main> #elseact break #if checkposegender 男 #say 你变态呀!!!想搞同性恋!!! \ \ <返回/@main> #act break #if checkposedir 2 #elsesay 你们二个面对面站好呀,不要乱动。\ \ <返回/@main> #elseact break #if checklevel 40 #elsesay 结婚要求你的等级必须40级或以上,小伙子努力练好级再来找我。\ \ <返回/@main> #elseact break #if checkposelevel > 34 #elsesay 你的对象还没成年,等她长大点再来吧!小伙子不要心急嘛!\ \ <返回/@main> #elseact break #if checkitemw 求婚戒指 1 #elsesay 你没求婚戒指,弄到求婚戒指再来找我吧!!!\ \ <返回/@main> #elseact break #if #act takew 求婚戒指 1 marry [@StartMarry] #if checkmarry #say 你都结过婚了,还来注册结婚,想犯重婚罪呀!!! \ \ <返回/@main> #act break #if gender man #act break #say 婚礼现在正式开始。\ \ 你愿意娶对方为妻,并照顾她一生一世吗?\ \ <我愿意/@RequestMarry> #if gender #act break #say 婚礼现在正式开始。\ \ 请耐心等待你心爱的人向你求婚\ \ [@RequestMarry] #if checkmarry #act break #say 你都结过婚了,还来注册结婚,想犯重婚罪呀!!! \ \ <返回/@main> #if #act marry requestmarry [@WateMarry] 你已向对方求婚,请耐心等待对方的答复。 [@RevMarry] #if checkmarry #act break #say 你都结过婚了,还来注册结婚,想犯重婚罪呀!!! \ \ <返回/@main> #if #say 对方向你求婚,你是否答应嫁给他? \ \ <我愿意/@ResposeMarry> \ <我不愿意/@ResposeMarryFail> [@ResposeMarry] #if checkmarry #act break #say 你都结过婚了,还来注册结婚,想犯重婚罪呀!!! \ \ <返回/@main> #if #act marry responsemarry ok [@ResposeMarryFail] #if checkmarry #act break #say 你都结过婚了,还来注册结婚,想犯重婚罪呀!!! \ \ <返回/@main> #if #act marry responsemarry fail [@EndMarry] 你们二个已经成为了一对全法夫妻了。\ \ <关闭/@exit> [@EndMarryFail] 结婚失败!\ \ <关闭/@exit> [@MarryDirErr] 对方没站好位置 [@MarryCheckDir] 请站好位置\\ [@HumanTypeErr] 你变态呀,既然选择一个非人类作为结婚对象。 [@MarrySexErr] 你变态呀,既然同性恋。 ;========================================== 离婚开始 [@unmarry] #if checkmarry #act unmarry #elsesay 你都没结婚离什么婚??\ \ <返回/@main> ;======================================================= ;双方离婚时没面对面站好显示的信息 [@UnMarryCheckDir] 要离婚是吧?离婚是二个人的事,必须二个人对面对站好位置,\ 如果人来不了你只能选择强行离婚姻了。\ \ <我要强行离婚/@fUnMarry>\ <返回/@main> ;======================================================= ;对面位置不是人物时显示的信息 [@UnMarryTypeErr] 你对面站了个什么东西,怎么不太象人来的。\ \ <返回/@main> ;======================================================= ;开始离婚程序后,双方显示的信息 [@StartUnMarry] #if gender man #act BREAK #say 是否确定真的要与你共事多年的妻子离婚吗?\ \ <确定/@RequestUnMarry> #if gender #say 你的老公现在向我请求离婚,是不是愿意协议离婚? \ \ <确定/@RequestUnMarry> #act break ;======================================================= ;发出离婚请求 [@RequestUnMarry] #if checkmarry #act unmarry requestunmarry ;======================================================= ;回应离婚请求 [@ResposeUnMarry] #if checkmarry #act unmarry responseunmarry ;=============================================== ;请求离婚后显示的信息 [@WateUnMarry] 你已向对方发出离婚请求,请耐心等待对方的答复。 ;=============================================== ;请求离婚后对方显示的信息 [@RevUnMarry] 对方向你离婚请求,你是否答应离婚? \ \ <我愿意/@RequestUnMarry> <返回/@main> ;=============================================== ;没结过婚的人点离婚后出的提示信息 [@ExeMarryFail] 你都没结过婚,跑来做什么? \ \ [返回/@main] ;============================================== ;强行离婚 [@fUnMarry] #if checkitem 金条 1 checkmarry #act take 金条 1 unmarry requestunmarry force #elsesay 要收一根金条的手续费,你没有金条,\ 我不能让你离婚。\ <确定/@exit> ;============================================== ;离婚完成后的提示信息 [@UnMarryEnd] 呵呵,你已经脱离苦海了!!! \ \ <退出/@exit> [@asktime] 你调查结婚时间的请求已发出,\ 请稍后。\ <确定/@exit>
热2013-10-02
热2024-03-29
热2013-08-13
热2013-01-26
热2024-06-26
热2013-09-10