Вход для пользователей

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: Hapek, Reeb  
Воздушный бой
Дата: Суббота, 03.09.2011, 15:17 | Сообщение # 1
Аватар

VIP Статус: Злобный Пингвин
Группа: **V.i.P**
Сообщений: 1044
Награды: 14
Репутация: 472  
 
Code
From 6e87609737653743ede2b5e0ee2aa3e39ac4cd8f Mon Sep 17 00:00:00 2001
From: Robox <robox@world-of-cod.de>
Date: Tue, 8 Feb 2011 23:14:47 +0100
Subject: [PATCH 2/3] Gunship_Battle icc

---
src/server/game/Scripting/ScriptLoader.cpp | 2 +
src/server/scripts/Northrend/CMakeLists.txt | 1 +
.../IcecrownCitadel/boss_gunship_battle.cpp | 193 ++++++++++++++++++++
sql/updates/world_scriptname.sql | 1 +

create mode 100644 src/server/scripts/Northrend/IcecrownCitadel/boss_gunship_battle.cpp
create mode 100644 sql/updates/world_scriptname.sql

diff --git a/src/server/game/Scripting/ScriptLoader.cpp b/src/server/game/Scripting/ScriptLoader.cpp
index 56c76e6..455b9f0 100755
--- a/src/server/game/Scripting/ScriptLoader.cpp
+++ b/src/server/game/Scripting/ScriptLoader.cpp
@@ -490,6 +490,7 @@ void AddSC_boss_blood_prince_council();
void AddSC_boss_blood_queen_lana_thel();
void AddSC_icecrown_citadel_teleport();
void AddSC_instance_icecrown_citadel();
+void AddSC_boss_gunship_battle();

void AddSC_dalaran();
void AddSC_borean_tundra();
@@ -1189,6 +1190,7 @@ void AddNorthrendScripts()
AddSC_boss_blood_queen_lana_thel();
AddSC_icecrown_citadel_teleport();
AddSC_instance_icecrown_citadel();
+ AddSC_boss_gunship_battle();

AddSC_dalaran();
AddSC_borean_tundra();
diff --git a/src/server/scripts/Northrend/CMakeLists.txt b/src/server/scripts/Northrend/CMakeLists.txt
index a5b06d4..0ccc3fd 100644
--- a/src/server/scripts/Northrend/CMakeLists.txt
+++ b/src/server/scripts/Northrend/CMakeLists.txt
@@ -155,6 +155,7 @@ set(scripts_STAT_SRCS
Northrend/IcecrownCitadel/boss_professor_putricide.cpp
Northrend/IcecrownCitadel/boss_blood_prince_council.cpp
Northrend/IcecrownCitadel/boss_blood_queen_lana_thel.cpp
+ Northrend/IcecrownCitadel/boss_gunship_battle.cpp
Northrend/zuldrak.cpp
Northrend/icecrown.cpp
Northrend/Gundrak/boss_slad_ran.cpp
diff --git a/src/server/scripts/Northrend/IcecrownCitadel/boss_gunship_battle.cpp b/src/server/scripts/Northrend/IcecrownCitadel/boss_gunship_battle.cpp
new file mode 100644
index 0000000..36b397f
--- /dev/null
+++ b/src/server/scripts/Northrend/IcecrownCitadel/boss_gunship_battle.cpp
@@ -0,0 +1,193 @@
+/*
+ * Copyright (c) 2008-2010 Trinity <http://www.trinitycore.org/>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ */
+
+#include "ScriptPCH.h"
+#include "icecrown_citadel.h"
+#include "MapManager.h"
+#include "Transport.h"
+class npc_muradin_bronzebeard_gunship : public CreatureScript
+{
+ public:
+ npc_muradin_bronzebeard_gunship() : CreatureScript("npc_myradin_icc") { }
+
+ bool OnGossipHello(Player* pPlayer, Creature* pCreature)
+ {
+ InstanceScript* pInstance = pCreature->GetInstanceScript();
+ if (pInstance && pInstance->GetBossState(DATA_GUNSHIP_EVENT) != DONE)
+ {
+ if (!pCreature->GetTransport())
+ {
+ pPlayer->ADD_GOSSIP_ITEM(0, "START", 631, 1000);
+ // } if(pPlayer->GetSecurity())
+ }else
+ pPlayer->ADD_GOSSIP_ITEM(0, "My companions are all accounted for, Saurfang. Let's go!", 631, 1001);
+ pPlayer->ADD_GOSSIP_ITEM(0, "DESPAWN", 631, 1003);
+
+ pPlayer->SEND_GOSSIP_MENU(pPlayer->GetGossipTextId(pCreature), pCreature->GetGUID());
+ return true;
+ }
+
+ return false;
+ }
+
+ bool OnGossipSelect(Player* pPlayer, Creature* pCreature, uint32 /*sender*/, uint32 action)
+ {
+ pPlayer->PlayerTalkClass->ClearMenus();
+ pPlayer->CLOSE_GOSSIP_MENU();
+ if (action == 1000)
+ {
+
+ uint32 entry = 201812;
+ const GameObjectInfo *goinfo = sObjectMgr->GetGameObjectInfo(entry);
+ if (!goinfo)
+ // sLog.outErrorDb("Transport ID:%u, Name: %s, will not be loaded, gameobject_template missing", entry, name.c_str());
+ return false;
+
+ Transport *t = new Transport(51584, goinfo->ScriptId);
+
+ std::set<uint32> unused;
+ if (!t->GenerateWaypoints(goinfo->moTransport.taxiPathId, unused))
+ {
+ delete t;
+ return false;
+ }
+
+ theguid = sObjectMgr->GenerateLowGuid(HIGHGUID_MO_TRANSPORT);
+ // creates the Gameobject
+ if (!t->Create(theguid, entry, t->m_WayPoints.begin()->second.mapid, t->m_WayPoints.begin()->second.x, t->m_WayPoints.begin()->second.y, t->m_WayPoints.begin()->second.z, 0.0f, 0, 0))
+ {
+ delete t;
+ return false;
+ }
+
+ Map* tMap = pPlayer->GetMap();
+ // t->SetUInt32Value(GAMEOBJECT_DYNAMIC, 0x10830010); // dunno, seen in sniffs
+ //t->SetFloatValue(GAMEOBJECT_PARENTROTATION+3, 1.0f);
+ t->RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_IN_USE);
+ t->SetGoState(GO_STATE_READY);
+
+ t->SetMap(tMap);
+ t->AddToWorld();
+
+ // transmit creation packet
+ for (Map::PlayerList::const_iterator itr = tMap->GetPlayers().begin(); itr != tMap->GetPlayers().end(); ++itr)
+ {
+ if (Player* pPlayer = itr->getSource())
+ {
+ UpdateData transData;
+ t->BuildCreateUpdateBlockForPlayer(&transData;, pPlayer);
+ WorldPacket packet;
+ transData.BuildPacket(&packet;);
+ pPlayer->SendDirectMessage(&packet;);
+
+ }
+ }
+
+ sMapMgr->m_Transports.insert(t); // for updating
+
+
+ t->GetTransport()->AddNPCPassenger(0, 0, t->GetTransOffsetX(), t->GetTransOffsetY(), t->GetTransOffsetZ(), t->GetTransOffsetO());
+
+
+ UpdateData transData;
+
+ t->BuildCreateUpdateBlockForPlayer(&transData;, pPlayer);
+ WorldPacket packet;
+ transData.BuildPacket(&packet;);
+ pPlayer->GetSession()->SendPacket(&packet;);
+ t->UpdateNPCPositions();
+ t->Update(1);
+ t->BuildStopMovePacket(tMap);
+
+
+ }
+
+ if (action == 1001)
+ {
+ if (Transport* t = pCreature->GetTransport())
+ {
+ pInstance->SetData(DATA_GUNSHIP_EVENT, IN_PROGRESS);
+ skybreaker->BuildStartMovePacket(pPlayer->GetMap());
+ skybreaker->SetGoState(GO_STATE_ACTIVE);
+ skybreaker->Update(0);
+ skybreaker->SetUInt32Value(GAMEOBJECT_DYNAMIC, 0x10830010); // dunno, seen in sniffs
+ skybreaker->SetFloatValue(GAMEOBJECT_PARENTROTATION+3, 1.0f);
+
+ skybreaker->AddToWorld();
+ UpdateData transData;
+ skybreaker->BuildCreateUpdateBlockForPlayer(&transData;, pPlayer);
+ WorldPacket packet;
+ transData.BuildPacket(&packet;);
+ pPlayer->GetSession()->SendPacket(&packet;);
+ Map* tMap = pPlayer->GetMap();
+
+ skybreaker->BuildStopMovePacket(tMap);
+
+ }
+ }
+ else if (action == 1003)
+ {
+ Transport* skybreaker = pCreature->GetTransport();
+ if (!skybreaker)
+ return true;
+
+ sMapMgr->m_Transports.erase(skybreaker);
+ for (Transport::PlayerSet::const_iterator itr = skybreaker->GetPassengers().begin(); itr != skybreaker->GetPassengers().end(); ++itr)
+ {
+ skybreaker->RemovePassenger(*itr);
+ if (Player* plr = *itr)
+ plr->SetTransport(NULL);
+ }
+ uint64 n = 0;
+ for (Transport::CreatureSet::const_iterator itr = skybreaker->m_NPCPassengerSet.begin(); itr != skybreaker->m_NPCPassengerSet.end(); ++itr)
+
+ if (Creature *npc = Unit::GetCreature(*pPlayer, n++))
+ npc->AddObjectToRemoveList();
+
+
+
+ skybreaker->m_NPCPassengerSet.clear();
+
+ UpdateData transData;
+ skybreaker->BuildOutOfRangeUpdateBlock(&transData;);
+ WorldPacket out_packet;
+ transData.BuildPacket(&out;_packet);
+
+ for (Map::PlayerList::const_iterator itr = skybreaker->GetMap()->GetPlayers().begin(); itr != skybreaker->GetMap()->GetPlayers().end(); ++itr)
+ if (skybreaker != itr->getSource()->GetTransport())
+ itr->getSource()->SendDirectMessage(&out;_packet);
+
+ skybreaker->Delete();
+ skybreaker = NULL;
+ }
+
+ return true;
+ }
+ uint64 theguid;
+ Transport *skybreaker;
+ private:
+ InstanceScript* pInstance;
+
+};
+
+
+void AddSC_boss_gunship_battle()
+{
+ //new transport_gunship();
+ new npc_muradin_bronzebeard_gunship();
+}
\ No newline at end of file

diff --git a/sql/updates/world_scriptname.sql b/sql/updates/world_scriptname.sql
new file mode 100644
index 0000000..eea2d4a
--- /dev/null
+++ b/sql/updates/world_scriptname.sql
@@ -0,0 +1 @@
+UPDATE `creature_template` SET `ScriptName`='npc_myradin_icc' WHERE `entry`=36948;

--
1.7.3.1.msysgit.0




Сообщение отредактировал Shoop - Суббота, 03.09.2011, 15:17
 
Дата: Понедельник, 28.11.2011, 14:46 | Сообщение # 2
Аватар

Группа: Пользователи
Сообщений: 20
Награды: 0
Репутация: 0  
 
id Ивента скажи плиз! и де его координаты?

 
  • Страница 1 из 1
  • 1
Поиск:
Статистика Форума

  • [05:43 Готовый сервер 4.0.6 ... 11.12.2023]

  • [23:30 Arcanum Core (3.3.5а)... 16.11.2023]

  • [12:37 delete 02.03.2020]

  • [12:37 Ищу пост ГМ-а 02.03.2020]

  • [12:37 RastaWoW 3.3.5a (Набо... 02.03.2020]

  • [12:37 Набор команды 02.03.2020]

  • [00:34 AMD FUN SERVER - Worl... 03.07.2019]

  • [00:34 Продам private сборку... 03.07.2019]

  • [00:34 НПС для покупки опыта... 03.07.2019]

  • [00:34 WoW-TRONE 03.07.2019]

  • [21:00 [Продам] Фуловые чары... 13.03.2015]

  • [18:47 Продам приват сборку ... 04.03.2015]

  • [20:54 ВСЕ приват сборки от ... 01.03.2015]

  • [20:52 QuantumCore Server 3.... 04.02.2015]

  • [21:07 GAMESV STUDIO | ... 02.01.2015]

  • [16:36 Готовый сервер wow 4.... 04.10.2014]

  • [16:51 Скупаю чаров! 30.08.2014]

  • [19:18 Готовый сервер 4.0.6 17.08.2013]

  • [18:47 [HELP]Квесты 16.08.2013]

  • [18:46 [ArcEmu] Дополнительн... 16.08.2013]


  • Карта Сайта ||||| Карта Форума|||