tshock消息及控制
关闭服务器:
TShock.Utils.StopServer(bool<地图保存选项>,"服务器已关闭");
返回地图名称:
Main.worldName();
修改地图名称:
Main.instance.SetWorldName("wordname");
修改地图类型:
Main.GameMode="0-普通"/"1-专家"/"2-大师"/"3-旅途";
修改地图困难模式:
Main.hardMode=true/false;
断开用户连接:
plr.Disconnect(reason);
驱逐用户:
plr.kick(reason);
获取用户所选物品名称:
args.Player.TPlayer.inventory[args.SelectedItem].Name;
弹药
Terraria.Lang.GetProjectileName(弹药ID).ToString();
获取系统物品名
Terraria.Lang.GetItemNameValue(物品ID);
获取用户账户ID
TShock.UserAccounts.GetUserAccountByName(plr_name).ID
用户组切换
TShock.UserAccounts.SetUserGroup( TShock.UserAccounts.GetUserAccountByName(TShock.Players[args.Who].Name), "vip");
获取用户组名
args.Player.Group.Name;
获取用户名
TShock.Players[args.Who].Name
用户是否登录
plr.IsLoggedIn;
系统广播(含控制台):
TShock.Utils.Broadcast("广播内容",Color.Yellow);
全员消息(不含控制台):
TSPlayer.All.SendInfoMessage(message.Text);
头顶显示信息:
plr.SendData(PacketTypes.CreateCombatTextExtended, string.Format("显示文本"), (int)Color.Gold.PackedValue, plr.X, plr.Y);
执行命令:
Commands.HandleCommand("/help");
玩家当前位置:
tsplayer.TileX;tsplayer.TileY;
录入日志:
TShock.Log.ConsoleInfo("日志");
向用户发出信息:
args.Player.SendMessage("向用户发出信息");
传送用户:
plr.Teleport(Main.spawnTileX * 16, (Main.spawnTileY - 4) * 16, 1);
杀死用户:
tsplayer.KillPlayer();
石化用户:
player.Disable($"持有禁用物品: {player.TPlayer.inventory[player.TPlayer.selectedItem].Name}", flags);
冻结
player.SetBuff(BuffID.Frozen, 300, true);
石化
player.SetBuff(BuffID.Stoned, 300, true);
缠住
player.SetBuff(BuffID.Webbed, 300, true);
窒息
plr.SetBuff(BuffID.Suffocation, 300, true);
获取当前血量
TShock.Players[args.Who].TPlayer.statLife;
设置血量
NetMessage.SendData((int)PacketTypes.PlayerHp, -1, -1, NetworkText.FromLiteral(""), plr.Index);
获取物品名称:
Terraria.Lang.GetItemNameValue(i)
获取全部在线用户:
foreach (TSPlayer tsplayer in TShock.Players){if (tsplayer != null){Console.WriteLine(tsplayer.Name);}}
扫描二维码推送至手机访问