fix npc home removal. rename something related.
This commit is contained in:
parent
ae87f242d7
commit
e39af6f917
3 changed files with 18 additions and 10 deletions
|
|
@ -6,6 +6,7 @@ This is the rolling changelog for TShock for Terraria. Use past tense when addin
|
|||
* Update for OTAPI 2.0.0.36 and Terraria 1.4.0.4. (@hakusaro, @Patrikkk, @DeathCradle)
|
||||
* Fixed /wind command. (@AxeelAnder)
|
||||
* Fixed NPC buff bouncer. (@AxeelAnder)
|
||||
* Fixed players are unable to remove an NPC. Change `byte NPCHomeChangeEventArgs.Homeless` to `HouseholdStatus NPCHomeChangeEventArgs.HouseholdStatus`. (@AxeelAnder)
|
||||
|
||||
## TShock 4.4.0 (Pre-release 7 (Entangled))
|
||||
* Fixed bed spawn issues when trying to remove spawn point in SSC. (@Olink)
|
||||
|
|
|
|||
|
|
@ -1547,7 +1547,6 @@ namespace TShockAPI
|
|||
int id = args.ID;
|
||||
short x = args.X;
|
||||
short y = args.Y;
|
||||
byte homeless = args.Homeless;
|
||||
|
||||
if (!args.Player.HasBuildPermission(x, y))
|
||||
{
|
||||
|
|
@ -1558,7 +1557,8 @@ namespace TShockAPI
|
|||
return;
|
||||
}
|
||||
|
||||
if (!args.Player.IsInRange(x, y))
|
||||
// When kicking out an npc, x and y in args are 0, we shouldn't check range at this case
|
||||
if (args.HouseholdStatus != HouseholdStatus.Homeless && !args.Player.IsInRange(x, y))
|
||||
{
|
||||
args.Player.SendData(PacketTypes.UpdateNPCHome, "", id, Main.npc[id].homeTileX, Main.npc[id].homeTileY,
|
||||
Convert.ToByte(Main.npc[id].homeless));
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ namespace TShockAPI
|
|||
{ PacketTypes.NpcSpecial, HandleSpecial },
|
||||
{ PacketTypes.NpcAddBuff, HandleNPCAddBuff },
|
||||
{ PacketTypes.PlayerAddBuff, HandlePlayerAddBuff },
|
||||
{ PacketTypes.UpdateNPCHome, UpdateNPCHome },
|
||||
{ PacketTypes.UpdateNPCHome, HandleUpdateNPCHome },
|
||||
{ PacketTypes.SpawnBossorInvasion, HandleSpawnBoss },
|
||||
{ PacketTypes.PaintTile, HandlePaintTile },
|
||||
{ PacketTypes.PaintWall, HandlePaintWall },
|
||||
|
|
@ -1307,6 +1307,13 @@ namespace TShockAPI
|
|||
return args.Handled;
|
||||
}
|
||||
|
||||
public enum HouseholdStatus : byte
|
||||
{
|
||||
None = 0,
|
||||
Homeless = 1,
|
||||
HasRoom = 2,
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// For use in a NPCHome event
|
||||
/// </summary>
|
||||
|
|
@ -1325,15 +1332,15 @@ namespace TShockAPI
|
|||
/// </summary>
|
||||
public short Y { get; set; }
|
||||
/// <summary>
|
||||
/// ByteBool homeless
|
||||
/// HouseholdStatus of the NPC
|
||||
/// </summary>
|
||||
public byte Homeless { get; set; }
|
||||
public HouseholdStatus HouseholdStatus { get; set; }
|
||||
}
|
||||
/// <summary>
|
||||
/// NPCHome - Called when an NPC's home is changed
|
||||
/// </summary>
|
||||
public static HandlerList<NPCHomeChangeEventArgs> NPCHome = new HandlerList<NPCHomeChangeEventArgs>();
|
||||
private static bool OnUpdateNPCHome(TSPlayer player, MemoryStream data, short id, short x, short y, byte homeless)
|
||||
private static bool OnUpdateNPCHome(TSPlayer player, MemoryStream data, short id, short x, short y, byte houseHoldStatus)
|
||||
{
|
||||
if (NPCHome == null)
|
||||
return false;
|
||||
|
|
@ -1345,7 +1352,7 @@ namespace TShockAPI
|
|||
ID = id,
|
||||
X = x,
|
||||
Y = y,
|
||||
Homeless = homeless,
|
||||
HouseholdStatus = (HouseholdStatus) houseHoldStatus,
|
||||
};
|
||||
NPCHome.Invoke(null, args);
|
||||
return args.Handled;
|
||||
|
|
@ -2763,14 +2770,14 @@ namespace TShockAPI
|
|||
return true;
|
||||
}
|
||||
|
||||
private static bool UpdateNPCHome(GetDataHandlerArgs args)
|
||||
private static bool HandleUpdateNPCHome(GetDataHandlerArgs args)
|
||||
{
|
||||
var id = args.Data.ReadInt16();
|
||||
var x = args.Data.ReadInt16();
|
||||
var y = args.Data.ReadInt16();
|
||||
var homeless = args.Data.ReadInt8();
|
||||
var householdStatus = args.Data.ReadInt8();
|
||||
|
||||
if (OnUpdateNPCHome(args.Player, args.Data, id, x, y, homeless))
|
||||
if (OnUpdateNPCHome(args.Player, args.Data, id, x, y, householdStatus))
|
||||
return true;
|
||||
|
||||
if (!args.Player.HasPermission(Permissions.movenpc))
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue