作者:广树时间:2018-08-26 17:05:36分类:服务器
之前在《手把手从零开始搭建《泰拉瑞亚》(Terraria)服务器》中教过最基本的泰拉瑞亚开服方法。
但是这个方法有个问题就是可能会有人开大号来捣乱。
所以这个时候就可以用Tshock这个开服工具来强制开荒。
1.下载
可以直接从官方的github上下载最新的版本。
地址:https://github.com/Pryaxis/TShock/releases
2.解压到服务器上并运行一次
我这里服务器用的是windows 2008 r2 ,所以能直接运行TerrariaServer.exe。
如果缺少运行库可以下载一些一键运行库安装的程序,这些网上很多就不列出来了。
3.配置
运行完生成地图后会发现多了一个tshock文件夹。
这个时候可以用记事本打开config.json和sscconfig.json这两个文件夹。
config.json文件对应的是地图设置
下面参考百度贴吧的资料
{ "InvasionMultiplier": 1,//入侵规模,计算公式:入侵怪物数量=100+(X*HP>200的玩家) "DefaultMaximumSpawns": 5,//怪物刷新最大数值(设置越高怪物越多) "DefaultSpawnRate": 600,//刷新怪物时间间隔,数值越大刷新越慢 "ServerPort": 7777,//服务器端口【默认】 "EnableWhitelist": false,//是否开启白名单【true代表是,false代表否,以下都是】 "InfiniteInvasion": false,//是否无限制怪物入侵【开启后使用命令召唤的怪物入侵将达到200万只左右】 "PvPMode": "normal",//PVP模式【normal表示可以正常使用PVP,always表示强制PVP,disabled表示强制PVE】 "SpawnProtection": false,//是否保护出生点【强烈建议设置】 "SpawnProtectionRadius": 10,//出生点保护范围【一格一个】 "MaxSlots": 6,//服务器人数上限 "RangeChecks": true,//不明 "DisableBuild": false,//是否禁止建筑【开启后将无法破坏地图里任何东西】 "SuperAdminChatRGB": [ 255.0, 0.0, 0.0 ],//GameMaster发言颜色【设置与人物初始设置颜色数值相同】 "SuperAdminChatPrefix": "[GM]",//GameMaster发言前缀(位于名字之前) "SuperAdminChatSuffix": "~~",//GameMaster发言后缀(位于名字之后) "BackupInterval": 0,//地图备份时间间隔/分钟 "BackupKeepFor": 60,//备份的地图保留时间 "RememberLeavePos": false,//记录离开位置,再次登录服务器将传送到上一次离开服务器的位置 "HardcoreOnly": false,//仅允许困难模式的玩家进入服务器 "MediumcoreOnly": false,//仅允许中等模式的玩家进入服务器 "KickOnMediumcoreDeath": false,//移除(kick)死亡的中等难度的玩家 "BanOnMediumcoreDeath": false,//封禁(ban)死亡的中等难度的玩家 "AutoSave": true,//是否自动保存地图,强烈建议开启 "AnnounceSave": true,//自动保存的时候是否进行提示 "MaximumLoginAttempts": 3,//登录次数尝试最大限制,尝试次数过多将被移除(kick)服务器 "RconPassword": "",//没用就对了,建议不要改动 "RconPort": 7777,//同上 "ServerName": "Terraria Small Team",//服务器名称 "UseServerName": true,//是否使用服务器名称 "MasterServer": "127.0.0.1",//本机IP连接地址,改动后自己可能进不去服务器 "StorageType": "sqlite",//数据库类型,建议不要改动 "MySqlHost": "localhost:3306",//下面的都没用,建议不要改动 "MySqlDbName": "", "MySqlUsername": "", "MySqlPassword": "", "MediumcoreBanReason": "Death results in a ban",//中等难度的玩家被封禁(ban)时的理由 "MediumcoreKickReason": "Death results in a kick",//中等难度的玩家被移除(kick)时的理由 "EnableDNSHostResolution": false,//不明,大概和网络有关 "EnableIPBans": true,//是否可以封禁(ban)ip地址 "EnableUUIDBans": true,//是否开启封禁(ban)UUID "EnableBanOnUsernames": false,//是否可以封禁(ban)用户名 "DefaultRegistrationGroupName": "default",//注册用户的默认用户组【如不了解组的规划请暂时不要改动】 "DefaultGuestGroupName": "guest",//未注册用户的默认用户组 "DisableSpewLogs": true,//禁止将服务器日志展示给玩家 "HashAlgorithm": "sha512",//不明 "BufferPackets": true,//不明,大概和buff有关 "ServerFullReason": "Sorry,you can`t into the server,because the Server is full",//因服务器人满而被拒绝进入服务器的提示 "WhitelistKickReason": "You are not on the whitelist.",//因不在白名单而被拒绝进入服务器的提示 "ServerFullNoReservedReason": "Server is full. No reserved slots open.",//因服务器人满并预留给管理员的位置也满的情况下被拒绝进入服务器的提示 "SaveWorldOnCrash": true,//服务器崩溃时是否及时保存地图 "EnableGeoIP": false,//显示玩家IP的所在地【有可能侵犯他人隐私,建议不要开启】 "EnableTokenEndpointAuthentication": false,//不明QAQ "RestApiEnabled": false,//上同下 "RestApiPort": 7878,//呵呵 "DisableTombstones": true,//是否移除墓碑 "DisplayIPToAdmins": false,//是否将玩家的IP地址展示给管理员 "KickProxyUsers": true,//移除(kick)使用外挂的玩家 "DisableHardmode": false,//禁止让世界进入困难模式(即肉山后) "DisableDungeonGuardian": false,//禁止攻打地牢守护者,与old man对话将会被立即传送到出生点 "DisableClownBombs": false,//禁止小丑往出生点扔炸弹【大概】 "DisableSnowBalls": false,//禁止使用雪球 "ChatFormat": "{1}{2}{3}: {4}",//聊天格式【{1}为前缀,{2}为玩家名称,{3}为后缀,{4}为聊天内容】 "ChatAboveHeadsFormat": "{2}",//在玩家头顶显示的内容【参考上一条】 "ForceTime": "normal",//THE WORLD!【normal表示昼夜正常交替,day表示出现极昼现象,night表示出现极夜现象】 "TileKillThreshold": 60,//一秒挖掘,破坏物块的上限,否则将被冻结【可以用来检测外挂,下同】 "TilePlaceThreshold": 20,//一秒摆放物块的上限 "TileLiquidThreshold": 2,//一秒释放液体的上限 "ProjectileThreshold": 50,//一秒使用弹药数量的上限【包括魔法攻击】 "ProjIgnoreShrapnel": true,//计算弹药使用上限是否忽略爆炸产生的碎片 "RequireLogin": false,//是否开启强制注册登录 "DisableInvisPvP": false,//PVP状态下是否使隐身药水失效 "MaxRangeForDisabled": 10,//被冻结后最大移动距离 "ServerPassword": "",//服务器的密码,不设置表示无密码 "RegionProtectChests": true,//领地内的箱子是否受到保护,PVE服务器强烈建议设置成true "DisableLoginBeforeJoin": false,//大概意思是踢出登录失败的玩家? "DisableUUIDLogin": false,//是否禁止UUID登录 "KickEmptyUUID": false,//是否移除(kick)空UUID的玩家 "AllowRegisterAnyUsername": false,//是否允许注册任何用户名,PVE服务器强烈建议设置成false "AllowLoginAnyUsername": true,//是否允许登录任何用户名 "MaxDamage": 175,//玩家所受到的最大伤害点数,超过这个数值会被冻结 "MaxProjDamage": 175,//玩家受到弹药的最大伤害点数,同上 "IgnoreProjUpdate": false,//不明,下同 "IgnoreProjKill": false,//下同 "IgnoreNoClip": false,//下不同 "AllowIce": true,//是否禁止冰的扩散【这啥?】 "AllowCrimsonCreep": false,//是否允许血腥之地扩散,PVE强烈建议设置成false,下同 "AllowCorruptionCreep": false,//是否允许腐化之地扩散 "AllowHallowCreep": false,//是否允许神圣之地扩散 "StatueSpawn200": 3,//不明,但是可能和出生点有关,建议不要改动,下同 "StatueSpawn600": 6,//赞成上一条 "StatueSpawnWorld": 10,//雕像召唤物品的最高上限 "PreventBannedItemSpawn": false,//是否禁止用item指令和give指令获得被封禁(ban)掉的物品 "PreventDeadModification": true,//不明真相的吃瓜群众 "EnableChatAboveHeads": false,//楼上带我一个 "ForceXmas": false,//是否开启圣诞节 "AllowAllowedGroupsToSpawnBannedItems": false,//是否允许有权限使用被封禁(ban)物品的用户组使用被封禁(ban)的物品 "IgnoreChestStacksOnLoad": false,//加载地图的时候是否检测箱子里物品堆叠上线 "LogPath": "tshock",//日志文件存放路径 "PreventInvalidPlaceStyle": true,//不明 "BroadcastRGB": [ 127.0, 255.0, 212.0 ],//系统广播颜色,和上述GameMaster的设置颜色方式一样 "RestUseNewPermissionModel": true,//是否刷新的时候使用新的模特【?】 "ApplicationRestTokens": {},//不明 "ReservedSlots": 3,//预留给管理员的通道数量 "LogRest": false,//日志是否刷新【?】 "RespawnSeconds": 3,//玩家死亡后复活时间/秒 "TilePaintThreshold": 15,//一秒刷漆上限 "EnableMaxBytesInBuffer": false,//不懂 "MaxBytesInBuffer": 5242880,//还是不懂 "ForceHalloween": false,//是否开启万圣节 "AllowCutTilesAndBreakables": false, "CommandSpecifier": "/"//指令标志,在聊天框里首位输入该符号视为指令 }
然后我的设置是:
{ "InvasionMultiplier": 1, "DefaultMaximumSpawns": 10, "DefaultSpawnRate": 600, "ServerPort": 7777, "EnableWhitelist": false, "InfiniteInvasion": false, "PvPMode": "normal", "SpawnProtection": false, "SpawnProtectionRadius": 10, "MaxSlots": 32, "RangeChecks": true, "DisableBuild": false, "SuperAdminChatRGB": [ 255, 0, 0 ], "SuperAdminChatPrefix": "(Admin) ", "SuperAdminChatSuffix": "", "BackupInterval": 0, "BackupKeepFor": 60, "RememberLeavePos": false, "HardcoreOnly": false, "MediumcoreOnly": false, "KickOnMediumcoreDeath": false, "BanOnMediumcoreDeath": false, "AutoSave": true, "AnnounceSave": true, "MaximumLoginAttempts": 3, "ServerName": "", "UseServerName": false, "StorageType": "sqlite", "MySqlHost": "localhost:3306", "MySqlDbName": "", "MySqlUsername": "", "MySqlPassword": "", "MediumcoreBanReason": "Death results in a ban", "MediumcoreKickReason": "Death results in a kick", "EnableIPBans": true, "EnableUUIDBans": true, "EnableBanOnUsernames": false, "DefaultRegistrationGroupName": "default", "DefaultGuestGroupName": "guest", "DisableSpewLogs": true, "DisableSecondUpdateLogs": false, "HashAlgorithm": "sha512", "ServerFullReason": "Server is full", "WhitelistKickReason": "You are not on the whitelist.", "ServerFullNoReservedReason": "Server is full. No reserved slots open.", "SaveWorldOnCrash": true, "EnableGeoIP": false, "EnableTokenEndpointAuthentication": false, "RestApiEnabled": false, "RestApiPort": 7878, "DisableTombstones": true, "DisplayIPToAdmins": false, "KickProxyUsers": true, "DisableHardmode": false, "DisableDungeonGuardian": false, "DisableClownBombs": false, "DisableSnowBalls": false, "ChatFormat": "{1}{2}{3}: {4}", "ChatAboveHeadsFormat": "{2}", "ForceTime": "normal", "TileKillThreshold": 240, "TilePlaceThreshold": 20, "TileLiquidThreshold": 15, "ProjectileThreshold": 200, "HealOtherThreshold": 200, "ProjIgnoreShrapnel": true, "RequireLogin": false, "DisableInvisPvP": false, "MaxRangeForDisabled": 10, "ServerPassword": "", "RegionProtectChests": false, "RegionProtectGemLocks": true, "DisableLoginBeforeJoin": false, "DisableUUIDLogin": false, "KickEmptyUUID": false, "AllowRegisterAnyUsername": false, "AllowLoginAnyUsername": true, "MaxDamage": 1175, "MaxProjDamage": 1175, "KickOnDamageThresholdBroken": false, "IgnoreProjUpdate": false, "IgnoreProjKill": false, "IgnoreNoClip": false, "AllowIce": false, "AllowCrimsonCreep": true, "AllowCorruptionCreep": true, "AllowHallowCreep": true, "StatueSpawn200": 3, "StatueSpawn600": 6, "StatueSpawnWorld": 10, "PreventBannedItemSpawn": false, "PreventDeadModification": true, "EnableChatAboveHeads": false, "ForceXmas": false, "AllowAllowedGroupsToSpawnBannedItems": false, "IgnoreChestStacksOnLoad": false, "LogPath": "tshock", "UseSqlLogs": false, "RevertToTextLogsOnSqlFailures": 10, "PreventInvalidPlaceStyle": true, "BroadcastRGB": [ 127, 255, 212 ], "ApplicationRestTokens": {}, "ReservedSlots": 20, "LogRest": false, "RespawnSeconds": 5, "RespawnBossSeconds": 10, "TilePaintThreshold": 15, "ForceHalloween": false, "AllowCutTilesAndBreakables": false, "CommandSpecifier": "/", "CommandSilentSpecifier": ".", "KickOnHardcoreDeath": false, "BanOnHardcoreDeath": false, "HardcoreBanReason": "Death results in a ban", "HardcoreKickReason": "Death results in a kick", "AnonymousBossInvasions": true, "MaxHP": 500, "MaxMP": 200, "SaveWorldOnLastPlayerExit": true, "BCryptWorkFactor": 7, "MinimumPasswordLength": 4, "RESTMaximumRequestsPerInterval": 5, "RESTRequestBucketDecreaseIntervalMinutes": 1, "RESTLimitOnlyFailedLoginRequests": true, "ShowBackupAutosaveMessages": true }
sscconfig.json对应的是强制开荒的设置:
{ "Enabled": true,//是否开启强制开荒 "ServerSideCharacterSave": 1,//多久自动保存一次玩家数据 "LogonDiscardThreshold": 250,//开启强制开荒后,检测到玩家背包里有违规物品时将提示 "StartingHealth": 100,//初始生命 "StartingMana": 20,//初始魔力 "StartingInventory": [//初始道具 { "netID": -15, "prefix": 0, "stack": 1 }, { "netID": -13, "prefix": 0, "stack": 1 }, { "netID": -16, "prefix": 0, "stack": 1 } ] }
我的设置:
{ "Enabled": true, "ServerSideCharacterSave": 1, "LogonDiscardThreshold": 250, "StartingHealth": 100, "StartingMana": 20, "StartingInventory": [ { "netID": -15, "prefix": 0, "stack": 1 }, { "netID": -13, "prefix": 0, "stack": 1 }, { "netID": -16, "prefix": 0, "stack": 1 } ] }
注意以上JSON不要把注释复制进去。
4.配置完后重新启动服务
5.一些有用的管理员操作
给与玩家临时管理员权限,密码在authcode.txt中
/auth 密码
给与玩家使用虫洞药水的权限
/group addperm default tshock.tp.wormhole
给与玩家移动NPC的权限
/group addperm default tshock.world.movenpc
给与玩家使用召唤道具召唤BOSS权限
/group addperm default tshock.npc.summonboss
给与玩家召唤入侵的权限
/group addperm default tshock.npc.startinvasion
给与玩家召唤军团的权限
/group addperm default tshock.npc.startdd2
允许使用传送法杖
/group addperm default tshock.tp.rod
最后一些本次开荒的截图: