mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-04-24 05:37:46 +00:00
Merge branch 'develop' of https://bitbucket.org/Ioncannon/ffxiv-classic-server into ai
This commit is contained in:
commit
7c08420206
28 changed files with 294 additions and 124 deletions
|
@ -84,11 +84,12 @@ namespace FFXIVClassic_Map_Server
|
||||||
SELECT
|
SELECT
|
||||||
*
|
*
|
||||||
FROM gamedata_items
|
FROM gamedata_items
|
||||||
LEFT JOIN gamedata_items_equipment ON gamedata_items.catalogID = gamedata_items_equipment.catalogID
|
LEFT JOIN gamedata_items_equipment ON gamedata_items.catalogID = gamedata_items_equipment.catalogID
|
||||||
LEFT JOIN gamedata_items_accessory ON gamedata_items.catalogID = gamedata_items_accessory.catalogID
|
LEFT JOIN gamedata_items_accessory ON gamedata_items.catalogID = gamedata_items_accessory.catalogID
|
||||||
LEFT JOIN gamedata_items_armor ON gamedata_items.catalogID = gamedata_items_armor.catalogID
|
LEFT JOIN gamedata_items_armor ON gamedata_items.catalogID = gamedata_items_armor.catalogID
|
||||||
LEFT JOIN gamedata_items_weapon ON gamedata_items.catalogID = gamedata_items_weapon.catalogID
|
LEFT JOIN gamedata_items_weapon ON gamedata_items.catalogID = gamedata_items_weapon.catalogID
|
||||||
LEFT JOIN gamedata_items_graphics ON gamedata_items.catalogID = gamedata_items_graphics.catalogID
|
LEFT JOIN gamedata_items_graphics ON gamedata_items.catalogID = gamedata_items_graphics.catalogID
|
||||||
|
LEFT JOIN gamedata_items_graphics_extra ON gamedata_items.catalogID = gamedata_items_graphics_extra.catalogID
|
||||||
";
|
";
|
||||||
|
|
||||||
MySqlCommand cmd = new MySqlCommand(query, conn);
|
MySqlCommand cmd = new MySqlCommand(query, conn);
|
||||||
|
|
|
@ -30,7 +30,7 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||||
protected string classPath;
|
protected string classPath;
|
||||||
|
|
||||||
public int boundingGridSize = 50;
|
public int boundingGridSize = 50;
|
||||||
public int minX = -1000, minY = -1000, maxX = 1000, maxY = 1000;
|
public int minX = -5000, minY = -5000, maxX = 5000, maxY = 5000;
|
||||||
protected int numXBlocks, numYBlocks;
|
protected int numXBlocks, numYBlocks;
|
||||||
protected int halfWidth, halfHeight;
|
protected int halfWidth, halfHeight;
|
||||||
|
|
||||||
|
@ -531,11 +531,11 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public Director CreateDirector(string path, params object[] args)
|
public Director CreateDirector(string path, bool hasContentGroup, params object[] args)
|
||||||
{
|
{
|
||||||
lock (directorLock)
|
lock (directorLock)
|
||||||
{
|
{
|
||||||
Director director = new Director(directorIdCount, this, path, args);
|
Director director = new Director(directorIdCount, this, path, hasContentGroup, args);
|
||||||
currentDirectors.Add(director.actorId, director);
|
currentDirectors.Add(director.actorId, director);
|
||||||
directorIdCount++;
|
directorIdCount++;
|
||||||
return director;
|
return director;
|
||||||
|
|
|
@ -14,7 +14,6 @@ namespace FFXIVClassic_Map_Server.actors.area
|
||||||
class PrivateAreaContent : PrivateArea
|
class PrivateAreaContent : PrivateArea
|
||||||
{
|
{
|
||||||
private Director currentDirector;
|
private Director currentDirector;
|
||||||
private ContentGroup currentContentGroup;
|
|
||||||
private bool isContentFinished = false;
|
private bool isContentFinished = false;
|
||||||
|
|
||||||
public static PrivateAreaContent CreateContentArea(String scriptPath)
|
public static PrivateAreaContent CreateContentArea(String scriptPath)
|
||||||
|
@ -26,8 +25,7 @@ namespace FFXIVClassic_Map_Server.actors.area
|
||||||
: base(parent, parent.actorId, classPath, privateAreaName, privateAreaType, 0, 0, 0)
|
: base(parent, parent.actorId, classPath, privateAreaName, privateAreaType, 0, 0, 0)
|
||||||
{
|
{
|
||||||
currentDirector = director;
|
currentDirector = director;
|
||||||
currentContentGroup = Server.GetWorldManager().CreateContentGroup(director);
|
LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentDirector);
|
||||||
LuaEngine.GetInstance().CallLuaFunction(contentStarter, this, "onCreate", false, currentContentGroup, currentDirector);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Director GetContentDirector()
|
public Director GetContentDirector()
|
||||||
|
@ -35,11 +33,6 @@ namespace FFXIVClassic_Map_Server.actors.area
|
||||||
return currentDirector;
|
return currentDirector;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ContentGroup GetContentGroup()
|
|
||||||
{
|
|
||||||
return currentContentGroup;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void ContentFinished()
|
public void ContentFinished()
|
||||||
{
|
{
|
||||||
isContentFinished = true;
|
isContentFinished = true;
|
||||||
|
|
|
@ -138,11 +138,11 @@ namespace FFXIVClassic_Map_Server.actors.area
|
||||||
return mActorList[id];
|
return mActorList[id];
|
||||||
}
|
}
|
||||||
|
|
||||||
public PrivateAreaContent CreateContentArea(Player starterPlayer, string areaClassPath, string contentScript, string areaName, string directorName)
|
public PrivateAreaContent CreateContentArea(Player starterPlayer, string areaClassPath, string contentScript, string areaName, string directorName, params object[] args)
|
||||||
{
|
{
|
||||||
lock (contentAreasLock)
|
lock (contentAreasLock)
|
||||||
{
|
{
|
||||||
Director director = CreateDirector(directorName);
|
Director director = CreateDirector(directorName, true, args);
|
||||||
|
|
||||||
if (director == null)
|
if (director == null)
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -1010,6 +1010,19 @@ namespace FFXIVClassic_Map_Server.Actors
|
||||||
|
|
||||||
appearanceIds[slot] = graphicId;
|
appearanceIds[slot] = graphicId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Handle offhand
|
||||||
|
if (slot == MAINHAND && item is WeaponItem)
|
||||||
|
{
|
||||||
|
WeaponItem wpItem = (WeaponItem)item;
|
||||||
|
|
||||||
|
uint graphicId =
|
||||||
|
(wpItem.graphicsOffhandWeaponId & 0x3FF) << 20 |
|
||||||
|
(wpItem.graphicsOffhandEquipmentId & 0x3FF) << 10 |
|
||||||
|
(wpItem.graphicsOffhandVariantId & 0x3FF);
|
||||||
|
|
||||||
|
appearanceIds[SetActorAppearancePacket.OFFHAND] = graphicId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Database.SavePlayerAppearance(this);
|
Database.SavePlayerAppearance(this);
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
|
|
||||||
using FFXIVClassic.Common;
|
using FFXIVClassic.Common;
|
||||||
using FFXIVClassic_Map_Server.actors.area;
|
using FFXIVClassic_Map_Server.actors.area;
|
||||||
|
using FFXIVClassic_Map_Server.actors.group;
|
||||||
using FFXIVClassic_Map_Server.Actors;
|
using FFXIVClassic_Map_Server.Actors;
|
||||||
using FFXIVClassic_Map_Server.lua;
|
using FFXIVClassic_Map_Server.lua;
|
||||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
using FFXIVClassic_Map_Server.packets.send.actor;
|
||||||
|
@ -16,6 +17,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
private uint directorId;
|
private uint directorId;
|
||||||
private string directorScriptPath;
|
private string directorScriptPath;
|
||||||
private List<Actor> members = new List<Actor>();
|
private List<Actor> members = new List<Actor>();
|
||||||
|
protected ContentGroup contentGroup;
|
||||||
private bool isCreated = false;
|
private bool isCreated = false;
|
||||||
private bool isDeleted = false;
|
private bool isDeleted = false;
|
||||||
private bool isDeleting = false;
|
private bool isDeleting = false;
|
||||||
|
@ -23,7 +25,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
private Script directorScript;
|
private Script directorScript;
|
||||||
private Coroutine currentCoroutine;
|
private Coroutine currentCoroutine;
|
||||||
|
|
||||||
public Director(uint id, Area zone, string directorPath, params object[] args)
|
public Director(uint id, Area zone, string directorPath, bool hasContentGroup, params object[] args)
|
||||||
: base((6 << 28 | zone.actorId << 19 | (uint)id))
|
: base((6 << 28 | zone.actorId << 19 | (uint)id))
|
||||||
{
|
{
|
||||||
directorId = id;
|
directorId = id;
|
||||||
|
@ -33,6 +35,9 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
|
|
||||||
LoadLuaScript();
|
LoadLuaScript();
|
||||||
|
|
||||||
|
if (hasContentGroup)
|
||||||
|
contentGroup = Server.GetWorldManager().CreateContentGroup(this, GetMembers());
|
||||||
|
|
||||||
eventConditions = new EventList();
|
eventConditions = new EventList();
|
||||||
eventConditions.noticeEventConditions = new List<EventList.NoticeEventCondition>();
|
eventConditions.noticeEventConditions = new List<EventList.NoticeEventCondition>();
|
||||||
eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("noticeEvent", 0xE,0x0));
|
eventConditions.noticeEventConditions.Add(new EventList.NoticeEventCondition("noticeEvent", 0xE,0x0));
|
||||||
|
@ -108,6 +113,9 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
|
|
||||||
if (isCreated && spawnImmediate)
|
if (isCreated && spawnImmediate)
|
||||||
{
|
{
|
||||||
|
if (contentGroup != null)
|
||||||
|
contentGroup.Start();
|
||||||
|
|
||||||
foreach (Player p in GetPlayerMembers())
|
foreach (Player p in GetPlayerMembers())
|
||||||
{
|
{
|
||||||
p.QueuePackets(GetSpawnPackets());
|
p.QueuePackets(GetSpawnPackets());
|
||||||
|
@ -116,15 +124,26 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this is GuildleveDirector)
|
if (this is GuildleveDirector)
|
||||||
|
{
|
||||||
((GuildleveDirector)this).LoadGuildleve();
|
((GuildleveDirector)this).LoadGuildleve();
|
||||||
|
}
|
||||||
|
|
||||||
StartCoroutine("main", this);
|
StartCoroutine("main", this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void StartContentGroup()
|
||||||
|
{
|
||||||
|
if (contentGroup != null)
|
||||||
|
contentGroup.Start();
|
||||||
|
}
|
||||||
|
|
||||||
public void EndDirector()
|
public void EndDirector()
|
||||||
{
|
{
|
||||||
isDeleting = true;
|
isDeleting = true;
|
||||||
|
|
||||||
|
if (contentGroup != null)
|
||||||
|
contentGroup.DeleteGroup();
|
||||||
|
|
||||||
if (this is GuildleveDirector)
|
if (this is GuildleveDirector)
|
||||||
((GuildleveDirector)this).EndGuildleveDirector();
|
((GuildleveDirector)this).EndGuildleveDirector();
|
||||||
|
|
||||||
|
@ -139,13 +158,20 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
public void AddMember(Actor actor)
|
public void AddMember(Actor actor)
|
||||||
{
|
{
|
||||||
if (!members.Contains(actor))
|
if (!members.Contains(actor))
|
||||||
|
{
|
||||||
members.Add(actor);
|
members.Add(actor);
|
||||||
|
|
||||||
|
if (contentGroup != null)
|
||||||
|
contentGroup.AddMember(actor);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveMember(Actor actor)
|
public void RemoveMember(Actor actor)
|
||||||
{
|
{
|
||||||
if (members.Contains(actor))
|
if (members.Contains(actor))
|
||||||
members.Remove(actor);
|
members.Remove(actor);
|
||||||
|
if (contentGroup != null)
|
||||||
|
contentGroup.RemoveMember(actor.actorId);
|
||||||
if (GetPlayerMembers().Count == 0 && !isDeleting)
|
if (GetPlayerMembers().Count == 0 && !isDeleting)
|
||||||
EndDirector();
|
EndDirector();
|
||||||
}
|
}
|
||||||
|
@ -175,6 +201,16 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
return isDeleted;
|
return isDeleted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool HasContentGroup()
|
||||||
|
{
|
||||||
|
return contentGroup != null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ContentGroup GetContentGroup()
|
||||||
|
{
|
||||||
|
return contentGroup;
|
||||||
|
}
|
||||||
|
|
||||||
public void GenerateActorName(int actorNumber)
|
public void GenerateActorName(int actorNumber)
|
||||||
{
|
{
|
||||||
//Format Class Name
|
//Format Class Name
|
||||||
|
@ -262,5 +298,24 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void OnEventStart(Player player, object[] args)
|
||||||
|
{
|
||||||
|
object[] args2 = new object[args.Length + (player == null ? 1 : 2)];
|
||||||
|
Array.Copy(args, 0, args2, (player == null ? 1 : 2), args.Length);
|
||||||
|
if (player != null)
|
||||||
|
{
|
||||||
|
args2[0] = player;
|
||||||
|
args2[1] = this;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
args2[0] = this;
|
||||||
|
|
||||||
|
Coroutine coroutine = directorScript.CreateCoroutine(directorScript.Globals["onEventStarted"]).Coroutine;
|
||||||
|
DynValue value = coroutine.Resume(args2);
|
||||||
|
LuaEngine.GetInstance().ResolveResume(player, coroutine, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -18,7 +18,6 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
public uint guildleveId;
|
public uint guildleveId;
|
||||||
public Player guildleveOwner;
|
public Player guildleveOwner;
|
||||||
public byte selectedDifficulty;
|
public byte selectedDifficulty;
|
||||||
public ContentGroup contentGroup;
|
|
||||||
|
|
||||||
public GuildleveData guildleveData;
|
public GuildleveData guildleveData;
|
||||||
public GuildleveWork guildleveWork = new GuildleveWork();
|
public GuildleveWork guildleveWork = new GuildleveWork();
|
||||||
|
@ -27,7 +26,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
public uint completionTime = 0;
|
public uint completionTime = 0;
|
||||||
|
|
||||||
public GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, byte selectedDifficulty, Player guildleveOwner, params object[] args)
|
public GuildleveDirector(uint id, Area zone, string directorPath, uint guildleveId, byte selectedDifficulty, Player guildleveOwner, params object[] args)
|
||||||
: base(id, zone, directorPath, args)
|
: base(id, zone, directorPath, true, args)
|
||||||
{
|
{
|
||||||
this.guildleveId = guildleveId;
|
this.guildleveId = guildleveId;
|
||||||
this.selectedDifficulty = selectedDifficulty;
|
this.selectedDifficulty = selectedDifficulty;
|
||||||
|
@ -53,7 +52,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
|
|
||||||
public void LoadGuildleve()
|
public void LoadGuildleve()
|
||||||
{
|
{
|
||||||
contentGroup = Server.GetWorldManager().CreateGLContentGroup(this, GetMembers());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void StartGuildleve()
|
public void StartGuildleve()
|
||||||
|
@ -123,7 +122,7 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
if (wasCompleted)
|
if (wasCompleted)
|
||||||
{
|
{
|
||||||
Npc aetheryteNode = zone.SpawnActor(1200040, String.Format("{0}:warpExit", guildleveOwner.actorName), guildleveOwner.positionX, guildleveOwner.positionY, guildleveOwner.positionZ);
|
Npc aetheryteNode = zone.SpawnActor(1200040, String.Format("{0}:warpExit", guildleveOwner.actorName), guildleveOwner.positionX, guildleveOwner.positionY, guildleveOwner.positionZ);
|
||||||
contentGroup.AddMember(aetheryteNode);
|
AddMember(aetheryteNode);
|
||||||
|
|
||||||
foreach (Actor a in GetPlayerMembers())
|
foreach (Actor a in GetPlayerMembers())
|
||||||
{
|
{
|
||||||
|
@ -150,7 +149,6 @@ namespace FFXIVClassic_Map_Server.actors.director
|
||||||
//Delete ContentGroup, change music back
|
//Delete ContentGroup, change music back
|
||||||
public void EndGuildleveDirector()
|
public void EndGuildleveDirector()
|
||||||
{
|
{
|
||||||
contentGroup.DeleteGroup();
|
|
||||||
foreach (Actor p in GetPlayerMembers())
|
foreach (Actor p in GetPlayerMembers())
|
||||||
{
|
{
|
||||||
Player player = (Player)p;
|
Player player = (Player)p;
|
||||||
|
|
|
@ -19,6 +19,7 @@ namespace FFXIVClassic_Map_Server.actors.group
|
||||||
public ContentGroupWork contentGroupWork = new ContentGroupWork();
|
public ContentGroupWork contentGroupWork = new ContentGroupWork();
|
||||||
private Director director;
|
private Director director;
|
||||||
private List<uint> members = new List<uint>();
|
private List<uint> members = new List<uint>();
|
||||||
|
private bool isStarted = false;
|
||||||
|
|
||||||
public ContentGroup(ulong groupIndex, Director director, uint[] initialMembers) : base(groupIndex)
|
public ContentGroup(ulong groupIndex, Director director, uint[] initialMembers) : base(groupIndex)
|
||||||
{
|
{
|
||||||
|
@ -38,6 +39,12 @@ namespace FFXIVClassic_Map_Server.actors.group
|
||||||
contentGroupWork._globalTemp.director = (ulong)director.actorId << 32;
|
contentGroupWork._globalTemp.director = (ulong)director.actorId << 32;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void Start()
|
||||||
|
{
|
||||||
|
isStarted = true;
|
||||||
|
SendGroupPacketsAll(members);
|
||||||
|
}
|
||||||
|
|
||||||
public void AddMember(Actor actor)
|
public void AddMember(Actor actor)
|
||||||
{
|
{
|
||||||
if (actor == null)
|
if (actor == null)
|
||||||
|
@ -48,13 +55,15 @@ namespace FFXIVClassic_Map_Server.actors.group
|
||||||
if (actor is Character)
|
if (actor is Character)
|
||||||
((Character)actor).SetCurrentContentGroup(this);
|
((Character)actor).SetCurrentContentGroup(this);
|
||||||
|
|
||||||
SendGroupPacketsAll(members);
|
if (isStarted)
|
||||||
|
SendGroupPacketsAll(members);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void RemoveMember(uint memberId)
|
public void RemoveMember(uint memberId)
|
||||||
{
|
{
|
||||||
members.Remove(memberId);
|
members.Remove(memberId);
|
||||||
SendGroupPacketsAll(members);
|
if (isStarted)
|
||||||
|
SendGroupPacketsAll(members);
|
||||||
CheckDestroy();
|
CheckDestroy();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -467,6 +467,11 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
||||||
|
|
||||||
class WeaponItem : EquipmentItem
|
class WeaponItem : EquipmentItem
|
||||||
{
|
{
|
||||||
|
//extra graphics
|
||||||
|
public readonly uint graphicsOffhandWeaponId;
|
||||||
|
public readonly uint graphicsOffhandEquipmentId;
|
||||||
|
public readonly uint graphicsOffhandVariantId;
|
||||||
|
|
||||||
//weapon sheet
|
//weapon sheet
|
||||||
public readonly short attack;
|
public readonly short attack;
|
||||||
public readonly short magicAttack;
|
public readonly short magicAttack;
|
||||||
|
@ -497,6 +502,13 @@ namespace FFXIVClassic_Map_Server.dataobjects
|
||||||
public WeaponItem(MySqlDataReader reader)
|
public WeaponItem(MySqlDataReader reader)
|
||||||
: base(reader)
|
: base(reader)
|
||||||
{
|
{
|
||||||
|
if (!reader.IsDBNull(reader.GetOrdinal("offHandWeaponId")) && !reader.IsDBNull(reader.GetOrdinal("offHandEquipmentId")) && !reader.IsDBNull(reader.GetOrdinal("offHandVarientId")))
|
||||||
|
{
|
||||||
|
graphicsOffhandWeaponId = reader.GetUInt32("offHandWeaponId");
|
||||||
|
graphicsOffhandEquipmentId = reader.GetUInt32("offHandEquipmentId");
|
||||||
|
graphicsOffhandVariantId = reader.GetUInt32("offHandVarientId");
|
||||||
|
}
|
||||||
|
|
||||||
attack = reader.GetInt16("attack");
|
attack = reader.GetInt16("attack");
|
||||||
magicAttack = reader.GetInt16("magicAttack");
|
magicAttack = reader.GetInt16("magicAttack");
|
||||||
craftProcessing = reader.GetInt16("craftProcessing");
|
craftProcessing = reader.GetInt16("craftProcessing");
|
||||||
|
|
|
@ -117,7 +117,7 @@ namespace FFXIVClassic_Map_Server.lua
|
||||||
Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId];
|
Coroutine coroutine = mSleepingOnPlayerEvent[player.actorId];
|
||||||
mSleepingOnPlayerEvent.Remove(player.actorId);
|
mSleepingOnPlayerEvent.Remove(player.actorId);
|
||||||
DynValue value = coroutine.Resume(LuaUtils.CreateLuaParamObjectList(args));
|
DynValue value = coroutine.Resume(LuaUtils.CreateLuaParamObjectList(args));
|
||||||
ResolveResume(null, coroutine, value);
|
ResolveResume(player, coroutine, value);
|
||||||
}
|
}
|
||||||
catch (ScriptRuntimeException e)
|
catch (ScriptRuntimeException e)
|
||||||
{
|
{
|
||||||
|
@ -420,7 +420,12 @@ namespace FFXIVClassic_Map_Server.lua
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams));
|
{
|
||||||
|
if (target is Director)
|
||||||
|
((Director)target).OnEventStart(player, LuaUtils.CreateLuaParamObjectList(lparams));
|
||||||
|
else
|
||||||
|
CallLuaFunction(player, target, "onEventStarted", false, LuaUtils.CreateLuaParamObjectList(lparams));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public DynValue ResolveResume(Actor actor, Coroutine coroutine, DynValue value)
|
public DynValue ResolveResume(Actor actor, Coroutine coroutine, DynValue value)
|
||||||
|
|
|
@ -144,7 +144,7 @@ function doLevequestInit(player, aetheryte)
|
||||||
player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true));
|
player:PlayAnimation(getGLStartAnimationFromSheet(guildleveData.borderId, guildleveData.plateId, true));
|
||||||
director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player);
|
director = player:GetZone():CreateGuildleveDirector(glId, difficulty, player);
|
||||||
player:AddDirector(director);
|
player:AddDirector(director);
|
||||||
director:StartDirector(true, glId)
|
director:StartDirector(true, glId);
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
|
|
|
@ -147,8 +147,10 @@ function equipItem(player, equipSlot, item)
|
||||||
|
|
||||||
player:GetEquipment():Equip(equipSlot, item);
|
player:GetEquipment():Equip(equipSlot, item);
|
||||||
|
|
||||||
if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false and gItem:IsBowWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND;
|
if (equipSlot == EQUIPSLOT_MAINHAND and gItem:IsNailWeapon() == false) then graphicSlot = GRAPHICSLOT_MAINHAND;
|
||||||
elseif (equipSlot == EQUIPSLOT_OFFHAND) then graphicSlot = GRAPHICSLOT_OFFHAND;
|
elseif (equipSlot == EQUIPSLOT_OFFHAND) then graphicSlot = GRAPHICSLOT_OFFHAND;
|
||||||
|
elseif (equipSlot == EQUIPSLOT_THROWINGWEAPON) then graphicSlot = GRAPHICSLOT_THROWING;
|
||||||
|
elseif (equipSlot == EQUIPSLOT_PACK) then graphicSlot = GRAPHICSLOT_PACK;
|
||||||
elseif (equipSlot == EQUIPSLOT_HEAD) then graphicSlot = GRAPHICSLOT_HEAD;
|
elseif (equipSlot == EQUIPSLOT_HEAD) then graphicSlot = GRAPHICSLOT_HEAD;
|
||||||
elseif (equipSlot == EQUIPSLOT_BODY) then graphicSlot = GRAPHICSLOT_BODY;
|
elseif (equipSlot == EQUIPSLOT_BODY) then graphicSlot = GRAPHICSLOT_BODY;
|
||||||
elseif (equipSlot == EQUIPSLOT_LEGS) then graphicSlot = GRAPHICSLOT_LEGS;
|
elseif (equipSlot == EQUIPSLOT_LEGS) then graphicSlot = GRAPHICSLOT_LEGS;
|
||||||
|
@ -162,13 +164,9 @@ function equipItem(player, equipSlot, item)
|
||||||
--Graphic Slot was set, otherwise it's a special case
|
--Graphic Slot was set, otherwise it's a special case
|
||||||
if (graphicSlot ~= nil) then
|
if (graphicSlot ~= nil) then
|
||||||
player:GraphicChange(graphicSlot, item);
|
player:GraphicChange(graphicSlot, item);
|
||||||
if (graphicSlot == GRAPHICSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil); end
|
|
||||||
elseif (gItem:IsNailWeapon()) then
|
elseif (gItem:IsNailWeapon()) then
|
||||||
player:GraphicChange(GRAPHICSLOT_MAINHAND, item);
|
player:GraphicChange(GRAPHICSLOT_MAINHAND, item);
|
||||||
player:GraphicChange(GRAPHICSLOT_OFFHAND, item);
|
player:GraphicChange(GRAPHICSLOT_OFFHAND, item);
|
||||||
elseif (gItem:IsBowWeapon()) then
|
|
||||||
player:GraphicChange(GRAPHICSLOT_MAINHAND, item);
|
|
||||||
--player:GraphicChange(GRAPHICSLOT_OFFHAND, item);
|
|
||||||
elseif (equipSlot == EQUIPSLOT_EARS) then
|
elseif (equipSlot == EQUIPSLOT_EARS) then
|
||||||
player:GraphicChange(GRAPHICSLOT_R_EAR, item);
|
player:GraphicChange(GRAPHICSLOT_R_EAR, item);
|
||||||
player:GraphicChange(GRAPHICSLOT_L_EAR, item);
|
player:GraphicChange(GRAPHICSLOT_L_EAR, item);
|
||||||
|
@ -203,6 +201,8 @@ function unequipItem(player, equipSlot, item)
|
||||||
else
|
else
|
||||||
if (equipSlot == EQUIPSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_MAINHAND, nil);
|
if (equipSlot == EQUIPSLOT_MAINHAND) then player:GraphicChange(GRAPHICSLOT_MAINHAND, nil);
|
||||||
elseif (equipSlot == EQUIPSLOT_OFFHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil);
|
elseif (equipSlot == EQUIPSLOT_OFFHAND) then player:GraphicChange(GRAPHICSLOT_OFFHAND, nil);
|
||||||
|
elseif (equipSlot == EQUIPSLOT_THROWINGWEAPON) then player:GraphicChange(GRAPHICSLOT_THROWING, nil);
|
||||||
|
elseif (equipSlot == EQUIPSLOT_PACK) then player:GraphicChange(GRAPHICSLOT_PACK, nil);
|
||||||
elseif (equipSlot == EQUIPSLOT_HEAD) then player:GraphicChange(GRAPHICSLOT_HEAD, nil);
|
elseif (equipSlot == EQUIPSLOT_HEAD) then player:GraphicChange(GRAPHICSLOT_HEAD, nil);
|
||||||
elseif (equipSlot == EQUIPSLOT_WAIST) then player:GraphicChange(GRAPHICSLOT_WAIST, nil);
|
elseif (equipSlot == EQUIPSLOT_WAIST) then player:GraphicChange(GRAPHICSLOT_WAIST, nil);
|
||||||
elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_L_EAR, nil); player:GraphicChange(GRAPHICSLOT_R_EAR, nil);
|
elseif (equipSlot == EQUIPSLOT_EARS) then player:GraphicChange(GRAPHICSLOT_L_EAR, nil); player:GraphicChange(GRAPHICSLOT_R_EAR, nil);
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
|
|
||||||
function onCreate(starterPlayer, contentArea, contentGroup, director)
|
function onCreate(starterPlayer, contentArea, director)
|
||||||
|
|
||||||
yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5);
|
yshtola = contentArea:SpawnActor(2290001, "yshtola", -8, 16.35, 6, 0.5);
|
||||||
stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3);
|
stahlmann = contentArea:SpawnActor(2290002, "stahlmann", 0, 16.35, 22, 3);
|
||||||
|
@ -8,13 +8,15 @@ function onCreate(starterPlayer, contentArea, contentGroup, director)
|
||||||
mob2 = contentArea:SpawnActor(2205403, "mob2", -3.02, 17.35, 14.24, -2.81);
|
mob2 = contentArea:SpawnActor(2205403, "mob2", -3.02, 17.35, 14.24, -2.81);
|
||||||
mob3 = contentArea:SpawnActor(2205403, "mob3", -3.02-3, 17.35, 14.24, -2.81);
|
mob3 = contentArea:SpawnActor(2205403, "mob3", -3.02-3, 17.35, 14.24, -2.81);
|
||||||
|
|
||||||
contentGroup:AddMember(starterPlayer);
|
director:AddMember(starterPlayer);
|
||||||
contentGroup:AddMember(director);
|
director:AddMember(director);
|
||||||
contentGroup:AddMember(yshtola);
|
director:AddMember(yshtola);
|
||||||
contentGroup:AddMember(stahlmann);
|
director:AddMember(stahlmann);
|
||||||
contentGroup:AddMember(mob1);
|
director:AddMember(mob1);
|
||||||
contentGroup:AddMember(mob2);
|
director:AddMember(mob2);
|
||||||
contentGroup:AddMember(mob3);
|
director:AddMember(mob3);
|
||||||
|
|
||||||
|
director:StartContentGroup();
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
30
data/scripts/content/SimpleContent30010.lua
Normal file
30
data/scripts/content/SimpleContent30010.lua
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
|
||||||
|
function onCreate(starterPlayer, contentArea, director)
|
||||||
|
|
||||||
|
papalymo = contentArea:SpawnActor(2290005, "papalymo", 365.89, 4.0943, -706.72, -0.718);
|
||||||
|
yda = contentArea:SpawnActor(2290006, "yda", 365.266, 4.122, -700.73, 1.5659);
|
||||||
|
yda:ChangeState(2);
|
||||||
|
|
||||||
|
mob1 = contentArea:SpawnActor(2201407, "mob1", 374.427, 4.4, -698.711, -1.942);
|
||||||
|
mob2 = contentArea:SpawnActor(2201407, "mob2", 375.377, 4.4, -700.247, -1.992);
|
||||||
|
mob3 = contentArea:SpawnActor(2201407, "mob3", 375.125, 4.4, -703.591, -1.54);
|
||||||
|
|
||||||
|
openingStoper = contentArea:SpawnActor(1090384, "openingstoper", 356.09, 3.74, -701.62, -1.41);
|
||||||
|
|
||||||
|
director:AddMember(starterPlayer);
|
||||||
|
director:AddMember(director);
|
||||||
|
director:AddMember(papalymo);
|
||||||
|
director:AddMember(yda);
|
||||||
|
director:AddMember(mob1);
|
||||||
|
director:AddMember(mob2);
|
||||||
|
director:AddMember(mob3);
|
||||||
|
|
||||||
|
director:StartContentGroup();
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function onDestroy()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end
|
26
data/scripts/content/SimpleContent30079.lua
Normal file
26
data/scripts/content/SimpleContent30079.lua
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
|
||||||
|
function onCreate(starterPlayer, contentArea, director)
|
||||||
|
|
||||||
|
niellefresne = contentArea:SpawnActor(2290003, "niellefresne", -11.86, 192, 35.06, -0.8);
|
||||||
|
thancred = contentArea:SpawnActor(2290004, "thancred", -26.41, 192, 39.52, 1.2);
|
||||||
|
thancred:ChangeState(2);
|
||||||
|
|
||||||
|
mob1 = contentArea:SpawnActor(2203301, "mob1", -6.193, 192, 47.658, -2.224);
|
||||||
|
|
||||||
|
openingStoper = contentArea:SpawnActor(1090385, "openingstoper", -24.34, 192, 34.22, 0);
|
||||||
|
|
||||||
|
director:AddMember(starterPlayer);
|
||||||
|
director:AddMember(director);
|
||||||
|
director:AddMember(niellefresne);
|
||||||
|
director:AddMember(thancred);
|
||||||
|
director:AddMember(mob1);
|
||||||
|
|
||||||
|
director:StartContentGroup();
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
function onDestroy()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
end
|
|
@ -59,27 +59,6 @@ function onEventStarted(player, actor, triggerName)
|
||||||
man0u0Quest:NextPhase(10);
|
man0u0Quest:NextPhase(10);
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
|
|
||||||
end
|
player:GetZone():ContentFinished();
|
||||||
|
GetWorldManager():DoZoneChange(player, 175, "PrivateAreaMasterPast", 3, 15, -22.81, 196, 87.82, 2.98);
|
||||||
function onUpdate()
|
|
||||||
end
|
|
||||||
|
|
||||||
function onTalkEvent(player, npc)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
function onPushEvent(player, npc)
|
|
||||||
end
|
|
||||||
|
|
||||||
function onCommandEvent(player, command)
|
|
||||||
|
|
||||||
quest = GetStaticActor("Man0l0");
|
|
||||||
callClientFunction(player, "delegateEvent", player, quest, "processTtrBtl002", nil, nil, nil);
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
function onEventUpdate(player, npc)
|
|
||||||
end
|
|
||||||
|
|
||||||
function onCommand(player, command)
|
|
||||||
end
|
end
|
|
@ -8,18 +8,22 @@ function onBeginLogin(player)
|
||||||
|
|
||||||
if (initialTown == 1 and player:HasQuest(110001) == false) then
|
if (initialTown == 1 and player:HasQuest(110001) == false) then
|
||||||
player:AddQuest(110001);
|
player:AddQuest(110001);
|
||||||
|
player:SetHomePoint(1280001);
|
||||||
elseif (initialTown == 2 and player:HasQuest(110005) == false) then
|
elseif (initialTown == 2 and player:HasQuest(110005) == false) then
|
||||||
player:AddQuest(110005);
|
player:AddQuest(110005);
|
||||||
|
player:SetHomePoint(1280061);
|
||||||
elseif (initialTown == 3 and player:HasQuest(110009) == false) then
|
elseif (initialTown == 3 and player:HasQuest(110009) == false) then
|
||||||
player:AddQuest(110009);
|
player:AddQuest(110009);
|
||||||
|
player:SetHomePoint(1280031);
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--For Opening. Set Director and reset position incase d/c
|
--For Opening. Set Director and reset position incase d/c
|
||||||
if (player:HasQuest(110001) == true) then
|
if (player:HasQuest(110001) == true) then
|
||||||
director = player:GetZone():CreateDirector("OpeningDirector");
|
director = player:GetZone():CreateDirector("OpeningDirector", false);
|
||||||
player:AddDirector(director);
|
player:AddDirector(director);
|
||||||
|
director:StartDirector(true);
|
||||||
player:SetLoginDirector(director);
|
player:SetLoginDirector(director);
|
||||||
player:KickEvent(director, "noticeEvent", true);
|
player:KickEvent(director, "noticeEvent", true);
|
||||||
|
|
||||||
|
@ -30,10 +34,11 @@ function onBeginLogin(player)
|
||||||
player:GetQuest(110001):ClearQuestData();
|
player:GetQuest(110001):ClearQuestData();
|
||||||
player:GetQuest(110001):ClearQuestFlags();
|
player:GetQuest(110001):ClearQuestFlags();
|
||||||
elseif (player:HasQuest(110005) == true) then
|
elseif (player:HasQuest(110005) == true) then
|
||||||
director = player:GetZone():CreateDirector("OpeningDirector");
|
director = player:GetZone():CreateDirector("OpeningDirector", false);
|
||||||
player:AddDirector(director);
|
player:AddDirector(director);
|
||||||
|
director:StartDirector(false);
|
||||||
player:SetLoginDirector(director);
|
player:SetLoginDirector(director);
|
||||||
player:KickEvent(director, "noticeEvent", "noticeEvent");
|
player:KickEvent(director, "noticeEvent", true);
|
||||||
|
|
||||||
player.positionX = 369.5434;
|
player.positionX = 369.5434;
|
||||||
player.positionY = 4.21;
|
player.positionY = 4.21;
|
||||||
|
@ -42,10 +47,11 @@ function onBeginLogin(player)
|
||||||
player:GetQuest(110005):ClearQuestData();
|
player:GetQuest(110005):ClearQuestData();
|
||||||
player:GetQuest(110005):ClearQuestFlags();
|
player:GetQuest(110005):ClearQuestFlags();
|
||||||
elseif (player:HasQuest(110009) == true) then
|
elseif (player:HasQuest(110009) == true) then
|
||||||
director = player:GetZone():CreateDirector("OpeningDirector");
|
--director = player:GetZone():CreateDirector("OpeningDirector", false);
|
||||||
player:AddDirector(director);
|
--player:AddDirector(director);
|
||||||
player:SetLoginDirector(director);
|
--director:StartDirector(false);
|
||||||
player:KickEvent(director, "noticeEvent", "noticeEvent");
|
--player:SetLoginDirector(director);
|
||||||
|
--player:KickEvent(director, "noticeEvent", true);
|
||||||
|
|
||||||
player.positionX = 5.364327;
|
player.positionX = 5.364327;
|
||||||
player.positionY = 196.0;
|
player.positionY = 196.0;
|
||||||
|
@ -58,7 +64,6 @@ function onBeginLogin(player)
|
||||||
end
|
end
|
||||||
|
|
||||||
function onLogin(player)
|
function onLogin(player)
|
||||||
player:SendMessage(0x1D,"",">Callback \"onLogin\" for player script:Running.");
|
|
||||||
|
|
||||||
if (player:GetPlayTime(false) == 0) then
|
if (player:GetPlayTime(false) == 0) then
|
||||||
player:SendMessage(0x1D,"",">PlayTime == 0, new player!");
|
player:SendMessage(0x1D,"",">PlayTime == 0, new player!");
|
||||||
|
|
|
@ -6,7 +6,7 @@ function onEventStarted(player, npc, triggerName)
|
||||||
worldMaster = GetWorldMaster();
|
worldMaster = GetWorldMaster();
|
||||||
player:SendGameMessage(player, worldMaster, 34109, 0x20);
|
player:SendGameMessage(player, worldMaster, 34109, 0x20);
|
||||||
elseif (triggerName == "exit") then
|
elseif (triggerName == "exit") then
|
||||||
GetWorldManager():DoPlayerMoveInZone(player, 5);
|
GetWorldManager():DoPlayerMoveInZone(player, 356.09, 3.74, -701.62, -1.4);
|
||||||
end
|
end
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
end
|
end
|
|
@ -27,16 +27,21 @@ function onEventStarted(player, npc, triggerName)
|
||||||
|
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
|
|
||||||
worldMaster = GetWorldMaster();
|
contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0g01", "SimpleContent30010", "Quest/QuestDirectorMan0g001");
|
||||||
player:SendGameMessage(player, worldMaster, 34108, 0x20);
|
|
||||||
player:SendGameMessage(player, worldMaster, 50011, 0x20);
|
|
||||||
|
|
||||||
director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0g001");
|
if (contentArea == nil) then
|
||||||
player:KickEvent(director, "noticeEvent", true);
|
player:EndEvent();
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
|
director = contentArea:GetContentDirector();
|
||||||
player:AddDirector(director);
|
player:AddDirector(director);
|
||||||
|
director:StartDirector(false);
|
||||||
|
|
||||||
|
player:KickEvent(director, "noticeEvent", true);
|
||||||
player:SetLoginDirector(director);
|
player:SetLoginDirector(director);
|
||||||
|
|
||||||
GetWorldManager():DoZoneChange(player, 166, "ContentSimpleContent30010", 1, 16, 362.4087, 4, -703.8168, 1.5419);
|
GetWorldManager():DoZoneChangeContent(player, contentArea, 362.4087, 4, -703.8168, 1.5419, 16);
|
||||||
return;
|
return;
|
||||||
else
|
else
|
||||||
callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_1", nil, nil, nil);
|
callClientFunction(player, "delegateEvent", player, man0g0Quest, "processEvent000_1", nil, nil, nil);
|
||||||
|
|
|
@ -35,9 +35,10 @@ function onEventStarted(player, npc, triggerName)
|
||||||
end
|
end
|
||||||
|
|
||||||
director = contentArea:GetContentDirector();
|
director = contentArea:GetContentDirector();
|
||||||
|
player:AddDirector(director);
|
||||||
|
director:StartDirector(false);
|
||||||
|
|
||||||
player:KickEvent(director, "noticeEvent", true);
|
player:KickEvent(director, "noticeEvent", true);
|
||||||
player:AddDirector(director);
|
|
||||||
player:SetLoginDirector(director);
|
player:SetLoginDirector(director);
|
||||||
|
|
||||||
GetWorldManager():DoZoneChangeContent(player, contentArea, -5, 16.35, 6, 0.5, 16);
|
GetWorldManager():DoZoneChangeContent(player, contentArea, -5, 16.35, 6, 0.5, 16);
|
||||||
|
|
3
data/scripts/unique/wil0Battle01/DoorStandard/door3.lua
Normal file
3
data/scripts/unique/wil0Battle01/DoorStandard/door3.lua
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
function init(npc)
|
||||||
|
return false, false, 0, 0, 0x1A5, 4040;
|
||||||
|
end
|
|
@ -7,7 +7,7 @@ function onEventStarted(player, npc, triggerName)
|
||||||
worldMaster = GetWorldMaster();
|
worldMaster = GetWorldMaster();
|
||||||
player:SendGameMessage(player, worldMaster, 34109, 0x20);
|
player:SendGameMessage(player, worldMaster, 34109, 0x20);
|
||||||
elseif (triggerName == "exit") then
|
elseif (triggerName == "exit") then
|
||||||
GetWorldManager():DoPlayerMoveInZone(player, 6);
|
GetWorldManager():DoPlayerMoveInZone(player, 5.36433, 196, 133.656, -2.84938);
|
||||||
end
|
end
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
end
|
end
|
|
@ -25,18 +25,23 @@ function onEventStarted(player, npc, triggerName)
|
||||||
|
|
||||||
--if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then
|
--if (man0u0Quest ~= nil and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE1) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE2) == true and man0u0Quest:GetQuestFlag(MAN0U0_FLAG_MINITUT_DONE3) == true) then
|
||||||
|
|
||||||
|
player:EndEvent();
|
||||||
|
|
||||||
|
contentArea = player:GetZone():CreateContentArea(player, "/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent", "man0u01", "SimpleContent30079", "Quest/QuestDirectorMan0u001");
|
||||||
|
|
||||||
|
if (contentArea == nil) then
|
||||||
player:EndEvent();
|
player:EndEvent();
|
||||||
|
return;
|
||||||
|
end
|
||||||
|
|
||||||
worldMaster = GetWorldMaster();
|
director = contentArea:GetContentDirector();
|
||||||
player:SendGameMessage(player, worldMaster, 34108, 0x20);
|
player:AddDirector(director);
|
||||||
player:SendGameMessage(player, worldMaster, 50011, 0x20);
|
director:StartDirector(false);
|
||||||
|
|
||||||
director = player:GetZone():CreateDirector("Quest/QuestDirectorMan0u001");
|
player:KickEvent(director, "noticeEvent", true);
|
||||||
player:KickEvent(director, "noticeEvent", true);
|
player:SetLoginDirector(director);
|
||||||
player:AddDirector(director);
|
|
||||||
player:SetLoginDirector(director);
|
|
||||||
|
|
||||||
GetWorldManager():DoZoneChange(player, 184, nil, 0, 16, -24.34, 192, 34.22, 0.78);
|
GetWorldManager():DoZoneChangeContent(player, contentArea, -24.34, 192, 34.22, 0.78, 16);
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
function init(npc)
|
||||||
|
return false, false, 0, 0, 0x1A5, 2829;
|
||||||
|
end
|
|
@ -0,0 +1,3 @@
|
||||||
|
function init(npc)
|
||||||
|
return false, false, 0, 0, 0x1A5, 2825;
|
||||||
|
end
|
26
sql/gamedata_items_graphics_extra.sql
Normal file
26
sql/gamedata_items_graphics_extra.sql
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
/*
|
||||||
|
MySQL Data Transfer
|
||||||
|
Source Host: localhost
|
||||||
|
Source Database: ffxiv_server
|
||||||
|
Target Host: localhost
|
||||||
|
Target Database: ffxiv_server
|
||||||
|
Date: 7/9/2017 11:38:35 AM
|
||||||
|
*/
|
||||||
|
|
||||||
|
SET FOREIGN_KEY_CHECKS=0;
|
||||||
|
-- ----------------------------
|
||||||
|
-- Table structure for gamedata_items_graphics_extra
|
||||||
|
-- ----------------------------
|
||||||
|
CREATE TABLE `gamedata_items_graphics_extra` (
|
||||||
|
`catalogID` int(10) unsigned NOT NULL,
|
||||||
|
`offHandWeaponId` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
`offHandEquipmentId` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
`offHandVarientId` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
|
PRIMARY KEY (`catalogID`)
|
||||||
|
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
|
-- ----------------------------
|
||||||
|
-- Records
|
||||||
|
-- ----------------------------
|
||||||
|
INSERT INTO `gamedata_items_graphics_extra` VALUES ('4020001', '58', '1', '0');
|
||||||
|
INSERT INTO `gamedata_items_graphics_extra` VALUES ('4070001', '226', '1', '0');
|
|
@ -4,11 +4,12 @@ Source Host: localhost
|
||||||
Source Database: ffxiv_server
|
Source Database: ffxiv_server
|
||||||
Target Host: localhost
|
Target Host: localhost
|
||||||
Target Database: ffxiv_server
|
Target Database: ffxiv_server
|
||||||
Date: 6/19/2017 10:24:01 PM
|
Date: 7/9/2017 7:11:04 PM
|
||||||
*/
|
*/
|
||||||
DROP TABLE IF EXISTS `server_spawn_locations`;
|
DROP TABLE IF EXISTS `server_spawn_locations`;
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=0;
|
SET FOREIGN_KEY_CHECKS=0;
|
||||||
|
SET AUTOCOMMIT=0;
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for server_spawn_locations
|
-- Table structure for server_spawn_locations
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
@ -27,7 +28,7 @@ CREATE TABLE `server_spawn_locations` (
|
||||||
`animationId` int(10) unsigned NOT NULL DEFAULT '0',
|
`animationId` int(10) unsigned NOT NULL DEFAULT '0',
|
||||||
`customDisplayName` varchar(32) DEFAULT NULL,
|
`customDisplayName` varchar(32) DEFAULT NULL,
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=936 DEFAULT CHARSET=latin1;
|
) ENGINE=InnoDB AUTO_INCREMENT=939 DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records
|
-- Records
|
||||||
|
@ -655,8 +656,8 @@ INSERT INTO `server_spawn_locations` VALUES ('624', '5900001', 'centaurs_eye', '
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('625', '5900001', 'guild_lnc', '206', '', '0', '172', '28', '-1576', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('625', '5900001', 'guild_lnc', '206', '', '0', '172', '28', '-1576', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('626', '5900001', 'guild_arc', '206', '', '0', '227', '12', '-1264', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('626', '5900001', 'guild_arc', '206', '', '0', '227', '12', '-1264', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('627', '5900001', 'guild_cnj', '206', '', '0', '-325', '8', '-1669', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('627', '5900001', 'guild_cnj', '206', '', '0', '-325', '8', '-1669', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('628', '5900001', 'door1', '184', '', '0', '-14', '196', '112', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('628', '5900004', 'door1', '184', '', '0', '-14', '196', '112', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('629', '5900001', 'door2', '184', '', '0', '12', '196', '184', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('629', '5900004', 'door2', '184', '', '0', '12', '196', '184', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('630', '5900011', 'uldah_mapshipport_2', '209', '', '0', '-127', '271', '157', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('630', '5900011', 'uldah_mapshipport_2', '209', '', '0', '-127', '271', '157', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('631', '1000466', 'frances', '206', '', '0', '11.85', '8.75', '-1266.45', '1.48', '0', '1041', null);
|
INSERT INTO `server_spawn_locations` VALUES ('631', '1000466', 'frances', '206', '', '0', '11.85', '8.75', '-1266.45', '1.48', '0', '1041', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('632', '1200288', 'miniaeth_adv', '155', '', '0', '98.77', '3.59', '-1213.67', '2.47', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('632', '1200288', 'miniaeth_adv', '155', '', '0', '98.77', '3.59', '-1213.67', '2.47', '0', '0', null);
|
||||||
|
@ -852,11 +853,7 @@ INSERT INTO `server_spawn_locations` VALUES ('825', '1280124', 'singingshards_ae
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('826', '1280125', 'jaggedcrestcave_aetherytegate', '190', '', '0', '-365', '-13', '-37', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('826', '1280125', 'jaggedcrestcave_aetherytegate', '190', '', '0', '-365', '-13', '-37', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('827', '1280126', '', '0', '', '0', '484', '19', '672', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('827', '1280126', '', '0', '', '0', '484', '19', '672', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('828', '1280127', '', '0', '', '0', '-400', '19', '338', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('828', '1280127', '', '0', '', '0', '-400', '19', '338', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('829', '2290004', 'opening_thancred', '184', '', '0', '-26.41', '192', '39.52', '1.2', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('830', '2290003', 'opening_niellefresne', '184', '', '0', '-11.86', '192', '35.06', '-0.8', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('831', '2203301', 'opening_goobbue', '184', '', '0', '-10.31', '193', '50.73', '-1.06', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('832', '1090373', 'opening_stoper_uldah', '184', '', '0', '27.42', '192', '126.94', '0.33', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('832', '1090373', 'opening_stoper_uldah', '184', '', '0', '27.42', '192', '126.94', '0.33', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('833', '1090385', 'opening_stoper_uldah_battle', '184', '', '0', '-24.34', '192', '34.22', '0', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('835', '1000444', 'undignified_adventurer', '230', 'PrivateAreaMasterPast', '1', '-832.36', '6', '209.44', '-0.35', '0', '1041', null);
|
INSERT INTO `server_spawn_locations` VALUES ('835', '1000444', 'undignified_adventurer', '230', 'PrivateAreaMasterPast', '1', '-832.36', '6', '209.44', '-0.35', '0', '1041', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('836', '1000438', 'well-traveled_merchant', '230', 'PrivateAreaMasterPast', '1', '-831.73', '6', '196.77', '0.86', '0', '1035', null);
|
INSERT INTO `server_spawn_locations` VALUES ('836', '1000438', 'well-traveled_merchant', '230', 'PrivateAreaMasterPast', '1', '-831.73', '6', '196.77', '0.86', '0', '1035', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('837', '1000447', 'voluptuous_vixen', '230', 'PrivateAreaMasterPast', '1', '-863.34', '4', '236.13', '0.93', '0', '1016', null);
|
INSERT INTO `server_spawn_locations` VALUES ('837', '1000447', 'voluptuous_vixen', '230', 'PrivateAreaMasterPast', '1', '-863.34', '4', '236.13', '0.93', '0', '1016', null);
|
||||||
|
@ -895,15 +892,9 @@ INSERT INTO `server_spawn_locations` VALUES ('869', '1000562', 'wispily_whiskere
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('870', '1000458', 'vkorolon', '155', 'PrivateAreaMasterPast', '2', '55.82', '4', '-1212.23', '1.91', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('870', '1000458', 'vkorolon', '155', 'PrivateAreaMasterPast', '2', '55.82', '4', '-1212.23', '1.91', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('871', '5900004', 'closed_gridania_gate', '155', 'PrivateAreaMasterPast', '1', '185', '-1', '-1154', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('871', '5900004', 'closed_gridania_gate', '155', 'PrivateAreaMasterPast', '1', '185', '-1', '-1154', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('872', '1099047', 'gridania_blocker1', '155', 'PrivateAreaMasterPast', '1', '105.945', '10.851', '-1217.8', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('872', '1099047', 'gridania_blocker1', '155', 'PrivateAreaMasterPast', '1', '105.945', '10.851', '-1217.8', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('873', '2201407', 'opening_wolf1', '166', 'ContentSimpleContent30010', '1', '374.427', '4.4', '-698.711', '-1.942', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('874', '1001430', 'kinnison', '206', '', '0', '-194', '23', '-1610', '0.9', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('874', '1001430', 'kinnison', '206', '', '0', '-194', '23', '-1610', '0.9', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('875', '1099046', 'gridania_opening_exit', '155', 'PrivateAreaMasterPast', '1', '72.19', '4', '-1207.91', '1.17', '0', '0', '');
|
INSERT INTO `server_spawn_locations` VALUES ('875', '1099046', 'gridania_opening_exit', '155', 'PrivateAreaMasterPast', '1', '72.19', '4', '-1207.91', '1.17', '0', '0', '');
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('876', '1001648', 'unconcerned_passerby', '155', 'PrivateAreaMasterPast', '2', '77.577', '3.953', '-1210.66', '-0.518', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('876', '1001648', 'unconcerned_passerby', '155', 'PrivateAreaMasterPast', '2', '77.577', '3.953', '-1210.66', '-0.518', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('877', '1090384', 'openingstoper_gridania', '166', 'ContentSimpleContent30010', '1', '356.09', '3.74', '-701.62', '-1.41', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('878', '2290005', 'ally_papalymo', '166', 'ContentSimpleContent30010', '1', '365.89', '4.0943', '-706.72', '-0.718', '0', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('879', '2290006', 'ally_yda', '166', 'ContentSimpleContent30010', '1', '365.266', '4.122', '-700.73', '1.5659', '2', '0', null);
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('880', '2201407', 'opening_wolf2', '166', 'ContentSimpleContent30010', '1', '375.377', '4.4', '-700.247', '-1.992', '0', '0', '');
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('881', '2201407', 'opening_wolf3', '166', 'ContentSimpleContent30010', '1', '375.125', '4.4', '-703.591', '-1.54', '0', '0', '');
|
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('882', '1500007', 'didiwai', '128', '', '0', '23.98', '46.05', '-42.96', '0.6', '0', '1041', null);
|
INSERT INTO `server_spawn_locations` VALUES ('882', '1500007', 'didiwai', '128', '', '0', '23.98', '46.05', '-42.96', '0.6', '0', '1041', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('883', '1000613', 'nahctahr', '128', '', '0', '22.57', '45.5', '-23.08', '1.5', '0', '1041', null);
|
INSERT INTO `server_spawn_locations` VALUES ('883', '1000613', 'nahctahr', '128', '', '0', '22.57', '45.5', '-23.08', '1.5', '0', '1041', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('884', '1000359', 'ryssfloh', '128', '', '0', '58.78', '46.1', '-12.45', '0.6', '0', '1056', null);
|
INSERT INTO `server_spawn_locations` VALUES ('884', '1000359', 'ryssfloh', '128', '', '0', '58.78', '46.1', '-12.45', '0.6', '0', '1056', null);
|
||||||
|
@ -958,3 +949,7 @@ INSERT INTO `server_spawn_locations` VALUES ('932', '1200334', 'inn_limsa_exitdo
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('933', '1090549', 'inn_uld_exitdoor_push', '244', '', '0', '-0.02', '0.02', '-8.6', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('933', '1090549', 'inn_uld_exitdoor_push', '244', '', '0', '-0.02', '0.02', '-8.6', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('934', '1090547', 'inn_limsa_exitdoor_push', '244', '', '0', '-160.02', '0.02', '-168.4', '0', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('934', '1090547', 'inn_limsa_exitdoor_push', '244', '', '0', '-160.02', '0.02', '-168.4', '0', '0', '0', null);
|
||||||
INSERT INTO `server_spawn_locations` VALUES ('935', '1060027', 'yoshi_p', '130', '', '0', '1117.76', '52.143', '-445.258', '2.173', '0', '0', null);
|
INSERT INTO `server_spawn_locations` VALUES ('935', '1060027', 'yoshi_p', '130', '', '0', '1117.76', '52.143', '-445.258', '2.173', '0', '0', null);
|
||||||
|
INSERT INTO `server_spawn_locations` VALUES ('936', '5900004', 'door1', '175', 'PrivateAreaMasterPast', '3', '14', '196', '174', '0', '0', '0', null);
|
||||||
|
INSERT INTO `server_spawn_locations` VALUES ('937', '5900004', 'door2', '175', 'PrivateAreaMasterPast', '3', '12', '196', '184', '0', '0', '0', null);
|
||||||
|
INSERT INTO `server_spawn_locations` VALUES ('938', '5900004', 'door3', '184', '', '0', '-44', '196', '68', '0', '0', '0', null);
|
||||||
|
COMMIT;
|
|
@ -4,10 +4,11 @@ Source Host: localhost
|
||||||
Source Database: ffxiv_server
|
Source Database: ffxiv_server
|
||||||
Target Host: localhost
|
Target Host: localhost
|
||||||
Target Database: ffxiv_server
|
Target Database: ffxiv_server
|
||||||
Date: 5/1/2017 10:28:55 PM
|
Date: 7/9/2017 7:11:12 PM
|
||||||
*/
|
*/
|
||||||
|
|
||||||
SET FOREIGN_KEY_CHECKS=0;
|
SET FOREIGN_KEY_CHECKS=0;
|
||||||
|
SET AUTOCOMMIT=0;
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Table structure for server_zones_privateareas
|
-- Table structure for server_zones_privateareas
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
|
@ -21,15 +22,15 @@ CREATE TABLE `server_zones_privateareas` (
|
||||||
`nightMusic` smallint(6) unsigned DEFAULT '0',
|
`nightMusic` smallint(6) unsigned DEFAULT '0',
|
||||||
`battleMusic` smallint(6) unsigned DEFAULT '0',
|
`battleMusic` smallint(6) unsigned DEFAULT '0',
|
||||||
PRIMARY KEY (`id`)
|
PRIMARY KEY (`id`)
|
||||||
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
|
) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=latin1;
|
||||||
|
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
-- Records
|
-- Records
|
||||||
-- ----------------------------
|
-- ----------------------------
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('1', '184', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '66', '0', '0');
|
INSERT INTO `server_zones_privateareas` VALUES ('1', '184', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '66', '0', '0');
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('2', '230', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '59', '0', '0');
|
INSERT INTO `server_zones_privateareas` VALUES ('2', '230', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '59', '0', '0');
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('3', '193', '/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent', 'ContentSimpleContent30002', '0', '0', '0', '0');
|
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('4', '133', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0');
|
INSERT INTO `server_zones_privateareas` VALUES ('4', '133', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0');
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('5', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '51', '0', '0');
|
INSERT INTO `server_zones_privateareas` VALUES ('5', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '1', '51', '0', '0');
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('6', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0');
|
INSERT INTO `server_zones_privateareas` VALUES ('6', '155', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '2', '40', '0', '0');
|
||||||
INSERT INTO `server_zones_privateareas` VALUES ('7', '166', '/Area/PrivateArea/Content/PrivateAreaMasterSimpleContent', 'ContentSimpleContent30010', '1', '0', '0', '0');
|
INSERT INTO `server_zones_privateareas` VALUES ('8', '175', '/Area/PrivateArea/PrivateAreaMasterPast', 'PrivateAreaMasterPast', '3', '66', '0', '0');
|
||||||
|
COMMIT;
|
Loading…
Add table
Reference in a new issue