mirror of
https://bitbucket.org/Ioncannon/project-meteor-server.git
synced 2025-08-03 16:21:52 +02:00
Removed NLua and replaced it with MoonSharp. Scripting for NPCs has been implemented, but still have to test a lot.
This commit is contained in:
parent
74be19c51d
commit
300748668f
27 changed files with 22603 additions and 136 deletions
|
@ -248,6 +248,13 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
|
||||
#endregion
|
||||
|
||||
public Actor FindActorInZone(uint id)
|
||||
{
|
||||
if (!mActorList.ContainsKey(id))
|
||||
return null;
|
||||
return mActorList[id];
|
||||
}
|
||||
|
||||
public Player FindPCInZone(string name)
|
||||
{
|
||||
foreach (Actor a in mActorList.Values)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
using FFXIVClassic_Lobby_Server.common;
|
||||
using FFXIVClassic_Lobby_Server.packets;
|
||||
using FFXIVClassic_Map_Server.actors;
|
||||
using FFXIVClassic_Map_Server.dataobjects;
|
||||
using FFXIVClassic_Map_Server.lua;
|
||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
||||
using FFXIVClassic_Map_Server.utils;
|
||||
|
@ -43,7 +44,15 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
|
||||
public override SubPacket createScriptBindPacket(uint playerActorId)
|
||||
{
|
||||
List<LuaParam> lParams = LuaUtils.createLuaParamList("/Chara/Npc/Populace/PopulaceStandard", false, false, false, false, false, 0xF47F6, false, false, 0, 1, "TEST");
|
||||
List<LuaParam> lParams;
|
||||
|
||||
LuaEngine lua = Server.getServer().GetLuaEngine();
|
||||
Player player = Server.getServer().GetWorldManager().GetPCInWorld(playerActorId);
|
||||
lParams = lua.doActorOnInstantiate(player, this);
|
||||
|
||||
if (lParams == null)
|
||||
lParams = LuaUtils.createLuaParamList("/Chara/Npc/Populace/PopulaceStandard", false, false, false, false, false, 0xF47F6, false, false, 0, 1, "TEST");
|
||||
|
||||
return ActorInstantiatePacket.buildPacket(actorId, playerActorId, actorName, className, lParams);
|
||||
}
|
||||
|
||||
|
|
|
@ -7,6 +7,7 @@ using FFXIVClassic_Map_Server.lua;
|
|||
using FFXIVClassic_Map_Server.packets.send;
|
||||
using FFXIVClassic_Map_Server.packets.send.actor;
|
||||
using FFXIVClassic_Map_Server.packets.send.Actor.inventory;
|
||||
using FFXIVClassic_Map_Server.packets.send.events;
|
||||
using FFXIVClassic_Map_Server.packets.send.list;
|
||||
using FFXIVClassic_Map_Server.packets.send.login;
|
||||
using FFXIVClassic_Map_Server.packets.send.player;
|
||||
|
@ -588,5 +589,43 @@ namespace FFXIVClassic_Map_Server.Actors
|
|||
}
|
||||
}
|
||||
|
||||
public void queuePacket(BasePacket packet)
|
||||
{
|
||||
playerSession.queuePacket(packet);
|
||||
}
|
||||
|
||||
public void queuePacket(SubPacket packet)
|
||||
{
|
||||
playerSession.queuePacket(packet, true, false);
|
||||
}
|
||||
|
||||
public void sendMessage(uint logType, string sender, string message)
|
||||
{
|
||||
queuePacket(SendMessagePacket.buildPacket(actorId, actorId, logType, sender, message));
|
||||
}
|
||||
|
||||
public void logout()
|
||||
{
|
||||
queuePacket(LogoutPacket.buildPacket(actorId));
|
||||
}
|
||||
|
||||
public void quitGame()
|
||||
{
|
||||
queuePacket(QuitPacket.buildPacket(actorId));
|
||||
}
|
||||
|
||||
public void runEventFunction(string functionName, params object[] parameters)
|
||||
{
|
||||
List<LuaParam> lParams = LuaUtils.createLuaParamList(parameters);
|
||||
queuePacket(RunEventFunctionPacket.buildPacket(actorId, playerSession.eventCurrentOwner, playerSession.eventCurrentStarter, functionName, lParams));
|
||||
}
|
||||
|
||||
public void endEvent()
|
||||
{
|
||||
SubPacket p = EndEventPacket.buildPacket(actorId, playerSession.eventCurrentOwner, playerSession.eventCurrentStarter);
|
||||
p.debugPrintSubPacket();
|
||||
queuePacket(p);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue