Ru-MaNGOS

Вернуться   Ru-MaNGOS > Разработка скриптов > Принятые

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

Принятые Патчи, принятые разработчиками ScripDev2

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2010, 16:14   #1
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию [QUEST=10930] The Big Bone Worm

Скрипт для квеста Большой костяной червь
Код:
Index: scripts/world/spell_scripts.cpp
===================================================================
--- scripts/world/spell_scripts.cpp    (revision 1863)
+++ scripts/world/spell_scripts.cpp    (working copy)
@@ -252,6 +252,13 @@
     SAY_BLESS_3                         = -1000596,
     SAY_BLESS_4                         = -1000597,
     SAY_BLESS_5                         = -1000598,
+    
+    // quest "The Big Bone Worm" 10930
+    SPELL_FUMPING                        = 39246,
+    SPELL_SUMMON_HAISHULUD              = 39248,
+    NPC_DECREPIT_CLEFTHOOF              = 22105,
+    NPC_SAND_GNOME                      = 22483,
+    NPC_MATURE_BONE_SIFTER                = 22482,
 };
 
 bool EffectAuraDummy_spell_aura_dummy_npc(const Aura* pAura, bool bApply)
@@ -671,6 +678,44 @@
 
             return true;
         }
+        case SPELL_FUMPING:
+        {
+            if (uiEffIndex == EFFECT_INDEX_2)
+            {
+                if (pCreatureTarget->GetEntry() != NPC_DECREPIT_CLEFTHOOF || !pCreatureTarget->isDead())
+                    return true;
+    
+                switch(urand(1,3))
+                {
+                    case 1:
+                    {
+                        pCaster->CastSpell(pCreatureTarget, SPELL_SUMMON_HAISHULUD, true);
+                        pCreatureTarget->ForcedDespawn();
+                        break;
+                    }
+                    case 2:
+                    {
+                        if (Creature* pOther1 = pCaster->SummonCreature(NPC_SAND_GNOME, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
+                            pOther1->AI()->AttackStart(pCaster);
+                        pCaster->SummonCreature(NPC_SAND_GNOME, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+                        pCaster->SummonCreature(NPC_SAND_GNOME, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+                        pCreatureTarget->ForcedDespawn();
+                        break;
+                    }
+                    case 3:
+                    {
+                        if (Creature* pOther2 = pCaster->SummonCreature(NPC_MATURE_BONE_SIFTER, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
+                            pOther2->AI()->AttackStart(pCaster);
+                        pCaster->SummonCreature(NPC_MATURE_BONE_SIFTER, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+                        pCaster->SummonCreature(NPC_MATURE_BONE_SIFTER, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000);
+                        pCreatureTarget->ForcedDespawn();
+                        break;
+                    }
+                }
+                return true;
+            }
+            return true;
+        }
     }
 
     return false;
+ SQL
PHP код:
DELETE FROM `spell_script_targetWHERE `entry`='39248';
INSERT INTO `spell_script_target` (`entry`, `type`, `targetEntry`) VALUES ('39248''2''22105');
UPDATE `creature_templateSET `ScriptName`='spell_dummy_npc' WHERE (`entry`='22105');

UPDATE `creature_templateSET `lootid` = '0' WHERE `entry` =22483;
DELETE FROM `creature_loot_templateWHERE `entry` = 22483;
DELETE FROM `creatureWHERE `id` = 22483;
DELETE FROM `creatureWHERE `id` = 22482
Немного смущает способ вызова 3-х мобов, может есть какой-то более изящный способ?
virusav - помогай И ты ведь там с девами СД2 связываешь - можешь кинуть им скриптик...
KiriX вне форума   Ответить с цитированием
Старый 07.11.2010, 17:29   #2
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Сниффы бы увидеть, тогда можно спокойно внедрять патч, иначе всегда возникает много вопросов на форуме СД2, пока кусок из сниффа не покажешь.
virusav вне форума   Ответить с цитированием
Старый 07.11.2010, 21:15   #3
KiriX
Умный
Старожил
 
Аватар для KiriX
 
Регистрация: 06.03.2010
Сообщений: 886
Сказал(а) спасибо: 698
Поблагодарили 433 раз(а) в 181 сообщениях
Записей в дневнике: 4
KiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человекKiriX Реально хороший человек
По умолчанию

Снифами я точно не располагаю...
KiriX вне форума   Ответить с цитированием
Старый 13.11.2010, 18:52   #4
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Опубликовал 2 варианта патча: твой и мой на основе твоего.
http://www.scriptdev2.com/project.php?issueid=1163

Мой вариант патча:
Код:
Index: scripts/world/spell_scripts.cpp
===================================================================
--- scripts/world/spell_scripts.cpp	(revision 1864)
+++ scripts/world/spell_scripts.cpp	(working copy)
@@ -34,6 +34,7 @@
 spell 50706
 spell 45109
 spell 45111
+spell 39246
 EndContentData */
 
 #include "precompiled.h"
@@ -252,6 +253,12 @@
     SAY_BLESS_3                         = -1000596,
     SAY_BLESS_4                         = -1000597,
     SAY_BLESS_5                         = -1000598,
+    
+    // quest "The Big Bone Worm" 10930
+    SPELL_FUMPING                       = 39246,
+    SPELL_SUMMON_HAISHULUD              = 39248,
+    NPC_SAND_GNOME                      = 22483,
+    NPC_MATURE_BONE_SIFTER              = 22482,
 };
 
 bool EffectAuraDummy_spell_aura_dummy_npc(const Aura* pAura, bool bApply)
@@ -671,6 +678,40 @@
 
             return true;
         }
+        case SPELL_FUMPING:
+        {
+            if (uiEffIndex == EFFECT_INDEX_2)
+            {
+                switch(urand(0,2))
+                {
+                    case 0:
+                    {
+                        pCaster->CastSpell(pCreatureTarget, SPELL_SUMMON_HAISHULUD, true);
+                        break;
+                    }
+                    case 1:
+                    {
+                        for (uint8 i = 0; i<2; ++i)
+                        {
+                            if (Creature* pSandGnome = pCaster->SummonCreature(NPC_SAND_GNOME, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
+                                pSandGnome->AI()->AttackStart(pCaster);
+                        }
+                        break;
+                    }
+                    case 2:
+                    {
+                        for (uint8 i = 0; i<2; ++i)
+                        {
+                            if (Creature* pMatureBoneSifter = pCaster->SummonCreature(NPC_MATURE_BONE_SIFTER, pCreatureTarget->GetPositionX(), pCreatureTarget->GetPositionY(), pCreatureTarget->GetPositionZ(), 0.0f, TEMPSUMMON_TIMED_DESPAWN_OUT_OF_COMBAT, 30000))
+                                pMatureBoneSifter->AI()->AttackStart(pCaster);
+                        }
+                        break;
+                    }
+                }
+                pCreatureTarget->ForcedDespawn();
+            }
+            return true;
+        }
     }
 
     return false;
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (18.11.2010)
Старый 14.11.2010, 11:58   #5
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

В 1871 принят мой вариант патча.
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (18.11.2010)
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10930] Add models for spell 65528 and 65529 newsbot CMaNGOS Commits 0 28.12.2010 22:41
[SQL patch] Bone Shield (Костяной щит) Insider42 Патчи на рассмотрении 0 26.10.2010 19:12


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


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