Changed InfoRequestResponsePacket to GenericDataPacket as that is the proper use/term. Added the city exit spawn locations. Did more work on the chocobolender script. Most of the issuing portion is done. Also can now summon through the lender.

This commit is contained in:
Filip Maj 2016-08-21 19:51:49 -04:00
parent d5f17c01a8
commit 8725377168
5 changed files with 25 additions and 33 deletions

View File

@ -200,7 +200,7 @@
<Compile Include="packets\send\list\ListEndPacket.cs" /> <Compile Include="packets\send\list\ListEndPacket.cs" />
<Compile Include="packets\send\list\ListEntriesEndPacket.cs" /> <Compile Include="packets\send\list\ListEntriesEndPacket.cs" />
<Compile Include="packets\send\list\ListStartPacket.cs" /> <Compile Include="packets\send\list\ListStartPacket.cs" />
<Compile Include="packets\send\player\InfoRequestResponsePacket.cs" /> <Compile Include="packets\send\player\GenericDataPacket.cs" />
<Compile Include="packets\send\player\SendAchievementRatePacket.cs" /> <Compile Include="packets\send\player\SendAchievementRatePacket.cs" />
<Compile Include="packets\send\player\SetCurrentJobPacket.cs" /> <Compile Include="packets\send\player\SetCurrentJobPacket.cs" />
<Compile Include="packets\send\player\SetCurrentMountGoobbuePacket.cs" /> <Compile Include="packets\send\player\SetCurrentMountGoobbuePacket.cs" />

View File

@ -1138,10 +1138,10 @@ namespace FFXIVClassic_Map_Server.Actors
QueuePacket(InventoryEndChangePacket.BuildPacket(toBeExamined.actorId, actorId)); QueuePacket(InventoryEndChangePacket.BuildPacket(toBeExamined.actorId, actorId));
} }
public void SendRequestedInfo(params object[] parameters) public void SendDataPacket(params object[] parameters)
{ {
List<LuaParam> lParams = LuaUtils.CreateLuaParamList(parameters); List<LuaParam> lParams = LuaUtils.CreateLuaParamList(parameters);
SubPacket spacket = InfoRequestResponsePacket.BuildPacket(actorId, actorId, lParams); SubPacket spacket = GenericDataPacket.BuildPacket(actorId, actorId, lParams);
spacket.DebugPrintSubPacket(); spacket.DebugPrintSubPacket();
QueuePacket(spacket); QueuePacket(spacket);
} }

View File

@ -4,7 +4,7 @@ using System.IO;
namespace FFXIVClassic_Map_Server.packets.send.player namespace FFXIVClassic_Map_Server.packets.send.player
{ {
class InfoRequestResponsePacket class GenericDataPacket
{ {
public const ushort OPCODE = 0x0133; public const ushort OPCODE = 0x0133;
public const uint PACKET_SIZE = 0xE0; public const uint PACKET_SIZE = 0xE0;

View File

@ -27,6 +27,12 @@ local startAppearances = {
[1000840] = CHOCOBO_ULDAH1 [1000840] = CHOCOBO_ULDAH1
}; };
local cityExits = {
[1500006] = 15,
[1500061] = 14,
[1000840] = 16
};
function init(npc) function init(npc)
return false, false, 0, 0; return false, false, 0, 0;
end end
@ -62,12 +68,16 @@ function onEventStarted(player, npc, triggerName)
player:IssueChocobo(appearance, nameResponse); player:IssueChocobo(appearance, nameResponse);
callClientFunction(player, "eventAfterChocoboName", player); callClientFunction(player, "eventAfterChocoboName", player);
mountChocobo(player); mountChocobo(player);
teleportOutOfCity(player, npc); GetWorldManager():DoZoneChange(player, cityExits[npc:GetActorClassId()]);
player:SendGameMessage(player, GetWorldMaster(), 25248, 0x20, 2001007);
player:SendDataPacket("attention", GetWorldMaster(), "", 25248, 2001007);
player:EndEvent();
return;
end end
elseif(menuChoice == 2) then -- Summon Bird elseif(menuChoice == 2) then -- Summon Bird
teleportOutOfCity(player, npc);
mountChocobo(player); mountChocobo(player);
GetWorldManager():DoZoneChange(player, cityExits[npc:GetActorClassId()]);
elseif(menuChoice == 3) then -- Change Barding elseif(menuChoice == 3) then -- Change Barding
callClientFunction(player, "eventTalkStepBreak", player); callClientFunction(player, "eventTalkStepBreak", player);
elseif(menuChoice == 5) then -- Rent Bird elseif(menuChoice == 5) then -- Rent Bird
@ -80,29 +90,12 @@ function onEventStarted(player, npc, triggerName)
end end
function mountChocobo(player) function mountChocobo(player)
local worldMaster = GetWorldMaster();
player:ChangeMusic(83);
player:SendChocoboAppearance(); player:SendChocoboAppearance();
player:SendGameMessage(player, worldMaster, 26001, 0x20);
player:SetMountState(1); player:SetMountState(1);
player:ChangeSpeed(0.0, 5.0, 10.0);
player:ChangeState(15);
end end
function issueRentalChocobo(player) function issueRentalChocobo(player)
--TODO: Write issue rental chocobo code --TODO: Write issue rental chocobo code
end end
function teleportOutOfCity(player, npc)
local zoneId = player:GetPos()[4];
local worldManager = GetWorldManager();
local exitPoints = {
[1500061] = {150, 319, 4, 996, 0.00}, -- Gridania
[1500006] = {133, -83, 30, 169, 2.00}, -- Limsa
[1000840] = {170, -32, 183, -74, 2} -- Ul'dah
};
--print "Getting exit point for npc [" ..npc:GetActorClassId().."]";
local exitPoint = exitPoints[npc:GetActorClassId()];
if (exitPoint == nil) then
return
end
worldManager:DoZoneChange(player, exitPoint[0], nil, 0x02, exitPoint[1], exitPoint[2], exitPoint[3], exitPoint[4]);
end

View File

@ -4,12 +4,10 @@ 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: 8/14/2016 9:43:22 AM Date: 8/21/2016 7:50:14 PM
*/ */
SET FOREIGN_KEY_CHECKS=0; SET FOREIGN_KEY_CHECKS=0;
SET autocommit = 0;
-- ---------------------------- -- ----------------------------
-- Table structure for server_zones_spawnlocations -- Table structure for server_zones_spawnlocations
-- ---------------------------- -- ----------------------------
@ -23,7 +21,7 @@ CREATE TABLE `server_zones_spawnlocations` (
`spawnZ` float NOT NULL, `spawnZ` float NOT NULL,
`spawnRotation` float NOT NULL, `spawnRotation` float NOT NULL,
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=latin1; ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=latin1;
-- ---------------------------- -- ----------------------------
-- Records -- Records
@ -41,5 +39,6 @@ INSERT INTO `server_zones_spawnlocations` VALUES ('10', '166', null, '16', '356.
INSERT INTO `server_zones_spawnlocations` VALUES ('11', '244', null, '15', '0.048', '0', '-5.737', '0'); INSERT INTO `server_zones_spawnlocations` VALUES ('11', '244', null, '15', '0.048', '0', '-5.737', '0');
INSERT INTO `server_zones_spawnlocations` VALUES ('12', '244', null, '15', '-160.048', '0', '-165.737', '0'); INSERT INTO `server_zones_spawnlocations` VALUES ('12', '244', null, '15', '-160.048', '0', '-165.737', '0');
INSERT INTO `server_zones_spawnlocations` VALUES ('13', '244', null, '15', '160.048', '0', '154.263', '0'); INSERT INTO `server_zones_spawnlocations` VALUES ('13', '244', null, '15', '160.048', '0', '154.263', '0');
INSERT INTO `server_zones_spawnlocations` VALUES ('14', '150', null, '15', '333.271', '5.889', '-943.275', '0.794');
COMMIT; INSERT INTO `server_zones_spawnlocations` VALUES ('15', '133', null, '15', '-8.062', '45.429', '139.364', '2.955');
INSERT INTO `server_zones_spawnlocations` VALUES ('16', '170', null, '15', '-27.015', '181.798', '-79.72', '2.513');