Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Модификации ядра > Моды

Важная информация

Моды Неофициальная модификация ядра MaNGOS, собственные наработки, расширение функционала

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 05.12.2010, 20:14   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию add command killallnpc

Вспомнился старенький эмуль...
Получилось у меня сделать только с добавлением нового класса.
Что-то мне подсказывает, что это ох как не правильно
Всё хорошо, кроме как ,если воспользоваться командой с мобов не собрать лут (отсутствует владелец).

PHP код:
diff --git a/src/game/Chat.cpp b/src/game/Chat.cpp
index d526d26
..b4f5df4 100644
--- a/src/game/Chat.cpp
+++ b/src/game/Chat.cpp
@@ -708,+708,@@ ChatCommand ChatHandler::getCommandTable()
         { 
"recall",         SEC_MODERATOR,      false, &ChatHandler::HandleRecallCommand,              ""NULL },
         { 
"save",           SEC_PLAYER,         false, &ChatHandler::HandleSaveCommand,                ""NULL },
         { 
"saveall",        SEC_MODERATOR,      true,  &ChatHandler::HandleSaveAllCommand,             ""NULL },
+        { 
"killallnpc",     SEC_ADMINISTRATOR,  false, &ChatHandler::HandleKillAllNpcCommand,          ""NULL },
         { 
"kick",           SEC_GAMEMASTER,     true,  &ChatHandler::HandleKickPlayerCommand,          ""NULL },
         { 
"ban",            SEC_ADMINISTRATOR,  true,  NULL,                                           ""banCommandTable      },
         { 
"unban",          SEC_ADMINISTRATOR,  true,  NULL,                                           ""unbanCommandTable    },
diff --git a/src/game/Chat.h b/src/game/Chat.h
index d85c3e7
..97097cf 100644
--- a/src/game/Chat.h
+++ b/src/game/Chat.h
@@ -532,+532,@@ class ChatHandler
         bool HandleGetDistanceCommand
(charargs);
         
bool HandleModifyStandStateCommand(charargs);
         
bool HandleDieCommand(charargs);
+        
bool HandleKillAllNpcCommand(charargs);
         
bool HandleDamageCommand(charargs);
         
bool HandleReviveCommand(charargs);
         
bool HandleModifyMorphCommand(charargs);
diff --git a/src/game/Creature.cpp b/src/game/Creature.cpp
index ec637db
..40b4e0b 100644
--- a/src/game/Creature.cpp
+++ b/src/game/Creature.cpp
@@ -1469,+1469,15 @@ bool Creature::FallGround()
     return 
true;
 }
 
+
void Creature::Kill()
+{            
+    if (
isAlive())
+    {
+        
SetDeathState(JUST_DIED);
+        
SetHealth(0);
+    }        
+}
+
 
void Creature::Respawn()
 {
     
RemoveCorpse();
diff --git a/src/game/Creature.h b/src/game/Creature.h
index 9d31181
..41a99c1 100644
--- a/src/game/Creature.h
+++ b/src/game/Creature.h
@@ -593,+593,@@ class MANGOS_DLL_SPEC Creature : public Unit
         void SetRespawnTime
(uint32 respawn) { m_respawnTime respawn time(NULL) + respawn 0; }
         
void Respawn();
         
void SaveRespawnTime();
+        
+        
void Kill();
 
         
uint32 GetRespawnDelay() const { return m_respawnDelay; }
         
void SetRespawnDelay(uint32 delay) { m_respawnDelay delay; }
diff --git a/src/game/GridNotifiers.cpp b/src/game/GridNotifiers.cpp
index ca2a774
..d4431fd 100644
--- a/src/game/GridNotifiers.cpp
+++ b/src/game/GridNotifiers.cpp
@@ -237,+237,13 @@ void MaNGOS::RespawnDo::operator()( GameObject) const
     
u->Respawn();
 }
 
+
void MaNGOS::KillDo::operator()( Creature) const
+{
+    
Mapmap u->GetMap();
+
+    
u->Kill();
+}
+
 
 
template void ObjectUpdater::Visit<GameObject>(GameObjectMapType &);
 
template void ObjectUpdater::Visit<DynamicObject>(DynamicObjectMapType &);
diff --git a/src/game/GridNotifiers.h b/src/game/GridNotifiers.h
index 45c6b90
..b633fe4 100644
--- a/src/game/GridNotifiers.h
+++ b/src/game/GridNotifiers.h
@@ -602,+602,13 @@ namespace MaNGOS
             float i_range
;
     };
 
+    class 
KillDo
+    {
+        public:
+            
KillDo() {}
+            
void operator()(Creatureu) const;
+    };
+    
     
// WorldObject do classes
 
     
class RespawnDo
diff 
--git a/src/game/Level3.cpp b/src/game/Level3.cpp
index 3e3bb12
..233499c 100644
--- a/src/game/Level3.cpp
+++ b/src/game/Level3.cpp
@@ -3694,+3694,16 @@ bool ChatHandler::HandleDieCommand(char/*args*/)
     return 
true;
 }
 
+
bool ChatHandler::HandleKillAllNpcCommand(char/*args*/)
+{
+    
Playerpl m_session->GetPlayer();
+
+    
MaNGOS::KillDo u_do;
+    
MaNGOS::CreatureWorker<MaNGOS::KillDoworker(plu_do);
+    
Cell::VisitGridObjects(plworkerpl->GetMap()->GetVisibilityDistance());
+    return 
true;
+}
+     
 
bool ChatHandler::HandleDamageCommand(charargs)
 {
     if (!*
args


Код:
DELETE FROM `command` WHERE (`name`='killallnpc'); 
INSERT INTO `command` VALUES
('killallnpc',3,'Syntax: .killallnpc\r\n\r\nKill all npc.');
Den вне форума   Ответить с цитированием
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10537] Fixe typo in command help text. newsbot CMaNGOS Commits 0 26.09.2010 14:10
[10403] Stricted name check at chat command data loading from 'command' table. newsbot CMaNGOS Commits 0 23.08.2010 15:40
[10148] Improve .gm ingame command newsbot CMaNGOS Commits 0 04.07.2010 01:40
[10096] Allow negative X coordinate in .go command newsbot CMaNGOS Commits 0 22.06.2010 14:46
[9901] crash command Lozz Флудильня 10 31.05.2010 07:13


Текущее время: 06:10. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot