mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-06-10 14:34:32 +02:00
Added Tug of the Whorl. Fixed up prereqs not working when using debug command. Fixed giveexp command. Added seq constants.
This commit is contained in:
parent
5c49563790
commit
90115f7c83
11 changed files with 435 additions and 15 deletions
|
@ -1476,7 +1476,9 @@ namespace Meteor.Map.Actors
|
|||
|
||||
if (!isSilent)
|
||||
{
|
||||
SendGameMessage(Server.GetWorldManager().GetActor(), 25224, 0x20, (object)questScenario[freeSlot].GetQuestId()); // "<Quest> accepted."
|
||||
WorldMaster worldMaster = Server.GetWorldManager().GetActor();
|
||||
SendDataPacket("attention", worldMaster, "", 25224, (object)questScenario[freeSlot].GetQuestId()); // "<Quest> accepted."
|
||||
SendGameMessage(worldMaster, 25224, 0x20, (object)questScenario[freeSlot].GetQuestId()); // "<Quest> accepted."
|
||||
}
|
||||
|
||||
instance.OnAccept();
|
||||
|
|
|
@ -172,6 +172,14 @@ namespace Meteor.Map.Actors.QuestNS
|
|||
CompletedQuestsBitfield.Set(questId - SCENARIO_START);
|
||||
else
|
||||
CompletedQuestsBitfield.Clear(questId - SCENARIO_START);
|
||||
QuestGameData[] updated = Server.GetQuestGamedataByPrerequisite(questId);
|
||||
foreach (var questData in updated)
|
||||
{
|
||||
if (flag)
|
||||
PrereqBitfield.Set(questData.Id - SCENARIO_START);
|
||||
else
|
||||
PrereqBitfield.Clear(questData.Id - SCENARIO_START);
|
||||
}
|
||||
ComputeAvailable();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -409,11 +409,11 @@ namespace Meteor.Map
|
|||
|
||||
private static void AddToList(object o, List<LuaParam> luaParams)
|
||||
{
|
||||
if (o is int)
|
||||
if (o is int || o is short)
|
||||
{
|
||||
luaParams.Add(new LuaParam(0x0, (int)o));
|
||||
}
|
||||
else if (o is uint)
|
||||
else if (o is uint || o is ushort)
|
||||
{
|
||||
luaParams.Add(new LuaParam(0x1, (uint)o));
|
||||
}
|
||||
|
|
|
@ -932,6 +932,30 @@ namespace Meteor.Map
|
|||
if (player.CurrentArea.IsPrivate())
|
||||
DoZoneChange(player, player.CurrentArea.ZoneId, null, 0, 15, x, y, z, rotation);
|
||||
}
|
||||
|
||||
public void WarpToPosition(Player player, float x, float y, float z, float rotation)
|
||||
{
|
||||
//Remove player from currentZone if transfer else it's login
|
||||
if (player.CurrentArea != null)
|
||||
{
|
||||
player.playerSession.LockUpdates(true);
|
||||
player.CurrentArea.RemoveActorFromZone(player);
|
||||
player.CurrentArea.AddActorToZone(player);
|
||||
|
||||
//Update player actor's properties;
|
||||
player.positionX = x;
|
||||
player.positionY = y;
|
||||
player.positionZ = z;
|
||||
player.rotation = rotation;
|
||||
|
||||
//Send packets
|
||||
player.playerSession.QueuePacket(_0xE2Packet.BuildPacket(player.Id, 0x10));
|
||||
player.playerSession.QueuePacket(player.CreateSpawnTeleportPacket(0));
|
||||
|
||||
player.playerSession.LockUpdates(false);
|
||||
player.SendInstanceUpdate();
|
||||
}
|
||||
}
|
||||
|
||||
//Moves actor to new zone, and sends packets to spawn at the given coords.
|
||||
public void DoZoneChangeContent(Player player, PrivateAreaContent contentArea, float spawnX, float spawnY, float spawnZ, float spawnRotation, ushort spawnType = SetActorPositionPacket.SPAWNTYPE_WARP_DUTY)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue