当前位置 : 745v传奇网 | 传奇教程 | 

传奇GOM引擎行会竞标与收人脚本详解:打造专属行会招募系统

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

行会竞标与收人脚本配置
基本脚本结构:

使用#IF和#ACT语句来设置条件和执行动作。
通过MOV语句来更新行会状态和竞标价格。
使用GuildNoticeMsg来发送行会通知。
行会竞标:

行会竞标分为三个位置,每个位置都可以由不同的行会竞得。
竞标价格每次增加固定数额,竞标成功后,行会名称和竞标价格会更新。
行会收人:

行会收人状态可以是允许或拒绝。
收人状态和等级要求可以通过脚本设置和修改。
脚本示例:

[@main]
#IFequalA304允许收人
#ACTMOVS$收人状态1<允许加入/SCOLOR=250>
#IFequalA304拒绝收人
#ACTMOVS$收人状态1<拒绝加入/SCOLOR=249>
Copy
客户端与服务器配置
客户端配置:

client.ini文件用于设置客户端显示选项,如NPC名字是否为粗体。
增加音量调节功能和中文状态切换。
服务器配置:

服务器端需要设置相应的数据文件和脚本文件。
使用loginserver配置文件来设置服务器列表和链接。
自定义扩展
自定义素材与颜色:

通过CustomItemNameColors.txt和CustomMonNameColors.txt文件来自定义物品和怪物的名字颜色。
使用data\\~cui.txt文件来定义自定义素材列表。
自定义光柱:

通过data\\~gz.wzl文件来自定义光柱效果。
脚本逻辑与功能
竞标逻辑:

玩家可以通过点击界面上的按钮来参与竞标。
竞标成功后,行会掌门可以设置收人状态和等级要求。
收人逻辑:

玩家可以通过点击界面上的按钮来申请加入行会。
行会掌门可以允许或拒绝玩家的加入申请。
脚本示例:

[@竞标1]
#IFCheckGameGold>9
#ACT...
#ELSEACTmessagebox你的元宝不足10个.无法使用此功能

完整脚本:

[@main]
#IF
#ACT
MOVS$一号行会竞标<我要加入该行会/@加入1>
MOVS$第二行会竞标<加入行会/@加入2>
MOVS$第三行会竞标<加入行会/@加入3>
MOVS$等级要求1<$STR(G304)>
MOVS$等级要求2<$STR(G305)>
MOVS$等级要求3<$STR(G306)>

#IF
equalA304
#ACT
MOVS$收人状态1-< /SCOLOR=125>

#IF
equalA305
#ACT
MOVS$收人状态2-< /SCOLOR=125>

#IF
equalA306
#ACT
MOVS$收人状态3-< /SCOLOR=125>

#IF
equalA304允许收人
#ACT
MOVS$收人状态1<允许加入/SCOLOR=250>

#IF
equalA305允许收人
#ACT
MOVS$收人状态2<允许加入/SCOLOR=250>

#IF
equalA306允许收人
#ACT
MOVS$收人状态3<允许加入/SCOLOR=250>

#IF
equalA304拒绝收人
#ACT
MOVS$收人状态1<拒绝收人/SCOLOR=249>

#IF
equalA305拒绝收人
#ACT
MOVS$收人状态2<拒绝收人/SCOLOR=249>

#IF
equalA306拒绝收人
#ACT
MOVS$收人状态3<拒绝收人/SCOLOR=249>

#IF
#ACT
SetStringBlankS$收人状态1211
SetStringBlankS$收人状态2211

#IF
equalA300
#ACT
MOVS$行会名字1-暂无行会-
SetStringBlankS$行会名字1201
#ELSEACT
MOVS$行会名字1<$STR(A300)>
SetStringBlankS$行会名字1201

#IF
equalA301
#ACT
MOVS$行会名字2-暂无行会-
SetStringBlankS$行会名字2201
#ELSEACT
MOVS$行会名字2<$STR(A301)>
SetStringBlankS$行会名字2201

#IF
equalA302
#ACT
MOVS$行会名字3-暂无行会-
#ELSEACT
MOVS$行会名字3<$STR(A302)>

#IF
#ACT
MOVS$竞标价格1<$STR(G300)>
MOVS$竞标价格2<$STR(G301)>
MOVS$竞标价格3<$STR(G302)>

SetStringBlankS$竞标价格1161
SetStringBlankS$竞标价格2161

#IF
ISGUILDMASTER
#ACT
MOVS$一号行会竞标<我要出价竞标/@竞标1>
MOVS$第二行会竞标<出价竞标/@竞标2>
MOVS$第三行会竞标<出价竞标/@竞标3>

#IF
equalA300
#ACT
MOVS$行会名字1-暂无行会-
SetStringBlankS$行会名字1201
#ELSEACT
MOVS$行会名字1<$STR(A300)>
SetStringBlankS$行会名字1201

#IF
equalA301
#ACT
MOVS$行会名字2-暂无行会-
SetStringBlankS$行会名字2201
#ELSEACT
MOVS$行会名字2<$STR(A301)>
SetStringBlankS$行会名字2201

#IF
equalA302
#ACT
MOVS$行会名字3-暂无行会-
#ELSEACT
MOVS$行会名字3<$STR(A302)>

#IF
#ACT
MOVS$竞标价格1<$STR(G300)>
MOVS$竞标价格2<$STR(G301)>
MOVS$竞标价格3<$STR(G302)>

SetStringBlankS$竞标价格1161
SetStringBlankS$竞标价格2161

#IF
ISGUILDMASTER
equal<$GUILDNAME><$STR(A300)>
#ACT
MOVS$等级要求1<$STR(G304)><设置/@@InPutInteger85>

#IF
ISGUILDMASTER
equal<$GUILDNAME><$STR(A301)>
#ACT
MOVS$等级要求2<$STR(G305)><设置/@@InPutInteger86>

#IF
ISGUILDMASTER
equal<$GUILDNAME><$STR(A302)>
#ACT
MOVS$等级要求3<$STR(G306)><设置/@@InPutInteger87>

#IF
ISGUILDMASTER
equalA304允许收人
equal<$GUILDNAME><$STR(A300)>
#ACT
MOVS$收人状态1<允许/SCOLOR=250><设置/@收人1>

#IF
ISGUILDMASTER
equalA305允许收人
equal<$GUILDNAME><$STR(A301)>
#ACT
MOVS$收人状态2<允许/SCOLOR=250><设置/@收人2>

#IF
ISGUILDMASTER
equalA306允许收人
equal<$GUILDNAME><$STR(A302)>
#ACT
MOVS$收人状态3<允许/SCOLOR=250><设置/@收人3>

#IF
ISGUILDMASTER
equalA304拒绝收人
equal<$GUILDNAME><$STR(A300)>
#ACT
MOVS$收人状态1<禁止/SCOLOR=249><设置/@收人1>

#IF
ISGUILDMASTER
equalA305拒绝收人
equal<$GUILDNAME><$STR(A301)>
#ACT
MOVS$收人状态2<禁止/SCOLOR=249><设置/@收人2>

#IF
ISGUILDMASTER
equalA306拒绝收人
equal<$GUILDNAME><$STR(A302)>
#ACT
MOVS$收人状态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
SetStringBlankS$收人状态1201
SetStringBlankS$收人状态2201
SetStringBlankS$等级要求1351
SetStringBlankS$等级要求2361
BREAK



#IF
ISGUILDMASTER
equal<$GUILDNAME><$STR(A300)>
#ACT
SetStringBlankS$收人状态1201
SetStringBlankS$收人状态2201
SetStringBlankS$等级要求1351
SetStringBlankS$等级要求2171
BREAK

#IF
ISGUILDMASTER
equal<$GUILDNAME><$STR(A301)>
#ACT
SetStringBlankS$收人状态1201
SetStringBlankS$收人状态2201
SetStringBlankS$等级要求1161
SetStringBlankS$等级要求2361
BREAK

#IF
#ACT
SetStringBlankS$收人状态1201
SetStringBlankS$收人状态2201
SetStringBlankS$等级要求1161
SetStringBlankS$等级要求2171
BREAK

[@收人3]
#if
equalA306允许收人
#act
messagebox\\\您将关闭行会招募状态.确定关闭么?@禁止3@取消
#elseact
messagebox\\\您将开启行会招募状态.确定开启么?@允许3@取消

[@允许3]
#act
MOVA306允许收人
Messagebox 当前收人设置为允许收人
goto@main

[@禁止3]
#act
MOVA306拒绝收人
Messagebox 当前收人设置为拒绝收人
goto@main

[@收人2]
#if
equalA305允许收人
#act
messagebox\\\您将关闭行会招募状态.确定关闭么?@禁止2@取消
#elseact
messagebox\\\您将开启行会招募状态.确定开启么?@允许2@取消

[@允许2]
#act
MOVA305允许收人
Messagebox 当前收人设置为允许收人
goto@main

[@禁止2]
#act
MOVA305拒绝收人
Messagebox 当前收人设置为拒绝收人
goto@main

[@收人1]
#if
equal<$GUILDNAME><$STR(A300)>
#ElseAct
MESSAGEBOX[操作失败失败]你已经失去了该操作的权限.请重新竞价
break


#if
equalA304允许收人
#act
messagebox\\\您将关闭行会招募状态.确定关闭么?@禁止1@取消
#elseact
messagebox\\\您将开启行会招募状态.确定开启么?@允许1@取消

[@允许1]
#if
equal<$GUILDNAME><$STR(A300)>
#ElseAct
MESSAGEBOX[操作失败失败]你已经失去了该操作的权限.请重新竞价
break

#IF
#act
MOVA304允许收人
Messagebox 当前收人设置为允许收人
goto@main

[@禁止1]
#if
equal<$GUILDNAME><$STR(A300)>
#ElseAct
MESSAGEBOX[操作失败失败]你已经失去了该操作的权限.请重新竞价
break

#IF
#act
MOVA304拒绝收人
Messagebox 当前收人设置为拒绝收人
goto@main

[@InPutInteger85]
#if
equal<$GUILDNAME><$STR(A300)>
#ElseAct
MESSAGEBOX[操作失败失败]你已经失去了该操作的权限.请重新竞价
break

#if
largeN850
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
largeN860
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
largeN870
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
INCG30010
GameGold-<$STR(G300)>
movA300<$GUILDNAME>
GuildNoticeMsg249251行会招人:〖<$STR(A300)>〗行会的掌门「<$USERNAME>」出价<$STR(G300)>元宝,获得公告牌位置使用权!
movA304允许收人
GOTO@main
BREAK
#ELSEACT
MOVN$一号行会价格<$STR(G300)>
incN$一号行会价格10
Messagebox 抱歉,本次竞拍需要<$STR(N$一号行会价格)>元宝,您的元宝不足

[@加入1]
#IF
HAVEGUILD
#ACT
Messagebox 您当前已经加入行会.请退出后在加入.
break

#if
equal<$STR(A300)>
#act
messagebox[提示]该位置暂无行会竞价!
break

#if
equalA304拒绝收人
#act
messagebox 当前【<$STR(A300)>】行会拒绝收人
break

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

#if
#act
ADDGUILDMEMBER<$STR(A300)>
GuildNoticeMsg55251【行会招人公告】玩家〖<$USERNAME>〗通过公告牌加入了【<$STR(A300)>】行会!
break

;--------------------------------------------------------------------------------------------------------------

[@竞标2]

#if
equal<$GUILDNAME><$STR(A301)>
#act
messagebox 您已获得了公告牌位置②使用权.无需再次竞标.
break


#IF
CheckGameGold><$STR(G301)>
#ACT
INCG3011000
GameGold-<$STR(G301)>
movA301<$GUILDNAME>
GuildNoticeMsg249251行会招人:〖<$STR(A301)>〗行会的掌门「<$USERNAME>」出价<$STR(G301)>元宝,获得公告牌位置②使用权!
movA305允许收人
GOTO@main
BREAK
#ELSEACT
MOVN$第二行会价格<$STR(G301)>
incN$第二行会价格1000
Messagebox 抱歉,本次竞拍需要<$STR(N$第二行会价格)>元宝,您的元宝不足

[@加入2]
#IF
HAVEGUILD
#ACT
Messagebox 您当前已经加入行会.请退出后在加入.
break

#if
equal<$STR(A301)>
#act
messagebox[提示]该位置暂无行会竞价!
break

#if
equalA305拒绝收人
#act
messagebox 当前【<$STR(A301)>】行会拒绝收人
break

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

#if
#act
ADDGUILDMEMBER<$STR(A301)>
GuildNoticeMsg55251【行会招人公告】玩家〖<$USERNAME>〗通过公告牌加入了【<$STR(A301)>】行会!
break

;-----------------------------------------------------------------------------------------

[@竞标3]

#if
equal<$GUILDNAME><$STR(A302)>
#act
messagebox 您已获得了公告牌位置③使用权.无需再次竞标.
break

#IF
CheckGameGold><$STR(G302)>
#ACT
INCG3021000
GameGold-<$STR(G302)>
movA302<$GUILDNAME>
GuildNoticeMsg249251行会招人:〖<$STR(A302)>〗行会的掌门「<$USERNAME>」出价<$STR(G302)>元宝,获得公告牌位置③使用权!
movA306允许收人
GOTO@main
BREAK
#ELSEACT
MOVN$第三行会价格<$STR(G302)>
incN$第三行会价格1000
Messagebox 抱歉,本次竞拍需要<$STR(N$第三行会价格)>元宝,您的元宝不足

[@加入3]
#IF
HAVEGUILD
#ACT
Messagebox 您当前已经加入行会.请退出后在加入.
break

#if
equal<$STR(A302)>
#act
messagebox[提示]该位置暂无行会竞价!
break

#if
equalA306拒绝收人
#act
messagebox 当前【<$STR(A302)>】行会拒绝收人
break

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

#if
#act
ADDGUILDMEMBER<$STR(A302)>
GuildNoticeMsg55251【行会招人公告】玩家〖<$USERNAME>〗通过公告牌加入了【<$STR(A302)>】行会!
break
[顶部]