在传奇GOM引擎中,行会竞标与收人系统是管理行会成员的重要机制。本文将详细介绍如何使用脚本来自定义行会竞标和收人流程,帮助行会掌门更好地管理行会。

行会竞标与收人脚本配置

基本脚本结构:

使用 #IF 和 #ACT 语句来设置条件和执行动作。

通过 MOV 语句来更新行会状态和竞标价格。

使用 GuildNoticeMsg 来发送行会通知。

行会竞标:

行会竞标分为三个位置,每个位置都可以由不同的行会竞得。

竞标价格每次增加固定数额,竞标成功后,行会名称和竞标价格会更新。

行会收人:

行会收人状态可以是允许或拒绝。

收人状态和等级要求可以通过脚本设置和修改。

脚本示例:

[@main]

#IF equal A304 允许收人

#ACT MOV S$收人状态1 <允许加入/SCOLOR=250>

#IF equal A304 拒绝收人

#ACT MOV S$收人状态1 <拒绝加入/SCOLOR=249>

Copy

客户端与服务器配置

客户端配置:

client.ini 文件用于设置客户端显示选项,如NPC名字是否为粗体。

增加音量调节功能和中文状态切换。

服务器配置:

服务器端需要设置相应的数据文件和脚本文件。

使用 loginserver 配置文件来设置服务器列表和链接。

自定义扩展

自定义素材与颜色:

通过 CustomItemNameColors.txt 和 CustomMonNameColors.txt 文件来自定义物品和怪物的名字颜色。

使用 data\\~cui.txt 文件来定义自定义素材列表。

自定义光柱:

通过 data\\~gz.wzl 文件来自定义光柱效果。

脚本逻辑与功能

竞标逻辑:

玩家可以通过点击界面上的按钮来参与竞标。

竞标成功后,行会掌门可以设置收人状态和等级要求。

收人逻辑:

玩家可以通过点击界面上的按钮来申请加入行会。

行会掌门可以允许或拒绝玩家的加入申请。

脚本示例:

[@竞标1]

#IF CheckGameGold > 9

#ACT …

#ELSEACT messagebox 你的元宝不足10个.无法使用此功能

完整脚本:

[@main]

#IF

#ACT

MOV S$一号行会竞标 <我要加入该行会/@加入1>

MOV S$第二行会竞标 <加入行会/@加入2>

MOV S$第三行会竞标 <加入行会/@加入3>

MOV S$等级要求1 <$STR(G304)>

MOV S$等级要求2 <$STR(G305)>

MOV S$等级要求3 <$STR(G306)>

#IF

equal A304

#ACT

MOV S$收人状态1 -< /SCOLOR=125>

#IF

equal A305

#ACT

MOV S$收人状态2 -< /SCOLOR=125>

#IF

equal A306

#ACT

MOV S$收人状态3 -< /SCOLOR=125>

#IF

equal A304 允许收人

#ACT

MOV S$收人状态1 <允许加入/SCOLOR=250>

#IF

equal A305 允许收人

#ACT

MOV S$收人状态2 <允许加入/SCOLOR=250>

#IF

equal A306 允许收人

#ACT

MOV S$收人状态3 <允许加入/SCOLOR=250>

#IF

equal A304 拒绝收人

#ACT

MOV S$收人状态1 <拒绝收人/SCOLOR=249>

#IF

equal A305 拒绝收人

#ACT

MOV S$收人状态2 <拒绝收人/SCOLOR=249>

#IF

equal A306 拒绝收人

#ACT

MOV S$收人状态3 <拒绝收人/SCOLOR=249>

#IF

#ACT

SetStringBlank S$收人状态1 21 1

SetStringBlank S$收人状态2 21 1

#IF

equal A300

#ACT

MOV S$行会名字1 -暂无行会-

SetStringBlank S$行会名字1 20 1

#ELSEACT

MOV S$行会名字1 <$STR(A300)>

SetStringBlank S$行会名字1 20 1

#IF

equal A301

#ACT

MOV S$行会名字2 -暂无行会-

SetStringBlank S$行会名字2 20 1

#ELSEACT

MOV S$行会名字2 <$STR(A301)>

SetStringBlank S$行会名字2 20 1

#IF

equal A302

#ACT

MOV S$行会名字3 -暂无行会-

#ELSEACT

MOV S$行会名字3 <$STR(A302)>

#IF

#ACT

MOV S$竞标价格1 <$STR(G300)>

MOV S$竞标价格2 <$STR(G301)>

MOV S$竞标价格3 <$STR(G302)>

SetStringBlank S$竞标价格1 16 1

SetStringBlank S$竞标价格2 16 1

#IF

ISGUILDMASTER

#ACT

MOV S$一号行会竞标 <我要出价竞标/@竞标1>

MOV S$第二行会竞标 <出价竞标/@竞标2>

MOV S$第三行会竞标 <出价竞标/@竞标3>

#IF

equal A300

#ACT

MOV S$行会名字1 -暂无行会-

SetStringBlank S$行会名字1 20 1

#ELSEACT

MOV S$行会名字1 <$STR(A300)>

SetStringBlank S$行会名字1 20 1

#IF

equal A301

#ACT

MOV S$行会名字2 -暂无行会-

SetStringBlank S$行会名字2 20 1

#ELSEACT

MOV S$行会名字2 <$STR(A301)>

SetStringBlank S$行会名字2 20 1

#IF

equal A302

#ACT

MOV S$行会名字3 -暂无行会-

#ELSEACT

MOV S$行会名字3 <$STR(A302)>

#IF

#ACT

MOV S$竞标价格1 <$STR(G300)>

MOV S$竞标价格2 <$STR(G301)>

MOV S$竞标价格3 <$STR(G302)>

SetStringBlank S$竞标价格1 16 1

SetStringBlank S$竞标价格2 16 1

#IF

ISGUILDMASTER

equal <$GUILDNAME> <$STR(A300)>

#ACT

MOV S$等级要求1 <$STR(G304)><设置/@@InPutInteger85>

#IF

ISGUILDMASTER

equal <$GUILDNAME> <$STR(A301)>

#ACT

MOV S$等级要求2 <$STR(G305)><设置/@@InPutInteger86>

#IF

ISGUILDMASTER

equal <$GUILDNAME> <$STR(A302)>

#ACT

MOV S$等级要求3 <$STR(G306)><设置/@@InPutInteger87>

#IF

ISGUILDMASTER

equal A304 允许收人

equal <$GUILDNAME> <$STR(A300)>

#ACT

MOV S$收人状态1 <允许/SCOLOR=250><设置/@收人1>

#IF

ISGUILDMASTER

equal A305 允许收人

equal <$GUILDNAME> <$STR(A301)>

#ACT

MOV S$收人状态2 <允许/SCOLOR=250><设置/@收人2>

#IF

ISGUILDMASTER

equal A306 允许收人

equal <$GUILDNAME> <$STR(A302)>

#ACT

MOV S$收人状态3 <允许/SCOLOR=250><设置/@收人3>

#IF

ISGUILDMASTER

equal A304 拒绝收人

equal <$GUILDNAME> <$STR(A300)>

#ACT

MOV S$收人状态1 <禁止/SCOLOR=249><设置/@收人1>

#IF

ISGUILDMASTER

equal A305 拒绝收人

equal <$GUILDNAME> <$STR(A301)>

#ACT

MOV S$收人状态2 <禁止/SCOLOR=249><设置/@收人2>

#IF

ISGUILDMASTER

equal A306 拒绝收人

equal <$GUILDNAME> <$STR(A302)>

#ACT

MOV S$收人状态3 <禁止/SCOLOR=249><设置/@收人3>

#IF

#ACT

goto @字符1

#IF

#ACT

#SAY

 \

    <当前竞价行会:/SCOLOR=9> {<$STR(S$行会名字1)>/SCOLOR=251}    \ \

  <[竞价元宝]:/SCOLOR=94><$STR(S$竞标价格1)> \

  <[需要等级]:/SCOLOR=94><$STR(S$等级要求1)>\

  <[收人状态]:/SCOLOR=94> <$STR(S$收人状态1)>  \ \

    <$STR(S$一号行会竞标)>        \

\{行会掌门可竟拍,每次需在当前竞价上加10元宝.每晚24点清空数据/SCOLOR=250}\

[@字符1]

#IF

ISGUILDMASTER

equal <$GUILDNAME> <$STR(A300)>

equal <$GUILDNAME> <$STR(A301)>

#ACT

SetStringBlank S$收人状态1 20 1

SetStringBlank S$收人状态2 20 1

SetStringBlank S$等级要求1 35 1

SetStringBlank S$等级要求2 36 1

BREAK

#IF

ISGUILDMASTER

equal <$GUILDNAME> <$STR(A300)>

#ACT

SetStringBlank S$收人状态1 20 1

SetStringBlank S$收人状态2 20 1

SetStringBlank S$等级要求1 35 1

SetStringBlank S$等级要求2 17 1

BREAK

#IF

ISGUILDMASTER

equal <$GUILDNAME> <$STR(A301)>

#ACT

SetStringBlank S$收人状态1 20 1

SetStringBlank S$收人状态2 20 1

SetStringBlank S$等级要求1 16 1

SetStringBlank S$等级要求2 36 1

BREAK

#IF

#ACT

SetStringBlank S$收人状态1 20 1

SetStringBlank S$收人状态2 20 1

SetStringBlank S$等级要求1 16 1

SetStringBlank S$等级要求2 17 1

BREAK

[@收人3]

#if

equal A306 允许收人

#act

messagebox \\\您将关闭行会招募状态.确定关闭么? @禁止3 @取消

#elseact

messagebox \\\您将开启行会招募状态.确定开启么? @允许3 @取消

[@允许3]

#act

MOV A306 允许收人

Messagebox  当前收人设置为允许收人

goto @main

[@禁止3]

#act

MOV A306 拒绝收人

Messagebox  当前收人设置为拒绝收人

goto @main

[@收人2]

#if

equal A305 允许收人

#act

messagebox \\\您将关闭行会招募状态.确定关闭么? @禁止2 @取消

#elseact

messagebox \\\您将开启行会招募状态.确定开启么? @允许2 @取消

[@允许2]

#act

MOV A305 允许收人

Messagebox  当前收人设置为允许收人

goto @main

[@禁止2]

#act

MOV A305 拒绝收人

Messagebox  当前收人设置为拒绝收人

goto @main

[@收人1]

#if

equal <$GUILDNAME> <$STR(A300)>

#ElseAct

MESSAGEBOX [操作失败失败]你已经失去了该操作的权限.请重新竞价

break

#if

equal A304 允许收人

#act

messagebox \\\您将关闭行会招募状态.确定关闭么? @禁止1 @取消

#elseact

messagebox \\\您将开启行会招募状态.确定开启么? @允许1 @取消

[@允许1]

#if

equal <$GUILDNAME> <$STR(A300)>

#ElseAct

MESSAGEBOX [操作失败失败]你已经失去了该操作的权限.请重新竞价

break

#IF

#act

MOV A304 允许收人

Messagebox  当前收人设置为允许收人

goto @main

[@禁止1]

#if

equal <$GUILDNAME> <$STR(A300)>

#ElseAct

MESSAGEBOX [操作失败失败]你已经失去了该操作的权限.请重新竞价

break

#IF

#act

MOV A304 拒绝收人

Messagebox  当前收人设置为拒绝收人

goto @main

[@InPutInteger85]

#if

equal <$GUILDNAME> <$STR(A300)>

#ElseAct

MESSAGEBOX [操作失败失败]你已经失去了该操作的权限.请重新竞价

break

#if

large N85 0

CheckStringlength <$STR(N85)> < 4

CheckStringlength <$STR(N85)> > 0

#ACT

MOV <$STR(G304)> <$STR(N85)>

Messagebox  当前收人设置为<$STR(N85)>级

GOTO @main

BREAK

#ELSEACT

Messagebox  请输入正确的等级

[@InPutInteger86]

#if

equal <$GUILDNAME> <$STR(A300)>

#ElseAct

MESSAGEBOX [操作失败失败]你已经失去了该操作的权限.请重新竞价

break

#if

large N86 0

CheckStringlength <$STR(N86)> < 4

CheckStringlength <$STR(N86)> > 0

#ACT

MOV <$STR(G305)> <$STR(N86)>

Messagebox  当前收人设置为<$STR(N86)>级

GOTO @main

BREAK

#ELSEACT

Messagebox  请输入正确的等级

[@InPutInteger87]

#if

equal <$GUILDNAME> <$STR(A300)>

#ElseAct

MESSAGEBOX [操作失败失败]你已经失去了该操作的权限.请重新竞价

break

#if

large N87 0

CheckStringlength <$STR(N87)> < 4

CheckStringlength <$STR(N87)> > 0

#ACT

MOV <$STR(G306)> <$STR(N87)>

Messagebox  当前收人设置为<$STR(N87)>级

GOTO @main

BREAK

#ELSEACT

Messagebox  请输入正确的等级

;————————————————————————————————————-

[@竞标1]

#IF

CheckGameGold > 9

#ACT

#ELSEACT

messagebox  你的元宝不足10个.无法使用此功

break

#if

equal <$GUILDNAME> <$STR(A300)>

#act

messagebox  您已获得了公告牌位置①使用权.无需再次竞标.

break

#IF

CheckGameGold > <$STR(G300)>

#ACT

INC G300 10

GameGold – <$STR(G300)>

mov A300 <$GUILDNAME>

GuildNoticeMsg 249 251 行会招人:〖<$STR(A300)>〗行会的掌门「<$USERNAME>」出价<$STR(G300)>元宝,获得公告牌位置使用权!

mov A304 允许收人

GOTO @main

BREAK

#ELSEACT

MOV N$一号行会价格 <$STR(G300)>

inc N$一号行会价格 10

Messagebox  抱歉,本次竞拍需要<$STR(N$一号行会价格)>元宝,您的元宝不足

[@加入1]

#IF

HAVEGUILD

#ACT

Messagebox  您当前已经加入行会.请退出后在加入.

break

#if

equal <$STR(A300)>

#act

messagebox [提示]该位置暂无行会竞价!

break

#if

equal A304 拒绝收人

#act

messagebox  当前【<$STR(A300)>】行会拒绝收人

break

#if

CHECKLEVELEX < <$STR(G304)>

#act

messagebox  【<$STR(A300)>】行会收人需要人物达到<$STR(G304)>级

break

#if

#act

ADDGUILDMEMBER <$STR(A300)>

GuildNoticeMsg 55 251 【行会招人公告】玩家〖<$USERNAME>〗通过公告牌加入了【<$STR(A300)>】行会!

break

;————————————————————————————————————–

[@竞标2]

#if

equal <$GUILDNAME> <$STR(A301)>

#act

messagebox  您已获得了公告牌位置②使用权.无需再次竞标.

break

#IF

CheckGameGold > <$STR(G301)>

#ACT

INC G301 1000

GameGold – <$STR(G301)>

mov A301 <$GUILDNAME>

GuildNoticeMsg 249 251 行会招人:〖<$STR(A301)>〗行会的掌门「<$USERNAME>」出价<$STR(G301)>元宝,获得公告牌位置②使用权!

mov A305 允许收人

GOTO @main

BREAK

#ELSEACT

MOV N$第二行会价格 <$STR(G301)>

inc N$第二行会价格 1000

Messagebox  抱歉,本次竞拍需要<$STR(N$第二行会价格)>元宝,您的元宝不足

[@加入2]

#IF

HAVEGUILD

#ACT

Messagebox  您当前已经加入行会.请退出后在加入.

break

#if

equal <$STR(A301)>

#act

messagebox [提示]该位置暂无行会竞价!

break

#if

equal A305 拒绝收人

#act

messagebox  当前【<$STR(A301)>】行会拒绝收人

break

#if

CHECKLEVELEX < <$STR(G305)>

#act

messagebox  【<$STR(A301)>】行会收人需要人物达到<$STR(G305)>级

break

#if

#act

ADDGUILDMEMBER <$STR(A301)>

GuildNoticeMsg 55 251 【行会招人公告】玩家〖<$USERNAME>〗通过公告牌加入了【<$STR(A301)>】行会!

break

;—————————————————————————————–

[@竞标3]

#if

equal <$GUILDNAME> <$STR(A302)>

#act

messagebox  您已获得了公告牌位置③使用权.无需再次竞标.

break

#IF

CheckGameGold > <$STR(G302)>

#ACT

INC G302 1000

GameGold – <$STR(G302)>

mov A302 <$GUILDNAME>

GuildNoticeMsg 249 251 行会招人:〖<$STR(A302)>〗行会的掌门「<$USERNAME>」出价<$STR(G302)>元宝,获得公告牌位置③使用权!

mov A306 允许收人

GOTO @main

BREAK

#ELSEACT

MOV N$第三行会价格 <$STR(G302)>

inc N$第三行会价格 1000

Messagebox  抱歉,本次竞拍需要<$STR(N$第三行会价格)>元宝,您的元宝不足

[@加入3]

#IF

HAVEGUILD

#ACT

Messagebox  您当前已经加入行会.请退出后在加入.

break

#if

equal <$STR(A302)>

#act

messagebox [提示]该位置暂无行会竞价!

break

#if

equal A306 拒绝收人

#act

messagebox  当前【<$STR(A302)>】行会拒绝收人

break

#if

CHECKLEVELEX < <$STR(G306)>

#act

messagebox  【<$STR(A302)>】行会收人需要人物达到<$STR(G306)>级

break

#if

#act

ADDGUILDMEMBER <$STR(A302)>

GuildNoticeMsg 55 251 【行会招人公告】玩家〖<$USERNAME>〗通过公告牌加入了【<$STR(A302)>】行会!

break

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。