void CGameServerPlayer::PrepareInitialPackets() { QueuePacket(PacketData(std::begin(g_client0_login1), std::end(g_client0_login1))); QueuePacket(PacketData(std::begin(g_client0_login2), std::end(g_client0_login2))); QueuePacket(PacketData(std::begin(g_client0_login3), std::end(g_client0_login3))); QueuePacket(PacketData(std::begin(g_client0_login4), std::end(g_client0_login4))); QueuePacket(GetMotd()); QueuePacket(PacketData(std::begin(g_client0_login7), std::end(g_client0_login7))); QueuePacket(GetCharacterInfo()); QueuePacket(GetInventoryInfo()); QueuePacket(PacketData(std::begin(g_client0_login11), std::end(g_client0_login11))); QueuePacket(PacketData(std::begin(g_client0_login12), std::end(g_client0_login12))); QueuePacket(PacketData(std::begin(g_client0_login13), std::end(g_client0_login13))); QueuePacket(PacketData(std::begin(g_client0_login14), std::end(g_client0_login14))); ResetInstance(); #if 0 //Test mob in room SpawnNpc(1155006509, 10516, 3105901, 159.8f, 0, 156.4f, 0); #endif }
void WarpCentinela(int UserIndex, int CentinelaIndex) { /* '************************************************* */ /* 'Author: Unknown */ /* 'Last modified: 02/10/2010 */ /* 'Inciamos la revisión del usuario UserIndex */ /* '02/10/2010: ZaMa - Adaptado para que funcione mas de un centinela en paralelo. */ /* '************************************************* */ /* 'Evitamos conflictos de índices */ if (Centinela[CentinelaIndex].NpcIndex != 0) { QuitarNPC(Centinela[CentinelaIndex].NpcIndex); Centinela[CentinelaIndex].NpcIndex = 0; } /* ' Spawn it */ Centinela[CentinelaIndex].NpcIndex = SpawnNpc(NPC_CENTINELA, UserList[UserIndex].Pos, true, false); /* 'Si no pudimos crear el NPC, seguimos esperando a poder hacerlo */ if (Centinela[CentinelaIndex].NpcIndex == 0) { Centinela[CentinelaIndex].RevisandoUserIndex = 0; Centinela[CentinelaIndex].Activo = false; } }
void CGameServerPlayer::SendTeleportSequence(uint32 levelId, uint32 musicId, float x, float y, float z, float angle) { QueuePacket(PacketData(std::begin(g_client0_moor1), std::end(g_client0_moor1))); QueuePacket(PacketData(std::begin(g_client0_moor2), std::end(g_client0_moor2))); QueuePacket(PacketData(std::begin(g_client0_moor3), std::end(g_client0_moor3))); QueuePacket(PacketData(std::begin(g_client0_moor4), std::end(g_client0_moor4))); QueuePacket(PacketData(std::begin(g_client0_moor5), std::end(g_client0_moor5))); QueuePacket(PacketData(std::begin(g_client0_moor6), std::end(g_client0_moor6))); QueuePacket(PacketData(std::begin(g_client0_moor7), std::end(g_client0_moor7))); QueuePacket(PacketData(std::begin(g_client0_moor8), std::end(g_client0_moor8))); QueuePacket(PacketData(std::begin(g_client0_moor9), std::end(g_client0_moor9))); { CCompositePacket result; { CSetMusicPacket packet; packet.SetSourceId(PLAYER_ID); packet.SetTargetId(PLAYER_ID); packet.SetMusicId(musicId); result.AddPacket(packet.ToPacketData()); } { CSetWeatherPacket packet; packet.SetSourceId(PLAYER_ID); packet.SetTargetId(PLAYER_ID); packet.SetWeatherId(CSetWeatherPacket::WEATHER_CLEAR); result.AddPacket(packet.ToPacketData()); } { CSetMapPacket packet; packet.SetSourceId(PLAYER_ID); packet.SetTargetId(PLAYER_ID); packet.SetMapId(levelId); result.AddPacket(packet.ToPacketData()); } QueuePacket(result.ToPacketData()); } QueuePacket(PacketData(std::begin(g_client0_moor11), std::end(g_client0_moor11))); QueuePacket(PacketData(std::begin(g_client0_moor12), std::end(g_client0_moor12))); { PacketData outgoingPacket(std::begin(g_client0_moor13), std::end(g_client0_moor13)); { const uint32 setInitialPositionBase = 0x360; CSetInitialPositionPacket setInitialPosition; setInitialPosition.SetSourceId(PLAYER_ID); setInitialPosition.SetTargetId(PLAYER_ID); setInitialPosition.SetX(x); setInitialPosition.SetY(y); setInitialPosition.SetZ(z); setInitialPosition.SetAngle(angle); auto setInitialPositionPacket = setInitialPosition.ToPacketData(); memcpy(outgoingPacket.data() + setInitialPositionBase, setInitialPositionPacket.data(), setInitialPositionPacket.size()); } QueuePacket(outgoingPacket); } QueuePacket(GetInventoryInfo()); QueuePacket(PacketData(std::begin(g_client0_moor21), std::end(g_client0_moor21))); //QueuePacket(PacketData(std::begin(g_client0_moor22), std::end(g_client0_moor22))); if(!m_zoneMasterCreated) { //Zone Master QueuePacket(PacketData(std::begin(g_client0_moor23), std::end(g_client0_moor23))); /* QueuePacket(PacketData(std::begin(g_client0_moor24), std::end(g_client0_moor24))); QueuePacket(PacketData(std::begin(g_client0_moor25), std::end(g_client0_moor25))); QueuePacket(PacketData(std::begin(g_client0_moor26), std::end(g_client0_moor26))); QueuePacket(PacketData(std::begin(g_client0_moor27), std::end(g_client0_moor27))); QueuePacket(PacketData(std::begin(g_client0_moor28), std::end(g_client0_moor28))); QueuePacket(PacketData(std::begin(g_client0_moor29), std::end(g_client0_moor29))); QueuePacket(PacketData(std::begin(g_client0_moor30), std::end(g_client0_moor30))); QueuePacket(PacketData(std::begin(g_client0_moor31), std::end(g_client0_moor31))); QueuePacket(PacketData(std::begin(g_client0_moor32), std::end(g_client0_moor32))); QueuePacket(PacketData(std::begin(g_client0_moor33), std::end(g_client0_moor33))); QueuePacket(PacketData(std::begin(g_client0_moor34), std::end(g_client0_moor34))); QueuePacket(PacketData(std::begin(g_client0_moor35), std::end(g_client0_moor35))); QueuePacket(PacketData(std::begin(g_client0_moor36), std::end(g_client0_moor36))); QueuePacket(PacketData(std::begin(g_client0_moor37), std::end(g_client0_moor37))); */ //Enables chat? // QueuePacket(PacketData(std::begin(g_client0_moor38), std::end(g_client0_moor38))); { CCompositePacket packet; packet.AddPacket(PacketData(std::begin(g_client0_moor38), std::end(g_client0_moor38))); QueuePacket(packet.ToPacketData()); } // QueuePacket(PacketData(std::begin(g_client0_moor39), std::end(g_client0_moor39))); // QueuePacket(PacketData(std::begin(g_client0_moor40), std::end(g_client0_moor40))); ResetInstance(); //Only makes sense in Black Shroud for now if(levelId == CSetMapPacket::MAP_BLACKSHROUD) { const auto& actorDatabase = CGlobalData::GetInstance().GetActorDatabase(); for(const auto& actorInfo : actorDatabase.GetActors()) { SpawnNpc(actorInfo.id, actorInfo.baseModelId, actorInfo.nameStringId, std::get<0>(actorInfo.pos), std::get<1>(actorInfo.pos), std::get<2>(actorInfo.pos), 0); } } m_zoneMasterCreated = true; } }